summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorSintendo <3380580+Sintendo@users.noreply.github.com>2024-10-10 22:16:25 +0200
committerSintendo <3380580+Sintendo@users.noreply.github.com>2024-10-10 22:16:28 +0200
commit0d9984b299ece57b5fec22d5d45d55d8f3f6554e (patch)
tree2e666366d96b9004291703c30f8c8c09b43b006c /Source
parent8304ae33613c197ae377ed246d705f0b2a398e38 (diff)
JitArm64_SystemRegisters: Optimize mtspr
No need to materialize the immediate if it is zero, we can just use WZR. Before: mov w27, #0x0 ; =0 str w27, [x29, #0x1178] After: str wzr, [x29, #0x1178]
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/PowerPC/JitArm64/JitArm64_SystemRegisters.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_SystemRegisters.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_SystemRegisters.cpp
index 87f652d6d4..8ffa1b84aa 100644
--- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_SystemRegisters.cpp
+++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_SystemRegisters.cpp
@@ -477,7 +477,7 @@ void JitArm64::mtspr(UGeckoInstruction inst)
}
// OK, this is easy.
- ARM64Reg RD = gpr.R(inst.RD);
+ ARM64Reg RD = gpr.IsImm(inst.RD, 0) ? ARM64Reg::WZR : gpr.R(inst.RD);
STR(IndexType::Unsigned, RD, PPC_REG, PPCSTATE_OFF_SPR(iIndex));
}