Commit graph

65 commits

Author SHA1 Message Date
Jean-Philip Desjardins
5e32c0586a Implement TLBR & move TLBWI. 2020-08-06 16:57:13 -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
76413f1fa0 Add implementation for TLBWI. 2020-08-06 16:57:12 -04:00
Jean-Philip Desjardins
239f6c53c7 Make sure sticky flags arrive at the proper time. 2020-06-02 15:12:27 -04:00
Jean-Philip Desjardins
2ae43e0320 Don't cache blocks that have breakpoints.
Broke breakpoint toggling.

(cherry picked from commit 3d2ed9e20f2b917b10f359ee76c8724192e839c2)
2020-02-10 21:40:09 -05:00
Jean-Philip Desjardins
da4dd4fd61 Let MIPS manage the page lookup table. 2019-04-29 22:38:04 -04:00
Jean-Philip Desjardins
a24c36095b Cleanup. 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
c832c60b8d vmap prototype 2019-04-29 22:38:03 -04:00
Jean-Philip Desjardins
8d498f65b0 Set D flag when division by 0 is encountered. 2018-11-07 12:23:15 -05:00
Jean-Philip Desjardins
3210ffecfa Breakpoints now work again. 2018-07-26 21:38:17 -04:00
Jean-Philip Desjardins
050bf0f854 MipsExecutor is now owned by MIPS CPU context.
Will help to make new breakpoint implementation simpler.
2018-07-26 21:38:16 -04:00
Jean-Philip Desjardins
1f4ba149a1 Block link WIP. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
890708fcba Code style fixes. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
dc597e34ce Add empty block concept. 2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
b30658ba1a Move cycle quota update to block prolog. 2018-07-26 21:38:15 -04:00
Clang-Format
acf75535ec Clang format 2018-04-30 21:01:23 +01:00
Jean-Philip Desjardins
26b6615a0c Cleanup. 2018-04-08 15:59:24 -04:00
Jean-Philip Desjardins
34a1aff123 Switch out current thread before servicing an interrupt.
This fixes issues with some system calls (ie.: iSignalSema) writing values directly in the thread's context
but not being picked up because the thread's context was not saved.
2018-04-06 12:55:25 -04:00
Jean-Philip Desjardins
f5133ab86a Store XGKICK address for delayed execution. 2017-08-09 23:06:26 -04:00
Jean-Philip Desjardins
fa62d627cc Cleanup. 2017-03-12 15:25:40 -04:00
Mahmood(Thunder07)
75f7d0792b Cleanup
Replace WIN32 preprocessor with _WIN32
2017-02-21 15:47:18 +00:00
Jean-Philip Desjardins
df44008996 Document flag context members. 2017-01-29 21:13:27 -05:00
Jean-Philip Desjardins
726af961b5 Renaming and cleanup. 2017-01-06 19:17:22 -05:00
Jean-Philip Desjardins
1cb1b79739 Pipeline CLIP operation results. 2017-01-06 19:17:22 -05:00
Jean-Philip Desjardins
ec81047e9d Add some comments to explain pipeline behaviors. 2017-01-06 19:17:21 -05:00
Ian Brown
72a5ab6279 quick spike to investigate a technique for conditional branching. 2016-06-03 23:35:59 +01:00
Jean-Philip Desjardins
36145a0aa2 Implement MFPS/MTPS and MFPC/MTPC. 2016-05-08 17:43:25 -04:00
Jean-Philip Desjardins
f64682dc72 Added speed hack to help with some games and demos. 2015-07-09 01:14:02 -04:00
Jean-Philip Desjardins
6c32b51d81 Added proper handling of the EIE bit by EI and DI. (needed for liberx) 2015-04-13 00:51:25 -04:00
Jean-Philip Desjardins
d9b934a09e Renamed STATUS_INT to STATUS_IE (which is the proper name for that bit). 2015-04-13 00:24:35 -04:00
Jean-Philip Desjardins
883ace8432 Added basic VU sticky flag support. 2015-03-20 01:41:09 -04:00
Jean-Philip Desjardins
f7cfbb0137 Make sure there's enough space in the MACflag pipeline to store 5 results. 2015-02-16 01:58:40 -05:00
Jean-Philip Desjardins
7a263137c3 More cleanup. 2015-01-03 23:28:08 -05:00
Jean-Philip Desjardins
bec480d3ae Cleanup. 2015-01-03 23:23:15 -05:00
Jean-Philip Desjardins
21904025d2 Moved vuMem pointer in CMIPS so that it doesn't get stored in a saved state. 2014-10-18 18:22:03 -04:00
Jean-Philip Desjardins
5b22670ae4 Made SQ write directly to memory and cleaned up other stuff. 2014-10-08 04:24:09 -04:00
Jean-Philip Desjardins
dfb1e0108e Access memory directly in ILW and ISW in VU generated code. 2014-10-08 01:20:51 -04:00
Jean-Philip Desjardins
eb125d0b48 Removed useless "dual arrays" for COP1 register storage. 2014-09-28 03:09:17 -04:00
Jean-Philip Desjardins
418cee5e51 Some more naming convention cleanup. 2014-08-16 21:42:19 -04:00
Jean-Philip Desjardins
802ffa9160 Removed unused member in CMIPS. 2014-08-16 21:40:57 -04:00
Jean-Philip Desjardins
f66e4366cc Force threads to be rescheduled at the end of an exception on the EE. 2014-06-04 23:37:40 -04:00
jpd002
1e66a2520a Added VCALLMSR and VMADDA.
git-svn-id: http://svn.purei.org/purei/trunk@1016 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-10-09 01:56:38 +00:00
jpd002
3b56af1456 Made breakpoints handling more reliable by moving the breakpoint checking code after function partitioning because a breakpoint inside a non-partitioned function could never be hit.
Also added a different "first run" check for breakpoints that is only enabled when we come back from paused virtual machine state.
Moved more stuff between "DEBUGGER_INCLUDED" ifdefs.

git-svn-id: http://svn.purei.org/purei/trunk@1010 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-09-29 01:28:23 +00:00
jpd002
5fd26ba083 Made address translation take a 32-bits address instead of a 64-bits one. We probably won't ever need to use 64-bits addresses.
git-svn-id: http://svn.purei.org/purei/trunk@909 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-04-16 02:34:36 +00:00
jpd002
c5d4169670 Changed the way the Q and MACflags pipeline is emulated. The current value of the registers are only computed when they are needed instead of tracking the current value at every instruction. Gives a nice FPS boost.
git-svn-id: http://svn.purei.org/purei/trunk@862 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-03-18 01:52:44 +00:00
jpd002
b1afb8abee Added new way to search for blocks in the compiled block list which is O(1).
Removed some useless params in MIPS constructor.
Removed the need for the _PSX preprocessor def.

git-svn-id: http://svn.purei.org/purei/trunk@860 b36208d7-6611-0410-8bec-b1987f11c4a2
2012-03-13 06:16:33 +00:00
jpd002
68735e46e1 Added callMs info field in the MIPS context.
Removed lots of unused fields.
Added an exception type enum.

git-svn-id: http://svn.purei.org/purei/trunk@802 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-10-23 20:19:51 +00:00
jpd002
6d375ec8fd Re-enabled Q register pipeline emulation.
Added MAC flags pipeline emulation.
Removed MAC flags checking patches for Atelier Iris.


git-svn-id: http://svn.purei.org/purei/trunk@746 b36208d7-6611-0410-8bec-b1987f11c4a2
2011-04-03 05:25:07 +00:00
jpd002
448f6f1248 Added needed register to support fixed MR32.
git-svn-id: http://svn.purei.org/purei/trunk@535 b36208d7-6611-0410-8bec-b1987f11c4a2
2009-08-08 02:10:01 +00:00