Commit graph

1886 commits

Author SHA1 Message Date
Paul Holden
4e89d41399 Automated build 2024-01-07 10:13:26 +00:00
Paul Holden
b083ec1938 Fix stray ' 2024-01-07 10:13:10 +00:00
Paul Holden
3c4349934f Add more details to EmulatedException. 2024-01-07 10:13:10 +00:00
Paul Holden
38d841b876 Reorder lookupFragment and avoid invalidating if opsCompiled is zero. 2024-01-07 10:13:10 +00:00
Paul Holden
43769f7eb0 ramDV is unused now. 2024-01-07 10:13:10 +00:00
Paul Holden
b73727596f Remove loadInstructionFast as it's the same as loadU32fast. 2024-01-07 10:13:10 +00:00
Paul Holden
cd42f25798 Use Uint8Array for CPU1 register index lookup tables.
Performance seems the same as Uint32Array but this will help reduce data cache usage.
2024-01-07 10:13:10 +00:00
Paul Holden
c6bf8bf2c2 Add a benchmarch for cop1 register indexing strategies. 2024-01-07 10:13:10 +00:00
Paul Holden
6eb1baadb4 Remove COUNTER_INCREMENT_PER_OP as it's always 1. 2024-01-07 10:13:10 +00:00
Paul Holden
804292cb1b Avoid a little overhead with instruction fetches by caching the DataView. 2024-01-07 10:13:10 +00:00
Paul Holden
4c89533028 Implement RSP PC as a regular member variable rather than using a DataView.
Instead have SPIBIST device read/write this value directly.

This ends up saving quite a lot of overhead in step().
2024-01-07 10:13:09 +00:00
Paul Holden
86a603f190 Add benchmark for updating RSP pc. 2024-01-07 10:13:09 +00:00
Paul Holden
85dc4ffd23 Remove all the signed versions of memory read accessors and just do this as needed in memaccess.
This avoids a lot of duplication and opportunities for bugs (e.g. failing to override correctly)
2024-01-07 10:13:09 +00:00
Paul Holden
21c6d6d55f Add benchmark for signed/unsigned conversions. 2024-01-07 10:13:09 +00:00
Paul Holden
293e7c907c Load instructions as unsigned values. 2024-01-07 10:13:09 +00:00
Paul Holden
e8f99daa00 Reorder functions. 2024-01-07 10:13:09 +00:00
Paul Holden
d2edeaa7c8 Move instruction load performance hackery to memaccess. 2024-01-07 10:13:09 +00:00
Paul Holden
f1c65ccb9c Sort imports 2024-01-07 10:13:09 +00:00
Paul Holden
a966914ced Use EmulatedException() for address alignment. 2024-01-07 10:13:09 +00:00
Paul Holden
0a540b96ff Stop exporting functions which aren't referenced elsewhere. 2024-01-07 10:13:09 +00:00
Paul Holden
4be55b6c30 Init RSP in Hardware constructor. 2024-01-07 10:13:09 +00:00
Paul Holden
65c60e403f Automated build 2023-11-18 00:10:05 +00:00
Paul Holden
d14f0ff852 Fix bug in runImpl which was preventing backwards branches from being detected and therefore rendering dynarec inert most of the time.
`pc` was being converted to a signed value for fast memory accesses, but was being compared to an unsigned value for backwards branch detection.
2023-11-18 00:09:43 +00:00
Paul Holden
a8b88b712f Fix a couple of instructions which should be setting might_adjust_next_pc. 2023-11-18 00:09:43 +00:00
Paul Holden
10f3d66bf0 Fix bug with dynarec when RSP interrupt causes dynarec fragment to return early. 2023-11-18 00:09:43 +00:00
Paul Holden
81e6575bee Fix stray char 2023-11-18 00:09:43 +00:00
Paul Holden
5dedf7163a Remove stale todo. 2023-11-18 00:09:43 +00:00
Paul Holden
7468826334 Format 2023-11-18 00:09:43 +00:00
Paul Holden
f02ccf0c39 Automated build 2023-11-15 08:13:37 +00:00
Paul Holden
09dc5fd235 Add some text to HLE/LLE options. 2023-11-15 08:13:22 +00:00
Paul Holden
0995959cfc Optimise RSP accumulator.
The BigInt conversions are very expensive so implement 64-bit integer addition by hand.

This is about 10-20x faster according to the benchmark.
2023-11-15 08:13:22 +00:00
Paul Holden
fccb771801 Add a benchmark for RSP accumulator 2023-11-15 08:13:22 +00:00
Paul Holden
ccd673407b Automated build 2023-11-12 19:11:50 +00:00
Paul Holden
398e3285ee Make some helpers members of RSP. 2023-11-12 19:11:34 +00:00
Paul Holden
af1a1148d6 Fix RSP jumps to 0x1000.
Due to the masking these jumps were being silently ignored. Among other things this broke perspective divide for GBI0 microcode, which call this function at 0x1000.
2023-11-12 19:11:34 +00:00
Paul Holden
cb9156f9a1 Fix LLV and LDV disassembly. 2023-11-12 19:11:34 +00:00
Paul Holden
c1ec538a66 Make dumpMicrocodeSubstring optional. 2023-11-12 19:11:34 +00:00
Paul Holden
34b1233f1e Format 2023-11-12 19:11:34 +00:00
Paul Holden
e5509d1f53 Fix VSAR for the default case.
When the accumulator value is signed this was producing values of -1 rather than 0.
2023-11-12 19:11:34 +00:00
Paul Holden
bf010761d9 Fix bug with getCyclesUntilEvent - this was returning undefined which breaks VI and AI syncing. 2023-11-12 19:11:34 +00:00
Paul Holden
c215dcee83 Automated build 2023-11-08 23:44:02 +00:00
Paul Holden
1f78a2493b Fix imports. 2023-11-08 23:43:45 +00:00
Paul Holden
96dd7deae0 Rename flip to rightMajor. 2023-11-08 23:43:45 +00:00
Paul Holden
38eeb0b54b Add an option to dump RDP commands. 2023-11-08 23:43:45 +00:00
Paul Holden
74a57e46be Automated build 2023-11-07 22:26:15 +00:00
Paul Holden
c6f5c71981 Call executeUnhandled. 2023-11-07 22:25:52 +00:00
Paul Holden
9663de9311 Call RDP from DPC. 2023-11-07 22:25:52 +00:00
Paul Holden
4d6b999455 Add an RDP device and flesh out commands. 2023-11-07 22:25:52 +00:00
Paul Holden
37f82a4b3f Fix executeRDPCommandHalf22Final. 2023-11-07 22:25:52 +00:00
Paul Holden
b48f2a06eb Add a RDPBuffer helper.
This hides a bit of the complexity of needing to wrap around DMEM. Still needs some work.
2023-11-07 22:25:52 +00:00