From f30222117a78d384defb282abe0e04ddfd105dc6 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 26 Jan 2021 17:23:31 +1000 Subject: [PATCH] Convert boot/segments.c to ASM --- src/boot/segments.c | 38 -------------------------------------- src/boot/segments.s | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 38 deletions(-) delete mode 100644 src/boot/segments.c create mode 100644 src/boot/segments.s diff --git a/src/boot/segments.c b/src/boot/segments.c deleted file mode 100644 index 86b623cc1..000000000 --- a/src/boot/segments.c +++ /dev/null @@ -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 -); diff --git a/src/boot/segments.s b/src/boot/segments.s new file mode 100644 index 000000000..4429f1801 --- /dev/null +++ b/src/boot/segments.s @@ -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)