From 8838bbf1f5ff911e2663f14ed18660b1c26a010d Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Fri, 23 Jun 2023 14:41:35 +0000 Subject: riscv64: Enable JNI compiler. Implement the required `WriteCIE()`, fix a bug in the `art_jni_dlsym_lookup_critical_stub`, fix reference loads to be zero-extended and enable the JNI compiler for riscv64. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: run-gtests.sh Test: testrunner.py --target --64 --ndebug --prebuild --no-prebuild -t 178 Test: # Edit `run-test` to disable checker, then testrunner.py --target --64 --ndebug --cdex-none --optimizing # 7 tests fail (pre-existing failures): 004-StackWalk, 137-cfi, # 2042-reference-processing, 597-deopt-busy-loop, 629-vdex-speed, # 638-checker-inline-cache-intrinsic and 661-oat-writer-layout. Test: aosp_cf_riscv64_phone-userdebug boots without crashes. Bug: 283082089 Change-Id: Ifd47098b7428919b601dd22a130ad1bd51ae516d --- compiler/utils/jni_macro_assembler.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'compiler/utils/jni_macro_assembler.cc') diff --git a/compiler/utils/jni_macro_assembler.cc b/compiler/utils/jni_macro_assembler.cc index a0230e37fe..dc7ec60032 100644 --- a/compiler/utils/jni_macro_assembler.cc +++ b/compiler/utils/jni_macro_assembler.cc @@ -37,6 +37,7 @@ #include "base/casts.h" #include "base/globals.h" #include "base/memory_region.h" +#include "gc_root.h" namespace art HIDDEN { @@ -97,4 +98,21 @@ MacroAsm64UniquePtr JNIMacroAssembler::Create( } } +template +void JNIMacroAssembler::LoadGcRootWithoutReadBarrier(ManagedRegister dest, + ManagedRegister base, + MemberOffset offs) { + static_assert(sizeof(uint32_t) == sizeof(GcRoot)); + Load(dest, base, offs, sizeof(uint32_t)); +} + +template +void JNIMacroAssembler::LoadGcRootWithoutReadBarrier(ManagedRegister dest, + ManagedRegister base, + MemberOffset offs); +template +void JNIMacroAssembler::LoadGcRootWithoutReadBarrier(ManagedRegister dest, + ManagedRegister base, + MemberOffset offs); + } // namespace art -- cgit v1.2.3-59-g8ed1b