| 22 | } |
| 23 | |
| 24 | void vu1Finish(bool add_cycles) { |
| 25 | if (THREAD_VU1) { |
| 26 | //if (VU0.VI[REG_VPU_STAT].UL & 0x100) DevCon.Error("MTVU: VU0.VI[REG_VPU_STAT].UL & 0x100"); |
| 27 | if (INSTANT_VU1 || add_cycles) |
| 28 | { |
| 29 | vu1Thread.WaitVU(); |
| 30 | } |
| 31 | vu1Thread.Get_MTVUChanges(); |
| 32 | return; |
| 33 | } |
| 34 | u64 vu1cycles = VU1.cycle; |
| 35 | if(VU0.VI[REG_VPU_STAT].UL & 0x100) { |
| 36 | VUM_LOG("vu1ExecMicro > Stalling until current microprogram finishes"); |
| 37 | CpuVU1->Execute(vu1RunCycles); |
| 38 | } |
| 39 | if (VU0.VI[REG_VPU_STAT].UL & 0x100) { |
| 40 | DevCon.Warning("Force Stopping VU1, ran for too long"); |
| 41 | VU0.VI[REG_VPU_STAT].UL &= ~0x100; |
| 42 | } |
| 43 | if (add_cycles) |
| 44 | { |
| 45 | cpuRegs.cycle += VU1.cycle - vu1cycles; |
| 46 | } |
| 47 | } |
| 48 | |
| 49 | void vu1ExecMicro(u32 addr) |
| 50 | { |
no test coverage detected