mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-05-14 05:05:43 -04:00
Bus: Fix sideloading EXEs without initial SP value
This commit is contained in:
parent
62eb557832
commit
00a58eb4e5
@ -981,9 +981,14 @@ bool Bus::InjectExecutable(std::span<const u8> buffer, bool set_pc, Error* error
|
||||
if (set_pc)
|
||||
{
|
||||
const u32 r_pc = header.initial_pc;
|
||||
CPU::g_state.regs.gp = header.initial_gp;
|
||||
CPU::g_state.regs.sp = header.initial_sp_base + header.initial_sp_offset;
|
||||
CPU::g_state.regs.fp = header.initial_sp_base + header.initial_sp_offset;
|
||||
const u32 r_gp = header.initial_gp;
|
||||
const u32 r_sp = header.initial_sp_base + header.initial_sp_offset;
|
||||
CPU::g_state.regs.gp = r_gp;
|
||||
if (r_sp != 0)
|
||||
{
|
||||
CPU::g_state.regs.sp = r_sp;
|
||||
CPU::g_state.regs.fp = r_sp;
|
||||
}
|
||||
CPU::SetPC(r_pc);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user