Fix fastmem on ARM
This commit is contained in:
parent
6d9c0c8863
commit
62adcaf552
|
@ -33,6 +33,7 @@ using namespace ArmGen;
|
|||
{
|
||||
ARMXEmitter emit(location);
|
||||
emit.B(address);
|
||||
emit.FlushIcache();
|
||||
}
|
||||
void JitArmBlockCache::WriteDestroyBlock(const u8* location, u32 address)
|
||||
{
|
||||
|
@ -41,6 +42,7 @@ using namespace ArmGen;
|
|||
emit.MOVI2R(R12, (u32)jit->GetAsmRoutines()->dispatcher);
|
||||
emit.STR(R11, R9, PPCSTATE_OFF(pc));
|
||||
emit.B(R12);
|
||||
emit.FlushIcache();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -50,33 +50,32 @@ static void BackPatchError(const std::string &text, u8 *codePtr, u32 emAddress)
|
|||
bool DisamLoadStore(const u32 inst, ARMReg &rD, u8 &accessSize, bool &Store)
|
||||
{
|
||||
u8 op = (inst >> 20) & 0xFF;
|
||||
printf("op: 0x%08x\n", op);
|
||||
switch (op)
|
||||
{
|
||||
case 0x58: // STR
|
||||
{
|
||||
rD = (ARMReg)((inst >> 16) & 0xF);
|
||||
rD = (ARMReg)((inst >> 12) & 0xF);
|
||||
Store = true;
|
||||
accessSize = 32;
|
||||
}
|
||||
break;
|
||||
case 0x59: // LDR
|
||||
{
|
||||
rD = (ARMReg)((inst >> 16) & 0xF);
|
||||
rD = (ARMReg)((inst >> 12) & 0xF);
|
||||
Store = false;
|
||||
accessSize = 32;
|
||||
}
|
||||
break;
|
||||
case 0x05: // LDRH
|
||||
{
|
||||
rD = (ARMReg)((inst >> 16) & 0xF);
|
||||
rD = (ARMReg)((inst >> 12) & 0xF);
|
||||
Store = false;
|
||||
accessSize = 16;
|
||||
}
|
||||
break;
|
||||
case 0x45 + 0x18: // LDRB
|
||||
{
|
||||
rD = (ARMReg)((inst >> 16) & 0xF);
|
||||
rD = (ARMReg)((inst >> 12) & 0xF);
|
||||
Store = false;
|
||||
accessSize = 8;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
#ifdef ANDROID
|
||||
#define FASTMEM 0
|
||||
#else
|
||||
#define FASTMEM 0
|
||||
#define FASTMEM 1
|
||||
#endif
|
||||
void JitArm::stw(UGeckoInstruction inst)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue