15#elif defined(__GNUC__)
16typedef unsigned long long uint64;
17typedef long long int64;
29#define make_int64(ll,hh) (ll | (int64(hh) << 32))
30#define make_uint64(ll,hh) (ll | (uint64(hh) << 32))
47#ifdef __SIZEOF_INT128__
48# define __HAS_INT128__ 1
50# define __HAS_INT128__ 0
75 uint128(
int x) { l = x; h = (x < 0)? -1 : 0; }
122 int128(
int x) { l = x; h = (x < 0) ? -1 : 0; }
188 return uint128(x.l | y.l, x.h | y.h);
194 return uint128(x.l & y.l, x.h & y.h);
200 return uint128(x.l ^ y.l, x.h ^ y.h);
206 return *
this = *
this + y;
212 return *
this = *
this - y;
218 return *
this = *
this | y;
224 return *
this = *
this & y;
230 return *
this = *
this ^ y;
236 return *
this = *
this / y;
242 return *
this = *
this % y;
248 return *
this = *
this * y;
254 return *
this = *
this << cnt;
260 return *
this = *
this >> cnt;
291#ifndef NO_OBSOLETE_FUNCS
int128(uint x)
Definition llong.hpp:121
int128(void)
Definition llong.hpp:120
friend int128 operator^(const int128 &x, const int128 &y)
friend bool operator<=(const int128 &x, const int128 &y)
Definition llong.hpp:159
int128 & operator&=(const int128 &y)
friend int128 operator~(const int128 &x)
Definition llong.hpp:153
friend int128 operator|(const int128 &x, const int128 &y)
friend int128 operator+(const int128 &x, const int128 &y)
friend int128 operator+(const int128 &x)
Definition llong.hpp:151
friend bool operator!=(const int128 &x, const int128 &y)
Definition llong.hpp:155
friend bool operator>=(const int128 &x, const int128 &y)
Definition llong.hpp:158
int128 & operator/=(const int128 &y)
int128 & operator*=(const int128 &y)
friend class uint128
Definition llong.hpp:118
int128 & operator>>=(int cnt)
friend uint64 high(const int128 &x)
Definition llong.hpp:128
int128 & operator--(void)
int128 & operator<<=(int cnt)
int128 & operator+=(const int128 &y)
friend uint64 low(const int128 &x)
Definition llong.hpp:127
friend bool operator<(const int128 &x, const int128 &y)
Definition llong.hpp:157
friend int128 operator%(const int128 &x, const int128 &y)
int128 & operator++(void)
int128 & operator%=(const int128 &y)
friend bool operator==(const int128 &x, const int128 &y)
Definition llong.hpp:154
int128 & operator|=(const int128 &y)
friend bool operator>(const int128 &x, const int128 &y)
Definition llong.hpp:156
friend int128 operator&(const int128 &x, const int128 &y)
int128 & operator^=(const int128 &y)
int128(uint64 ll, uint64 hh)
Definition llong.hpp:125
friend int128 operator>>(const int128 &x, int cnt)
friend int128 operator/(const int128 &x, const int128 &y)
int128(const uint128 &x)
Definition llong.hpp:126
int128(int x)
Definition llong.hpp:122
friend int128 operator<<(const int128 &x, int cnt)
int128(uint64 x)
Definition llong.hpp:123
int128 & operator-=(const int128 &y)
friend int128 operator-(const int128 &x)
int128(int64 x)
Definition llong.hpp:124
friend int128 operator-(const int128 &x, const int128 &y)
friend int128 operator*(const int128 &x, const int128 &y)
uint128 & operator^=(const uint128 &y)
Definition llong.hpp:228
friend uint128 operator/(const uint128 &x, const uint128 &y)
uint128 & operator-=(const uint128 &y)
Definition llong.hpp:210
uint128(int64 x)
Definition llong.hpp:77
friend bool operator>=(const uint128 &x, const uint128 &y)
Definition llong.hpp:110
friend uint128 operator*(const uint128 &x, const uint128 &y)
uint128(int x)
Definition llong.hpp:75
friend uint128 operator|(const uint128 &x, const uint128 &y)
Definition llong.hpp:186
friend uint128 operator%(const uint128 &x, const uint128 &y)
uint128(void)
Definition llong.hpp:73
friend uint128 operator~(const uint128 &x)
Definition llong.hpp:105
friend bool operator<(const uint128 &x, const uint128 &y)
Definition llong.hpp:109
uint128 & operator%=(const uint128 &y)
Definition llong.hpp:240
friend uint64 low(const uint128 &x)
Definition llong.hpp:79
friend uint128 operator+(const uint128 &x)
Definition llong.hpp:103
friend bool operator!=(const uint128 &x, const uint128 &y)
Definition llong.hpp:107
uint128 & operator+=(const uint128 &y)
Definition llong.hpp:204
uint128(uint64 ll, uint64 hh)
Definition llong.hpp:78
friend class int128
Definition llong.hpp:71
uint128 & operator|=(const uint128 &y)
Definition llong.hpp:216
uint128 & operator<<=(int cnt)
Definition llong.hpp:252
uint128 & operator&=(const uint128 &y)
Definition llong.hpp:222
uint128(uint x)
Definition llong.hpp:74
friend bool operator<=(const uint128 &x, const uint128 &y)
Definition llong.hpp:111
friend uint128 operator+(const uint128 &x, const uint128 &y)
Definition llong.hpp:166
uint128(uint64 x)
Definition llong.hpp:76
uint128 & operator++(void)
Definition llong.hpp:264
friend uint128 operator^(const uint128 &x, const uint128 &y)
Definition llong.hpp:198
friend uint128 operator<<(const uint128 &x, int cnt)
friend bool operator==(const uint128 &x, const uint128 &y)
Definition llong.hpp:106
friend uint128 operator&(const uint128 &x, const uint128 &y)
Definition llong.hpp:192
friend uint128 operator>>(const uint128 &x, int cnt)
friend uint128 operator-(const uint128 &x, const uint128 &y)
Definition llong.hpp:176
uint128 & operator*=(const uint128 &y)
Definition llong.hpp:246
uint128 & operator--(void)
Definition llong.hpp:272
friend uint64 high(const uint128 &x)
Definition llong.hpp:80
friend bool operator>(const uint128 &x, const uint128 &y)
Definition llong.hpp:108
uint128 & operator/=(const uint128 &y)
Definition llong.hpp:234
uint128 & operator>>=(int cnt)
Definition llong.hpp:258
idaman const char * end
Definition pro.h:1004
constexpr uint32 low(const uint64 &x)
Definition llong.hpp:24
idaman THREAD_SAFE uint64 ida_export swap64(uint64)
uint128 operator|(const uint128 &x, const uint128 &y)
Definition llong.hpp:186
unsigned __int64 uint64
Definition llong.hpp:13
unsigned __int128 uint128
Definition llong.hpp:55
uint128 make_uint128(uint64 ll, uint64 hh)
Definition llong.hpp:59
constexpr uint64 make_uint64(uint32 ll, int32 hh)
Definition llong.hpp:23
uint128 operator+(const uint128 &x, const uint128 &y)
Definition llong.hpp:166
uint128 operator^(const uint128 &x, const uint128 &y)
Definition llong.hpp:198
__int128 int128
Definition llong.hpp:56
constexpr uint32 high(const uint64 &x)
Definition llong.hpp:25
uint128 operator&(const uint128 &x, const uint128 &y)
Definition llong.hpp:192
uint128 operator-(const uint128 &x, const uint128 &y)
Definition llong.hpp:176
constexpr int64 make_int64(uint32 ll, int32 hh)
Definition llong.hpp:22
idaman THREAD_SAFE void ida_export swap128(uint128 *x)
__int64 int64
Definition llong.hpp:14
int128 make_int128(uint64 ll, int64 hh)
Definition llong.hpp:58
idaman DEPRECATED THREAD_SAFE int64 ida_export llong_scan(const char *buf, int radix, const char **end)
unsigned int uint32
unsigned 32 bit value
Definition pro.h:352
int int32
signed 32 bit value
Definition pro.h:351
unsigned int uint
unsigned 32 bit value
Definition pro.h:343