aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcryptobox/poly1305/poly1305_internal.h
blob: 21b7aa7d22026f936b72b4bc083e3bd22ac49747 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#if defined(_MSC_VER)
	#include <intrin.h>

	typedef struct uint128_t {
		unsigned long long lo;
		unsigned long long hi;
	} uint128_t;

	#define POLY1305_NOINLINE __declspec(noinline)
#elif defined(__GNUC__)
	#pragma GCC system_header
	#if defined(__SIZEOF_INT128__)
		typedef unsigned __int128 uint128_t;
	#else
		typedef unsigned uint128_t __attribute__((mode(TI)));
	#endif

	#define POLY1305_NOINLINE __attribute__((noinline))
#endif