mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-25 12:12:50 +01:00
SPU Fixes
Mandelbrot set does work now and its modified version included in TEST12345 folder.
This commit is contained in:
parent
37b5b49f58
commit
ba8108d595
BIN
bin/dev_hdd0/game/TEST12345/USRDIR/mandelbrot_set_no_pads.self
Normal file
BIN
bin/dev_hdd0/game/TEST12345/USRDIR/mandelbrot_set_no_pads.self
Normal file
Binary file not shown.
BIN
bin/dev_hdd0/game/TEST12345/USRDIR/mandelbrot_set_spu.self
Normal file
BIN
bin/dev_hdd0/game/TEST12345/USRDIR/mandelbrot_set_spu.self
Normal file
Binary file not shown.
@ -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];
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user