Files
perfect-dark/src/lib/lib_2f490.s
T
2021-10-12 18:30:04 +10:00

282 lines
5.9 KiB
ArmAsm

#include "asm_helper.h"
#include "macros.inc"
.set noat
.set noreorder
.text
glabel func0002f490
lw $t0, 0x10($sp)
lw $t1, 0x14($sp)
lw $t2, 0x18($sp)
lw $t3, 0x1c($sp)
lw $t4, 0x20($sp)
lh $t5, 0x0($a0)
lh $t6, 0x2($a0)
lh $t7, 0x4($a0)
mtc1 $t5, $f0
mtc1 $t6, $f1
mtc1 $t7, $f2
cvt.s.w $f0, $f0
cvt.s.w $f1, $f1
cvt.s.w $f2, $f2
lh $t5, 0x0($a1)
lh $t6, 0x2($a1)
lh $t7, 0x4($a1)
mtc1 $t5, $f12
mtc1 $t6, $f13
mtc1 $t7, $f14
cvt.s.w $f12, $f12
cvt.s.w $f13, $f13
cvt.s.w $f14, $f14
lh $t5, 0x0($a2)
lh $t6, 0x2($a2)
lh $t7, 0x4($a2)
mtc1 $t5, $f15
mtc1 $t6, $f16
mtc1 $t7, $f17
cvt.s.w $f15, $f15
cvt.s.w $f16, $f16
cvt.s.w $f17, $f17
sub.s $f3, $f12, $f0
sub.s $f4, $f13, $f1
sub.s $f5, $f14, $f2
sub.s $f6, $f15, $f12
sub.s $f7, $f16, $f13
sub.s $f8, $f17, $f14
sub.s $f9, $f15, $f0
sub.s $f10, $f16, $f1
beqz $a3, .L0002f550
sub.s $f11, $f17, $f2
lwc1 $f12, 0x0($a3)
lwc1 $f13, 0x4($a3)
lwc1 $f14, 0x8($a3)
add.s $f0, $f0, $f12
add.s $f1, $f1, $f13
add.s $f2, $f2, $f14
.L0002f550:
lui $t5, %hi(.L0002f5d8)
addiu $t5, $t5, %lo(.L0002f5d8)
jr $t5
nop
glabel func0002f560
lw $t0, 0x10($sp)
lw $t1, 0x14($sp)
lw $t2, 0x18($sp)
lw $t3, 0x1c($sp)
lw $t4, 0x20($sp)
lwc1 $f0, 0x0($a0)
lwc1 $f1, 0x4($a0)
lwc1 $f2, 0x8($a0)
lwc1 $f12, 0x0($a1)
lwc1 $f13, 0x4($a1)
lwc1 $f14, 0x8($a1)
lwc1 $f15, 0x0($a2)
lwc1 $f16, 0x4($a2)
lwc1 $f17, 0x8($a2)
sub.s $f3, $f12, $f0
sub.s $f4, $f13, $f1
sub.s $f5, $f14, $f2
sub.s $f6, $f15, $f12
sub.s $f7, $f16, $f13
sub.s $f8, $f17, $f14
sub.s $f9, $f15, $f0
sub.s $f10, $f16, $f1
beqz $a3, .L0002f5d8
sub.s $f11, $f17, $f2
lwc1 $f12, 0x0($a3)
lwc1 $f13, 0x4($a3)
lwc1 $f14, 0x8($a3)
add.s $f0, $f0, $f12
add.s $f1, $f1, $f13
add.s $f2, $f2, $f14
.L0002f5d8:
addiu $sp, $sp, -0x20
swc1 $f20, 0x0($sp)
swc1 $f21, 0x4($sp)
swc1 $f22, 0x8($sp)
swc1 $f23, 0xc($sp)
swc1 $f24, 0x10($sp)
swc1 $f25, 0x14($sp)
mul.s $f12, $f4, $f8
swc1 $f25, 0x14($sp)
mul.s $f13, $f7, $f5
swc1 $f26, 0x18($sp)
mul.s $f14, $f5, $f6
sub.s $f12, $f12, $f13
mul.s $f15, $f8, $f3
swc1 $f27, 0x1c($sp)
mul.s $f16, $f3, $f7
sub.s $f13, $f14, $f15
mul.s $f14, $f6, $f4
mfc1 $t6, $f28
sub.s $f14, $f16, $f14
mul.s $f15, $f12, $f0
mfc1 $t7, $f29
mul.s $f16, $f13, $f1
mfc1 $t8, $f30
mul.s $f17, $f14, $f2
add.s $f15, $f15, $f16
mfc1 $t9, $f31
add.s $f15, $f15, $f17
lwc1 $f16, 0x0($t2)
lwc1 $f17, 0x4($t2)
mul.s $f19, $f12, $f16
lwc1 $f18, 0x8($t2)
mul.s $f20, $f13, $f17
add.s $f19, $f19, $f20
mul.s $f20, $f14, $f18
mtc1 $zero, $f31
add.s $f19, $f19, $f20
c.eq.s $f19, $f31
bc1t .L0002f864
addi $v0, $zero, 0x0
lwc1 $f20, 0x0($t1)
lwc1 $f21, 0x4($t1)
mul.s $f23, $f12, $f20
lwc1 $f22, 0x8($t1)
mul.s $f24, $f13, $f21
sub.s $f23, $f15, $f23
mul.s $f25, $f14, $f22
sub.s $f23, $f23, $f24
sub.s $f23, $f23, $f25
div.s $f19, $f23, $f19
mul.s $f23, $f19, $f16
nop
mul.s $f24, $f19, $f17
add.s $f23, $f20, $f23
mul.s $f25, $f19, $f18
add.s $f24, $f21, $f24
add.s $f25, $f22, $f25
sub.s $f26, $f23, $f20
mul.s $f26, $f16, $f26
sub.s $f27, $f24, $f21
mul.s $f27, $f17, $f27
sub.s $f28, $f25, $f22
add.s $f26, $f26, $f27
mul.s $f27, $f18, $f28
add.s $f26, $f26, $f27
c.lt.s $f31, $f26
bc1f .L0002f6f0
nop
b .L0002f864
addi $v0, $zero, 0x0
.L0002f6f0:
lwc1 $f20, 0x0($t0)
sub.s $f26, $f23, $f20
lwc1 $f21, 0x4($t0)
mul.s $f26, $f16, $f26
sub.s $f27, $f24, $f21
lwc1 $f22, 0x8($t0)
mul.s $f27, $f17, $f27
sub.s $f28, $f25, $f22
add.s $f26, $f26, $f27
mul.s $f27, $f18, $f28
add.s $f26, $f26, $f27
c.lt.s $f26, $f31
bc1f .L0002f730
nop
b .L0002f864
addi $v0, $zero, 0x0
.L0002f730:
sub.s $f0, $f23, $f0
sub.s $f1, $f24, $f1
sub.s $f2, $f25, $f2
mul.s $f26, $f6, $f4
nop
mul.s $f27, $f3, $f7
sub.s $f26, $f26, $f27
c.eq.s $f26, $f31
bc1t .L0002f770
nop
mul.s $f27, $f0, $f4
nop
mul.s $f28, $f1, $f3
sub.s $f27, $f27, $f28
b .L0002f7c8
div.s $f27, $f27, $f26
.L0002f770:
mul.s $f26, $f7, $f5
nop
mul.s $f27, $f4, $f8
sub.s $f26, $f26, $f27
c.eq.s $f26, $f31
bc1t .L0002f7a4
nop
mul.s $f27, $f1, $f5
nop
mul.s $f28, $f2, $f4
sub.s $f27, $f27, $f28
b .L0002f7c8
div.s $f27, $f27, $f26
.L0002f7a4:
mul.s $f26, $f8, $f3
nop
mul.s $f27, $f5, $f6
sub.s $f26, $f26, $f27
mul.s $f27, $f2, $f3
nop
mul.s $f28, $f0, $f5
sub.s $f27, $f27, $f28
div.s $f27, $f27, $f26
.L0002f7c8:
c.lt.s $f27, $f31
bc1t .L0002f864
addi $v0, $zero, 0x0
c.eq.s $f3, $f31
bc1t .L0002f7f0
nop
mul.s $f28, $f27, $f9
sub.s $f28, $f0, $f28
b .L0002f818
div.s $f28, $f28, $f3
.L0002f7f0:
c.eq.s $f4, $f31
bc1t .L0002f80c
nop
mul.s $f28, $f27, $f10
sub.s $f28, $f1, $f28
b .L0002f818
div.s $f28, $f28, $f4
.L0002f80c:
mul.s $f28, $f27, $f11
sub.s $f28, $f2, $f28
div.s $f28, $f28, $f5
.L0002f818:
c.lt.s $f28, $f31
bc1t .L0002f864
addi $v0, $zero, 0x0
lui $at, 0x3f80
mtc1 $at, $f29
add.s $f27, $f28, $f27
c.le.s $f27, $f29
bc1f .L0002f864
addi $v0, $zero, 0x0
beqz $t3, .L0002f850
addi $v0, $zero, 0x1
swc1 $f23, 0x0($t3)
swc1 $f24, 0x4($t3)
swc1 $f25, 0x8($t3)
.L0002f850:
beqz $t4, .L0002f864
nop
swc1 $f12, 0x0($t4)
swc1 $f13, 0x4($t4)
swc1 $f14, 0x8($t4)
.L0002f864:
lwc1 $f20, 0x0($sp)
lwc1 $f21, 0x4($sp)
lwc1 $f22, 0x8($sp)
lwc1 $f23, 0xc($sp)
lwc1 $f24, 0x10($sp)
lwc1 $f25, 0x14($sp)
lwc1 $f26, 0x18($sp)
lwc1 $f27, 0x1c($sp)
mtc1 $t6, $f28
mtc1 $t7, $f29
mtc1 $t8, $f30
mtc1 $t9, $f31
jr $ra
addiu $sp, $sp, 0x20