[patch] Accelerate CAIRO_BITSWAP8 on 64 bit machines
Submitted by Homer Hsing
Assigned to Carl Worth @cworth
Description
Hi, CAIRO_BITSWAP8 costs seven operations on a 32 bit machine, but it can be done with only four operations on 64 bit machines. This patch accelerates CAIRO_BITSWAP8.
diff --git a/src/cairoint.h b/src/cairoint.h index 2c9f2dd..7e62d86 100644 --- a/src/cairoint.h +++ b/src/cairoint.h @@ -169,7 +169,11 @@ do { \
- Devised by Sean Anderson, July 13, 2001.
- Source: http://graphics.stanford.edu/~seander/bithacks.html#ReverseByteWith32Bits */ +#if (SIZEOF_VOID_P >= 8) +#define CAIRO_BITSWAP8(c) ((((c) * 0x80200802LLU & 0x884422110LLU) * 0x101010101LLU) >> 32) +#else #define CAIRO_BITSWAP8(c) ((((c) * 0x0802LU & 0x22110LU) | ((c) * 0x8020LU & 0x88440LU)) * 0x10101LU >> 16) +#endif
/* Return the number of 1 bits in mask. *
Version: 1.12.2