mirror of
https://github.com/dingusdev/dingusppc.git
synced 2025-01-11 20:29:46 +00:00
ppcopcodes: fix dcbz.
This commit is contained in:
parent
dbbaf13a78
commit
2f3938c23f
@ -1355,16 +1355,13 @@ void dppc_interpreter::ppc_dcbtst() {
|
||||
void dppc_interpreter::ppc_dcbz() {
|
||||
ppc_grab_regsdab();
|
||||
ppc_effective_address = (reg_a == 0) ? ppc_result_b : (ppc_result_a + ppc_result_b);
|
||||
if (!(ppc_state.pc & 32) && (ppc_state.pc < 0xFFFFFFE0UL)) {
|
||||
ppc_grab_regsdab();
|
||||
ppc_effective_address = (reg_a == 0) ? ppc_result_b : (ppc_result_a + ppc_result_b);
|
||||
|
||||
ppc_effective_address &= 0xFFFFFFE0; // align EA on a 32-byte boundary
|
||||
|
||||
mem_write_qword(ppc_effective_address, 0);
|
||||
mem_write_qword((ppc_effective_address + 8), 0);
|
||||
mem_write_qword((ppc_effective_address + 16), 0);
|
||||
mem_write_qword((ppc_effective_address + 24), 0);
|
||||
} else {
|
||||
ppc_exception_handler(Except_Type::EXC_ALIGNMENT, 0x00000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user