blob: e3870206cbde56d4dbe3b1216747f01de286851c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
// license:GPL-2.0+
// copyright-holders:Couriersud
/*
* pconfig.h
*
*/
#ifndef PCONFIG_H_
#define PCONFIG_H_
/*
* Define this for more accurate measurements if you processor supports
* RDTSCP.
*/
#define PHAS_RDTSCP (1)
/*
* Define this to use accurate timing measurements. Only works
* if PHAS_RDTSCP == 1
*/
#define PUSE_ACCURATE_STATS (1)
/*
* Set this to one if you want to use 128 bit int for ptime.
* This is for tests only.
*/
#define PHAS_INT128 (0)
#ifndef PHAS_INT128
#define PHAS_INT128 (0)
#endif
#if (PHAS_INT128)
typedef __uint128_t UINT128;
typedef __int128_t INT128;
#endif
#if defined(__GNUC__)
#ifdef RESTRICT
#undef RESTRICT
#endif
#define RESTRICT __restrict__
#define ATTR_UNUSED __attribute__((__unused__))
#else
#define RESTRICT
#define ATTR_UNUSED
#endif
//============================================================
// Standard defines
//============================================================
//============================================================
// Pointer to Member Function
//============================================================
// This will be autodetected
// #define PPMF_TYPE 0
#define PPMF_TYPE_PMF 0
#define PPMF_TYPE_GNUC_PMF_CONV 1
#define PPMF_TYPE_INTERNAL 2
#if defined(__GNUC__)
/* does not work in versions over 4.7.x of 32bit MINGW */
#if defined(__MINGW32__) && !defined(__x86_64) && defined(__i386__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
#define PHAS_PMF_INTERNAL 0
#elif defined(__MINGW32__) && !defined(__x86_64) && defined(__i386__)
#define PHAS_PMF_INTERNAL 1
#define MEMBER_ABI _thiscall
#elif defined(__clang__) && defined(__i386__) && defined(_WIN32)
#define PHAS_PMF_INTERNAL 0
#elif defined(EMSCRIPTEN)
#define PHAS_PMF_INTERNAL 0
#elif defined(__arm__) || defined(__ARMEL__)
#define PHAS_PMF_INTERNAL 0
#else
#define PHAS_PMF_INTERNAL 1
#endif
#else
#define PHAS_PMF_INTERNAL 0
#endif
#ifndef MEMBER_ABI
#define MEMBER_ABI
#endif
#ifndef PPMF_TYPE
#if PHAS_PMF_INTERNAL
#define PPMF_TYPE PPMF_TYPE_INTERNAL
#else
#define PPMF_TYPE PPMF_TYPE_PMF
#endif
#endif
#endif /* PCONFIG_H_ */
|