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
OBattler
403a7a995b
New recompiler: read the two bytes of unaligned 16-bit immediates into the correct IR bytes, fixes Windows 95 Setup GPF'ing.
2025-02-01 21:39:15 +01:00
RichardG867
1e052e5dc0
Use plat_mmap on the dynarecs as well
2024-11-20 11:23:24 -03:00
OBattler
fb1a4677c6
More NetBSD fixes.
2024-11-20 01:42:32 +01:00
Jasmine Iwanek
f4b63caf0b
One line per file in CmakeLists.txt
2024-09-04 18:34:06 -04:00
Jasmine Iwanek
059c6156df
Break out the K5 timings
2024-08-12 20:02:18 -04:00
OBattler
c852c99d8f
Modern header fixes.
2024-06-10 03:51:10 +02:00
OBattler
2273f563a5
Moved the offending SoftFloat-related stuff to x87_sf.h, fixes warnings.
2024-06-10 00:08:48 +02:00
TC1995
0f29bcddf1
Upgrade to softfloat3e.
...
This should solve licensing problems as well.
2024-06-09 23:08:46 +02:00
OBattler
48513fe6aa
Fixed two warnings in codegen_new/codegen_backend_x86-64.c.
2023-12-16 20:45:03 +01:00
OBattler
535fd005dc
Removed the useless codegen_close().
2023-10-07 22:50:17 +02:00
Jasmine Iwanek
29b648450a
More linting in src/codegen_new
2023-08-23 04:15:59 -04:00
OBattler
1d48363803
The 286/386 interpreter now has its own variant of x86seg.c.
2023-08-21 02:56:33 +02:00
Jasmine Iwanek
48f9a5082d
PRIx64, not PRIu64
2023-08-15 15:31:23 -04:00
Jasmine Iwanek
375f69ed61
Fix more compile warnings
2023-08-15 13:28:04 -04:00
cold-brewed
99cdd3a16a
Various warning cleanups
2023-08-12 11:42:11 -04:00
cold-brewed
f40184d43f
Clear up a clang warning by correcting a format string
2023-08-09 07:48:12 -04:00
OBattler
5f72dc7d56
More fixes.
2023-08-08 16:17:01 +02:00
OBattler
ce5e21f870
More warning and compile fixes.
2023-08-08 15:38:40 +02:00
OBattler
3555dacec3
Disable MMX and 3DNow! recompilation when SoftFloat is in use.
2023-07-16 03:45:14 +02:00
OBattler
29fe9b4d1e
Added a sanity check to codegen_new/codegen.h.
2023-06-18 23:54:25 +02:00