Convert boot/segments.c to ASM

This commit is contained in:
Ryan Dwyer 2021-01-26 17:23:31 +10:00
parent e967f581c2
commit f30222117a
2 changed files with 41 additions and 38 deletions

View File

@ -1,38 +0,0 @@
extern void *_dataSegmentStart;
extern void *_datazipSegmentRomStart;
extern void *_inflateSegmentRomStart;
extern void *_gamezipSegmentRomStart;
void *segGetDataStart(void)
{
return &_dataSegmentStart;
}
void *segGetDatazipRomStart(void)
{
return &_datazipSegmentRomStart;
}
void *segGetInflateRomStart(void)
{
return &_inflateSegmentRomStart;
}
void *segGetInflateRomStart2(void)
{
return &_inflateSegmentRomStart;
}
void *segGetGamezipsRomStart(void)
{
return &_gamezipSegmentRomStart;
}
GLOBAL_ASM(
glabel bootInflate
/* 16ac: 3c077020 */ lui $a3,%hi(inflate1173)
/* 16b0: 24e7126c */ addiu $a3,$a3,%lo(inflate1173)
/* 16b4: 00e00008 */ jr $a3
/* 16b8: 00000000 */ nop
/* 16bc: 00000000 */ nop
);

41
src/boot/segments.s Normal file
View File

@ -0,0 +1,41 @@
#include "asm_helper.h"
.set noat
.set noreorder
.text
LEAF(segGetDataStart)
lui v0, %hi(_dataSegmentStart)
jr ra
addiu v0, v0, %lo(_dataSegmentStart)
END(segGetDataStart)
LEAF(segGetDatazipRomStart)
lui v0, %hi(_datazipSegmentRomStart)
jr ra
addiu v0, v0, %lo(_datazipSegmentRomStart)
END(segGetDatazipRomStart)
LEAF(segGetInflateRomStart)
lui v0, %hi(_inflateSegmentRomStart)
jr ra
addiu v0, v0, %lo(_inflateSegmentRomStart)
END(segGetInflateRomStart)
LEAF(segGetInflateRomStart2)
lui v0, %hi(_inflateSegmentRomStart)
jr ra
addiu v0, v0, %lo(_inflateSegmentRomStart)
END(segGetInflateRomStart2)
LEAF(segGetGamezipsRomStart)
lui v0, %hi(_gamezipSegmentRomStart)
jr ra
addiu v0, v0, %lo(_gamezipSegmentRomStart)
END(segGetGamezipsRomStart)
LEAF(bootInflate)
lui a3, %hi(inflate1173)
addiu a3, a3, %lo(inflate1173)
jr a3
nop
END(bootInflate)