diff options
Diffstat (limited to 'sim/mips/mips.igen')
-rw-r--r-- | sim/mips/mips.igen | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/sim/mips/mips.igen b/sim/mips/mips.igen index 303de9d..a1f254c 100644 --- a/sim/mips/mips.igen +++ b/sim/mips/mips.igen @@ -124,6 +124,17 @@ } :function:::int:check_mt_hilo:hilo_history *history +*mipsI,mipsII,mipsIII,mipsIV: +*vr5000: +// start-sanitize-vr4320 +*vr4320: +// end-sanitize-vr4320 +// start-sanitize-vr5400 +*vr5400: +// end-sanitize-vr5400 +// start-sanitize-r5900 +*r5900: +// end-sanitize-r5900 { signed64 time = sim_events_time (SD); int ok = check_mf_cycles (SD_, history, time, "MT"); @@ -132,6 +143,18 @@ return ok; } +:function:::int:check_mt_hilo:hilo_history *history +*r3900: +// start-sanitize-tx19 +*tx19: +// end-sanitize-tx19 +{ + signed64 time = sim_events_time (SD); + history->mt.timestamp = time; + history->mt.cia = CIA; + return 1; +} + :function:::int:check_mf_hilo:hilo_history *history, hilo_history *peer { signed64 time = sim_events_time (SD); @@ -5351,6 +5374,7 @@ 010000,00000,5.RT,5.RD,00000,6.REGX:COP0:32::MFC0 "mfc0 r<RT>, r<RD> # <REGX>" *mipsI,mipsII,mipsIII,mipsIV: +*r3900: *vr5000: // start-sanitize-vr4320 *vr4320: @@ -5389,6 +5413,28 @@ } +010000,10000,000000000000000,010000:COP0:32::RFE +"rfe" +*mipsI,mipsII,mipsIII,mipsIV: +// start-sanitize-tx19 +*tx19: +// end-sanitize-tx19 +*r3900: +// start-sanitize-vr4320 +*vr4320: +// end-sanitize-vr4320 +*vr5000: +// start-sanitize-vr5400 +*vr5400: +// end-sanitize-vr5400 +// start-sanitize-r5900 +*r5900: +// end-sanitize-r5900 +{ + DecodeCoproc (instruction_0); +} + + 010000,10000,000000000000000,001000:COP0:32::TLBP "tlbp" *mipsI,mipsII,mipsIII,mipsIV: |