42 #if defined(__ANDROID__) 46 #if defined(__sun) && defined(__SVR4) 54 static_assert(
sizeof(
uint32_t) ==
sizeof(
unsigned int),
"this code assumes 32-bit integers");
65 return (x << (
r & 31)) | (x >> (-
r & 31));
69 return (x << (
r & 63)) | (x >> (-
r & 63));
79 return val & 0xFFFFFFFF;
97 uint64_t adbc_carry = adbc < ad ? 1 : 0;
100 uint64_t product_lo = bd + (adbc << 32);
101 uint64_t product_lo_carry = product_lo < bd ? 1 : 0;
102 *product_hi = ac + (adbc >> 32) + (adbc_carry << 32) + product_lo_carry;
103 assert(ac <= *product_hi);
109 dividend |= ((
uint64_t)*remainder) << 32;
110 *remainder = dividend % divisor;
111 return dividend / divisor;
119 dividend_dwords[3] =
hi_dword(dividend_hi);
120 dividend_dwords[2] =
lo_dword(dividend_hi);
121 dividend_dwords[1] =
hi_dword(dividend_lo);
122 dividend_dwords[0] =
lo_dword(dividend_lo);
152 #define IDENT16(x) ((uint16_t) (x)) 153 #define IDENT32(x) ((uint32_t) (x)) 154 #define IDENT64(x) ((uint64_t) (x)) 156 #define SWAP16(x) ((((uint16_t) (x) & 0x00ff) << 8) | \ 157 (((uint16_t) (x) & 0xff00) >> 8)) 158 #define SWAP32(x) ((((uint32_t) (x) & 0x000000ff) << 24) | \ 159 (((uint32_t) (x) & 0x0000ff00) << 8) | \ 160 (((uint32_t) (x) & 0x00ff0000) >> 8) | \ 161 (((uint32_t) (x) & 0xff000000) >> 24)) 162 #define SWAP64(x) ((((uint64_t) (x) & 0x00000000000000ff) << 56) | \ 163 (((uint64_t) (x) & 0x000000000000ff00) << 40) | \ 164 (((uint64_t) (x) & 0x0000000000ff0000) << 24) | \ 165 (((uint64_t) (x) & 0x00000000ff000000) << 8) | \ 166 (((uint64_t) (x) & 0x000000ff00000000) >> 8) | \ 167 (((uint64_t) (x) & 0x0000ff0000000000) >> 24) | \ 168 (((uint64_t) (x) & 0x00ff000000000000) >> 40) | \ 169 (((uint64_t) (x) & 0xff00000000000000) >> 56)) 176 # if defined(__ANDROID__) && defined(__swap16) && !defined(swap16) 177 # define swap16 __swap16 178 # elif !defined(swap16) 180 return ((x & 0x00ff) << 8) | ((x & 0xff00) >> 8);
183 # if defined(__ANDROID__) && defined(__swap32) && !defined(swap32) 184 # define swap32 __swap32 185 # elif !defined(swap32) 187 x = ((x & 0x00ff00ff) << 8) | ((x & 0xff00ff00) >> 8);
188 return (x << 16) | (x >> 16);
191 # if defined(__ANDROID__) && defined(__swap64) && !defined(swap64) 192 # define swap64 __swap64 193 # elif !defined(swap64) 195 x = ((x & 0x00ff00ff00ff00ff) << 8) | ((x & 0xff00ff00ff00ff00) >> 8);
196 x = ((x & 0x0000ffff0000ffff) << 16) | ((x & 0xffff0000ffff0000) >> 16);
197 return (x << 32) | (x >> 32);
202 #if defined(__GNUC__) 203 #define UNUSED __attribute__((unused)) 212 for (
i = 0;
i < n;
i++) {
218 for (
i = 0;
i < n;
i++) {
224 for (
i = 0;
i < n;
i++) {
241 for (
i = 0;
i < n;
i++) {
247 for (
i = 0;
i < n;
i++) {
253 for (
i = 0;
i < n;
i++) {
259 # define LITTLE_ENDIAN 1234 260 # define BIG_ENDIAN 4321 261 # define BYTE_ORDER LITTLE_ENDIAN 264 #if !defined(BYTE_ORDER) || !defined(LITTLE_ENDIAN) || !defined(BIG_ENDIAN) 265 static_assert(
false,
"BYTE_ORDER is undefined. Perhaps, GNU extensions are not enabled");
268 #if BYTE_ORDER == LITTLE_ENDIAN 269 #define SWAP16LE IDENT16 270 #define SWAP16BE SWAP16 271 #define swap16le ident16 272 #define swap16be swap16 273 #define mem_inplace_swap16le mem_inplace_ident 274 #define mem_inplace_swap16be mem_inplace_swap16 275 #define memcpy_swap16le memcpy_ident16 276 #define memcpy_swap16be memcpy_swap16 277 #define SWAP32LE IDENT32 278 #define SWAP32BE SWAP32 279 #define swap32le ident32 280 #define swap32be swap32 281 #define mem_inplace_swap32le mem_inplace_ident 282 #define mem_inplace_swap32be mem_inplace_swap32 283 #define memcpy_swap32le memcpy_ident32 284 #define memcpy_swap32be memcpy_swap32 285 #define SWAP64LE IDENT64 286 #define SWAP64BE SWAP64 287 #define swap64le ident64 288 #define swap64be swap64 289 #define mem_inplace_swap64le mem_inplace_ident 290 #define mem_inplace_swap64be mem_inplace_swap64 291 #define memcpy_swap64le memcpy_ident64 292 #define memcpy_swap64be memcpy_swap64 295 #if BYTE_ORDER == BIG_ENDIAN 296 #define SWAP16BE IDENT16 297 #define SWAP16LE SWAP16 298 #define swap16be ident16 299 #define swap16le swap16 300 #define mem_inplace_swap16be mem_inplace_ident 301 #define mem_inplace_swap16le mem_inplace_swap16 302 #define memcpy_swap16be memcpy_ident16 303 #define memcpy_swap16le memcpy_swap16 304 #define SWAP32BE IDENT32 305 #define SWAP32LE SWAP32 306 #define swap32be ident32 307 #define swap32le swap32 308 #define mem_inplace_swap32be mem_inplace_ident 309 #define mem_inplace_swap32le mem_inplace_swap32 310 #define memcpy_swap32be memcpy_ident32 311 #define memcpy_swap32le memcpy_swap32 312 #define SWAP64BE IDENT64 313 #define SWAP64LE SWAP64 314 #define swap64be ident64 315 #define swap64le swap64 316 #define mem_inplace_swap64be mem_inplace_ident 317 #define mem_inplace_swap64le mem_inplace_swap64 318 #define memcpy_swap64be memcpy_ident64 319 #define memcpy_swap64le memcpy_swap64 static void mem_inplace_ident(void *mem UNUSED, size_t n UNUSED)
Definition: int-util.h:207
static void memcpy_ident32(void *dst, const void *src, size_t n)
Definition: int-util.h:232
int i
Definition: pymoduletest.py:23
static void sub64clamp(uint64_t *value, uint64_t sub)
Definition: int-util.h:144
static void memcpy_swap64(void *dst, const void *src, size_t n)
Definition: int-util.h:251
unsigned short uint16_t
Definition: stdint.h:125
static uint32_t div128_32(uint64_t dividend_hi, uint64_t dividend_lo, uint32_t divisor, uint64_t *quotient_hi, uint64_t *quotient_lo)
Definition: int-util.h:115
static void mem_inplace_swap64(void *mem, size_t n)
Definition: int-util.h:222
static void mem_inplace_swap16(void *mem, size_t n)
Definition: int-util.h:210
static void add(ge_p3 &p3, const ge_cached &other)
Definition: multiexp.cc:144
unsigned int uint32_t
Definition: stdint.h:126
static void memcpy_ident64(void *dst, const void *src, size_t n)
Definition: int-util.h:235
static uint16_t ident16(uint16_t x)
Definition: int-util.h:171
static uint32_t rol32(uint32_t x, int r)
Definition: int-util.h:64
static uint64_t swap64(uint64_t x)
Definition: int-util.h:194
static void add64clamp(uint64_t *value, uint64_t add)
Definition: int-util.h:135
unsigned __int64 uint64_t
Definition: stdint.h:136
static uint64_t div_with_reminder(uint64_t dividend, uint32_t divisor, uint32_t *remainder)
Definition: int-util.h:108
static void mem_inplace_swap32(void *mem, size_t n)
Definition: int-util.h:216
static uint64_t lo_dword(uint64_t val)
Definition: int-util.h:78
static uint32_t swap32(uint32_t x)
Definition: int-util.h:186
static void memcpy_swap16(void *dst, const void *src, size_t n)
Definition: int-util.h:239
void div128_64(uint64_t dividend_hi, uint64_t dividend_lo, uint64_t divisor, uint64_t *quotient_hi, uint64_t *quotient_lo, uint64_t *remainder_hi, uint64_t *remainder_lo)
Definition: int-util.cpp:31
static uint64_t hi_dword(uint64_t val)
Definition: int-util.h:74
static uint64_t ident64(uint64_t x)
Definition: int-util.h:173
static uint64_t rol64(uint64_t x, int r)
Definition: int-util.h:68
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition: pointer.h:1124
r
Definition: testupnpigd.py:61
static void memcpy_ident16(void *dst, const void *src, size_t n)
Definition: int-util.h:229
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1225
void * memcpy(void *a, const void *b, size_t c)
Definition: glibc_compat.cpp:16
d
Definition: pymoduletest.py:79
#define UNUSED
Definition: int-util.h:205
static uint16_t swap16(uint16_t x)
Definition: int-util.h:179
static void memcpy_swap32(void *dst, const void *src, size_t n)
Definition: int-util.h:245
static uint32_t ident32(uint32_t x)
Definition: int-util.h:172
c
Definition: pymoduletest.py:79
static uint64_t mul128(uint64_t multiplier, uint64_t multiplicand, uint64_t *product_hi)
Definition: int-util.h:82
cryptonote::block b
Definition: block.cpp:40