papermario/ver/ique/asm/os/bcmp.s
AltoXorg b171712e0e
Match libultra iQue ver (#1111)
* match libultra ique pt 1

* add sgidefs.h to include/gcc

* recvmesg match + _getcount

* add elfpatch.py for those compiled with -mips3

* pt 2

* os/setthreadpri(.data) -> os/thread

* os thread matches

* os timer matches

* pt 4 (erm... 3?)

* vitbl

* os pi matches

* pt. uhmmmm, i've lost track...

* os pfs matches

* replace elfpatch.py

* pt. just forget it...

* outsource from ultralib ique branch

* .

* . 2

* final blow

* add egcs compiler to Jenkinsfile

* fix errors from CI

* minor changes as requested
2023-08-17 02:29:21 +09:00

91 lines
4.1 KiB
ArmAsm

.include "macro.inc"
/* assembler directives */
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
.set gp=64 /* allow use of 64-bit general purpose registers */
.section .text, "ax"
/* Generated by spimdisasm 1.11.1 */
glabel bcmp
/* 45B70 8006A770 00851026 */ xor $v0, $a0, $a1
/* 45B74 8006A774 28C10010 */ slti $at, $a2, 0x10
/* 45B78 8006A778 14200034 */ bnez $at, .LIQUE_8006A84C
/* 45B7C 8006A77C 00000000 */ nop
/* 45B80 8006A780 30420003 */ andi $v0, $v0, 0x3
/* 45B84 8006A784 14400018 */ bnez $v0, .LIQUE_8006A7E8
/* 45B88 8006A788 0004C023 */ negu $t8, $a0
/* 45B8C 8006A78C 33180003 */ andi $t8, $t8, 0x3
/* 45B90 8006A790 13000007 */ beqz $t8, .LIQUE_8006A7B0
/* 45B94 8006A794 00D83023 */ subu $a2, $a2, $t8
/* 45B98 8006A798 00601021 */ addu $v0, $v1, $zero
/* 45B9C 8006A79C 88820000 */ lwl $v0, 0x0($a0)
/* 45BA0 8006A7A0 88A30000 */ lwl $v1, 0x0($a1)
/* 45BA4 8006A7A4 00982021 */ addu $a0, $a0, $t8
/* 45BA8 8006A7A8 14430033 */ bne $v0, $v1, .LIQUE_8006A878
/* 45BAC 8006A7AC 00B82821 */ addu $a1, $a1, $t8
.LIQUE_8006A7B0:
/* 45BB0 8006A7B0 2401FFFC */ addiu $at, $zero, -0x4
/* 45BB4 8006A7B4 00C13824 */ and $a3, $a2, $at
/* 45BB8 8006A7B8 10E00024 */ beqz $a3, .LIQUE_8006A84C
/* 45BBC 8006A7BC 00C73023 */ subu $a2, $a2, $a3
/* 45BC0 8006A7C0 00E43821 */ addu $a3, $a3, $a0
.LIQUE_8006A7C4:
/* 45BC4 8006A7C4 8C820000 */ lw $v0, 0x0($a0)
/* 45BC8 8006A7C8 8CA30000 */ lw $v1, 0x0($a1)
/* 45BCC 8006A7CC 24840004 */ addiu $a0, $a0, 0x4
/* 45BD0 8006A7D0 14430029 */ bne $v0, $v1, .LIQUE_8006A878
/* 45BD4 8006A7D4 24A50004 */ addiu $a1, $a1, 0x4
/* 45BD8 8006A7D8 1487FFFA */ bne $a0, $a3, .LIQUE_8006A7C4
/* 45BDC 8006A7DC 00000000 */ nop
/* 45BE0 8006A7E0 1000001A */ b .LIQUE_8006A84C
/* 45BE4 8006A7E4 00000000 */ nop
.LIQUE_8006A7E8:
/* 45BE8 8006A7E8 00053823 */ negu $a3, $a1
/* 45BEC 8006A7EC 30E70003 */ andi $a3, $a3, 0x3
/* 45BF0 8006A7F0 10E00009 */ beqz $a3, .LIQUE_8006A818
/* 45BF4 8006A7F4 00C73023 */ subu $a2, $a2, $a3
/* 45BF8 8006A7F8 00E43821 */ addu $a3, $a3, $a0
.LIQUE_8006A7FC:
/* 45BFC 8006A7FC 90820000 */ lbu $v0, 0x0($a0)
/* 45C00 8006A800 90A30000 */ lbu $v1, 0x0($a1)
/* 45C04 8006A804 24840001 */ addiu $a0, $a0, 0x1
/* 45C08 8006A808 1443001B */ bne $v0, $v1, .LIQUE_8006A878
/* 45C0C 8006A80C 24A50001 */ addiu $a1, $a1, 0x1
/* 45C10 8006A810 1487FFFA */ bne $a0, $a3, .LIQUE_8006A7FC
/* 45C14 8006A814 00000000 */ nop
.LIQUE_8006A818:
/* 45C18 8006A818 2401FFFC */ addiu $at, $zero, -0x4
/* 45C1C 8006A81C 00C13824 */ and $a3, $a2, $at
/* 45C20 8006A820 10E0000A */ beqz $a3, .LIQUE_8006A84C
/* 45C24 8006A824 00C73023 */ subu $a2, $a2, $a3
/* 45C28 8006A828 00E43821 */ addu $a3, $a3, $a0
.LIQUE_8006A82C:
/* 45C2C 8006A82C 88820000 */ lwl $v0, 0x0($a0)
/* 45C30 8006A830 98820003 */ lwr $v0, 0x3($a0)
/* 45C34 8006A834 8CA30000 */ lw $v1, 0x0($a1)
/* 45C38 8006A838 24840004 */ addiu $a0, $a0, 0x4
/* 45C3C 8006A83C 1443000E */ bne $v0, $v1, .LIQUE_8006A878
/* 45C40 8006A840 24A50004 */ addiu $a1, $a1, 0x4
/* 45C44 8006A844 1487FFF9 */ bne $a0, $a3, .LIQUE_8006A82C
/* 45C48 8006A848 00000000 */ nop
.LIQUE_8006A84C:
/* 45C4C 8006A84C 18C00008 */ blez $a2, .LIQUE_8006A870
/* 45C50 8006A850 00C43821 */ addu $a3, $a2, $a0
.LIQUE_8006A854:
/* 45C54 8006A854 90820000 */ lbu $v0, 0x0($a0)
/* 45C58 8006A858 90A30000 */ lbu $v1, 0x0($a1)
/* 45C5C 8006A85C 24840001 */ addiu $a0, $a0, 0x1
/* 45C60 8006A860 14430005 */ bne $v0, $v1, .LIQUE_8006A878
/* 45C64 8006A864 24A50001 */ addiu $a1, $a1, 0x1
/* 45C68 8006A868 1487FFFA */ bne $a0, $a3, .LIQUE_8006A854
/* 45C6C 8006A86C 00000000 */ nop
.LIQUE_8006A870:
/* 45C70 8006A870 03E00008 */ jr $ra
/* 45C74 8006A874 00001021 */ addu $v0, $zero, $zero
.LIQUE_8006A878:
/* 45C78 8006A878 03E00008 */ jr $ra
/* 45C7C 8006A87C 24020001 */ addiu $v0, $zero, 0x1