SimoZ64
|
27dc6cfddf
|
Small optimizations: Enable LTO + don't make those two functions virtual in CPU. Around 3 fps improvement
|
2025-07-23 22:08:10 +02:00 |
|
irisz64
|
a3b4e2f374
|
minor perf improvements
|
2025-07-22 17:05:55 +02:00 |
|
irisz64
|
f7ec6df924
|
use a little more c++20/23 features
|
2025-07-22 16:07:00 +02:00 |
|
irisz64
|
3520a309ed
|
ew global variable
|
2025-07-22 12:46:50 +02:00 |
|
irisz64
|
8549d5a21c
|
get rid of fmt dependency since we are on C++23
|
2025-07-22 11:33:42 +02:00 |
|
irisz64
|
559e3eaa6e
|
whatever
|
2025-07-08 16:15:39 +02:00 |
|
irisz64
|
c51725e42f
|
we can emit the instruction inside the delay slot before actually emitting the branch
|
2025-07-08 09:06:49 +02:00 |
|
irisz64
|
d072d37733
|
Actually mark scratch registers + comment out branches for now + rework compilation loop a bit
|
2025-07-07 15:54:04 +02:00 |
|
irisz64
|
f91b0d0242
|
[JIT] implement setPC like regs
|
2025-07-07 11:19:36 +02:00 |
|
irisz64
|
6e69a37a62
|
register constant check optimization + disable branch likely's for now
|
2025-07-07 10:36:16 +02:00 |
|
irisz64
|
dd6c28c9d9
|
should do like interpreter here
|
2025-07-06 21:51:50 +02:00 |
|
irisz64
|
46c2aa2994
|
i'll have to rethink the branches and jumps
|
2025-07-06 20:31:42 +02:00 |
|
SimoZ64
|
d6b78232a6
|
of course if the reg is marked constant, actually read its value at compile time, not emit code to read it at run time, idiot
|
2025-07-04 21:57:50 +02:00 |
|
irisz64
|
444e2f56a3
|
Some JIT fixes
|
2025-07-04 17:07:54 +02:00 |
|
SimoZ64
|
1be357e607
|
gamepad works now finally. Ready for merge in dev
|
2025-06-27 12:18:44 +02:00 |
|
SimoZ64
|
6cf2e7ab70
|
can't use shared_ptr on SDL_Window
|
2025-05-07 17:22:01 +02:00 |
|
SimoZ64
|
b4c5c7a3e4
|
Compiles!
|
2025-05-05 22:15:45 +02:00 |
|
SimoZ64
|
95bf6d292b
|
[JIT]: Fix compilation
|
2025-02-26 10:40:27 +01:00 |
|
SimoneN64
|
7d27351609
|
[Apple Arm] Disable JIT stuff under ARM64 for now
|
2025-02-09 20:53:17 +01:00 |
|
SimoneN64
|
921956268e
|
[Apple Arm] fix remaining issues. Now to figure out how to handle the JIT situation...
|
2025-02-09 20:38:25 +01:00 |
|
SimoneN64
|
e57edb6a9a
|
[Apple Arm] introduce sse2neon
|
2025-02-07 19:32:13 +01:00 |
|
Simone Coco
|
3b06950ba3
|
[JIT]: Introduce pipeline simulation like in the interpreter (still borked)
|
2025-01-29 13:29:42 +01:00 |
|
SimoneN64
|
bb498e599e
|
[JIT]: Registers::Write<bool> handler for Xbyak register write op
|
2025-01-28 00:35:15 +01:00 |
|
SimoneN64
|
7ddce3b909
|
[JIT]: Properly reset
|
2025-01-28 00:34:53 +01:00 |
|
SimoneN64
|
178029b4f2
|
[JIT]: Non-constant SLT
|
2025-01-28 00:34:45 +01:00 |
|
SimoneN64
|
009dd1458d
|
[JIT]: Stupid mov bug + start debugging with capstone
|
2025-01-28 00:12:01 +01:00 |
|
SimoneN64
|
d4ad92a67d
|
[JIT]: Fix argument bug in LW
|
2025-01-23 23:40:05 +01:00 |
|
SimoneN64
|
a1a19e72cd
|
[JIT]: Implement LHU
|
2025-01-23 23:39:53 +01:00 |
|
SimoneN64
|
ee75eb10cf
|
[JIT]: Minor change
|
2025-01-23 23:39:24 +01:00 |
|
Simone Coco
|
f27780a16e
|
[JIT]: Respect Microsoft calling convention too
|
2025-01-23 14:23:27 +01:00 |
|
SimoneN64
|
0d4e8d0e89
|
[JIT]: Stuck in a loop right now, but implemented more instructions and fixed constant branches not actually restoring the program counter if they are not taken
|
2025-01-23 00:11:18 +01:00 |
|
Simone
|
8c70a17c72
|
[JIT]: Implement non-constant dadd, daddu, daddi and daddiu
|
2025-01-22 15:02:59 +01:00 |
|
Simone
|
9c78d71a29
|
[JIT]: Remove redundant register write logic for constant propagation (i.e. if we're writing a simple variable, it's always constant)
|
2025-01-22 11:33:04 +01:00 |
|
Simone
|
0c0e857a6c
|
[JIT]: Constant propagation doesn't need 2 layers + fix JUMP
|
2025-01-22 10:42:35 +01:00 |
|
SimoneN64
|
043e20c517
|
[JIT]: Finally executing out of bootcode!
|
2025-01-21 22:32:24 +01:00 |
|
SimoneN64
|
f67f968f91
|
[JIT]: First compiled block! Figure out why scheduling an event from the emitted code makes the underlying queue point to 0x0...
|
2025-01-20 22:27:18 +01:00 |
|
SimoneN64
|
e065558147
|
[JIT]: Simplify register accesses, implement more instructions, rework some branching logic
|
2025-01-15 00:37:29 +01:00 |
|
Simone
|
23ddc0b9f7
|
[JIT]: Specialize register write handlers
|
2025-01-14 17:21:04 +01:00 |
|
Simone
|
81eca58130
|
[JIT]: More branches. Only left are the "and link" variants
|
2025-01-14 11:48:28 +01:00 |
|
SimoneN64
|
b528b1ef8c
|
Buncha instructions for JIT
|
2025-01-12 23:45:27 +01:00 |
|
SimoneN64
|
536fbddf95
|
Some restructuring
|
2025-01-12 23:45:18 +01:00 |
|
SimoneN64
|
200f6c4515
|
More progress on JIT constant instructions implementations
|
2025-01-06 22:03:39 +01:00 |
|
SimoneN64
|
7d18f2386a
|
Implement FPS counting
|
2024-12-25 21:28:34 +01:00 |
|
SimoneN64
|
cf5b1def4f
|
Undo TLB caching + minor improvements
|
2024-10-15 21:05:33 +02:00 |
|
SimoneN64
|
a0d46ca24e
|
Cached TLB entries
|
2024-10-15 10:56:47 +02:00 |
|
SimoneN64
|
57fd6a9af8
|
Minor nitpicks and smaller perf improvements (barely noticeable)
|
2024-10-14 23:25:09 +02:00 |
|
SimoneN64
|
617a82abff
|
Use bit_cast instead of memcpy/reinterpret_cast where applicable
|
2024-10-14 17:01:58 +02:00 |
|
SimoneN64
|
cd9322d5ef
|
Fix compile on Windows
|
2024-09-26 11:52:34 +02:00 |
|
SimoneN64
|
521cd7c2e0
|
Leverage new bswap functions to the fullest
|
2024-09-25 22:21:20 +02:00 |
|
SimoneN64
|
2744de8d3e
|
Refactor so parallel-rdp is in charge of polling inputs and not the EmuThread
|
2024-09-25 22:10:59 +02:00 |
|