diff options
author | 2023-12-13 10:03:05 +0000 | |
---|---|---|
committer | 2023-12-14 14:43:12 +0000 | |
commit | d0a15c3de2867b2f566831307da1cd51b5957a62 (patch) | |
tree | 6befbdf4c7d0935681ef701905cb367d9d260e2a /compiler/utils/jni_macro_assembler.cc | |
parent | b1bd3729fcb010b9f2f7d7498ee1a75a71132e0c (diff) |
riscv64: Fix wrong sign-extension for references.
Test: Modify kPreferredAllocSpaceBegin = 0x90000000, then
testrunner.py --target --64 --ndebug --optimizing
Bug: 283082089
Change-Id: Ifb82d616a0d9664a2e7f5f96a1a79ddce5862cdf
Diffstat (limited to 'compiler/utils/jni_macro_assembler.cc')
-rw-r--r-- | compiler/utils/jni_macro_assembler.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/compiler/utils/jni_macro_assembler.cc b/compiler/utils/jni_macro_assembler.cc index dc7ec60032..7a90a46f51 100644 --- a/compiler/utils/jni_macro_assembler.cc +++ b/compiler/utils/jni_macro_assembler.cc @@ -38,6 +38,7 @@ #include "base/globals.h" #include "base/memory_region.h" #include "gc_root.h" +#include "stack_reference.h" namespace art HIDDEN { @@ -115,4 +116,17 @@ void JNIMacroAssembler<PointerSize::k64>::LoadGcRootWithoutReadBarrier(ManagedRe ManagedRegister base, MemberOffset offs); +template <PointerSize kPointerSize> +void JNIMacroAssembler<kPointerSize>::LoadStackReference(ManagedRegister dest, FrameOffset offs) { + static_assert(sizeof(uint32_t) == sizeof(StackReference<mirror::Object>)); + Load(dest, offs, sizeof(uint32_t)); +} + +template +void JNIMacroAssembler<PointerSize::k32>::LoadStackReference(ManagedRegister dest, + FrameOffset offs); +template +void JNIMacroAssembler<PointerSize::k64>::LoadStackReference(ManagedRegister dest, + FrameOffset offs); + } // namespace art |