tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

neon-compat.h (1482B)


      1 /*
      2 * Copyright (C) 2020, D. R. Commander.  All Rights Reserved.
      3 * Copyright (C) 2020-2021, Arm Limited.  All Rights Reserved.
      4 *
      5 * This software is provided 'as-is', without any express or implied
      6 * warranty.  In no event will the authors be held liable for any damages
      7 * arising from the use of this software.
      8 *
      9 * Permission is granted to anyone to use this software for any purpose,
     10 * including commercial applications, and to alter it and redistribute it
     11 * freely, subject to the following restrictions:
     12 *
     13 * 1. The origin of this software must not be misrepresented; you must not
     14 *    claim that you wrote the original software. If you use this software
     15 *    in a product, an acknowledgment in the product documentation would be
     16 *    appreciated but is not required.
     17 * 2. Altered source versions must be plainly marked as such, and must not be
     18 *    misrepresented as being the original software.
     19 * 3. This notice may not be removed or altered from any source distribution.
     20 */
     21 
     22 /* Define compiler-independent count-leading-zeros and byte-swap macros */
     23 #if defined(_MSC_VER) && !defined(__clang__)
     24 #define BUILTIN_CLZ(x)  _CountLeadingZeros(x)
     25 #define BUILTIN_CLZLL(x)  _CountLeadingZeros64(x)
     26 #define BUILTIN_BSWAP64(x)  _byteswap_uint64(x)
     27 #elif defined(__clang__) || defined(__GNUC__)
     28 #define BUILTIN_CLZ(x)  __builtin_clz(x)
     29 #define BUILTIN_CLZLL(x)  __builtin_clzll(x)
     30 #define BUILTIN_BSWAP64(x)  __builtin_bswap64(x)
     31 #else
     32 #error "Unknown compiler"
     33 #endif