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