mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
110 lines
5.3 KiB
ArmAsm
110 lines
5.3 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel osCreatePiManager
|
|
/* 03BDE0 800609E0 27BDFFC8 */ addiu $sp, $sp, -0x38
|
|
/* 03BDE4 800609E4 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 03BDE8 800609E8 00808021 */ addu $s0, $a0, $zero
|
|
/* 03BDEC 800609EC AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* 03BDF0 800609F0 00A0A821 */ addu $s5, $a1, $zero
|
|
/* 03BDF4 800609F4 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* 03BDF8 800609F8 3C148009 */ lui $s4, 0x8009
|
|
/* 03BDFC 800609FC 26943D50 */ addiu $s4, $s4, 0x3d50
|
|
/* 03BE00 80060A00 AFBF0030 */ sw $ra, 0x30($sp)
|
|
/* 03BE04 80060A04 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* 03BE08 80060A08 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 03BE0C 80060A0C AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 03BE10 80060A10 8E820000 */ lw $v0, ($s4)
|
|
/* 03BE14 80060A14 00C02821 */ addu $a1, $a2, $zero
|
|
/* 03BE18 80060A18 1440004C */ bnez $v0, .L80060B4C
|
|
/* 03BE1C 80060A1C 00E03021 */ addu $a2, $a3, $zero
|
|
/* 03BE20 80060A20 0C019560 */ jal osCreateMesgQueue
|
|
/* 03BE24 80060A24 02A02021 */ addu $a0, $s5, $zero
|
|
/* 03BE28 80060A28 3C13800B */ lui $s3, 0x800b
|
|
/* 03BE2C 80060A2C 2673F890 */ addiu $s3, $s3, -0x770
|
|
/* 03BE30 80060A30 02602021 */ addu $a0, $s3, $zero
|
|
/* 03BE34 80060A34 3C05800B */ lui $a1, 0x800b
|
|
/* 03BE38 80060A38 24A5F8A8 */ addiu $a1, $a1, -0x758
|
|
/* 03BE3C 80060A3C 0C019560 */ jal osCreateMesgQueue
|
|
/* 03BE40 80060A40 24060001 */ addiu $a2, $zero, 1
|
|
/* 03BE44 80060A44 3C028009 */ lui $v0, 0x8009
|
|
/* 03BE48 80060A48 8C423D90 */ lw $v0, 0x3d90($v0)
|
|
/* 03BE4C 80060A4C 54400004 */ bnel $v0, $zero, .L80060A60
|
|
/* 03BE50 80060A50 24040008 */ addiu $a0, $zero, 8
|
|
/* 03BE54 80060A54 0C018514 */ jal osPiCreateAccessQueue
|
|
/* 03BE58 80060A58 00000000 */ nop
|
|
/* 03BE5C 80060A5C 24040008 */ addiu $a0, $zero, 8
|
|
.L80060A60:
|
|
/* 03BE60 80060A60 02602821 */ addu $a1, $s3, $zero
|
|
/* 03BE64 80060A64 3C062222 */ lui $a2, 0x2222
|
|
/* 03BE68 80060A68 0C019654 */ jal osSetEventMesg
|
|
/* 03BE6C 80060A6C 34C62222 */ ori $a2, $a2, 0x2222
|
|
/* 03BE70 80060A70 2412FFFF */ addiu $s2, $zero, -1
|
|
/* 03BE74 80060A74 0C0197CC */ jal osGetThreadPri
|
|
/* 03BE78 80060A78 00002021 */ addu $a0, $zero, $zero
|
|
/* 03BE7C 80060A7C 00401821 */ addu $v1, $v0, $zero
|
|
/* 03BE80 80060A80 0070102A */ slt $v0, $v1, $s0
|
|
/* 03BE84 80060A84 10400005 */ beqz $v0, .L80060A9C
|
|
/* 03BE88 80060A88 00000000 */ nop
|
|
/* 03BE8C 80060A8C 00609021 */ addu $s2, $v1, $zero
|
|
/* 03BE90 80060A90 00002021 */ addu $a0, $zero, $zero
|
|
/* 03BE94 80060A94 0C0197D4 */ jal osSetThreadPri
|
|
/* 03BE98 80060A98 02002821 */ addu $a1, $s0, $zero
|
|
.L80060A9C:
|
|
/* 03BE9C 80060A9C 0C01ACD8 */ jal __osDisableInt
|
|
/* 03BEA0 80060AA0 00000000 */ nop
|
|
/* 03BEA4 80060AA4 3C11800B */ lui $s1, 0x800b
|
|
/* 03BEA8 80060AA8 2631E6E0 */ addiu $s1, $s1, -0x1920
|
|
/* 03BEAC 80060AAC 02202021 */ addu $a0, $s1, $zero
|
|
/* 03BEB0 80060AB0 00002821 */ addu $a1, $zero, $zero
|
|
/* 03BEB4 80060AB4 3C068006 */ lui $a2, 0x8006
|
|
/* 03BEB8 80060AB8 24C61090 */ addiu $a2, $a2, 0x1090
|
|
/* 03BEBC 80060ABC 24030001 */ addiu $v1, $zero, 1
|
|
/* 03BEC0 80060AC0 AE830000 */ sw $v1, ($s4)
|
|
/* 03BEC4 80060AC4 3C03800B */ lui $v1, 0x800b
|
|
/* 03BEC8 80060AC8 24634380 */ addiu $v1, $v1, 0x4380
|
|
/* 03BECC 80060ACC 3C018009 */ lui $at, 0x8009
|
|
/* 03BED0 80060AD0 AC233D60 */ sw $v1, 0x3d60($at)
|
|
/* 03BED4 80060AD4 3C038007 */ lui $v1, 0x8007
|
|
/* 03BED8 80060AD8 2463B480 */ addiu $v1, $v1, -0x4b80
|
|
/* 03BEDC 80060ADC 3C018009 */ lui $at, 0x8009
|
|
/* 03BEE0 80060AE0 AC233D64 */ sw $v1, 0x3d64($at)
|
|
/* 03BEE4 80060AE4 3C038006 */ lui $v1, 0x8006
|
|
/* 03BEE8 80060AE8 24630B70 */ addiu $v1, $v1, 0xb70
|
|
/* 03BEEC 80060AEC 3C018009 */ lui $at, 0x8009
|
|
/* 03BEF0 80060AF0 AC233D68 */ sw $v1, 0x3d68($at)
|
|
/* 03BEF4 80060AF4 3C03800B */ lui $v1, 0x800b
|
|
/* 03BEF8 80060AF8 2463F890 */ addiu $v1, $v1, -0x770
|
|
/* 03BEFC 80060AFC AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 03BF00 80060B00 00408021 */ addu $s0, $v0, $zero
|
|
/* 03BF04 80060B04 02803821 */ addu $a3, $s4, $zero
|
|
/* 03BF08 80060B08 3C018009 */ lui $at, 0x8009
|
|
/* 03BF0C 80060B0C AC313D54 */ sw $s1, 0x3d54($at)
|
|
/* 03BF10 80060B10 3C018009 */ lui $at, 0x8009
|
|
/* 03BF14 80060B14 AC353D58 */ sw $s5, 0x3d58($at)
|
|
/* 03BF18 80060B18 3C018009 */ lui $at, 0x8009
|
|
/* 03BF1C 80060B1C AC333D5C */ sw $s3, 0x3d5c($at)
|
|
/* 03BF20 80060B20 0C019798 */ jal osCreateThread
|
|
/* 03BF24 80060B24 AFA30010 */ sw $v1, 0x10($sp)
|
|
/* 03BF28 80060B28 0C019808 */ jal osStartThread
|
|
/* 03BF2C 80060B2C 02202021 */ addu $a0, $s1, $zero
|
|
/* 03BF30 80060B30 0C01ACF4 */ jal __osRestoreInt
|
|
/* 03BF34 80060B34 02002021 */ addu $a0, $s0, $zero
|
|
/* 03BF38 80060B38 2402FFFF */ addiu $v0, $zero, -1
|
|
/* 03BF3C 80060B3C 12420003 */ beq $s2, $v0, .L80060B4C
|
|
/* 03BF40 80060B40 00002021 */ addu $a0, $zero, $zero
|
|
/* 03BF44 80060B44 0C0197D4 */ jal osSetThreadPri
|
|
/* 03BF48 80060B48 02402821 */ addu $a1, $s2, $zero
|
|
.L80060B4C:
|
|
/* 03BF4C 80060B4C 8FBF0030 */ lw $ra, 0x30($sp)
|
|
/* 03BF50 80060B50 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* 03BF54 80060B54 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* 03BF58 80060B58 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* 03BF5C 80060B5C 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 03BF60 80060B60 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 03BF64 80060B64 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 03BF68 80060B68 03E00008 */ jr $ra
|
|
/* 03BF6C 80060B6C 27BD0038 */ addiu $sp, $sp, 0x38
|
|
|