void _fastcall r4300i_LHU (void) {
	DWORD Address =  GPR[Opcode.base].UW[0] + (short)Opcode.offset;	
	if ((Address & 1) != 0) { ADDRESS_ERROR_EXCEPTION(Address,TRUE); }
	if (!r4300i_LH_VAddr(Address,&GPR[Opcode.rt].UHW[0])) {
		if (ShowTLBMisses) {
			DisplayError("LHU TLB: %X",Address);
		}
		TLB_READ_EXCEPTION(Address);
	} else {
		GPR[Opcode.rt].UDW = GPR[Opcode.rt].UHW[0];
	}
}
예제 #2
0
void r4300i_LHU (void)
{
    uint32_t Address =  GPR[Opcode.base].UW[0] + (int16_t)Opcode.offset;
    if ((Address & 1) != 0)
    {
        ADDRESS_ERROR_EXCEPTION(Address,1);
    }
    if (!r4300i_LH_VAddr(Address,&GPR[Opcode.rt].UHW[0]))
    {
        //if (ShowTLBMisses) {
        DisplayError("LHU TLB: %X",Address);
        //}
        TLB_READ_EXCEPTION(Address);
    }
    else
    {
        GPR[Opcode.rt].UDW = GPR[Opcode.rt].UHW[0];
    }
}