Commit graph

34 commits

Author SHA1 Message Date
Jean-Philip Desjardins
39d664357a Handle VU branching peculiarities found in Star Ocean 3.
Can probably be extended if we find other problematic cases.
2020-06-02 15:12:27 -04:00
Jean-Philip Desjardins
9a8e08c4c1 Code style fixes. 2020-03-03 09:44:25 -05:00
Jean-Philip Desjardins
c3a1e62b43 Check broadcast elements in FMAC stall detection.
Probably needs more checks, but this is a start.
2020-03-02 21:18:16 -05:00
Jean-Philip Desjardins
8d38672c42 Update flag skip compile hint algorithm. 2020-02-27 19:46:02 -05:00
Jean-Philip Desjardins
cbc901c25b Go back to the static adjustment approach.
But this time, do the check per element to prevent false positives that broke games like FF12.
2020-02-27 19:46:02 -05:00
Jean-Philip Desjardins
4aeadfab7b Another slightly different approach.
Fixes Rogue Galaxy.
2020-02-27 19:46:01 -05:00
Jean-Philip Desjardins
20103cec22 Slightly different approach.
Only update Q and P pipelines when a stall is detected.
Fixes FF12.
2020-02-27 19:46:01 -05:00
Jean-Philip Desjardins
8d1f0e0eb8 Add very basic FMAC hazard detection. 2020-02-27 19:46:01 -05:00
Jean-Philip Desjardins
cc274e96b1 Fix code style. 2020-02-10 21:40:09 -05:00
Jean-Philip Desjardins
41b012bfd8 Better skip flags hint computation.
Fixes KH2.
2020-02-10 21:40:09 -05:00
Jean-Philip Desjardins
39db2e8ab0 Move hints computation to a function. 2020-02-10 21:40:09 -05:00
Jean-Philip Desjardins
66684a16b0 Skip flags update when we're sure result won't be used.
This is proof of concept, needs to be cleaned.
2020-02-10 21:40:08 -05:00
Jean-Philip Desjardins
b475b8ff16 Experimental P pipeline support. 2018-08-31 07:40:14 -04:00
Jean-Philip Desjardins
3210ffecfa Breakpoints now work again. 2018-07-26 21:38:17 -04:00
Jean-Philip Desjardins
f2f0b9e6ca Prolog is actually the epilog. 2018-07-26 21:38:16 -04:00
Jean-Philip Desjardins
193e72635a Block lookup table now only stores "entry-point" functions to guest code.
Used to be a 1 to 1 map to covering function for a specific address.
2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
5e6058b530 Move PC changing piece of code in compiled block.
Makes basic blocks more generic.
2018-07-26 21:38:14 -04:00
Clang-Format
acf75535ec Clang format 2018-04-30 21:01:23 +01:00
Jean-Philip Desjardins
4ed0b7f711 Clear pending XGKICK if current instruction is an XGKIGK. 2017-08-09 23:06:27 -04:00
Jean-Philip Desjardins
2d229688ae Cleanup. 2017-08-09 23:06:27 -04:00
Jean-Philip Desjardins
f5133ab86a Store XGKICK address for delayed execution. 2017-08-09 23:06:26 -04:00
Jean-Philip Desjardins
8c9aa190f3 Delay execution of XGKICK. 2017-08-09 23:06:26 -04:00
Jean-Philip Desjardins
0ff20307b2 Cleanup. 2017-08-09 23:06:26 -04:00
Jean-Philip Desjardins
cdf153ebb0 Cleanup. 2017-01-29 21:13:27 -05:00
Jean-Philip Desjardins
39d8d55630 Reorganised integer branch delay handling code.
Also made it work with all games that had known issues.
2016-08-16 22:05:50 -04:00
Jean-Philip Desjardins
cb12d803ab Use branchValue. 2016-08-16 22:05:43 -04:00
Jean-Philip Desjardins
8ccea2bb00 Merge branch 'lego_spike' 2016-08-16 22:05:26 -04:00
Jean-Philip Desjardins
5569aa2e8c Cleanup. 2016-08-06 22:42:47 -04:00
Ian Brown
330a6dcf65 only take the delayed integer value when it is set in the current block. 2016-06-21 22:31:05 +01:00
Ian Brown
c696a4fbac deal with edge case where register value is read before the start of the block. It's not ideal, but it's probably sufficient. Fixed brace placement to suit existing convention. 2016-06-10 17:04:41 +01:00
Ian Brown
b67a2eb74c turned optimisation back on 2016-06-06 23:09:08 +01:00
Ian Brown
1f28c743d7 use GetAffectedOperands in conditional branch optimisation. 2016-06-06 22:58:03 +01:00
Ian Brown
72a5ab6279 quick spike to investigate a technique for conditional branching. 2016-06-03 23:35:59 +01:00
Jean-Philip Desjardins
fcf1b11f1b Moved EE and GS specific files in a separate folder. 2015-05-06 00:54:15 -04:00
Renamed from Source/VuBasicBlock.cpp (Browse further)