void Interpreter::stwux(UGeckoInstruction _inst) { u32 uAddress = Helper_Get_EA_UX(_inst); Memory::Write_U32(m_GPR[_inst.RS], uAddress); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { m_GPR[_inst.RA] = uAddress; } }
void Interpreter::stfsux(UGeckoInstruction _inst) { u32 uAddress = Helper_Get_EA_UX(_inst); Memory::Write_U32(ConvertToSingle(riPS0(_inst.FS)), uAddress); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { m_GPR[_inst.RA] = uAddress; } }
void Interpreter::lfdux(UGeckoInstruction _inst) { u32 uAddress = Helper_Get_EA_UX(_inst); u64 temp = Memory::Read_U64(uAddress); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { riPS0(_inst.FD) = temp; m_GPR[_inst.RA] = uAddress; } }
void Interpreter::lwzux(UGeckoInstruction _inst) { u32 uAddress = Helper_Get_EA_UX(_inst); u32 temp = Memory::Read_U32(uAddress); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { m_GPR[_inst.RD] = temp; m_GPR[_inst.RA] = uAddress; } }
void Interpreter::sthux(UGeckoInstruction inst) { const u32 address = Helper_Get_EA_UX(inst); PowerPC::Write_U16((u16)rGPR[inst.RS], address); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { rGPR[inst.RA] = address; } }
void Interpreter::lwzux(UGeckoInstruction inst) { const u32 address = Helper_Get_EA_UX(inst); const u32 temp = PowerPC::Read_U32(address); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { rGPR[inst.RD] = temp; rGPR[inst.RA] = address; } }
void Interpreter::lfsux(UGeckoInstruction _inst) { u32 uAddress = Helper_Get_EA_UX(_inst); u32 uTemp = Memory::Read_U32(uAddress); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { double value = *(float*)&uTemp; rPS0(_inst.FD) = value; rPS1(_inst.FD) = value; m_GPR[_inst.RA] = uAddress; } }
void Interpreter::lfsux(UGeckoInstruction _inst) { u32 uAddress = Helper_Get_EA_UX(_inst); u32 uTemp = PowerPC::Read_U32(uAddress); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { u64 value = ConvertToDouble(uTemp); riPS0(_inst.FD) = value; riPS1(_inst.FD) = value; rGPR[_inst.RA] = uAddress; } }
void Interpreter::stfsux(UGeckoInstruction inst) { const u32 address = Helper_Get_EA_UX(inst); if ((address & 0b11) != 0) { GenerateAlignmentException(address); return; } PowerPC::Write_U32(ConvertToSingle(riPS0(inst.FS)), address); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { rGPR[inst.RA] = address; } }
void Interpreter::lfdux(UGeckoInstruction inst) { const u32 address = Helper_Get_EA_UX(inst); if ((address & 0b11) != 0) { GenerateAlignmentException(address); return; } const u64 temp = PowerPC::Read_U64(address); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { riPS0(inst.FD) = temp; rGPR[inst.RA] = address; } }
void Interpreter::lfsux(UGeckoInstruction inst) { const u32 address = Helper_Get_EA_UX(inst); if ((address & 0b11) != 0) { GenerateAlignmentException(address); return; } const u32 temp = PowerPC::Read_U32(address); if (!(PowerPC::ppcState.Exceptions & EXCEPTION_DSI)) { u64 value = ConvertToDouble(temp); riPS0(inst.FD) = value; riPS1(inst.FD) = value; rGPR[inst.RA] = address; } }