Optimize SH in RSP Recompiler
This commit is contained in:
parent
22ae106c3a
commit
d7eba5bde0
|
@ -978,8 +978,12 @@ void Compile_SH ( void ) {
|
||||||
} else {
|
} else {
|
||||||
char Address[32];
|
char Address[32];
|
||||||
sprintf(Address, "Dmem + %Xh", Addr);
|
sprintf(Address, "Dmem + %Xh", Addr);
|
||||||
MoveVariableToX86regHalf(&RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt), x86_EAX);
|
if (IsRegConst(RSPOpC.rt) == TRUE) {
|
||||||
MoveX86regHalfToVariable(x86_EAX, RSPInfo.DMEM + Addr, Address);
|
MoveConstHalfToVariable(MipsRegConst(RSPOpC.rt), RSPInfo.DMEM + Addr, Address);
|
||||||
|
} else {
|
||||||
|
MoveVariableToX86regHalf(&RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt), x86_EAX);
|
||||||
|
MoveX86regHalfToVariable(x86_EAX, RSPInfo.DMEM + Addr, Address);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1005,8 +1009,12 @@ void Compile_SH ( void ) {
|
||||||
XorConstToX86Reg(x86_EBX, 2);
|
XorConstToX86Reg(x86_EBX, 2);
|
||||||
AndConstToX86Reg(x86_EBX, 0x0fff);
|
AndConstToX86Reg(x86_EBX, 0x0fff);
|
||||||
|
|
||||||
MoveVariableToX86regHalf(&RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt), x86_EAX);
|
if (IsRegConst(RSPOpC.rt) == TRUE) {
|
||||||
MoveX86regHalfToN64Mem(x86_EAX, x86_EBX);
|
MoveConstHalfToN64Mem(MipsRegConst(RSPOpC.rt), x86_EBX);
|
||||||
|
} else {
|
||||||
|
MoveVariableToX86regHalf(&RSP_GPR[RSPOpC.rt].UW, GPR_Name(RSPOpC.rt), x86_EAX);
|
||||||
|
MoveX86regHalfToN64Mem(x86_EAX, x86_EBX);
|
||||||
|
}
|
||||||
|
|
||||||
CPU_Message(" Done:");
|
CPU_Message(" Done:");
|
||||||
x86_SetBranch32b(Jump[1], RecompPos);
|
x86_SetBranch32b(Jump[1], RecompPos);
|
||||||
|
|
Loading…
Reference in New Issue