Disassemble bcmp

This commit is contained in:
Ryan Dwyer 2021-10-05 21:14:14 +10:00
parent 4e7ccfa882
commit e2d7d3d567
13 changed files with 91 additions and 18 deletions

View File

@ -176,7 +176,7 @@
build/ROMID/lib/ultra/io/pfsdeletefile.o (section); \
build/ROMID/lib/ultra/io/siacs.o (section); \
build/ROMID/lib/ultra/io/pfschecker.o (section); \
build/ROMID/lib/lib_4e090.o (section); \
build/ROMID/lib/ultra/libc/bcmp.o (section); \
build/ROMID/lib/ultra/os/getmemsize.o (section); \
build/ROMID/lib/ultra/os/maptlb.o (section); \
build/ROMID/lib/ultra/io/aisetfreq.o (section); \

View File

@ -174,7 +174,7 @@
build/ROMID/lib/ultra/io/pfsallocatefile.o (section); \
build/ROMID/lib/ultra/io/pfsdeletefile.o (section); \
build/ROMID/lib/ultra/io/pfschecker.o (section); \
build/ROMID/lib/lib_4e090.o (section); \
build/ROMID/lib/ultra/libc/bcmp.o (section); \
build/ROMID/lib/ultra/os/maptlb.o (section); \
build/ROMID/lib/ultra/io/aisetfreq.o (section); \
build/ROMID/lib/ultra/io/aisetnextbuf.o (section); \

View File

@ -173,7 +173,7 @@
build/ROMID/lib/ultra/io/pfsallocatefile.o (section); \
build/ROMID/lib/ultra/io/pfsdeletefile.o (section); \
build/ROMID/lib/ultra/io/pfschecker.o (section); \
build/ROMID/lib/lib_4e090.o (section); \
build/ROMID/lib/ultra/libc/bcmp.o (section); \
build/ROMID/lib/ultra/os/maptlb.o (section); \
build/ROMID/lib/ultra/io/aisetfreq.o (section); \
build/ROMID/lib/ultra/libc/ll.o (section); \

View File

@ -14,7 +14,6 @@
#include "lib/main.h"
#include "lib/memory.h"
#include "lib/rng.h"
#include "lib/lib_4e090.h"
#include "data.h"
#include "types.h"

View File

@ -1,7 +0,0 @@
#ifndef _IN_LIB_LIB_4E090_H
#define _IN_LIB_LIB_4E090_H
#include <ultra64.h>
#include "data.h"
#include "types.h"
#endif

View File

@ -5,7 +5,6 @@
#include "lib/lib_074f0.h"
#include "lib/dma.h"
#include "lib/lib_48150.h"
#include "lib/lib_4e090.h"
#include "data.h"
#include "types.h"

View File

@ -3,7 +3,6 @@
#include "constants.h"
#include "bss.h"
#include "lib/libc/ll.h"
#include "lib/lib_4e090.h"
#include "data.h"
#include "types.h"

View File

@ -2,7 +2,6 @@
#include "libultra_internal.h"
#include "constants.h"
#include "bss.h"
#include "lib/lib_4e090.h"
#include "data.h"
#include "types.h"

View File

@ -2,7 +2,6 @@
#include "libultra_internal.h"
#include "constants.h"
#include "bss.h"
#include "lib/lib_4e090.h"
#include "data.h"
#include "types.h"

View File

@ -2,7 +2,6 @@
#include "libultra_internal.h"
#include "constants.h"
#include "bss.h"
#include "lib/lib_4e090.h"
#include "data.h"
#include "types.h"

View File

@ -3,7 +3,6 @@
#include "libultra_internal.h"
#include "constants.h"
#include "bss.h"
#include "lib/lib_4e090.h"
#include "data.h"
#include "types.h"

View File

@ -2,7 +2,6 @@
#include "libultra_internal.h"
#include "constants.h"
#include "bss.h"
#include "lib/lib_4e090.h"
#include "data.h"
#include "types.h"

88
src/lib/ultra/libc/bcmp.s Normal file
View File

@ -0,0 +1,88 @@
#include "macros.inc"
.set noat
.set noreorder
.section .text
glabel bcmp
slti $at, $a2, 0x10
bnez $at, .L0004e174
xor $v0, $a0, $a1
andi $v0, $v0, 0x3
bnez $v0, .L0004e108
negu $t8, $a0
andi $t8, $t8, 0x3
beqz $t8, .L0004e0cc
subu $a2, $a2, $t8
or $v0, $v1, $zero
lwl $v0, 0x0($a0)
lwl $v1, 0x0($a1)
addu $a0, $a0, $t8
addu $a1, $a1, $t8
bne $v0, $v1, .L0004e1a4
.L0004e0cc:
addiu $at, $zero, -4
and $a3, $a2, $at
beqz $a3, .L0004e174
subu $a2, $a2, $a3
addu $a3, $a3, $a0
lw $v0, 0x0($a0)
.L0004e0e4:
lw $v1, 0x0($a1)
addiu $a0, $a0, 0x4
addiu $a1, $a1, 0x4
bne $v0, $v1, .L0004e1a4
nop
bnel $a0, $a3, .L0004e0e4
lw $v0, 0x0($a0)
b .L0004e174
nop
.L0004e108:
negu $a3, $a1
andi $a3, $a3, 0x3
beqz $a3, .L0004e13c
subu $a2, $a2, $a3
addu $a3, $a3, $a0
lbu $v0, 0x0($a0)
.L0004e120:
lbu $v1, 0x0($a1)
addiu $a0, $a0, 0x1
addiu $a1, $a1, 0x1
bne $v0, $v1, .L0004e1a4
nop
bnel $a0, $a3, .L0004e120
lbu $v0, 0x0($a0)
.L0004e13c:
addiu $at, $zero, -4
and $a3, $a2, $at
beqz $a3, .L0004e174
subu $a2, $a2, $a3
addu $a3, $a3, $a0
lwl $v0, 0x0($a0)
.L0004e154:
lw $v1, 0x0($a1)
lwr $v0, 0x3($a0)
addiu $a0, $a0, 0x4
addiu $a1, $a1, 0x4
bne $v0, $v1, .L0004e1a4
nop
bnel $a0, $a3, .L0004e154
lwl $v0, 0x0($a0)
.L0004e174:
blez $a2, .L0004e19c
addu $a3, $a2, $a0
lbu $v0, 0x0($a0)
.L0004e180:
lbu $v1, 0x0($a1)
addiu $a0, $a0, 0x1
addiu $a1, $a1, 0x1
bne $v0, $v1, .L0004e1a4
nop
bnel $a0, $a3, .L0004e180
lbu $v0, 0x0($a0)
.L0004e19c:
jr $ra
or $v0, $zero, $zero
.L0004e1a4:
jr $ra
addiu $v0, $zero, 0x1