Disassemble everything in exceptasm.s

This commit is contained in:
Ryan Dwyer
2021-10-05 22:22:32 +10:00
parent 674208cbde
commit d6a0d4745a
6 changed files with 766 additions and 886 deletions
+1
View File
@@ -8,6 +8,7 @@
build/ROMID/lib/ultra/io/vimgr.o (section); \
build/ROMID/lib/ultra/io/pimgr.o (section); \
build/ROMID/lib/lib_034d0.o (section); \
build/ROMID/lib/ultra/os/exceptvars.o (section); \
build/ROMID/lib/ultra/os/exceptasm.o (section); \
build/ROMID/lib/ultra/os/syncputchars.o (section); \
build/ROMID/lib/ultra/os/createthread.o (section); \
+1
View File
@@ -8,6 +8,7 @@
build/ROMID/lib/ultra/io/vimgr.o (section); \
build/ROMID/lib/ultra/io/pimgr.o (section); \
build/ROMID/lib/lib_034d0.o (section); \
build/ROMID/lib/ultra/os/exceptvars.o (section); \
build/ROMID/lib/ultra/os/exceptasm.o (section); \
build/ROMID/lib/ultra/os/createthread.o (section); \
build/ROMID/lib/ultra/gu/lookat.o (section); \
+1
View File
@@ -8,6 +8,7 @@
build/ROMID/lib/ultra/io/vimgr.o (section); \
build/ROMID/lib/ultra/io/pimgr.o (section); \
build/ROMID/lib/lib_034d0.o (section); \
build/ROMID/lib/ultra/os/exceptvars.o (section); \
build/ROMID/lib/ultra/os/exceptasm.o (section); \
build/ROMID/lib/ultra/os/createthread.o (section); \
build/ROMID/lib/ultra/gu/lookat.o (section); \
-886
View File
@@ -1,886 +0,0 @@
#include <libultra_internal.h>
#include "data.h"
u32 var800907f0;
u32 var800907f4;
u32 var800907f8;
u32 var800907fc;
u32 var80090800;
u32 var80090804;
u32 var80090808;
u32 var8009080c;
u32 var80090810;
u32 var80090814;
u32 var80090818;
u32 var8009081c;
u32 var80090820;
u32 var80090824;
u32 var80090828;
u32 var8009082c;
u32 var80090830;
u32 var80090834;
u32 var80090838;
u32 var8009083c;
u32 var80090840;
u32 var80090844;
u32 var80090848;
u32 var8009084c;
u32 var80090850;
u32 var80090854;
u32 var80090858;
u32 var8009085c;
u32 var80090860;
u32 var80090864;
u32 var80090868;
u32 var8009086c;
u32 var80090870;
u32 var80090874;
u32 var80090878;
u32 var8009087c;
u32 var80090880;
u32 var80090884;
u32 var80090888;
u32 var8009088c;
u32 var80090890;
u32 var80090894;
u32 var80090898;
u32 var8009089c;
u32 var800908a0;
u32 var800908a4;
u32 var800908a8;
u32 var800908ac;
u32 var800908b0;
u32 var800908b4;
u32 var800908b8;
u32 var800908bc;
u32 var800908c0;
u32 var800908c4;
u32 var800908c8;
u32 var800908cc;
u32 var800908d0;
u32 var800908d4;
u32 var800908d8;
u32 var800908dc;
u32 var800908e0;
u32 var800908e4;
u32 var800908e8;
u32 var800908ec;
u32 var800908f0;
u32 var800908f4;
u32 var800908f8;
u32 var800908fc;
u32 var80090900;
u32 var80090904;
u32 var80090908;
u32 var8009090c;
u32 var80090910;
u32 var80090914;
u32 var80090918;
u32 var8009091c;
u32 var80090920;
u32 var80090924;
u32 var80090928;
u32 var8009092c;
u32 var80090930;
u32 var80090934;
u32 var80090938;
u32 var8009093c;
u32 var80090940;
u32 var80090944;
u32 var80090948;
u32 var8009094c;
u32 var80090950;
u32 var80090954;
u32 var80090958;
u32 var8009095c;
u32 var80090960;
u32 var80090964;
u32 var80090968;
u32 var8009096c;
u32 var80090970;
u32 var80090974;
u32 var80090978;
u32 var8009097c;
u32 var80090980;
u32 var80090984;
u32 var80090988;
u32 var8009098c;
u32 var80090990;
u32 var80090994;
u32 var80090998;
u32 var8009099c;
u32 var800909a0;
u32 var800909a4;
u32 var800909a8;
u32 var800909ac;
u32 var800909b0;
u32 var800909b4;
u32 var800909b8;
u32 var800909bc;
u32 var800909c0;
u32 var800909c4;
u32 var800909c8;
u32 var800909cc;
u32 var800909d0;
u32 var800909d4;
u32 var800909d8;
u32 var800909dc;
u32 var800909e0;
u32 var800909e4;
u32 var800909e8;
u32 var800909ec;
u32 var800909f0;
u32 var800909f4;
u32 var800909f8;
u32 var800909fc;
u32 var80090a00;
u32 var80090a04;
u32 var80090a08;
u32 var80090a0c;
u32 var80090a10;
u32 var80090a14;
u32 var80090a18;
u32 var80090a1c;
u32 var8005cf30 = 0;
u32 var8005cf34 = 0;
u32 var8005cf38 = 0;
u32 var8005cf3c = 0;
u32 var8005cf40 = 0;
u32 var8005cf44 = 0;
u32 var8005cf48 = 0;
u32 var8005cf4c = 0;
u32 var8005cf50 = 0;
u32 var8005cf54 = 0;
u32 var8005cf58 = 0;
u32 var8005cf5c = 0;
const u32 var70052450[] = {0x00141818};
const u32 var70052454[] = {0x1c1c1c1c};
const u32 var70052458[] = {0x20202020};
const u32 var7005245c[] = {0x20202020};
const u32 var70052460[] = {0x00040808};
const u32 var70052464[] = {0x0c0c0c0c};
const u32 var70052468[] = {0x10101010};
const u32 var7005246c[] = {0x10101010};
GLOBAL_ASM(
glabel __osExceptionPreamble
/* 34f0: 3c1a7000 */ lui $k0,%hi(__osException)
/* 34f4: 275a3500 */ addiu $k0,$k0,%lo(__osException)
/* 34f8: 03400008 */ jr $k0
/* 34fc: 00000000 */ nop
);
GLOBAL_ASM(
glabel __osException
.late_rodata
glabel var70052470
.word __osException+0x53c
glabel var70052474
.word __osException+0x4c8
glabel var70052478
.word __osException+0x4a8
glabel var7005247c
.word __osException+0x30c
glabel var70052480
.word __osException+0x2c8
glabel var70052484
.word __osException+0x44c
glabel var70052488
.word __osException+0x290
glabel var7005248c
.word __osException+0x29c
glabel var70052490
.word __osException+0x2a8
.text
/* 3500: 3c1a8009 */ lui $k0,%hi(var800907f0)
/* 3504: 275a07f0 */ addiu $k0,$k0,%lo(var800907f0)
/* 3508: ff410020 */ sd $at,0x20($k0)
/* 350c: 401b6000 */ mfc0 $k1,$12
/* 3510: af5b0118 */ sw $k1,0x118($k0)
/* 3514: 2401fffc */ addiu $at,$zero,-4
/* 3518: 0361d824 */ and $k1,$k1,$at
/* 351c: 409b6000 */ mtc0 $k1,$12
/* 3520: ff480058 */ sd $t0,0x58($k0)
/* 3524: ff490060 */ sd $t1,0x60($k0)
/* 3528: ff4a0068 */ sd $t2,0x68($k0)
/* 352c: af400018 */ sw $zero,0x18($k0)
/* 3530: 40086800 */ mfc0 $t0,$13
/* 3534: 03404025 */ or $t0,$k0,$zero
/* 3538: 3c1a8006 */ lui $k0,%hi(__osRunningThread)
/* 353c: 8f5a0940 */ lw $k0,%lo(__osRunningThread)($k0)
/* 3540: dd090020 */ ld $t1,0x20($t0)
/* 3544: ff490020 */ sd $t1,0x20($k0)
/* 3548: dd090118 */ ld $t1,0x118($t0)
/* 354c: ff490118 */ sd $t1,0x118($k0)
/* 3550: dd090058 */ ld $t1,0x58($t0)
/* 3554: ff490058 */ sd $t1,0x58($k0)
/* 3558: dd090060 */ ld $t1,0x60($t0)
/* 355c: ff490060 */ sd $t1,0x60($k0)
/* 3560: dd090068 */ ld $t1,0x68($t0)
/* 3564: ff490068 */ sd $t1,0x68($k0)
/* 3568: 8f5b0118 */ lw $k1,0x118($k0)
/* 356c: 00004012 */ mflo $t0
/* 3570: ff480108 */ sd $t0,0x108($k0)
/* 3574: 00004010 */ mfhi $t0
/* 3578: 3369ff00 */ andi $t1,$k1,0xff00
/* 357c: ff420028 */ sd $v0,0x28($k0)
/* 3580: ff430030 */ sd $v1,0x30($k0)
/* 3584: ff440038 */ sd $a0,0x38($k0)
/* 3588: ff450040 */ sd $a1,0x40($k0)
/* 358c: ff460048 */ sd $a2,0x48($k0)
/* 3590: ff470050 */ sd $a3,0x50($k0)
/* 3594: ff4b0070 */ sd $t3,0x70($k0)
/* 3598: ff4c0078 */ sd $t4,0x78($k0)
/* 359c: ff4d0080 */ sd $t5,0x80($k0)
/* 35a0: ff4e0088 */ sd $t6,0x88($k0)
/* 35a4: ff4f0090 */ sd $t7,0x90($k0)
/* 35a8: ff500098 */ sd $s0,0x98($k0)
/* 35ac: ff5100a0 */ sd $s1,0xa0($k0)
/* 35b0: ff5200a8 */ sd $s2,0xa8($k0)
/* 35b4: ff5300b0 */ sd $s3,0xb0($k0)
/* 35b8: ff5400b8 */ sd $s4,0xb8($k0)
/* 35bc: ff5500c0 */ sd $s5,0xc0($k0)
/* 35c0: ff5600c8 */ sd $s6,0xc8($k0)
/* 35c4: ff5700d0 */ sd $s7,0xd0($k0)
/* 35c8: ff5800d8 */ sd $t8,0xd8($k0)
/* 35cc: ff5900e0 */ sd $t9,0xe0($k0)
/* 35d0: ff5c00e8 */ sd $gp,0xe8($k0)
/* 35d4: ff5d00f0 */ sd $sp,0xf0($k0)
/* 35d8: ff5e00f8 */ sd $s8,0xf8($k0)
/* 35dc: ff5f0100 */ sd $ra,0x100($k0)
/* 35e0: 11200011 */ beqz $t1,.L00003628
/* 35e4: ff480110 */ sd $t0,0x110($k0)
/* 35e8: 3c088006 */ lui $t0,%hi(__osGlobalIntMask)
/* 35ec: 2508cf70 */ addiu $t0,$t0,%lo(__osGlobalIntMask)
/* 35f0: 8d080000 */ lw $t0,0x0($t0)
/* 35f4: 2401ffff */ addiu $at,$zero,-1
/* 35f8: 01015026 */ xor $t2,$t0,$at
/* 35fc: 3c01ffff */ lui $at,0xffff
/* 3600: 314aff00 */ andi $t2,$t2,0xff00
/* 3604: 342100ff */ ori $at,$at,0xff
/* 3608: 012a6025 */ or $t4,$t1,$t2
/* 360c: 03615824 */ and $t3,$k1,$at
/* 3610: 3108ff00 */ andi $t0,$t0,0xff00
/* 3614: 016c5825 */ or $t3,$t3,$t4
/* 3618: 01284824 */ and $t1,$t1,$t0
/* 361c: 0361d824 */ and $k1,$k1,$at
/* 3620: af4b0118 */ sw $t3,0x118($k0)
/* 3624: 0369d825 */ or $k1,$k1,$t1
.L00003628:
/* 3628: 3c09a430 */ lui $t1,0xa430
/* 362c: 8d29000c */ lw $t1,0xc($t1)
/* 3630: 5120000c */ beqzl $t1,.L00003664
/* 3634: af490128 */ sw $t1,0x128($k0)
/* 3638: 3c088006 */ lui $t0,%hi(__osGlobalIntMask)
/* 363c: 2508cf70 */ addiu $t0,$t0,%lo(__osGlobalIntMask)
/* 3640: 8d080000 */ lw $t0,0x0($t0)
/* 3644: 8f4c0128 */ lw $t4,0x128($k0)
/* 3648: 2401ffff */ addiu $at,$zero,-1
/* 364c: 00084402 */ srl $t0,$t0,0x10
/* 3650: 01014026 */ xor $t0,$t0,$at
/* 3654: 3108003f */ andi $t0,$t0,0x3f
/* 3658: 010c4024 */ and $t0,$t0,$t4
/* 365c: 01284825 */ or $t1,$t1,$t0
/* 3660: af490128 */ sw $t1,0x128($k0)
.L00003664:
/* 3664: 40087000 */ mfc0 $t0,$14
/* 3668: af48011c */ sw $t0,0x11c($k0)
/* 366c: 8f480018 */ lw $t0,0x18($k0)
/* 3670: 11000024 */ beqz $t0,.L00003704
/* 3674: 00000000 */ nop
/* 3678: 4448f800 */ cfc1 $t0,$31
/* 367c: 00000000 */ nop
/* 3680: af48012c */ sw $t0,0x12c($k0)
/* 3684: f7400130 */ sdc1 $f0,0x130($k0)
/* 3688: f7410138 */ sdc1 $f1,0x138($k0)
/* 368c: f7420140 */ sdc1 $f2,0x140($k0)
/* 3690: f7430148 */ sdc1 $f3,0x148($k0)
/* 3694: f7440150 */ sdc1 $f4,0x150($k0)
/* 3698: f7450158 */ sdc1 $f5,0x158($k0)
/* 369c: f7460160 */ sdc1 $f6,0x160($k0)
/* 36a0: f7470168 */ sdc1 $f7,0x168($k0)
/* 36a4: f7480170 */ sdc1 $f8,0x170($k0)
/* 36a8: f7490178 */ sdc1 $f9,0x178($k0)
/* 36ac: f74a0180 */ sdc1 $f10,0x180($k0)
/* 36b0: f74b0188 */ sdc1 $f11,0x188($k0)
/* 36b4: f74c0190 */ sdc1 $f12,0x190($k0)
/* 36b8: f74d0198 */ sdc1 $f13,0x198($k0)
/* 36bc: f74e01a0 */ sdc1 $f14,0x1a0($k0)
/* 36c0: f74f01a8 */ sdc1 $f15,0x1a8($k0)
/* 36c4: f75001b0 */ sdc1 $f16,0x1b0($k0)
/* 36c8: f75101b8 */ sdc1 $f17,0x1b8($k0)
/* 36cc: f75201c0 */ sdc1 $f18,0x1c0($k0)
/* 36d0: f75301c8 */ sdc1 $f19,0x1c8($k0)
/* 36d4: f75401d0 */ sdc1 $f20,0x1d0($k0)
/* 36d8: f75501d8 */ sdc1 $f21,0x1d8($k0)
/* 36dc: f75601e0 */ sdc1 $f22,0x1e0($k0)
/* 36e0: f75701e8 */ sdc1 $f23,0x1e8($k0)
/* 36e4: f75801f0 */ sdc1 $f24,0x1f0($k0)
/* 36e8: f75901f8 */ sdc1 $f25,0x1f8($k0)
/* 36ec: f75a0200 */ sdc1 $f26,0x200($k0)
/* 36f0: f75b0208 */ sdc1 $f27,0x208($k0)
/* 36f4: f75c0210 */ sdc1 $f28,0x210($k0)
/* 36f8: f75d0218 */ sdc1 $f29,0x218($k0)
/* 36fc: f75e0220 */ sdc1 $f30,0x220($k0)
/* 3700: f75f0228 */ sdc1 $f31,0x228($k0)
.L00003704:
/* 3704: 40086800 */ mfc0 $t0,$13
/* 3708: af480120 */ sw $t0,0x120($k0)
/* 370c: 24090002 */ addiu $t1,$zero,0x2
/* 3710: a7490010 */ sh $t1,0x10($k0)
/* 3714: 3109007c */ andi $t1,$t0,0x7c
/* 3718: 240a0008 */ addiu $t2,$zero,0x8
/* 371c: 112a00b2 */ beq $t1,$t2,.L000039e8
/* 3720: 00000000 */ nop
/* 3724: 240a000c */ addiu $t2,$zero,0xc
/* 3728: 112a00b3 */ beq $t1,$t2,.L000039f8
/* 372c: 00000000 */ nop
/* 3730: 240a0024 */ addiu $t2,$zero,0x24
/* 3734: 512a00b3 */ beql $t1,$t2,.L00003a04
/* 3738: 24090001 */ addiu $t1,$zero,0x1
/* 373c: 240a002c */ addiu $t2,$zero,0x2c
/* 3740: 112a010a */ beq $t1,$t2,.L00003b6c
/* 3744: 00000000 */ nop
/* 3748: 240a0000 */ addiu $t2,$zero,0x0
/* 374c: 152a00ce */ bne $t1,$t2,.L00003a88
/* 3750: 00000000 */ nop
/* 3754: 03688024 */ and $s0,$k1,$t0
.L00003758:
/* 3758: 3209ff00 */ andi $t1,$s0,0xff00
.L0000375c:
/* 375c: 00095302 */ srl $t2,$t1,0xc
/* 3760: 15400003 */ bnez $t2,.L00003770
/* 3764: 00000000 */ nop
/* 3768: 00095202 */ srl $t2,$t1,0x8
/* 376c: 214a0010 */ addi $t2,$t2,0x10
.L00003770:
/* 3770: 3c017005 */ lui $at,%hi(var70052450)
/* 3774: 002a0821 */ addu $at,$at,$t2
/* 3778: 902a2450 */ lbu $t2,%lo(var70052450)($at)
/* 377c: 3c017005 */ lui $at,%hi(var70052470)
/* 3780: 002a0821 */ addu $at,$at,$t2
/* 3784: 8c2a2470 */ lw $t2,%lo(var70052470)($at)
/* 3788: 01400008 */ jr $t2
/* 378c: 00000000 */ nop
/* 3790: 2401dfff */ addiu $at,$zero,-8193
/* 3794: 1000fff0 */ b .L00003758
/* 3798: 02018024 */ and $s0,$s0,$at
/* 379c: 2401bfff */ addiu $at,$zero,-16385
/* 37a0: 1000ffed */ b .L00003758
/* 37a4: 02018024 */ and $s0,$s0,$at
/* 37a8: 40095800 */ mfc0 $t1,$11
/* 37ac: 40895800 */ mtc0 $t1,$11
/* 37b0: 0c000eae */ jal send_mesg
/* 37b4: 24040018 */ addiu $a0,$zero,0x18
/* 37b8: 3c01ffff */ lui $at,0xffff
/* 37bc: 34217fff */ ori $at,$at,0x7fff
/* 37c0: 1000ffe5 */ b .L00003758
/* 37c4: 02018024 */ and $s0,$s0,$at
/* 37c8: 3c098006 */ lui $t1,%hi(var8005cf30)
/* 37cc: 2529cf30 */ addiu $t1,$t1,%lo(var8005cf30)
/* 37d0: 8d2a0008 */ lw $t2,0x8($t1)
/* 37d4: 2401f7ff */ addiu $at,$zero,-2049
/* 37d8: 02018024 */ and $s0,$s0,$at
/* 37dc: 11400007 */ beqz $t2,.L000037fc
/* 37e0: 21290008 */ addi $t1,$t1,0x8
/* 37e4: 0140f809 */ jalr $t2
/* 37e8: 8d3d0004 */ lw $sp,0x4($t1)
/* 37ec: 10400003 */ beqz $v0,.L000037fc
/* 37f0: 00000000 */ nop
/* 37f4: 10000091 */ b .L00003a3c
/* 37f8: 00000000 */ nop
.L000037fc:
/* 37fc: 0c000eae */ jal send_mesg
/* 3800: 24040010 */ addiu $a0,$zero,0x10
/* 3804: 1000ffd5 */ b .L0000375c
/* 3808: 3209ff00 */ andi $t1,$s0,0xff00
/* 380c: 3c088006 */ lui $t0,%hi(__osGlobalIntMask)
/* 3810: 2508cf70 */ addiu $t0,$t0,%lo(__osGlobalIntMask)
/* 3814: 8d080000 */ lw $t0,0x0($t0)
/* 3818: 3c11a430 */ lui $s1,0xa430
/* 381c: 8e310008 */ lw $s1,0x8($s1)
/* 3820: 00084402 */ srl $t0,$t0,0x10
/* 3824: 02288824 */ and $s1,$s1,$t0
/* 3828: 32290001 */ andi $t1,$s1,0x1
/* 382c: 51200014 */ beqzl $t1,.L00003880
/* 3830: 32290008 */ andi $t1,$s1,0x8
/* 3834: 3c0ca404 */ lui $t4,0xa404
/* 3838: 8d8c0010 */ lw $t4,0x10($t4)
/* 383c: 34098008 */ dli $t1,0x8008
/* 3840: 3c01a404 */ lui $at,0xa404
/* 3844: 318c0300 */ andi $t4,$t4,0x300
/* 3848: 3231003e */ andi $s1,$s1,0x3e
/* 384c: 11800007 */ beqz $t4,.L0000386c
/* 3850: ac290010 */ sw $t1,0x10($at)
/* 3854: 0c000eae */ jal send_mesg
/* 3858: 24040020 */ addiu $a0,$zero,0x20
/* 385c: 52200039 */ beqzl $s1,.L00003944
/* 3860: 2401fbff */ addiu $at,$zero,-1025
/* 3864: 10000006 */ b .L00003880
/* 3868: 32290008 */ andi $t1,$s1,0x8
.L0000386c:
/* 386c: 0c000eae */ jal send_mesg
/* 3870: 24040058 */ addiu $a0,$zero,0x58
/* 3874: 52200033 */ beqzl $s1,.L00003944
/* 3878: 2401fbff */ addiu $at,$zero,-1025
/* 387c: 32290008 */ andi $t1,$s1,0x8
.L00003880:
/* 3880: 11200007 */ beqz $t1,.L000038a0
/* 3884: 3c01a440 */ lui $at,0xa440
/* 3888: 32310037 */ andi $s1,$s1,0x37
/* 388c: ac200010 */ sw $zero,0x10($at)
/* 3890: 0c000eae */ jal send_mesg
/* 3894: 24040038 */ addiu $a0,$zero,0x38
/* 3898: 5220002a */ beqzl $s1,.L00003944
/* 389c: 2401fbff */ addiu $at,$zero,-1025
.L000038a0:
/* 38a0: 32290004 */ andi $t1,$s1,0x4
/* 38a4: 5120000a */ beqzl $t1,.L000038d0
/* 38a8: 32290002 */ andi $t1,$s1,0x2
/* 38ac: 24090001 */ addiu $t1,$zero,0x1
/* 38b0: 3c01a450 */ lui $at,0xa450
/* 38b4: 3231003b */ andi $s1,$s1,0x3b
/* 38b8: ac29000c */ sw $t1,0xc($at)
/* 38bc: 0c000eae */ jal send_mesg
/* 38c0: 24040030 */ addiu $a0,$zero,0x30
/* 38c4: 5220001f */ beqzl $s1,.L00003944
/* 38c8: 2401fbff */ addiu $at,$zero,-1025
/* 38cc: 32290002 */ andi $t1,$s1,0x2
.L000038d0:
/* 38d0: 11200007 */ beqz $t1,.L000038f0
/* 38d4: 3c01a480 */ lui $at,0xa480
/* 38d8: 3231003d */ andi $s1,$s1,0x3d
/* 38dc: ac200018 */ sw $zero,0x18($at)
/* 38e0: 0c000eae */ jal send_mesg
/* 38e4: 24040028 */ addiu $a0,$zero,0x28
/* 38e8: 52200016 */ beqzl $s1,.L00003944
/* 38ec: 2401fbff */ addiu $at,$zero,-1025
.L000038f0:
/* 38f0: 32290010 */ andi $t1,$s1,0x10
/* 38f4: 5120000a */ beqzl $t1,.L00003920
/* 38f8: 32290020 */ andi $t1,$s1,0x20
/* 38fc: 24090002 */ addiu $t1,$zero,0x2
/* 3900: 3c01a460 */ lui $at,0xa460
/* 3904: 3231002f */ andi $s1,$s1,0x2f
/* 3908: ac290010 */ sw $t1,0x10($at)
/* 390c: 0c000eae */ jal send_mesg
/* 3910: 24040040 */ addiu $a0,$zero,0x40
/* 3914: 5220000b */ beqzl $s1,.L00003944
/* 3918: 2401fbff */ addiu $at,$zero,-1025
/* 391c: 32290020 */ andi $t1,$s1,0x20
.L00003920:
/* 3920: 51200008 */ beqzl $t1,.L00003944
/* 3924: 2401fbff */ addiu $at,$zero,-1025
/* 3928: 24090800 */ addiu $t1,$zero,0x800
/* 392c: 3c01a430 */ lui $at,0xa430
/* 3930: 3231001f */ andi $s1,$s1,0x1f
/* 3934: ac290000 */ sw $t1,0x0($at)
/* 3938: 0c000eae */ jal send_mesg
/* 393c: 24040048 */ addiu $a0,$zero,0x48
/* 3940: 2401fbff */ addiu $at,$zero,-1025
.L00003944:
/* 3944: 1000ff84 */ b .L00003758
/* 3948: 02018024 */ and $s0,$s0,$at
/* 394c: 8f5b0118 */ lw $k1,0x118($k0)
/* 3950: 2401efff */ addiu $at,$zero,-4097
/* 3954: 3c098006 */ lui $t1,%hi(_osShutdown)
/* 3958: 0361d824 */ and $k1,$k1,$at
/* 395c: af5b0118 */ sw $k1,0x118($k0)
/* 3960: 2529cf6c */ addiu $t1,$t1,%lo(_osShutdown)
/* 3964: 8d2a0000 */ lw $t2,0x0($t1)
/* 3968: 11400003 */ beqz $t2,.L00003978
/* 396c: 2401efff */ addiu $at,$zero,-4097
/* 3970: 10000032 */ b .L00003a3c
/* 3974: 02018024 */ and $s0,$s0,$at
.L00003978:
/* 3978: 240a0001 */ addiu $t2,$zero,0x1
/* 397c: ad2a0000 */ sw $t2,0x0($t1)
/* 3980: 0c000eae */ jal send_mesg
/* 3984: 24040070 */ addiu $a0,$zero,0x70
/* 3988: 3c0a8006 */ lui $t2,%hi(__osRunQueue)
/* 398c: 8d4a0938 */ lw $t2,%lo(__osRunQueue)($t2)
/* 3990: 2401efff */ addiu $at,$zero,-4097
/* 3994: 02018024 */ and $s0,$s0,$at
/* 3998: 8d5b0118 */ lw $k1,0x118($t2)
/* 399c: 0361d824 */ and $k1,$k1,$at
/* 39a0: 10000026 */ b .L00003a3c
/* 39a4: ad5b0118 */ sw $k1,0x118($t2)
/* 39a8: 2401fdff */ addiu $at,$zero,-513
/* 39ac: 01014024 */ and $t0,$t0,$at
/* 39b0: 40886800 */ mtc0 $t0,$13
/* 39b4: 0c000eae */ jal send_mesg
/* 39b8: 24040008 */ addiu $a0,$zero,0x8
/* 39bc: 2401fdff */ addiu $at,$zero,-513
/* 39c0: 1000ff65 */ b .L00003758
/* 39c4: 02018024 */ and $s0,$s0,$at
/* 39c8: 2401feff */ addiu $at,$zero,-257
/* 39cc: 01014024 */ and $t0,$t0,$at
/* 39d0: 40886800 */ mtc0 $t0,$13
/* 39d4: 0c000eae */ jal send_mesg
/* 39d8: 24040000 */ addiu $a0,$zero,0x0
/* 39dc: 2401feff */ addiu $at,$zero,-257
/* 39e0: 1000ff5d */ b .L00003758
/* 39e4: 02018024 */ and $s0,$s0,$at
.L000039e8:
/* 39e8: 0c000460 */ jal boot00001180
/* 39ec: 00000000 */ nop
/* 39f0: 10000012 */ b .L00003a3c
/* 39f4: 00000000 */ nop
.L000039f8:
/* 39f8: 08000ea2 */ j .L00003a88
/* 39fc: 00000000 */ nop
/* 3a00: 24090001 */ addiu $t1,$zero,0x1
.L00003a04:
/* 3a04: a7490012 */ sh $t1,0x12($k0)
/* 3a08: 8f49011c */ lw $t1,0x11c($k0)
/* 3a0c: 24010006 */ addiu $at,$zero,0x6
/* 3a10: 8d290000 */ lw $t1,0x0($t1)
/* 3a14: 00094c02 */ srl $t1,$t1,0x10
/* 3a18: 312900ff */ andi $t1,$t1,0xff
/* 3a1c: 1121001a */ beq $t1,$at,.L00003a88
/* 3a20: 24010007 */ addiu $at,$zero,0x7
/* 3a24: 11210018 */ beq $t1,$at,.L00003a88
/* 3a28: 00000000 */ nop
/* 3a2c: 0c000eae */ jal send_mesg
/* 3a30: 24040050 */ addiu $a0,$zero,0x50
/* 3a34: 10000001 */ b .L00003a3c
/* 3a38: 00000000 */ nop
.L00003a3c:
/* 3a3c: 3c0a8006 */ lui $t2,%hi(__osRunQueue)
/* 3a40: 8d4a0938 */ lw $t2,%lo(__osRunQueue)($t2)
/* 3a44: 8f490004 */ lw $t1,0x4($k0)
/* 3a48: 8d4b0004 */ lw $t3,0x4($t2)
/* 3a4c: 012b082a */ slt $at,$t1,$t3
/* 3a50: 10200007 */ beqz $at,.L00003a70
/* 3a54: 00000000 */ nop
/* 3a58: 3c048006 */ lui $a0,%hi(__osRunQueue)
/* 3a5c: 03402825 */ or $a1,$k0,$zero
/* 3a60: 0c000f2e */ jal __osEnqueueThread
/* 3a64: 24840938 */ addiu $a0,$a0,%lo(__osRunQueue)
/* 3a68: 08000f44 */ j .L00003d10
/* 3a6c: 00000000 */ nop
.L00003a70:
/* 3a70: 3c098006 */ lui $t1,%hi(__osRunQueue)
/* 3a74: 25290938 */ addiu $t1,$t1,%lo(__osRunQueue)
/* 3a78: 8d2a0000 */ lw $t2,0x0($t1)
/* 3a7c: af4a0000 */ sw $t2,0x0($k0)
/* 3a80: 08000f44 */ j .L00003d10
/* 3a84: ad3a0000 */ sw $k0,0x0($t1)
.L00003a88:
/* 3a88: 3c018006 */ lui $at,%hi(__osFaultedThread)
/* 3a8c: ac3a0944 */ sw $k0,%lo(__osFaultedThread)($at)
/* 3a90: 24090001 */ addiu $t1,$zero,0x1
/* 3a94: a7490010 */ sh $t1,0x10($k0)
/* 3a98: 24090002 */ addiu $t1,$zero,0x2
/* 3a9c: a7490012 */ sh $t1,0x12($k0)
/* 3aa0: 400a4000 */ mfc0 $t2,$8
/* 3aa4: af4a0124 */ sw $t2,0x124($k0)
/* 3aa8: 0c000eae */ jal send_mesg
/* 3aac: 24040060 */ addiu $a0,$zero,0x60
/* 3ab0: 08000f44 */ j .L00003d10
/* 3ab4: 00000000 */ nop
);
GLOBAL_ASM(
glabel send_mesg
/* 3ab8: 3c0a800a */ lui $t2,%hi(__osEventStateTab)
/* 3abc: 254ac6e0 */ addiu $t2,$t2,%lo(__osEventStateTab)
/* 3ac0: 01445021 */ addu $t2,$t2,$a0
/* 3ac4: 8d490000 */ lw $t1,0x0($t2)
/* 3ac8: 03e09025 */ or $s2,$ra,$zero
/* 3acc: 11200025 */ beqz $t1,.L00003b64
/* 3ad0: 00000000 */ nop
/* 3ad4: 8d2b0008 */ lw $t3,0x8($t1)
/* 3ad8: 8d2c0010 */ lw $t4,0x10($t1)
/* 3adc: 016c082a */ slt $at,$t3,$t4
/* 3ae0: 10200020 */ beqz $at,.L00003b64
/* 3ae4: 00000000 */ nop
/* 3ae8: 8d2d000c */ lw $t5,0xc($t1)
/* 3aec: 01ab6821 */ addu $t5,$t5,$t3
/* 3af0: 01ac001a */ div $zero,$t5,$t4
/* 3af4: 15800002 */ bnez $t4,.L00003b00
/* 3af8: 00000000 */ nop
/* 3afc: 0007000d */ break 0x7
.L00003b00:
/* 3b00: 2401ffff */ addiu $at,$zero,-1
/* 3b04: 15810004 */ bne $t4,$at,.L00003b18
/* 3b08: 3c018000 */ lui $at,0x8000
/* 3b0c: 15a10002 */ bne $t5,$at,.L00003b18
/* 3b10: 00000000 */ nop
/* 3b14: 0006000d */ break 0x6
.L00003b18:
/* 3b18: 8d2c0014 */ lw $t4,0x14($t1)
/* 3b1c: 00006810 */ mfhi $t5
/* 3b20: 000d6880 */ sll $t5,$t5,0x2
/* 3b24: 018d6021 */ addu $t4,$t4,$t5
/* 3b28: 8d4d0004 */ lw $t5,0x4($t2)
/* 3b2c: 256a0001 */ addiu $t2,$t3,0x1
/* 3b30: ad8d0000 */ sw $t5,0x0($t4)
/* 3b34: ad2a0008 */ sw $t2,0x8($t1)
/* 3b38: 8d2a0000 */ lw $t2,0x0($t1)
/* 3b3c: 8d4b0000 */ lw $t3,0x0($t2)
/* 3b40: 11600008 */ beqz $t3,.L00003b64
/* 3b44: 00000000 */ nop
/* 3b48: 0c000f40 */ jal __osPopThread
/* 3b4c: 01202025 */ or $a0,$t1,$zero
/* 3b50: 00405025 */ or $t2,$v0,$zero
/* 3b54: 3c048006 */ lui $a0,%hi(__osRunQueue)
/* 3b58: 01402825 */ or $a1,$t2,$zero
/* 3b5c: 0c000f2e */ jal __osEnqueueThread
/* 3b60: 24840938 */ addiu $a0,$a0,%lo(__osRunQueue)
.L00003b64:
/* 3b64: 02400008 */ jr $s2
/* 3b68: 00000000 */ nop
.L00003b6c:
/* 3b6c: 3c013000 */ lui $at,0x3000
/* 3b70: 01014824 */ and $t1,$t0,$at
/* 3b74: 00094f02 */ srl $t1,$t1,0x1c
/* 3b78: 240a0001 */ addiu $t2,$zero,0x1
/* 3b7c: 152affc2 */ bne $t1,$t2,.L00003a88
/* 3b80: 00000000 */ nop
/* 3b84: 8f5b0118 */ lw $k1,0x118($k0)
/* 3b88: 3c012000 */ lui $at,0x2000
/* 3b8c: 24090001 */ addiu $t1,$zero,0x1
/* 3b90: 0361d825 */ or $k1,$k1,$at
/* 3b94: af490018 */ sw $t1,0x18($k0)
/* 3b98: 1000ffb5 */ b .L00003a70
/* 3b9c: af5b0118 */ sw $k1,0x118($k0)
);
GLOBAL_ASM(
glabel __osEnqueueAndYield
/* 3ba0: 3c058006 */ lui $a1,%hi(__osRunningThread)
/* 3ba4: 8ca50940 */ lw $a1,%lo(__osRunningThread)($a1)
/* 3ba8: 40086000 */ mfc0 $t0,$12
/* 3bac: 8cbb0018 */ lw $k1,0x18($a1)
/* 3bb0: 35080002 */ ori $t0,$t0,0x2
/* 3bb4: aca80118 */ sw $t0,0x118($a1)
/* 3bb8: fcb00098 */ sd $s0,0x98($a1)
/* 3bbc: fcb100a0 */ sd $s1,0xa0($a1)
/* 3bc0: fcb200a8 */ sd $s2,0xa8($a1)
/* 3bc4: fcb300b0 */ sd $s3,0xb0($a1)
/* 3bc8: fcb400b8 */ sd $s4,0xb8($a1)
/* 3bcc: fcb500c0 */ sd $s5,0xc0($a1)
/* 3bd0: fcb600c8 */ sd $s6,0xc8($a1)
/* 3bd4: fcb700d0 */ sd $s7,0xd0($a1)
/* 3bd8: fcbc00e8 */ sd $gp,0xe8($a1)
/* 3bdc: fcbd00f0 */ sd $sp,0xf0($a1)
/* 3be0: fcbe00f8 */ sd $s8,0xf8($a1)
/* 3be4: fcbf0100 */ sd $ra,0x100($a1)
/* 3be8: 1360000f */ beqz $k1,.L00003c28
/* 3bec: acbf011c */ sw $ra,0x11c($a1)
/* 3bf0: 445bf800 */ cfc1 $k1,$31
/* 3bf4: f4b401d0 */ sdc1 $f20,0x1d0($a1)
/* 3bf8: f4b501d8 */ sdc1 $f21,0x1d8($a1)
/* 3bfc: f4b601e0 */ sdc1 $f22,0x1e0($a1)
/* 3c00: f4b701e8 */ sdc1 $f23,0x1e8($a1)
/* 3c04: f4b801f0 */ sdc1 $f24,0x1f0($a1)
/* 3c08: f4b901f8 */ sdc1 $f25,0x1f8($a1)
/* 3c0c: f4ba0200 */ sdc1 $f26,0x200($a1)
/* 3c10: f4bb0208 */ sdc1 $f27,0x208($a1)
/* 3c14: f4bc0210 */ sdc1 $f28,0x210($a1)
/* 3c18: f4bd0218 */ sdc1 $f29,0x218($a1)
/* 3c1c: f4be0220 */ sdc1 $f30,0x220($a1)
/* 3c20: f4bf0228 */ sdc1 $f31,0x228($a1)
/* 3c24: acbb012c */ sw $k1,0x12c($a1)
.L00003c28:
/* 3c28: 8cbb0118 */ lw $k1,0x118($a1)
/* 3c2c: 3369ff00 */ andi $t1,$k1,0xff00
/* 3c30: 5120000e */ beqzl $t1,.L00003c6c
/* 3c34: 3c1ba430 */ lui $k1,0xa430
/* 3c38: 3c088006 */ lui $t0,%hi(__osGlobalIntMask)
/* 3c3c: 2508cf70 */ addiu $t0,$t0,%lo(__osGlobalIntMask)
/* 3c40: 8d080000 */ lw $t0,0x0($t0)
/* 3c44: 2401ffff */ addiu $at,$zero,-1
/* 3c48: 01014026 */ xor $t0,$t0,$at
/* 3c4c: 3c01ffff */ lui $at,0xffff
/* 3c50: 3108ff00 */ andi $t0,$t0,0xff00
/* 3c54: 342100ff */ ori $at,$at,0xff
/* 3c58: 01284825 */ or $t1,$t1,$t0
/* 3c5c: 0361d824 */ and $k1,$k1,$at
/* 3c60: 0369d825 */ or $k1,$k1,$t1
/* 3c64: acbb0118 */ sw $k1,0x118($a1)
/* 3c68: 3c1ba430 */ lui $k1,0xa430
.L00003c6c:
/* 3c6c: 8f7b000c */ lw $k1,0xc($k1)
/* 3c70: 1360000b */ beqz $k1,.L00003ca0
/* 3c74: 00000000 */ nop
/* 3c78: 3c1a8006 */ lui $k0,%hi(__osGlobalIntMask)
/* 3c7c: 275acf70 */ addiu $k0,$k0,%lo(__osGlobalIntMask)
/* 3c80: 8f5a0000 */ lw $k0,0x0($k0)
/* 3c84: 8ca80128 */ lw $t0,0x128($a1)
/* 3c88: 2401ffff */ addiu $at,$zero,-1
/* 3c8c: 001ad402 */ srl $k0,$k0,0x10
/* 3c90: 0341d026 */ xor $k0,$k0,$at
/* 3c94: 335a003f */ andi $k0,$k0,0x3f
/* 3c98: 0348d024 */ and $k0,$k0,$t0
/* 3c9c: 037ad825 */ or $k1,$k1,$k0
.L00003ca0:
/* 3ca0: 10800003 */ beqz $a0,.L00003cb0
/* 3ca4: acbb0128 */ sw $k1,0x128($a1)
/* 3ca8: 0c000f2e */ jal __osEnqueueThread
/* 3cac: 00000000 */ nop
.L00003cb0:
/* 3cb0: 08000f44 */ j .L00003d10
/* 3cb4: 00000000 */ nop
);
GLOBAL_ASM(
glabel __osEnqueueThread
/* 3cb8: 8c980000 */ lw $t8,0x0($a0)
/* 3cbc: 8caf0004 */ lw $t7,0x4($a1)
/* 3cc0: 0080c825 */ or $t9,$a0,$zero
/* 3cc4: 8f0e0004 */ lw $t6,0x4($t8)
/* 3cc8: 01cf082a */ slt $at,$t6,$t7
/* 3ccc: 54200008 */ bnezl $at,.L00003cf0
/* 3cd0: 8f380000 */ lw $t8,0x0($t9)
/* 3cd4: 0300c825 */ or $t9,$t8,$zero
.L00003cd8:
/* 3cd8: 8f180000 */ lw $t8,0x0($t8)
/* 3cdc: 8f0e0004 */ lw $t6,0x4($t8)
/* 3ce0: 01cf082a */ slt $at,$t6,$t7
/* 3ce4: 5020fffc */ beqzl $at,.L00003cd8
/* 3ce8: 0300c825 */ or $t9,$t8,$zero
/* 3cec: 8f380000 */ lw $t8,0x0($t9)
.L00003cf0:
/* 3cf0: acb80000 */ sw $t8,0x0($a1)
/* 3cf4: af250000 */ sw $a1,0x0($t9)
/* 3cf8: 03e00008 */ jr $ra
/* 3cfc: aca40008 */ sw $a0,0x8($a1)
);
GLOBAL_ASM(
glabel __osPopThread
/* 3d00: 8c820000 */ lw $v0,0x0($a0)
/* 3d04: 8c590000 */ lw $t9,0x0($v0)
/* 3d08: 03e00008 */ jr $ra
/* 3d0c: ac990000 */ sw $t9,0x0($a0)
);
GLOBAL_ASM(
glabel __osDispatchThread
.L00003d10:
/* 3d10: 3c048006 */ lui $a0,%hi(__osRunQueue)
/* 3d14: 0c000f40 */ jal __osPopThread
/* 3d18: 24840938 */ addiu $a0,$a0,%lo(__osRunQueue)
/* 3d1c: 3c018006 */ lui $at,%hi(__osRunningThread)
/* 3d20: ac220940 */ sw $v0,%lo(__osRunningThread)($at)
/* 3d24: 24080004 */ addiu $t0,$zero,0x4
/* 3d28: a4480010 */ sh $t0,0x10($v0)
/* 3d2c: 0040d025 */ or $k0,$v0,$zero
/* 3d30: 3c088006 */ lui $t0,%hi(__osGlobalIntMask)
/* 3d34: 8f5b0118 */ lw $k1,0x118($k0)
/* 3d38: 2508cf70 */ addiu $t0,$t0,%lo(__osGlobalIntMask)
/* 3d3c: 8d080000 */ lw $t0,0x0($t0)
/* 3d40: 3c01ffff */ lui $at,0xffff
/* 3d44: 3369ff00 */ andi $t1,$k1,0xff00
/* 3d48: 342100ff */ ori $at,$at,0xff
/* 3d4c: 3108ff00 */ andi $t0,$t0,0xff00
/* 3d50: 01284824 */ and $t1,$t1,$t0
/* 3d54: 0361d824 */ and $k1,$k1,$at
/* 3d58: 0369d825 */ or $k1,$k1,$t1
/* 3d5c: 409b6000 */ mtc0 $k1,$12
/* 3d60: df5b0108 */ ld $k1,0x108($k0)
/* 3d64: df410020 */ ld $at,0x20($k0)
/* 3d68: df420028 */ ld $v0,0x28($k0)
/* 3d6c: 03600013 */ mtlo $k1
/* 3d70: df5b0110 */ ld $k1,0x110($k0)
/* 3d74: df430030 */ ld $v1,0x30($k0)
/* 3d78: df440038 */ ld $a0,0x38($k0)
/* 3d7c: df450040 */ ld $a1,0x40($k0)
/* 3d80: df460048 */ ld $a2,0x48($k0)
/* 3d84: df470050 */ ld $a3,0x50($k0)
/* 3d88: df480058 */ ld $t0,0x58($k0)
/* 3d8c: df490060 */ ld $t1,0x60($k0)
/* 3d90: df4a0068 */ ld $t2,0x68($k0)
/* 3d94: df4b0070 */ ld $t3,0x70($k0)
/* 3d98: df4c0078 */ ld $t4,0x78($k0)
/* 3d9c: df4d0080 */ ld $t5,0x80($k0)
/* 3da0: df4e0088 */ ld $t6,0x88($k0)
/* 3da4: df4f0090 */ ld $t7,0x90($k0)
/* 3da8: df500098 */ ld $s0,0x98($k0)
/* 3dac: df5100a0 */ ld $s1,0xa0($k0)
/* 3db0: df5200a8 */ ld $s2,0xa8($k0)
/* 3db4: df5300b0 */ ld $s3,0xb0($k0)
/* 3db8: df5400b8 */ ld $s4,0xb8($k0)
/* 3dbc: df5500c0 */ ld $s5,0xc0($k0)
/* 3dc0: df5600c8 */ ld $s6,0xc8($k0)
/* 3dc4: df5700d0 */ ld $s7,0xd0($k0)
/* 3dc8: df5800d8 */ ld $t8,0xd8($k0)
/* 3dcc: df5900e0 */ ld $t9,0xe0($k0)
/* 3dd0: df5c00e8 */ ld $gp,0xe8($k0)
/* 3dd4: 03600011 */ mthi $k1
/* 3dd8: df5d00f0 */ ld $sp,0xf0($k0)
/* 3ddc: df5e00f8 */ ld $s8,0xf8($k0)
/* 3de0: df5f0100 */ ld $ra,0x100($k0)
/* 3de4: 8f5b011c */ lw $k1,0x11c($k0)
/* 3de8: 409b7000 */ mtc0 $k1,$14
/* 3dec: 8f5b0018 */ lw $k1,0x18($k0)
/* 3df0: 13600023 */ beqz $k1,.L00003e80
/* 3df4: 00000000 */ nop
/* 3df8: 8f5b012c */ lw $k1,0x12c($k0)
/* 3dfc: 44dbf800 */ ctc1 $k1,$31
/* 3e00: d7400130 */ ldc1 $f0,0x130($k0)
/* 3e04: d7410138 */ ldc1 $f1,0x138($k0)
/* 3e08: d7420140 */ ldc1 $f2,0x140($k0)
/* 3e0c: d7430148 */ ldc1 $f3,0x148($k0)
/* 3e10: d7440150 */ ldc1 $f4,0x150($k0)
/* 3e14: d7450158 */ ldc1 $f5,0x158($k0)
/* 3e18: d7460160 */ ldc1 $f6,0x160($k0)
/* 3e1c: d7470168 */ ldc1 $f7,0x168($k0)
/* 3e20: d7480170 */ ldc1 $f8,0x170($k0)
/* 3e24: d7490178 */ ldc1 $f9,0x178($k0)
/* 3e28: d74a0180 */ ldc1 $f10,0x180($k0)
/* 3e2c: d74b0188 */ ldc1 $f11,0x188($k0)
/* 3e30: d74c0190 */ ldc1 $f12,0x190($k0)
/* 3e34: d74d0198 */ ldc1 $f13,0x198($k0)
/* 3e38: d74e01a0 */ ldc1 $f14,0x1a0($k0)
/* 3e3c: d74f01a8 */ ldc1 $f15,0x1a8($k0)
/* 3e40: d75001b0 */ ldc1 $f16,0x1b0($k0)
/* 3e44: d75101b8 */ ldc1 $f17,0x1b8($k0)
/* 3e48: d75201c0 */ ldc1 $f18,0x1c0($k0)
/* 3e4c: d75301c8 */ ldc1 $f19,0x1c8($k0)
/* 3e50: d75401d0 */ ldc1 $f20,0x1d0($k0)
/* 3e54: d75501d8 */ ldc1 $f21,0x1d8($k0)
/* 3e58: d75601e0 */ ldc1 $f22,0x1e0($k0)
/* 3e5c: d75701e8 */ ldc1 $f23,0x1e8($k0)
/* 3e60: d75801f0 */ ldc1 $f24,0x1f0($k0)
/* 3e64: d75901f8 */ ldc1 $f25,0x1f8($k0)
/* 3e68: d75a0200 */ ldc1 $f26,0x200($k0)
/* 3e6c: d75b0208 */ ldc1 $f27,0x208($k0)
/* 3e70: d75c0210 */ ldc1 $f28,0x210($k0)
/* 3e74: d75d0218 */ ldc1 $f29,0x218($k0)
/* 3e78: d75e0220 */ ldc1 $f30,0x220($k0)
/* 3e7c: d75f0228 */ ldc1 $f31,0x228($k0)
.L00003e80:
/* 3e80: 8f5b0128 */ lw $k1,0x128($k0)
/* 3e84: 3c1a8006 */ lui $k0,%hi(__osGlobalIntMask)
/* 3e88: 275acf70 */ addiu $k0,$k0,%lo(__osGlobalIntMask)
/* 3e8c: 8f5a0000 */ lw $k0,0x0($k0)
/* 3e90: 001ad402 */ srl $k0,$k0,0x10
/* 3e94: 037ad824 */ and $k1,$k1,$k0
/* 3e98: 001bd840 */ sll $k1,$k1,0x1
/* 3e9c: 3c1a7006 */ lui $k0,%hi(var70059e30)
/* 3ea0: 275a9e30 */ addiu $k0,$k0,%lo(var70059e30)
/* 3ea4: 037ad821 */ addu $k1,$k1,$k0
/* 3ea8: 977b0000 */ lhu $k1,0x0($k1)
/* 3eac: 3c1aa430 */ lui $k0,0xa430
/* 3eb0: 275a000c */ addiu $k0,$k0,0xc
/* 3eb4: af5b0000 */ sw $k1,0x0($k0)
/* 3eb8: 00000000 */ nop
/* 3ebc: 00000000 */ nop
/* 3ec0: 00000000 */ nop
/* 3ec4: 00000000 */ nop
/* 3ec8: 42000018 */ eret
);
GLOBAL_ASM(
glabel __osCleanupThread
/* 3ecc: 0c012894 */ jal osDestroyThread
/* 3ed0: 00002025 */ or $a0,$zero,$zero
/* 3ed4: 00000000 */ nop
/* 3ed8: 00000000 */ nop
/* 3edc: 00000000 */ nop
);
+757
View File
@@ -0,0 +1,757 @@
#include "macros.inc"
.set noat
.set noreorder
.set gp=64
.data
glabel __osHwIntTable
.word 0x0, 0x0, 0x0, 0x0, 0x0
.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 COUNTER
.byte COUNTER
.byte COUNTER
.byte COUNTER
.byte COUNTER
.byte COUNTER
.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 .L00003a3c
.word .L000039c8
.word .L000039a8
.word .L0000380c
.word .L000037c8
.word .L0000394c
.word .L00003790
.word .L0000379c
.word .L000037a8
.text
glabel __osExceptionPreamble
lui $k0, %hi(__osException)
addiu $k0, $k0, %lo(__osException)
jr $k0
nop
glabel __osException
lui $k0, %hi(__osThreadSave)
addiu $k0, $k0, %lo(__osThreadSave)
sd $at, 0x20($k0)
mfc0 $k1, $12
sw $k1, 0x118($k0)
addiu $at, $zero, -4
and $k1, $k1, $at
mtc0 $k1, $12
sd $t0, 0x58($k0)
sd $t1, 0x60($k0)
sd $t2, 0x68($k0)
sw $zero, 0x18($k0)
mfc0 $t0, $13
move $t0, $k0
lui $k0, %hi(__osRunningThread)
lw $k0, %lo(__osRunningThread)($k0)
ld $t1, 0x20($t0)
sd $t1, 0x20($k0)
ld $t1, 0x118($t0)
sd $t1, 0x118($k0)
ld $t1, 0x58($t0)
sd $t1, 0x58($k0)
ld $t1, 0x60($t0)
sd $t1, 0x60($k0)
ld $t1, 0x68($t0)
sd $t1, 0x68($k0)
lw $k1, 0x118($k0)
mflo $t0
sd $t0, 0x108($k0)
mfhi $t0
andi $t1, $k1, 0xff00
sd $v0, 0x28($k0)
sd $v1, 0x30($k0)
sd $a0, 0x38($k0)
sd $a1, 0x40($k0)
sd $a2, 0x48($k0)
sd $a3, 0x50($k0)
sd $t3, 0x70($k0)
sd $t4, 0x78($k0)
sd $t5, 0x80($k0)
sd $t6, 0x88($k0)
sd $t7, 0x90($k0)
sd $s0, 0x98($k0)
sd $s1, 0xa0($k0)
sd $s2, 0xa8($k0)
sd $s3, 0xb0($k0)
sd $s4, 0xb8($k0)
sd $s5, 0xc0($k0)
sd $s6, 0xc8($k0)
sd $s7, 0xd0($k0)
sd $t8, 0xd8($k0)
sd $t9, 0xe0($k0)
sd $gp, 0xe8($k0)
sd $sp, 0xf0($k0)
sd $s8, 0xf8($k0)
sd $ra, 0x100($k0)
beqz $t1, .L00003628
sd $t0, 0x110($k0)
lui $t0, %hi(__osGlobalIntMask)
addiu $t0, $t0, %lo(__osGlobalIntMask)
lw $t0, 0x0($t0)
addiu $at, $zero, -1
xor $t2, $t0, $at
lui $at, 0xffff
andi $t2, $t2, 0xff00
ori $at, $at, 0xff
or $t4, $t1, $t2
and $t3, $k1, $at
andi $t0, $t0, 0xff00
or $t3, $t3, $t4
and $t1, $t1, $t0
and $k1, $k1, $at
sw $t3, 0x118($k0)
or $k1, $k1, $t1
.L00003628:
lui $t1, 0xa430
lw $t1, 0xc($t1)
beqzl $t1, .L00003664
sw $t1, 0x128($k0)
lui $t0, %hi(__osGlobalIntMask)
addiu $t0, $t0, %lo(__osGlobalIntMask)
lw $t0, 0x0($t0)
lw $t4, 0x128($k0)
addiu $at, $zero, -1
srl $t0, $t0, 0x10
xor $t0, $t0, $at
andi $t0, $t0, 0x3f
and $t0, $t0, $t4
or $t1, $t1, $t0
sw $t1, 0x128($k0)
.L00003664:
mfc0 $t0, $14
sw $t0, 0x11c($k0)
lw $t0, 0x18($k0)
beqz $t0, .L00003704
nop
cfc1 $t0, $31
nop
sw $t0, 0x12c($k0)
sdc1 $f0, 0x130($k0)
sdc1 $f1, 0x138($k0)
sdc1 $f2, 0x140($k0)
sdc1 $f3, 0x148($k0)
sdc1 $f4, 0x150($k0)
sdc1 $f5, 0x158($k0)
sdc1 $f6, 0x160($k0)
sdc1 $f7, 0x168($k0)
sdc1 $f8, 0x170($k0)
sdc1 $f9, 0x178($k0)
sdc1 $f10, 0x180($k0)
sdc1 $f11, 0x188($k0)
sdc1 $f12, 0x190($k0)
sdc1 $f13, 0x198($k0)
sdc1 $f14, 0x1a0($k0)
sdc1 $f15, 0x1a8($k0)
sdc1 $f16, 0x1b0($k0)
sdc1 $f17, 0x1b8($k0)
sdc1 $f18, 0x1c0($k0)
sdc1 $f19, 0x1c8($k0)
sdc1 $f20, 0x1d0($k0)
sdc1 $f21, 0x1d8($k0)
sdc1 $f22, 0x1e0($k0)
sdc1 $f23, 0x1e8($k0)
sdc1 $f24, 0x1f0($k0)
sdc1 $f25, 0x1f8($k0)
sdc1 $f26, 0x200($k0)
sdc1 $f27, 0x208($k0)
sdc1 $f28, 0x210($k0)
sdc1 $f29, 0x218($k0)
sdc1 $f30, 0x220($k0)
sdc1 $f31, 0x228($k0)
.L00003704:
mfc0 $t0, $13
sw $t0, 0x120($k0)
addiu $t1, $zero, 0x2
sh $t1, 0x10($k0)
andi $t1, $t0, 0x7c
addiu $t2, $zero, 0x8
beq $t1, $t2, .L000039e8
nop
addiu $t2, $zero, 0xc
beq $t1, $t2, .L000039f8
nop
addiu $t2, $zero, 0x24
beql $t1, $t2, .L00003a04
addiu $t1, $zero, 0x1
addiu $t2, $zero, 0x2c
beq $t1, $t2, .L00003b6c
nop
addiu $t2, $zero, 0x0
bne $t1, $t2, .L00003a88
nop
and $s0, $k1, $t0
.L00003758:
andi $t1, $s0, 0xff00
.L0000375c:
srl $t2, $t1, 0xc
bnez $t2, .L00003770
nop
srl $t2, $t1, 0x8
addi $t2, $t2, 0x10
.L00003770:
lui $at, %hi(__osIntOffTable)
addu $at, $at, $t2
lbu $t2, %lo(__osIntOffTable)($at)
lui $at, %hi(__osIntTable)
addu $at, $at, $t2
lw $t2, %lo(__osIntTable)($at)
jr $t2
nop
.L00003790:
addiu $at, $zero, -8193
b .L00003758
and $s0, $s0, $at
.L0000379c:
addiu $at, $zero, -16385
b .L00003758
and $s0, $s0, $at
.L000037a8:
mfc0 $t1, $11
mtc0 $t1, $11
jal send_mesg
addiu $a0, $zero, 0x18
lui $at, 0xffff
ori $at, $at, 0x7fff
b .L00003758
and $s0, $s0, $at
.L000037c8:
lui $t1, %hi(__osHwIntTable)
addiu $t1, $t1, %lo(__osHwIntTable)
lw $t2, 0x8($t1)
addiu $at, $zero, -2049
and $s0, $s0, $at
beqz $t2, .L000037fc
addi $t1, $t1, 0x8
jalr $t2
lw $sp, 0x4($t1)
beqz $v0, .L000037fc
nop
b .L00003a3c
nop
.L000037fc:
jal send_mesg
addiu $a0, $zero, 0x10
b .L0000375c
andi $t1, $s0, 0xff00
.L0000380c:
lui $t0, %hi(__osGlobalIntMask)
addiu $t0, $t0, %lo(__osGlobalIntMask)
lw $t0, 0x0($t0)
lui $s1, 0xa430
lw $s1, 0x8($s1)
srl $t0, $t0, 0x10
and $s1, $s1, $t0
andi $t1, $s1, 0x1
beqzl $t1, .L00003880
andi $t1, $s1, 0x8
lui $t4, 0xa404
lw $t4, 0x10($t4)
dli $t1, 0x8008
lui $at, 0xa404
andi $t4, $t4, 0x300
andi $s1, $s1, 0x3e
beqz $t4, .L0000386c
sw $t1, 0x10($at)
jal send_mesg
addiu $a0, $zero, 0x20
beqzl $s1, .L00003944
addiu $at, $zero, -1025
b .L00003880
andi $t1, $s1, 0x8
.L0000386c:
jal send_mesg
addiu $a0, $zero, 0x58
beqzl $s1, .L00003944
addiu $at, $zero, -1025
andi $t1, $s1, 0x8
.L00003880:
beqz $t1, .L000038a0
lui $at, 0xa440
andi $s1, $s1, 0x37
sw $zero, 0x10($at)
jal send_mesg
addiu $a0, $zero, 0x38
beqzl $s1, .L00003944
addiu $at, $zero, -1025
.L000038a0:
andi $t1, $s1, 0x4
beqzl $t1, .L000038d0
andi $t1, $s1, 0x2
addiu $t1, $zero, 0x1
lui $at, 0xa450
andi $s1, $s1, 0x3b
sw $t1, 0xc($at)
jal send_mesg
addiu $a0, $zero, 0x30
beqzl $s1, .L00003944
addiu $at, $zero, -1025
andi $t1, $s1, 0x2
.L000038d0:
beqz $t1, .L000038f0
lui $at, 0xa480
andi $s1, $s1, 0x3d
sw $zero, 0x18($at)
jal send_mesg
addiu $a0, $zero, 0x28
beqzl $s1, .L00003944
addiu $at, $zero, -1025
.L000038f0:
andi $t1, $s1, 0x10
beqzl $t1, .L00003920
andi $t1, $s1, 0x20
addiu $t1, $zero, 0x2
lui $at, 0xa460
andi $s1, $s1, 0x2f
sw $t1, 0x10($at)
jal send_mesg
addiu $a0, $zero, 0x40
beqzl $s1, .L00003944
addiu $at, $zero, -1025
andi $t1, $s1, 0x20
.L00003920:
beqzl $t1, .L00003944
addiu $at, $zero, -1025
addiu $t1, $zero, 0x800
lui $at, 0xa430
andi $s1, $s1, 0x1f
sw $t1, 0x0($at)
jal send_mesg
addiu $a0, $zero, 0x48
addiu $at, $zero, -1025
.L00003944:
b .L00003758
and $s0, $s0, $at
.L0000394c:
lw $k1, 0x118($k0)
addiu $at, $zero, -4097
lui $t1, %hi(_osShutdown)
and $k1, $k1, $at
sw $k1, 0x118($k0)
addiu $t1, $t1, %lo(_osShutdown)
lw $t2, 0x0($t1)
beqz $t2, .L00003978
addiu $at, $zero, -4097
b .L00003a3c
and $s0, $s0, $at
.L00003978:
addiu $t2, $zero, 0x1
sw $t2, 0x0($t1)
jal send_mesg
addiu $a0, $zero, 0x70
lui $t2, %hi(__osRunQueue)
lw $t2, %lo(__osRunQueue)($t2)
addiu $at, $zero, -4097
and $s0, $s0, $at
lw $k1, 0x118($t2)
and $k1, $k1, $at
b .L00003a3c
sw $k1, 0x118($t2)
.L000039a8:
addiu $at, $zero, -513
and $t0, $t0, $at
mtc0 $t0, $13
jal send_mesg
addiu $a0, $zero, 0x8
addiu $at, $zero, -513
b .L00003758
and $s0, $s0, $at
.L000039c8:
addiu $at, $zero, -257
and $t0, $t0, $at
mtc0 $t0, $13
jal send_mesg
addiu $a0, $zero, 0x0
addiu $at, $zero, -257
b .L00003758
and $s0, $s0, $at
.L000039e8:
jal boot00001180
nop
b .L00003a3c
nop
.L000039f8:
j .L00003a88
nop
addiu $t1, $zero, 0x1
.L00003a04:
sh $t1, 0x12($k0)
lw $t1, 0x11c($k0)
addiu $at, $zero, 0x6
lw $t1, 0x0($t1)
srl $t1, $t1, 0x10
andi $t1, $t1, 0xff
beq $t1, $at, .L00003a88
addiu $at, $zero, 0x7
beq $t1, $at, .L00003a88
nop
jal send_mesg
addiu $a0, $zero, 0x50
b .L00003a3c
nop
.L00003a3c:
lui $t2, %hi(__osRunQueue)
lw $t2, %lo(__osRunQueue)($t2)
lw $t1, 0x4($k0)
lw $t3, 0x4($t2)
slt $at, $t1, $t3
beqz $at, .L00003a70
nop
lui $a0, %hi(__osRunQueue)
move $a1, $k0
jal __osEnqueueThread
addiu $a0, $a0, %lo(__osRunQueue)
j .L00003d10
nop
.L00003a70:
lui $t1, %hi(__osRunQueue)
addiu $t1, $t1, %lo(__osRunQueue)
lw $t2, 0x0($t1)
sw $t2, 0x0($k0)
j .L00003d10
sw $k0, 0x0($t1)
.L00003a88:
lui $at, %hi(__osFaultedThread)
sw $k0, %lo(__osFaultedThread)($at)
addiu $t1, $zero, 0x1
sh $t1, 0x10($k0)
addiu $t1, $zero, 0x2
sh $t1, 0x12($k0)
mfc0 $t2, $8
sw $t2, 0x124($k0)
jal send_mesg
addiu $a0, $zero, 0x60
j .L00003d10
nop
glabel send_mesg
lui $t2, %hi(__osEventStateTab)
addiu $t2, $t2, %lo(__osEventStateTab)
addu $t2, $t2, $a0
lw $t1, 0x0($t2)
move $s2, $ra
beqz $t1, .L00003b64
nop
lw $t3, 0x8($t1)
lw $t4, 0x10($t1)
slt $at, $t3, $t4
beqz $at, .L00003b64
nop
lw $t5, 0xc($t1)
addu $t5, $t5, $t3
div $zero, $t5, $t4
bnez $t4, .L00003b00
nop
break 0x7
.L00003b00:
addiu $at, $zero, -1
bne $t4, $at, .L00003b18
lui $at, 0x8000
bne $t5, $at, .L00003b18
nop
break 0x6
.L00003b18:
lw $t4, 0x14($t1)
mfhi $t5
sll $t5, $t5, 0x2
addu $t4, $t4, $t5
lw $t5, 0x4($t2)
addiu $t2, $t3, 0x1
sw $t5, 0x0($t4)
sw $t2, 0x8($t1)
lw $t2, 0x0($t1)
lw $t3, 0x0($t2)
beqz $t3, .L00003b64
nop
jal __osPopThread
move $a0, $t1
move $t2, $v0
lui $a0, %hi(__osRunQueue)
move $a1, $t2
jal __osEnqueueThread
addiu $a0, $a0, %lo(__osRunQueue)
.L00003b64:
jr $s2
nop
.L00003b6c:
lui $at, 0x3000
and $t1, $t0, $at
srl $t1, $t1, 0x1c
addiu $t2, $zero, 0x1
bne $t1, $t2, .L00003a88
nop
lw $k1, 0x118($k0)
lui $at, 0x2000
addiu $t1, $zero, 0x1
or $k1, $k1, $at
sw $t1, 0x18($k0)
b .L00003a70
sw $k1, 0x118($k0)
glabel __osEnqueueAndYield
lui $a1, %hi(__osRunningThread)
lw $a1, %lo(__osRunningThread)($a1)
mfc0 $t0, $12
lw $k1, 0x18($a1)
ori $t0, $t0, 0x2
sw $t0, 0x118($a1)
sd $s0, 0x98($a1)
sd $s1, 0xa0($a1)
sd $s2, 0xa8($a1)
sd $s3, 0xb0($a1)
sd $s4, 0xb8($a1)
sd $s5, 0xc0($a1)
sd $s6, 0xc8($a1)
sd $s7, 0xd0($a1)
sd $gp, 0xe8($a1)
sd $sp, 0xf0($a1)
sd $s8, 0xf8($a1)
sd $ra, 0x100($a1)
beqz $k1, .L00003c28
sw $ra, 0x11c($a1)
cfc1 $k1, $31
sdc1 $f20, 0x1d0($a1)
sdc1 $f21, 0x1d8($a1)
sdc1 $f22, 0x1e0($a1)
sdc1 $f23, 0x1e8($a1)
sdc1 $f24, 0x1f0($a1)
sdc1 $f25, 0x1f8($a1)
sdc1 $f26, 0x200($a1)
sdc1 $f27, 0x208($a1)
sdc1 $f28, 0x210($a1)
sdc1 $f29, 0x218($a1)
sdc1 $f30, 0x220($a1)
sdc1 $f31, 0x228($a1)
sw $k1, 0x12c($a1)
.L00003c28:
lw $k1, 0x118($a1)
andi $t1, $k1, 0xff00
beqzl $t1, .L00003c6c
lui $k1, 0xa430
lui $t0, %hi(__osGlobalIntMask)
addiu $t0, $t0, %lo(__osGlobalIntMask)
lw $t0, 0x0($t0)
addiu $at, $zero, -1
xor $t0, $t0, $at
lui $at, 0xffff
andi $t0, $t0, 0xff00
ori $at, $at, 0xff
or $t1, $t1, $t0
and $k1, $k1, $at
or $k1, $k1, $t1
sw $k1, 0x118($a1)
lui $k1, 0xa430
.L00003c6c:
lw $k1, 0xc($k1)
beqz $k1, .L00003ca0
nop
lui $k0, %hi(__osGlobalIntMask)
addiu $k0, $k0, %lo(__osGlobalIntMask)
lw $k0, 0x0($k0)
lw $t0, 0x128($a1)
addiu $at, $zero, -1
srl $k0, $k0, 0x10
xor $k0, $k0, $at
andi $k0, $k0, 0x3f
and $k0, $k0, $t0
or $k1, $k1, $k0
.L00003ca0:
beqz $a0, .L00003cb0
sw $k1, 0x128($a1)
jal __osEnqueueThread
nop
.L00003cb0:
j .L00003d10
nop
glabel __osEnqueueThread
lw $t8, 0x0($a0)
lw $t7, 0x4($a1)
move $t9, $a0
lw $t6, 0x4($t8)
slt $at, $t6, $t7
bnezl $at, .L00003cf0
lw $t8, 0x0($t9)
move $t9, $t8
.L00003cd8:
lw $t8, 0x0($t8)
lw $t6, 0x4($t8)
slt $at, $t6, $t7
beqzl $at, .L00003cd8
move $t9, $t8
lw $t8, 0x0($t9)
.L00003cf0:
sw $t8, 0x0($a1)
sw $a1, 0x0($t9)
jr $ra
sw $a0, 0x8($a1)
glabel __osPopThread
lw $v0, 0x0($a0)
lw $t9, 0x0($v0)
jr $ra
sw $t9, 0x0($a0)
glabel __osDispatchThread
.L00003d10:
lui $a0, %hi(__osRunQueue)
jal __osPopThread
addiu $a0, $a0, %lo(__osRunQueue)
lui $at, %hi(__osRunningThread)
sw $v0, %lo(__osRunningThread)($at)
addiu $t0, $zero, 0x4
sh $t0, 0x10($v0)
move $k0, $v0
lui $t0, %hi(__osGlobalIntMask)
lw $k1, 0x118($k0)
addiu $t0, $t0, %lo(__osGlobalIntMask)
lw $t0, 0x0($t0)
lui $at, 0xffff
andi $t1, $k1, 0xff00
ori $at, $at, 0xff
andi $t0, $t0, 0xff00
and $t1, $t1, $t0
and $k1, $k1, $at
or $k1, $k1, $t1
mtc0 $k1, $12
ld $k1, 0x108($k0)
ld $at, 0x20($k0)
ld $v0, 0x28($k0)
mtlo $k1
ld $k1, 0x110($k0)
ld $v1, 0x30($k0)
ld $a0, 0x38($k0)
ld $a1, 0x40($k0)
ld $a2, 0x48($k0)
ld $a3, 0x50($k0)
ld $t0, 0x58($k0)
ld $t1, 0x60($k0)
ld $t2, 0x68($k0)
ld $t3, 0x70($k0)
ld $t4, 0x78($k0)
ld $t5, 0x80($k0)
ld $t6, 0x88($k0)
ld $t7, 0x90($k0)
ld $s0, 0x98($k0)
ld $s1, 0xa0($k0)
ld $s2, 0xa8($k0)
ld $s3, 0xb0($k0)
ld $s4, 0xb8($k0)
ld $s5, 0xc0($k0)
ld $s6, 0xc8($k0)
ld $s7, 0xd0($k0)
ld $t8, 0xd8($k0)
ld $t9, 0xe0($k0)
ld $gp, 0xe8($k0)
mthi $k1
ld $sp, 0xf0($k0)
ld $s8, 0xf8($k0)
ld $ra, 0x100($k0)
lw $k1, 0x11c($k0)
mtc0 $k1, $14
lw $k1, 0x18($k0)
beqz $k1, .L00003e80
nop
lw $k1, 0x12c($k0)
ctc1 $k1, $31
ldc1 $f0, 0x130($k0)
ldc1 $f1, 0x138($k0)
ldc1 $f2, 0x140($k0)
ldc1 $f3, 0x148($k0)
ldc1 $f4, 0x150($k0)
ldc1 $f5, 0x158($k0)
ldc1 $f6, 0x160($k0)
ldc1 $f7, 0x168($k0)
ldc1 $f8, 0x170($k0)
ldc1 $f9, 0x178($k0)
ldc1 $f10, 0x180($k0)
ldc1 $f11, 0x188($k0)
ldc1 $f12, 0x190($k0)
ldc1 $f13, 0x198($k0)
ldc1 $f14, 0x1a0($k0)
ldc1 $f15, 0x1a8($k0)
ldc1 $f16, 0x1b0($k0)
ldc1 $f17, 0x1b8($k0)
ldc1 $f18, 0x1c0($k0)
ldc1 $f19, 0x1c8($k0)
ldc1 $f20, 0x1d0($k0)
ldc1 $f21, 0x1d8($k0)
ldc1 $f22, 0x1e0($k0)
ldc1 $f23, 0x1e8($k0)
ldc1 $f24, 0x1f0($k0)
ldc1 $f25, 0x1f8($k0)
ldc1 $f26, 0x200($k0)
ldc1 $f27, 0x208($k0)
ldc1 $f28, 0x210($k0)
ldc1 $f29, 0x218($k0)
ldc1 $f30, 0x220($k0)
ldc1 $f31, 0x228($k0)
.L00003e80:
lw $k1, 0x128($k0)
lui $k0, %hi(__osGlobalIntMask)
addiu $k0, $k0, %lo(__osGlobalIntMask)
lw $k0, 0x0($k0)
srl $k0, $k0, 0x10
and $k1, $k1, $k0
sll $k1, $k1, 0x1
lui $k0, %hi(var70059e30)
addiu $k0, $k0, %lo(var70059e30)
addu $k1, $k1, $k0
lhu $k1, 0x0($k1)
lui $k0, 0xa430
addiu $k0, $k0, 0xc
sw $k1, 0x0($k0)
nop
nop
nop
nop
eret
glabel __osCleanupThread
jal osDestroyThread
move $a0, $zero
+6
View File
@@ -0,0 +1,6 @@
#include <ultra64.h>
#include "constants.h"
#include "data.h"
#include "types.h"
OSThread __osThreadSave;