lib/asm/crt0.s compiles without errors

This commit is contained in:
PikalaxALT 2021-06-27 10:26:44 -04:00
parent 896679f85c
commit db080cb0db
2 changed files with 104 additions and 100 deletions

View File

@ -1532,3 +1532,7 @@
.public SDK_STATIC_ETABLE_END
.public FUN_020F47A0
.public FUN_020F4A58
.public _fp_init
.public __call_static_initializers
.public FUN_01FF8000
.public NitroMain

View File

@ -1,9 +1,9 @@
.include "asm/macros.inc"
.include "global.inc"
.text
.syntax unified
arm_func_start _start
_start: @ 0x02000800
_start: ; 0x02000800
mov ip, #0x4000000
str ip, [ip, #0x208]
_02000808:
@ -13,12 +13,12 @@ _02000808:
bl init_cp15
mov r0, #0x13
msr cpsr_c, r0
ldr r0, _02000930 @ =OSi_IntrTable
ldr r0, _02000930 ; =OSi_IntrTable
add r0, r0, #0x3fc0
mov sp, r0
mov r0, #0x12
msr cpsr_c, r0
ldr r0, _02000930 @ =OSi_IntrTable
ldr r0, _02000930 ; =OSi_IntrTable
add r0, r0, #0x3fc0
sub r0, r0, #0x40
sub sp, r0, #4
@ -28,28 +28,28 @@ _02000808:
_02000850:
sub sp, sp, #4
_02000854:
ldr r1, _02000934 @ =0x00000800
ldr r1, _02000934 ; =0x00000800
sub r1, r0, r1
mov r0, #0x1f
msr cpsr_fsxc, r0
sub sp, r1, #4
mov r0, #0
ldr r1, _02000930 @ =OSi_IntrTable
ldr r1, _02000930 ; =OSi_IntrTable
mov r2, #0x4000
bl INITi_CpuClear32
mov r0, #0
ldr r1, _02000938 @ =0x05000000
ldr r1, _02000938 ; =0x05000000
mov r2, #0x400
bl INITi_CpuClear32
mov r0, #0x200
ldr r1, _0200093C @ =0x07000000
ldr r1, _0200093C ; =0x07000000
mov r2, #0x400
bl INITi_CpuClear32
ldr r1, _02000940 @ =_start_ModuleParams
ldr r1, _02000940 ; =_start_ModuleParams
ldr r0, [r1, #0x14]
bl MIi_UncompressBackward
bl do_autoload
ldr r0, _02000940 @ =_start_ModuleParams
ldr r0, _02000940 ; =_start_ModuleParams
ldr r1, [r0, #0xc]
ldr r2, [r0, #0x10]
mov r3, r1
@ -64,24 +64,24 @@ _020008CC:
blo _020008BC
bic r1, r3, #0x1f
_020008D4:
mcr p15, #0, r0, c7, c10, #4
mcr p15, #0, r1, c7, c5, #1
mcr p15, #0, r1, c7, c14, #1
mcr p15, 0, r0, c7, c10, 4
mcr p15, 0, r1, c7, c5, 1
mcr p15, 0, r1, c7, c14, 1
add r1, r1, #0x20
cmp r1, r2
blt _020008D4
ldr r1, _02000944 @ =0x027FFF9C
ldr r1, _02000944 ; =0x027FFF9C
str r0, [r1]
ldr r1, _02000930 @ =OSi_IntrTable
ldr r1, _02000930 ; =OSi_IntrTable
add r1, r1, #0x3fc0
add r1, r1, #0x3c
ldr r0, _02000948 @ =FUN_01FF8000
ldr r0, _02000948 ; =FUN_01FF8000
str r0, [r1]
bl _fp_init
bl NitroStartUp
bl __call_static_initializers
ldr r1, _0200094C @ =NitroMain
ldr lr, _02000950 @ =0xFFFF0000
ldr r1, _0200094C ; =NitroMain
ldr lr, _02000950 ; =0xFFFF0000
tst sp, #4
bne _02000928
b _0200092C
@ -90,36 +90,36 @@ _02000928:
_0200092C:
bx r1
.align 2, 0
_02000930: .4byte OSi_IntrTable
_02000934: .4byte 0x00000800
_02000938: .4byte 0x05000000
_0200093C: .4byte 0x07000000
_02000940: .4byte _start_ModuleParams
_02000944: .4byte 0x027FFF9C
_02000948: .4byte FUN_01FF8000
_0200094C: .4byte NitroMain
_02000950: .4byte 0xFFFF0000
_02000930: .word OSi_IntrTable
_02000934: .word 0x00000800
_02000938: .word 0x05000000
_0200093C: .word 0x07000000
_02000940: .word _start_ModuleParams
_02000944: .word 0x027FFF9C
_02000948: .word FUN_01FF8000
_0200094C: .word NitroMain
_02000950: .word 0xFFFF0000
arm_func_end _start
arm_func_start INITi_CpuClear32
INITi_CpuClear32: @ 0x02000954
INITi_CpuClear32: ; 0x02000954
add ip, r1, r2
_02000958:
cmp r1, ip
blt _02000964
b _02000968
_02000964:
stm r1!, {r0}
stmia r1!, {r0}
_02000968:
blt _02000958
bx lr
arm_func_end INITi_CpuClear32
arm_func_start MIi_UncompressBackward
MIi_UncompressBackward: @ 0x02000970
MIi_UncompressBackward: ; 0x02000970
cmp r0, #0
beq _02000A18
push {r4, r5, r6, r7}
stmdb sp!, {r4, r5, r6, r7}
ldmdb r0, {r1, r2}
add r2, r0, r2
sub r3, r0, r1, lsr #24
@ -153,26 +153,26 @@ _020009D8:
bge _020009D8
_020009E8:
cmp r3, r1
lsl r5, r5, #1
mov r5, r5, lsl #1
bgt _020009A4
_020009F4:
mov r0, #0
bic r3, r1, #0x1f
_020009FC:
mcr p15, #0, r0, c7, c10, #4
mcr p15, #0, r3, c7, c5, #1
mcr p15, #0, r3, c7, c14, #1
mcr p15, 0, r0, c7, c10, 4
mcr p15, 0, r3, c7, c5, 1
mcr p15, 0, r3, c7, c14, 1
add r3, r3, #0x20
cmp r3, r4
blt _020009FC
pop {r4, r5, r6, r7}
ldmia sp!, {r4, r5, r6, r7}
_02000A18:
bx lr
arm_func_end MIi_UncompressBackward
arm_func_start do_autoload
do_autoload: @ 0x02000A1C
ldr r0, _02000AA8 @ =_start_ModuleParams
do_autoload: ; 0x02000A1C
ldr r0, _02000AA8 ; =_start_ModuleParams
ldr r1, [r0]
ldr r2, [r0, #4]
ldr r3, [r0, #8]
@ -209,9 +209,9 @@ _02000A80:
blo _02000A70
bic r4, r5, #0x1f
_02000A88:
mcr p15, #0, r7, c7, c10, #4
mcr p15, #0, r4, c7, c5, #1
mcr p15, #0, r4, c7, c14, #1
mcr p15, 0, r7, c7, c10, 4
mcr p15, 0, r4, c7, c5, 1
mcr p15, 0, r4, c7, c14, 1
add r4, r4, #0x20
cmp r4, r6
blt _02000A88
@ -219,87 +219,87 @@ _02000A88:
_02000AA4:
b _start_AutoloadDoneCallback
.align 2, 0
_02000AA8: .4byte _start_ModuleParams
_02000AA8: .word _start_ModuleParams
arm_func_end do_autoload
_start_AutoloadDoneCallback:
bx lr
arm_func_end do_autoload
arm_func_start init_cp15
init_cp15: @ 0x02000AB0
mrc p15, #0, r0, c1, c0, #0
ldr r1, _02000B68 @ =0x000F9005
init_cp15: ; 0x02000AB0
mrc p15, 0, r0, c1, c0, 0
ldr r1, _02000B68 ; =0x000F9005
bic r0, r0, r1
mcr p15, #0, r0, c1, c0, #0
mcr p15, 0, r0, c1, c0, 0
mov r0, #0
mcr p15, #0, r0, c7, c5, #0
mcr p15, #0, r0, c7, c6, #0
mcr p15, #0, r0, c7, c10, #4
ldr r0, _02000B6C @ =0x04000033
mcr p15, #0, r0, c6, c0, #0
ldr r0, _02000B70 @ =0x0200002D
mcr p15, #0, r0, c6, c1, #0
ldr r0, _02000B74 @ =0x027E0021
mcr p15, #0, r0, c6, c2, #0
ldr r0, _02000B78 @ =0x08000035
mcr p15, #0, r0, c6, c3, #0
ldr r0, _02000B7C @ =OSi_IntrTable
mcr p15, 0, r0, c7, c5, 0
mcr p15, 0, r0, c7, c6, 0
mcr p15, 0, r0, c7, c10, 4
ldr r0, _02000B6C ; =0x04000033
mcr p15, 0, r0, c6, c0, 0
ldr r0, _02000B70 ; =0x0200002D
mcr p15, 0, r0, c6, c1, 0
ldr r0, _02000B74 ; =0x027E0021
mcr p15, 0, r0, c6, c2, 0
ldr r0, _02000B78 ; =0x08000035
mcr p15, 0, r0, c6, c3, 0
ldr r0, _02000B7C ; =OSi_IntrTable
orr r0, r0, #0x1a
orr r0, r0, #1
mcr p15, #0, r0, c6, c4, #0
ldr r0, _02000B80 @ =0x0100002F
mcr p15, #0, r0, c6, c5, #0
ldr r0, _02000B84 @ =0xFFFF001D
mcr p15, #0, r0, c6, c6, #0
ldr r0, _02000B88 @ =0x027FF017
mcr p15, #0, r0, c6, c7, #0
mcr p15, 0, r0, c6, c4, 0
ldr r0, _02000B80 ; =0x0100002F
mcr p15, 0, r0, c6, c5, 0
ldr r0, _02000B84 ; =0xFFFF001D
mcr p15, 0, r0, c6, c6, 0
ldr r0, _02000B88 ; =0x027FF017
mcr p15, 0, r0, c6, c7, 0
mov r0, #0x20
mcr p15, #0, r0, c9, c1, #1
ldr r0, _02000B7C @ =OSi_IntrTable
mcr p15, 0, r0, c9, c1, 1
ldr r0, _02000B7C ; =OSi_IntrTable
orr r0, r0, #0xa
mcr p15, #0, r0, c9, c1, #0
mcr p15, 0, r0, c9, c1, 0
mov r0, #0x42
mcr p15, #0, r0, c2, c0, #1
mcr p15, 0, r0, c2, c0, 1
mov r0, #0x42
mcr p15, #0, r0, c2, c0, #0
mcr p15, 0, r0, c2, c0, 0
mov r0, #2
mcr p15, #0, r0, c3, c0, #0
ldr r0, _02000B8C @ =0x05100011
mcr p15, #0, r0, c5, c0, #3
ldr r0, _02000B90 @ =0x15111011
mcr p15, #0, r0, c5, c0, #2
mrc p15, #0, r0, c1, c0, #0
ldr r1, _02000B94 @ =0x0005707D
mcr p15, 0, r0, c3, c0, 0
ldr r0, _02000B8C ; =0x05100011
mcr p15, 0, r0, c5, c0, 3
ldr r0, _02000B90 ; =0x15111011
mcr p15, 0, r0, c5, c0, 2
mrc p15, 0, r0, c1, c0, 0
ldr r1, _02000B94 ; =0x0005707D
orr r0, r0, r1
mcr p15, #0, r0, c1, c0, #0
mcr p15, 0, r0, c1, c0, 0
bx lr
.align 2, 0
_02000B68: .4byte 0x000F9005
_02000B6C: .4byte 0x04000033
_02000B70: .4byte 0x0200002D
_02000B74: .4byte 0x027E0021
_02000B78: .4byte 0x08000035
_02000B7C: .4byte OSi_IntrTable
_02000B80: .4byte 0x0100002F
_02000B84: .4byte 0xFFFF001D
_02000B88: .4byte 0x027FF017
_02000B8C: .4byte 0x05100011
_02000B90: .4byte 0x15111011
_02000B94: .4byte 0x0005707D
_02000B68: .word 0x000F9005
_02000B6C: .word 0x04000033
_02000B70: .word 0x0200002D
_02000B74: .word 0x027E0021
_02000B78: .word 0x08000035
_02000B7C: .word OSi_IntrTable
_02000B80: .word 0x0100002F
_02000B84: .word 0xFFFF001D
_02000B88: .word 0x027FF017
_02000B8C: .word 0x05100011
_02000B90: .word 0x15111011
_02000B94: .word 0x0005707D
arm_func_end init_cp15
arm_func_start NitroStartUp
NitroStartUp: @ 0x02000B98
NitroStartUp: ; 0x02000B98
bx lr
arm_func_end NitroStartUp
arm_func_start OSi_ReferSymbol
OSi_ReferSymbol: @ 0x02000B9C
OSi_ReferSymbol: ; 0x02000B9C
bx lr
arm_func_end OSi_ReferSymbol
.rodata
_start_ModuleParams: @ 0x02000BA0
_start_ModuleParams: ; 0x02000BA0
.word 0x02111EE0 ; SDK_AUTOLOAD_LIST
.word 0x02111EF8 ; SDK_AUTOLOAD_LIST_END
.word 0x02111860 ; SDK_AUTOLOAD_START
@ -314,35 +314,35 @@ _start_ModuleParams: @ 0x02000BA0
.balign 4, 0
.public _version_NINTENDO_DWC
_version_NINTENDO_DWC: @ 0x02000BC4
_version_NINTENDO_DWC: ; 0x02000BC4
.asciz "[SDK+NINTENDO:DWC2.2.30008.080630.1906_DWC_2_2_PLUS8]"
.balign 4, 0
.public _version_NINTENDO_WiFi
_version_NINTENDO_WiFi: @ 0x02000BFC
_version_NINTENDO_WiFi: ; 0x02000BFC
.asciz "[SDK+NINTENDO:WiFi2.1.30003.0709200229]"
.balign 4, 0
.public _version_UBIQUITOUS_CPS
_version_UBIQUITOUS_CPS: @ 0x02000C24
_version_UBIQUITOUS_CPS: ; 0x02000C24
.asciz "[SDK+UBIQUITOUS:CPS]"
.balign 4, 0
.public _version_UBIQUITOUS_SSL
_version_UBIQUITOUS_SSL: @ 0x02000C3C
_version_UBIQUITOUS_SSL: ; 0x02000C3C
.asciz "[SDK+UBIQUITOUS:SSL]"
.balign 4, 0
.public _version_Abiosso_libVCT
_version_Abiosso_libVCT: @ 0x02000C54
_version_Abiosso_libVCT: ; 0x02000C54
.asciz "[SDK+Abiosso:libVCT 1.3.1]"
.balign 4, 0
.public _version_NINTENDO_BACKUP
_version_NINTENDO_BACKUP: @ 0x02000C70
_version_NINTENDO_BACKUP: ; 0x02000C70
.asciz "[SDK+NINTENDO:BACKUP]"
.balign 4, 0
.public _version_NINTENDO_DWC_LOBBY
_version_NINTENDO_DWC_LOBBY: @ 0x02000C88
_version_NINTENDO_DWC_LOBBY: ; 0x02000C88
.asciz "[SDK+NINTENDO:DWC_LOBBY]"