Henrik Rydgård and Claude Fable 5.1
e0f09c55d5
MIPS: INT_MIN / -1 leaves HI at zero, like the hardware
...
Every path special-cased the one signed division overflow and set the
remainder to -1. cpu/cpu_alu/cpu_div, recorded on a PSP, says it's 0.
The classic arm64 JIT was the only one that got it right, by not
special-casing it at all.
arm64, RISC-V and LoongArch all produce INT_MIN with remainder 0 natively,
so their fixup blocks go away. x86 has to keep the check (IDIV traps) but
sets HI to 0 now, and so do both interpreters.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 11:02:20 -06:00
Unknown W. Brackets
3a705d9470
x86jit: Implement BSwap16.
2023-09-23 22:01:09 -07:00
Unknown W. Brackets
580c9a634b
x86jit: Implement ReverseBits.
2023-09-23 22:00:58 -07:00
Unknown W. Brackets
15f01b13a2
x86jit: Small tweak for SltU zero, x.
2023-09-23 22:00:38 -07:00
Unknown W. Brackets
1b756ff8c1
arm64jit: Add initial base for IR jit.
...
This works, but very slowly at this point.
2023-09-03 12:14:28 -07:00
Unknown W. Brackets
b370a89ef2
x86jit: Reduce block link padding.
...
Reduces bloat a good bit.
2023-09-01 22:33:02 -07:00
Unknown W. Brackets
0cb6a17ea3
x86jit: Small Clz codesize optimization.
2023-08-28 21:17:06 -07:00
Unknown W. Brackets
0a5eafa3de
x86jit: Another small LEA optimization.
2023-08-28 21:09:56 -07:00
Unknown W. Brackets
7f3e2e55b5
x86jit: Small opt for Sltu.
2023-08-28 21:09:56 -07:00
Unknown W. Brackets
4e90bd5070
x86jit: Use NEG more automatically for Sub x,0,y.
2023-08-28 21:09:56 -07:00
Henrik Rydgård
54ebe461fc
Merge pull request #17994 from unknownbrackets/x86-jit-lea
...
x86: Use LEA in a few sensible places
2023-08-28 10:17:13 +02:00
Unknown W. Brackets
479ebaea11
x86: Use LEA in a few sensible places.
2023-08-27 13:59:19 -07:00
Unknown W. Brackets
497fc09c29
x86jit: Implement divides.
2023-08-27 12:34:58 -07:00
Unknown W. Brackets
1b25f854a1
x86jit: Reduce code size a tiny bit.
2023-08-27 12:34:58 -07:00
Unknown W. Brackets
2231fb807b
x86jit: Implement Clz, Not, XorConst.
2023-08-27 12:34:58 -07:00
Unknown W. Brackets
d021706eb3
x86jit: Implement conditional assigns.
2023-08-25 00:01:03 -07:00
Unknown W. Brackets
d1a30334bf
x86jit: Implement multiplies.
2023-08-25 00:01:03 -07:00
Unknown W. Brackets
363f2b68e1
x86jit: Implement shifts.
2023-08-25 00:01:03 -07:00
Unknown W. Brackets
2fbdc42a5c
x86jit: Reduce code a bit in SETcc paths.
2023-08-25 00:00:35 -07:00
Unknown W. Brackets
d86f6ae618
x86jit: Implement set less thans.
2023-08-23 22:17:55 -07:00
Unknown W. Brackets
5473a5c698
x86jit: Add low MapWithFlags for Ext8to32.
2023-08-23 22:17:55 -07:00
Unknown W. Brackets
a1bddd880d
x86jit: Fix sign extension.
2023-08-22 23:29:13 -07:00
Henrik Rydgård
6a3840d9b6
Implement bswap just because
2023-08-22 16:18:03 +02:00
Henrik Rydgård
c5a076487e
Disable extends on x86-32
2023-08-22 16:09:45 +02:00
Henrik Rydgård
b67741509c
Implement a few ALU ops in the x86 JIT-from-IR.
2023-08-22 16:08:12 +02:00
Unknown W. Brackets
40b3ff9573
x86jit: Fix spill issue.
2023-08-21 08:23:58 -07:00
Unknown W. Brackets
538832940a
x86jit: Implement some shifts.
2023-08-21 00:07:42 -07:00
Unknown W. Brackets
104b6d8c15
x86jit: Implement some basic arithmetic.
2023-08-20 22:28:54 -07:00
Unknown W. Brackets
4e3f3860f9
x86jit: Stub out op categories to files.
2023-08-20 22:28:54 -07:00