papermario/asm/nonmatchings/os/code_3f310_len_3c0/guPosition.s
2020-09-23 23:16:13 -04:00

127 lines
6.4 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel guPosition
/* 3F4E8 800640E8 3C018009 */ lui $at, 0x8009
/* 3F4EC 800640EC C4203DC0 */ lwc1 $f0, 0x3dc0($at)
/* 3F4F0 800640F0 44859000 */ mtc1 $a1, $f18
/* 3F4F4 800640F4 27BDFF70 */ addiu $sp, $sp, -0x90
/* 3F4F8 800640F8 F7B40060 */ sdc1 $f20, 0x60($sp)
/* 3F4FC 800640FC 46009502 */ mul.s $f20, $f18, $f0
/* 3F500 80064100 44869000 */ mtc1 $a2, $f18
/* 3F504 80064104 F7BA0078 */ sdc1 $f26, 0x78($sp)
/* 3F508 80064108 F7B80070 */ sdc1 $f24, 0x70($sp)
/* 3F50C 8006410C 46009682 */ mul.s $f26, $f18, $f0
/* 3F510 80064110 C7B800A0 */ lwc1 $f24, 0xa0($sp)
/* 3F514 80064114 AFB10054 */ sw $s1, 0x54($sp)
/* 3F518 80064118 44879000 */ mtc1 $a3, $f18
/* 3F51C 8006411C 00808821 */ addu $s1, $a0, $zero
/* 3F520 80064120 46009482 */ mul.s $f18, $f18, $f0
/* 3F524 80064124 AFBF0058 */ sw $ra, 0x58($sp)
/* 3F528 80064128 AFB00050 */ sw $s0, 0x50($sp)
/* 3F52C 8006412C F7BE0088 */ sdc1 $f30, 0x88($sp)
/* 3F530 80064130 F7BC0080 */ sdc1 $f28, 0x80($sp)
/* 3F534 80064134 F7B60068 */ sdc1 $f22, 0x68($sp)
/* 3F538 80064138 44109000 */ mfc1 $s0, $f18
/* 3F53C 8006413C 00000000 */ nop
/* 3F540 80064140 0C00A85B */ jal sin_rad
/* 3F544 80064144 4600A306 */ mov.s $f12, $f20
/* 3F548 80064148 4600A306 */ mov.s $f12, $f20
/* 3F54C 8006414C 0C00A874 */ jal cos_rad
/* 3F550 80064150 46000786 */ mov.s $f30, $f0
/* 3F554 80064154 4600D306 */ mov.s $f12, $f26
/* 3F558 80064158 0C00A85B */ jal sin_rad
/* 3F55C 8006415C 46000586 */ mov.s $f22, $f0
/* 3F560 80064160 4600D306 */ mov.s $f12, $f26
/* 3F564 80064164 0C00A874 */ jal cos_rad
/* 3F568 80064168 46000506 */ mov.s $f20, $f0
/* 3F56C 8006416C 44906000 */ mtc1 $s0, $f12
/* 3F570 80064170 00000000 */ nop
/* 3F574 80064174 0C00A85B */ jal sin_rad
/* 3F578 80064178 46000706 */ mov.s $f28, $f0
/* 3F57C 8006417C 44906000 */ mtc1 $s0, $f12
/* 3F580 80064180 00000000 */ nop
/* 3F584 80064184 0C00A874 */ jal cos_rad
/* 3F588 80064188 46000686 */ mov.s $f26, $f0
/* 3F58C 8006418C 00000000 */ nop
/* 3F590 80064190 4600E382 */ mul.s $f14, $f28, $f0
/* 3F594 80064194 00000000 */ nop
/* 3F598 80064198 461AE402 */ mul.s $f16, $f28, $f26
/* 3F59C 8006419C 00000000 */ nop
/* 3F5A0 800641A0 4614F102 */ mul.s $f4, $f30, $f20
/* 3F5A4 800641A4 00000000 */ nop
/* 3F5A8 800641A8 461AB082 */ mul.s $f2, $f22, $f26
/* 3F5AC 800641AC 00000000 */ nop
/* 3F5B0 800641B0 4600B182 */ mul.s $f6, $f22, $f0
/* 3F5B4 800641B4 4600A307 */ neg.s $f12, $f20
/* 3F5B8 800641B8 4614B502 */ mul.s $f20, $f22, $f20
/* 3F5BC 800641BC 00000000 */ nop
/* 3F5C0 800641C0 461CF282 */ mul.s $f10, $f30, $f28
/* 3F5C4 800641C4 00000000 */ nop
/* 3F5C8 800641C8 461CB582 */ mul.s $f22, $f22, $f28
/* 3F5CC 800641CC 00000000 */ nop
/* 3F5D0 800641D0 46186302 */ mul.s $f12, $f12, $f24
/* 3F5D4 800641D4 00000000 */ nop
/* 3F5D8 800641D8 46187382 */ mul.s $f14, $f14, $f24
/* 3F5DC 800641DC 00000000 */ nop
/* 3F5E0 800641E0 46188402 */ mul.s $f16, $f16, $f24
/* 3F5E4 800641E4 00000000 */ nop
/* 3F5E8 800641E8 46002202 */ mul.s $f8, $f4, $f0
/* 3F5EC 800641EC 00000000 */ nop
/* 3F5F0 800641F0 461A2102 */ mul.s $f4, $f4, $f26
/* 3F5F4 800641F4 00000000 */ nop
/* 3F5F8 800641F8 46185282 */ mul.s $f10, $f10, $f24
/* 3F5FC 800641FC 00000000 */ nop
/* 3F600 80064200 4618B582 */ mul.s $f22, $f22, $f24
/* 3F604 80064204 46062100 */ add.s $f4, $f4, $f6
/* 3F608 80064208 4600A182 */ mul.s $f6, $f20, $f0
/* 3F60C 8006420C 46024201 */ sub.s $f8, $f8, $f2
/* 3F610 80064210 461AF082 */ mul.s $f2, $f30, $f26
/* 3F614 80064214 00000000 */ nop
/* 3F618 80064218 461AA502 */ mul.s $f20, $f20, $f26
/* 3F61C 8006421C 00000000 */ nop
/* 3F620 80064220 4600F782 */ mul.s $f30, $f30, $f0
/* 3F624 80064224 C7B200A4 */ lwc1 $f18, 0xa4($sp)
/* 3F628 80064228 46184202 */ mul.s $f8, $f8, $f24
/* 3F62C 8006422C E7B20040 */ swc1 $f18, 0x40($sp)
/* 3F630 80064230 C7B200A8 */ lwc1 $f18, 0xa8($sp)
/* 3F634 80064234 27A40010 */ addiu $a0, $sp, 0x10
/* 3F638 80064238 E7B20044 */ swc1 $f18, 0x44($sp)
/* 3F63C 8006423C 46182102 */ mul.s $f4, $f4, $f24
/* 3F640 80064240 C7B200AC */ lwc1 $f18, 0xac($sp)
/* 3F644 80064244 3C013F80 */ lui $at, 0x3f80
/* 3F648 80064248 44810000 */ mtc1 $at, $f0
/* 3F64C 8006424C 46023180 */ add.s $f6, $f6, $f2
/* 3F650 80064250 02202821 */ addu $a1, $s1, $zero
/* 3F654 80064254 AFA0001C */ sw $zero, 0x1c($sp)
/* 3F658 80064258 AFA0002C */ sw $zero, 0x2c($sp)
/* 3F65C 8006425C 46183182 */ mul.s $f6, $f6, $f24
/* 3F660 80064260 AFA0003C */ sw $zero, 0x3c($sp)
/* 3F664 80064264 E7B20048 */ swc1 $f18, 0x48($sp)
/* 3F668 80064268 461EA501 */ sub.s $f20, $f20, $f30
/* 3F66C 8006426C E7AC0018 */ swc1 $f12, 0x18($sp)
/* 3F670 80064270 E7AE0010 */ swc1 $f14, 0x10($sp)
/* 3F674 80064274 E7B00014 */ swc1 $f16, 0x14($sp)
/* 3F678 80064278 4618A502 */ mul.s $f20, $f20, $f24
/* 3F67C 8006427C E7AA0028 */ swc1 $f10, 0x28($sp)
/* 3F680 80064280 E7B60038 */ swc1 $f22, 0x38($sp)
/* 3F684 80064284 E7A0004C */ swc1 $f0, 0x4c($sp)
/* 3F688 80064288 E7A80020 */ swc1 $f8, 0x20($sp)
/* 3F68C 8006428C E7A40024 */ swc1 $f4, 0x24($sp)
/* 3F690 80064290 E7A60030 */ swc1 $f6, 0x30($sp)
/* 3F694 80064294 0C019D40 */ jal guMtxF2L
/* 3F698 80064298 E7B40034 */ swc1 $f20, 0x34($sp)
/* 3F69C 8006429C 8FBF0058 */ lw $ra, 0x58($sp)
/* 3F6A0 800642A0 8FB10054 */ lw $s1, 0x54($sp)
/* 3F6A4 800642A4 8FB00050 */ lw $s0, 0x50($sp)
/* 3F6A8 800642A8 D7BE0088 */ ldc1 $f30, 0x88($sp)
/* 3F6AC 800642AC D7BC0080 */ ldc1 $f28, 0x80($sp)
/* 3F6B0 800642B0 D7BA0078 */ ldc1 $f26, 0x78($sp)
/* 3F6B4 800642B4 D7B80070 */ ldc1 $f24, 0x70($sp)
/* 3F6B8 800642B8 D7B60068 */ ldc1 $f22, 0x68($sp)
/* 3F6BC 800642BC D7B40060 */ ldc1 $f20, 0x60($sp)
/* 3F6C0 800642C0 03E00008 */ jr $ra
/* 3F6C4 800642C4 27BD0090 */ addiu $sp, $sp, 0x90
/* 3F6C8 800642C8 00000000 */ nop
/* 3F6CC 800642CC 00000000 */ nop