summaryrefslogtreecommitdiff
path: root/lib/ultralib/src/libc/bcmp.s
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ultralib/src/libc/bcmp.s')
-rw-r--r--lib/ultralib/src/libc/bcmp.s120
1 files changed, 60 insertions, 60 deletions
diff --git a/lib/ultralib/src/libc/bcmp.s b/lib/ultralib/src/libc/bcmp.s
index 11db46d..def3235 100644
--- a/lib/ultralib/src/libc/bcmp.s
+++ b/lib/ultralib/src/libc/bcmp.s
@@ -9,88 +9,88 @@ WEAK(bcmp, _bcmp)
#define _bcmp bcmp
#endif
LEAF(_bcmp)
- xor v0, a0, a1
- blt a2, 16, bytecmp
+ xor v0, a0, a1
+ blt a2, 16, bytecmp
- andi v0, v0, 0x3
- negu t8, a0
- bnez v0, unalgncmp
+ andi v0, v0, 0x3
+ negu t8, a0
+ bnez v0, unalgncmp
- andi t8, t8, 0x3
- subu a2, a2, t8
- beqz t8, wordcmp
+ andi t8, t8, 0x3
+ subu a2, a2, t8
+ beqz t8, wordcmp
- move v0, v1
- lwl v0, 0(a0)
- lwl v1, 0(a1)
- addu a0, a0, t8
- addu a1, a1, t8
- bne v0, v1, cmpne
+ move v0, v1
+ lwl v0, 0(a0)
+ lwl v1, 0(a1)
+ addu a0, a0, t8
+ addu a1, a1, t8
+ bne v0, v1, cmpne
wordcmp:
- and a3, a2, ~3
- subu a2, a2, a3
- beqz a3, bytecmp
+ and a3, a2, ~3
+ subu a2, a2, a3
+ beqz a3, bytecmp
- addu a3, a3, a0
+ addu a3, a3, a0
1:
- lw v0, 0(a0)
- lw v1, 0(a1)
- addiu a0, a0, 4
- addiu a1, a1, 4
- bne v0, v1, cmpne
- bne a0, a3, 1b
+ lw v0, 0(a0)
+ lw v1, 0(a1)
+ addiu a0, a0, 4
+ addiu a1, a1, 4
+ bne v0, v1, cmpne
+ bne a0, a3, 1b
- b bytecmp
+ b bytecmp
unalgncmp:
- negu a3, a1
- andi a3, a3, 0x3
- subu a2, a2, a3
- beqz a3, partaligncmp
+ negu a3, a1
+ andi a3, a3, 0x3
+ subu a2, a2, a3
+ beqz a3, partaligncmp
+
+ addu a3, a3, a0
- addu a3, a3, a0
-
1:
- lbu v0, 0(a0)
- lbu v1, 0(a1)
- addiu a0, a0, 1
- addiu a1, a1, 1
- bne v0, v1, cmpne
- bne a0, a3, 1b
+ lbu v0, 0(a0)
+ lbu v1, 0(a1)
+ addiu a0, a0, 1
+ addiu a1, a1, 1
+ bne v0, v1, cmpne
+ bne a0, a3, 1b
partaligncmp:
- and a3, a2, ~3
- subu a2, a2, a3
- beqz a3, bytecmp
+ and a3, a2, ~3
+ subu a2, a2, a3
+ beqz a3, bytecmp
- addu a3, a3, a0
+ addu a3, a3, a0
1:
- lwl v0, 0(a0)
- lwr v0, 3(a0)
- lw v1, 0(a1)
- addiu a0, a0, 4
- addiu a1, a1, 4
- bne v0, v1, cmpne
- bne a0, a3, 1b
+ lwl v0, 0(a0)
+ lwr v0, 3(a0)
+ lw v1, 0(a1)
+ addiu a0, a0, 4
+ addiu a1, a1, 4
+ bne v0, v1, cmpne
+ bne a0, a3, 1b
bytecmp:
- addu a3, a2, a0
- blez a2, cmpdone
+ addu a3, a2, a0
+ blez a2, cmpdone
1:
- lbu v0, 0(a0)
- lbu v1, 0(a1)
- addiu a0, a0, 1
- addiu a1, a1, 1
- bne v0, v1, cmpne
- bne a0, a3, 1b
+ lbu v0, 0(a0)
+ lbu v1, 0(a1)
+ addiu a0, a0, 1
+ addiu a1, a1, 1
+ bne v0, v1, cmpne
+ bne a0, a3, 1b
cmpdone:
- move v0, zero
- jr ra
+ move v0, zero
+ jr ra
cmpne:
- li v0, 1
- jr ra
+ li v0, 1
+ jr ra
.end _bcmp