From 7c2b09e1567e31b1905c17c25d15f61606813668 Mon Sep 17 00:00:00 2001 From: Merry Date: Sat, 6 Nov 2021 19:15:26 +0000 Subject: [PATCH] Arm64Emitter: Add FRINTI instruction --- Source/Core/Common/Arm64Emitter.cpp | 4 ++++ Source/Core/Common/Arm64Emitter.h | 1 + 2 files changed, 5 insertions(+) diff --git a/Source/Core/Common/Arm64Emitter.cpp b/Source/Core/Common/Arm64Emitter.cpp index c0d19f652f..e2d8bbf4c0 100644 --- a/Source/Core/Common/Arm64Emitter.cpp +++ b/Source/Core/Common/Arm64Emitter.cpp @@ -2913,6 +2913,10 @@ void ARM64FloatEmitter::FSQRT(ARM64Reg Rd, ARM64Reg Rn) { EmitScalar1Source(0, 0, IsDouble(Rd), 3, Rd, Rn); } +void ARM64FloatEmitter::FRINTI(ARM64Reg Rd, ARM64Reg Rn) +{ + EmitScalar1Source(0, 0, IsDouble(Rd), 15, Rd, Rn); +} void ARM64FloatEmitter::FRECPE(ARM64Reg Rd, ARM64Reg Rn) { diff --git a/Source/Core/Common/Arm64Emitter.h b/Source/Core/Common/Arm64Emitter.h index c609757bd1..77927c6aac 100644 --- a/Source/Core/Common/Arm64Emitter.h +++ b/Source/Core/Common/Arm64Emitter.h @@ -1230,6 +1230,7 @@ public: void FABS(ARM64Reg Rd, ARM64Reg Rn); void FNEG(ARM64Reg Rd, ARM64Reg Rn); void FSQRT(ARM64Reg Rd, ARM64Reg Rn); + void FRINTI(ARM64Reg Rd, ARM64Reg Rn); void FMOV(ARM64Reg Rd, ARM64Reg Rn, bool top = false); // Also generalized move between GPR/FP void FRECPE(ARM64Reg Rd, ARM64Reg Rn); void FRSQRTE(ARM64Reg Rd, ARM64Reg Rn);