void _fastcall r4300i_LD (void) { DWORD Address = GPR[Opcode.base].UW[0] + (short)Opcode.offset; if ((Address & 7) != 0) { ADDRESS_ERROR_EXCEPTION(Address,TRUE); } if (!r4300i_LD_VAddr(Address,&GPR[Opcode.rt].UDW)) { DisplayError("LD TLB: %X",Address); } }
void _fastcall r4300i_LDC1 (void) { DWORD Address = GPR[Opcode.base].UW[0] + (short)Opcode.offset; TEST_COP1_USABLE_EXCEPTION if ((Address & 7) != 0) { ADDRESS_ERROR_EXCEPTION(Address,TRUE); } if (!r4300i_LD_VAddr(Address,&*(unsigned __int64 *)FPRDoubleLocation[Opcode.ft])) { DisplayError("LD TLB: %X",Address); } }
void r4300i_LD (void) { uint32_t Address = GPR[Opcode.base].UW[0] + (int16_t)Opcode.offset; if ((Address & 7) != 0) { ADDRESS_ERROR_EXCEPTION(Address,1); } if (!r4300i_LD_VAddr(Address,&GPR[Opcode.rt].UDW)) { } }
void r4300i_LDC1 (void) { uint32_t Address = GPR[Opcode.base].UW[0] + (int16_t)Opcode.offset; TEST_COP1_USABLE_EXCEPTION if ((Address & 7) != 0) { ADDRESS_ERROR_EXCEPTION(Address,1); } if (!r4300i_LD_VAddr(Address,&*(uint64_t *)FPRDoubleLocation[Opcode.ft])) { } }
void _fastcall r4300i_LDL (void) { DWORD Offset, Address; QWORD Value; Address = GPR[Opcode.base].UW[0] + (short)Opcode.offset; Offset = Address & 7; if (!r4300i_LD_VAddr((Address & ~7),&Value)) { DisplayError("LDL TLB: %X",Address); return; } GPR[Opcode.rt].DW = GPR[Opcode.rt].DW & LDL_MASK[Offset]; GPR[Opcode.rt].DW += Value << LDL_SHIFT[Offset]; }
void _fastcall r4300i_LD (void) { DWORD Address = GPR[Opcode.base].UW[0] + (short)Opcode.offset; if ((Address & 7) != 0) { ADDRESS_ERROR_EXCEPTION(Address,TRUE); } if (!r4300i_LD_VAddr(Address,&GPR[Opcode.rt].UDW)) { #ifndef EXTERNAL_RELEASE DisplayError("LD TLB: %X",Address); #endif } #ifdef Interpreter_StackTest if (Opcode.rt == 29) { StackValue = GPR[Opcode.rt].W[0]; } #endif }
void r4300i_LDL (void) { uint32_t Offset, Address; uint64_t Value; Address = GPR[Opcode.base].UW[0] + (int16_t)Opcode.offset; Offset = Address & 7; if (!r4300i_LD_VAddr((Address & ~7),&Value)) { return; } GPR[Opcode.rt].DW = GPR[Opcode.rt].DW & LDL_MASK[Offset]; GPR[Opcode.rt].DW += Value << LDL_SHIFT[Offset]; }
void r4300i_LDR (void) { s32 Offset, Address; u64 Value; Address = GPR[Opcode.base].UW[0] + (short)Opcode.offset; Offset = Address & 7; if (!r4300i_LD_VAddr((Address & ~7),&Value)) { //DisplayError("LDL TLB: %X",Address); return; } GPR[Opcode.rt].DW = GPR[Opcode.rt].DW & LDR_MASK[Offset]; GPR[Opcode.rt].DW += Value >> LDR_SHIFT[Offset]; }
void _fastcall r4300i_LDR (void) { DWORD Offset, Address; QWORD Value; Address = GPR[Opcode.base].UW[0] + (short)Opcode.offset; Offset = Address & 7; if (!r4300i_LD_VAddr((Address & ~7),&Value)) { #ifndef EXTERNAL_RELEASE DisplayError("LDL TLB: %X",Address); #endif return; } GPR[Opcode.rt].DW = GPR[Opcode.rt].DW & LDR_MASK[Offset]; GPR[Opcode.rt].DW += Value >> LDR_SHIFT[Offset]; }
void _fastcall r4300i_SDR (void) { DWORD Offset, Address; QWORD Value; Address = GPR[Opcode.base].UW[0] + (short)Opcode.offset; Offset = Address & 7; if (!r4300i_LD_VAddr((Address & ~7),&Value)) { DisplayError("SDL TLB: %X",Address); return; } Value &= SDR_MASK[Offset]; Value += GPR[Opcode.rt].UDW << SDR_SHIFT[Offset]; if (!r4300i_SD_VAddr((Address & ~7),Value)) { DisplayError("SDL TLB: %X",Address); } }
void r4300i_SDL (void) { s32 Offset, Address; u64 Value; Address = GPR[Opcode.base].UW[0] + (short)Opcode.offset; Offset = Address & 7; if (!r4300i_LD_VAddr((Address & ~7),&Value)) { //DisplayError("SDL TLB: %X",Address); return; } Value &= SDL_MASK[Offset]; Value += GPR[Opcode.rt].UDW >> SDL_SHIFT[Offset]; if (!r4300i_SD_VAddr((Address & ~7),Value)) { //DisplayError("SDL TLB: %X",Address); } }
void r4300i_SDR (void) { uint32_t Offset, Address; uint64_t Value; Address = GPR[Opcode.base].UW[0] + (int16_t)Opcode.offset; Offset = Address & 7; if (!r4300i_LD_VAddr((Address & ~7),&Value)) { return; } Value &= SDR_MASK[Offset]; Value += GPR[Opcode.rt].UDW << SDR_SHIFT[Offset]; if (!r4300i_SD_VAddr((Address & ~7),Value)) { } }
void _fastcall r4300i_SDL (void) { DWORD Offset, Address; QWORD Value; Address = GPR[Opcode.base].UW[0] + (short)Opcode.offset; Offset = Address & 7; if (!r4300i_LD_VAddr((Address & ~7),&Value)) { #ifndef EXTERNAL_RELEASE DisplayError("SDL TLB: %X",Address); #endif return; } Value &= SDL_MASK[Offset]; Value += GPR[Opcode.rt].UDW >> SDL_SHIFT[Offset]; if (!r4300i_SD_VAddr((Address & ~7),Value)) { #ifndef EXTERNAL_RELEASE DisplayError("SDL TLB: %X",Address); #endif } }