diff options
author | 2023-06-12 08:43:46 +0000 | |
---|---|---|
committer | 2023-06-15 10:39:36 +0000 | |
commit | 30313798f5c1153dea3204183acc8f10b1a9665d (patch) | |
tree | 0f2d968164c963a42468a5c9a143514a76ebd8eb /compiler/jni/quick/calling_convention.cc | |
parent | 993bcb1f021ea69e28bef882255416eac28f8b15 (diff) |
riscv64: Implement JNI compiler for @CriticalNative.
Implement all JNI macro assembler functions needed by the
JNI compiler to compile stubs for @CriticalNative methods.
Enable most JNI compiler tests for @CriticalNative methods
and document the reasons for keeping the remaining few tests
disabled.
Change `Riscv64Assembler::AddConst*` to store intermediate
results in `TMP` to avoid unaligned SP in the middle of a
macro operation.
Test: m test-art-host-gtest
Test: run-gtests.sh
Bug: 283082089
Change-Id: I226cab7b2ffcab375a67eb37efdd093779c5c8c4
Diffstat (limited to 'compiler/jni/quick/calling_convention.cc')
-rw-r--r-- | compiler/jni/quick/calling_convention.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/jni/quick/calling_convention.cc b/compiler/jni/quick/calling_convention.cc index 9f26e01154..ade6781c61 100644 --- a/compiler/jni/quick/calling_convention.cc +++ b/compiler/jni/quick/calling_convention.cc @@ -166,6 +166,12 @@ std::unique_ptr<JniCallingConvention> JniCallingConvention::Create(ArenaAllocato new (allocator) arm64::Arm64JniCallingConvention( is_static, is_synchronized, is_fast_native, is_critical_native, shorty)); #endif +#ifdef ART_ENABLE_CODEGEN_riscv64 + case InstructionSet::kRiscv64: + return std::unique_ptr<JniCallingConvention>( + new (allocator) riscv64::Riscv64JniCallingConvention( + is_static, is_synchronized, is_fast_native, is_critical_native, shorty)); +#endif #ifdef ART_ENABLE_CODEGEN_x86 case InstructionSet::kX86: return std::unique_ptr<JniCallingConvention>( |