mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-25 23:29:55 -06:00
rewrite JIT memory emulation
This commit is contained in:
@ -373,16 +373,16 @@ Info Decode(bool thumb, u32 num, u32 instr)
|
||||
|
||||
if (res.Kind == tk_LDMIA || res.Kind == tk_POP)
|
||||
{
|
||||
u32 set = (instr & 0xFF) & ~(res.DstRegs|res.SrcRegs);
|
||||
res.NotStrictlyNeeded |= set;
|
||||
u32 set = (instr & 0xFF);
|
||||
res.NotStrictlyNeeded |= set & ~(res.DstRegs|res.SrcRegs);
|
||||
res.DstRegs |= set;
|
||||
}
|
||||
if (res.Kind == tk_STMIA || res.Kind == tk_PUSH)
|
||||
{
|
||||
u32 set = (instr & 0xFF) & ~(res.DstRegs|res.SrcRegs);
|
||||
u32 set = (instr & 0xFF);
|
||||
if (res.Kind == tk_PUSH && instr & (1 << 8))
|
||||
set |= (1 << 14);
|
||||
res.NotStrictlyNeeded |= set;
|
||||
res.NotStrictlyNeeded |= set & ~(res.DstRegs|res.SrcRegs);
|
||||
res.SrcRegs |= set;
|
||||
}
|
||||
|
||||
@ -495,15 +495,15 @@ Info Decode(bool thumb, u32 num, u32 instr)
|
||||
|
||||
if (res.Kind == ak_LDM)
|
||||
{
|
||||
u16 set = (instr & 0xFFFF) & ~(res.SrcRegs|res.DstRegs|(1<<15));
|
||||
u16 set = (instr & 0xFFFF);
|
||||
res.NotStrictlyNeeded |= set & ~(res.SrcRegs|res.DstRegs|(1<<15));
|
||||
res.DstRegs |= set;
|
||||
res.NotStrictlyNeeded |= set;
|
||||
}
|
||||
if (res.Kind == ak_STM)
|
||||
{
|
||||
u16 set = (instr & 0xFFFF) & ~(res.SrcRegs|res.DstRegs|(1<<15));
|
||||
u16 set = (instr & 0xFFFF);
|
||||
res.NotStrictlyNeeded |= set & ~(res.SrcRegs|res.DstRegs|(1<<15));
|
||||
res.SrcRegs |= set;
|
||||
res.NotStrictlyNeeded |= set;
|
||||
}
|
||||
|
||||
if ((instr >> 28) < 0xE)
|
||||
|
Reference in New Issue
Block a user