mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-02-20 19:23:38 +01:00
Merge pull request #1217 from ipatix/fix_O3
rewrite MultiBootWaitCycles as naked function
This commit is contained in:
commit
4a773ce18d
@ -1,3 +1,4 @@
|
||||
#include "global.h"
|
||||
#include "gba/gba.h"
|
||||
#include "multiboot.h"
|
||||
|
||||
@ -435,23 +436,23 @@ static int MultiBootHandShake(struct MultiBootParam *mp)
|
||||
#undef must_data
|
||||
}
|
||||
|
||||
static NOINLINE void MultiBootWaitCycles(u32 cycles)
|
||||
NAKED
|
||||
static void MultiBootWaitCycles(u32 cycles)
|
||||
{
|
||||
asm("mov r2, pc");
|
||||
asm("lsr r2, #24");
|
||||
asm("mov r1, #12");
|
||||
asm("cmp r2, #0x02");
|
||||
asm("beq MultiBootWaitCyclesLoop");
|
||||
|
||||
asm("mov r1, #13");
|
||||
asm("cmp r2, #0x08");
|
||||
asm("beq MultiBootWaitCyclesLoop");
|
||||
|
||||
asm("mov r1, #4");
|
||||
|
||||
asm("MultiBootWaitCyclesLoop:");
|
||||
asm("sub r0, r1");
|
||||
asm("bgt MultiBootWaitCyclesLoop");
|
||||
asm_unified("\
|
||||
mov r2, pc\n\
|
||||
lsrs r2, 24\n\
|
||||
movs r1, 12\n\
|
||||
cmp r2, 2\n\
|
||||
beq MultiBootWaitCyclesLoop\n\
|
||||
movs r1, 13\n\
|
||||
cmp r2, 8\n\
|
||||
beq MultiBootWaitCyclesLoop\n\
|
||||
movs r1, 4\n\
|
||||
MultiBootWaitCyclesLoop:\n\
|
||||
subs r0, r1\n\
|
||||
bgt MultiBootWaitCyclesLoop\n\
|
||||
bx lr\n");
|
||||
}
|
||||
|
||||
static void MultiBootWaitSendDone(void)
|
||||
|
Loading…
x
Reference in New Issue
Block a user