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))
72 uint128(
int x) { l = x; h = (x < 0)? -1 : 0; }
119 int128(
int x) { l = x; h = (x < 0) ? -1 : 0; }
186 return uint128(x.l | y.l, x.h | y.h);
192 return uint128(x.l & y.l, x.h & y.h);
198 return uint128(x.l ^ y.l, x.h ^ y.h);
204 return *
this = *
this + y;
210 return *
this = *
this - y;
216 return *
this = *
this | y;
222 return *
this = *
this & y;
228 return *
this = *
this ^ y;
234 return *
this = *
this / y;
240 return *
this = *
this % y;
246 return *
this = *
this * y;
252 return *
this = *
this << cnt;
258 return *
this = *
this >> cnt;
284#ifndef NO_OBSOLETE_FUNCS
int128(uint x)
Definition llong.hpp:118
int128(void)
Definition llong.hpp:117
friend int128 operator^(const int128 &x, const int128 &y)
friend bool operator<=(const int128 &x, const int128 &y)
Definition llong.hpp:156
int128 & operator&=(const int128 &y)
friend int128 operator~(const int128 &x)
Definition llong.hpp:150
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:148
friend bool operator!=(const int128 &x, const int128 &y)
Definition llong.hpp:152
friend bool operator>=(const int128 &x, const int128 &y)
Definition llong.hpp:155
int128 & operator/=(const int128 &y)
int128 & operator*=(const int128 &y)
friend class uint128
Definition llong.hpp:115
int128 & operator>>=(int cnt)
friend uint64 high(const int128 &x)
Definition llong.hpp:125
int128 & operator--(void)
int128 & operator<<=(int cnt)
int128 & operator+=(const int128 &y)
friend uint64 low(const int128 &x)
Definition llong.hpp:124
friend bool operator<(const int128 &x, const int128 &y)
Definition llong.hpp:154
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:151
int128 & operator|=(const int128 &y)
friend bool operator>(const int128 &x, const int128 &y)
Definition llong.hpp:153
friend int128 operator&(const int128 &x, const int128 &y)
int128 & operator^=(const int128 &y)
int128(uint64 ll, uint64 hh)
Definition llong.hpp:122
friend int128 operator>>(const int128 &x, int cnt)
friend int128 operator/(const int128 &x, const int128 &y)
int128(const uint128 &x)
Definition llong.hpp:123
int128(int x)
Definition llong.hpp:119
friend int128 operator<<(const int128 &x, int cnt)
int128(uint64 x)
Definition llong.hpp:120
int128 & operator-=(const int128 &y)
friend int128 operator-(const int128 &x)
int128(int64 x)
Definition llong.hpp:121
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:226
friend uint128 operator/(const uint128 &x, const uint128 &y)
uint128 & operator-=(const uint128 &y)
Definition llong.hpp:208
uint128(int64 x)
Definition llong.hpp:74
friend bool operator>=(const uint128 &x, const uint128 &y)
Definition llong.hpp:107
friend uint128 operator*(const uint128 &x, const uint128 &y)
uint128(int x)
Definition llong.hpp:72
friend uint128 operator|(const uint128 &x, const uint128 &y)
Definition llong.hpp:184
friend uint128 operator%(const uint128 &x, const uint128 &y)
uint128(void)
Definition llong.hpp:70
friend uint128 operator~(const uint128 &x)
Definition llong.hpp:102
friend bool operator<(const uint128 &x, const uint128 &y)
Definition llong.hpp:106
uint128 & operator%=(const uint128 &y)
Definition llong.hpp:238
friend uint64 low(const uint128 &x)
Definition llong.hpp:76
friend uint128 operator+(const uint128 &x)
Definition llong.hpp:100
friend bool operator!=(const uint128 &x, const uint128 &y)
Definition llong.hpp:104
uint128 & operator+=(const uint128 &y)
Definition llong.hpp:202
uint128(uint64 ll, uint64 hh)
Definition llong.hpp:75
friend class int128
Definition llong.hpp:68
uint128 & operator|=(const uint128 &y)
Definition llong.hpp:214
uint128 & operator<<=(int cnt)
Definition llong.hpp:250
uint128 & operator&=(const uint128 &y)
Definition llong.hpp:220
uint128(uint x)
Definition llong.hpp:71
friend bool operator<=(const uint128 &x, const uint128 &y)
Definition llong.hpp:108
friend uint128 operator+(const uint128 &x, const uint128 &y)
Definition llong.hpp:164
uint128(uint64 x)
Definition llong.hpp:73
uint128 & operator++(void)
Definition llong.hpp:262
friend uint128 operator^(const uint128 &x, const uint128 &y)
Definition llong.hpp:196
friend uint128 operator<<(const uint128 &x, int cnt)
friend bool operator==(const uint128 &x, const uint128 &y)
Definition llong.hpp:103
friend uint128 operator&(const uint128 &x, const uint128 &y)
Definition llong.hpp:190
friend uint128 operator>>(const uint128 &x, int cnt)
friend uint128 operator-(const uint128 &x, const uint128 &y)
Definition llong.hpp:174
uint128 & operator*=(const uint128 &y)
Definition llong.hpp:244
uint128 & operator--(void)
Definition llong.hpp:270
friend uint64 high(const uint128 &x)
Definition llong.hpp:77
friend bool operator>(const uint128 &x, const uint128 &y)
Definition llong.hpp:105
uint128 & operator/=(const uint128 &y)
Definition llong.hpp:232
uint128 & operator>>=(int cnt)
Definition llong.hpp:256
idaman const char * end
Definition pro.h:1001
constexpr uint32 low(const uint64 &x)
Definition llong.hpp:24
idaman THREAD_SAFE uint64 ida_export swap64(uint64)
uint64 ulonglong
Definition llong.hpp:285
uint128 operator|(const uint128 &x, const uint128 &y)
Definition llong.hpp:184
unsigned __int64 uint64
Definition llong.hpp:13
unsigned __int128 uint128
Definition llong.hpp:52
uint128 make_uint128(uint64 ll, uint64 hh)
Definition llong.hpp:56
constexpr uint64 make_uint64(uint32 ll, int32 hh)
Definition llong.hpp:23
uint128 operator+(const uint128 &x, const uint128 &y)
Definition llong.hpp:164
uint128 operator^(const uint128 &x, const uint128 &y)
Definition llong.hpp:196
__int128 int128
Definition llong.hpp:53
constexpr uint32 high(const uint64 &x)
Definition llong.hpp:25
uint128 operator&(const uint128 &x, const uint128 &y)
Definition llong.hpp:190
uint128 operator-(const uint128 &x, const uint128 &y)
Definition llong.hpp:174
constexpr int64 make_int64(uint32 ll, int32 hh)
Definition llong.hpp:22
int64 longlong
Definition llong.hpp:286
idaman THREAD_SAFE void ida_export swap128(uint128 *x)
__int64 int64
Definition llong.hpp:14
idaman THREAD_SAFE int64 ida_export llong_scan(const char *buf, int radix, const char **end)
int128 make_int128(uint64 ll, int64 hh)
Definition llong.hpp:55
unsigned int uint32
unsigned 32 bit value
Definition pro.h:348
int int32
signed 32 bit value
Definition pro.h:347
unsigned int uint
unsigned 32 bit value
Definition pro.h:339