From d0a15c3de2867b2f566831307da1cd51b5957a62 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Wed, 13 Dec 2023 10:03:05 +0000 Subject: riscv64: Fix wrong sign-extension for references. Test: Modify kPreferredAllocSpaceBegin = 0x90000000, then testrunner.py --target --64 --ndebug --optimizing Bug: 283082089 Change-Id: Ifb82d616a0d9664a2e7f5f96a1a79ddce5862cdf --- compiler/utils/jni_macro_assembler.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'compiler/utils/jni_macro_assembler.h') 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 { 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. -- cgit v1.2.3-59-g8ed1b