From 922d476dab48dda4e802ef99ef9db627bc056888 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sun, 9 Aug 2015 14:54:55 -0500 Subject: [PATCH 1/2] [AArch64] Fix FCMGE instruction encoding. Fixes a crash when ps_sel is used (PSO 1&2 intro movies). --- Source/Core/Common/Arm64Emitter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Common/Arm64Emitter.cpp b/Source/Core/Common/Arm64Emitter.cpp index f5b00de3cc..a1c44ead82 100644 --- a/Source/Core/Common/Arm64Emitter.cpp +++ b/Source/Core/Common/Arm64Emitter.cpp @@ -3422,7 +3422,7 @@ void ARM64FloatEmitter::FCMGE(u8 size, ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm) } void ARM64FloatEmitter::FCMGE(u8 size, ARM64Reg Rd, ARM64Reg Rn) { - Emit2RegMisc(IsQuad(Rd), 1, 2 | (size >> 6), 0x1C, Rd, Rn); + Emit2RegMisc(IsQuad(Rd), 1, 2 | (size >> 6), 0x0C, Rd, Rn); } void ARM64FloatEmitter::FCMGT(u8 size, ARM64Reg Rd, ARM64Reg Rn, ARM64Reg Rm) { From cf22d32d0c88d114706c9729e4d6f8d6a47948d0 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sun, 9 Aug 2015 14:56:52 -0500 Subject: [PATCH 2/2] [AArch64] Don't do an unnecessary 128bit REV64 operation. We are only using the lower 64bits here, no need to do the full quad register. --- Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp index fdce4dea7b..83605bb07f 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp @@ -169,7 +169,7 @@ u32 JitArm64::EmitBackpatchRoutine(ARM64XEmitter* emit, u32 flags, bool fastmem, else { float_emit.LDR(64, INDEX_UNSIGNED, Q0, addr, 0); - float_emit.REV64(8, Q0, Q0); + float_emit.REV64(8, D0, D0); float_emit.INS(64, RS, 0, Q0, 0); } }