mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-25 07:10:00 -06:00
i can't reproduce this anymore
This commit is contained in:
26
src/ARM.cpp
26
src/ARM.cpp
@ -346,27 +346,6 @@ void ARMv5::JumpTo(u32 addr, bool restorecpsr)
|
|||||||
NDS.MonitorARM9Jump(addr);
|
NDS.MonitorARM9Jump(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARMv5::JumpTo8_16Bit(const u32 addr)
|
|
||||||
{
|
|
||||||
// 8 and 16 loads (signed included) to pc
|
|
||||||
if (!(CP15Control & 0x1))
|
|
||||||
{
|
|
||||||
// if the pu is disabled it behaves like a normal jump
|
|
||||||
JumpTo((CP15Control & (1<<15)) ? (addr & ~0x1) : addr);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (addr & 0x3)
|
|
||||||
{
|
|
||||||
// if the pu is enabled it will always prefetch abort if not word aligned
|
|
||||||
// although it will still attempt (and fail) to enter thumb mode if enabled
|
|
||||||
if ((addr & 0x1) && !(CP15Control & (1<<15))) CPSR |= 0x20;
|
|
||||||
PrefetchAbort();
|
|
||||||
}
|
|
||||||
else JumpTo(addr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ARMv4::JumpTo(u32 addr, bool restorecpsr)
|
void ARMv4::JumpTo(u32 addr, bool restorecpsr)
|
||||||
{
|
{
|
||||||
if (restorecpsr)
|
if (restorecpsr)
|
||||||
@ -411,11 +390,6 @@ void ARMv4::JumpTo(u32 addr, bool restorecpsr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARMv4::JumpTo8_16Bit(const u32 addr)
|
|
||||||
{
|
|
||||||
JumpTo(addr & ~1); // checkme?
|
|
||||||
}
|
|
||||||
|
|
||||||
void ARM::RestoreCPSR()
|
void ARM::RestoreCPSR()
|
||||||
{
|
{
|
||||||
u32 oldcpsr = CPSR;
|
u32 oldcpsr = CPSR;
|
||||||
|
@ -75,7 +75,6 @@ public:
|
|||||||
virtual void FillPipeline() = 0;
|
virtual void FillPipeline() = 0;
|
||||||
|
|
||||||
virtual void JumpTo(u32 addr, bool restorecpsr = false) = 0;
|
virtual void JumpTo(u32 addr, bool restorecpsr = false) = 0;
|
||||||
virtual void JumpTo8_16Bit(u32 addr) = 0;
|
|
||||||
void RestoreCPSR();
|
void RestoreCPSR();
|
||||||
|
|
||||||
void Halt(u32 halt)
|
void Halt(u32 halt)
|
||||||
@ -244,7 +243,6 @@ public:
|
|||||||
void FillPipeline() override;
|
void FillPipeline() override;
|
||||||
|
|
||||||
void JumpTo(u32 addr, bool restorecpsr = false) override;
|
void JumpTo(u32 addr, bool restorecpsr = false) override;
|
||||||
void JumpTo8_16Bit(const u32 addr) override;
|
|
||||||
|
|
||||||
void PrefetchAbort();
|
void PrefetchAbort();
|
||||||
void DataAbort();
|
void DataAbort();
|
||||||
@ -388,7 +386,6 @@ public:
|
|||||||
void FillPipeline() override;
|
void FillPipeline() override;
|
||||||
|
|
||||||
void JumpTo(u32 addr, bool restorecpsr = false) override;
|
void JumpTo(u32 addr, bool restorecpsr = false) override;
|
||||||
void JumpTo8_16Bit(const u32 addr) override;
|
|
||||||
|
|
||||||
template <CPUExecuteMode mode>
|
template <CPUExecuteMode mode>
|
||||||
void Execute();
|
void Execute();
|
||||||
|
Reference in New Issue
Block a user