Commit Graph

127 Commits (1adf36ccb2b9e230d015cf6ba4b0026408ad383e)

Author SHA1 Message Date
Stenzek d3ceda0c5b
CPU/CodeCache: Improve block host size heuristics
Codegen is much better these days, especially with NewRec.
2 years ago
Stenzek 0faa9cf650
Build: Add Devel configuration
Gets you debug assertions and logging, while still producing an
optimized executable.
2 years ago
Stenzek 5261cfe8e4
CPU/Recompiler: Tidy up type names
And reduce global namespace pollution.
2 years ago
Stenzek f67eacc071
CPU: Default to new recompiler/remove old recompiler 2 years ago
Stenzek 8bd0e6c3f7
CPU/CodeCache: Clear blocks on system shutdown
Means we release all allocated memory on system shutdown, rather
than waiting until the next VM/system start.
2 years ago
Stenzek 6551358212
Log: Replace channel string search with bitset
Knocks off around ~20KB of code.
2 years ago
Stenzek 26b6c704f0
MemMap: Support dynamic page size selection
i.e. 4K to 16K on ARM64.
2 years ago
Stenzek b36e2ce6be
CPU/CodeCache: Don't create a branch block with no delay slot
Can't compile that.
2 years ago
Stenzek 3dca598063
Log: Switch to enum class
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2 years ago
Stenzek ab1c85790c
CPU: Refactor execution mode switching
Fixes single step breaking in branch delay slots with recompiler.
Simplifies initialization.
Removes multiple sources of truth for fastmem.
2 years ago
Stenzek 7f4e5d55db
Misc: Update copyright headers 2 years ago
Stenzek 86d4d92753
TimingEvents: Switch to 64-bit counters 2 years ago
Stenzek 2e2451998c
Misc: Fix ARM32 build (again) 2 years ago
Stenzek a2f98541b3
Misc: Slim down some header includes 2 years ago
Stenzek 2e96931c32
CPU/CodeCache: Dynamically compute BIOS memory access timing
The timings can change if the game does so. Instead of forcing the
blocks to recompile, we can just manually multiply size * word_time.

Improves stability of Nightmare Creatures booting, and fixes corrupted
text in Formula Circus when using the cached interpreter.
2 years ago
Stenzek 2ac2ad605e
CPU/Recompiler: Break blocks on invalid instructions 2 years ago
Stenzek 3b9c489787
CPU: Pass instruction query values by reference 2 years ago
Stenzek f3671d21f3
CPU/CodeCache: Reduce far code size when using NewRec 2 years ago
Stenzek 9b42ad3859
CPU/CodeCache: Purge JitCodeBuffer 2 years ago
Stenzek be8fbafd71
CPU/CodeCache: Always dynamically allocate code buffer
Reduces .bss size.
2 years ago
Stenzek 4e922a34a7
Log: Simplify macros 2 years ago
Stenzek 9f90f14c48
CPU/CodeCache: Only print code size stats on request 2 years ago
Stenzek b6d019db66
Misc: Replace log printf calls with fmt 2 years ago
Stenzek 8f415a44e6
CPU/NewRec: Fix register allocation crash on Linux 2 years ago
Stenzek fa104acdd1
Misc: Purge unused code and report startup error to host 2 years ago
Stenzek 71f50566f3
System: Consider pending ticks when using global ticks 3 years ago
Stenzek 4599109854
CPU/CodeCache: Clear backpatch info for blocks when recompiled 3 years ago
Stenzek 454cceab80
CPU/CodeCache: Move backpatch lookup after RAM check
Saves a map lookup if we're just invalidating code.
3 years ago
Stenzek 4a70164dac
CMake: Determine host page size at build time
Needed for running on Asahi Linux.
3 years ago
Stenzek c1381cfda6
System: Gracefully handle memory allocaion failure 3 years ago
Stenzek ff9dc11a38
CPU/CodeCache: Increase frame delta for manual protected blocks
Reduces stutter in Wild Arms 2.
3 years ago
Stenzek 14e3969736
Misc: Warning fixes 3 years ago
Stenzek 21bbe5c76c
CPU/CodeCache: Fix page error when rewinding 3 years ago
Stenzek 6a7dea6908
CPU/CodeCache: Fix rewinding on Apple Silicon 3 years ago
Stenzek a499e21453
CPU/CodeCache: Don't try to compile direct double branches
Invalidation nightmare.
3 years ago
Stenzek 8ce2be57c5
CPU/CodeCache: Call Block constructor/destructor
Fixes crash in MSVC Debug build.
3 years ago
Stenzek 117cbeecaa
CPU/CodeCache: Fix NewRec on Apple Silicon 3 years ago
Stenzek f786138175
CPU/CodeCache: Fix crash on Apple Silicon 3 years ago
Stenzek 6592cafadc
CPU/NewRec: Add speculative constants 3 years ago
Stenzek c727ac33c7
CPU/CodeCache: Include hi/lo in state logging 3 years ago
Stenzek 9501439d6b
CPU: Add new experimental recompiler 3 years ago
Stenzek a062b00c1a
Bus: Protect main RAM buffer
Get rid of write-time checks.
3 years ago
Stenzek 79e1ae3e54
CPU/CodeCache: Rewrite using new-rec's block management 3 years ago
Stenzek 56fc207af6 CPU: Use lookup tables for memory access 3 years ago
Stenzek b1bb33a566 Common: Move CPU macros to types.h 3 years ago
Stenzek dd204d116e CPU: Warning fix 3 years ago
Stenzek ac0601f408 Common: Drop String, add SmallString 3 years ago
Stenzek 3c68543491 Bus: 16KB page compatibility for mmap fastmem 3 years ago
Stenzek 68b59ee748 CMake: Swap USE_ and WITH_ for ENABLE_
Consistency.
3 years ago
Stenzek 80e3d29ab8 Misc: clang-cl warning clean-up 3 years ago