diff options
| -rw-r--r-- | runtime/arch/x86_64/quick_entrypoints_x86_64.S | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/runtime/arch/x86_64/quick_entrypoints_x86_64.S b/runtime/arch/x86_64/quick_entrypoints_x86_64.S index 9303b00cb9..861f8025a5 100644 --- a/runtime/arch/x86_64/quick_entrypoints_x86_64.S +++ b/runtime/arch/x86_64/quick_entrypoints_x86_64.S @@ -926,13 +926,11 @@ DEFINE_FUNCTION art_quick_alloc_object_tlab int3 #endif // Might need a special macro since rsi and edx is 32b/64b mismatched. - movl ART_METHOD_DEX_CACHE_TYPES_OFFSET_64(%rsi), %edx // Load dex cache resolved types array - UNPOISON_HEAP_REF edx + movq ART_METHOD_DEX_CACHE_TYPES_OFFSET_64(%rsi), %rdx // Load dex cache resolved types array // TODO: Add read barrier when this function is used. // Might need to break down into multiple instructions to get the base address in a register. // Load the class - movl MIRROR_OBJECT_ARRAY_DATA_OFFSET(%rdx, %rdi, MIRROR_OBJECT_ARRAY_COMPONENT_SIZE), %edx - UNPOISON_HEAP_REF edx + movl 0(%rdx, %rdi, COMPRESSED_REFERENCE_SIZE), %edx testl %edx, %edx // Check null class jz .Lart_quick_alloc_object_tlab_slow_path // Check class status. |