diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp index 747b30e8e6..2a1548317a 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp @@ -137,7 +137,7 @@ u32 JitArm64::EmitBackpatchRoutine(ARM64XEmitter* emit, u32 flags, bool fastmem, ARM64FloatEmitter float_emit(emit); if (flags & BackPatchInfo::FLAG_SIZE_F32) { - float_emit.FCVT(32, 64, Q0, RS); + float_emit.FCVT(32, 64, D0, RS); float_emit.REV32(8, D0, D0); trouble_offset = (emit->GetCodePtr() - code_base) / 4; float_emit.STR(32, INDEX_UNSIGNED, D0, addr, 0); @@ -215,7 +215,7 @@ u32 JitArm64::EmitBackpatchRoutine(ARM64XEmitter* emit, u32 flags, bool fastmem, ARM64FloatEmitter float_emit(emit); if (flags & BackPatchInfo::FLAG_SIZE_F32) { - float_emit.FCVT(32, 64, Q0, RS); + float_emit.FCVT(32, 64, D0, RS); float_emit.UMOV(32, W0, Q0, 0); emit->MOVI2R(X30, (u64)&PowerPC::Write_U32); emit->BLR(X30); diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp index d2ffcf094f..21b8cbd897 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_LoadStoreFloating.cpp @@ -390,7 +390,7 @@ void JitArm64::stfXX(UGeckoInstruction inst) } else if (accessSize == 32) { - m_float_emit.FCVT(32, 64, Q0, V0); + m_float_emit.FCVT(32, 64, D0, EncodeRegToDouble(V0)); m_float_emit.REV32(8, D0, D0); m_float_emit.STR(32, INDEX_UNSIGNED, D0, X1, 0); } diff --git a/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp b/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp index 81943ce16f..62cce8374b 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitAsm.cpp @@ -128,8 +128,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(addr_reg, (u64)&m_dequantizeTableS); ADD(scale_reg, addr_reg, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); RET(X30); } const u8* loadPairedS8Two = GetCodePtr(); @@ -142,8 +142,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(addr_reg, (u64)&m_dequantizeTableS); ADD(scale_reg, addr_reg, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); RET(X30); } const u8* loadPairedU16Two = GetCodePtr(); @@ -156,8 +156,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(addr_reg, (u64)&m_dequantizeTableS); ADD(scale_reg, addr_reg, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); RET(X30); } const u8* loadPairedS16Two = GetCodePtr(); @@ -170,8 +170,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(addr_reg, (u64)&m_dequantizeTableS); ADD(scale_reg, addr_reg, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); RET(X30); } @@ -192,8 +192,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(addr_reg, (u64)&m_dequantizeTableS); ADD(scale_reg, addr_reg, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); RET(X30); } const u8* loadPairedS8One = GetCodePtr(); @@ -206,8 +206,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(addr_reg, (u64)&m_dequantizeTableS); ADD(scale_reg, addr_reg, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); RET(X30); } const u8* loadPairedU16One = GetCodePtr(); @@ -220,8 +220,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(addr_reg, (u64)&m_dequantizeTableS); ADD(scale_reg, addr_reg, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); RET(X30); } const u8* loadPairedS16One = GetCodePtr(); @@ -234,8 +234,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(addr_reg, (u64)&m_dequantizeTableS); ADD(scale_reg, addr_reg, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); RET(X30); } @@ -295,8 +295,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(X2, (u64)&m_quantizeTableS); ADD(scale_reg, X2, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); float_emit.FCVTZU(32, D0, D0); float_emit.XTN(16, D0, D0); float_emit.XTN(8, D0, D0); @@ -326,8 +326,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(X2, (u64)&m_quantizeTableS); ADD(scale_reg, X2, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); float_emit.FCVTZS(32, D0, D0); float_emit.XTN(16, D0, D0); float_emit.XTN(8, D0, D0); @@ -358,8 +358,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(X2, (u64)&m_quantizeTableS); ADD(scale_reg, X2, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); float_emit.FCVTZU(32, D0, D0); float_emit.XTN(16, D0, D0); float_emit.REV16(8, D0, D0); @@ -388,8 +388,8 @@ void JitArm64AsmRoutineManager::GenerateCommon() MOVI2R(X2, (u64)&m_quantizeTableS); ADD(scale_reg, X2, scale_reg, ArithOption(scale_reg, ST_LSL, 3)); - float_emit.LD1R(32, D1, scale_reg); - float_emit.FMUL(32, D0, D0, D1); + float_emit.LDR(32, INDEX_UNSIGNED, D1, scale_reg, 0); + float_emit.FMUL(32, D0, D0, D1, 0); float_emit.FCVTZS(32, D0, D0); float_emit.XTN(16, D0, D0); float_emit.REV16(8, D0, D0);