diff options
author | 2023-10-31 22:12:00 -0700 | |
---|---|---|
committer | 2023-11-14 09:01:50 +0000 | |
commit | 97e821c02dbcc82b2d3c67f8cb15fe620b196fff (patch) | |
tree | 08cb19c9f2e960b27152e1fd31f2610097a3d1e9 /runtime/nterp_helpers.cc | |
parent | 0a837ee0281095a4f806274a5c3644255564300a (diff) |
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
Diffstat (limited to 'runtime/nterp_helpers.cc')
-rw-r--r-- | runtime/nterp_helpers.cc | 5 |
1 files changed, 5 insertions, 0 deletions
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: |