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.h | |
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.h')
-rw-r--r-- | compiler/utils/jni_macro_assembler.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/utils/jni_macro_assembler.h b/compiler/utils/jni_macro_assembler.h index 2d51439ee8..2d52eada08 100644 --- a/compiler/utils/jni_macro_assembler.h +++ b/compiler/utils/jni_macro_assembler.h @@ -137,6 +137,10 @@ class JNIMacroAssembler : public DeletableArenaObject<kArenaAllocAssembler> { ManagedRegister base, MemberOffset offs); + // Load reference from a `StackReference<>`. The default is to load as `jint`. Some architectures + // (say, RISC-V) override this to provide a different sign- or zero-extension. + virtual void LoadStackReference(ManagedRegister dest, FrameOffset offs); + // Copying routines // Move arguments from `srcs` locations to `dests` locations. |