Merge pull request #265 from unknownbrackets/ppu-minor

Fix the DCBZ instruction
This commit is contained in:
B1ackDaemon 2014-05-23 20:32:15 +03:00
commit 59f08f9bdd
2 changed files with 7 additions and 5 deletions

View File

@ -1788,9 +1788,9 @@ private:
{ {
DisAsm_R2("icbi", ra, rb); DisAsm_R2("icbi", ra, rb);
} }
void DCBZ(u32 ra, u32 rs) void DCBZ(u32 ra, u32 rb)
{ {
DisAsm_R2("dcbz", ra, rs); DisAsm_R2("dcbz", ra, rb);
} }
void LWZ(u32 rd, u32 ra, s32 d) void LWZ(u32 rd, u32 ra, s32 d)
{ {

View File

@ -3291,16 +3291,18 @@ private:
void EXTSW(u32 ra, u32 rs, bool rc) void EXTSW(u32 ra, u32 rs, bool rc)
{ {
CPU.GPR[ra] = (s64)(s32)CPU.GPR[rs]; CPU.GPR[ra] = (s64)(s32)CPU.GPR[rs];
//CPU.XER.CA = ((s64)CPU.GPR[ra] < 0); // ???
if(rc) CPU.UpdateCR0<s32>(CPU.GPR[ra]); if(rc) CPU.UpdateCR0<s32>(CPU.GPR[ra]);
} }
void ICBI(u32 ra, u32 rs) void ICBI(u32 ra, u32 rs)
{ {
// Clear jit for the specified block? Nothing to do in the interpreter. // Clear jit for the specified block? Nothing to do in the interpreter.
} }
void DCBZ(u32 ra, u32 rs) void DCBZ(u32 ra, u32 rb)
{ {
//UNK("dcbz", false); const u64 addr = ra ? CPU.GPR[ra] + CPU.GPR[rb] : CPU.GPR[rb];
u8 *const cache_line = Memory.GetMemFromAddr(addr & ~127);
if (cache_line)
memset(cache_line, 0, 128);
_mm_mfence(); _mm_mfence();
} }
void LWZ(u32 rd, u32 ra, s32 d) void LWZ(u32 rd, u32 ra, s32 d)