mirror of
https://github.com/zeldaret/oot.git
synced 2024-12-01 15:26:01 +00:00
266 lines
12 KiB
ArmAsm
266 lines
12 KiB
ArmAsm
.rdata
|
|
|
|
glabel D_80147368
|
|
.asciz "フォルトマネージャ:OS_EVENT_CPU_BREAKを受信しました\n"
|
|
.balign 4
|
|
glabel D_801473A0
|
|
.asciz "フォルトマネージャ:OS_EVENT_FAULTを受信しました\n"
|
|
.balign 4
|
|
glabel D_801473D4
|
|
.asciz "フォルトマネージャ:不明なメッセージを受信しました\n"
|
|
.balign 4
|
|
glabel D_80147408
|
|
.asciz "__osGetCurrFaultedThread()=%08x\n"
|
|
.balign 4
|
|
glabel D_8014742C
|
|
.asciz "FindFaultedThread()=%08x\n"
|
|
.balign 4
|
|
glabel D_80147448
|
|
.asciz "STACK TRACE"
|
|
.balign 4
|
|
glabel D_80147454
|
|
.asciz " CONGRATURATIONS! "
|
|
.balign 4
|
|
glabel D_80147470
|
|
.asciz "All Pages are displayed."
|
|
.balign 4
|
|
glabel D_8014748C
|
|
.asciz " THANK YOU! "
|
|
.balign 4
|
|
glabel D_801474A8
|
|
.asciz " You are great debugger!"
|
|
.balign 4
|
|
|
|
.text
|
|
glabel Fault_ThreadEntry
|
|
/* B4D270 800D60D0 3C0AFFFA */ lui $t2, (0xFFFA5A5A >> 16) # lui $t2, 0xfffa
|
|
/* B4D274 800D60D4 03A05825 */ move $t3, $sp
|
|
/* B4D278 800D60D8 27BDFFA8 */ addiu $sp, $sp, -0x58
|
|
/* B4D27C 800D60DC 354A5A5A */ ori $t2, (0xFFFA5A5A & 0xFFFF) # ori $t2, $t2, 0x5a5a
|
|
.L800D60E0:
|
|
/* B4D280 800D60E0 256BFFF8 */ addiu $t3, $t3, -8
|
|
/* B4D284 800D60E4 AD6A0000 */ sw $t2, ($t3)
|
|
/* B4D288 800D60E8 157DFFFD */ bne $t3, $sp, .L800D60E0
|
|
/* B4D28C 800D60EC AD6A0004 */ sw $t2, 4($t3)
|
|
/* B4D290 800D60F0 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* B4D294 800D60F4 3C118017 */ lui $s1, %hi(sFaultStructPtr) # $s1, 0x8017
|
|
/* B4D298 800D60F8 2631A800 */ addiu $s1, %lo(sFaultStructPtr) # addiu $s1, $s1, -0x5800
|
|
/* B4D29C 800D60FC AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* B4D2A0 800D6100 AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* B4D2A4 800D6104 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* B4D2A8 800D6108 AFB60030 */ sw $s6, 0x30($sp)
|
|
/* B4D2AC 800D610C AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* B4D2B0 800D6110 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* B4D2B4 800D6114 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* B4D2B8 800D6118 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* B4D2BC 800D611C AFB00018 */ sw $s0, 0x18($sp)
|
|
/* B4D2C0 800D6120 AFA40058 */ sw $a0, 0x58($sp)
|
|
/* B4D2C4 800D6124 8E250000 */ lw $a1, ($s1)
|
|
/* B4D2C8 800D6128 2404000A */ li $a0, 10
|
|
/* B4D2CC 800D612C 24060001 */ li $a2, 1
|
|
/* B4D2D0 800D6130 0C001488 */ jal osSetEventMesg
|
|
/* B4D2D4 800D6134 24A507B0 */ addiu $a1, $a1, 0x7b0
|
|
/* B4D2D8 800D6138 8E250000 */ lw $a1, ($s1)
|
|
/* B4D2DC 800D613C 2404000C */ li $a0, 12
|
|
/* B4D2E0 800D6140 24060002 */ li $a2, 2
|
|
/* B4D2E4 800D6144 0C001488 */ jal osSetEventMesg
|
|
/* B4D2E8 800D6148 24A507B0 */ addiu $a1, $a1, 0x7b0
|
|
/* B4D2EC 800D614C 3C178014 */ lui $s7, %hi(D_8014742C) # $s7, 0x8014
|
|
/* B4D2F0 800D6150 3C168014 */ lui $s6, %hi(D_80147408) # $s6, 0x8014
|
|
/* B4D2F4 800D6154 3C158014 */ lui $s5, %hi(D_80147368) # $s5, 0x8014
|
|
/* B4D2F8 800D6158 26B57368 */ addiu $s5, %lo(D_80147368) # addiu $s5, $s5, 0x7368
|
|
/* B4D2FC 800D615C 26D67408 */ addiu $s6, %lo(D_80147408) # addiu $s6, $s6, 0x7408
|
|
/* B4D300 800D6160 26F7742C */ addiu $s7, %lo(D_8014742C) # addiu $s7, $s7, 0x742c
|
|
/* B4D304 800D6164 241E0002 */ li $fp, 2
|
|
/* B4D308 800D6168 24140001 */ li $s4, 1
|
|
/* B4D30C 800D616C 27B30054 */ addiu $s3, $sp, 0x54
|
|
/* B4D310 800D6170 24120001 */ li $s2, 1
|
|
/* B4D314 800D6174 8E240000 */ lw $a0, ($s1)
|
|
.L800D6178:
|
|
/* B4D318 800D6178 02602825 */ move $a1, $s3
|
|
/* B4D31C 800D617C 24060001 */ li $a2, 1
|
|
/* B4D320 800D6180 0C000CA0 */ jal osRecvMesg
|
|
/* B4D324 800D6184 248407B0 */ addiu $a0, $a0, 0x7b0
|
|
/* B4D328 800D6188 8FA30054 */ lw $v1, 0x54($sp)
|
|
/* B4D32C 800D618C 14740007 */ bne $v1, $s4, .L800D61AC
|
|
/* B4D330 800D6190 00000000 */ nop
|
|
/* B4D334 800D6194 8E2E0000 */ lw $t6, ($s1)
|
|
/* B4D338 800D6198 02A02025 */ move $a0, $s5
|
|
/* B4D33C 800D619C 0C00084C */ jal osSyncPrintf
|
|
/* B4D340 800D61A0 A1D207CD */ sb $s2, 0x7cd($t6)
|
|
/* B4D344 800D61A4 10000016 */ b .L800D6200
|
|
/* B4D348 800D61A8 00000000 */ nop
|
|
.L800D61AC:
|
|
/* B4D34C 800D61AC 147E0009 */ bne $v1, $fp, .L800D61D4
|
|
/* B4D350 800D61B0 24010003 */ li $at, 3
|
|
/* B4D354 800D61B4 8E380000 */ lw $t8, ($s1)
|
|
/* B4D358 800D61B8 240F0002 */ li $t7, 2
|
|
/* B4D35C 800D61BC 3C048014 */ lui $a0, %hi(D_801473A0) # $a0, 0x8014
|
|
/* B4D360 800D61C0 248473A0 */ addiu $a0, %lo(D_801473A0) # addiu $a0, $a0, 0x73a0
|
|
/* B4D364 800D61C4 0C00084C */ jal osSyncPrintf
|
|
/* B4D368 800D61C8 A30F07CD */ sb $t7, 0x7cd($t8)
|
|
/* B4D36C 800D61CC 1000000C */ b .L800D6200
|
|
/* B4D370 800D61D0 00000000 */ nop
|
|
.L800D61D4:
|
|
/* B4D374 800D61D4 14610005 */ bne $v1, $at, .L800D61EC
|
|
/* B4D378 800D61D8 24190003 */ li $t9, 3
|
|
/* B4D37C 800D61DC 0C035825 */ jal Fault_UpdatePad
|
|
/* B4D380 800D61E0 00008025 */ move $s0, $zero
|
|
/* B4D384 800D61E4 10000014 */ b .L800D6238
|
|
/* B4D388 800D61E8 00000000 */ nop
|
|
.L800D61EC:
|
|
/* B4D38C 800D61EC 8E280000 */ lw $t0, ($s1)
|
|
/* B4D390 800D61F0 3C048014 */ lui $a0, %hi(D_801473D4) # $a0, 0x8014
|
|
/* B4D394 800D61F4 248473D4 */ addiu $a0, %lo(D_801473D4) # addiu $a0, $a0, 0x73d4
|
|
/* B4D398 800D61F8 0C00084C */ jal osSyncPrintf
|
|
/* B4D39C 800D61FC A11907CD */ sb $t9, 0x7cd($t0)
|
|
.L800D6200:
|
|
/* B4D3A0 800D6200 0C041930 */ jal __osGetCurrFaultedThread
|
|
/* B4D3A4 800D6204 00000000 */ nop
|
|
/* B4D3A8 800D6208 00408025 */ move $s0, $v0
|
|
/* B4D3AC 800D620C 02C02025 */ move $a0, $s6
|
|
/* B4D3B0 800D6210 0C00084C */ jal osSyncPrintf
|
|
/* B4D3B4 800D6214 00402825 */ move $a1, $v0
|
|
/* B4D3B8 800D6218 16000007 */ bnez $s0, .L800D6238
|
|
/* B4D3BC 800D621C 00000000 */ nop
|
|
/* B4D3C0 800D6220 0C0354A9 */ jal Fault_FindFaultedThread
|
|
/* B4D3C4 800D6224 00000000 */ nop
|
|
/* B4D3C8 800D6228 00408025 */ move $s0, $v0
|
|
/* B4D3CC 800D622C 02E02025 */ move $a0, $s7
|
|
/* B4D3D0 800D6230 0C00084C */ jal osSyncPrintf
|
|
/* B4D3D4 800D6234 00402825 */ move $a1, $v0
|
|
.L800D6238:
|
|
/* B4D3D8 800D6238 5200FFCF */ beql $s0, $zero, .L800D6178
|
|
/* B4D3DC 800D623C 8E240000 */ lw $a0, ($s1)
|
|
/* B4D3E0 800D6240 0C001EA0 */ jal __osGetFpcCsr
|
|
/* B4D3E4 800D6244 00000000 */ nop
|
|
/* B4D3E8 800D6248 2401F07F */ li $at, -3969
|
|
/* B4D3EC 800D624C 0C001E9C */ jal __osSetFpcCsr
|
|
/* B4D3F0 800D6250 00412024 */ and $a0, $v0, $at
|
|
/* B4D3F4 800D6254 8E290000 */ lw $t1, ($s1)
|
|
/* B4D3F8 800D6258 AD3007D0 */ sw $s0, 0x7d0($t1)
|
|
/* B4D3FC 800D625C 8E2A0000 */ lw $t2, ($s1)
|
|
/* B4D400 800D6260 914B07CE */ lbu $t3, 0x7ce($t2)
|
|
/* B4D404 800D6264 15600007 */ bnez $t3, .L800D6284
|
|
/* B4D408 800D6268 00000000 */ nop
|
|
.L800D626C:
|
|
/* B4D40C 800D626C 0C03518F */ jal Fault_Sleep
|
|
/* B4D410 800D6270 240403E8 */ li $a0, 1000
|
|
/* B4D414 800D6274 8E2C0000 */ lw $t4, ($s1)
|
|
/* B4D418 800D6278 918D07CE */ lbu $t5, 0x7ce($t4)
|
|
/* B4D41C 800D627C 11A0FFFB */ beqz $t5, .L800D626C
|
|
/* B4D420 800D6280 00000000 */ nop
|
|
.L800D6284:
|
|
/* B4D424 800D6284 0C03518F */ jal Fault_Sleep
|
|
/* B4D428 800D6288 240401F4 */ li $a0, 500
|
|
/* B4D42C 800D628C 0C0357BD */ jal Fault_CommitFB
|
|
/* B4D430 800D6290 00000000 */ nop
|
|
/* B4D434 800D6294 8E2E0000 */ lw $t6, ($s1)
|
|
/* B4D438 800D6298 91CF07CF */ lbu $t7, 0x7cf($t6)
|
|
/* B4D43C 800D629C 11E00005 */ beqz $t7, .L800D62B4
|
|
/* B4D440 800D62A0 00000000 */ nop
|
|
/* B4D444 800D62A4 0C0354CB */ jal Fault_Wait5Seconds
|
|
/* B4D448 800D62A8 00000000 */ nop
|
|
/* B4D44C 800D62AC 10000006 */ b .L800D62C8
|
|
/* B4D450 800D62B0 8E380000 */ lw $t8, ($s1)
|
|
.L800D62B4:
|
|
/* B4D454 800D62B4 0C035268 */ jal Fault_DrawCornerRec
|
|
/* B4D458 800D62B8 3404F801 */ li $a0, 63489
|
|
/* B4D45C 800D62BC 0C0354EF */ jal Fault_WaitForButtonCombo
|
|
/* B4D460 800D62C0 00000000 */ nop
|
|
/* B4D464 800D62C4 8E380000 */ lw $t8, ($s1)
|
|
.L800D62C8:
|
|
/* B4D468 800D62C8 3404FFFF */ li $a0, 65535
|
|
/* B4D46C 800D62CC 0C035AD7 */ jal FaultDrawer_SetForeColor
|
|
/* B4D470 800D62D0 A31207CF */ sb $s2, 0x7cf($t8)
|
|
/* B4D474 800D62D4 0C035AE9 */ jal FaultDrawer_SetBackColor
|
|
/* B4D478 800D62D8 00002025 */ move $a0, $zero
|
|
.L800D62DC:
|
|
/* B4D47C 800D62DC 0C035323 */ jal Fault_PrintThreadContext
|
|
/* B4D480 800D62E0 02002025 */ move $a0, $s0
|
|
/* B4D484 800D62E4 0C0353EA */ jal Fault_LogThreadContext
|
|
/* B4D488 800D62E8 02002025 */ move $a0, $s0
|
|
/* B4D48C 800D62EC 0C035213 */ jal Fault_WaitForInput
|
|
/* B4D490 800D62F0 00000000 */ nop
|
|
/* B4D494 800D62F4 0C03523E */ jal Fault_FillScreenBlack
|
|
/* B4D498 800D62F8 00000000 */ nop
|
|
/* B4D49C 800D62FC 3C068014 */ lui $a2, %hi(D_80147448) # $a2, 0x8014
|
|
/* B4D4A0 800D6300 24C67448 */ addiu $a2, %lo(D_80147448) # addiu $a2, $a2, 0x7448
|
|
/* B4D4A4 800D6304 24040078 */ li $a0, 120
|
|
/* B4D4A8 800D6308 0C035C26 */ jal FaultDrawer_DrawText
|
|
/* B4D4AC 800D630C 24050010 */ li $a1, 16
|
|
/* B4D4B0 800D6310 02002025 */ move $a0, $s0
|
|
/* B4D4B4 800D6314 24050024 */ li $a1, 36
|
|
/* B4D4B8 800D6318 24060018 */ li $a2, 24
|
|
/* B4D4BC 800D631C 0C0356E2 */ jal Fault_DrawStackTrace
|
|
/* B4D4C0 800D6320 24070016 */ li $a3, 22
|
|
/* B4D4C4 800D6324 02002025 */ move $a0, $s0
|
|
/* B4D4C8 800D6328 0C035742 */ jal Fault_LogStackTrace
|
|
/* B4D4CC 800D632C 24050032 */ li $a1, 50
|
|
/* B4D4D0 800D6330 0C035213 */ jal Fault_WaitForInput
|
|
/* B4D4D4 800D6334 00000000 */ nop
|
|
/* B4D4D8 800D6338 0C0357ED */ jal Fault_ProcessClients
|
|
/* B4D4DC 800D633C 00000000 */ nop
|
|
/* B4D4E0 800D6340 8E04011C */ lw $a0, 0x11c($s0)
|
|
/* B4D4E4 800D6344 8E0500F4 */ lw $a1, 0xf4($s0)
|
|
/* B4D4E8 800D6348 00003025 */ move $a2, $zero
|
|
/* B4D4EC 800D634C 00003825 */ move $a3, $zero
|
|
/* B4D4F0 800D6350 0C0355FD */ jal Fault_DrawMemDump
|
|
/* B4D4F4 800D6354 2484FF00 */ addiu $a0, $a0, -0x100
|
|
/* B4D4F8 800D6358 0C035253 */ jal Fault_FillScreenRed
|
|
/* B4D4FC 800D635C 00000000 */ nop
|
|
/* B4D500 800D6360 3C068014 */ lui $a2, %hi(D_80147454) # $a2, 0x8014
|
|
/* B4D504 800D6364 24C67454 */ addiu $a2, %lo(D_80147454) # addiu $a2, $a2, 0x7454
|
|
/* B4D508 800D6368 24040040 */ li $a0, 64
|
|
/* B4D50C 800D636C 0C035C26 */ jal FaultDrawer_DrawText
|
|
/* B4D510 800D6370 24050050 */ li $a1, 80
|
|
/* B4D514 800D6374 3C068014 */ lui $a2, %hi(D_80147470) # $a2, 0x8014
|
|
/* B4D518 800D6378 24C67470 */ addiu $a2, %lo(D_80147470) # addiu $a2, $a2, 0x7470
|
|
/* B4D51C 800D637C 24040040 */ li $a0, 64
|
|
/* B4D520 800D6380 0C035C26 */ jal FaultDrawer_DrawText
|
|
/* B4D524 800D6384 2405005A */ li $a1, 90
|
|
/* B4D528 800D6388 3C068014 */ lui $a2, %hi(D_8014748C) # $a2, 0x8014
|
|
/* B4D52C 800D638C 24C6748C */ addiu $a2, %lo(D_8014748C) # addiu $a2, $a2, 0x748c
|
|
/* B4D530 800D6390 24040040 */ li $a0, 64
|
|
/* B4D534 800D6394 0C035C26 */ jal FaultDrawer_DrawText
|
|
/* B4D538 800D6398 24050064 */ li $a1, 100
|
|
/* B4D53C 800D639C 3C068014 */ lui $a2, %hi(D_801474A8) # $a2, 0x8014
|
|
/* B4D540 800D63A0 24C674A8 */ addiu $a2, %lo(D_801474A8) # addiu $a2, $a2, 0x74a8
|
|
/* B4D544 800D63A4 24040040 */ li $a0, 64
|
|
/* B4D548 800D63A8 0C035C26 */ jal FaultDrawer_DrawText
|
|
/* B4D54C 800D63AC 2405006E */ li $a1, 110
|
|
/* B4D550 800D63B0 0C035213 */ jal Fault_WaitForInput
|
|
/* B4D554 800D63B4 00000000 */ nop
|
|
/* B4D558 800D63B8 8E390000 */ lw $t9, ($s1)
|
|
/* B4D55C 800D63BC 932207CC */ lbu $v0, 0x7cc($t9)
|
|
/* B4D560 800D63C0 1040FFC6 */ beqz $v0, .L800D62DC
|
|
/* B4D564 800D63C4 00000000 */ nop
|
|
/* B4D568 800D63C8 14400003 */ bnez $v0, .L800D63D8
|
|
/* B4D56C 800D63CC 00000000 */ nop
|
|
.L800D63D0:
|
|
/* B4D570 800D63D0 1040FFFF */ beqz $v0, .L800D63D0
|
|
/* B4D574 800D63D4 00000000 */ nop
|
|
.L800D63D8:
|
|
/* B4D578 800D63D8 0C03579E */ jal Fault_ResumeThread
|
|
/* B4D57C 800D63DC 02002025 */ move $a0, $s0
|
|
/* B4D580 800D63E0 1000FF65 */ b .L800D6178
|
|
/* B4D584 800D63E4 8E240000 */ lw $a0, ($s1)
|
|
/* B4D588 800D63E8 00000000 */ nop
|
|
/* B4D58C 800D63EC 00000000 */ nop
|
|
/* B4D590 800D63F0 00000000 */ nop
|
|
/* B4D594 800D63F4 00000000 */ nop
|
|
/* B4D598 800D63F8 00000000 */ nop
|
|
/* B4D59C 800D63FC 00000000 */ nop
|
|
/* B4D5A0 800D6400 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* B4D5A4 800D6404 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* B4D5A8 800D6408 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* B4D5AC 800D640C 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* B4D5B0 800D6410 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* B4D5B4 800D6414 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* B4D5B8 800D6418 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* B4D5BC 800D641C 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* B4D5C0 800D6420 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* B4D5C4 800D6424 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* B4D5C8 800D6428 03E00008 */ jr $ra
|
|
/* B4D5CC 800D642C 27BD0058 */ addiu $sp, $sp, 0x58
|
|
|