riscv64: pointer-width load/store
Match load/store widths to the data fields being accessed.
Test: Run ART test 001-HelloWorld on a Linux RISC-V VM:
lunch aosp_riscv64-userdebug
export ART_TEST_SSH_USER=ubuntu
export ART_TEST_SSH_HOST=localhost
export ART_TEST_SSH_PORT=10001
export ART_TEST_ON_VM=true
. art/tools/buildbot-utils.sh
art/tools/buildbot-build.sh --target
# Create, boot and configure the VM.
art/tools/buildbot-vm.sh create
art/tools/buildbot-vm.sh boot
art/tools/buildbot-vm.sh setup-ssh # password: 'ubuntu'
art/tools/buildbot-cleanup-device.sh
art/tools/buildbot-setup-device.sh
art/tools/buildbot-sync.sh
# Test Nterp (first revert https://r.android.com/2547153 in local build)
art/test.py --target -r --no-prebuild --ndebug --64 001-HelloWorld
# SIGILL in nterp_op_new_array
Change-Id: I8fe2c81f7cb1d4c3793e00e424da2310b55903e9
diff --git a/runtime/interpreter/mterp/riscv64/main.S b/runtime/interpreter/mterp/riscv64/main.S
index e1f8a72..15033bf 100644
--- a/runtime/interpreter/mterp/riscv64/main.S
+++ b/runtime/interpreter/mterp/riscv64/main.S
@@ -100,7 +100,7 @@
SETUP_SAVE_REFS_ONLY_FRAME
call \helper
RESTORE_SAVE_REFS_ONLY_FRAME
- lw t0, THREAD_EXCEPTION_OFFSET(xSELF)
+ ld t0, THREAD_EXCEPTION_OFFSET(xSELF)
bnez t0, nterp_deliver_pending_exception
ret
END \name
@@ -177,7 +177,7 @@
mv \old_sp, sp
.cfi_def_cfa_register \old_sp
mv sp, t0
- sw \old_sp, -8(\refs)
+ sd \old_sp, -8(\refs)
CFI_DEF_CFA_BREG_PLUS_UCONST \cfi_refs, -8, FRAME_SIZE_SAVE_ALL_CALLEE_SAVES
// Put nulls in reference array.