mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-14 02:50:56 +00:00
Properly respect resolveReplacements.
And use the same opcode reading func in armjit as x86jit. Fixes Star Ocean on Android.
This commit is contained in:
parent
ec94498342
commit
24d8a34a0b
@ -179,7 +179,7 @@ void Jit::CompileDelaySlot(int flags)
|
|||||||
MRS(R8); // Save flags register. R8 is preserved through function calls and is not allocated.
|
MRS(R8); // Save flags register. R8 is preserved through function calls and is not allocated.
|
||||||
|
|
||||||
js.inDelaySlot = true;
|
js.inDelaySlot = true;
|
||||||
MIPSOpcode op = Memory::Read_Instruction(js.compilerPC + 4);
|
MIPSOpcode op = Memory::Read_Opcode_JIT(js.compilerPC + 4);
|
||||||
MIPSCompileOp(op);
|
MIPSCompileOp(op);
|
||||||
js.inDelaySlot = false;
|
js.inDelaySlot = false;
|
||||||
|
|
||||||
@ -275,7 +275,7 @@ const u8 *Jit::DoJit(u32 em_address, JitBlock *b)
|
|||||||
{
|
{
|
||||||
gpr.SetCompilerPC(js.compilerPC); // Let it know for log messages
|
gpr.SetCompilerPC(js.compilerPC); // Let it know for log messages
|
||||||
fpr.SetCompilerPC(js.compilerPC);
|
fpr.SetCompilerPC(js.compilerPC);
|
||||||
MIPSOpcode inst = Memory::Read_Instruction(js.compilerPC);
|
MIPSOpcode inst = Memory::Read_Opcode_JIT(js.compilerPC);
|
||||||
js.downcountAmount += MIPSGetInstructionCycleEstimate(inst);
|
js.downcountAmount += MIPSGetInstructionCycleEstimate(inst);
|
||||||
|
|
||||||
MIPSCompileOp(inst);
|
MIPSCompileOp(inst);
|
||||||
@ -315,7 +315,7 @@ const u8 *Jit::DoJit(u32 em_address, JitBlock *b)
|
|||||||
if (logBlocks > 0 && dontLogBlocks == 0) {
|
if (logBlocks > 0 && dontLogBlocks == 0) {
|
||||||
INFO_LOG(JIT, "=============== mips ===============");
|
INFO_LOG(JIT, "=============== mips ===============");
|
||||||
for (u32 cpc = em_address; cpc != js.compilerPC + 4; cpc += 4) {
|
for (u32 cpc = em_address; cpc != js.compilerPC + 4; cpc += 4) {
|
||||||
MIPSDisAsm(Memory::Read_Instruction(cpc), cpc, temp, true);
|
MIPSDisAsm(Memory::Read_Opcode_JIT(cpc), cpc, temp, true);
|
||||||
INFO_LOG(JIT, "M: %08x %s", cpc, temp);
|
INFO_LOG(JIT, "M: %08x %s", cpc, temp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -416,7 +416,7 @@ static Opcode Read_Instruction(u32 address, bool resolveReplacements, Opcode ins
|
|||||||
} else {
|
} else {
|
||||||
return inst;
|
return inst;
|
||||||
}
|
}
|
||||||
} else if (MIPS_IS_REPLACEMENT(inst.encoding)) {
|
} else if (resolveReplacements && MIPS_IS_REPLACEMENT(inst.encoding)) {
|
||||||
u32 op;
|
u32 op;
|
||||||
if (GetReplacedOpAt(address, &op)) {
|
if (GetReplacedOpAt(address, &op)) {
|
||||||
if (MIPS_IS_EMUHACK(op)) {
|
if (MIPS_IS_EMUHACK(op)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user