-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathZen5_Demo.h
60 lines (44 loc) · 1.13 KB
/
Zen5_Demo.h
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
#pragma once
#define _ZEN5_DEMO_VERSION 0x0100
#define ZEN5_REPEATS 100
#define ZEN5_FUNCS 2
#define ZEN5_FUNCS_X87 2
#define ZEN5_FUNCDEF(INST, OPERANDS) \
extern "C" unsigned __int64 __fastcall Zen5_##INST##_##OPERANDS##_lat(void); \
extern "C" unsigned __int64 __fastcall Zen5_##INST##_##OPERANDS##_tp(void);
#define ZEN5_FUNCDEF_X87(INST, OPERANDS) \
extern "C" unsigned __int64 __fastcall Zen5_##INST##_##OPERANDS##_lat(void);
#define ZEN5_FUNCDECL(NAME, INST, OPERANDS) \
{#NAME, {\
Zen5_##INST##_##OPERANDS##_lat, \
Zen5_##INST##_##OPERANDS##_tp \
}},
#define ZEN5_FUNCDECL_X87(NAME, INST, OPERANDS) \
{#NAME, {\
Zen5_##INST##_##OPERANDS##_lat, \
}},
#define ZEN5_FUNCDECL0(NAME) \
{#NAME, { \
nullptr, \
nullptr, \
}},
#define ZEN5_X87_FUNCDECL0(NAME) \
{#NAME, {\
nullptr, \
}},
ZEN5_FUNCDEF(empty, empty)
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned __int64(__fastcall* TEST_PTR)(void);
#ifdef __cplusplus
}
#endif
typedef struct {
const char name[64];
TEST_PTR funcs[ZEN5_FUNCS];
} zen5_methods;
typedef struct {
const char name[64];
TEST_PTR funcs[ZEN5_FUNCS_X87];
} zen5_methods_x87;