void R4300iOp32::LW() { DWORD Address = _GPR[m_Opcode.base].UW[0] + (short)m_Opcode.offset; if ((Address & 3) != 0) { ADDRESS_ERROR_EXCEPTION(Address, true); } if (LogOptions.GenerateLog) { Log_LW((*_PROGRAM_COUNTER),Address); } if (!g_MMU->LW_VAddr(Address,_GPR[m_Opcode.rt].UW[0])) { if (bShowTLBMisses()) { g_Notify->DisplayError(stdstr_f(__FUNCTION__ " TLB: %X", Address).ToUTF16().c_str()); } TLB_READ_EXCEPTION(Address); } else { _GPR[m_Opcode.rt].W[0] = _GPR[m_Opcode.rt].W[0]; } }
void _fastcall r4300i_LW (void) { DWORD Address = GPR[Opcode.base].UW[0] + (short)Opcode.offset; if ((Address & 3) != 0) { ADDRESS_ERROR_EXCEPTION(Address,TRUE); } #if (!defined(EXTERNAL_RELEASE)) Log_LW(PROGRAM_COUNTER,Address); #endif if (Opcode.rt == 0) { return; } if (!r4300i_LW_VAddr(Address,&GPR[Opcode.rt].UW[0])) { if (ShowTLBMisses) { DisplayError("LW TLB: %X",Address); } TLB_READ_EXCEPTION(Address); } else { GPR[Opcode.rt].DW = GPR[Opcode.rt].W[0]; //TranslateVaddr(&Address); //if (Address == 0x00090AA0) { // LogMessage("%X: Read %X from %X",PROGRAM_COUNTER,GPR[Opcode.rt].UW[0],GPR[Opcode.base].UW[0] + (short)Opcode.offset); //} } }