From f6511c3ba56cf6136e878265f8eef7bdc9f910b9 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sun, 8 Mar 2015 12:29:45 -0500 Subject: [PATCH] [AArch64] Add an assert to SMOV in the emitter. SMOV doesn't have an encoding for moving a 32bit element to a 32bit GPR. One should use UMOV if they want that. --- Source/Core/Common/Arm64Emitter.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/Common/Arm64Emitter.cpp b/Source/Core/Common/Arm64Emitter.cpp index 69a680f7e3..e0f4c4b432 100644 --- a/Source/Core/Common/Arm64Emitter.cpp +++ b/Source/Core/Common/Arm64Emitter.cpp @@ -2618,6 +2618,7 @@ void ARM64FloatEmitter::SMOV(u8 size, ARM64Reg Rd, ARM64Reg Rn, u8 index) bool b64Bit = Is64Bit(Rd); _assert_msg_(DYNA_REC, Rd < SP, "%s destination must be a GPR!", __FUNCTION__); _assert_msg_(DYNA_REC, size != 64, "%s doesn't support 64bit destination. Use UMOV!", __FUNCTION__); + _assert_msg_(DYNA_REC, !b64Bit && size != 32, "%s doesn't support 32bit move to 32bit register. Use UMOV!", __FUNCTION__); u32 imm5 = 0; if (size == 8)