diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2010-07-09 14:01:18 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2010-07-09 14:01:18 +0000 |
commit | 75d8db5ef46daf012721732a57fe969a03234e12 (patch) | |
tree | fc590edd2048ed28160634a86ec02a47409b9cb5 /sys/powerpc | |
parent | 087c04e6ae36c48c8ae27cd0400c8d4d04e5ef8a (diff) | |
download | FreeBSD-src-75d8db5ef46daf012721732a57fe969a03234e12.zip FreeBSD-src-75d8db5ef46daf012721732a57fe969a03234e12.tar.gz |
MFppc64:
Use longs instead of ints as the native word type in bcopy(). This will
expand nicely on 64-bit systems.
Diffstat (limited to 'sys/powerpc')
-rw-r--r-- | sys/powerpc/powerpc/bcopy.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/powerpc/powerpc/bcopy.c b/sys/powerpc/powerpc/bcopy.c index af9e3bf..1bc49a8 100644 --- a/sys/powerpc/powerpc/bcopy.c +++ b/sys/powerpc/powerpc/bcopy.c @@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$"); * sizeof(word) MUST BE A POWER OF TWO * SO THAT wmask BELOW IS ALL ONES */ -typedef int word; /* "word" used for optimal copy speed */ +typedef long word; /* "word" used for optimal copy speed */ #define wsize sizeof(word) #define wmask (wsize - 1) @@ -86,14 +86,14 @@ memcpy(void *dst0, const void *src0, size_t length) /* * Copy forward. */ - t = (int)src; /* only need low bits */ + t = (size_t)src; /* only need low bits */ - if ((t | (int)dst) & wmask) { + if ((t | (uintptr_t)dst) & wmask) { /* * Try to align operands. This cannot be done * unless the low bits match. */ - if ((t ^ (int)dst) & wmask || length < wsize) { + if ((t ^ (uintptr_t)dst) & wmask || length < wsize) { t = length; } else { t = wsize - (t & wmask); @@ -118,10 +118,10 @@ memcpy(void *dst0, const void *src0, size_t length) */ src += length; dst += length; - t = (int)src; + t = (uintptr_t)src; - if ((t | (int)dst) & wmask) { - if ((t ^ (int)dst) & wmask || length <= wsize) { + if ((t | (uintptr_t)dst) & wmask) { + if ((t ^ (uintptr_t)dst) & wmask || length <= wsize) { t = length; } else { t &= wmask; |