We are collecting silver coins in Treasure Caves. (1/8 silver coins) (#422)

* 3 new matches

* Fix arrays

* Get llcvt compiling finally

* Finsh 2 more libultra files

* Match func_80022E18

* Match func_8001BF20

* func_8001CD28 NON_MATCHING

* Match func_80026C14

* Match func_8005FF40

* Match func_80061A00

* Match func_8005FCD0

* Update score

* Fix NON_EQUIVALENT builds
This commit is contained in:
Ryan Myers
2023-10-16 08:12:02 -04:00
committed by GitHub
parent 658ab3f5f0
commit 38a76249f9
39 changed files with 822 additions and 2301 deletions
+27
View File
@@ -0,0 +1,27 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800C9AF0 */
.include "macros.inc"
.set noat # allow manual use of $at
.set noreorder # dont insert nops after branches
.set gp=64 # 64-bit instructions are used
/* Hacky workaround. This is required because after alSynSetPriority, the linker seems to have added a bunch of nops. */
glabel __NOPS_NEEDED
/* 0CA6F0 800C9AF0 00000000 */ nop
/* 0CA6F4 800C9AF4 00000000 */ nop
/* 0CA6F8 800C9AF8 00000000 */ nop
/* 0CA6FC 800C9AFC 00000000 */ nop
/* 0CA700 800C9B00 00000000 */ nop
/* 0CA704 800C9B04 00000000 */ nop
/* 0CA708 800C9B08 00000000 */ nop
/* 0CA70C 800C9B0C 00000000 */ nop
/* 0CA710 800C9B10 00000000 */ nop
/* 0CA714 800C9B14 00000000 */ nop
/* 0CA718 800C9B18 00000000 */ nop
/* 0CA71C 800C9B1C 00000000 */ nop
/* 0CA720 800C9B20 00000000 */ nop
/* 0CA724 800C9B24 00000000 */ nop
/* 0CA728 800C9B28 00000000 */ nop
/* 0CA72C 800C9B2C 00000000 */ nop
@@ -1,27 +0,0 @@
/* Hacky workaround. This is required because after alSynSetPriority, the linker seems to have added a bunch of nops. */
glabel __NOPS_NEEDED
/* 0CA6F0 800C9AF0 00000000 */ nop
/* 0CA6F4 800C9AF4 00000000 */ nop
/* 0CA6F8 800C9AF8 00000000 */ nop
/* 0CA6FC 800C9AFC 00000000 */ nop
/* 0CA700 800C9B00 00000000 */ nop
/* 0CA704 800C9B04 00000000 */ nop
/* 0CA708 800C9B08 00000000 */ nop
/* 0CA70C 800C9B0C 00000000 */ nop
/* 0CA710 800C9B10 00000000 */ nop
/* 0CA714 800C9B14 00000000 */ nop
/* 0CA718 800C9B18 00000000 */ nop
/* 0CA71C 800C9B1C 00000000 */ nop
/* 0CA720 800C9B20 00000000 */ nop
/* 0CA724 800C9B24 00000000 */ nop
/* 0CA728 800C9B28 00000000 */ nop
/* 0CA72C 800C9B2C 00000000 */ nop
glabel __d_to_ll
/* 0CA730 800C9B30 46206109 */ trunc.l.d $f4, $f12
/* 0CA734 800C9B34 44222000 */ dmfc1 $v0, $f4
/* 0CA738 800C9B38 00000000 */ nop
/* 0CA73C 800C9B3C 0002183C */ dsll32 $v1, $v0, 0
/* 0CA740 800C9B40 0003183F */ dsra32 $v1, $v1, 0
/* 0CA744 800C9B44 03E00008 */ jr $ra
/* 0CA748 800C9B48 0002103F */ dsra32 $v0, $v0, 0
@@ -1,113 +0,0 @@
.late_rodata
glabel D_800E9550
.double -0.0
glabel D_800E9558
.double -0.0
.text
glabel __f_to_ll
/* 0CA74C 800C9B4C 46006109 */ trunc.l.s $f4, $f12
/* 0CA750 800C9B50 44222000 */ dmfc1 $v0, $f4
/* 0CA754 800C9B54 00000000 */ nop
/* 0CA758 800C9B58 0002183C */ dsll32 $v1, $v0, 0
/* 0CA75C 800C9B5C 0003183F */ dsra32 $v1, $v1, 0
/* 0CA760 800C9B60 03E00008 */ jr $ra
/* 0CA764 800C9B64 0002103F */ dsra32 $v0, $v0, 0
glabel __d_to_ull
/* 0CA768 800C9B68 444EF800 */ cfc1 $t6, $31
/* 0CA76C 800C9B6C 24020001 */ li $v0, 1
/* 0CA770 800C9B70 44C2F800 */ ctc1 $v0, $31
/* 0CA774 800C9B74 00000000 */ nop
/* 0CA778 800C9B78 46206125 */ cvt.l.d $f4, $f12
/* 0CA77C 800C9B7C 4442F800 */ cfc1 $v0, $31
/* 0CA780 800C9B80 00000000 */ nop
/* 0CA784 800C9B84 30410004 */ andi $at, $v0, 4
/* 0CA788 800C9B88 30420078 */ andi $v0, $v0, 0x78
/* 0CA78C 800C9B8C 10400015 */ beqz $v0, .L800C9BE4
/* 0CA790 800C9B90 3C0143E0 */ li $at, 0x43E00000 # 448.000000
/* 0CA794 800C9B94 44812800 */ mtc1 $at, $f5
/* 0CA798 800C9B98 44802000 */ mtc1 $zero, $f4
/* 0CA79C 800C9B9C 24020001 */ li $v0, 1
/* 0CA7A0 800C9BA0 46246101 */ sub.d $f4, $f12, $f4
/* 0CA7A4 800C9BA4 44C2F800 */ ctc1 $v0, $31
/* 0CA7A8 800C9BA8 00000000 */ nop
/* 0CA7AC 800C9BAC 46202125 */ cvt.l.d $f4, $f4
/* 0CA7B0 800C9BB0 4442F800 */ cfc1 $v0, $31
/* 0CA7B4 800C9BB4 00000000 */ nop
/* 0CA7B8 800C9BB8 30410004 */ andi $at, $v0, 4
/* 0CA7BC 800C9BBC 30420078 */ andi $v0, $v0, 0x78
/* 0CA7C0 800C9BC0 14400006 */ bnez $v0, .L800C9BDC
/* 0CA7C4 800C9BC4 00000000 */ nop
/* 0CA7C8 800C9BC8 3C0F800F */ lui $t7, %hi(D_800E9550) # $t7, 0x800f
/* 0CA7CC 800C9BCC DDEF9550 */ ld $t7, %lo(D_800E9550)($t7)
/* 0CA7D0 800C9BD0 44222000 */ dmfc1 $v0, $f4
/* 0CA7D4 800C9BD4 10000007 */ b .L800C9BF4
/* 0CA7D8 800C9BD8 004F1025 */ or $v0, $v0, $t7
.L800C9BDC:
/* 0CA7DC 800C9BDC 10000005 */ b .L800C9BF4
/* 0CA7E0 800C9BE0 2402FFFF */ li $v0, -1
.L800C9BE4:
/* 0CA7E4 800C9BE4 44222000 */ dmfc1 $v0, $f4
/* 0CA7E8 800C9BE8 00000000 */ nop
/* 0CA7EC 800C9BEC 0440FFFB */ bltz $v0, .L800C9BDC
/* 0CA7F0 800C9BF0 00000000 */ nop
.L800C9BF4:
/* 0CA7F4 800C9BF4 44CEF800 */ ctc1 $t6, $31
/* 0CA7F8 800C9BF8 0002183C */ dsll32 $v1, $v0, 0
/* 0CA7FC 800C9BFC 0003183F */ dsra32 $v1, $v1, 0
/* 0CA800 800C9C00 03E00008 */ jr $ra
/* 0CA804 800C9C04 0002103F */ dsra32 $v0, $v0, 0
glabel __f_to_ull
/* 0CA808 800C9C08 444EF800 */ cfc1 $t6, $31
/* 0CA80C 800C9C0C 24020001 */ li $v0, 1
/* 0CA810 800C9C10 44C2F800 */ ctc1 $v0, $31
/* 0CA814 800C9C14 00000000 */ nop
/* 0CA818 800C9C18 46006125 */ cvt.l.s $f4, $f12
/* 0CA81C 800C9C1C 4442F800 */ cfc1 $v0, $31
/* 0CA820 800C9C20 00000000 */ nop
/* 0CA824 800C9C24 30410004 */ andi $at, $v0, 4
/* 0CA828 800C9C28 30420078 */ andi $v0, $v0, 0x78
/* 0CA82C 800C9C2C 10400014 */ beqz $v0, .L800C9C80
/* 0CA830 800C9C30 3C015F00 */ li $at, 0x5F000000 # 9223372036854775808.000000
/* 0CA834 800C9C34 44812000 */ mtc1 $at, $f4
/* 0CA838 800C9C38 24020001 */ li $v0, 1
/* 0CA83C 800C9C3C 46046101 */ sub.s $f4, $f12, $f4
/* 0CA840 800C9C40 44C2F800 */ ctc1 $v0, $31
/* 0CA844 800C9C44 00000000 */ nop
/* 0CA848 800C9C48 46002125 */ cvt.l.s $f4, $f4
/* 0CA84C 800C9C4C 4442F800 */ cfc1 $v0, $31
/* 0CA850 800C9C50 00000000 */ nop
/* 0CA854 800C9C54 30410004 */ andi $at, $v0, 4
/* 0CA858 800C9C58 30420078 */ andi $v0, $v0, 0x78
/* 0CA85C 800C9C5C 14400006 */ bnez $v0, .L800C9C78
/* 0CA860 800C9C60 00000000 */ nop
/* 0CA864 800C9C64 3C0F800F */ lui $t7, %hi(D_800E9558) # $t7, 0x800f
/* 0CA868 800C9C68 DDEF9558 */ ld $t7, %lo(D_800E9558)($t7)
/* 0CA86C 800C9C6C 44222000 */ dmfc1 $v0, $f4
/* 0CA870 800C9C70 10000007 */ b .L800C9C90
/* 0CA874 800C9C74 004F1025 */ or $v0, $v0, $t7
.L800C9C78:
/* 0CA878 800C9C78 10000005 */ b .L800C9C90
/* 0CA87C 800C9C7C 2402FFFF */ li $v0, -1
.L800C9C80:
/* 0CA880 800C9C80 44222000 */ dmfc1 $v0, $f4
/* 0CA884 800C9C84 00000000 */ nop
/* 0CA888 800C9C88 0440FFFB */ bltz $v0, .L800C9C78
/* 0CA88C 800C9C8C 00000000 */ nop
.L800C9C90:
/* 0CA890 800C9C90 44CEF800 */ ctc1 $t6, $31
/* 0CA894 800C9C94 0002183C */ dsll32 $v1, $v0, 0
/* 0CA898 800C9C98 0003183F */ dsra32 $v1, $v1, 0
/* 0CA89C 800C9C9C 03E00008 */ jr $ra
/* 0CA8A0 800C9CA0 0002103F */ dsra32 $v0, $v0, 0
glabel __ll_to_d
/* 0CA8A4 800C9CA4 AFA40000 */ sw $a0, ($sp)
/* 0CA8A8 800C9CA8 AFA50004 */ sw $a1, 4($sp)
/* 0CA8AC 800C9CAC DFAE0000 */ ld $t6, ($sp)
/* 0CA8B0 800C9CB0 44AE2000 */ dmtc1 $t6, $f4
/* 0CA8B4 800C9CB4 03E00008 */ jr $ra
/* 0CA8B8 800C9CB8 46A02021 */ cvt.d.l $f0, $f4
@@ -1,42 +0,0 @@
glabel __ll_to_f
/* 0CA8BC 800C9CBC AFA40000 */ sw $a0, ($sp)
/* 0CA8C0 800C9CC0 AFA50004 */ sw $a1, 4($sp)
/* 0CA8C4 800C9CC4 DFAE0000 */ ld $t6, ($sp)
/* 0CA8C8 800C9CC8 44AE2000 */ dmtc1 $t6, $f4
/* 0CA8CC 800C9CCC 03E00008 */ jr $ra
/* 0CA8D0 800C9CD0 46A02020 */ cvt.s.l $f0, $f4
glabel __ull_to_d
/* 0CA8D4 800C9CD4 AFA40000 */ sw $a0, ($sp)
/* 0CA8D8 800C9CD8 AFA50004 */ sw $a1, 4($sp)
/* 0CA8DC 800C9CDC DFAE0000 */ ld $t6, ($sp)
/* 0CA8E0 800C9CE0 44AE2000 */ dmtc1 $t6, $f4
/* 0CA8E4 800C9CE4 05C10006 */ bgez $t6, .L800C9D00
/* 0CA8E8 800C9CE8 46A02021 */ cvt.d.l $f0, $f4
/* 0CA8EC 800C9CEC 3C0141F0 */ li $at, 0x41F00000 # 30.000000
/* 0CA8F0 800C9CF0 44813800 */ mtc1 $at, $f7
/* 0CA8F4 800C9CF4 44803000 */ mtc1 $zero, $f6
/* 0CA8F8 800C9CF8 00000000 */ nop
/* 0CA8FC 800C9CFC 46260000 */ add.d $f0, $f0, $f6
.L800C9D00:
/* 0CA900 800C9D00 03E00008 */ jr $ra
/* 0CA904 800C9D04 00000000 */ nop
glabel __ull_to_f
/* 0CA908 800C9D08 AFA40000 */ sw $a0, ($sp)
/* 0CA90C 800C9D0C AFA50004 */ sw $a1, 4($sp)
/* 0CA910 800C9D10 DFAE0000 */ ld $t6, ($sp)
/* 0CA914 800C9D14 44AE2000 */ dmtc1 $t6, $f4
/* 0CA918 800C9D18 05C10005 */ bgez $t6, .L800C9D30
/* 0CA91C 800C9D1C 46A02020 */ cvt.s.l $f0, $f4
/* 0CA920 800C9D20 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0CA924 800C9D24 44813000 */ mtc1 $at, $f6
/* 0CA928 800C9D28 00000000 */ nop
/* 0CA92C 800C9D2C 46060000 */ add.s $f0, $f0, $f6
.L800C9D30:
/* 0CA930 800C9D30 03E00008 */ jr $ra
/* 0CA934 800C9D34 00000000 */ nop
/* 0CA938 800C9D38 00000000 */ nop
/* 0CA93C 800C9D3C 00000000 */ nop
@@ -1,27 +0,0 @@
glabel __ll_div
/* 0CF76C 800CEB6C AFA40000 */ sw $a0, ($sp)
/* 0CF770 800CEB70 AFA50004 */ sw $a1, 4($sp)
/* 0CF774 800CEB74 AFA60008 */ sw $a2, 8($sp)
/* 0CF778 800CEB78 AFA7000C */ sw $a3, 0xc($sp)
/* 0CF77C 800CEB7C DFAF0008 */ ld $t7, 8($sp)
/* 0CF780 800CEB80 DFAE0000 */ ld $t6, ($sp)
/* 0CF784 800CEB84 01CF001E */ ddiv $zero, $t6, $t7
/* 0CF788 800CEB88 00000000 */ nop
/* 0CF78C 800CEB8C 15E00002 */ bnez $t7, .L800CEB98
/* 0CF790 800CEB90 00000000 */ nop
/* 0CF794 800CEB94 0007000D */ break 7
.L800CEB98:
/* 0CF798 800CEB98 6401FFFF */ daddiu $at, $zero, -1
/* 0CF79C 800CEB9C 15E10005 */ bne $t7, $at, .L800CEBB4
/* 0CF7A0 800CEBA0 64010001 */ daddiu $at, $zero, 1
/* 0CF7A4 800CEBA4 00010FFC */ dsll32 $at, $at, 0x1f
/* 0CF7A8 800CEBA8 15C10002 */ bne $t6, $at, .L800CEBB4
/* 0CF7AC 800CEBAC 00000000 */ nop
/* 0CF7B0 800CEBB0 0006000D */ break 6
.L800CEBB4:
/* 0CF7B4 800CEBB4 00001012 */ mflo $v0
/* 0CF7B8 800CEBB8 0002183C */ dsll32 $v1, $v0, 0
/* 0CF7BC 800CEBBC 0003183F */ dsra32 $v1, $v1, 0
/* 0CF7C0 800CEBC0 03E00008 */ jr $ra
/* 0CF7C4 800CEBC4 0002103F */ dsra32 $v0, $v0, 0
@@ -1,31 +0,0 @@
glabel __ll_lshift
/* 0CF704 800CEB04 AFA40000 */ sw $a0, ($sp)
/* 0CF708 800CEB08 AFA50004 */ sw $a1, 4($sp)
/* 0CF70C 800CEB0C AFA60008 */ sw $a2, 8($sp)
/* 0CF710 800CEB10 AFA7000C */ sw $a3, 0xc($sp)
/* 0CF714 800CEB14 DFAF0008 */ ld $t7, 8($sp)
/* 0CF718 800CEB18 DFAE0000 */ ld $t6, ($sp)
/* 0CF71C 800CEB1C 01EE1014 */ dsllv $v0, $t6, $t7
/* 0CF720 800CEB20 0002183C */ dsll32 $v1, $v0, 0
/* 0CF724 800CEB24 0003183F */ dsra32 $v1, $v1, 0
/* 0CF728 800CEB28 03E00008 */ jr $ra
/* 0CF72C 800CEB2C 0002103F */ dsra32 $v0, $v0, 0
glabel func_800CEB30
/* 0CF730 800CEB30 AFA40000 */ sw $a0, ($sp)
/* 0CF734 800CEB34 AFA50004 */ sw $a1, 4($sp)
/* 0CF738 800CEB38 AFA60008 */ sw $a2, 8($sp)
/* 0CF73C 800CEB3C AFA7000C */ sw $a3, 0xc($sp)
/* 0CF740 800CEB40 DFAF0008 */ ld $t7, 8($sp)
/* 0CF744 800CEB44 DFAE0000 */ ld $t6, ($sp)
/* 0CF748 800CEB48 01CF001F */ ddivu $zero, $t6, $t7
/* 0CF74C 800CEB4C 15E00002 */ bnez $t7, .L800CEB58
/* 0CF750 800CEB50 00000000 */ nop
/* 0CF754 800CEB54 0007000D */ break 7
.L800CEB58:
/* 0CF758 800CEB58 00001010 */ mfhi $v0
/* 0CF75C 800CEB5C 0002183C */ dsll32 $v1, $v0, 0
/* 0CF760 800CEB60 0003183F */ dsra32 $v1, $v1, 0
/* 0CF764 800CEB64 03E00008 */ jr $ra
/* 0CF768 800CEB68 0002103F */ dsra32 $v0, $v0, 0
@@ -1,14 +0,0 @@
glabel __ll_mul
/* 0CF7C8 800CEBC8 AFA40000 */ sw $a0, ($sp)
/* 0CF7CC 800CEBCC AFA50004 */ sw $a1, 4($sp)
/* 0CF7D0 800CEBD0 AFA60008 */ sw $a2, 8($sp)
/* 0CF7D4 800CEBD4 AFA7000C */ sw $a3, 0xc($sp)
/* 0CF7D8 800CEBD8 DFAF0008 */ ld $t7, 8($sp)
/* 0CF7DC 800CEBDC DFAE0000 */ ld $t6, ($sp)
/* 0CF7E0 800CEBE0 01CF001D */ dmultu $t6, $t7
/* 0CF7E4 800CEBE4 00001012 */ mflo $v0
/* 0CF7E8 800CEBE8 0002183C */ dsll32 $v1, $v0, 0
/* 0CF7EC 800CEBEC 0003183F */ dsra32 $v1, $v1, 0
/* 0CF7F0 800CEBF0 03E00008 */ jr $ra
/* 0CF7F4 800CEBF4 0002103F */ dsra32 $v0, $v0, 0
@@ -1,18 +0,0 @@
glabel __ull_div
/* 0CF6C8 800CEAC8 AFA40000 */ sw $a0, ($sp)
/* 0CF6CC 800CEACC AFA50004 */ sw $a1, 4($sp)
/* 0CF6D0 800CEAD0 AFA60008 */ sw $a2, 8($sp)
/* 0CF6D4 800CEAD4 AFA7000C */ sw $a3, 0xc($sp)
/* 0CF6D8 800CEAD8 DFAF0008 */ ld $t7, 8($sp)
/* 0CF6DC 800CEADC DFAE0000 */ ld $t6, ($sp)
/* 0CF6E0 800CEAE0 01CF001F */ ddivu $zero, $t6, $t7
/* 0CF6E4 800CEAE4 15E00002 */ bnez $t7, .L800CEAF0
/* 0CF6E8 800CEAE8 00000000 */ nop
/* 0CF6EC 800CEAEC 0007000D */ break 7
.L800CEAF0:
/* 0CF6F0 800CEAF0 00001012 */ mflo $v0
/* 0CF6F4 800CEAF4 0002183C */ dsll32 $v1, $v0, 0
/* 0CF6F8 800CEAF8 0003183F */ dsra32 $v1, $v1, 0
/* 0CF6FC 800CEAFC 03E00008 */ jr $ra
/* 0CF700 800CEB00 0002103F */ dsra32 $v0, $v0, 0
@@ -1,87 +0,0 @@
glabel __ull_divremi
/* 0CF7F8 800CEBF8 87AF0012 */ lh $t7, 0x12($sp)
/* 0CF7FC 800CEBFC AFA60008 */ sw $a2, 8($sp)
/* 0CF800 800CEC00 AFA7000C */ sw $a3, 0xc($sp)
/* 0CF804 800CEC04 DFAE0008 */ ld $t6, 8($sp)
/* 0CF808 800CEC08 01E0C025 */ move $t8, $t7
/* 0CF80C 800CEC0C 0300C825 */ move $t9, $t8
/* 0CF810 800CEC10 01D9001F */ ddivu $zero, $t6, $t9
/* 0CF814 800CEC14 17200002 */ bnez $t9, .L800CEC20
/* 0CF818 800CEC18 00000000 */ nop
/* 0CF81C 800CEC1C 0007000D */ break 7
.L800CEC20:
/* 0CF820 800CEC20 00004012 */ mflo $t0
/* 0CF824 800CEC24 FC880000 */ sd $t0, ($a0)
/* 0CF828 800CEC28 87AA0012 */ lh $t2, 0x12($sp)
/* 0CF82C 800CEC2C DFA90008 */ ld $t1, 8($sp)
/* 0CF830 800CEC30 01405825 */ move $t3, $t2
/* 0CF834 800CEC34 01606025 */ move $t4, $t3
/* 0CF838 800CEC38 012C001F */ ddivu $zero, $t1, $t4
/* 0CF83C 800CEC3C 15800002 */ bnez $t4, .L800CEC48
/* 0CF840 800CEC40 00000000 */ nop
/* 0CF844 800CEC44 0007000D */ break 7
.L800CEC48:
/* 0CF848 800CEC48 00006810 */ mfhi $t5
/* 0CF84C 800CEC4C FCAD0000 */ sd $t5, ($a1)
/* 0CF850 800CEC50 03E00008 */ jr $ra
/* 0CF854 800CEC54 00000000 */ nop
glabel func_800CEC58
/* 0CF858 800CEC58 27BDFFF8 */ addiu $sp, $sp, -8
/* 0CF85C 800CEC5C AFA40008 */ sw $a0, 8($sp)
/* 0CF860 800CEC60 AFA5000C */ sw $a1, 0xc($sp)
/* 0CF864 800CEC64 AFA60010 */ sw $a2, 0x10($sp)
/* 0CF868 800CEC68 AFA70014 */ sw $a3, 0x14($sp)
/* 0CF86C 800CEC6C DFAF0010 */ ld $t7, 0x10($sp)
/* 0CF870 800CEC70 DFAE0008 */ ld $t6, 8($sp)
/* 0CF874 800CEC74 01CF001E */ ddiv $zero, $t6, $t7
/* 0CF878 800CEC78 00000000 */ nop
/* 0CF87C 800CEC7C 15E00002 */ bnez $t7, .L800CEC88
/* 0CF880 800CEC80 00000000 */ nop
/* 0CF884 800CEC84 0007000D */ break 7
.L800CEC88:
/* 0CF888 800CEC88 6401FFFF */ daddiu $at, $zero, -1
/* 0CF88C 800CEC8C 15E10005 */ bne $t7, $at, .L800CECA4
/* 0CF890 800CEC90 64010001 */ daddiu $at, $zero, 1
/* 0CF894 800CEC94 00010FFC */ dsll32 $at, $at, 0x1f
/* 0CF898 800CEC98 15C10002 */ bne $t6, $at, .L800CECA4
/* 0CF89C 800CEC9C 00000000 */ nop
/* 0CF8A0 800CECA0 0006000D */ break 6
.L800CECA4:
/* 0CF8A4 800CECA4 0000C010 */ mfhi $t8
/* 0CF8A8 800CECA8 FFB80000 */ sd $t8, ($sp)
/* 0CF8AC 800CECAC 07010003 */ bgez $t8, .L800CECBC
/* 0CF8B0 800CECB0 00000000 */ nop
/* 0CF8B4 800CECB4 1DE00007 */ bgtz $t7, .L800CECD4
/* 0CF8B8 800CECB8 00000000 */ nop
.L800CECBC:
/* 0CF8BC 800CECBC DFB90000 */ ld $t9, ($sp)
/* 0CF8C0 800CECC0 1B200008 */ blez $t9, .L800CECE4
/* 0CF8C4 800CECC4 00000000 */ nop
/* 0CF8C8 800CECC8 DFA80010 */ ld $t0, 0x10($sp)
/* 0CF8CC 800CECCC 05010005 */ bgez $t0, .L800CECE4
/* 0CF8D0 800CECD0 00000000 */ nop
.L800CECD4:
/* 0CF8D4 800CECD4 DFA90000 */ ld $t1, ($sp)
/* 0CF8D8 800CECD8 DFAA0010 */ ld $t2, 0x10($sp)
/* 0CF8DC 800CECDC 012A582D */ daddu $t3, $t1, $t2
/* 0CF8E0 800CECE0 FFAB0000 */ sd $t3, ($sp)
.L800CECE4:
/* 0CF8E4 800CECE4 8FA20000 */ lw $v0, ($sp)
/* 0CF8E8 800CECE8 8FA30004 */ lw $v1, 4($sp)
/* 0CF8EC 800CECEC 03E00008 */ jr $ra
/* 0CF8F0 800CECF0 27BD0008 */ addiu $sp, $sp, 8
glabel func_800CECF4
/* 0CF8F4 800CECF4 AFA40000 */ sw $a0, ($sp)
/* 0CF8F8 800CECF8 AFA50004 */ sw $a1, 4($sp)
/* 0CF8FC 800CECFC AFA60008 */ sw $a2, 8($sp)
/* 0CF900 800CED00 AFA7000C */ sw $a3, 0xc($sp)
/* 0CF904 800CED04 DFAF0008 */ ld $t7, 8($sp)
/* 0CF908 800CED08 DFAE0000 */ ld $t6, ($sp)
/* 0CF90C 800CED0C 01EE1017 */ dsrav $v0, $t6, $t7
/* 0CF910 800CED10 0002183C */ dsll32 $v1, $v0, 0
/* 0CF914 800CED14 0003183F */ dsra32 $v1, $v1, 0
/* 0CF918 800CED18 03E00008 */ jr $ra
/* 0CF91C 800CED1C 0002103F */ dsra32 $v0, $v0, 0
@@ -1,18 +0,0 @@
glabel __ull_rem
/* 0CF68C 800CEA8C AFA40000 */ sw $a0, ($sp)
/* 0CF690 800CEA90 AFA50004 */ sw $a1, 4($sp)
/* 0CF694 800CEA94 AFA60008 */ sw $a2, 8($sp)
/* 0CF698 800CEA98 AFA7000C */ sw $a3, 0xc($sp)
/* 0CF69C 800CEA9C DFAF0008 */ ld $t7, 8($sp)
/* 0CF6A0 800CEAA0 DFAE0000 */ ld $t6, ($sp)
/* 0CF6A4 800CEAA4 01CF001F */ ddivu $zero, $t6, $t7
/* 0CF6A8 800CEAA8 15E00002 */ bnez $t7, .L800CEAB4
/* 0CF6AC 800CEAAC 00000000 */ nop
/* 0CF6B0 800CEAB0 0007000D */ break 7
.L800CEAB4:
/* 0CF6B4 800CEAB4 00001010 */ mfhi $v0
/* 0CF6B8 800CEAB8 0002183C */ dsll32 $v1, $v0, 0
/* 0CF6BC 800CEABC 0003183F */ dsra32 $v1, $v1, 0
/* 0CF6C0 800CEAC0 03E00008 */ jr $ra
/* 0CF6C4 800CEAC4 0002103F */ dsra32 $v0, $v0, 0
@@ -1,13 +0,0 @@
glabel __ull_rshift
/* 0CF660 800CEA60 AFA40000 */ sw $a0, ($sp)
/* 0CF664 800CEA64 AFA50004 */ sw $a1, 4($sp)
/* 0CF668 800CEA68 AFA60008 */ sw $a2, 8($sp)
/* 0CF66C 800CEA6C AFA7000C */ sw $a3, 0xc($sp)
/* 0CF670 800CEA70 DFAF0008 */ ld $t7, 8($sp)
/* 0CF674 800CEA74 DFAE0000 */ ld $t6, ($sp)
/* 0CF678 800CEA78 01EE1016 */ dsrlv $v0, $t6, $t7
/* 0CF67C 800CEA7C 0002183C */ dsll32 $v1, $v0, 0
/* 0CF680 800CEA80 0003183F */ dsra32 $v1, $v1, 0
/* 0CF684 800CEA84 03E00008 */ jr $ra
/* 0CF688 800CEA88 0002103F */ dsra32 $v0, $v0, 0
@@ -1,42 +0,0 @@
glabel ldiv
/* 0D8170 800D7570 00A6001A */ div $zero, $a1, $a2
/* 0D8174 800D7574 00001012 */ mflo $v0
/* 0D8178 800D7578 27BDFFF8 */ addiu $sp, $sp, -8
/* 0D817C 800D757C 14C00002 */ bnez $a2, .L800D7588
/* 0D8180 800D7580 00000000 */ nop
/* 0D8184 800D7584 0007000D */ break 7
.L800D7588:
/* 0D8188 800D7588 2401FFFF */ li $at, -1
/* 0D818C 800D758C 14C10004 */ bne $a2, $at, .L800D75A0
/* 0D8190 800D7590 3C018000 */ lui $at, 0x8000
/* 0D8194 800D7594 14A10002 */ bne $a1, $at, .L800D75A0
/* 0D8198 800D7598 00000000 */ nop
/* 0D819C 800D759C 0006000D */ break 6
.L800D75A0:
/* 0D81A0 800D75A0 00C20019 */ multu $a2, $v0
/* 0D81A4 800D75A4 AFA20000 */ sw $v0, ($sp)
/* 0D81A8 800D75A8 27AF0000 */ addiu $t7, $sp, 0
/* 0D81AC 800D75AC 00007012 */ mflo $t6
/* 0D81B0 800D75B0 00AE1823 */ subu $v1, $a1, $t6
/* 0D81B4 800D75B4 04410008 */ bgez $v0, .L800D75D8
/* 0D81B8 800D75B8 AFA30004 */ sw $v1, 4($sp)
/* 0D81BC 800D75BC AFA20000 */ sw $v0, ($sp)
/* 0D81C0 800D75C0 18600005 */ blez $v1, .L800D75D8
/* 0D81C4 800D75C4 AFA30004 */ sw $v1, 4($sp)
/* 0D81C8 800D75C8 24420001 */ addiu $v0, $v0, 1
/* 0D81CC 800D75CC 00661823 */ subu $v1, $v1, $a2
/* 0D81D0 800D75D0 AFA30004 */ sw $v1, 4($sp)
/* 0D81D4 800D75D4 AFA20000 */ sw $v0, ($sp)
.L800D75D8:
/* 0D81D8 800D75D8 8DE10000 */ lw $at, ($t7)
/* 0D81DC 800D75DC 00801025 */ move $v0, $a0
/* 0D81E0 800D75E0 AC810000 */ sw $at, ($a0)
/* 0D81E4 800D75E4 8DE80004 */ lw $t0, 4($t7)
/* 0D81E8 800D75E8 27BD0008 */ addiu $sp, $sp, 8
/* 0D81EC 800D75EC 03E00008 */ jr $ra
/* 0D81F0 800D75F0 AC880004 */ sw $t0, 4($a0)
/* 0D81F4 800D75F4 00000000 */ nop
/* 0D81F8 800D75F8 00000000 */ nop
/* 0D81FC 800D75FC 00000000 */ nop
@@ -1,70 +0,0 @@
glabel lldiv
/* 0D8070 800D7470 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0D8074 800D7474 AFA40030 */ sw $a0, 0x30($sp)
/* 0D8078 800D7478 AFBF0014 */ sw $ra, 0x14($sp)
/* 0D807C 800D747C AFA60038 */ sw $a2, 0x38($sp)
/* 0D8080 800D7480 AFA7003C */ sw $a3, 0x3c($sp)
/* 0D8084 800D7484 00C02025 */ move $a0, $a2
/* 0D8088 800D7488 00E02825 */ move $a1, $a3
/* 0D808C 800D748C 8FA70044 */ lw $a3, 0x44($sp)
/* 0D8090 800D7490 0C033ADB */ jal __ll_div
/* 0D8094 800D7494 8FA60040 */ lw $a2, 0x40($sp)
/* 0D8098 800D7498 AFA20020 */ sw $v0, 0x20($sp)
/* 0D809C 800D749C AFA30024 */ sw $v1, 0x24($sp)
/* 0D80A0 800D74A0 8FA40040 */ lw $a0, 0x40($sp)
/* 0D80A4 800D74A4 8FA50044 */ lw $a1, 0x44($sp)
/* 0D80A8 800D74A8 00403025 */ move $a2, $v0
/* 0D80AC 800D74AC 0C033AF2 */ jal __ll_mul
/* 0D80B0 800D74B0 00603825 */ move $a3, $v1
/* 0D80B4 800D74B4 8FAE0038 */ lw $t6, 0x38($sp)
/* 0D80B8 800D74B8 8FAF003C */ lw $t7, 0x3c($sp)
/* 0D80BC 800D74BC 8FA80020 */ lw $t0, 0x20($sp)
/* 0D80C0 800D74C0 01C2C023 */ subu $t8, $t6, $v0
/* 0D80C4 800D74C4 01E3082B */ sltu $at, $t7, $v1
/* 0D80C8 800D74C8 0301C023 */ subu $t8, $t8, $at
/* 0D80CC 800D74CC 01E3C823 */ subu $t9, $t7, $v1
/* 0D80D0 800D74D0 AFB9002C */ sw $t9, 0x2c($sp)
/* 0D80D4 800D74D4 AFB80028 */ sw $t8, 0x28($sp)
/* 0D80D8 800D74D8 1D000017 */ bgtz $t0, .L800D7538
/* 0D80DC 800D74DC 8FA90024 */ lw $t1, 0x24($sp)
/* 0D80E0 800D74E0 05000003 */ bltz $t0, .L800D74F0
/* 0D80E4 800D74E4 00000000 */ nop
/* 0D80E8 800D74E8 10000014 */ b .L800D753C
/* 0D80EC 800D74EC 27A80020 */ addiu $t0, $sp, 0x20
.L800D74F0:
/* 0D80F0 800D74F0 07020012 */ bltzl $t8, .L800D753C
/* 0D80F4 800D74F4 27A80020 */ addiu $t0, $sp, 0x20
/* 0D80F8 800D74F8 1F000003 */ bgtz $t8, .L800D7508
/* 0D80FC 800D74FC 252B0001 */ addiu $t3, $t1, 1
/* 0D8100 800D7500 5320000E */ beql $t9, $zero, .L800D753C
/* 0D8104 800D7504 27A80020 */ addiu $t0, $sp, 0x20
.L800D7508:
/* 0D8108 800D7508 8FAC0040 */ lw $t4, 0x40($sp)
/* 0D810C 800D750C 8FAD0044 */ lw $t5, 0x44($sp)
/* 0D8110 800D7510 2D610001 */ sltiu $at, $t3, 1
/* 0D8114 800D7514 01015021 */ addu $t2, $t0, $at
/* 0D8118 800D7518 030C7023 */ subu $t6, $t8, $t4
/* 0D811C 800D751C 032D082B */ sltu $at, $t9, $t5
/* 0D8120 800D7520 01C17023 */ subu $t6, $t6, $at
/* 0D8124 800D7524 032D7823 */ subu $t7, $t9, $t5
/* 0D8128 800D7528 AFAA0020 */ sw $t2, 0x20($sp)
/* 0D812C 800D752C AFAB0024 */ sw $t3, 0x24($sp)
/* 0D8130 800D7530 AFAF002C */ sw $t7, 0x2c($sp)
/* 0D8134 800D7534 AFAE0028 */ sw $t6, 0x28($sp)
.L800D7538:
/* 0D8138 800D7538 27A80020 */ addiu $t0, $sp, 0x20
.L800D753C:
/* 0D813C 800D753C 8FA20030 */ lw $v0, 0x30($sp)
/* 0D8140 800D7540 8D010000 */ lw $at, ($t0)
/* 0D8144 800D7544 AC410000 */ sw $at, ($v0)
/* 0D8148 800D7548 8D0B0004 */ lw $t3, 4($t0)
/* 0D814C 800D754C AC4B0004 */ sw $t3, 4($v0)
/* 0D8150 800D7550 8D010008 */ lw $at, 8($t0)
/* 0D8154 800D7554 AC410008 */ sw $at, 8($v0)
/* 0D8158 800D7558 8D0B000C */ lw $t3, 0xc($t0)
/* 0D815C 800D755C AC4B000C */ sw $t3, 0xc($v0)
/* 0D8160 800D7560 8FBF0014 */ lw $ra, 0x14($sp)
/* 0D8164 800D7564 27BD0030 */ addiu $sp, $sp, 0x30
/* 0D8168 800D7568 03E00008 */ jr $ra
/* 0D816C 800D756C 00000000 */ nop
+1 -7
View File
@@ -1,10 +1,8 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800D7470 */
#include "macros.h"
#include <stdlib.h>
#ifdef NON_EQUIVALENT
//This needs to be compiled with mips3, which isn't yet supported
ldiv_t ldiv(long num, long denom)
{
ldiv_t ret;
@@ -34,7 +32,3 @@ lldiv_t lldiv(long long num, long long denom)
return ret;
}
#else
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/lldiv.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D3020/ldiv.s")
#endif
-14
View File
@@ -1,11 +1,6 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800CE730 */
#include "types.h"
#include "macros.h"
#ifdef NON_EQUIVALENT
//Thse need to be compiled with -mips3, and linked differently
unsigned long long __ull_rshift(unsigned long long a0, unsigned long long a1)
{
return a0 >> a1;
@@ -58,12 +53,3 @@ long long __ll_rshift(long long a0, long long a1)
{
return a0 >> a1;
}
#else
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_rshift.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_rem.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_div.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_lshift.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_div.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ll_mul.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CF330/__ull_divremi.s")
#endif
-9
View File
@@ -1,8 +1,6 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800C9B30 */
#ifdef NON_EQUIVALENT
//This needs to be compiled with mips3, which isn't yet supported
long long __d_to_ll(double d) {
return d;
}
@@ -27,10 +25,3 @@ double __ull_to_d(unsigned long long u) {
float __ull_to_f(unsigned long long u) {
return u;
}
#else
#include "types.h"
#include "macros.h"
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA730/__d_to_ll.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA730/__f_to_ll.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CA730/__ll_to_f.s")
#endif