openbsd-ports/security/hs-cryptohash/patches/patch-cbits_bitfn_h
2011-04-12 10:42:25 +00:00

69 lines
1.7 KiB
Plaintext

$OpenBSD: patch-cbits_bitfn_h,v 1.3 2011/04/12 10:43:04 jasper Exp $
- Don't redefine swap32/swap64.
--- cbits/bitfn.h.orig Tue Apr 12 12:34:26 2011
+++ cbits/bitfn.h Tue Apr 12 12:36:53 2011
@@ -30,14 +30,17 @@
/**********************************************************/
# if (defined(__i386__))
# define ARCH_HAS_SWAP32
+# ifndef swap32
static inline uint32_t bitfn_swap32(uint32_t a)
{
asm ("bswap %0" : "=r" (a) : "0" (a));
return a;
}
+# endif
/**********************************************************/
# elif (defined(__arm__))
# define ARCH_HAS_SWAP32
+# ifndef swap32
static inline uint32_t bitfn_swap32(uint32_t a)
{
uint32_t tmp = a;
@@ -48,22 +51,28 @@ static inline uint32_t bitfn_swap32(uint32_t a)
: "=r" (a), "=r" (tmp) : "0" (a), "1" (tmp));
return a;
}
+# endif
/**********************************************************/
# elif defined(__x86_64__)
# define ARCH_HAS_SWAP32
# define ARCH_HAS_SWAP64
+# ifndef swap32
static inline uint32_t bitfn_swap32(uint32_t a)
{
asm ("bswap %0" : "=r" (a) : "0" (a));
return a;
}
+# endif
+# ifndef swap64
+
static inline uint64_t bitfn_swap64(uint64_t a)
{
asm ("bswap %0" : "=r" (a) : "0" (a));
return a;
}
+# endif
# endif
#endif /* NO_INLINE_ASM */
/**********************************************************/
@@ -111,12 +120,14 @@ static inline void array_swap32(uint32_t *d, uint32_t
}
#endif
+#ifndef swap64
#ifndef ARCH_HAS_SWAP64
static inline uint64_t bitfn_swap64(uint64_t a)
{
return ((uint64_t) bitfn_swap32((uint32_t) (a >> 32))) |
(((uint64_t) bitfn_swap32((uint32_t) a)) << 32);
}
+#endif
#endif
#ifndef ARCH_HAS_ARRAY_SWAP64