dolphin/Source/Core/Core/PowerPC
Sintendo 352cbc4772 JitArm64_Integer: cmp - Subtract shifted 12-bit constant
You can encode a shifted 12-bit immediate in a SUB instruction on ARM64.
Constants in this range do not need to be sign extended, so we can
exploit this to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x52a00099   mov    w25, #0x40000             ; =262144
0x93407f7a   sxtw   x26, w27
0xcb39c35a   sub    x26, x26, w25, sxtw

After:
0x93407f7a   sxtw   x26, w27
0xd141035a   sub    x26, x26, #0x40, lsl #12  ; =0x40000
2025-02-02 12:00:44 +01:00
..
CachedInterpreter Host: Rename JitCacheInvalidation 2024-10-23 23:43:24 -07:00
Interpreter Merge pull request #12813 from Geotale/interpreter-subnormal-rounding 2024-09-08 14:22:02 +02:00
Jit64 Merge pull request #13116 from mitaclaw/ranges-modernization-8-trivial-of 2024-12-26 16:51:53 -05:00
Jit64Common Jit64: Add extra cases for reversible avx_op 2024-04-20 17:50:54 +02:00
JitArm64 JitArm64_Integer: cmp - Subtract shifted 12-bit constant 2025-02-02 12:00:44 +01:00
JitArmCommon JitArm64: Restructure the BackPatchInfo flags enum 2021-09-08 21:23:00 +02:00
JitCommon JitBase: Improve const-correctness 2024-12-28 16:44:58 +01:00
SignatureDB PowerPC/MMU: Refactor to class, move to System. 2023-03-28 03:47:51 +02:00
BreakPoints.cpp Modernize std::any_of with ranges 2024-12-15 19:54:16 -08:00
BreakPoints.h Debugger: Rework temporary breakpoints 2024-07-05 21:33:22 +02:00
ConditionRegister.cpp treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
ConditionRegister.h PowerPC/ConditionRegister: Mark PPCToInternal() as constexpr 2023-06-08 14:33:13 -04:00
CPUCoreBase.h treewide: convert GPLv2+ license info to SPDX tags 2021-07-05 04:35:56 +02:00
Expression.cpp Modernize std::any_of with ranges 2024-12-15 19:54:16 -08:00
Expression.h Expression: Support All SPRs + MSR 2024-05-03 17:56:58 -07:00
GDBStub.cpp GDBStub: Signal Breakpoint Changes To Host 2024-11-15 15:12:11 -08:00
GDBStub.h GDB Stub: do not send a packet when we just connected 2022-01-02 04:35:55 -05:00
Gekko.h Branch Watch Tool: New Conditional Branch Inspection Tools 2024-08-31 15:37:34 -07:00
JitInterface.cpp DolphinQt: JIT Widget Refresh 2024-10-19 02:30:44 -07:00
JitInterface.h DolphinQt: JIT Widget Refresh 2024-10-19 02:30:44 -07:00
MMU.cpp Merge pull request #12626 from MikeIsAStar/remove-erroneous-continue-statement 2024-06-06 03:54:59 +02:00
MMU.h Remove redundant semicolons 2024-08-20 14:59:54 +02:00
PowerPC.cpp DolphinQt: Signal Host::JitCacheInvalidation in more places 2024-10-23 23:43:25 -07:00
PowerPC.h Debugger: Small other cleanup 2024-07-02 18:29:42 +02:00
PPCAnalyst.cpp Modernize std::any_of with ranges 2024-12-15 19:54:16 -08:00
PPCAnalyst.h PPCAnalyst: Remove unused member isBranchTarget 2024-05-24 20:51:39 +02:00
PPCCache.cpp Modernize std::fill with ranges 2024-10-10 00:53:48 -07:00
PPCCache.h PPCCache: Avoid Global System Accessor 2024-04-08 19:49:57 -07:00
PPCSymbolDB.cpp Merge pull request #13272 from dreamsyntax/ppc-crlf 2025-01-12 14:26:27 +01:00
PPCSymbolDB.h Core: Store object name separately for symbols 2024-11-11 12:36:53 -05:00
PPCTables.cpp TypeUtils: Remove Common::Fill 2024-08-22 17:29:26 -07:00
PPCTables.h PPCTables: Retire FL_EVIL 2023-11-28 18:59:34 +01:00