mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-20 03:25:16 +00:00
fixed VPREM and VSLDOI
This commit is contained in:
parent
057efb48fa
commit
3209b2f5f3
1 changed files with 16 additions and 3 deletions
|
@ -1210,11 +1210,15 @@ private:
|
|||
}
|
||||
void VPERM(u32 vd, u32 va, u32 vb, u32 vc)
|
||||
{
|
||||
u8 tmpSRC[32];
|
||||
memcpy(tmpSRC, CPU.VPR[vb]._u8, 16);
|
||||
memcpy(tmpSRC + 16, CPU.VPR[va]._u8, 16);
|
||||
|
||||
for (uint b = 0; b < 16; b++)
|
||||
{
|
||||
u8 index = CPU.VPR[vc]._u8[b] & 0x1f;
|
||||
|
||||
CPU.VPR[vd]._u8[b] = index < 0x10 ? CPU.VPR[va]._u8[0xf - index] : CPU.VPR[vb]._u8[0xf - (index - 0x10)];
|
||||
CPU.VPR[vd]._u8[b] = tmpSRC[0x1f - index];
|
||||
}
|
||||
}
|
||||
void VPKPX(u32 vd, u32 va, u32 vb)
|
||||
|
@ -1553,14 +1557,23 @@ private:
|
|||
}
|
||||
void VSLDOI(u32 vd, u32 va, u32 vb, u32 sh)
|
||||
{
|
||||
for (uint b = 0; b < 16 - sh; b++)
|
||||
u8 tmpSRC[32];
|
||||
memcpy(tmpSRC, CPU.VPR[vb]._u8, 16);
|
||||
memcpy(tmpSRC + 16, CPU.VPR[va]._u8, 16);
|
||||
|
||||
for(uint b=0; b<16; b++)
|
||||
{
|
||||
CPU.VPR[vd]._u8[15 - b] = tmpSRC[31 - (b + sh)];
|
||||
}
|
||||
|
||||
/*for (uint b = 0; b < 16 - sh; b++)
|
||||
{
|
||||
CPU.VPR[vd]._u8[15 - b] = CPU.VPR[va]._u8[15 - (b + sh)];
|
||||
}
|
||||
for (uint b = 16 - sh; b < 16; b++)
|
||||
{
|
||||
CPU.VPR[vd]._u8[15 - b] = CPU.VPR[vb]._u8[15 - (b - (16 - sh))];
|
||||
}
|
||||
}*/
|
||||
}
|
||||
void VSLH(u32 vd, u32 va, u32 vb)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue