dolphin/Source/Core/Core/PowerPC
Sintendo 075c35602f JitArm64_Integer: cmp - Add shifted 12-bit constant
You can encode a shifted 12-bit immediate in an ADD instruction on
ARM64. If the negated constant fits in this range, 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:
0x52bff01a   mov    w26, #-0x800000           ; =-8388608
0x93407f1b   sxtw   x27, w24
0xcb3ac37b   sub    x27, x27, w26, sxtw

After:
0x93407f1b   sxtw   x27, w24
0x9160037b   add    x27, x27, #0x800, lsl #12 ; =0x800000
2025-02-02 12:01:08 +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 - Add shifted 12-bit constant 2025-02-02 12:01:08 +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