papermario/asm/nonmatchings/code_ad90_len_2880/func_80030210.s
2021-01-11 21:40:52 +09:00

87 lines
4.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80030210
/* B610 80030210 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B614 80030214 AFB00010 */ sw $s0, 0x10($sp)
/* B618 80030218 0080802D */ daddu $s0, $a0, $zero
/* B61C 8003021C AFBF0018 */ sw $ra, 0x18($sp)
/* B620 80030220 AFB10014 */ sw $s1, 0x14($sp)
/* B624 80030224 F7B60028 */ sdc1 $f22, 0x28($sp)
/* B628 80030228 F7B40020 */ sdc1 $f20, 0x20($sp)
/* B62C 8003022C C6000054 */ lwc1 $f0, 0x54($s0)
/* B630 80030230 C6040048 */ lwc1 $f4, 0x48($s0)
/* B634 80030234 46040001 */ sub.s $f0, $f0, $f4
/* B638 80030238 4485B000 */ mtc1 $a1, $f22
/* B63C 8003023C 00000000 */ nop
/* B640 80030240 46160002 */ mul.s $f0, $f0, $f22
/* B644 80030244 00000000 */ nop
/* B648 80030248 44863000 */ mtc1 $a2, $f6
/* B64C 8003024C 00000000 */ nop
/* B650 80030250 46003087 */ neg.s $f2, $f6
/* B654 80030254 4602003C */ c.lt.s $f0, $f2
/* B658 80030258 00000000 */ nop
/* B65C 8003025C 45000002 */ bc1f .L80030268
/* B660 80030260 00E0882D */ daddu $s1, $a3, $zero
/* B664 80030264 46001006 */ mov.s $f0, $f2
.L80030268:
/* B668 80030268 4600303C */ c.lt.s $f6, $f0
/* B66C 8003026C 00000000 */ nop
/* B670 80030270 45030001 */ bc1tl .L80030278
/* B674 80030274 46003006 */ mov.s $f0, $f6
.L80030278:
/* B678 80030278 C6020074 */ lwc1 $f2, 0x74($s0)
/* B67C 8003027C 46002100 */ add.s $f4, $f4, $f0
/* B680 80030280 3C0140C9 */ lui $at, 0x40c9
/* B684 80030284 34210FD0 */ ori $at, $at, 0xfd0
/* B688 80030288 44810000 */ mtc1 $at, $f0
/* B68C 8003028C 00000000 */ nop
/* B690 80030290 46001082 */ mul.s $f2, $f2, $f0
/* B694 80030294 00000000 */ nop
/* B698 80030298 3C0143B4 */ lui $at, 0x43b4
/* B69C 8003029C 44810000 */ mtc1 $at, $f0
/* B6A0 800302A0 E604003C */ swc1 $f4, 0x3c($s0)
/* B6A4 800302A4 E6040048 */ swc1 $f4, 0x48($s0)
/* B6A8 800302A8 46001503 */ div.s $f20, $f2, $f0
/* B6AC 800302AC 0C00A874 */ jal cos_rad
/* B6B0 800302B0 4600A306 */ mov.s $f12, $f20
/* B6B4 800302B4 C6020078 */ lwc1 $f2, 0x78($s0)
/* B6B8 800302B8 46001082 */ mul.s $f2, $f2, $f0
/* B6BC 800302BC 00000000 */ nop
/* B6C0 800302C0 C604005C */ lwc1 $f4, 0x5c($s0)
/* B6C4 800302C4 C6060050 */ lwc1 $f6, 0x50($s0)
/* B6C8 800302C8 46062101 */ sub.s $f4, $f4, $f6
/* B6CC 800302CC 46162102 */ mul.s $f4, $f4, $f22
/* B6D0 800302D0 00000000 */ nop
/* B6D4 800302D4 46043180 */ add.s $f6, $f6, $f4
/* B6D8 800302D8 46023080 */ add.s $f2, $f6, $f2
/* B6DC 800302DC 00111400 */ sll $v0, $s1, 0x10
/* B6E0 800302E0 E6060050 */ swc1 $f6, 0x50($s0)
/* B6E4 800302E4 14400012 */ bnez $v0, .L80030330
/* B6E8 800302E8 E6020044 */ swc1 $f2, 0x44($s0)
/* B6EC 800302EC 0C00A85B */ jal sin_rad
/* B6F0 800302F0 4600A306 */ mov.s $f12, $f20
/* B6F4 800302F4 C6040058 */ lwc1 $f4, 0x58($s0)
/* B6F8 800302F8 C606004C */ lwc1 $f6, 0x4c($s0)
/* B6FC 800302FC 46062101 */ sub.s $f4, $f4, $f6
/* B700 80030300 3C013E00 */ lui $at, 0x3e00
/* B704 80030304 44811000 */ mtc1 $at, $f2
/* B708 80030308 00000000 */ nop
/* B70C 8003030C 46022102 */ mul.s $f4, $f4, $f2
/* B710 80030310 00000000 */ nop
/* B714 80030314 C6020078 */ lwc1 $f2, 0x78($s0)
/* B718 80030318 46001082 */ mul.s $f2, $f2, $f0
/* B71C 8003031C 00000000 */ nop
/* B720 80030320 46043180 */ add.s $f6, $f6, $f4
/* B724 80030324 46023080 */ add.s $f2, $f6, $f2
/* B728 80030328 E606004C */ swc1 $f6, 0x4c($s0)
/* B72C 8003032C E6020040 */ swc1 $f2, 0x40($s0)
.L80030330:
/* B730 80030330 8FBF0018 */ lw $ra, 0x18($sp)
/* B734 80030334 8FB10014 */ lw $s1, 0x14($sp)
/* B738 80030338 8FB00010 */ lw $s0, 0x10($sp)
/* B73C 8003033C D7B60028 */ ldc1 $f22, 0x28($sp)
/* B740 80030340 D7B40020 */ ldc1 $f20, 0x20($sp)
/* B744 80030344 03E00008 */ jr $ra
/* B748 80030348 27BD0030 */ addiu $sp, $sp, 0x30