mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-03-10 11:37:43 +01:00

While we cannot always avoid materializing immediates, we can still inspect the most significant bit and potentially skip sign extension. This can sometimes save an instruction. Before: 0x5280003a mov w26, #0x1 ; =1 0x93407f5b sxtw x27, w26 0xcb38c37b sub x27, x27, w24, sxtw After: 0x5280003a mov w26, #0x1 ; =1 0xcb38c35b sub x27, x26, w24, sxtw Before: 0x52a20018 mov w24, #0x10000000 ; =268435456 0x93407f79 sxtw x25, w27 0xcb38c339 sub x25, x25, w24, sxtw After: 0x52a20018 mov w24, #0x10000000 ; =268435456 0x93407f79 sxtw x25, w27 0xcb180339 sub x25, x25, x24