diff options
author | 2024-04-12 07:15:38 +0000 | |
---|---|---|
committer | 2024-07-02 13:36:08 +0000 | |
commit | 55f1fed0c404146429d38c41b9dd1647db238ba5 (patch) | |
tree | 882436a95c9b9932b7717710c8ce778fa30785c9 /compiler/optimizing/code_generation_data.cc | |
parent | 6a44606e6b27eb04e911cab0adec627014e678ff (diff) |
Revert^4 "x86_64: Add JIT support for LoadMethodType."
This reverts commit b63adc919ba9a53f4fbad476356c702845821149.
Bringing back map from ArtMethod to code pointers.
Bug: 297147201
Test: CtsPerfettoTestCases
Test: ./art/test/testrunner/testrunner.py --host --64 --jit -b
Test: ./art/test/testrunner/testrunner.py --host --64 --jit --cms -b
Test: ./art/test/testrunner/testrunner.py --host --64 -b
Test: ./art/test.py --host -b
Change-Id: I6a1c50598ec878393edf8ef895274da79d4ab42d
Diffstat (limited to 'compiler/optimizing/code_generation_data.cc')
-rw-r--r-- | compiler/optimizing/code_generation_data.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generation_data.cc b/compiler/optimizing/code_generation_data.cc index 7b23d46dc5..afc4f62f0f 100644 --- a/compiler/optimizing/code_generation_data.cc +++ b/compiler/optimizing/code_generation_data.cc @@ -20,6 +20,7 @@ #include "intern_table.h" #include "mirror/object-inl.h" #include "runtime.h" +#include "well_known_classes-inl.h" namespace art HIDDEN { @@ -52,6 +53,16 @@ void CodeGenerationData::EmitJitRoots( entry.second = index; ++index; } + for (auto& entry : jit_method_type_roots_) { + // Update the `roots` with the MethodType, and replace the address temporarily + // stored to the index in the table. + uint64_t address = entry.second; + roots->emplace_back(reinterpret_cast<StackReference<mirror::Object>*>(address)); + DCHECK(roots->back() != nullptr); + DCHECK(roots->back()->InstanceOf(WellKnownClasses::java_lang_invoke_MethodType.Get())); + entry.second = index; + ++index; + } } } // namespace art |