Ejemplo n.º 1
0
void _fastcall r4300i_SD (void) {
	DWORD Address =  GPR[Opcode.base].UW[0] + (short)Opcode.offset;	
	if ((Address & 7) != 0) { ADDRESS_ERROR_EXCEPTION(Address,FALSE); }
	if (!r4300i_SD_VAddr(Address,GPR[Opcode.rt].UDW)) {
		DisplayError("SD TLB: %X",Address);
	}
}
Ejemplo n.º 2
0
void _fastcall r4300i_SDC1 (void) {
	DWORD Address =  GPR[Opcode.base].UW[0] + (short)Opcode.offset;

	TEST_COP1_USABLE_EXCEPTION
	if ((Address & 7) != 0) { ADDRESS_ERROR_EXCEPTION(Address,FALSE); }
	if (!r4300i_SD_VAddr(Address,*(__int64 *)FPRDoubleLocation[Opcode.ft])) {
		DisplayError("SDC1 TLB: %X",Address);
	}
}
Ejemplo n.º 3
0
void r4300i_SD (void)
{
    uint32_t Address =  GPR[Opcode.base].UW[0] + (int16_t)Opcode.offset;
    if ((Address & 7) != 0)
    {
        ADDRESS_ERROR_EXCEPTION(Address,0);
    }
    if (!r4300i_SD_VAddr(Address,GPR[Opcode.rt].UDW))
    {
    }
}
Ejemplo n.º 4
0
void r4300i_SDC1 (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,0);
    }
    if (!r4300i_SD_VAddr(Address,*(int64_t *)FPRDoubleLocation[Opcode.ft]))
    {
    }
}
Ejemplo n.º 5
0
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);
	}
}
Ejemplo n.º 6
0
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);
	}
}
Ejemplo n.º 7
0
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))
    {
    }
}
Ejemplo n.º 8
0
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
	}
}