banjo-kazooie/asm/core1/ultra/exceptasm.s

744 lines
37 KiB
ArmAsm

#include <sys/asm.h>
#include <PR/rcp.h>
.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.data
EXPORT(__osHwIntTable)
.word 0x0, 0x0, 0x0, 0x0, 0x0
.rdata
#define REDISPATCH 0x00
#define SW1 0x04
#define SW2 0x08
#define RCP 0x0c
#define CART 0x10
#define PRENMI 0x14
#define IP6_HDLR 0x18
#define IP7_HDLR 0x1c
#define COUNTER 0x20
__osIntOffTable:
.byte REDISPATCH
.byte PRENMI
.byte IP6_HDLR
.byte IP6_HDLR
.byte IP7_HDLR
.byte IP7_HDLR
.byte IP7_HDLR
.byte IP7_HDLR
.byte COUNTER
.byte COUNTER
.byte IP6_HDLR
.byte IP6_HDLR
.byte IP7_HDLR
.byte IP7_HDLR
.byte IP7_HDLR
.byte IP7_HDLR
.byte REDISPATCH
.byte SW1
.byte SW2
.byte SW2
.byte RCP
.byte RCP
.byte RCP
.byte RCP
.byte CART
.byte CART
.byte CART
.byte CART
.byte CART
.byte CART
.byte CART
.byte CART
__osIntTable:
.word redispatch, sw1, sw2, rcp, cart, prenmi, IP6_Hdlr, IP7_Hdlr, counter
.section .text, "ax"
/* Generated by spimdisasm 1.24.3 */
# Handwritten function
glabel func_8026A2E0
/* F45B10 8026A2E0 3C1A8027 */ lui $k0, %hi(D_8026A300)
/* F45B14 8026A2E4 275AA300 */ addiu $k0, $k0, %lo(D_8026A300)
/* F45B18 8026A2E8 03400008 */ jr $k0
/* F45B1C 8026A2EC 00000000 */ nop
/* F45B20 8026A2F0 3C1A8027 */ lui $k0, %hi(D_8026A300)
/* F45B24 8026A2F4 275AA300 */ addiu $k0, $k0, %lo(D_8026A300)
/* F45B28 8026A2F8 03400008 */ jr $k0
/* F45B2C 8026A2FC 00000000 */ nop
D_8026A300:
/* F45B30 8026A300 3C1A8028 */ lui $k0, %hi(__osThreadSave)
/* F45B34 8026A304 275A5DE0 */ addiu $k0, $k0, %lo(__osThreadSave)
/* F45B38 8026A308 FF410020 */ sd $at, 0x20($k0)
/* F45B3C 8026A30C 401B6000 */ mfc0 $k1, $12
/* F45B40 8026A310 AF5B0118 */ sw $k1, 0x118($k0)
/* F45B44 8026A314 2401FFFC */ addiu $at, $zero, -0x4
/* F45B48 8026A318 0361D824 */ and $k1, $k1, $at
/* F45B4C 8026A31C 409B6000 */ mtc0 $k1, $12
/* F45B50 8026A320 FF480058 */ sd $t0, 0x58($k0)
/* F45B54 8026A324 FF490060 */ sd $t1, 0x60($k0)
/* F45B58 8026A328 FF4A0068 */ sd $t2, 0x68($k0)
/* F45B5C 8026A32C AF400018 */ sw $zero, 0x18($k0)
/* F45B60 8026A330 40086800 */ mfc0 $t0, $13
/* F45B64 8026A334 03404025 */ or $t0, $k0, $zero
/* F45B68 8026A338 3C1A8027 */ lui $k0, %hi(__osRunningThread)
/* F45B6C 8026A33C 8F5A7380 */ lw $k0, %lo(__osRunningThread)($k0)
/* F45B70 8026A340 DD090020 */ ld $t1, 0x20($t0)
/* F45B74 8026A344 FF490020 */ sd $t1, 0x20($k0)
/* F45B78 8026A348 DD090118 */ ld $t1, 0x118($t0)
/* F45B7C 8026A34C FF490118 */ sd $t1, 0x118($k0)
/* F45B80 8026A350 DD090058 */ ld $t1, 0x58($t0)
/* F45B84 8026A354 FF490058 */ sd $t1, 0x58($k0)
/* F45B88 8026A358 DD090060 */ ld $t1, 0x60($t0)
/* F45B8C 8026A35C FF490060 */ sd $t1, 0x60($k0)
/* F45B90 8026A360 DD090068 */ ld $t1, 0x68($t0)
/* F45B94 8026A364 FF490068 */ sd $t1, 0x68($k0)
/* F45B98 8026A368 8F5B0118 */ lw $k1, 0x118($k0)
/* F45B9C 8026A36C 00004012 */ mflo $t0
/* F45BA0 8026A370 FF480108 */ sd $t0, 0x108($k0)
/* F45BA4 8026A374 00004010 */ mfhi $t0
/* F45BA8 8026A378 3369FF00 */ andi $t1, $k1, 0xFF00
/* F45BAC 8026A37C FF420028 */ sd $v0, 0x28($k0)
/* F45BB0 8026A380 FF430030 */ sd $v1, 0x30($k0)
/* F45BB4 8026A384 FF440038 */ sd $a0, 0x38($k0)
/* F45BB8 8026A388 FF450040 */ sd $a1, 0x40($k0)
/* F45BBC 8026A38C FF460048 */ sd $a2, 0x48($k0)
/* F45BC0 8026A390 FF470050 */ sd $a3, 0x50($k0)
/* F45BC4 8026A394 FF4B0070 */ sd $t3, 0x70($k0)
/* F45BC8 8026A398 FF4C0078 */ sd $t4, 0x78($k0)
/* F45BCC 8026A39C FF4D0080 */ sd $t5, 0x80($k0)
/* F45BD0 8026A3A0 FF4E0088 */ sd $t6, 0x88($k0)
/* F45BD4 8026A3A4 FF4F0090 */ sd $t7, 0x90($k0)
/* F45BD8 8026A3A8 FF500098 */ sd $s0, 0x98($k0)
/* F45BDC 8026A3AC FF5100A0 */ sd $s1, 0xA0($k0)
/* F45BE0 8026A3B0 FF5200A8 */ sd $s2, 0xA8($k0)
/* F45BE4 8026A3B4 FF5300B0 */ sd $s3, 0xB0($k0)
/* F45BE8 8026A3B8 FF5400B8 */ sd $s4, 0xB8($k0)
/* F45BEC 8026A3BC FF5500C0 */ sd $s5, 0xC0($k0)
/* F45BF0 8026A3C0 FF5600C8 */ sd $s6, 0xC8($k0)
/* F45BF4 8026A3C4 FF5700D0 */ sd $s7, 0xD0($k0)
/* F45BF8 8026A3C8 FF5800D8 */ sd $t8, 0xD8($k0)
/* F45BFC 8026A3CC FF5900E0 */ sd $t9, 0xE0($k0)
/* F45C00 8026A3D0 FF5C00E8 */ sd $gp, 0xE8($k0)
/* F45C04 8026A3D4 FF5D00F0 */ sd $sp, 0xF0($k0)
/* F45C08 8026A3D8 FF5E00F8 */ sd $fp, 0xF8($k0)
/* F45C0C 8026A3DC FF5F0100 */ sd $ra, 0x100($k0)
/* F45C10 8026A3E0 1120000D */ beqz $t1, .L8026A418
/* F45C14 8026A3E4 FF480110 */ sd $t0, 0x110($k0)
/* F45C18 8026A3E8 3C088027 */ lui $t0, %hi(__OSGlobalIntMask)
/* F45C1C 8026A3EC 25087130 */ addiu $t0, $t0, %lo(__OSGlobalIntMask)
/* F45C20 8026A3F0 8D080000 */ lw $t0, 0x0($t0)
/* F45C24 8026A3F4 2401FFFF */ addiu $at, $zero, -0x1
/* F45C28 8026A3F8 01014026 */ xor $t0, $t0, $at
/* F45C2C 8026A3FC 3C01FFFF */ lui $at, (0xFFFF00FF >> 16)
/* F45C30 8026A400 3108FF00 */ andi $t0, $t0, 0xFF00
/* F45C34 8026A404 342100FF */ ori $at, $at, (0xFFFF00FF & 0xFFFF)
/* F45C38 8026A408 01284825 */ or $t1, $t1, $t0
/* F45C3C 8026A40C 0361D824 */ and $k1, $k1, $at
/* F45C40 8026A410 0369D825 */ or $k1, $k1, $t1
/* F45C44 8026A414 AF5B0118 */ sw $k1, 0x118($k0)
.L8026A418:
/* F45C48 8026A418 3C09A430 */ lui $t1, %hi(PHYS_TO_K1(MI_INTR_MASK_REG))
/* F45C4C 8026A41C 8D29000C */ lw $t1, %lo(PHYS_TO_K1(MI_INTR_MASK_REG))($t1)
/* F45C50 8026A420 5120000C */ beql $t1, $zero, .L8026A454
/* F45C54 8026A424 AF490128 */ sw $t1, 0x128($k0)
/* F45C58 8026A428 3C088027 */ lui $t0, %hi(__OSGlobalIntMask)
/* F45C5C 8026A42C 25087130 */ addiu $t0, $t0, %lo(__OSGlobalIntMask)
/* F45C60 8026A430 8D080000 */ lw $t0, 0x0($t0)
/* F45C64 8026A434 8F4C0128 */ lw $t4, 0x128($k0)
/* F45C68 8026A438 2401FFFF */ addiu $at, $zero, -0x1
/* F45C6C 8026A43C 00084402 */ srl $t0, $t0, 16
/* F45C70 8026A440 01014026 */ xor $t0, $t0, $at
/* F45C74 8026A444 3108003F */ andi $t0, $t0, 0x3F
/* F45C78 8026A448 010C4024 */ and $t0, $t0, $t4
/* F45C7C 8026A44C 01284825 */ or $t1, $t1, $t0
/* F45C80 8026A450 AF490128 */ sw $t1, 0x128($k0)
.L8026A454:
/* F45C84 8026A454 40087000 */ mfc0 $t0, $14
/* F45C88 8026A458 AF48011C */ sw $t0, 0x11C($k0)
/* F45C8C 8026A45C 8F480018 */ lw $t0, 0x18($k0)
/* F45C90 8026A460 11000014 */ beqz $t0, .L8026A4B4
/* F45C94 8026A464 00000000 */ nop
/* F45C98 8026A468 4448F800 */ cfc1 $t0, $31
/* F45C9C 8026A46C 00000000 */ nop
/* F45CA0 8026A470 AF48012C */ sw $t0, 0x12C($k0)
/* F45CA4 8026A474 F7400130 */ sdc1 $f0, 0x130($k0)
/* F45CA8 8026A478 F7420138 */ sdc1 $f2, 0x138($k0)
/* F45CAC 8026A47C F7440140 */ sdc1 $f4, 0x140($k0)
/* F45CB0 8026A480 F7460148 */ sdc1 $f6, 0x148($k0)
/* F45CB4 8026A484 F7480150 */ sdc1 $f8, 0x150($k0)
/* F45CB8 8026A488 F74A0158 */ sdc1 $f10, 0x158($k0)
/* F45CBC 8026A48C F74C0160 */ sdc1 $f12, 0x160($k0)
/* F45CC0 8026A490 F74E0168 */ sdc1 $f14, 0x168($k0)
/* F45CC4 8026A494 F7500170 */ sdc1 $f16, 0x170($k0)
/* F45CC8 8026A498 F7520178 */ sdc1 $f18, 0x178($k0)
/* F45CCC 8026A49C F7540180 */ sdc1 $f20, 0x180($k0)
/* F45CD0 8026A4A0 F7560188 */ sdc1 $f22, 0x188($k0)
/* F45CD4 8026A4A4 F7580190 */ sdc1 $f24, 0x190($k0)
/* F45CD8 8026A4A8 F75A0198 */ sdc1 $f26, 0x198($k0)
/* F45CDC 8026A4AC F75C01A0 */ sdc1 $f28, 0x1A0($k0)
/* F45CE0 8026A4B0 F75E01A8 */ sdc1 $f30, 0x1A8($k0)
.L8026A4B4:
/* F45CE4 8026A4B4 40086800 */ mfc0 $t0, $13
/* F45CE8 8026A4B8 AF480120 */ sw $t0, 0x120($k0)
/* F45CEC 8026A4BC 24090002 */ addiu $t1, $zero, 0x2
/* F45CF0 8026A4C0 A7490010 */ sh $t1, 0x10($k0)
/* F45CF4 8026A4C4 3109007C */ andi $t1, $t0, 0x7C
/* F45CF8 8026A4C8 240A0024 */ addiu $t2, $zero, 0x24
/* F45CFC 8026A4CC 512A00B1 */ beql $t1, $t2, handle_break
/* F45D00 8026A4D0 24090001 */ addiu $t1, $zero, 0x1
/* F45D04 8026A4D4 240A002C */ addiu $t2, $zero, 0x2C
/* F45D08 8026A4D8 112A00FF */ beq $t1, $t2, .L8026A8D8
/* F45D0C 8026A4DC 00000000 */ nop
/* F45D10 8026A4E0 240A0000 */ addiu $t2, $zero, 0x0
/* F45D14 8026A4E4 152A00C3 */ bne $t1, $t2, .L8026A7F4
/* F45D18 8026A4E8 00000000 */ nop
/* F45D1C 8026A4EC 03688024 */ and $s0, $k1, $t0
.L8026A4F0:
/* F45D20 8026A4F0 3209FF00 */ andi $t1, $s0, 0xFF00
.L8026A4F4:
/* F45D24 8026A4F4 00095302 */ srl $t2, $t1, 12
/* F45D28 8026A4F8 15400003 */ bnez $t2, .L8026A508
/* F45D2C 8026A4FC 00000000 */ nop
/* F45D30 8026A500 00095202 */ srl $t2, $t1, 8
/* F45D34 8026A504 214A0010 */ addi $t2, $t2, 0x10
.L8026A508:
/* F45D38 8026A508 3C018028 */ lui $at, %hi(__osIntOffTable)
/* F45D3C 8026A50C 002A0821 */ addu $at, $at, $t2
/* F45D40 8026A510 902A8D60 */ lbu $t2, %lo(__osIntOffTable)($at)
/* F45D44 8026A514 3C018028 */ lui $at, %hi(__osIntTable)
/* F45D48 8026A518 002A0821 */ addu $at, $at, $t2
/* F45D4C 8026A51C 8C2A8D80 */ lw $t2, %lo(__osIntTable)($at)
/* F45D50 8026A520 01400008 */ jr $t2
/* F45D54 8026A524 00000000 */ nop
IP6_Hdlr:
/* F45D58 8026A528 2401DFFF */ addiu $at, $zero, -0x2001
/* F45D5C 8026A52C 1000FFF0 */ b .L8026A4F0
/* F45D60 8026A530 02018024 */ and $s0, $s0, $at
IP7_Hdlr:
/* F45D64 8026A534 2401BFFF */ addiu $at, $zero, -0x4001
/* F45D68 8026A538 1000FFED */ b .L8026A4F0
/* F45D6C 8026A53C 02018024 */ and $s0, $s0, $at
counter:
/* F45D70 8026A540 40095800 */ mfc0 $t1, $11
/* F45D74 8026A544 40895800 */ mtc0 $t1, $11
/* F45D78 8026A548 0C09AA09 */ jal func_8026A824
/* F45D7C 8026A54C 24040018 */ addiu $a0, $zero, 0x18
/* F45D80 8026A550 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16)
/* F45D84 8026A554 34217FFF */ ori $at, $at, (0xFFFF7FFF & 0xFFFF)
/* F45D88 8026A558 1000FFE5 */ b .L8026A4F0
/* F45D8C 8026A55C 02018024 */ and $s0, $s0, $at
cart:
/* F45D90 8026A560 2401F7FF */ addiu $at, $zero, -0x801
/* F45D94 8026A564 02018024 */ and $s0, $s0, $at
/* F45D98 8026A568 240A0004 */ addiu $t2, $zero, 0x4
/* F45D9C 8026A56C 3C018027 */ lui $at, %hi(__osHwIntTable)
/* F45DA0 8026A570 002A0821 */ addu $at, $at, $t2
/* F45DA4 8026A574 8C2A7350 */ lw $t2, %lo(__osHwIntTable)($at)
/* F45DA8 8026A578 3C1D8028 */ lui $sp, %hi(leoDiskStack)
/* F45DAC 8026A57C 27BD5F90 */ addiu $sp, $sp, %lo(leoDiskStack)
/* F45DB0 8026A580 24040010 */ addiu $a0, $zero, 0x10
/* F45DB4 8026A584 11400007 */ beqz $t2, .L8026A5A4
/* F45DB8 8026A588 27BD0FF0 */ addiu $sp, $sp, 0xFF0
/* F45DBC 8026A58C 0140F809 */ jalr $t2
/* F45DC0 8026A590 00000000 */ nop
/* F45DC4 8026A594 10400003 */ beqz $v0, .L8026A5A4
/* F45DC8 8026A598 00000000 */ nop
/* F45DCC 8026A59C 10000082 */ b redispatch
/* F45DD0 8026A5A0 00000000 */ nop
.L8026A5A4:
/* F45DD4 8026A5A4 0C09AA09 */ jal func_8026A824
/* F45DD8 8026A5A8 00000000 */ nop
/* F45DDC 8026A5AC 1000FFD1 */ b .L8026A4F4
/* F45DE0 8026A5B0 3209FF00 */ andi $t1, $s0, 0xFF00
rcp:
/* F45DE4 8026A5B4 3C088027 */ lui $t0, %hi(__OSGlobalIntMask)
/* F45DE8 8026A5B8 25087130 */ addiu $t0, $t0, %lo(__OSGlobalIntMask)
/* F45DEC 8026A5BC 8D080000 */ lw $t0, 0x0($t0)
/* F45DF0 8026A5C0 3C11A430 */ lui $s1, %hi(PHYS_TO_K1(MI_INTR_REG))
/* F45DF4 8026A5C4 8E310008 */ lw $s1, %lo(PHYS_TO_K1(MI_INTR_REG))($s1)
/* F45DF8 8026A5C8 00084402 */ srl $t0, $t0, 16
/* F45DFC 8026A5CC 02288824 */ and $s1, $s1, $t0
/* F45E00 8026A5D0 32290001 */ andi $t1, $s1, 0x1
/* F45E04 8026A5D4 51200014 */ beql $t1, $zero, .L8026A628
/* F45E08 8026A5D8 32290008 */ andi $t1, $s1, 0x8
/* F45E0C 8026A5DC 3C0CA404 */ lui $t4, %hi(PHYS_TO_K1(SP_STATUS_REG))
/* F45E10 8026A5E0 8D8C0010 */ lw $t4, %lo(PHYS_TO_K1(SP_STATUS_REG))($t4)
/* F45E14 8026A5E4 24090008 */ addiu $t1, $zero, 0x8
/* F45E18 8026A5E8 3C01A404 */ lui $at, %hi(PHYS_TO_K1(SP_STATUS_REG))
/* F45E1C 8026A5EC 318C0300 */ andi $t4, $t4, 0x300
/* F45E20 8026A5F0 3231003E */ andi $s1, $s1, 0x3E
/* F45E24 8026A5F4 11800007 */ beqz $t4, .L8026A614
/* F45E28 8026A5F8 AC290010 */ sw $t1, %lo(PHYS_TO_K1(SP_STATUS_REG))($at)
/* F45E2C 8026A5FC 0C09AA09 */ jal func_8026A824
/* F45E30 8026A600 24040020 */ addiu $a0, $zero, 0x20
/* F45E34 8026A604 52200039 */ beql $s1, $zero, .L8026A6EC
/* F45E38 8026A608 2401FBFF */ addiu $at, $zero, -0x401
/* F45E3C 8026A60C 10000006 */ b .L8026A628
/* F45E40 8026A610 32290008 */ andi $t1, $s1, 0x8
.L8026A614:
/* F45E44 8026A614 0C09AA09 */ jal func_8026A824
/* F45E48 8026A618 24040058 */ addiu $a0, $zero, 0x58
/* F45E4C 8026A61C 52200033 */ beql $s1, $zero, .L8026A6EC
/* F45E50 8026A620 2401FBFF */ addiu $at, $zero, -0x401
/* F45E54 8026A624 32290008 */ andi $t1, $s1, 0x8
.L8026A628:
/* F45E58 8026A628 11200007 */ beqz $t1, .L8026A648
/* F45E5C 8026A62C 3C01A440 */ lui $at, %hi(PHYS_TO_K1(VI_CURRENT_REG))
/* F45E60 8026A630 32310037 */ andi $s1, $s1, 0x37
/* F45E64 8026A634 AC200010 */ sw $zero, %lo(PHYS_TO_K1(VI_CURRENT_REG))($at)
/* F45E68 8026A638 0C09AA09 */ jal func_8026A824
/* F45E6C 8026A63C 24040038 */ addiu $a0, $zero, 0x38
/* F45E70 8026A640 5220002A */ beql $s1, $zero, .L8026A6EC
/* F45E74 8026A644 2401FBFF */ addiu $at, $zero, -0x401
.L8026A648:
/* F45E78 8026A648 32290004 */ andi $t1, $s1, 0x4
/* F45E7C 8026A64C 5120000A */ beql $t1, $zero, .L8026A678
/* F45E80 8026A650 32290002 */ andi $t1, $s1, 0x2
/* F45E84 8026A654 24090001 */ addiu $t1, $zero, 0x1
/* F45E88 8026A658 3C01A450 */ lui $at, %hi(PHYS_TO_K1(AI_STATUS_REG))
/* F45E8C 8026A65C 3231003B */ andi $s1, $s1, 0x3B
/* F45E90 8026A660 AC29000C */ sw $t1, %lo(PHYS_TO_K1(AI_STATUS_REG))($at)
/* F45E94 8026A664 0C09AA09 */ jal func_8026A824
/* F45E98 8026A668 24040030 */ addiu $a0, $zero, 0x30
/* F45E9C 8026A66C 5220001F */ beql $s1, $zero, .L8026A6EC
/* F45EA0 8026A670 2401FBFF */ addiu $at, $zero, -0x401
/* F45EA4 8026A674 32290002 */ andi $t1, $s1, 0x2
.L8026A678:
/* F45EA8 8026A678 11200007 */ beqz $t1, .L8026A698
/* F45EAC 8026A67C 3C01A480 */ lui $at, %hi(PHYS_TO_K1(SI_STATUS_REG))
/* F45EB0 8026A680 3231003D */ andi $s1, $s1, 0x3D
/* F45EB4 8026A684 AC200018 */ sw $zero, %lo(PHYS_TO_K1(SI_STATUS_REG))($at)
/* F45EB8 8026A688 0C09AA09 */ jal func_8026A824
/* F45EBC 8026A68C 24040028 */ addiu $a0, $zero, 0x28
/* F45EC0 8026A690 52200016 */ beql $s1, $zero, .L8026A6EC
/* F45EC4 8026A694 2401FBFF */ addiu $at, $zero, -0x401
.L8026A698:
/* F45EC8 8026A698 32290010 */ andi $t1, $s1, 0x10
/* F45ECC 8026A69C 5120000A */ beql $t1, $zero, .L8026A6C8
/* F45ED0 8026A6A0 32290020 */ andi $t1, $s1, 0x20
/* F45ED4 8026A6A4 24090002 */ addiu $t1, $zero, 0x2
/* F45ED8 8026A6A8 3C01A460 */ lui $at, %hi(PHYS_TO_K1(PI_STATUS_REG))
/* F45EDC 8026A6AC 3231002F */ andi $s1, $s1, 0x2F
/* F45EE0 8026A6B0 AC290010 */ sw $t1, %lo(PHYS_TO_K1(PI_STATUS_REG))($at)
/* F45EE4 8026A6B4 0C09AA09 */ jal func_8026A824
/* F45EE8 8026A6B8 24040040 */ addiu $a0, $zero, 0x40
/* F45EEC 8026A6BC 5220000B */ beql $s1, $zero, .L8026A6EC
/* F45EF0 8026A6C0 2401FBFF */ addiu $at, $zero, -0x401
/* F45EF4 8026A6C4 32290020 */ andi $t1, $s1, 0x20
.L8026A6C8:
/* F45EF8 8026A6C8 51200008 */ beql $t1, $zero, .L8026A6EC
/* F45EFC 8026A6CC 2401FBFF */ addiu $at, $zero, -0x401
/* F45F00 8026A6D0 24090800 */ addiu $t1, $zero, 0x800
/* F45F04 8026A6D4 3C01A430 */ lui $at, %hi(PHYS_TO_K1(MI_MODE_REG))
/* F45F08 8026A6D8 3231001F */ andi $s1, $s1, 0x1F
/* F45F0C 8026A6DC AC290000 */ sw $t1, %lo(PHYS_TO_K1(MI_MODE_REG))($at)
/* F45F10 8026A6E0 0C09AA09 */ jal func_8026A824
/* F45F14 8026A6E4 24040048 */ addiu $a0, $zero, 0x48
/* F45F18 8026A6E8 2401FBFF */ addiu $at, $zero, -0x401
.L8026A6EC:
/* F45F1C 8026A6EC 1000FF80 */ b .L8026A4F0
/* F45F20 8026A6F0 02018024 */ and $s0, $s0, $at
prenmi:
/* F45F24 8026A6F4 8F5B0118 */ lw $k1, 0x118($k0)
/* F45F28 8026A6F8 2401EFFF */ addiu $at, $zero, -0x1001
/* F45F2C 8026A6FC 3C098027 */ lui $t1, %hi(__osShutdown)
/* F45F30 8026A700 0361D824 */ and $k1, $k1, $at
/* F45F34 8026A704 AF5B0118 */ sw $k1, 0x118($k0)
/* F45F38 8026A708 2529712C */ addiu $t1, $t1, %lo(__osShutdown)
/* F45F3C 8026A70C 8D2A0000 */ lw $t2, 0x0($t1)
/* F45F40 8026A710 11400003 */ beqz $t2, firstnmi
/* F45F44 8026A714 2401EFFF */ addiu $at, $zero, -0x1001
/* F45F48 8026A718 10000023 */ b redispatch
/* F45F4C 8026A71C 02018024 */ and $s0, $s0, $at
firstnmi:
/* F45F50 8026A720 240A0001 */ addiu $t2, $zero, 0x1
/* F45F54 8026A724 AD2A0000 */ sw $t2, 0x0($t1)
/* F45F58 8026A728 0C09AA09 */ jal func_8026A824
/* F45F5C 8026A72C 24040070 */ addiu $a0, $zero, 0x70
/* F45F60 8026A730 3C0A8027 */ lui $t2, %hi(__osRunQueue)
/* F45F64 8026A734 8D4A7378 */ lw $t2, %lo(__osRunQueue)($t2)
/* F45F68 8026A738 2401EFFF */ addiu $at, $zero, -0x1001
/* F45F6C 8026A73C 02018024 */ and $s0, $s0, $at
/* F45F70 8026A740 8D5B0118 */ lw $k1, 0x118($t2)
/* F45F74 8026A744 0361D824 */ and $k1, $k1, $at
/* F45F78 8026A748 10000017 */ b redispatch
/* F45F7C 8026A74C AD5B0118 */ sw $k1, 0x118($t2)
sw2:
/* F45F80 8026A750 2401FDFF */ addiu $at, $zero, -0x201
/* F45F84 8026A754 01014024 */ and $t0, $t0, $at
/* F45F88 8026A758 40886800 */ mtc0 $t0, $13
/* F45F8C 8026A75C 0C09AA09 */ jal func_8026A824
/* F45F90 8026A760 24040008 */ addiu $a0, $zero, 0x8
/* F45F94 8026A764 2401FDFF */ addiu $at, $zero, -0x201
/* F45F98 8026A768 1000FF61 */ b .L8026A4F0
/* F45F9C 8026A76C 02018024 */ and $s0, $s0, $at
sw1:
/* F45FA0 8026A770 2401FEFF */ addiu $at, $zero, -0x101
/* F45FA4 8026A774 01014024 */ and $t0, $t0, $at
/* F45FA8 8026A778 40886800 */ mtc0 $t0, $13
/* F45FAC 8026A77C 0C09AA09 */ jal func_8026A824
/* F45FB0 8026A780 24040000 */ addiu $a0, $zero, 0x0
/* F45FB4 8026A784 2401FEFF */ addiu $at, $zero, -0x101
/* F45FB8 8026A788 1000FF59 */ b .L8026A4F0
/* F45FBC 8026A78C 02018024 */ and $s0, $s0, $at
/* F45FC0 8026A790 24090001 */ addiu $t1, $zero, 0x1
handle_break:
/* F45FC4 8026A794 A7490012 */ sh $t1, 0x12($k0)
/* F45FC8 8026A798 0C09AA09 */ jal func_8026A824
/* F45FCC 8026A79C 24040050 */ addiu $a0, $zero, 0x50
/* F45FD0 8026A7A0 10000001 */ b redispatch
/* F45FD4 8026A7A4 00000000 */ nop
redispatch:
/* F45FD8 8026A7A8 3C0A8027 */ lui $t2, %hi(__osRunQueue)
/* F45FDC 8026A7AC 8D4A7378 */ lw $t2, %lo(__osRunQueue)($t2)
/* F45FE0 8026A7B0 8F490004 */ lw $t1, 0x4($k0)
/* F45FE4 8026A7B4 8D4B0004 */ lw $t3, 0x4($t2)
/* F45FE8 8026A7B8 012B082A */ slt $at, $t1, $t3
/* F45FEC 8026A7BC 10200007 */ beqz $at, enqueueRunning
/* F45FF0 8026A7C0 00000000 */ nop
/* F45FF4 8026A7C4 3C048027 */ lui $a0, %hi(__osRunQueue)
/* F45FF8 8026A7C8 03402825 */ or $a1, $k0, $zero
/* F45FFC 8026A7CC 0C09AA83 */ jal __osEnqueueThread
/* F46000 8026A7D0 24847378 */ addiu $a0, $a0, %lo(__osRunQueue)
/* F46004 8026A7D4 0809AA99 */ j __osDispatchThread
/* F46008 8026A7D8 00000000 */ nop
enqueueRunning:
/* F4600C 8026A7DC 3C098027 */ lui $t1, %hi(__osRunQueue)
/* F46010 8026A7E0 25297378 */ addiu $t1, $t1, %lo(__osRunQueue)
/* F46014 8026A7E4 8D2A0000 */ lw $t2, 0x0($t1)
/* F46018 8026A7E8 AF4A0000 */ sw $t2, 0x0($k0)
/* F4601C 8026A7EC 0809AA99 */ j __osDispatchThread
/* F46020 8026A7F0 AD3A0000 */ sw $k0, 0x0($t1)
.L8026A7F4:
/* F46024 8026A7F4 3C018027 */ lui $at, %hi(__osFaultedThread)
/* F46028 8026A7F8 AC3A7384 */ sw $k0, %lo(__osFaultedThread)($at)
/* F4602C 8026A7FC 24090001 */ addiu $t1, $zero, 0x1
/* F46030 8026A800 A7490010 */ sh $t1, 0x10($k0)
/* F46034 8026A804 24090002 */ addiu $t1, $zero, 0x2
/* F46038 8026A808 A7490012 */ sh $t1, 0x12($k0)
/* F4603C 8026A80C 400A4000 */ mfc0 $t2, $8
/* F46040 8026A810 AF4A0124 */ sw $t2, 0x124($k0)
/* F46044 8026A814 0C09AA09 */ jal func_8026A824
/* F46048 8026A818 24040060 */ addiu $a0, $zero, 0x60
/* F4604C 8026A81C 0809AA99 */ j __osDispatchThread
/* F46050 8026A820 00000000 */ nop
endlabel func_8026A2E0
.size func_8026A2E0, . - func_8026A2E0
# Handwritten function
glabel func_8026A824
/* F46054 8026A824 3C0A8028 */ lui $t2, %hi(__osEventStateTab)
/* F46058 8026A828 254A4660 */ addiu $t2, $t2, %lo(__osEventStateTab)
/* F4605C 8026A82C 01445021 */ addu $t2, $t2, $a0
/* F46060 8026A830 8D490000 */ lw $t1, 0x0($t2)
/* F46064 8026A834 03E09025 */ or $s2, $ra, $zero
/* F46068 8026A838 11200025 */ beqz $t1, .L8026A8D0
/* F4606C 8026A83C 00000000 */ nop
/* F46070 8026A840 8D2B0008 */ lw $t3, 0x8($t1)
/* F46074 8026A844 8D2C0010 */ lw $t4, 0x10($t1)
/* F46078 8026A848 016C082A */ slt $at, $t3, $t4
/* F4607C 8026A84C 10200020 */ beqz $at, .L8026A8D0
/* F46080 8026A850 00000000 */ nop
/* F46084 8026A854 8D2D000C */ lw $t5, 0xC($t1)
/* F46088 8026A858 01AB6821 */ addu $t5, $t5, $t3
/* F4608C 8026A85C 01AC001A */ div $zero, $t5, $t4
/* F46090 8026A860 15800002 */ bnez $t4, .L8026A86C
/* F46094 8026A864 00000000 */ nop
/* F46098 8026A868 0007000D */ break 7
.L8026A86C:
/* F4609C 8026A86C 2401FFFF */ addiu $at, $zero, -0x1
/* F460A0 8026A870 15810004 */ bne $t4, $at, .L8026A884
/* F460A4 8026A874 3C018000 */ lui $at, (0x80000000 >> 16)
/* F460A8 8026A878 15A10002 */ bne $t5, $at, .L8026A884
/* F460AC 8026A87C 00000000 */ nop
/* F460B0 8026A880 0006000D */ break 6
.L8026A884:
/* F460B4 8026A884 8D2C0014 */ lw $t4, 0x14($t1)
/* F460B8 8026A888 00006810 */ mfhi $t5
/* F460BC 8026A88C 000D6880 */ sll $t5, $t5, 2
/* F460C0 8026A890 018D6021 */ addu $t4, $t4, $t5
/* F460C4 8026A894 8D4D0004 */ lw $t5, 0x4($t2)
/* F460C8 8026A898 256A0001 */ addiu $t2, $t3, 0x1
/* F460CC 8026A89C AD8D0000 */ sw $t5, 0x0($t4)
/* F460D0 8026A8A0 AD2A0008 */ sw $t2, 0x8($t1)
/* F460D4 8026A8A4 8D2A0000 */ lw $t2, 0x0($t1)
/* F460D8 8026A8A8 8D4B0000 */ lw $t3, 0x0($t2)
/* F460DC 8026A8AC 11600008 */ beqz $t3, .L8026A8D0
/* F460E0 8026A8B0 00000000 */ nop
/* F460E4 8026A8B4 0C09AA95 */ jal __osPopThread
/* F460E8 8026A8B8 01202025 */ or $a0, $t1, $zero
/* F460EC 8026A8BC 00405025 */ or $t2, $v0, $zero
/* F460F0 8026A8C0 3C048027 */ lui $a0, %hi(__osRunQueue)
/* F460F4 8026A8C4 01402825 */ or $a1, $t2, $zero
/* F460F8 8026A8C8 0C09AA83 */ jal __osEnqueueThread
/* F460FC 8026A8CC 24847378 */ addiu $a0, $a0, %lo(__osRunQueue)
.L8026A8D0:
/* F46100 8026A8D0 02400008 */ jr $s2
/* F46104 8026A8D4 00000000 */ nop
.L8026A8D8:
/* F46108 8026A8D8 3C013000 */ lui $at, (0x30000000 >> 16)
/* F4610C 8026A8DC 01014824 */ and $t1, $t0, $at
/* F46110 8026A8E0 00094F02 */ srl $t1, $t1, 28
/* F46114 8026A8E4 240A0001 */ addiu $t2, $zero, 0x1
/* F46118 8026A8E8 152AFFC2 */ bne $t1, $t2, .L8026A7F4
/* F4611C 8026A8EC 00000000 */ nop
/* F46120 8026A8F0 8F5B0118 */ lw $k1, 0x118($k0)
/* F46124 8026A8F4 3C012000 */ lui $at, (0x20000000 >> 16)
/* F46128 8026A8F8 24090001 */ addiu $t1, $zero, 0x1
/* F4612C 8026A8FC 0361D825 */ or $k1, $k1, $at
/* F46130 8026A900 AF490018 */ sw $t1, 0x18($k0)
/* F46134 8026A904 1000FFB5 */ b enqueueRunning
/* F46138 8026A908 AF5B0118 */ sw $k1, 0x118($k0)
endlabel func_8026A824
.size func_8026A824, . - func_8026A824
# Handwritten function
glabel __osEnqueueAndYield
/* F4613C 8026A90C 3C058027 */ lui $a1, %hi(__osRunningThread)
/* F46140 8026A910 8CA57380 */ lw $a1, %lo(__osRunningThread)($a1)
/* F46144 8026A914 40086000 */ mfc0 $t0, $12
/* F46148 8026A918 8CBB0018 */ lw $k1, 0x18($a1)
/* F4614C 8026A91C 35080002 */ ori $t0, $t0, 0x2
/* F46150 8026A920 ACA80118 */ sw $t0, 0x118($a1)
/* F46154 8026A924 FCB00098 */ sd $s0, 0x98($a1)
/* F46158 8026A928 FCB100A0 */ sd $s1, 0xA0($a1)
/* F4615C 8026A92C FCB200A8 */ sd $s2, 0xA8($a1)
/* F46160 8026A930 FCB300B0 */ sd $s3, 0xB0($a1)
/* F46164 8026A934 FCB400B8 */ sd $s4, 0xB8($a1)
/* F46168 8026A938 FCB500C0 */ sd $s5, 0xC0($a1)
/* F4616C 8026A93C FCB600C8 */ sd $s6, 0xC8($a1)
/* F46170 8026A940 FCB700D0 */ sd $s7, 0xD0($a1)
/* F46174 8026A944 FCBC00E8 */ sd $gp, 0xE8($a1)
/* F46178 8026A948 FCBD00F0 */ sd $sp, 0xF0($a1)
/* F4617C 8026A94C FCBE00F8 */ sd $fp, 0xF8($a1)
/* F46180 8026A950 FCBF0100 */ sd $ra, 0x100($a1)
/* F46184 8026A954 13600009 */ beqz $k1, .L8026A97C
/* F46188 8026A958 ACBF011C */ sw $ra, 0x11C($a1)
/* F4618C 8026A95C 445BF800 */ cfc1 $k1, $31
/* F46190 8026A960 F4B40180 */ sdc1 $f20, 0x180($a1)
/* F46194 8026A964 F4B60188 */ sdc1 $f22, 0x188($a1)
/* F46198 8026A968 F4B80190 */ sdc1 $f24, 0x190($a1)
/* F4619C 8026A96C F4BA0198 */ sdc1 $f26, 0x198($a1)
/* F461A0 8026A970 F4BC01A0 */ sdc1 $f28, 0x1A0($a1)
/* F461A4 8026A974 F4BE01A8 */ sdc1 $f30, 0x1A8($a1)
/* F461A8 8026A978 ACBB012C */ sw $k1, 0x12C($a1)
.L8026A97C:
/* F461AC 8026A97C 8CBB0118 */ lw $k1, 0x118($a1)
/* F461B0 8026A980 3369FF00 */ andi $t1, $k1, 0xFF00
/* F461B4 8026A984 5120000E */ beql $t1, $zero, .L8026A9C0
/* F461B8 8026A988 3C1BA430 */ lui $k1, %hi(PHYS_TO_K1(MI_INTR_MASK_REG))
/* F461BC 8026A98C 3C088027 */ lui $t0, %hi(__OSGlobalIntMask)
/* F461C0 8026A990 25087130 */ addiu $t0, $t0, %lo(__OSGlobalIntMask)
/* F461C4 8026A994 8D080000 */ lw $t0, 0x0($t0)
/* F461C8 8026A998 2401FFFF */ addiu $at, $zero, -0x1
/* F461CC 8026A99C 01014026 */ xor $t0, $t0, $at
/* F461D0 8026A9A0 3C01FFFF */ lui $at, (0xFFFF00FF >> 16)
/* F461D4 8026A9A4 3108FF00 */ andi $t0, $t0, 0xFF00
/* F461D8 8026A9A8 342100FF */ ori $at, $at, (0xFFFF00FF & 0xFFFF)
/* F461DC 8026A9AC 01284825 */ or $t1, $t1, $t0
/* F461E0 8026A9B0 0361D824 */ and $k1, $k1, $at
/* F461E4 8026A9B4 0369D825 */ or $k1, $k1, $t1
/* F461E8 8026A9B8 ACBB0118 */ sw $k1, 0x118($a1)
/* F461EC 8026A9BC 3C1BA430 */ lui $k1, %hi(PHYS_TO_K1(MI_INTR_MASK_REG))
.L8026A9C0:
/* F461F0 8026A9C0 8F7B000C */ lw $k1, %lo(PHYS_TO_K1(MI_INTR_MASK_REG))($k1)
/* F461F4 8026A9C4 1360000B */ beqz $k1, .L8026A9F4
/* F461F8 8026A9C8 00000000 */ nop
/* F461FC 8026A9CC 3C1A8027 */ lui $k0, %hi(__OSGlobalIntMask)
/* F46200 8026A9D0 275A7130 */ addiu $k0, $k0, %lo(__OSGlobalIntMask)
/* F46204 8026A9D4 8F5A0000 */ lw $k0, 0x0($k0)
/* F46208 8026A9D8 8CA80128 */ lw $t0, 0x128($a1)
/* F4620C 8026A9DC 2401FFFF */ addiu $at, $zero, -0x1
/* F46210 8026A9E0 001AD402 */ srl $k0, $k0, 16
/* F46214 8026A9E4 0341D026 */ xor $k0, $k0, $at
/* F46218 8026A9E8 335A003F */ andi $k0, $k0, 0x3F
/* F4621C 8026A9EC 0348D024 */ and $k0, $k0, $t0
/* F46220 8026A9F0 037AD825 */ or $k1, $k1, $k0
.L8026A9F4:
/* F46224 8026A9F4 10800003 */ beqz $a0, .L8026AA04
/* F46228 8026A9F8 ACBB0128 */ sw $k1, 0x128($a1)
/* F4622C 8026A9FC 0C09AA83 */ jal __osEnqueueThread
/* F46230 8026AA00 00000000 */ nop
.L8026AA04:
/* F46234 8026AA04 0809AA99 */ j __osDispatchThread
/* F46238 8026AA08 00000000 */ nop
endlabel __osEnqueueAndYield
.size __osEnqueueAndYield, . - __osEnqueueAndYield
glabel __osEnqueueThread
/* F4623C 8026AA0C 8C980000 */ lw $t8, 0x0($a0)
/* F46240 8026AA10 8CAF0004 */ lw $t7, 0x4($a1)
/* F46244 8026AA14 0080C825 */ or $t9, $a0, $zero
/* F46248 8026AA18 8F0E0004 */ lw $t6, 0x4($t8)
/* F4624C 8026AA1C 01CF082A */ slt $at, $t6, $t7
/* F46250 8026AA20 54200008 */ bnel $at, $zero, .L8026AA44
/* F46254 8026AA24 8F380000 */ lw $t8, 0x0($t9)
/* F46258 8026AA28 0300C825 */ or $t9, $t8, $zero
.L8026AA2C:
/* F4625C 8026AA2C 8F180000 */ lw $t8, 0x0($t8)
/* F46260 8026AA30 8F0E0004 */ lw $t6, 0x4($t8)
/* F46264 8026AA34 01CF082A */ slt $at, $t6, $t7
/* F46268 8026AA38 5020FFFC */ beql $at, $zero, .L8026AA2C
/* F4626C 8026AA3C 0300C825 */ or $t9, $t8, $zero
/* F46270 8026AA40 8F380000 */ lw $t8, 0x0($t9)
.L8026AA44:
/* F46274 8026AA44 ACB80000 */ sw $t8, 0x0($a1)
/* F46278 8026AA48 AF250000 */ sw $a1, 0x0($t9)
/* F4627C 8026AA4C 03E00008 */ jr $ra
/* F46280 8026AA50 ACA40008 */ sw $a0, 0x8($a1)
endlabel __osEnqueueThread
.size __osEnqueueThread, . - __osEnqueueThread
glabel __osPopThread
/* F46284 8026AA54 8C820000 */ lw $v0, 0x0($a0)
/* F46288 8026AA58 8C590000 */ lw $t9, 0x0($v0)
/* F4628C 8026AA5C 03E00008 */ jr $ra
/* F46290 8026AA60 AC990000 */ sw $t9, 0x0($a0)
endlabel __osPopThread
.size __osPopThread, . - __osPopThread
# Handwritten function
glabel __osDispatchThread
/* F46294 8026AA64 3C048027 */ lui $a0, %hi(__osRunQueue)
/* F46298 8026AA68 0C09AA95 */ jal __osPopThread
/* F4629C 8026AA6C 24847378 */ addiu $a0, $a0, %lo(__osRunQueue)
/* F462A0 8026AA70 3C018027 */ lui $at, %hi(__osRunningThread)
/* F462A4 8026AA74 AC227380 */ sw $v0, %lo(__osRunningThread)($at)
/* F462A8 8026AA78 24080004 */ addiu $t0, $zero, 0x4
/* F462AC 8026AA7C A4480010 */ sh $t0, 0x10($v0)
/* F462B0 8026AA80 0040D025 */ or $k0, $v0, $zero
/* F462B4 8026AA84 3C088027 */ lui $t0, %hi(__OSGlobalIntMask)
/* F462B8 8026AA88 8F5B0118 */ lw $k1, 0x118($k0)
/* F462BC 8026AA8C 25087130 */ addiu $t0, $t0, %lo(__OSGlobalIntMask)
/* F462C0 8026AA90 8D080000 */ lw $t0, 0x0($t0)
/* F462C4 8026AA94 3C01FFFF */ lui $at, (0xFFFF00FF >> 16)
/* F462C8 8026AA98 3369FF00 */ andi $t1, $k1, 0xFF00
/* F462CC 8026AA9C 342100FF */ ori $at, $at, (0xFFFF00FF & 0xFFFF)
/* F462D0 8026AAA0 3108FF00 */ andi $t0, $t0, 0xFF00
/* F462D4 8026AAA4 01284824 */ and $t1, $t1, $t0
/* F462D8 8026AAA8 0361D824 */ and $k1, $k1, $at
/* F462DC 8026AAAC 0369D825 */ or $k1, $k1, $t1
/* F462E0 8026AAB0 409B6000 */ mtc0 $k1, $12
/* F462E4 8026AAB4 DF5B0108 */ ld $k1, 0x108($k0)
/* F462E8 8026AAB8 DF410020 */ ld $at, 0x20($k0)
/* F462EC 8026AABC DF420028 */ ld $v0, 0x28($k0)
/* F462F0 8026AAC0 03600013 */ mtlo $k1
/* F462F4 8026AAC4 DF5B0110 */ ld $k1, 0x110($k0)
/* F462F8 8026AAC8 DF430030 */ ld $v1, 0x30($k0)
/* F462FC 8026AACC DF440038 */ ld $a0, 0x38($k0)
/* F46300 8026AAD0 DF450040 */ ld $a1, 0x40($k0)
/* F46304 8026AAD4 DF460048 */ ld $a2, 0x48($k0)
/* F46308 8026AAD8 DF470050 */ ld $a3, 0x50($k0)
/* F4630C 8026AADC DF480058 */ ld $t0, 0x58($k0)
/* F46310 8026AAE0 DF490060 */ ld $t1, 0x60($k0)
/* F46314 8026AAE4 DF4A0068 */ ld $t2, 0x68($k0)
/* F46318 8026AAE8 DF4B0070 */ ld $t3, 0x70($k0)
/* F4631C 8026AAEC DF4C0078 */ ld $t4, 0x78($k0)
/* F46320 8026AAF0 DF4D0080 */ ld $t5, 0x80($k0)
/* F46324 8026AAF4 DF4E0088 */ ld $t6, 0x88($k0)
/* F46328 8026AAF8 DF4F0090 */ ld $t7, 0x90($k0)
/* F4632C 8026AAFC DF500098 */ ld $s0, 0x98($k0)
/* F46330 8026AB00 DF5100A0 */ ld $s1, 0xA0($k0)
/* F46334 8026AB04 DF5200A8 */ ld $s2, 0xA8($k0)
/* F46338 8026AB08 DF5300B0 */ ld $s3, 0xB0($k0)
/* F4633C 8026AB0C DF5400B8 */ ld $s4, 0xB8($k0)
/* F46340 8026AB10 DF5500C0 */ ld $s5, 0xC0($k0)
/* F46344 8026AB14 DF5600C8 */ ld $s6, 0xC8($k0)
/* F46348 8026AB18 DF5700D0 */ ld $s7, 0xD0($k0)
/* F4634C 8026AB1C DF5800D8 */ ld $t8, 0xD8($k0)
/* F46350 8026AB20 DF5900E0 */ ld $t9, 0xE0($k0)
/* F46354 8026AB24 DF5C00E8 */ ld $gp, 0xE8($k0)
/* F46358 8026AB28 03600011 */ mthi $k1
/* F4635C 8026AB2C DF5D00F0 */ ld $sp, 0xF0($k0)
/* F46360 8026AB30 DF5E00F8 */ ld $fp, 0xF8($k0)
/* F46364 8026AB34 DF5F0100 */ ld $ra, 0x100($k0)
/* F46368 8026AB38 8F5B011C */ lw $k1, 0x11C($k0)
/* F4636C 8026AB3C 409B7000 */ mtc0 $k1, $14
/* F46370 8026AB40 8F5B0018 */ lw $k1, 0x18($k0)
/* F46374 8026AB44 13600013 */ beqz $k1, .L8026AB94
/* F46378 8026AB48 00000000 */ nop
/* F4637C 8026AB4C 8F5B012C */ lw $k1, 0x12C($k0)
/* F46380 8026AB50 44DBF800 */ ctc1 $k1, $31
/* F46384 8026AB54 D7400130 */ ldc1 $f0, 0x130($k0)
/* F46388 8026AB58 D7420138 */ ldc1 $f2, 0x138($k0)
/* F4638C 8026AB5C D7440140 */ ldc1 $f4, 0x140($k0)
/* F46390 8026AB60 D7460148 */ ldc1 $f6, 0x148($k0)
/* F46394 8026AB64 D7480150 */ ldc1 $f8, 0x150($k0)
/* F46398 8026AB68 D74A0158 */ ldc1 $f10, 0x158($k0)
/* F4639C 8026AB6C D74C0160 */ ldc1 $f12, 0x160($k0)
/* F463A0 8026AB70 D74E0168 */ ldc1 $f14, 0x168($k0)
/* F463A4 8026AB74 D7500170 */ ldc1 $f16, 0x170($k0)
/* F463A8 8026AB78 D7520178 */ ldc1 $f18, 0x178($k0)
/* F463AC 8026AB7C D7540180 */ ldc1 $f20, 0x180($k0)
/* F463B0 8026AB80 D7560188 */ ldc1 $f22, 0x188($k0)
/* F463B4 8026AB84 D7580190 */ ldc1 $f24, 0x190($k0)
/* F463B8 8026AB88 D75A0198 */ ldc1 $f26, 0x198($k0)
/* F463BC 8026AB8C D75C01A0 */ ldc1 $f28, 0x1A0($k0)
/* F463C0 8026AB90 D75E01A8 */ ldc1 $f30, 0x1A8($k0)
.L8026AB94:
/* F463C4 8026AB94 8F5B0128 */ lw $k1, 0x128($k0)
/* F463C8 8026AB98 3C1A8027 */ lui $k0, %hi(__OSGlobalIntMask)
/* F463CC 8026AB9C 275A7130 */ addiu $k0, $k0, %lo(__OSGlobalIntMask)
/* F463D0 8026ABA0 8F5A0000 */ lw $k0, 0x0($k0)
/* F463D4 8026ABA4 001AD402 */ srl $k0, $k0, 16
/* F463D8 8026ABA8 037AD824 */ and $k1, $k1, $k0
/* F463DC 8026ABAC 001BD840 */ sll $k1, $k1, 1
/* F463E0 8026ABB0 3C1A8028 */ lui $k0, %hi(__osRcpImTable)
/* F463E4 8026ABB4 275A8C60 */ addiu $k0, $k0, %lo(__osRcpImTable)
/* F463E8 8026ABB8 037AD821 */ addu $k1, $k1, $k0
/* F463EC 8026ABBC 977B0000 */ lhu $k1, 0x0($k1)
/* F463F0 8026ABC0 3C1AA430 */ lui $k0, %hi(PHYS_TO_K1(MI_INTR_MASK_REG))
/* F463F4 8026ABC4 275A000C */ addiu $k0, $k0, %lo(PHYS_TO_K1(MI_INTR_MASK_REG))
/* F463F8 8026ABC8 AF5B0000 */ sw $k1, 0x0($k0)
/* F463FC 8026ABCC 00000000 */ nop
/* F46400 8026ABD0 00000000 */ nop
/* F46404 8026ABD4 00000000 */ nop
/* F46408 8026ABD8 00000000 */ nop
/* F4640C 8026ABDC 42000018 */ eret
endlabel __osDispatchThread
.size __osDispatchThread, . - __osDispatchThread
glabel __osCleanupThread
/* F46410 8026ABE0 0C09936C */ jal osDestroyThread
/* F46414 8026ABE4 00002025 */ or $a0, $zero, $zero
/* F46418 8026ABE8 00000000 */ nop
/* F4641C 8026ABEC 00000000 */ nop
endlabel __osCleanupThread
.size __osCleanupThread, . - __osCleanupThread
# Handwritten function
glabel osMapTLBRdb
/* F46420 8026ABF0 40085000 */ mfc0 $t0, $10
/* F46424 8026ABF4 2409001F */ addiu $t1, $zero, 0x1F
/* F46428 8026ABF8 40890000 */ mtc0 $t1, $0
/* F4642C 8026ABFC 40802800 */ mtc0 $zero, $5
/* F46430 8026AC00 240A0017 */ addiu $t2, $zero, 0x17
/* F46434 8026AC04 3C09C000 */ lui $t1, (0xC0000000 >> 16)
/* F46438 8026AC08 40895000 */ mtc0 $t1, $10
/* F4643C 8026AC0C 3C098000 */ lui $t1, (0x80000000 >> 16)
/* F46440 8026AC10 00095982 */ srl $t3, $t1, 6
/* F46444 8026AC14 016A5825 */ or $t3, $t3, $t2
/* F46448 8026AC18 408B1000 */ mtc0 $t3, $2
/* F4644C 8026AC1C 24090001 */ addiu $t1, $zero, 0x1
/* F46450 8026AC20 40891800 */ mtc0 $t1, $3
/* F46454 8026AC24 00000000 */ nop
/* F46458 8026AC28 42000002 */ tlbwi
/* F4645C 8026AC2C 00000000 */ nop
/* F46460 8026AC30 00000000 */ nop
/* F46464 8026AC34 00000000 */ nop
/* F46468 8026AC38 00000000 */ nop
/* F4646C 8026AC3C 40885000 */ mtc0 $t0, $10
/* F46470 8026AC40 03E00008 */ jr $ra
/* F46474 8026AC44 00000000 */ nop
/* F46478 8026AC48 00000000 */ nop
/* F4647C 8026AC4C 00000000 */ nop
endlabel osMapTLBRdb
.size osMapTLBRdb, . - osMapTLBRdb