MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / vu1Finish

Function vu1Finish

pcsx2/VU1micro.cpp:24–47  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22}
23
24void 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
49void vu1ExecMicro(u32 addr)
50{

Callers 4

vif1VUFinishFunction · 0.85
dmacWrite32Function · 0.85
vu1ExecMicroFunction · 0.85
CTC2Function · 0.85

Calls 4

WaitVUMethod · 0.80
Get_MTVUChangesMethod · 0.80
ExecuteMethod · 0.45
WarningMethod · 0.45

Tested by

no test coverage detected