Henrik Rydgård
9d36a08ec4
Some renaming, remove a gross hack
2024-07-21 19:12:51 +02:00
Henrik Rydgård
8a535ed5d4
Bugfix in DoIRInst, thanks Nemoumbra
2024-07-21 18:56:22 +02:00
Henrik Rydgård
fb499bf5bf
ARM32: Remove runtime checks for VFPv3 and NEON since we require these when building anyway.
2024-07-17 22:14:24 +02:00
Henrik Rydgård and GitHub
e01ca5b057
Logging API change (refactor) ( #19324 )
...
* Rename LogType to Log
* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.
* Mac/ARM64 buildfix
* Do the same with the hle result log macros
* Rename the log names to mixed case while at it.
* iOS buildfix
* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Henrik Rydgård
982a83d867
IRInterpreter: Optimize variable shifts (no need to mask by 0x1f)
2024-06-24 09:30:21 +02:00
Henrik Rydgård
06315ae6ee
IRInterpreter: Slight optimization for fmul
...
Just put stuff in temporaries, allows for better codegen
2024-06-24 09:12:57 +02:00
Henrik Rydgård
6ebec02f05
Fix crash in JITIR after disassembly improvement.
...
Fixes #19292
2024-06-22 15:16:27 +02:00
Henrik Rydgård
06e636bfdc
Build and comment fixes
2024-06-19 20:24:59 +02:00
Henrik Rydgård
e64d768113
Implement the same for ARM64
2024-06-19 20:00:36 +02:00
Henrik Rydgård
0080f71ca4
Implement FPU rounding mode support in the IR interpreter for x86/x64
2024-06-19 18:09:38 +02:00
Henrik Rydgård
9ef5250387
IRJit: If we're in "JIT using IR" mode, don't accidentally optimize for the interpreter.
2024-06-11 10:24:08 +02:00
Henrik Rydgård
5bfc0259be
Optimize away the redundant vector loads in the Wipeout games.
2024-06-08 23:22:58 +02:00
Henrik Rydgård
2ff91fab2b
Optimize a common case of the ins instruction
2024-06-08 23:10:29 +02:00
Henrik Rydgård
c9ca3904d3
Combine move-from-gpr and float cast.
2024-06-08 22:59:48 +02:00
Henrik Rydgård
0abcd00372
IR Interpreter: Don't split up lone lwr/swr/lwl/swl instructions, the interpreter handles them faster.
2024-06-08 22:28:11 +02:00
Henrik Rydgård
0c246297d2
Create an IR op for a FPRtoGPR + shift-right-8, very common
2024-06-07 21:26:20 +02:00
Henrik Rydgård
d1e0384b2f
Improve disasm
2024-06-07 19:32:37 +02:00
Henrik Rydgård
bd0beb68a4
Add new IR optimization pass, OptimizeLoadsAfterStores
2024-06-07 19:32:37 +02:00
Henrik Rydgård
da88011805
Specialize a few arithmetic instructions for the interpreter.
2024-06-07 19:32:37 +02:00
Henrik Rydgård
a4c4fb44fb
Cleanup
2024-06-07 18:33:48 +02:00
Henrik Rydgård
94ef6d4ce7
Fix savestates (oops)
2024-06-07 18:33:40 +02:00
Henrik Rydgård
7ef6cdb515
Improve accuracy of block timing
2024-06-07 10:17:16 +02:00
Henrik Rydgård
a6f398a7d2
Add IRJit arena overflow check
2024-06-07 10:17:01 +02:00
Henrik Rydgård
8d6e96d04e
Use binary search to find IR block offsets
2024-06-07 09:28:27 +02:00
Henrik Rydgård
ee6ba74c88
Store IRInst offsets instead of block indices
2024-06-07 09:28:27 +02:00
Henrik Rydgård
5526ef012c
Store IR instructions in a large arena vector instead of loosely in each block.
2024-06-07 09:28:27 +02:00
Henrik Rydgård
0ea9120ca5
Add a stats view
2024-06-06 19:21:50 +02:00
Henrik Rydgård
d1a00f61de
Improve disassembly of CallReplacement IR op
2024-06-06 15:24:58 +02:00
Henrik Rydgård
584d07ea8e
iOS: Implement basic physical keyboard support
2024-06-05 23:27:03 +02:00
Henrik Rydgård
294593f741
Fix IR profiling
2024-06-05 19:12:08 +02:00
Henrik Rydgård
5583dc10d5
Hook up profiling, something is wrong
2024-06-05 18:58:33 +02:00
Henrik Rydgård
3bb74ea9ad
Rework the JitCompare window to hold a list of blocks, and allow some filtering and browsing
2024-06-05 18:16:33 +02:00
Henrik Rydgård
feeddbabe3
Redesign the jit compare screen a bit (add a top bar)
2024-06-05 16:13:38 +02:00
Henrik Rydgård
ba1ced77c3
IRJit block profiling basics
2024-06-05 13:02:40 +02:00
Henrik Rydgård
becc145099
Improve code generation for some IRInterpreter ops
2024-06-02 10:25:04 +02:00
Henrik Rydgård
d4e3597ddb
Minor codegen improvement
2024-06-02 10:23:44 +02:00
Henrik Rydgård
3b5c71170c
IRInterpreter: Various SIMD optimization. Move out the reverse-bits implementation
2024-06-01 20:29:03 +02:00
Henrik Rydgård
49b0af20ca
IRInterpreter: Reorder some ops towards the end, trying to keep "hot" ops together
2024-06-01 18:06:31 +02:00
Henrik Rydgård
f2837e3b55
JIT compare screen with IR blocks - fix some crashing issues
2024-05-26 14:10:50 +02:00
Henrik Rydgård
7464b5f17b
IRInterpreter: Enable some optimizations that accidentally were only enabled on non-ARM64.
2024-05-26 13:41:31 +02:00
Henrik Rydgård
e75e7a0e43
Add an optimizeForInterpreter flag
2024-05-26 13:41:31 +02:00
Henrik Rydgård
bdf7f5f40f
IRInterpreter: Fix issue where we could accidentally optimize out CallReplacement ops.
2024-05-26 00:12:48 +02:00
Henrik Rydgård
5e3abe3def
IRInterpreter compiler: Reject all vec2ops where the prefix is unknown
...
Fixes #19164
May help #19172
2024-05-22 23:19:14 +02:00
Henrik Rydgård
fae846e52a
Remove the count parameter from IRInterpret. This is a good speed boost!
2024-05-10 23:31:24 +02:00
Henrik Rydgård
7a097cb34a
Shave a couple instructions in the common case
2024-05-10 23:23:58 +02:00
Henrik Rydgård
c332d564db
IRInterpreter: Cache the MIPSState pointer in a local, faster address check
2024-05-10 23:21:51 +02:00
Henrik Rydgård
092179c42d
More IR interpreter tweaks
2024-05-10 18:41:55 +02:00
Henrik Rydgård
91d9ef9b81
Minor IR interpreter optimization
2024-05-10 18:27:29 +02:00
Herman Semenov
17ecee1715
Fixed return copies from functions and const ref params
2024-04-02 18:37:00 +03:00
Henrik Rydgård
e3177ac870
Make some global string pointers const, not just the strings.
...
Minor cleanup.
2023-12-29 14:09:45 +01:00