diff --git a/bin/dev_hdd0/game/TEST12345/USRDIR/mandelbrot_set_no_pads.self b/bin/dev_hdd0/game/TEST12345/USRDIR/mandelbrot_set_no_pads.self new file mode 100644 index 0000000000..ab6694184e Binary files /dev/null and b/bin/dev_hdd0/game/TEST12345/USRDIR/mandelbrot_set_no_pads.self differ diff --git a/bin/dev_hdd0/game/TEST12345/USRDIR/mandelbrot_set_spu.self b/bin/dev_hdd0/game/TEST12345/USRDIR/mandelbrot_set_spu.self new file mode 100644 index 0000000000..c2899f38b7 Binary files /dev/null and b/bin/dev_hdd0/game/TEST12345/USRDIR/mandelbrot_set_spu.self differ diff --git a/rpcs3/Emu/Cell/SPUInterpreter.h b/rpcs3/Emu/Cell/SPUInterpreter.h index f4e88eccdc..f6b7e9266f 100644 --- a/rpcs3/Emu/Cell/SPUInterpreter.h +++ b/rpcs3/Emu/Cell/SPUInterpreter.h @@ -191,18 +191,8 @@ private: { const u32 s = i7 & 0x3f; - for(u32 j = 0; j < 4; ++j) - { - const u32 t = CPU.GPR[ra]._u32[j]; - u32 r = 0; - - for(u32 b = 0; b + s < 32; ++b) - { - r |= t & (1 << (b + s)); - } - - CPU.GPR[rt]._u32[j] = r; - } + for (u32 j = 0; j < 4; ++j) + CPU.GPR[rt]._u32[j] = CPU.GPR[ra]._u32[j] << s; } void ROTHI(u32 rt, u32 ra, s32 i7) { @@ -1412,7 +1402,7 @@ private: } } } - void MPYA(u32 rc, u32 ra, u32 rb, u32 rt) + void MPYA(u32 rt, u32 ra, u32 rb, u32 rc) { for (int w = 0; w < 4; w++) CPU.GPR[rt]._i32[w] = CPU.GPR[ra]._i16[w*2] * CPU.GPR[rb]._i16[w*2] + CPU.GPR[rc]._i32[w]; @@ -1424,14 +1414,14 @@ private: CPU.GPR[rt]._f[2] = CPU.GPR[rc]._f[2] - CPU.GPR[ra]._f[2] * CPU.GPR[rb]._f[2]; CPU.GPR[rt]._f[3] = CPU.GPR[rc]._f[3] - CPU.GPR[ra]._f[3] * CPU.GPR[rb]._f[3]; } - void FMA(u32 rc, u32 ra, u32 rb, u32 rt) + void FMA(u32 rt, u32 ra, u32 rb, u32 rc) { CPU.GPR[rt]._f[0] = CPU.GPR[ra]._f[0] * CPU.GPR[rb]._f[0] + CPU.GPR[rc]._f[0]; CPU.GPR[rt]._f[1] = CPU.GPR[ra]._f[1] * CPU.GPR[rb]._f[1] + CPU.GPR[rc]._f[1]; CPU.GPR[rt]._f[2] = CPU.GPR[ra]._f[2] * CPU.GPR[rb]._f[2] + CPU.GPR[rc]._f[2]; CPU.GPR[rt]._f[3] = CPU.GPR[ra]._f[3] * CPU.GPR[rb]._f[3] + CPU.GPR[rc]._f[3]; } - void FMS(u32 rc, u32 ra, u32 rb, u32 rt) + void FMS(u32 rt, u32 ra, u32 rb, u32 rc) { CPU.GPR[rt]._f[0] = CPU.GPR[ra]._f[0] * CPU.GPR[rb]._f[0] - CPU.GPR[rc]._f[0]; CPU.GPR[rt]._f[1] = CPU.GPR[ra]._f[1] * CPU.GPR[rb]._f[1] - CPU.GPR[rc]._f[1]; diff --git a/rpcs3/Emu/Cell/SPUThread.h b/rpcs3/Emu/Cell/SPUThread.h index de0b0f17a8..e434b2b2cc 100644 --- a/rpcs3/Emu/Cell/SPUThread.h +++ b/rpcs3/Emu/Cell/SPUThread.h @@ -444,11 +444,11 @@ public: case MFC_PUT_CMD: case MFC_GET_CMD: { - ConLog.Warning("DMA %s%s%s: lsa = 0x%x, ea = 0x%llx, tag = 0x%x, size = 0x%x, cmd = 0x%x", + /* ConLog.Warning("DMA %s%s%s: lsa = 0x%x, ea = 0x%llx, tag = 0x%x, size = 0x%x, cmd = 0x%x", op & MFC_PUT_CMD ? "PUT" : "GET", op & MFC_BARRIER_MASK ? "B" : "", op & MFC_FENCE_MASK ? "F" : "", - lsa, ea, tag, size, cmd); + lsa, ea, tag, size, cmd); */ MFCArgs.CMDStatus.SetValue(dmac.Cmd(cmd, tag, lsa, ea, size)); } break;