Cacodemon345
215c5719ad
Add some stuff that got missed in ARM64 NDR changes
2025-11-05 00:30:11 +06:00
OBattler
98bb4950f8
Revert back to the old code on x64.
2025-11-04 19:17:00 +01:00
OBattler
3749b25c83
Revert the x64 changes.
2025-11-04 19:11:55 +01:00
Cacodemon345
93d478691f
Second take on fixing ARM64 MMX opcodes
2025-11-04 17:22:50 +06:00
Cacodemon345
c00a82c58c
Reapply "Merge pull request #6172 from Cacodemon345/armfixes-2"
...
This reverts commit 5577efe301 .
2025-11-04 17:03:27 +06:00
Cacodemon345
5577efe301
Revert "Merge pull request #6172 from Cacodemon345/armfixes-2"
...
This reverts commit 5bfa69f3da , reversing
changes made to a54e33bf04 .
2025-09-17 22:52:34 +06:00
Cacodemon345
cc7ca6c652
Cleanups
2025-09-15 19:16:40 +00:00
Cacodemon345
fed75595da
Disable unrolling optimizations on ARM64
2025-09-15 19:09:06 +00:00
Cacodemon345
7ac4b8de3a
Revert some changes
2025-09-15 17:39:22 +00:00
Cacodemon345
0a22140c70
Try for some fixes
2025-09-15 15:56:00 +00:00
Cacodemon345
fe28a8bb62
Disable unrolling for now
2025-09-15 11:47:03 +00:00
Cacodemon345
1d8877fba7
Progress on ARM64 MMX opcodes
2025-09-15 09:19:40 +00:00
Cacodemon345
d824fc36df
Yet more logging
2025-09-15 12:34:34 +06:00
Cacodemon345
97ab7a8ce8
More warning fixes
2025-09-15 11:38:43 +06:00
Cacodemon345
4735998b8a
Warning fixes
2025-09-15 11:38:43 +06:00
Cacodemon345
6229607277
Temp MMX debugging logs
2025-09-15 11:38:43 +06:00
Cacodemon345
15a3df6135
Fix PACK* recompiled instructions on ARM64
2025-09-15 11:38:43 +06:00
Cacodemon345
ffed72f823
NDR (AArch64): Fix ismmx value assignment
2025-09-15 11:38:42 +06:00
Jasmine Iwanek
1488097c7b
Reenable MMX opcodes on ARM new dynarec
2025-09-15 11:38:42 +06:00
Jasmine Iwanek
6de981363e
Use SQXTUN instead of UQXTN in PACKUSWB on arm64
2025-09-15 11:38:42 +06:00
starfrost013
57ae731e22
Goodbye, 32-bit
2025-09-14 01:32:41 +01:00
OBattler
af0498569c
All the changes.
2025-07-21 06:07:34 +02:00
Cacodemon345
67f4ec6075
x64 NDR: Guard fatals behind RECOMPILER_DEBUG
2025-07-10 01:38:56 +06:00
Cacodemon345
aafd2f22f5
NDR: For barrier micro-ops, lazily mark written registers instead of iterating
...
Also remove some dead code in there.
4-5% more improvement observed.
2025-07-10 01:38:56 +06:00
Cacodemon345
864e01b0e2
x64 NDR: Disable all register-related fatals
...
1% lows are much more improved than before
2025-07-10 01:38:56 +06:00
Cacodemon345
0446e3c3f1
Optimize NDR uop_CALL_INSTRUCTION_FUNC by loading the fetchdat in one uOP instead of two
...
Another 3-5% NDR improvement noticed on the WOLF3D MAPEDIT idle loop as a result.
2025-07-10 01:38:55 +06:00
Cacodemon345
5584eb31a4
Shift IREG_FPU_TOP to end
2025-07-10 01:38:55 +06:00
Cacodemon345
bad1813b4b
New dynamic recompiler register optimizations
...
1. Register enums now implicitly start from 0, instead of explicitly.
2. Removed unused `acycs` enum.
3. Volatile registers are now at the end of the list.
3. Make `codegen_reg_mark_as_required` function only handle registers after IREG_EBX and before any volatile registers.
3-5% performance improvement observed on Linux.
2025-07-10 01:38:55 +06:00
Jasmine Iwanek
3a26b9d46b
Many warning fixes
2025-06-28 23:54:07 -04:00
OBattler
b3147ee473
LOCK instruction: ensure it is always illegal on opcodes 90h and ECh.
2025-05-18 02:20:18 +02:00
OBattler
30d7c8f51c
The recently introduced x86_64 variant of host_x86_MOV32_REG_ABS() was allocating the wrong number of bytes.
2025-05-17 22:56:15 +02:00
OBattler
ddd271f6ee
Honore the fixed bits of flags when pushing them to the stack, fixes #5093 .
2025-05-17 21:02:06 +02:00
Cacodemon345
b179955a12
x64 NDR: Avoid pushes/pops for host_x86_MOV32_REG_ABS
2025-05-10 12:57:27 +06:00
OBattler
1dd460e9a4
x86_64 new recompiler: properly handle cases where pccache is not within 2 GB of the beginning of the RAM array.
2025-05-10 06:22:56 +02:00
Cacodemon345
e076c1051d
Fix x87_op being outside of structure, fixing crashes in ARM64 NDR
2025-04-26 23:23:34 +06:00
OBattler
8790395a05
Fix the FXSAVE/FXRSTOR instructions.
2025-04-22 09:13:38 +02:00
OBattler
ba19b8af89
x86_64 new recompile: fix registers clean-up on block exit.
2025-04-20 23:19:17 +02:00
OBattler
e2f8a58d95
Fix the LxS fix on the new recompiler.
2025-04-10 01:08:21 +02:00
OBattler
3b5966eb46
LDS/LES/LFS/LGS/LSS: Fix segment wraparounds in 16-bit address mode.
2025-04-07 06:03:19 +02:00
OBattler
04247b3c25
Both recompilers: Temporarily disable recompilation of exactly four memory versions in 32-bit address move of opcode C6h (8-bit MOV immediate) because they currently break NT 3.x NTVDM, fixes #5038 .
2025-04-01 06:36:16 +02:00
Cacodemon345
94cf5d59a2
host_x86_MOV8_REG_ABS: Avoid more fatals
2025-03-28 22:35:56 +06:00
OBattler
67f0e95740
Fixed an off by 1 error in the new recompiler.
2025-03-19 00:24:13 +01:00
OBattler
79134f3b21
Assorted Cyrix (and Codegen opcode Mod R/M passing table) fixes - fixes Windows 98 SE on Cyrix 6x86's with power management enabled.
2025-03-17 03:40:52 +01:00
Cacodemon345
6b55b2383a
Misc NDR changes
...
Force NDR on ARMv7/ARM64
Make GCC/Clang not use anything in the red zone
Compile with `-fno-omit-frame-pointer`
2025-03-02 23:14:10 +06:00
Cacodemon345
f290cc0173
x64 NDR: Fix crashes/undefined behaviour with 2+ GB of allocated RAM
2025-03-01 22:31:10 +06:00
Cacodemon345
843dee5707
x64 NDR: Properly address the entire cpu_state struct
...
All missing edge cases are now handled where possible
2025-03-01 15:05:39 +06:00
Cacodemon345
6bb2b447fd
Revert "x87: Fix Final Reality discolored screen for all dynarecs"
...
This reverts commit 03dd94f361 .
2025-02-28 16:51:33 +06:00
Cacodemon345
03dd94f361
x87: Fix Final Reality discolored screen for all dynarecs
2025-02-27 13:50:45 +06:00
Jasmine Iwanek
5b894c32e6
Macro Cleaning
2025-02-08 01:28:24 -05:00
Jasmine Iwanek
5f273265ae
Assorted warning fixes
2025-02-02 03:24:50 -05:00