Commit graph

1751 commits

Author SHA1 Message Date
PSISP
6cc3eab3f5
Merge pull request #285 from refractionpcsx2/gs_trans_fix
GS: Fix source_y
2020-02-05 21:23:30 -05:00
refractionpcsx2
0f4ec8c230 Fix source_y for GS Transfers 2020-02-05 22:19:50 +00:00
refractionpcsx2
973c40b9f2 Fix Q Pipe delay on VU JIT
Add some masking to VU JIT
Fix Flag opts on VU JIT for MAC flags when the last position is a NOP
Fix interpreter fallbacks when testing VU JIT lower instructions
2020-02-05 21:21:48 +00:00
dakotachasesmith
793e69a08b Return true if we don't return false in dual issue analysis, properly clear latencies of 1 after dual issue when checking dependencies 2020-02-04 17:43:43 -10:00
dakotachasesmith
1b52066bb1 Don't add a cycle bias to LQC2, SQC2 operations 2020-02-04 16:35:05 -10:00
dakotachasesmith
91c3a52495 Merge branch 'master' into dependency 2020-02-04 14:15:50 -10:00
PSISP
1ff3712b68
Merge pull request #283 from refractionpcsx2/gs_finish
GS: Fix FINISH requests
2020-02-04 19:12:55 -05:00
refractionpcsx2
eb132cfa45 Fix FINISH requests 2020-02-04 23:01:56 +00:00
dakotachasesmith
fb8ae9494b First dual issued instruction has correct cycle count after execution in EE, changes to load_store cycle analysis for precision 2020-02-04 01:51:23 -10:00
dakotachasesmith
998b40783c [EE_JIT64] Fallback on lqc2, sqc2 2020-02-04 00:56:19 -10:00
dakotachasesmith
fcd44f2194 Avoid counting EE cycles twice when encounting COP2 ops on JIT 2020-02-03 15:23:37 -10:00
dakotachasesmith
d737f4423b Change ull literal to (uint64_t) cast for gcc compatibility 2020-02-03 14:46:29 -10:00
dakotachasesmith
db764a2193 Remove cycle_count_now, have cycle_count represent the running cycle total for EE 2020-02-03 14:41:29 -10:00
dakotachasesmith
88202fb2c2 Change EE_InstrInfo::Pipeline to inherit from uint16_t and not uint8_t 2020-02-03 13:35:49 -10:00
dakotachasesmith
1852d4dccc Subtract cycles_to_run as 32-bit variable 2020-02-03 01:32:52 -10:00
dakotachasesmith
5e4184e205 Increment EE cycle count when spinning while waiting for VU0 2020-02-03 01:14:19 -10:00
dakotachasesmith
c46e1a338a use cycle_count_now in VectorUnit::start_program 2020-02-03 00:08:09 -10:00
dakotachasesmith
50444ea398 Properly update cycle counts on EE interpreter 2020-02-03 00:02:58 -10:00
dakotachasesmith
4bdc1969c2 EE cycle count tweaks, changes to JIT to prevent JIT from hanging if waiting for VU when interrupt happens 2020-02-03 00:02:58 -10:00
dakotachasesmith
2e196c205f Fix new dispatcher not comparing flags correctly, not jumping to looked up block 2020-02-03 00:02:58 -10:00
dakotachasesmith
9f02b668ca Update cycle_count_now when EE JIT block exits 2020-02-03 00:02:58 -10:00
dakotachasesmith
299725541d Decrease code size of JIT dispatcher 2020-02-03 00:02:58 -10:00
dakotachasesmith
7d2c7d5bda [EE_JIT64] Optimize GPR flushing, branch operations 2020-02-03 00:02:58 -10:00
dakotachasesmith
63e5d0fc92 Slight optimizations to eejit branch likely, waitvu0, checkinterlock 2020-02-03 00:02:57 -10:00
dakotachasesmith
6199843afa VU0 reads correct cycle_count from EE, update cycle counts properly on early exit from JIT 2020-02-03 00:02:57 -10:00
dakotachasesmith
53cb30a556 Add throughput cycle analysis 2020-02-02 23:09:27 -10:00
dakotachasesmith
1c36f46382 Change handling of cycles again to correctly account for differences in cycles at beginning of block for dependencies 2020-02-02 23:09:27 -10:00
dakotachasesmith
a44be7311a Better handling of cycle counts in IR analysis (will mostly benefit blocks that end on COP2) 2020-02-02 23:09:27 -10:00
dakotachasesmith
6630b1c9ad Fixed point support for load/store bias 2020-02-02 23:09:27 -10:00
dakotachasesmith
03a4ece528 Separated dual issue analysis into its own function, check for dual issue in latency calculations 2020-02-02 23:09:27 -10:00
dakotachasesmith
c3ca02463b Remove erroneous intwide check in dual issue cycle analysis 2020-02-02 23:09:27 -10:00
dakotachasesmith
ef972d60db Fix bug with
check_pipeline_combination where it would never return true
2020-02-02 23:09:27 -10:00
dakotachasesmith
db8e8d4e0d Better dual issue cycle analysis 2020-02-02 23:09:27 -10:00
dakotachasesmith
7af4997ac9 Make pipeline list in dual issue cycle analysis const static 2020-02-02 23:09:27 -10:00
dakotachasesmith
92b0361eee Ignore GPR zero when checking dependencies in dual issue analysis 2020-02-02 23:09:27 -10:00
dakotachasesmith
07400b2da0 Add pipeline info to COP2 instructions 2020-02-02 23:09:27 -10:00
dakotachasesmith
d6caeae022 Improve dual issue analysis, loadstore analysis 2020-02-02 23:09:27 -10:00
dakotachasesmith
de4f342ceb Write dual issue analysis for IR 2020-02-02 23:09:27 -10:00
dakotachasesmith
55f7319859 Disable all MMI operations on JIT 2020-02-02 23:09:27 -10:00
dakotachasesmith
e18f54f7df Handle bnel, r1, r1, label instructions on JIT, fixes Eragon boot 2020-02-02 23:09:27 -10:00
dakotachasesmith
351c8534ee JIT - Treat BNE r1, r1, label as jump to PC + 8 2020-02-02 23:09:27 -10:00
dakotachasesmith
f0c90febf7 JIT checks for interlock for QMTC2/CTC2 2020-02-02 23:09:27 -10:00
dakotachasesmith
59093e9e05 JIT now updates VU0 on LQC2, SQC2 2020-02-02 23:09:27 -10:00
dakotachasesmith
5045fe62f4 Improve COP2 sync for JIT, add PC_now variable as JIT-friendly readable PC 2020-02-02 23:09:27 -10:00
dakotachasesmith
c05e3a2033 Add cycle_count_now variable to EE to be used by JIT for COP2 preperation 2020-02-02 23:09:27 -10:00
dakotachasesmith
9433c33d8b Check interlock bit for QMF/TC2, CF/TC2 and wait if set 2020-02-02 23:09:27 -10:00
dakotachasesmith
4d59f39674 Move VU0Wait from COP2Special to COP2 in IR 2020-02-02 23:09:27 -10:00
dakotachasesmith
7f11ec4083 Remove CTC1 destination register check, can be ignored 2020-02-02 23:09:27 -10:00
dakotachasesmith
918b251358 Add program counter to read/write error outputs 2020-02-02 23:09:27 -10:00
dakotachasesmith
eeb19c1da3 Add VUOWait back to IR 2020-02-02 23:09:27 -10:00