Files
goldeneye-pc-port/src/boot.s
T
2026-08-16 17:30:25 -04:00

68 lines
2.8 KiB
ArmAsm

# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel boot
/* 001050 70000450 24020001 */ li $v0, 1
/* 001054 70000454 24030000 */ li $v1, 0
/* 001058 70000458 24040000 */ li $a0, 0
/* 00105C 7000045C 3C057000 */ lui $a1, 0x7000
/* 001060 70000460 2406001F */ li $a2, 31
/* 001064 70000464 24070001 */ li $a3, 1
/* 001068 70000468 3C08007F */ lui $t0, (0x007FE000 >> 16)
/* 00106C 7000046C 3508E000 */ ori $t0, (0x007FE000 & 0xFFFF)
/* 001070 70000470 40820000 */ mtc0 $v0, $0
/* 001074 70000474 00031B02 */ srl $v1, $v1, 0xc
/* 001078 70000478 00031980 */ sll $v1, $v1, 6
/* 00107C 7000047C 00661821 */ addu $v1, $v1, $a2
/* 001080 70000480 40831000 */ mtc0 $v1, $2
/* 001084 70000484 00042302 */ srl $a0, $a0, 0xc
/* 001088 70000488 00042180 */ sll $a0, $a0, 6
/* 00108C 7000048C 00872021 */ addu $a0, $a0, $a3
/* 001090 70000490 40841800 */ mtc0 $a0, $3
/* 001094 70000494 00052342 */ srl $a0, $a1, 0xd
/* 001098 70000498 00042340 */ sll $a0, $a0, 0xd
/* 00109C 7000049C 40845000 */ mtc0 $a0, $10
/* 0010A0 700004A0 40882800 */ mtc0 $t0, $5
/* 0010A4 700004A4 00000000 */ nop
/* 0010A8 700004A8 42000002 */ tlbwi
/* 0010AC 700004AC 3C0A7000 */ lui $t2, %hi(init)
/* 0010B0 700004B0 254A0510 */ addiu $t2, $t2, %lo(init)
/* 0010B4 700004B4 01400008 */ jr $t2
/* 0010B8 700004B8 00000000 */ nop
glabel get_csegmentSegmentStart
/* 0010BC 700004BC 3C028002 */ lui $v0, %hi(_csegmentSegmentStart)
/* 0010C0 700004C0 03E00008 */ jr $ra
/* 0010C4 700004C4 24420D90 */ addiu $v0, $v0, %lo(_csegmentSegmentStart)
glabel get_cdataSegmentRomStart
/* 0010C8 700004C8 3C020000 */ lui $v0, %hi(_cdataSegmentRomStart)
/* 0010CC 700004CC 03E00008 */ jr $ra
/* 0010D0 700004D0 24421990 */ addiu $v0, $v0, %lo(_cdataSegmentRomStart)
glabel get_cdataSegmentRomEnd
/* 0010D4 700004D4 3C020000 */ lui $v0, %hi(_cdataSegmentRomEnd)
/* 0010D8 700004D8 03E00008 */ jr $ra
/* 0010DC 700004DC 24423590 */ addiu $v0, $v0, %lo(_cdataSegmentRomEnd)
glabel get_inflateSegmentRomStart
/* 0010E0 700004E0 3C020000 */ lui $v0, %hi(_inflateSegmentRomStart)
/* 0010E4 700004E4 03E00008 */ jr $ra
/* 0010E8 700004E8 24423590 */ addiu $v0, $v0, %lo(_inflateSegmentRomStart)
glabel get_inflateSegmentRomEnd
/* 0010EC 700004EC 3C020000 */ lui $v0, %hi(_inflateSegmentRomEnd)
/* 0010F0 700004F0 03E00008 */ jr $ra
/* 0010F4 700004F4 24424B30 */ addiu $v0, $v0, %lo(_inflateSegmentRomEnd)
glabel jump_decompressfile
/* 0010F8 700004F8 3C077020 */ lui $a3, %hi(decompress_entry)
/* 0010FC 700004FC 24E7141C */ addiu $a3, $a3, %lo(decompress_entry)
/* 001100 70000500 00E00008 */ jr $a3
/* 001104 70000504 00000000 */ nop