diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/optimizing/code_generator_riscv64.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/optimizing/code_generator_riscv64.cc b/compiler/optimizing/code_generator_riscv64.cc index e22c1a64a1..2187957db8 100644 --- a/compiler/optimizing/code_generator_riscv64.cc +++ b/compiler/optimizing/code_generator_riscv64.cc @@ -4179,13 +4179,13 @@ void CodeGeneratorRISCV64::GenerateStaticOrDirectCall(HInvokeStaticOrDirect* inv kNativeStackAlignment, GetCriticalNativeDirectCallFrameSize>(invoke); if (invoke->GetMethodLoadKind() == MethodLoadKind::kBootImageLinkTimePcRelative) { - __ Jalr(TMP); + // Entrypoint is already loaded in RA. } else { - // TMP2 = callee_method->ptr_sized_fields_.data_; // EntryPointFromJni + // RA = callee_method->ptr_sized_fields_.data_; // EntryPointFromJni MemberOffset offset = ArtMethod::EntryPointFromJniOffset(kRiscv64PointerSize); - __ Loadd(TMP2, callee_method.AsRegister<XRegister>(), offset.Int32Value()); - __ Jalr(TMP2); + __ Loadd(RA, callee_method.AsRegister<XRegister>(), offset.Int32Value()); } + __ Jalr(RA); RecordPcInfo(invoke, invoke->GetDexPc(), slow_path); // The result is returned the same way in native ABI and managed ABI. No result conversion is // needed, see comments in `Riscv64JniCallingConvention::RequiresSmallResultTypeExtension()`. |