diff options
| author | Nicolas Geoffray <ngeoffray@google.com> | 2016-12-09 11:26:35 +0000 |
|---|---|---|
| committer | Nicolas Geoffray <ngeoffray@google.com> | 2016-12-12 11:50:24 +0000 |
| commit | 5b12f7973636bfea29da3956a9baa7a6bbe2b666 (patch) | |
| tree | a2cd41c1d3c09abc594a76af11b7bebc302a2870 /compiler/optimizing/code_generator_x86.h | |
| parent | 0dd27eb2b51d030866c25dbf8e7bb737eb35a888 (diff) | |
| download | art-5b12f7973636bfea29da3956a9baa7a6bbe2b666.tar.gz art-5b12f7973636bfea29da3956a9baa7a6bbe2b666.tar.bz2 art-5b12f7973636bfea29da3956a9baa7a6bbe2b666.zip | |
Add kJitTableAddress for HLoadClass.
This new kind loads classes from the root table associated with
JIT compiled code.
Also remove kDexCacheAddress, which is replaced by kJitTableAddress.
test: ART_TEST_JIT=true test-art-host-jit test-art-target-jit
Change-Id: Ia23029688d1a60c178bf2ffa7463927c5d5de4d0
Diffstat (limited to 'compiler/optimizing/code_generator_x86.h')
| -rw-r--r-- | compiler/optimizing/code_generator_x86.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator_x86.h b/compiler/optimizing/code_generator_x86.h index 2ae3670bed..c44da97a90 100644 --- a/compiler/optimizing/code_generator_x86.h +++ b/compiler/optimizing/code_generator_x86.h @@ -416,12 +416,17 @@ class CodeGeneratorX86 : public CodeGenerator { Label* NewStringBssEntryPatch(HLoadString* load_string); Label* NewPcRelativeDexCacheArrayPatch(const DexFile& dex_file, uint32_t element_offset); Label* NewJitRootStringPatch(const DexFile& dex_file, dex::StringIndex dex_index); + Label* NewJitRootClassPatch(const DexFile& dex_file, dex::TypeIndex dex_index, uint64_t address); void MoveFromReturnRegister(Location trg, Primitive::Type type) OVERRIDE; // Emit linker patches. void EmitLinkerPatches(ArenaVector<LinkerPatch>* linker_patches) OVERRIDE; + void PatchJitRootUse(uint8_t* code, + const uint8_t* roots_data, + const PatchInfo<Label>& info, + uint64_t index_in_table) const; void EmitJitRootPatches(uint8_t* code, const uint8_t* roots_data) OVERRIDE; // Emit a write barrier. @@ -623,6 +628,9 @@ class CodeGeneratorX86 : public CodeGenerator { // Patches for string root accesses in JIT compiled code. ArenaDeque<PatchInfo<Label>> jit_string_patches_; + // Patches for class root accesses in JIT compiled code. + ArenaDeque<PatchInfo<Label>> jit_class_patches_; + // Offset to the start of the constant area in the assembled code. // Used for fixups to the constant area. int32_t constant_area_start_; |
