3 matches in math_util.c (#380)

Signed-off-by: Taggerung <tyler.taggerung@email.com>
This commit is contained in:
Tyler McGavran
2023-08-24 15:45:13 -04:00
committed by GitHub
parent 0dd7133e86
commit a915dfcc73
5 changed files with 62 additions and 547 deletions
-108
View File
@@ -1,108 +0,0 @@
glabel func_802B5D64
/* 11F374 802B5D64 0004CE02 */ srl $t9, $a0, 0x18
/* 11F378 802B5D68 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 11F37C 802B5D6C 00194080 */ sll $t0, $t9, 2
/* 11F380 802B5D70 3C098015 */ lui $t1, %hi(gSegmentTable)
/* 11F384 802B5D74 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 11F388 802B5D78 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 11F38C 802B5D7C 01284821 */ addu $t1, $t1, $t0
/* 11F390 802B5D80 8D290258 */ lw $t1, %lo(gSegmentTable)($t1)
/* 11F394 802B5D84 00815024 */ and $t2, $a0, $at
/* 11F398 802B5D88 AFB00014 */ sw $s0, 0x14($sp)
/* 11F39C 802B5D8C AFA40058 */ sw $a0, 0x58($sp)
/* 11F3A0 802B5D90 AFBF001C */ sw $ra, 0x1c($sp)
/* 11F3A4 802B5D94 AFB10018 */ sw $s1, 0x18($sp)
/* 11F3A8 802B5D98 3C018000 */ lui $at, 0x8000
/* 11F3AC 802B5D9C 30C4FFFF */ andi $a0, $a2, 0xffff
/* 11F3B0 802B5DA0 012A8021 */ addu $s0, $t1, $t2
/* 11F3B4 802B5DA4 00E08825 */ move $s1, $a3
/* 11F3B8 802B5DA8 AFA5005C */ sw $a1, 0x5c($sp)
/* 11F3BC 802B5DAC AFA60060 */ sw $a2, 0x60($sp)
/* 11F3C0 802B5DB0 02018021 */ addu $s0, $s0, $at
/* 11F3C4 802B5DB4 0C0AE006 */ jal sins
/* 11F3C8 802B5DB8 AFA40020 */ sw $a0, 0x20($sp)
/* 11F3CC 802B5DBC 8FA40020 */ lw $a0, 0x20($sp)
/* 11F3D0 802B5DC0 0C0AE00E */ jal coss
/* 11F3D4 802B5DC4 E7A00048 */ swc1 $f0, 0x48($sp)
/* 11F3D8 802B5DC8 97A4005E */ lhu $a0, 0x5e($sp)
/* 11F3DC 802B5DCC E7A00044 */ swc1 $f0, 0x44($sp)
/* 11F3E0 802B5DD0 0C0AE006 */ jal sins
/* 11F3E4 802B5DD4 AFA40020 */ sw $a0, 0x20($sp)
/* 11F3E8 802B5DD8 8FA40020 */ lw $a0, 0x20($sp)
/* 11F3EC 802B5DDC 0C0AE00E */ jal coss
/* 11F3F0 802B5DE0 E7A00040 */ swc1 $f0, 0x40($sp)
/* 11F3F4 802B5DE4 C7AC0044 */ lwc1 $f12, 0x44($sp)
/* 11F3F8 802B5DE8 C7A40040 */ lwc1 $f4, 0x40($sp)
/* 11F3FC 802B5DEC 3C0142F0 */ li $at, 0x42F00000 # 120.000000
/* 11F400 802B5DF0 44811000 */ mtc1 $at, $f2
/* 11F404 802B5DF4 46046182 */ mul.s $f6, $f12, $f4
/* 11F408 802B5DF8 C7B00048 */ lwc1 $f16, 0x48($sp)
/* 11F40C 802B5DFC 3C01C2F0 */ li $at, 0xC2F00000 # -120.000000
/* 11F410 802B5E00 00001025 */ move $v0, $zero
/* 11F414 802B5E04 32240003 */ andi $a0, $s1, 3
/* 11F418 802B5E08 46023202 */ mul.s $f8, $f6, $f2
/* 11F41C 802B5E0C 00000000 */ nop
/* 11F420 802B5E10 46101482 */ mul.s $f18, $f2, $f16
/* 11F424 802B5E14 00000000 */ nop
/* 11F428 802B5E18 46006182 */ mul.s $f6, $f12, $f0
/* 11F42C 802B5E1C 4600428D */ trunc.w.s $f10, $f8
/* 11F430 802B5E20 44814000 */ mtc1 $at, $f8
/* 11F434 802B5E24 4600910D */ trunc.w.s $f4, $f18
/* 11F438 802B5E28 440C5000 */ mfc1 $t4, $f10
/* 11F43C 802B5E2C 46083282 */ mul.s $f10, $f6, $f8
/* 11F440 802B5E30 440E2000 */ mfc1 $t6, $f4
/* 11F444 802B5E34 A3AC002C */ sb $t4, 0x2c($sp)
/* 11F448 802B5E38 A3AE002D */ sb $t6, 0x2d($sp)
/* 11F44C 802B5E3C 4600540D */ trunc.w.s $f16, $f10
/* 11F450 802B5E40 44198000 */ mfc1 $t9, $f16
/* 11F454 802B5E44 1A200029 */ blez $s1, .L802B5EEC
/* 11F458 802B5E48 A3B9002E */ sb $t9, 0x2e($sp)
/* 11F45C 802B5E4C 1080000C */ beqz $a0, .L802B5E80
/* 11F460 802B5E50 00801825 */ move $v1, $a0
.L802B5E54:
/* 11F464 802B5E54 83A8002C */ lb $t0, 0x2c($sp)
/* 11F468 802B5E58 24420001 */ addiu $v0, $v0, 1
/* 11F46C 802B5E5C 26100018 */ addiu $s0, $s0, 0x18
/* 11F470 802B5E60 A208FFF8 */ sb $t0, -8($s0)
/* 11F474 802B5E64 83B8002D */ lb $t8, 0x2d($sp)
/* 11F478 802B5E68 A218FFF9 */ sb $t8, -7($s0)
/* 11F47C 802B5E6C 83A9002E */ lb $t1, 0x2e($sp)
/* 11F480 802B5E70 1462FFF8 */ bne $v1, $v0, .L802B5E54
/* 11F484 802B5E74 A209FFFA */ sb $t1, -6($s0)
/* 11F488 802B5E78 5051001D */ beql $v0, $s1, .L802B5EF0
/* 11F48C 802B5E7C 8FBF001C */ lw $ra, 0x1c($sp)
.L802B5E80:
/* 11F490 802B5E80 83AA002C */ lb $t2, 0x2c($sp)
/* 11F494 802B5E84 24420004 */ addiu $v0, $v0, 4
/* 11F498 802B5E88 26100060 */ addiu $s0, $s0, 0x60
/* 11F49C 802B5E8C A20AFFB0 */ sb $t2, -0x50($s0)
/* 11F4A0 802B5E90 83AB002D */ lb $t3, 0x2d($sp)
/* 11F4A4 802B5E94 A20BFFB1 */ sb $t3, -0x4f($s0)
/* 11F4A8 802B5E98 83AC002E */ lb $t4, 0x2e($sp)
/* 11F4AC 802B5E9C A20CFFB2 */ sb $t4, -0x4e($s0)
/* 11F4B0 802B5EA0 83AD002C */ lb $t5, 0x2c($sp)
/* 11F4B4 802B5EA4 A20DFFC8 */ sb $t5, -0x38($s0)
/* 11F4B8 802B5EA8 83AE002D */ lb $t6, 0x2d($sp)
/* 11F4BC 802B5EAC A20EFFC9 */ sb $t6, -0x37($s0)
/* 11F4C0 802B5EB0 83AF002E */ lb $t7, 0x2e($sp)
/* 11F4C4 802B5EB4 A20FFFCA */ sb $t7, -0x36($s0)
/* 11F4C8 802B5EB8 83B9002C */ lb $t9, 0x2c($sp)
/* 11F4CC 802B5EBC A219FFE0 */ sb $t9, -0x20($s0)
/* 11F4D0 802B5EC0 83A8002D */ lb $t0, 0x2d($sp)
/* 11F4D4 802B5EC4 A208FFE1 */ sb $t0, -0x1f($s0)
/* 11F4D8 802B5EC8 83B8002E */ lb $t8, 0x2e($sp)
/* 11F4DC 802B5ECC A218FFE2 */ sb $t8, -0x1e($s0)
/* 11F4E0 802B5ED0 83A9002C */ lb $t1, 0x2c($sp)
/* 11F4E4 802B5ED4 A209FFF8 */ sb $t1, -8($s0)
/* 11F4E8 802B5ED8 83AA002D */ lb $t2, 0x2d($sp)
/* 11F4EC 802B5EDC A20AFFF9 */ sb $t2, -7($s0)
/* 11F4F0 802B5EE0 83AB002E */ lb $t3, 0x2e($sp)
/* 11F4F4 802B5EE4 1451FFE6 */ bne $v0, $s1, .L802B5E80
/* 11F4F8 802B5EE8 A20BFFFA */ sb $t3, -6($s0)
.L802B5EEC:
/* 11F4FC 802B5EEC 8FBF001C */ lw $ra, 0x1c($sp)
.L802B5EF0:
/* 11F500 802B5EF0 8FB00014 */ lw $s0, 0x14($sp)
/* 11F504 802B5EF4 8FB10018 */ lw $s1, 0x18($sp)
/* 11F508 802B5EF8 03E00008 */ jr $ra
/* 11F50C 802B5EFC 27BD0058 */ addiu $sp, $sp, 0x58
-135
View File
@@ -1,135 +0,0 @@
.section .late_rodata
glabel D_802B9FDC
.float -0.01600503
glabel D_802B9FE0
.float 0.002834060
glabel D_802B9FE4
.float -0.074954450
glabel D_802B9FE8
.float 0.042587612
glabel D_802B9FEC
.float -0.142025709
glabel D_802B9FF0
.float 0.106367543
glabel D_802B9FF4
.float -0.333330661
glabel D_802B9FF8
.double 1.3375206719956623e-08
glabel D_802BA000
.double 1.5707963267948966
glabel D_802BA008
.double 1.5707963267948966
glabel D_802BA010
.double 50.123870849609375
.section .text
glabel func_802B79F0
/* 121000 802B79F0 46007021 */ cvt.d.s $f0, $f14
/* 121004 802B79F4 460E6403 */ div.s $f16, $f12, $f14
/* 121008 802B79F8 00001025 */ move $v0, $zero
/* 12100C 802B79FC 46200085 */ abs.d $f2, $f0
/* 121010 802B7A00 46006021 */ cvt.d.s $f0, $f12
/* 121014 802B7A04 46200005 */ abs.d $f0, $f0
/* 121018 802B7A08 4620103C */ c.lt.d $f2, $f0
/* 12101C 802B7A0C 00000000 */ nop
/* 121020 802B7A10 45000002 */ bc1f .L802B7A1C
/* 121024 802B7A14 00000000 */ nop
/* 121028 802B7A18 24020001 */ li $v0, 1
.L802B7A1C:
/* 12102C 802B7A1C 10400002 */ beqz $v0, .L802B7A28
/* 121030 802B7A20 00000000 */ nop
/* 121034 802B7A24 460C7403 */ div.s $f16, $f14, $f12
.L802B7A28:
/* 121038 802B7A28 46108002 */ mul.s $f0, $f16, $f16
/* 12103C 802B7A2C 3C01802C */ lui $at, %hi(D_802B9FDC) # $at, 0x802c
/* 121040 802B7A30 C4249FDC */ lwc1 $f4, %lo(D_802B9FDC)($at)
/* 121044 802B7A34 3C01802C */ lui $at, %hi(D_802B9FE0) # $at, 0x802c
/* 121048 802B7A38 C4269FE0 */ lwc1 $f6, %lo(D_802B9FE0)($at)
/* 12104C 802B7A3C 3C01802C */ lui $at, %hi(D_802B9FE4) # $at, 0x802c
/* 121050 802B7A40 46000082 */ mul.s $f2, $f0, $f0
/* 121054 802B7A44 00000000 */ nop
/* 121058 802B7A48 46060202 */ mul.s $f8, $f0, $f6
/* 12105C 802B7A4C C4269FE4 */ lwc1 $f6, %lo(D_802B9FE4)($at)
/* 121060 802B7A50 3C01802C */ lui $at, %hi(D_802B9FE8) # $at, 0x802c
/* 121064 802B7A54 46082280 */ add.s $f10, $f4, $f8
/* 121068 802B7A58 C4289FE8 */ lwc1 $f8, %lo(D_802B9FE8)($at)
/* 12106C 802B7A5C 3C01802C */ lui $at, %hi(D_802B9FEC) # $at, 0x802c
/* 121070 802B7A60 460A1482 */ mul.s $f18, $f2, $f10
/* 121074 802B7A64 46069100 */ add.s $f4, $f18, $f6
/* 121078 802B7A68 46080282 */ mul.s $f10, $f0, $f8
/* 12107C 802B7A6C 460A2480 */ add.s $f18, $f4, $f10
/* 121080 802B7A70 46021182 */ mul.s $f6, $f2, $f2
/* 121084 802B7A74 C4249FEC */ lwc1 $f4, %lo(D_802B9FEC)($at)
/* 121088 802B7A78 3C01802C */ lui $at, %hi(D_802B9FF0) # $at, 0x802c
/* 12108C 802B7A7C C42A9FF0 */ lwc1 $f10, %lo(D_802B9FF0)($at)
/* 121090 802B7A80 3C01802C */ lui $at, %hi(D_802B9FF4) # $at, 0x802c
/* 121094 802B7A84 46069202 */ mul.s $f8, $f18, $f6
/* 121098 802B7A88 00000000 */ nop
/* 12109C 802B7A8C 460A0482 */ mul.s $f18, $f0, $f10
/* 1210A0 802B7A90 46122180 */ add.s $f6, $f4, $f18
/* 1210A4 802B7A94 C4329FF4 */ lwc1 $f18, %lo(D_802B9FF4)($at)
/* 1210A8 802B7A98 3C01802C */ lui $at, %hi(D_802B9FF8) # $at, 0x802c
/* 1210AC 802B7A9C 46023282 */ mul.s $f10, $f6, $f2
/* 1210B0 802B7AA0 460A4100 */ add.s $f4, $f8, $f10
/* 1210B4 802B7AA4 C4289FF8 */ lwc1 $f8, %lo(D_802B9FF8)($at)
/* 1210B8 802B7AA8 46080282 */ mul.s $f10, $f0, $f8
/* 1210BC 802B7AAC 46122180 */ add.s $f6, $f4, $f18
/* 1210C0 802B7AB0 46008482 */ mul.s $f18, $f16, $f0
/* 1210C4 802B7AB4 460A3100 */ add.s $f4, $f6, $f10
/* 1210C8 802B7AB8 46122202 */ mul.s $f8, $f4, $f18
/* 1210CC 802B7ABC 10400013 */ beqz $v0, .L802B7B0C
/* 1210D0 802B7AC0 46088400 */ add.s $f16, $f16, $f8
/* 1210D4 802B7AC4 44800000 */ mtc1 $zero, $f0
/* 1210D8 802B7AC8 3C01802C */ lui $at, %hi(D_802BA008)
/* 1210DC 802B7ACC 4600603C */ c.lt.s $f12, $f0
/* 1210E0 802B7AD0 00000000 */ nop
/* 1210E4 802B7AD4 45000008 */ bc1f .L802B7AF8
/* 1210E8 802B7AD8 00000000 */ nop
/* 1210EC 802B7ADC 3C01802C */ lui $at, %hi(D_802BA000)
/* 1210F0 802B7AE0 D422A000 */ ldc1 $f2, %lo(D_802BA000)($at)
/* 1210F4 802B7AE4 460081A1 */ cvt.d.s $f6, $f16
/* 1210F8 802B7AE8 46201087 */ neg.d $f2, $f2
/* 1210FC 802B7AEC 46261281 */ sub.d $f10, $f2, $f6
/* 121100 802B7AF0 03E00008 */ jr $ra
/* 121104 802B7AF4 46205020 */ cvt.s.d $f0, $f10
.L802B7AF8:
/* 121108 802B7AF8 D422A008 */ ldc1 $f2, %lo(D_802BA008)($at)
/* 12110C 802B7AFC 460081A1 */ cvt.d.s $f6, $f16
/* 121110 802B7B00 46261281 */ sub.d $f10, $f2, $f6
/* 121114 802B7B04 03E00008 */ jr $ra
/* 121118 802B7B08 46205020 */ cvt.s.d $f0, $f10
.L802B7B0C:
/* 12111C 802B7B0C 44800000 */ mtc1 $zero, $f0
/* 121120 802B7B10 00000000 */ nop
/* 121124 802B7B14 460E003E */ c.le.s $f0, $f14
/* 121128 802B7B18 00000000 */ nop
/* 12112C 802B7B1C 45020004 */ bc1fl .L802B7B30
/* 121130 802B7B20 4600603C */ c.lt.s $f12, $f0
/* 121134 802B7B24 03E00008 */ jr $ra
/* 121138 802B7B28 46008006 */ mov.s $f0, $f16
/* 12113C 802B7B2C 4600603C */ c.lt.s $f12, $f0
.L802B7B30:
/* 121140 802B7B30 3C01802C */ lui $at, %hi(D_802BA010) # $at, 0x802c
/* 121144 802B7B34 C42EA010 */ lwc1 $f14, %lo(D_802BA010)($at)
/* 121148 802B7B38 45000002 */ bc1f .L802B7B44
/* 12114C 802B7B3C 460E8080 */ add.s $f2, $f16, $f14
/* 121150 802B7B40 460E8081 */ sub.s $f2, $f16, $f14
.L802B7B44:
/* 121154 802B7B44 46001006 */ mov.s $f0, $f2
/* 121158 802B7B48 03E00008 */ jr $ra
/* 12115C 802B7B4C 00000000 */ nop
-133
View File
@@ -1,133 +0,0 @@
glabel func_802B8414
/* 121A24 802B8414 0004CE02 */ srl $t9, $a0, 0x18
/* 121A28 802B8418 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 121A2C 802B841C 00194080 */ sll $t0, $t9, 2
/* 121A30 802B8420 3C098015 */ lui $t1, %hi(gSegmentTable)
/* 121A34 802B8424 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 121A38 802B8428 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 121A3C 802B842C 01284821 */ addu $t1, $t1, $t0
/* 121A40 802B8430 8D290258 */ lw $t1, %lo(gSegmentTable)($t1)
/* 121A44 802B8434 00815024 */ and $t2, $a0, $at
/* 121A48 802B8438 AFB00014 */ sw $s0, 0x14($sp)
/* 121A4C 802B843C AFA40058 */ sw $a0, 0x58($sp)
/* 121A50 802B8440 AFBF001C */ sw $ra, 0x1c($sp)
/* 121A54 802B8444 AFB10018 */ sw $s1, 0x18($sp)
/* 121A58 802B8448 3C018000 */ lui $at, 0x8000
/* 121A5C 802B844C 30E4FFFF */ andi $a0, $a3, 0xffff
/* 121A60 802B8450 012A8021 */ addu $s0, $t1, $t2
/* 121A64 802B8454 00A08825 */ move $s1, $a1
/* 121A68 802B8458 AFA60060 */ sw $a2, 0x60($sp)
/* 121A6C 802B845C AFA70064 */ sw $a3, 0x64($sp)
/* 121A70 802B8460 02018021 */ addu $s0, $s0, $at
/* 121A74 802B8464 0C0AE006 */ jal sins
/* 121A78 802B8468 AFA40020 */ sw $a0, 0x20($sp)
/* 121A7C 802B846C 0C0AE00E */ jal coss
/* 121A80 802B8470 8FA40020 */ lw $a0, 0x20($sp)
/* 121A84 802B8474 97A40062 */ lhu $a0, 0x62($sp)
/* 121A88 802B8478 0C0AE006 */ jal sins
/* 121A8C 802B847C AFA40020 */ sw $a0, 0x20($sp)
/* 121A90 802B8480 0C0AE00E */ jal coss
/* 121A94 802B8484 8FA40020 */ lw $a0, 0x20($sp)
/* 121A98 802B8488 3C0142FE */ li $at, 0x42FE0000 # 127.000000
/* 121A9C 802B848C 44810000 */ mtc1 $at, $f0
/* 121AA0 802B8490 44801000 */ mtc1 $zero, $f2
/* 121AA4 802B8494 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 121AA8 802B8498 44812000 */ mtc1 $at, $f4
/* 121AAC 802B849C E7A20040 */ swc1 $f2, 0x40($sp)
/* 121AB0 802B84A0 E7A20044 */ swc1 $f2, 0x44($sp)
/* 121AB4 802B84A4 E7A40048 */ swc1 $f4, 0x48($sp)
/* 121AB8 802B84A8 C6280000 */ lwc1 $f8, ($s1)
/* 121ABC 802B84AC C7A60040 */ lwc1 $f6, 0x40($sp)
/* 121AC0 802B84B0 C6320010 */ lwc1 $f18, 0x10($s1)
/* 121AC4 802B84B4 C7B00044 */ lwc1 $f16, 0x44($sp)
/* 121AC8 802B84B8 46083282 */ mul.s $f10, $f6, $f8
/* 121ACC 802B84BC 8FA40068 */ lw $a0, 0x68($sp)
/* 121AD0 802B84C0 00001025 */ move $v0, $zero
/* 121AD4 802B84C4 46128202 */ mul.s $f8, $f16, $f18
/* 121AD8 802B84C8 30850003 */ andi $a1, $a0, 3
/* 121ADC 802B84CC 46085480 */ add.s $f18, $f10, $f8
/* 121AE0 802B84D0 C62A0020 */ lwc1 $f10, 0x20($s1)
/* 121AE4 802B84D4 46045202 */ mul.s $f8, $f10, $f4
/* 121AE8 802B84D8 46124280 */ add.s $f10, $f8, $f18
/* 121AEC 802B84DC 46005202 */ mul.s $f8, $f10, $f0
/* 121AF0 802B84E0 4600448D */ trunc.w.s $f18, $f8
/* 121AF4 802B84E4 440C9000 */ mfc1 $t4, $f18
/* 121AF8 802B84E8 00000000 */ nop
/* 121AFC 802B84EC A3AC003C */ sb $t4, 0x3c($sp)
/* 121B00 802B84F0 C62A0004 */ lwc1 $f10, 4($s1)
/* 121B04 802B84F4 C6320014 */ lwc1 $f18, 0x14($s1)
/* 121B08 802B84F8 460A3202 */ mul.s $f8, $f6, $f10
/* 121B0C 802B84FC 00000000 */ nop
/* 121B10 802B8500 46128282 */ mul.s $f10, $f16, $f18
/* 121B14 802B8504 460A4480 */ add.s $f18, $f8, $f10
/* 121B18 802B8508 C6280024 */ lwc1 $f8, 0x24($s1)
/* 121B1C 802B850C 46044282 */ mul.s $f10, $f8, $f4
/* 121B20 802B8510 46125200 */ add.s $f8, $f10, $f18
/* 121B24 802B8514 46004282 */ mul.s $f10, $f8, $f0
/* 121B28 802B8518 4600548D */ trunc.w.s $f18, $f10
/* 121B2C 802B851C 440E9000 */ mfc1 $t6, $f18
/* 121B30 802B8520 00000000 */ nop
/* 121B34 802B8524 A3AE003D */ sb $t6, 0x3d($sp)
/* 121B38 802B8528 C6280008 */ lwc1 $f8, 8($s1)
/* 121B3C 802B852C C6320018 */ lwc1 $f18, 0x18($s1)
/* 121B40 802B8530 46083282 */ mul.s $f10, $f6, $f8
/* 121B44 802B8534 00000000 */ nop
/* 121B48 802B8538 46128182 */ mul.s $f6, $f16, $f18
/* 121B4C 802B853C C6300028 */ lwc1 $f16, 0x28($s1)
/* 121B50 802B8540 46048482 */ mul.s $f18, $f16, $f4
/* 121B54 802B8544 46065200 */ add.s $f8, $f10, $f6
/* 121B58 802B8548 46089280 */ add.s $f10, $f18, $f8
/* 121B5C 802B854C 46005182 */ mul.s $f6, $f10, $f0
/* 121B60 802B8550 4600340D */ trunc.w.s $f16, $f6
/* 121B64 802B8554 44198000 */ mfc1 $t9, $f16
/* 121B68 802B8558 18800029 */ blez $a0, .L802B8600
/* 121B6C 802B855C A3B9003E */ sb $t9, 0x3e($sp)
/* 121B70 802B8560 10A0000C */ beqz $a1, .L802B8594
/* 121B74 802B8564 00A01825 */ move $v1, $a1
.L802B8568:
/* 121B78 802B8568 83A8003C */ lb $t0, 0x3c($sp)
/* 121B7C 802B856C 24420001 */ addiu $v0, $v0, 1
/* 121B80 802B8570 26100018 */ addiu $s0, $s0, 0x18
/* 121B84 802B8574 A208FFF8 */ sb $t0, -8($s0)
/* 121B88 802B8578 83B8003D */ lb $t8, 0x3d($sp)
/* 121B8C 802B857C A218FFF9 */ sb $t8, -7($s0)
/* 121B90 802B8580 83A9003E */ lb $t1, 0x3e($sp)
/* 121B94 802B8584 1462FFF8 */ bne $v1, $v0, .L802B8568
/* 121B98 802B8588 A209FFFA */ sb $t1, -6($s0)
/* 121B9C 802B858C 5044001D */ beql $v0, $a0, .L802B8604
/* 121BA0 802B8590 8FBF001C */ lw $ra, 0x1c($sp)
.L802B8594:
/* 121BA4 802B8594 83AA003C */ lb $t2, 0x3c($sp)
/* 121BA8 802B8598 24420004 */ addiu $v0, $v0, 4
/* 121BAC 802B859C 26100060 */ addiu $s0, $s0, 0x60
/* 121BB0 802B85A0 A20AFFB0 */ sb $t2, -0x50($s0)
/* 121BB4 802B85A4 83AB003D */ lb $t3, 0x3d($sp)
/* 121BB8 802B85A8 A20BFFB1 */ sb $t3, -0x4f($s0)
/* 121BBC 802B85AC 83AC003E */ lb $t4, 0x3e($sp)
/* 121BC0 802B85B0 A20CFFB2 */ sb $t4, -0x4e($s0)
/* 121BC4 802B85B4 83AD003C */ lb $t5, 0x3c($sp)
/* 121BC8 802B85B8 A20DFFC8 */ sb $t5, -0x38($s0)
/* 121BCC 802B85BC 83AE003D */ lb $t6, 0x3d($sp)
/* 121BD0 802B85C0 A20EFFC9 */ sb $t6, -0x37($s0)
/* 121BD4 802B85C4 83AF003E */ lb $t7, 0x3e($sp)
/* 121BD8 802B85C8 A20FFFCA */ sb $t7, -0x36($s0)
/* 121BDC 802B85CC 83B9003C */ lb $t9, 0x3c($sp)
/* 121BE0 802B85D0 A219FFE0 */ sb $t9, -0x20($s0)
/* 121BE4 802B85D4 83A8003D */ lb $t0, 0x3d($sp)
/* 121BE8 802B85D8 A208FFE1 */ sb $t0, -0x1f($s0)
/* 121BEC 802B85DC 83B8003E */ lb $t8, 0x3e($sp)
/* 121BF0 802B85E0 A218FFE2 */ sb $t8, -0x1e($s0)
/* 121BF4 802B85E4 83A9003C */ lb $t1, 0x3c($sp)
/* 121BF8 802B85E8 A209FFF8 */ sb $t1, -8($s0)
/* 121BFC 802B85EC 83AA003D */ lb $t2, 0x3d($sp)
/* 121C00 802B85F0 A20AFFF9 */ sb $t2, -7($s0)
/* 121C04 802B85F4 83AB003E */ lb $t3, 0x3e($sp)
/* 121C08 802B85F8 1444FFE6 */ bne $v0, $a0, .L802B8594
/* 121C0C 802B85FC A20BFFFA */ sb $t3, -6($s0)
.L802B8600:
/* 121C10 802B8600 8FBF001C */ lw $ra, 0x1c($sp)
.L802B8604:
/* 121C14 802B8604 8FB00014 */ lw $s0, 0x14($sp)
/* 121C18 802B8608 8FB10018 */ lw $s1, 0x18($sp)
/* 121C1C 802B860C 03E00008 */ jr $ra
/* 121C20 802B8610 27BD0058 */ addiu $sp, $sp, 0x58
+56 -170
View File
@@ -7,7 +7,7 @@
#include <PR/rcp.h>
#include <trig_tables.h>
#pragma intrinsic (sqrtf)
#pragma intrinsic (sqrtf,fabs)
s32 D_802B91C0[2] = { 13, 13 };
Vec3f D_802B91C8 = { 0.0f, 0.0f, 0.0f };
@@ -402,71 +402,34 @@ void func_802B5D30(s16 arg0, s16 arg1, s32 arg2) {
func_802B5D64(0x9000000, arg0, arg1, arg2);
}
#ifdef MIPS_TO_C
//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c
void func_802B5D64(u32 arg0, s16 arg1, s32 arg2, s32 arg3) {
void func_802B5D64(uintptr_t arg0, s16 arg1, s16 arg2, s32 arg3) {
s32 stackPadding0;
s32 stackPadding1;
s32 stackPadding2;
f32 sp48;
f32 sp44;
f32 sp40;
s8 sp2E;
s8 sp2D;
s8 sp2C;
s32 sp20;
s32 stackPadding3;
s32 stackPadding4;
f32 temp_f10;
s32 temp_a0;
s32 temp_a0_2;
s32 var_v0;
void *var_s0;
s8 sp2C[3];
Lights1 *var_s0;
temp_a0 = arg2 & 0xFFFF;
var_s0 = gSegmentTable[arg0 >> 0x18] + (arg0 & 0xFFFFFF) + 0x80000000;
sp20 = temp_a0;
sp48 = sins((u16) temp_a0);
sp44 = coss((u16) temp_a0);
sp20 = (s32) (u16) arg1;
sp40 = sins((u16) arg1);
var_v0 = 0;
temp_a0_2 = arg3 & 3;
temp_f10 = sp44 * coss((u16) arg1) * -120.0f;
sp2C = (s8) (s32) (sp44 * sp40 * 120.0f);
sp2D = (s8) (s32) (120.0f * sp48);
sp2E = (s8) (s32) temp_f10;
if (arg3 > 0) {
if (temp_a0_2 != 0) {
do {
var_v0 += 1;
var_s0 += 0x18;
var_s0->unk-8 = sp2C;
var_s0->unk-7 = sp2D;
var_s0->unk-6 = sp2E;
} while (temp_a0_2 != var_v0);
if (var_v0 != arg3) {
goto loop_4;
}
} else {
do {
loop_4:
var_v0 += 4;
var_s0 += 0x60;
var_s0->unk-50 = sp2C;
var_s0->unk-4F = sp2D;
var_s0->unk-4E = sp2E;
var_s0->unk-38 = sp2C;
var_s0->unk-37 = sp2D;
var_s0->unk-36 = sp2E;
var_s0->unk-20 = sp2C;
var_s0->unk-1F = sp2D;
var_s0->unk-1E = sp2E;
var_s0->unk-8 = sp2C;
var_s0->unk-7 = sp2D;
var_s0->unk-6 = sp2E;
} while (var_v0 != arg3);
}
var_s0 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[arg0 >> 0x18] + (arg0 & 0xFFFFFF));
sp48 = sins(arg2);
sp44 = coss(arg2);
sp40 = sins(arg1);
temp_f10 = coss(arg1);
sp2C[0] = sp44 * sp40 * 120.0f;
sp2C[1] = 120.0f * sp48;
sp2C[2] = sp44 * temp_f10 * -120.0f;
for (var_v0 = 0; var_v0 < arg3; var_v0++, var_s0++) {
var_s0->l[0].l.dir[0] = sp2C[0];
var_s0->l[0].l.dir[1] = sp2C[1];
var_s0->l[0].l.dir[2] = sp2C[2];
}
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B5D64.s")
#endif
void func_802B5F00(Mat4 arg0, f32 arg1) {
arg0[0][0] *= arg1;
@@ -1074,23 +1037,9 @@ f32 func_802B79B8(f32 arg0, f32 arg1) {
return atan2s(arg0, arg1);
}
#ifdef MIPS_TO_C
//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de
static f32 D_802B9FDC = -0.01600503f;
static f32 D_802B9FE0 = 0.00283406f;
static f32 D_802B9FE4 = -0.07495445f;
static f32 D_802B9FE8 = 0.04258761f;
static f32 D_802B9FEC = -0.14202571f;
static f32 D_802B9FF0 = 0.10636754f;
static f32 D_802B9FF4 = -0.33333066f;
static f32 D_802B9FF8 = 0.19992484f;
static f64 D_802BA000 = 1.5707963267948966;
static f64 D_802BA008 = 1.5707963267948966;
static f32 D_802BA010 = 3.1415927f;
f32 func_802B79F0(f32 arg0, f32 arg1) {
f64 halfpi;
f32 temp_f0;
f32 temp_f14;
f32 temp_f16;
f32 temp_f2;
f32 var_f16;
@@ -1099,7 +1048,7 @@ f32 func_802B79F0(f32 arg0, f32 arg1) {
var_f16 = arg0 / arg1;
var_v0 = 0;
if (fabs((f64) arg1) < fabs((f64) arg0)) {
if (fabs(arg1) < fabs(arg0)) {
var_v0 = 1;
}
if (var_v0 != 0) {
@@ -1107,26 +1056,21 @@ f32 func_802B79F0(f32 arg0, f32 arg1) {
}
temp_f0 = var_f16 * var_f16;
temp_f2 = temp_f0 * temp_f0;
temp_f16 = var_f16 + (((((temp_f2 * (D_802B9FDC + (temp_f0 * D_802B9FE0))) + D_802B9FE4 + (temp_f0 * D_802B9FE8)) * (temp_f2 * temp_f2)) + ((D_802B9FEC + (temp_f0 * D_802B9FF0)) * temp_f2) + D_802B9FF4 + (temp_f0 * D_802B9FF8)) * (var_f16 * temp_f0));
var_f16 += ((((((((temp_f2 * ((-0.01600503f) + (temp_f0 * 0.00283406f))) + (-0.07495445f)) + (temp_f0 * 0.04258761f)) * (temp_f2 * temp_f2)) + (((-0.14202571f) + (temp_f0 * 0.10636754f)) * temp_f2)) + (-0.33333066f)) + (temp_f0 * 0.19992484f)) * (var_f16 * temp_f0));
if (var_v0 != 0) {
if (arg0 < 0.0f) {
return (f32) (-D_802BA000 - (f64) temp_f16);
}
return (f32) (D_802BA008 - (f64) temp_f16);
halfpi = 1.5707963267948966;
return (arg0 < 0.0f ? -halfpi : halfpi) - var_f16;
}
if (arg1 >= 0.0f) {
return temp_f16;
return var_f16;
}
temp_f14 = D_802BA010;
var_f2 = temp_f16 + temp_f14;
var_f2 = var_f16 + 3.1415927f;
if (arg0 < 0.0f) {
var_f2 = temp_f16 - temp_f14;
var_f2 = var_f16 - 3.1415927f;
}
return var_f2;
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B79F0.s")
#endif
UNUSED u16 func_802B7B50(f32 arg0, f32 arg1) {
return ((func_802B79B8(arg0, arg1) * 32768.0f) / 3.141592653589793);
@@ -1300,95 +1244,37 @@ f32 func_802B80D0(Vec3f arg0, Vec3f arg1, u16 arg2, f32 arg3, f32 arg4, f32 arg5
GLOBAL_ASM("asm/non_matchings/math_util/func_802B80D0.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
//This function did not have a glabel in the original assembly, as such it may
//be unused/unnamed
f32 sins(s32); /* extern */
f32 coss(s32); /* extern */
extern uintptr_t gSegmentTable;
// No idea if arg1 is actually a Mat4 or not, but since this function is unused
// its impossible to know with certainty either way
void func_802B8414(uintptr_t arg0, Mat4 arg1, s16 arg2, s16 arg3, s32 arg4) {
s32 stackPadding0;
s32 stackPadding1;
s32 stackPadding2;
Vec3f sp40;
s8 sp3C[3];
s32 var_v0;
s32 stackPadding3;
s32 stackPadding4;
s32 stackPadding5;
Lights1 *var_s0;
void func_802B8414(u32 arg0, void *arg1, u16 arg2, s32 arg3, s32 arg4) {
f32 sp48;
f32 sp44;
f32 sp40;
s8 sp3E;
s8 sp3D;
s8 sp3C;
s32 sp20;
s32 temp_a0;
s32 temp_a1;
s32 temp_v0;
s32 temp_v0_2;
void *temp_s0;
void *temp_s0_2;
void *temp_s0_3;
void *phi_s0;
s32 phi_v0;
void *phi_s0_2;
s32 phi_v0_2;
temp_a0 = arg3 & 0xFFFF;
temp_s0 = *(&gSegmentTable + ((arg0 >> 0x18) * 4)) + (arg0 & 0xFFFFFF) + 0x80000000;
sp20 = temp_a0;
sins(temp_a0);
coss(temp_a0);
sp20 = arg2;
var_s0 = VIRTUAL_TO_PHYSICAL2(gSegmentTable[arg0 >> 0x18] + (arg0 & 0xFFFFFF));
sins(arg3);
coss(arg3);
sins(arg2);
coss(arg2);
sp40 = 0.0f;
sp44 = 0.0f;
sp48 = 1.0f;
temp_a1 = arg4 & 3;
sp3C = ((arg1->unk20 * 1.0f) + ((sp40 * arg1->unk0) + (sp44 * arg1->unk10))) * 127.0f;
sp3D = ((arg1->unk24 * 1.0f) + ((sp40 * arg1->unk4) + (sp44 * arg1->unk14))) * 127.0f;
sp3E = ((arg1->unk28 * 1.0f) + ((sp40 * arg1->unk8) + (sp44 * arg1->unk18))) * 127.0f;
phi_v0 = 0;
phi_v0_2 = 0;
if (arg4 > 0) {
phi_s0 = temp_s0;
phi_s0_2 = temp_s0;
if (temp_a1 != 0) {
do {
temp_v0 = phi_v0 + 1;
temp_s0_2 = phi_s0 + 0x18;
temp_s0_2->unk-8 = sp3C;
temp_s0_2->unk-7 = sp3D;
temp_s0_2->unk-6 = sp3E;
phi_s0 = temp_s0_2;
phi_v0 = temp_v0;
phi_s0_2 = temp_s0_2;
phi_v0_2 = temp_v0;
} while (temp_a1 != temp_v0);
if (temp_v0 != arg4) {
goto loop_4;
}
} else {
do {
loop_4:
temp_v0_2 = phi_v0_2 + 4;
temp_s0_3 = phi_s0_2 + 0x60;
temp_s0_3->unk-50 = sp3C;
temp_s0_3->unk-4F = sp3D;
temp_s0_3->unk-4E = sp3E;
temp_s0_3->unk-38 = sp3C;
temp_s0_3->unk-37 = sp3D;
temp_s0_3->unk-36 = sp3E;
temp_s0_3->unk-20 = sp3C;
temp_s0_3->unk-1F = sp3D;
temp_s0_3->unk-1E = sp3E;
temp_s0_3->unk-8 = sp3C;
temp_s0_3->unk-7 = sp3D;
temp_s0_3->unk-6 = sp3E;
phi_s0_2 = temp_s0_3;
phi_v0_2 = temp_v0_2;
} while (temp_v0_2 != arg4);
}
sp40[0] = 0.0f;
sp40[1] = 0.0f;
sp40[2] = 1.0f;
sp3C[0] = ((sp40[0] * arg1[0][0]) + (sp40[1] * arg1[1][0]) + (sp40[2] * arg1[2][0])) * 127.0f;
sp3C[1] = ((sp40[0] * arg1[0][1]) + (sp40[1] * arg1[1][1]) + (sp40[2] * arg1[2][1])) * 127.0f;
sp3C[2] = ((sp40[0] * arg1[0][2]) + (sp40[1] * arg1[1][2]) + (sp40[2] * arg1[2][2])) * 127.0f;
for (var_v0 = 0; var_v0 < arg4; var_v0++, var_s0++) {
var_s0->l[0].l.dir[0] = sp3C[0];
var_s0->l[0].l.dir[1] = sp3C[1];
var_s0->l[0].l.dir[2] = sp3C[2];
}
}
#else
GLOBAL_ASM("asm/non_matchings/math_util/func_802B8414.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75
+6 -1
View File
@@ -13,6 +13,9 @@
#define sqr(x) ((x) * (x))
// Here to appease the pragma gods
double fabs(double x);
void func_802B4FF0();
void func_802B5794(Mat4, Vec3f, Vec3f);
s32 func_802B4FF8(Mat4, s32);
@@ -36,7 +39,7 @@ void func_802B5A44(Mat4, s16);
void func_802B5AAC(Mat4, s16);
void func_802B5CAC(s16, s16, Vec3f);
void func_802B5D30(s16, s16, s32);
void func_802B5D64(uintptr_t, s16, s32, s32);
void func_802B5D64(uintptr_t, s16, s16, s32);
void func_802B5F00(Mat4, f32);
void func_802B5F74(Mat4, Vec3f, Vec3s);
void func_802B60B4(Mat4, Vec3s, Vec3s);
@@ -54,6 +57,7 @@ void func_802B75F8(Mtx*, Mat4);
u16 atan2_lookup(f32, f32);
u16 atan2s(f32, f32);
f32 func_802B79B8(f32, f32);
f32 func_802B79F0(f32, f32);
u16 func_802B7B50(f32, f32);
void func_802B7C18(f32);
s16 func_802B7C40(f32);
@@ -69,6 +73,7 @@ f32 sins(u16);
f32 coss(u16);
s32 func_802B8058(u16, u16, u16);
f32 func_802B80D0(Vec3f, Vec3f, u16, f32, f32, f32);
void func_802B8414(uintptr_t, Mat4, s16, s16, s32);
extern u16 gRandomSeed16;