git: ebc52eabdcc5 - main - mips: retire bcmp
Mateusz Guzik
mjg at FreeBSD.org
Mon Aug 23 18:38:11 UTC 2021
The branch main has been updated by mjg:
URL: https://cgit.FreeBSD.org/src/commit/?id=ebc52eabdcc5971fee8eaf7e565cd5d970acbdbc
commit ebc52eabdcc5971fee8eaf7e565cd5d970acbdbc
Author: Mateusz Guzik <mjg at FreeBSD.org>
AuthorDate: 2021-08-23 16:25:19 +0000
Commit: Mateusz Guzik <mjg at FreeBSD.org>
CommitDate: 2021-08-23 18:38:04 +0000
mips: retire bcmp
Unused since ba96f37758412151 ("Use __builtin for various mem* and b* (e.g. bzero)
routines.")
Sponsored by: Rubicon Communications, LLC ("Netgate")
---
sys/mips/mips/support.S | 80 -------------------------------------------------
1 file changed, 80 deletions(-)
diff --git a/sys/mips/mips/support.S b/sys/mips/mips/support.S
index 13a2d32a156c..4cf1f750fdad 100644
--- a/sys/mips/mips/support.S
+++ b/sys/mips/mips/support.S
@@ -473,86 +473,6 @@ smallclr:
nop
END(bzero)
-
-/*
- * bcmp(s1, s2, n)
- */
-LEAF(bcmp)
- .set noreorder
- blt a2, 16, smallcmp # is it worth any trouble?
- xor v0, a0, a1 # compare low two bits of addresses
- and v0, v0, 3
- PTR_SUBU a3, zero, a1 # compute # bytes to word align address
- bne v0, zero, unalignedcmp # not possible to align addresses
- and a3, a3, 3
-
- beq a3, zero, 1f
- PTR_SUBU a2, a2, a3 # subtract from remaining count
- move v0, v1 # init v0,v1 so unmodified bytes match
- LWHI v0, 0(a0) # read 1, 2, or 3 bytes
- LWHI v1, 0(a1)
- PTR_ADDU a1, a1, a3
- bne v0, v1, nomatch
- PTR_ADDU a0, a0, a3
-1:
- and a3, a2, ~3 # compute number of whole words left
- PTR_SUBU a2, a2, a3 # which has to be >= (16-3) & ~3
- PTR_ADDU a3, a3, a0 # compute ending address
-2:
- lw v0, 0(a0) # compare words
- lw v1, 0(a1)
- PTR_ADDU a0, a0, 4
- bne v0, v1, nomatch
- PTR_ADDU a1, a1, 4
- bne a0, a3, 2b
- nop
- b smallcmp # finish remainder
- nop
-unalignedcmp:
- beq a3, zero, 2f
- PTR_SUBU a2, a2, a3 # subtract from remaining count
- PTR_ADDU a3, a3, a0 # compute ending address
-1:
- lbu v0, 0(a0) # compare bytes until a1 word aligned
- lbu v1, 0(a1)
- PTR_ADDU a0, a0, 1
- bne v0, v1, nomatch
- PTR_ADDU a1, a1, 1
- bne a0, a3, 1b
- nop
-2:
- and a3, a2, ~3 # compute number of whole words left
- PTR_SUBU a2, a2, a3 # which has to be >= (16-3) & ~3
- PTR_ADDU a3, a3, a0 # compute ending address
-3:
- LWHI v0, 0(a0) # compare words a0 unaligned, a1 aligned
- LWLO v0, 3(a0)
- lw v1, 0(a1)
- PTR_ADDU a0, a0, 4
- bne v0, v1, nomatch
- PTR_ADDU a1, a1, 4
- bne a0, a3, 3b
- nop
-smallcmp:
- ble a2, zero, match
- PTR_ADDU a3, a2, a0 # compute ending address
-1:
- lbu v0, 0(a0)
- lbu v1, 0(a1)
- PTR_ADDU a0, a0, 1
- bne v0, v1, nomatch
- PTR_ADDU a1, a1, 1
- bne a0, a3, 1b
- nop
-match:
- j ra
- move v0, zero
-nomatch:
- j ra
- li v0, 1
-END(bcmp)
-
-
/*
* bit = ffs(value)
*/
More information about the dev-commits-src-main
mailing list