mirror of
https://github.com/pmret/papermario.git
synced 2024-11-10 13:02:41 +01:00
86 lines
3.6 KiB
ArmAsm
86 lines
3.6 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel bcmp
|
|
/* 046C70 8006B870 00851026 */ xor $v0, $a0, $a1
|
|
/* 046C74 8006B874 28C10010 */ slti $at, $a2, 0x10
|
|
/* 046C78 8006B878 14200034 */ bnez $at, .L8006B94C
|
|
/* 046C7C 8006B87C 00000000 */ nop
|
|
/* 046C80 8006B880 30420003 */ andi $v0, $v0, 3
|
|
/* 046C84 8006B884 14400018 */ bnez $v0, .L8006B8E8
|
|
/* 046C88 8006B888 0004C023 */ negu $t8, $a0
|
|
/* 046C8C 8006B88C 33180003 */ andi $t8, $t8, 3
|
|
/* 046C90 8006B890 13000007 */ beqz $t8, .L8006B8B0
|
|
/* 046C94 8006B894 00D83023 */ subu $a2, $a2, $t8
|
|
/* 046C98 8006B898 00601021 */ addu $v0, $v1, $zero
|
|
/* 046C9C 8006B89C 88820000 */ lwl $v0, ($a0)
|
|
/* 046CA0 8006B8A0 88A30000 */ lwl $v1, ($a1)
|
|
/* 046CA4 8006B8A4 00982021 */ addu $a0, $a0, $t8
|
|
/* 046CA8 8006B8A8 14430033 */ bne $v0, $v1, .L8006B978
|
|
/* 046CAC 8006B8AC 00B82821 */ addu $a1, $a1, $t8
|
|
.L8006B8B0:
|
|
/* 046CB0 8006B8B0 2401FFFC */ addiu $at, $zero, -4
|
|
/* 046CB4 8006B8B4 00C13824 */ and $a3, $a2, $at
|
|
/* 046CB8 8006B8B8 10E00024 */ beqz $a3, .L8006B94C
|
|
/* 046CBC 8006B8BC 00C73023 */ subu $a2, $a2, $a3
|
|
/* 046CC0 8006B8C0 00E43821 */ addu $a3, $a3, $a0
|
|
.L8006B8C4:
|
|
/* 046CC4 8006B8C4 8C820000 */ lw $v0, ($a0)
|
|
/* 046CC8 8006B8C8 8CA30000 */ lw $v1, ($a1)
|
|
/* 046CCC 8006B8CC 24840004 */ addiu $a0, $a0, 4
|
|
/* 046CD0 8006B8D0 14430029 */ bne $v0, $v1, .L8006B978
|
|
/* 046CD4 8006B8D4 24A50004 */ addiu $a1, $a1, 4
|
|
/* 046CD8 8006B8D8 1487FFFA */ bne $a0, $a3, .L8006B8C4
|
|
/* 046CDC 8006B8DC 00000000 */ nop
|
|
/* 046CE0 8006B8E0 1000001A */ b .L8006B94C
|
|
/* 046CE4 8006B8E4 00000000 */ nop
|
|
.L8006B8E8:
|
|
/* 046CE8 8006B8E8 00053823 */ negu $a3, $a1
|
|
/* 046CEC 8006B8EC 30E70003 */ andi $a3, $a3, 3
|
|
/* 046CF0 8006B8F0 10E00009 */ beqz $a3, .L8006B918
|
|
/* 046CF4 8006B8F4 00C73023 */ subu $a2, $a2, $a3
|
|
/* 046CF8 8006B8F8 00E43821 */ addu $a3, $a3, $a0
|
|
.L8006B8FC:
|
|
/* 046CFC 8006B8FC 90820000 */ lbu $v0, ($a0)
|
|
/* 046D00 8006B900 90A30000 */ lbu $v1, ($a1)
|
|
/* 046D04 8006B904 24840001 */ addiu $a0, $a0, 1
|
|
/* 046D08 8006B908 1443001B */ bne $v0, $v1, .L8006B978
|
|
/* 046D0C 8006B90C 24A50001 */ addiu $a1, $a1, 1
|
|
/* 046D10 8006B910 1487FFFA */ bne $a0, $a3, .L8006B8FC
|
|
/* 046D14 8006B914 00000000 */ nop
|
|
.L8006B918:
|
|
/* 046D18 8006B918 2401FFFC */ addiu $at, $zero, -4
|
|
/* 046D1C 8006B91C 00C13824 */ and $a3, $a2, $at
|
|
/* 046D20 8006B920 10E0000A */ beqz $a3, .L8006B94C
|
|
/* 046D24 8006B924 00C73023 */ subu $a2, $a2, $a3
|
|
/* 046D28 8006B928 00E43821 */ addu $a3, $a3, $a0
|
|
.L8006B92C:
|
|
/* 046D2C 8006B92C 88820000 */ lwl $v0, ($a0)
|
|
/* 046D30 8006B930 98820003 */ lwr $v0, 3($a0)
|
|
/* 046D34 8006B934 8CA30000 */ lw $v1, ($a1)
|
|
/* 046D38 8006B938 24840004 */ addiu $a0, $a0, 4
|
|
/* 046D3C 8006B93C 1443000E */ bne $v0, $v1, .L8006B978
|
|
/* 046D40 8006B940 24A50004 */ addiu $a1, $a1, 4
|
|
/* 046D44 8006B944 1487FFF9 */ bne $a0, $a3, .L8006B92C
|
|
/* 046D48 8006B948 00000000 */ nop
|
|
.L8006B94C:
|
|
/* 046D4C 8006B94C 18C00008 */ blez $a2, .L8006B970
|
|
/* 046D50 8006B950 00C43821 */ addu $a3, $a2, $a0
|
|
.L8006B954:
|
|
/* 046D54 8006B954 90820000 */ lbu $v0, ($a0)
|
|
/* 046D58 8006B958 90A30000 */ lbu $v1, ($a1)
|
|
/* 046D5C 8006B95C 24840001 */ addiu $a0, $a0, 1
|
|
/* 046D60 8006B960 14430005 */ bne $v0, $v1, .L8006B978
|
|
/* 046D64 8006B964 24A50001 */ addiu $a1, $a1, 1
|
|
/* 046D68 8006B968 1487FFFA */ bne $a0, $a3, .L8006B954
|
|
/* 046D6C 8006B96C 00000000 */ nop
|
|
.L8006B970:
|
|
/* 046D70 8006B970 03E00008 */ jr $ra
|
|
/* 046D74 8006B974 00001021 */ addu $v0, $zero, $zero
|
|
|
|
.L8006B978:
|
|
/* 046D78 8006B978 03E00008 */ jr $ra
|
|
/* 046D7C 8006B97C 24020001 */ addiu $v0, $zero, 1
|
|
|