| 865 | } |
| 866 | } |
| 867 | template<int vunum> static void TAKES_R128 vuMicroWrite128(u32 addr, r128 data) { |
| 868 | VURegs* vu = vunum ? &VU1 : &VU0; |
| 869 | addr &= vunum ? 0x3fff: 0xfff; |
| 870 | |
| 871 | const u128 udata = r128_to_u128(data); |
| 872 | |
| 873 | if (vunum && THREAD_VU1) { |
| 874 | vu1Thread.WriteMicroMem(addr, &udata, sizeof(u128)); |
| 875 | return; |
| 876 | } |
| 877 | if ((u128&)vu->Micro[addr]!=udata) { |
| 878 | ClearVuFunc<vunum>(addr, 16); |
| 879 | r128_store_unaligned(&vu->Micro[addr],data); |
| 880 | } |
| 881 | } |
| 882 | |
| 883 | // VU Data Memory Reads... |
| 884 | template<int vunum> static mem8_t vuDataRead8(u32 addr) { |
nothing calls this directly
no test coverage detected