summaryrefslogtreecommitdiff
path: root/compiler/jni/quick/calling_convention.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2023-06-12 08:43:46 +0000
committer VladimĂ­r Marko <vmarko@google.com> 2023-06-15 10:39:36 +0000
commit30313798f5c1153dea3204183acc8f10b1a9665d (patch)
tree0f2d968164c963a42468a5c9a143514a76ebd8eb /compiler/jni/quick/calling_convention.cc
parent993bcb1f021ea69e28bef882255416eac28f8b15 (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.cc6
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>(