diff --git a/asm/non_matchings/unknown_00BC20/func_8001BB18.s b/asm/non_matchings/unknown_00BC20/func_8001BB18.s index 07f0ff0c..d30367f6 100644 --- a/asm/non_matchings/unknown_00BC20/func_8001BB18.s +++ b/asm/non_matchings/unknown_00BC20/func_8001BB18.s @@ -11,13 +11,13 @@ glabel func_8001BB18 /* 01C734 8001BB34 04800003 */ bltz $a0, .L8001BB44 /* 01C738 8001BB38 0082082A */ slt $at, $a0, $v0 /* 01C73C 8001BB3C 14200003 */ bnez $at, .L8001BB4C -/* 01C740 8001BB40 3C0E8012 */ lui $t6, 0x8012 +/* 01C740 8001BB40 3C0E8012 */ lui $t6, %hi(D_8011AEEC) # $t6, 0x8012 .L8001BB44: /* 01C744 8001BB44 03E00008 */ jr $ra /* 01C748 8001BB48 00001025 */ move $v0, $zero .L8001BB4C: -/* 01C74C 8001BB4C 8DCEAEEC */ lw $t6, -0x5114($t6) +/* 01C74C 8001BB4C 8DCEAEEC */ lw $t6, %lo(D_8011AEEC)($t6) /* 01C750 8001BB50 00047880 */ sll $t7, $a0, 2 /* 01C754 8001BB54 01CFC021 */ addu $t8, $t6, $t7 /* 01C758 8001BB58 8F020000 */ lw $v0, ($t8) diff --git a/asm/non_matchings/unknown_066AA0/func_8006A6B0.s b/asm/non_matchings/unknown_066AA0/func_8006A6B0.s index 50b17141..a2e42e4b 100644 --- a/asm/non_matchings/unknown_066AA0/func_8006A6B0.s +++ b/asm/non_matchings/unknown_066AA0/func_8006A6B0.s @@ -343,13 +343,13 @@ glabel func_8006A6B0 /* 06B7B0 8006ABB0 27BD0058 */ addiu $sp, $sp, 0x58 /* 06B7B4 8006ABB4 04810003 */ bgez $a0, .L8006ABC4 -/* 06B7B8 8006ABB8 3C0E8012 */ lui $t6, 0x8012 +/* 06B7B8 8006ABB8 3C0E8012 */ lui $t6, %hi(D_80121170) # $t6, 0x8012 /* 06B7BC 8006ABBC 03E00008 */ jr $ra /* 06B7C0 8006ABC0 24020E10 */ li $v0, 3600 .L8006ABC4: -/* 06B7C4 8006ABC4 8DCE1170 */ lw $t6, 0x1170($t6) -/* 06B7C8 8006ABC8 3C0F8012 */ lui $t7, 0x8012 +/* 06B7C4 8006ABC4 8DCE1170 */ lw $t6, %lo(D_80121170)($t6) +/* 06B7C8 8006ABC8 3C0F8012 */ lui $t7, %hi(D_8012117C) # $t7, 0x8012 /* 06B7CC 8006ABCC 008E082A */ slt $at, $a0, $t6 /* 06B7D0 8006ABD0 14200003 */ bnez $at, .L8006ABE0 /* 06B7D4 8006ABD4 0004C080 */ sll $t8, $a0, 2 @@ -357,7 +357,7 @@ glabel func_8006A6B0 /* 06B7DC 8006ABDC 24020E10 */ li $v0, 3600 .L8006ABE0: -/* 06B7E0 8006ABE0 8DEF117C */ lw $t7, 0x117c($t7) +/* 06B7E0 8006ABE0 8DEF117C */ lw $t7, %lo(D_8012117C)($t7) /* 06B7E4 8006ABE4 0304C023 */ subu $t8, $t8, $a0 /* 06B7E8 8006ABE8 0018C040 */ sll $t8, $t8, 1 /* 06B7EC 8006ABEC 01F8C821 */ addu $t9, $t7, $t8 diff --git a/asm/non_matchings/unknown_07B870/func_8007B374.s b/asm/non_matchings/unknown_07B870/func_8007B374.s index 4fc5af7e..f05aff98 100644 --- a/asm/non_matchings/unknown_07B870/func_8007B374.s +++ b/asm/non_matchings/unknown_07B870/func_8007B374.s @@ -6,7 +6,7 @@ glabel func_8007B374 /* 07BF80 8007B380 04800006 */ bltz $a0, .L8007B39C /* 07BF84 8007B384 3C0E8012 */ lui $t6, %hi(D_80126330) # $t6, 0x8012 /* 07BF88 8007B388 8DCE6330 */ lw $t6, %lo(D_80126330)($t6) -/* 07BF8C 8007B38C 3C0F8012 */ lui $t7, 0x8012 +/* 07BF8C 8007B38C 3C0F8012 */ lui $t7, %hi(D_80126328) # $t7, 0x8012 /* 07BF90 8007B390 008E082A */ slt $at, $a0, $t6 /* 07BF94 8007B394 14200003 */ bnez $at, .L8007B3A4 /* 07BF98 8007B398 00000000 */ nop @@ -15,7 +15,7 @@ glabel func_8007B374 /* 07BFA0 8007B3A0 00001025 */ move $v0, $zero .L8007B3A4: -/* 07BFA4 8007B3A4 8DEF6328 */ lw $t7, 0x6328($t7) +/* 07BFA4 8007B3A4 8DEF6328 */ lw $t7, %lo(D_80126328)($t7) /* 07BFA8 8007B3A8 0004C8C0 */ sll $t9, $a0, 3 /* 07BFAC 8007B3AC 01F94021 */ addu $t0, $t7, $t9 /* 07BFB0 8007B3B0 8D030004 */ lw $v1, 4($t0) diff --git a/asm/non_matchings/unknown_07B870/func_8007C12C.s b/asm/non_matchings/unknown_07B870/func_8007C12C.s index 5173c29f..a36c423b 100644 --- a/asm/non_matchings/unknown_07B870/func_8007C12C.s +++ b/asm/non_matchings/unknown_07B870/func_8007C12C.s @@ -282,7 +282,7 @@ glabel func_8007C12C /* 07D12C 8007C52C 04800006 */ bltz $a0, .L8007C548 /* 07D130 8007C530 3C0E8012 */ lui $t6, %hi(D_80126358) # $t6, 0x8012 /* 07D134 8007C534 8DCE6358 */ lw $t6, %lo(D_80126358)($t6) -/* 07D138 8007C538 3C0F8012 */ lui $t7, 0x8012 +/* 07D138 8007C538 3C0F8012 */ lui $t7, %hi(D_8012634C) # $t7, 0x8012 /* 07D13C 8007C53C 008E082A */ slt $at, $a0, $t6 /* 07D140 8007C540 14200003 */ bnez $at, .L8007C550 /* 07D144 8007C544 00000000 */ nop @@ -291,7 +291,7 @@ glabel func_8007C12C /* 07D14C 8007C54C 00001025 */ move $v0, $zero .L8007C550: -/* 07D150 8007C550 8DEF634C */ lw $t7, 0x634c($t7) +/* 07D150 8007C550 8DEF634C */ lw $t7, %lo(D_8012634C)($t7) /* 07D154 8007C554 0004C8C0 */ sll $t9, $a0, 3 /* 07D158 8007C558 01F94021 */ addu $t0, $t7, $t9 /* 07D15C 8007C55C 8D030004 */ lw $v1, 4($t0) diff --git a/asm/non_matchings/unknown_07B870/func_8007C57C.s b/asm/non_matchings/unknown_07B870/func_8007C57C.s index a40f4aeb..b6a5062d 100644 --- a/asm/non_matchings/unknown_07B870/func_8007C57C.s +++ b/asm/non_matchings/unknown_07B870/func_8007C57C.s @@ -203,7 +203,7 @@ glabel func_8007C57C /* 07D460 8007C860 04800006 */ bltz $a0, .L8007C87C /* 07D464 8007C864 3C0E8012 */ lui $t6, %hi(D_80126330) # $t6, 0x8012 /* 07D468 8007C868 8DCE6330 */ lw $t6, %lo(D_80126330)($t6) -/* 07D46C 8007C86C 3C0F8012 */ lui $t7, 0x8012 +/* 07D46C 8007C86C 3C0F8012 */ lui $t7, %hi(D_80126328) # $t7, 0x8012 /* 07D470 8007C870 008E082A */ slt $at, $a0, $t6 /* 07D474 8007C874 14200003 */ bnez $at, .L8007C884 /* 07D478 8007C878 00000000 */ nop @@ -212,7 +212,7 @@ glabel func_8007C57C /* 07D480 8007C880 2402FFFF */ li $v0, -1 .L8007C884: -/* 07D484 8007C884 8DEF6328 */ lw $t7, 0x6328($t7) +/* 07D484 8007C884 8DEF6328 */ lw $t7, %lo(D_80126328)($t7) /* 07D488 8007C888 0004C8C0 */ sll $t9, $a0, 3 /* 07D48C 8007C88C 01F94021 */ addu $t0, $t7, $t9 /* 07D490 8007C890 8D020000 */ lw $v0, ($t0) @@ -223,7 +223,7 @@ glabel func_8007C57C /* 07D4A0 8007C8A0 04800006 */ bltz $a0, .L8007C8BC /* 07D4A4 8007C8A4 3C0E8012 */ lui $t6, %hi(D_80126358) # $t6, 0x8012 /* 07D4A8 8007C8A8 8DCE6358 */ lw $t6, %lo(D_80126358)($t6) -/* 07D4AC 8007C8AC 3C0F8012 */ lui $t7, 0x8012 +/* 07D4AC 8007C8AC 3C0F8012 */ lui $t7, %hi(D_8012634C) # $t7, 0x8012 /* 07D4B0 8007C8B0 008E082A */ slt $at, $a0, $t6 /* 07D4B4 8007C8B4 14200003 */ bnez $at, .L8007C8C4 /* 07D4B8 8007C8B8 00000000 */ nop @@ -232,7 +232,7 @@ glabel func_8007C57C /* 07D4C0 8007C8C0 2402FFFF */ li $v0, -1 .L8007C8C4: -/* 07D4C4 8007C8C4 8DEF634C */ lw $t7, 0x634c($t7) +/* 07D4C4 8007C8C4 8DEF634C */ lw $t7, %lo(D_8012634C)($t7) /* 07D4C8 8007C8C8 0004C8C0 */ sll $t9, $a0, 3 /* 07D4CC 8007C8CC 01F94021 */ addu $t0, $t7, $t9 /* 07D4D0 8007C8D0 8D020000 */ lw $v0, ($t0) diff --git a/asm/non_matchings/unknown_0AEE70/func_800B3E64.s b/asm/non_matchings/unknown_0AEE70/func_800B3E64.s index 74c6e95d..133b0468 100644 --- a/asm/non_matchings/unknown_0AEE70/func_800B3E64.s +++ b/asm/non_matchings/unknown_0AEE70/func_800B3E64.s @@ -403,7 +403,7 @@ glabel func_800B3E64 /* 0B5090 800B4490 3C0E800E */ lui $t6, %hi(D_800E2CF0) # $t6, 0x800e /* 0B5094 800B4494 0083082A */ slt $at, $a0, $v1 /* 0B5098 800B4498 10200007 */ beqz $at, .L800B44B8 -/* 0B509C 800B449C 3C19800E */ lui $t9, 0x800e +/* 0B509C 800B449C 3C19800E */ lui $t9, %hi(D_800E2CF0) # $t9, 0x800e /* 0B50A0 800B44A0 8DCE2CF0 */ lw $t6, %lo(D_800E2CF0)($t6) /* 0B50A4 800B44A4 00047880 */ sll $t7, $a0, 2 /* 0B50A8 800B44A8 01CFC021 */ addu $t8, $t6, $t7 @@ -412,7 +412,7 @@ glabel func_800B3E64 /* 0B50B4 800B44B4 00000000 */ nop .L800B44B8: -/* 0B50B8 800B44B8 8F392CF0 */ lw $t9, 0x2cf0($t9) +/* 0B50B8 800B44B8 8F392CF0 */ lw $t9, %lo(D_800E2CF0)($t9) /* 0B50BC 800B44BC 00034080 */ sll $t0, $v1, 2 /* 0B50C0 800B44C0 03284821 */ addu $t1, $t9, $t0 /* 0B50C4 800B44C4 8D22FFFC */ lw $v0, -4($t1) @@ -472,7 +472,7 @@ glabel func_800B3E64 /* 0B5180 800B4580 3C0E800E */ lui $t6, %hi(D_800E2CFC) # $t6, 0x800e /* 0B5184 800B4584 0083082A */ slt $at, $a0, $v1 /* 0B5188 800B4588 10200007 */ beqz $at, .L800B45A8 -/* 0B518C 800B458C 3C19800E */ lui $t9, 0x800e +/* 0B518C 800B458C 3C19800E */ lui $t9, %hi(D_800E2CFC) # $t9, 0x800e /* 0B5190 800B4590 8DCE2CFC */ lw $t6, %lo(D_800E2CFC)($t6) /* 0B5194 800B4594 00047880 */ sll $t7, $a0, 2 /* 0B5198 800B4598 01CFC021 */ addu $t8, $t6, $t7 @@ -481,7 +481,7 @@ glabel func_800B3E64 /* 0B51A4 800B45A4 00000000 */ nop .L800B45A8: -/* 0B51A8 800B45A8 8F392CFC */ lw $t9, 0x2cfc($t9) +/* 0B51A8 800B45A8 8F392CFC */ lw $t9, %lo(D_800E2CFC)($t9) /* 0B51AC 800B45AC 00034080 */ sll $t0, $v1, 2 /* 0B51B0 800B45B0 03284821 */ addu $t1, $t9, $t0 /* 0B51B4 800B45B4 8D22FFFC */ lw $v0, -4($t1) diff --git a/data/unknown_0D3020.rodata.s b/data/unknown_0D3020.rodata.s index d3605c1c..9fee37f4 100644 --- a/data/unknown_0D3020.rodata.s +++ b/data/unknown_0D3020.rodata.s @@ -30,6 +30,8 @@ glabel D_800E97F0 glabel D_800E97F8 .word 0x3E6110B4 .word 0x611A6263 + +glabel D_800E9800 .word 0x00000000 .word 0x00000000 .word 0x00000000 @@ -56,6 +58,8 @@ glabel D_800E9840 glabel D_800E9848 .word 0x3E6110B4 .word 0x611A6263 + +glabel D_800E9850 .word 0x00000000 .word 0x00000000 .word 0x00000000 diff --git a/lib/asm/non_matchings/unknown_0D3020/cosf.s b/lib/asm/non_matchings/unknown_0D3020/cosf.s index 871069a5..6795a090 100644 --- a/lib/asm/non_matchings/unknown_0D3020/cosf.s +++ b/lib/asm/non_matchings/unknown_0D3020/cosf.s @@ -87,15 +87,15 @@ glabel cosf /* 0D57F0 800D4BF0 460A5032 */ c.eq.s $f10, $f10 .L800D4BF4: -/* 0D57F4 800D4BF4 3C01800F */ lui $at, %hi(D_800E98C0) #$at, 0x800f +/* 0D57F4 800D4BF4 3C01800F */ lui $at, %hi(D_800E9800) # $at, 0x800f /* 0D57F8 800D4BF8 45010004 */ bc1t .L800D4C0C /* 0D57FC 800D4BFC 00000000 */ nop -/* 0D5800 800D4C00 3C01800F */ lui $at, 0x800f +/* 0D5800 800D4C00 3C01800F */ lui $at, %hi(D_800E98C0) # $at, 0x800f /* 0D5804 800D4C04 03E00008 */ jr $ra /* 0D5808 800D4C08 C42098C0 */ lwc1 $f0, %lo(D_800E98C0)($at) .L800D4C0C: -/* 0D580C 800D4C0C C4209800 */ lwc1 $f0, -0x6800($at) +/* 0D580C 800D4C0C C4209800 */ lwc1 $f0, %lo(D_800E9800)($at) /* 0D5810 800D4C10 03E00008 */ jr $ra /* 0D5814 800D4C14 00000000 */ nop diff --git a/lib/asm/non_matchings/unknown_0D3020/sinf.s b/lib/asm/non_matchings/unknown_0D3020/sinf.s index 7f863dcc..361088b9 100644 --- a/lib/asm/non_matchings/unknown_0D3020/sinf.s +++ b/lib/asm/non_matchings/unknown_0D3020/sinf.s @@ -69,10 +69,10 @@ glabel sinf /* 0D5918 800D4D18 00000000 */ nop /* 0D591C 800D4D1C 44828000 */ mtc1 $v0, $f16 .L800D4D20: -/* 0D5920 800D4D20 3C01800F */ lui $at, %hi(D_800E9840) #$at, 0x800f +/* 0D5920 800D4D20 3C01800F */ lui $at, %hi(D_800E9840) # $at, 0x800f /* 0D5924 800D4D24 D4329840 */ ldc1 $f18, %lo(D_800E9840)($at) /* 0D5928 800D4D28 46808021 */ cvt.d.w $f0, $f16 -/* 0D592C 800D4D2C 3C01800F */ lui $at, %hi(D_800E9848) #$at, 0x800f +/* 0D592C 800D4D2C 3C01800F */ lui $at, %hi(D_800E9848) # $at, 0x800f /* 0D5930 800D4D30 D4269848 */ ldc1 $f6, %lo(D_800E9848)($at) /* 0D5934 800D4D34 3C03800F */ lui $v1, %hi(D_800E9810) # $v1, 0x800f /* 0D5938 800D4D38 24639810 */ addiu $v1, %lo(D_800E9810) # addiu $v1, $v1, -0x67f0 @@ -112,15 +112,15 @@ glabel sinf .L800D4DB8: /* 0D59B8 800D4DB8 46042032 */ c.eq.s $f4, $f4 -/* 0D59BC 800D4DBC 3C01800F */ lui $at, %hi(D_800E98C0) #$at, 0x800f +/* 0D59BC 800D4DBC 3C01800F */ lui $at, %hi(D_800E9850) # $at, 0x800f /* 0D59C0 800D4DC0 45010004 */ bc1t .L800D4DD4 /* 0D59C4 800D4DC4 00000000 */ nop -/* 0D59C8 800D4DC8 3C01800F */ lui $at, 0x800f +/* 0D59C8 800D4DC8 3C01800F */ lui $at, %hi(D_800E98C0) # $at, 0x800f /* 0D59CC 800D4DCC 03E00008 */ jr $ra /* 0D59D0 800D4DD0 C42098C0 */ lwc1 $f0, %lo(D_800E98C0)($at) .L800D4DD4: -/* 0D59D4 800D4DD4 C4209850 */ lwc1 $f0, -0x67b0($at) +/* 0D59D4 800D4DD4 C4209850 */ lwc1 $f0, %lo(D_800E9850)($at) /* 0D59D8 800D4DD8 03E00008 */ jr $ra /* 0D59DC 800D4DDC 00000000 */ nop diff --git a/tools/python/find_glabels.py b/tools/python/find_glabels.py index ac4ec5b9..be23e102 100644 --- a/tools/python/find_glabels.py +++ b/tools/python/find_glabels.py @@ -2,7 +2,7 @@ import re from file_util import FileUtil -LINE_START_REGEX = r'\n(/\* ([0-9A-F]{6}) [0-9A-F]{8} [0-9A-F]{8} \*/\s+|\.L80[0-9A-F]{6}:)' +LINE_START_REGEX = r'\n(/\* ([0-9A-F]{6}) [0-9A-F]{8} [0-9A-F]{8} \*/\s+|\.L80[0-9A-F]{6}:|\n)' REG_REGEX = r'(\$(at|v[0-1]|a[0-3]|t[0-9]|s[0-7]|f[0-9]{1,2}|k[0-1]|gp|sp|fp|ra|zero))' GLABEL_UPPER_REGEX = '(' + LINE_START_REGEX + r'lui\s+' + REG_REGEX + r',\s+(0x80[0-9a-f]{2}))' GLABEL_LOWER_REGEX = '(' + LINE_START_REGEX + r'[sl][bhwd](u|c1)?\s+' + REG_REGEX + r',\s+(-?0x[0-9a-f]{4})\(\4\))' @@ -33,7 +33,7 @@ def _find_glabels(asm): glabels.append((glabel, *offsets)) # replace upper instruction contents = re.sub(UPPER_INSTR_REGEX_TMPL % offsets[0], - r'\1' + '%s, %%hi(%s) #' % (reg, glabel) + r'\2', + r'\1' + '%s, %%hi(%s) # ' % (reg, glabel) + r'\2', contents) # replace lower instruction contents = re.sub(LOWER_INSTR_REGEX_TMPL % offsets[1], diff --git a/undefined_syms.txt b/undefined_syms.txt index ceb71c3e..efb17f94 100755 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -1816,9 +1816,11 @@ D_800E97C0 = 0x800E97C0; D_800E97E8 = 0x800E97E8; D_800E97F0 = 0x800E97F0; D_800E97F8 = 0x800E97F8; +D_800E9800 = 0x800E9800; D_800E9810 = 0x800E9810; D_800E9840 = 0x800E9840; D_800E9848 = 0x800E9848; +D_800E9850 = 0x800E9850; D_800E9860 = 0x800E9860; D_800E98A8 = 0x800E98A8; D_800E98AC = 0x800E98AC;