# assembler directives .set noat # allow manual use of $at .set noreorder # don't insert nops after branches .set gp=64 .include "macros.inc" .section .text, "ax" glabel guMtxF2L /* 010B10 7000FF10 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 010B14 7000FF14 44810000 */ mtc1 $at, $f0 /* 010B18 7000FF18 00A01025 */ move $v0, $a1 /* 010B1C 7000FF1C 24A30020 */ addiu $v1, $a1, 0x20 /* 010B20 7000FF20 00003025 */ move $a2, $zero /* 010B24 7000FF24 00803825 */ move $a3, $a0 /* 010B28 7000FF28 240C0004 */ li $t4, 4 /* 010B2C 7000FF2C 240B0002 */ li $t3, 2 /* 010B30 7000FF30 3C0AFFFF */ lui $t2, 0xffff .L7000FF34: /* 010B34 7000FF34 00002025 */ move $a0, $zero /* 010B38 7000FF38 00E04025 */ move $t0, $a3 /* 010B3C 7000FF3C C50E0004 */ lwc1 $f14, 4($t0) /* 010B40 7000FF40 24840001 */ addiu $a0, $a0, 1 /* 010B44 7000FF44 C5120000 */ lwc1 $f18, ($t0) /* 010B48 7000FF48 46007402 */ mul.s $f16, $f14, $f0 /* 010B4C 7000FF4C 108B0019 */ beq $a0, $t3, .L7000FFB4 /* 010B50 7000FF50 00000000 */ nop .L7000FF54: /* 010B54 7000FF54 46009382 */ mul.s $f14, $f18, $f0 /* 010B58 7000FF58 24840001 */ addiu $a0, $a0, 1 /* 010B5C 7000FF5C 24420004 */ addiu $v0, $v0, 4 /* 010B60 7000FF60 24630004 */ addiu $v1, $v1, 4 /* 010B64 7000FF64 25080008 */ addiu $t0, $t0, 8 /* 010B68 7000FF68 4600830D */ trunc.w.s $f12, $f16 /* 010B6C 7000FF6C 4600738D */ trunc.w.s $f14, $f14 /* 010B70 7000FF70 44096000 */ mfc1 $t1, $f12 /* 010B74 7000FF74 44057000 */ mfc1 $a1, $f14 /* 010B78 7000FF78 0009CC03 */ sra $t9, $t1, 0x10 /* 010B7C 7000FF7C 332DFFFF */ andi $t5, $t9, 0xffff /* 010B80 7000FF80 00AAC024 */ and $t8, $a1, $t2 /* 010B84 7000FF84 030D7025 */ or $t6, $t8, $t5 /* 010B88 7000FF88 00057C00 */ sll $t7, $a1, 0x10 /* 010B8C 7000FF8C 01EAC824 */ and $t9, $t7, $t2 /* 010B90 7000FF90 AC4EFFFC */ sw $t6, -4($v0) /* 010B94 7000FF94 3138FFFF */ andi $t8, $t1, 0xffff /* 010B98 7000FF98 03386825 */ or $t5, $t9, $t8 /* 010B9C 7000FF9C AC6DFFFC */ sw $t5, -4($v1) /* 010BA0 7000FFA0 C50E0004 */ lwc1 $f14, 4($t0) /* 010BA4 7000FFA4 C5120000 */ lwc1 $f18, ($t0) /* 010BA8 7000FFA8 46007402 */ mul.s $f16, $f14, $f0 /* 010BAC 7000FFAC 148BFFE9 */ bne $a0, $t3, .L7000FF54 /* 010BB0 7000FFB0 00000000 */ nop .L7000FFB4: /* 010BB4 7000FFB4 46009382 */ mul.s $f14, $f18, $f0 /* 010BB8 7000FFB8 25080008 */ addiu $t0, $t0, 8 /* 010BBC 7000FFBC 24420004 */ addiu $v0, $v0, 4 /* 010BC0 7000FFC0 24630004 */ addiu $v1, $v1, 4 /* 010BC4 7000FFC4 4600830D */ trunc.w.s $f12, $f16 /* 010BC8 7000FFC8 4600738D */ trunc.w.s $f14, $f14 /* 010BCC 7000FFCC 44096000 */ mfc1 $t1, $f12 /* 010BD0 7000FFD0 44057000 */ mfc1 $a1, $f14 /* 010BD4 7000FFD4 0009CC03 */ sra $t9, $t1, 0x10 /* 010BD8 7000FFD8 332DFFFF */ andi $t5, $t9, 0xffff /* 010BDC 7000FFDC 00AAC024 */ and $t8, $a1, $t2 /* 010BE0 7000FFE0 030D7025 */ or $t6, $t8, $t5 /* 010BE4 7000FFE4 00057C00 */ sll $t7, $a1, 0x10 /* 010BE8 7000FFE8 01EAC824 */ and $t9, $t7, $t2 /* 010BEC 7000FFEC 3138FFFF */ andi $t8, $t1, 0xffff /* 010BF0 7000FFF0 AC4EFFFC */ sw $t6, -4($v0) /* 010BF4 7000FFF4 03386825 */ or $t5, $t9, $t8 /* 010BF8 7000FFF8 AC6DFFFC */ sw $t5, -4($v1) /* 010BFC 7000FFFC 24C60001 */ addiu $a2, $a2, 1 /* 010C00 70010000 14CCFFCC */ bne $a2, $t4, .L7000FF34 /* 010C04 70010004 24E70010 */ addiu $a3, $a3, 0x10 /* 010C08 70010008 03E00008 */ jr $ra /* 010C0C 7001000C 00000000 */ nop .section .rodata glabel F64_80029430 .word 0x3f91df46, 0x9d353918 #0.017453292222222222 .word 0,0 .section .text glabel guMtxIdentF /* 010C10 70010010 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 010C14 70010014 00801825 */ move $v1, $a0 /* 010C18 70010018 44810000 */ mtc1 $at, $f0 /* 010C1C 7001001C 44801000 */ mtc1 $zero, $f2 /* 010C20 70010020 24040001 */ li $a0, 1 /* 010C24 70010024 00001025 */ move $v0, $zero /* 010C28 70010028 24070004 */ li $a3, 4 /* 010C2C 7001002C 24060003 */ li $a2, 3 /* 010C30 70010030 24050002 */ li $a1, 2 .L70010034: /* 010C34 70010034 54400004 */ bnezl $v0, .L70010048 /* 010C38 70010038 E4620000 */ swc1 $f2, ($v1) /* 010C3C 7001003C 10000002 */ b .L70010048 /* 010C40 70010040 E4600000 */ swc1 $f0, ($v1) /* 010C44 70010044 E4620000 */ swc1 $f2, ($v1) .L70010048: /* 010C48 70010048 54440004 */ bnel $v0, $a0, .L7001005C /* 010C4C 7001004C E4620004 */ swc1 $f2, 4($v1) /* 010C50 70010050 10000002 */ b .L7001005C /* 010C54 70010054 E4600004 */ swc1 $f0, 4($v1) /* 010C58 70010058 E4620004 */ swc1 $f2, 4($v1) .L7001005C: /* 010C5C 7001005C 54450004 */ bnel $v0, $a1, .L70010070 /* 010C60 70010060 E4620008 */ swc1 $f2, 8($v1) /* 010C64 70010064 10000002 */ b .L70010070 /* 010C68 70010068 E4600008 */ swc1 $f0, 8($v1) /* 010C6C 7001006C E4620008 */ swc1 $f2, 8($v1) .L70010070: /* 010C70 70010070 54460004 */ bnel $v0, $a2, .L70010084 /* 010C74 70010074 E462000C */ swc1 $f2, 0xc($v1) /* 010C78 70010078 10000002 */ b .L70010084 /* 010C7C 7001007C E460000C */ swc1 $f0, 0xc($v1) /* 010C80 70010080 E462000C */ swc1 $f2, 0xc($v1) .L70010084: /* 010C84 70010084 24420001 */ addiu $v0, $v0, 1 /* 010C88 70010088 1447FFEA */ bne $v0, $a3, .L70010034 /* 010C8C 7001008C 24630010 */ addiu $v1, $v1, 0x10 /* 010C90 70010090 03E00008 */ jr $ra /* 010C94 70010094 00000000 */ nop glabel guMtxIdent /* 010C98 70010098 27BDFFA8 */ addiu $sp, $sp, -0x58 /* 010C9C 7001009C AFBF0014 */ sw $ra, 0x14($sp) /* 010CA0 700100A0 AFA40058 */ sw $a0, 0x58($sp) /* 010CA4 700100A4 0C004004 */ jal guMtxIdentF /* 010CA8 700100A8 27A40018 */ addiu $a0, $sp, 0x18 /* 010CAC 700100AC 27A40018 */ addiu $a0, $sp, 0x18 /* 010CB0 700100B0 0C003FC4 */ jal guMtxF2L /* 010CB4 700100B4 8FA50058 */ lw $a1, 0x58($sp) /* 010CB8 700100B8 8FBF0014 */ lw $ra, 0x14($sp) /* 010CBC 700100BC 27BD0058 */ addiu $sp, $sp, 0x58 /* 010CC0 700100C0 03E00008 */ jr $ra /* 010CC4 700100C4 00000000 */ nop glabel guMtxL2F /* 010CC8 700100C8 3C014780 */ li $at, 0x47800000 # 65536.000000 /* 010CCC 700100CC 44810000 */ mtc1 $at, $f0 /* 010CD0 700100D0 27BDFFF0 */ addiu $sp, $sp, -0x10 /* 010CD4 700100D4 00A01025 */ move $v0, $a1 /* 010CD8 700100D8 24A30020 */ addiu $v1, $a1, 0x20 /* 010CDC 700100DC 00003025 */ move $a2, $zero /* 010CE0 700100E0 00804025 */ move $t0, $a0 /* 010CE4 700100E4 240C0004 */ li $t4, 4 /* 010CE8 700100E8 240B0002 */ li $t3, 2 /* 010CEC 700100EC 3C0AFFFF */ lui $t2, 0xffff .L700100F0: /* 010CF0 700100F0 00002025 */ move $a0, $zero /* 010CF4 700100F4 01004825 */ move $t1, $t0 .L700100F8: /* 010CF8 700100F8 8C6E0000 */ lw $t6, ($v1) /* 010CFC 700100FC 8C590000 */ lw $t9, ($v0) /* 010D00 70010100 24840001 */ addiu $a0, $a0, 1 /* 010D04 70010104 000E7C02 */ srl $t7, $t6, 0x10 /* 010D08 70010108 31F8FFFF */ andi $t8, $t7, 0xffff /* 010D0C 7001010C 032A6824 */ and $t5, $t9, $t2 /* 010D10 70010110 030D7025 */ or $t6, $t8, $t5 /* 010D14 70010114 AFAE0004 */ sw $t6, 4($sp) /* 010D18 70010118 8C6F0000 */ lw $t7, ($v1) /* 010D1C 7001011C 8C580000 */ lw $t8, ($v0) /* 010D20 70010120 8FA50004 */ lw $a1, 4($sp) /* 010D24 70010124 31F9FFFF */ andi $t9, $t7, 0xffff /* 010D28 70010128 00186C00 */ sll $t5, $t8, 0x10 /* 010D2C 7001012C 44859000 */ mtc1 $a1, $f18 /* 010D30 70010130 01AA7024 */ and $t6, $t5, $t2 /* 010D34 70010134 032E3825 */ or $a3, $t9, $t6 /* 010D38 70010138 468094A0 */ cvt.s.w $f18, $f18 /* 010D3C 7001013C 44878000 */ mtc1 $a3, $f16 /* 010D40 70010140 AFA70000 */ sw $a3, ($sp) /* 010D44 70010144 24420004 */ addiu $v0, $v0, 4 /* 010D48 70010148 24630004 */ addiu $v1, $v1, 4 /* 010D4C 7001014C 46808420 */ cvt.s.w $f16, $f16 /* 010D50 70010150 25290008 */ addiu $t1, $t1, 8 /* 010D54 70010154 46009483 */ div.s $f18, $f18, $f0 /* 010D58 70010158 46008403 */ div.s $f16, $f16, $f0 /* 010D5C 7001015C E532FFF8 */ swc1 $f18, -8($t1) /* 010D60 70010160 148BFFE5 */ bne $a0, $t3, .L700100F8 /* 010D64 70010164 E530FFFC */ swc1 $f16, -4($t1) /* 010D68 70010168 24C60001 */ addiu $a2, $a2, 1 /* 010D6C 7001016C 14CCFFE0 */ bne $a2, $t4, .L700100F0 /* 010D70 70010170 25080010 */ addiu $t0, $t0, 0x10 /* 010D74 70010174 03E00008 */ jr $ra /* 010D78 70010178 27BD0010 */ addiu $sp, $sp, 0x10