Commit graph

1873 commits

Author SHA1 Message Date
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
dakotachasesmith
e45987e52a Ignore data dependency checks on GPR register zero 2020-02-02 23:09:27 -10:00
dakotachasesmith
b969acdfc7 Better interpreter fallback handling in IR translator 2020-02-02 23:09:27 -10:00
dakotachasesmith
5ff78c076e Change to write dependency handling in data_dependency_analysis 2020-02-02 23:09:27 -10:00
dakotachasesmith
74a80c15e1 Basic data dependency analysis 2020-02-02 23:09:27 -10:00
dakotachasesmith
322dd795dd Add load/store bias to ops in JIT 2020-02-02 23:09:27 -10:00
dakotachasesmith
e42836313c Create EE_JitTranslator::issue_cycle_analysis (TODO) 2020-02-02 23:09:27 -10:00
dakotachasesmith
8bb797b19e Implement EE_JitTranslator::get_block_operations to get block of EE_InstrInfo for JIT block to translate 2020-02-02 23:09:27 -10:00
dakotachasesmith
59115609e4 Change PDIVW instruction type to DIV 2020-02-02 23:09:26 -10:00
dakotachasesmith
de254c6d99 Add vu0 wait to vnop, vwaitq. Change dependency of MTSA from HI to SA 2020-02-02 23:09:26 -10:00
dakotachasesmith
663a275d0e Remove fallback_interpreter call for vaddai in jittrans 2020-02-02 23:09:26 -10:00
dakotachasesmith
700dfa7944 Remove erronous addressof operation in EE_JIT fallback_interpreter 2020-02-02 23:09:26 -10:00
dakotachasesmith
0f1b9bdbd2 Remove vu0wait check from JIT (interpreter checks this) 2020-02-02 23:09:26 -10:00
dakotachasesmith
027487f87d [EE_JIT] Only vu0 wait for apprioriate operations 2020-02-02 23:09:26 -10:00
dakotachasesmith
caf0ede62f More changes to the translate logic in IR to make JIT go in-game 2020-02-02 23:09:26 -10:00
dakotachasesmith
b1e71bacbd Changes to JIT to further it towards being able to directly jump to function on fallback 2020-02-02 23:09:26 -10:00
dakotachasesmith
02526a0216 Remove cpu member from EE_InstrInfo 2020-02-02 23:09:26 -10:00
dakotachasesmith
056131700c Add decoder reset and vu0 update to vnop 2020-02-02 23:09:26 -10:00
dakotachasesmith
3ccd912d59 Remove cop2 wait on qmf/tc2, updatev0 in vcallms/r 2020-02-02 23:09:26 -10:00
dakotachasesmith
4f0276e1a2 Rewrite COP2 lookup handling again 2020-02-02 23:09:26 -10:00
dakotachasesmith
2b43ff5271 lookup correct function in interpreter for slti 2020-02-02 23:09:26 -10:00
dakotachasesmith
a87251628e Initialize instr_info's cpu property in interpreter 2020-02-02 23:09:26 -10:00
dakotachasesmith
a3021b2c28 Add missing break statements in emotion_fpu.cpp 2020-02-02 23:09:26 -10:00
dakotachasesmith
6d9a2001cc Cleanup and writing Cop2 lookup 2020-02-02 23:09:26 -10:00
dakotachasesmith
b22fe14336 Remove FPU interpreter wrapper fns 2020-02-02 23:09:26 -10:00
dakotachasesmith
e55fd0fd71 Make RegType, COP2_Control_SpecialReg, COP1_Control_SpecialReg enum class 2020-02-02 23:09:26 -10:00
dakotachasesmith
4227e1f6f8 Add lookup information in EmotionInterpreter::special 2020-02-02 23:09:26 -10:00
dakotachasesmith
6f5ec16589 Add dependency checks to bc1/bc2 2020-02-02 23:09:26 -10:00
dakotachasesmith
67746b7734 Write lookup info for mmi3 2020-02-02 23:09:26 -10:00