diff options
author | Per Fogelstrom <pefo@cvs.openbsd.org> | 1996-07-18 16:56:57 +0000 |
---|---|---|
committer | Per Fogelstrom <pefo@cvs.openbsd.org> | 1996-07-18 16:56:57 +0000 |
commit | 9a49469d984cc0ddc518e5cf776b874aac7479ea (patch) | |
tree | 2e3d660d546ea110f2982ea2288f66ad1ae9adbf /sys/lib/libkern | |
parent | 2a28d25750b4ca887937a36c483c4a958b2868bb (diff) |
Add macros to handle endian issues.
Diffstat (limited to 'sys/lib/libkern')
-rw-r--r-- | sys/lib/libkern/arch/mips/bcmp.S | 8 | ||||
-rw-r--r-- | sys/lib/libkern/arch/mips/bcopy.S | 14 | ||||
-rw-r--r-- | sys/lib/libkern/arch/mips/bzero.S | 2 |
3 files changed, 12 insertions, 12 deletions
diff --git a/sys/lib/libkern/arch/mips/bcmp.S b/sys/lib/libkern/arch/mips/bcmp.S index b0638758e6f..409c821aeb5 100644 --- a/sys/lib/libkern/arch/mips/bcmp.S +++ b/sys/lib/libkern/arch/mips/bcmp.S @@ -17,8 +17,8 @@ LEAF(bcmp) subu a2, a2, a3 # subtract from remaining count move v0, v1 # init v0,v1 so unmodified bytes match /*XXX FIXME Endian dependent */ - lwr v0, 0(a0) # read 1, 2, or 3 bytes - lwr v1, 0(a1) + LWLO v0, 0(a0) # read 1, 2, or 3 bytes + LWLO v1, 0(a1) addu a1, a1, a3 bne v0, v1, nomatch addu a0, a0, a3 @@ -54,8 +54,8 @@ unalignedcmp: addu a3, a3, a0 # compute ending address 3: /*XXX FIXME Endian dependent */ - lwr v0, 0(a0) # compare words a0 unaligned, a1 aligned - lwl v0, 3(a0) + LWLO v0, 0(a0) # compare words a0 unaligned, a1 aligned + LWHI v0, 3(a0) lw v1, 0(a1) addu a0, a0, 4 bne v0, v1, nomatch diff --git a/sys/lib/libkern/arch/mips/bcopy.S b/sys/lib/libkern/arch/mips/bcopy.S index 3bfebd20e67..50937442a9e 100644 --- a/sys/lib/libkern/arch/mips/bcopy.S +++ b/sys/lib/libkern/arch/mips/bcopy.S @@ -41,10 +41,10 @@ forward: beq a3, zero, 1f subu a2, a2, a3 # subtract from remaining count /*XXX FIXME Endian dependent */ - lwr v1, 0(a0) # get next 4 bytes (unaligned) - lwl v1, 3(a0) + LWLO v1, 0(a0) # get next 4 bytes (unaligned) + LWHI v1, 3(a0) addu a0, a0, a3 - swr v1, 0(a1) # store 1, 2, or 3 bytes to align a1 + SWLO v1, 0(a1) # store 1, 2, or 3 bytes to align a1 addu a1, a1, a3 1: and v1, a2, 3 # compute number of words left @@ -53,8 +53,8 @@ forward: addu a3, a3, a0 # compute ending address 2: /*XXX FIXME Endian dependent */ - lwr v1, 0(a0) # copy words a0 unaligned, a1 aligned - lwl v1, 3(a0) + LWLO v1, 0(a0) # copy words a0 unaligned, a1 aligned + LWHI v1, 3(a0) addu a0, a0, 4 sw v1, 0(a1) addu a1, a1, 4 @@ -65,9 +65,9 @@ forward: aligned: beq a3, zero, 1f subu a2, a2, a3 # subtract from remaining count - lwr v1, 0(a0) # copy 1, 2, or 3 bytes to align + LWLO v1, 0(a0) # copy 1, 2, or 3 bytes to align addu a0, a0, a3 - swr v1, 0(a1) + SWLO v1, 0(a1) addu a1, a1, a3 1: and v1, a2, 3 # compute number of whole words left diff --git a/sys/lib/libkern/arch/mips/bzero.S b/sys/lib/libkern/arch/mips/bzero.S index a7e9e10c8da..77b12f6b5b4 100644 --- a/sys/lib/libkern/arch/mips/bzero.S +++ b/sys/lib/libkern/arch/mips/bzero.S @@ -12,7 +12,7 @@ ALEAF(blkclr) and a3, a3, 3 beq a3, zero, 1f # skip if word aligned subu a1, a1, a3 # subtract from remaining count - swr zero, 0(a0) # clear 1, 2, or 3 bytes to align + SWLO zero, 0(a0) # clear 1, 2, or 3 bytes to align addu a0, a0, a3 1: and v0, a1, 3 # compute number of words left |