Commit graph

97 commits

Author SHA1 Message Date
Jean-Philip Desjardins
c2399cdf34 Fix some parameter values that were implicitly converted to RETURN_VALUE. 2024-01-26 13:45:03 -05:00
Jean-Philip Desjardins
97535eb31e Generate illegal instruction traps instead of tripping asserts at compile tile. 2024-01-26 13:44:57 -05:00
Jean-Philip Desjardins
9f36415e3c Fix some missing sign extending. 2023-09-29 14:02:38 -04:00
Jean-Philip Desjardins
3714becead Remove dead code. 2023-09-29 14:02:38 -04:00
Jean-Philip Desjardins
e428124d57 Use 8-bit indexed accesses. 2023-09-29 14:02:38 -04:00
Jean-Philip Desjardins
331e0704f6 Use 16-bit indexed accesses. 2023-09-29 14:02:38 -04:00
Jean-Philip Desjardins
0304d98216 Use indexed access for all 32-bit memory accesses. 2023-08-14 10:23:06 -04:00
Jean-Philip Desjardins
32511b3295 Use indexed 64-bit memory accesses. 2023-08-08 09:18:02 -04:00
Jean-Philip Desjardins
53d2d49464 Implement TEQI and check traps in debug builds.
Better than doing absolutely nothing, though very unlikely to trigger in normal circumstances.
2023-03-05 10:05:11 -05:00
Mahmood - Zer0xFF
c69c9d1daa make EE jumps relative 2022-10-25 17:27:51 -04:00
Mahmood - Zer0xFF
2f4f10e91c make VU jumps relative: pass instruction relative location CMIPSInstructionFactory 2022-10-25 17:27:51 -04:00
Jean-Philip Desjardins
23cce97db2 Add basic TLB support.
Only enabled if exception handlers are set.
2020-08-06 16:57:13 -04:00
Jean-Philip Desjardins
734e0bc0e8 Code style fixes. 2019-04-29 22:38:04 -04:00
Jean-Philip Desjardins
9664a470d5 Remove uses of IsRefNull. 2019-04-29 22:38:04 -04:00
Jean-Philip Desjardins
6326378c2a Second pass on vmap.
Almost all memory access instructions can now use the page table.
2019-04-29 22:38:04 -04:00
Jean-Philip Desjardins
099e5fbf99 Cleanup. 2019-04-29 22:38:04 -04:00
Jean-Philip Desjardins
8868d76c4b Cleanup. 2019-04-29 22:38:04 -04:00
Jean-Philip Desjardins
c832c60b8d vmap prototype 2019-04-29 22:38:03 -04:00
Jean-Philip Desjardins
f14c8d47f4 Prevent MFHI and MFLO from clobbering R0. 2018-05-22 20:37:51 -04:00
Clang-Format
acf75535ec Clang format 2018-04-30 21:01:23 +01:00
Jean-Philip Desjardins
6122f674e6 Add guards to prevent unwanted formatting. 2018-04-30 11:19:06 -04:00
Jean-Philip Desjardins
839569cf06 Prevent JALR from clobbering R0. 2018-04-03 09:18:41 -04:00
Jean-Philip Desjardins
f9224d6aaf Expose double word memory functions to AOT compiler. 2017-08-20 23:17:45 -04:00
Jean-Philip Desjardins
184a25c09c Add stub for TEQ. 2017-05-07 22:02:08 -04:00
Jean-Philip Desjardins
aca766db31 Implement DSUB. 2016-05-08 17:44:00 -04:00
Jean-Philip Desjardins
aa678fc973 Added DADDI. 2015-07-11 00:15:18 -04:00
Jean-Philip Desjardins
df50662e03 Changed multiply template functions to be similar to division template functions. 2015-04-23 01:04:42 -04:00
Jean-Philip Desjardins
7d2181142a Added better handling of integer division by 0 and overflow (not perfect yet). 2015-04-23 01:01:46 -04:00
Jean-Philip Desjardins
b1d8916a7c Prevent load instructions from clobbering R0. 2015-04-11 02:06:14 -04:00
Jean-Philip Desjardins
8ccd608a1d Added BLTZAL, BLTZALL and BGEZALL. 2015-04-11 01:18:09 -04:00
Jean-Philip Desjardins
770c7fe0cf Added some checks to prevent emulator from writing to R0. 2015-04-08 01:15:11 -04:00
Jean-Philip Desjardins
8685a7e1e2 Added BGEZAL. 2015-01-04 22:11:43 -05:00
jpd002
f2686663af Made memory utils proxies normal "C" functions to accommodate AOT compilation.
git-svn-id: http://svn.purei.org/purei/trunk@1097 b36208d7-6611-0410-8bec-b1987f11c4a2
2013-04-14 06:33:04 +00:00
jpd002
c5b5e43264 Added DSRAV and updated tests.
git-svn-id: http://svn.purei.org/purei/trunk@1013 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-10-03 07:18:50 +00:00
jpd002
f910661c47 First pass of cleanup for C++11.
git-svn-id: http://svn.purei.org/purei/trunk@851 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-03-11 20:06:14 +00:00
jpd002
42c704aca2 Changed 64-bits and 128-bits memory access instructions to use new 64-bits and 128-bits params/return values now supported in Jitter.
git-svn-id: http://svn.purei.org/purei/trunk@843 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-01-08 06:20:22 +00:00
jpd002
c8c33ccda3 Added a way to force checking of pending interrupts when EI is used.
Specifed the type of exception in SYSCALL and ADDIU R0, R0, $x

git-svn-id: http://svn.purei.org/purei/trunk@804 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-10-23 20:26:15 +00:00
jpd002
f8ff3ff8f3 More fixes for Atelier Iris running under new JIT compiler.
git-svn-id: http://svn.purei.org/purei/trunk@717 b36208d7-6611-0410-8bec-b1987f11c4a2
2010-11-01 01:05:26 +00:00
jpd002
98c12c9be4 More changes to allow quake.elf to work properly.
git-svn-id: http://svn.purei.org/purei/trunk@708 b36208d7-6611-0410-8bec-b1987f11c4a2
2010-10-08 00:27:22 +00:00
jpd002
f3eeac4d76 More changes to allow quake.elf to run a bit further.
git-svn-id: http://svn.purei.org/purei/trunk@707 b36208d7-6611-0410-8bec-b1987f11c4a2
2010-09-21 02:33:34 +00:00
jpd002
ea974bcd47 More changes to allow quake.elf to run a bit further.
git-svn-id: http://svn.purei.org/purei/trunk@706 b36208d7-6611-0410-8bec-b1987f11c4a2
2010-09-17 18:44:40 +00:00
jpd002
5a339dd5db Fixed compilation using the new JIT compiler engine.
git-svn-id: http://svn.purei.org/purei/trunk@704 b36208d7-6611-0410-8bec-b1987f11c4a2
2010-09-03 21:13:57 +00:00
jpd002
0e8719ada7 Changed the way LWL/LWR and SWL/SWR work because it was accessing register values while there is no guarantee that their values were right (because of register allocation).
git-svn-id: http://svn.purei.org/purei/trunk@696 b36208d7-6611-0410-8bec-b1987f11c4a2
2010-08-24 01:49:42 +00:00
jpd002
4574b116f7 Integrated new JIT compilation engine in the trunk.
- Removed the old CodeGen classes.
- Fixed everything to make PsfPlayer work at a decent level.
- Added 64-bits configs to PsfPlayer.

git-svn-id: http://svn.purei.org/purei/trunk@692 b36208d7-6611-0410-8bec-b1987f11c4a2
2010-08-11 03:47:19 +00:00
jpd002
dc80b53046 - Changed the way idle detection is done to improve PSX idle loop skipping.
- Added some asserts for 64-bits specific instructions to prevent confusion on PSP.

git-svn-id: http://svn.purei.org/purei/trunk@606 b36208d7-6611-0410-8bec-b1987f11c4a2
2010-03-30 04:19:45 +00:00
jpd002
5ef852659f Added a few instructions and fixed bug in QFSRV.
git-svn-id: http://svn.purei.org/purei/trunk@551 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-10-04 01:58:15 +00:00
jpd002
c101d4a07a Some changes for FFX.
git-svn-id: http://svn.purei.org/purei/trunk@544 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-09-30 00:45:26 +00:00
jpd002
7b7c69d8b0 More ARM stuff
git-svn-id: http://svn.purei.org/purei/trunk@521 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-05-09 16:35:34 +00:00
jpd002
651937eeb5 - Small C++ conformance updates
- AND for MIPS32.

git-svn-id: http://svn.purei.org/purei/trunk@494 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-04-13 23:31:11 +00:00
jpd002
a6e12114d7 Added changes to MIPSInstructionFactories. Not a singleton anymore, so it allows a 32-bits and 64-bits version of the architecture to live together.
PsfPlayer bios memory ownership fixes.

git-svn-id: http://svn.purei.org/purei/trunk@490 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-03-30 04:57:52 +00:00