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