summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2010-07-09 14:01:18 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2010-07-09 14:01:18 +0000
commit75d8db5ef46daf012721732a57fe969a03234e12 (patch)
treefc590edd2048ed28160634a86ec02a47409b9cb5 /sys
parent087c04e6ae36c48c8ae27cd0400c8d4d04e5ef8a (diff)
downloadFreeBSD-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')
-rw-r--r--sys/powerpc/powerpc/bcopy.c14
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;
OpenPOWER on IntegriCloud