From 710f66af351abb43e43e27ac23cb488babbaa04e Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 3 Feb 2015 18:41:15 -0500 Subject: [PATCH 1/2] bswap: remove unused bswap --- src/bswap.h | 97 ---------------------------------------------------- src/common.h | 1 - 2 files changed, 98 deletions(-) delete mode 100644 src/bswap.h diff --git a/src/bswap.h b/src/bswap.h deleted file mode 100644 index 486df82f4..000000000 --- a/src/bswap.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) the libgit2 contributors. All rights reserved. - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ - -#include "common.h" - -/* - * Default version that the compiler ought to optimize properly with - * constant values. - */ -GIT_INLINE(uint32_t) default_swab32(uint32_t val) -{ - return (((val & 0xff000000) >> 24) | - ((val & 0x00ff0000) >> 8) | - ((val & 0x0000ff00) << 8) | - ((val & 0x000000ff) << 24)); -} - -#undef bswap32 - -GIT_INLINE(uint16_t) default_swab16(uint16_t val) -{ - return (((val & 0xff00) >> 8) | - ((val & 0x00ff) << 8)); -} - -#undef bswap16 - -#if defined(__GNUC__) && defined(__i386__) - -#define bswap32(x) ({ \ - uint32_t __res; \ - if (__builtin_constant_p(x)) { \ - __res = default_swab32(x); \ - } else { \ - __asm__("bswap %0" : "=r" (__res) : "0" ((uint32_t)(x))); \ - } \ - __res; }) - -#define bswap16(x) ({ \ - uint16_t __res; \ - if (__builtin_constant_p(x)) { \ - __res = default_swab16(x); \ - } else { \ - __asm__("xchgb %b0,%h0" : "=q" (__res) : "0" ((uint16_t)(x))); \ - } \ - __res; }) - -#elif defined(__GNUC__) && defined(__x86_64__) - -#define bswap32(x) ({ \ - uint32_t __res; \ - if (__builtin_constant_p(x)) { \ - __res = default_swab32(x); \ - } else { \ - __asm__("bswapl %0" : "=r" (__res) : "0" ((uint32_t)(x))); \ - } \ - __res; }) - -#define bswap16(x) ({ \ - uint16_t __res; \ - if (__builtin_constant_p(x)) { \ - __res = default_swab16(x); \ - } else { \ - __asm__("xchgb %b0,%h0" : "=Q" (__res) : "0" ((uint16_t)(x))); \ - } \ - __res; }) - -#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) - -#include - -#define bswap32(x) _byteswap_ulong(x) -#define bswap16(x) _byteswap_ushort(x) - -#endif - -#ifdef bswap32 - -#undef ntohl -#undef htonl -#define ntohl(x) bswap32(x) -#define htonl(x) bswap32(x) - -#endif - -#ifdef bswap16 - -#undef ntohs -#undef htons -#define ntohs(x) bswap16(x) -#define htons(x) bswap16(x) - -#endif diff --git a/src/common.h b/src/common.h index a8f60fe48..4b4a99775 100644 --- a/src/common.h +++ b/src/common.h @@ -58,7 +58,6 @@ #include "git2/types.h" #include "git2/errors.h" #include "thread-utils.h" -#include "bswap.h" #include From a2e4593e8259c58b60579c5579330f03587a9ce6 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 3 Feb 2015 18:41:40 -0500 Subject: [PATCH 2/2] hash_generic: __extension__ keyword for pedantry --- src/hash/hash_generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hash/hash_generic.c b/src/hash/hash_generic.c index 32fcd869c..472a7a696 100644 --- a/src/hash/hash_generic.c +++ b/src/hash/hash_generic.c @@ -18,7 +18,7 @@ * rotate with a loop. */ -#define SHA_ASM(op, x, n) ({ unsigned int __res; __asm__(op " %1,%0":"=r" (__res):"i" (n), "0" (x)); __res; }) +#define SHA_ASM(op, x, n) (__extension__ ({ unsigned int __res; __asm__(op " %1,%0":"=r" (__res):"i" (n), "0" (x)); __res; })) #define SHA_ROL(x,n) SHA_ASM("rol", x, n) #define SHA_ROR(x,n) SHA_ASM("ror", x, n)