From 97e821c02dbcc82b2d3c67f8cb15fe620b196fff Mon Sep 17 00:00:00 2001 From: Jaeheon Yi Date: Tue, 31 Oct 2023 22:12:00 -0700 Subject: riscv64: invoke opcodes, range variants Also hotfix for slow path 'L' ref loads: clear upper bits for correctness. Also disable 01 fastpath to rethink approach for 'L' ref loads vs shorty cost. See invoke.S for notes on code structure. Test: Run these opcodes against all interpreter tests on a Linux RISC-V VM. (1) setup lunch aosp_riscv64-trunk-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 (2) test art/test.py --target -r --no-prebuild --ndebug --64 -j 12 --cdex-none --interpreter Clean with `m check_cfi`. Bug: 283082047 Change-Id: I20426fd1e7b397f7fce51a1f43661056d5b8e844 --- runtime/nterp_helpers.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'runtime/nterp_helpers.cc') diff --git a/runtime/nterp_helpers.cc b/runtime/nterp_helpers.cc index f411e73679..83057f8910 100644 --- a/runtime/nterp_helpers.cc +++ b/runtime/nterp_helpers.cc @@ -279,6 +279,11 @@ bool CanMethodUseNterp(ArtMethod* method, InstructionSet isa) { case Instruction::INVOKE_DIRECT: case Instruction::INVOKE_STATIC: case Instruction::INVOKE_INTERFACE: + case Instruction::INVOKE_VIRTUAL_RANGE: + case Instruction::INVOKE_SUPER_RANGE: + case Instruction::INVOKE_DIRECT_RANGE: + case Instruction::INVOKE_STATIC_RANGE: + case Instruction::INVOKE_INTERFACE_RANGE: case Instruction::NEG_INT: case Instruction::NOT_INT: case Instruction::NEG_LONG: -- cgit v1.2.3-59-g8ed1b