| diff --git a/base/third_party/cityhash/city.cc b/base/third_party/cityhash/city.cc |
| index b0d2294aabb3..2ab3db20f4fa 100644 |
| --- a/base/third_party/cityhash/city.cc |
| +++ b/base/third_party/cityhash/city.cc |
| @@ -35,7 +35,14 @@ |
| using std::make_pair; |
| using std::pair; |
| |
| -#ifdef _MSC_VER |
| +#if defined(__clang__) |
| + |
| +// Use builtins where possible. On Windows for instance, this may prevent a |
| +// function call instead of emitting a single instruction. |
| +#define bswap_32(x) __builtin_bswap32(x) |
| +#define bswap_64(x) __builtin_bswap64(x) |
| + |
| +#elif _MSC_VER |
| |
| #include <stdlib.h> |
| #define bswap_32(x) _byteswap_ulong(x) |