Coverage Report

Created: 2018-07-03 15:31

/home/travis/build/MoarVM/MoarVM/src/jit/x64/arch.h
Line
Count
Source
1
2
#define MVM_JIT_ARCH_GPR(_) \
3
    _(RAX) __COMMA__ \
4
    _(RCX) __COMMA__ \
5
    _(RDX) __COMMA__ \
6
    _(RBX) __COMMA__ \
7
    _(RSP) __COMMA__ \
8
    _(RBP) __COMMA__ \
9
    _(RSI) __COMMA__ \
10
    _(RDI) __COMMA__ \
11
    _(R8) __COMMA__ \
12
    _(R9) __COMMA__ \
13
    _(R10) __COMMA__ \
14
    _(R11) __COMMA__ \
15
    _(R12) __COMMA__ \
16
    _(R13) __COMMA__ \
17
    _(R14) __COMMA__ \
18
    _(R15)
19
20
21
#define MVM_JIT_ARCH_NUM(_) \
22
    _(XMM0) __COMMA__ \
23
    _(XMM1) __COMMA__ \
24
    _(XMM2) __COMMA__ \
25
    _(XMM3) __COMMA__ \
26
    _(XMM4) __COMMA__ \
27
    _(XMM5) __COMMA__ \
28
    _(XMM6) __COMMA__ \
29
    _(XMM7)
30
31
32
#if MVM_JIT_PLATFORM == MVM_JIT_PLATFORM_POSIX
33
/* Define the GPR set usable for general calculations. RAX is reserved for
34
 * internal use by tiles */
35
36
#define MVM_JIT_ARCH_AVAILABLE_GPR(_) \
37
    _(RCX) __COMMA__ \
38
    _(RDX) __COMMA__ \
39
    _(RSI) __COMMA__ \
40
    _(RDI) __COMMA__ \
41
    _(R8) __COMMA__ \
42
    _(R9) __COMMA__ \
43
    _(R10) __COMMA__ \
44
    _(R11)
45
46
/* define set of non-volatile regsiters */
47
48
49
#define MVM_JIT_ARCH_NONVOLATILE_GPR(_) \
50
    _(RBX) __COMMA__ \
51
    _(RSP) __COMMA__ \
52
    _(RBP) __COMMA__ \
53
    _(R12) __COMMA__ \
54
    _(R13) __COMMA__ \
55
    _(R14) __COMMA__ \
56
    _(R15)
57
58
/* GPR used for arguments */
59
#define MVM_JIT_ARCH_ARG_GPR(_) \
60
    _(RDI) __COMMA__ \
61
    _(RSI) __COMMA__ \
62
    _(RDX) __COMMA__ \
63
    _(RCX) __COMMA__ \
64
    _(R8) __COMMA__ \
65
    _(R9)
66
67
/* SSE used for arguments */
68
69
#define MVM_JIT_ARCH_ARG_NUM(_) \
70
    MVM_JIT_ARCH_NUM(_)
71
72
#else
73
74
/* Microsoft why you give us so few registers :-( */
75
#define MVM_JIT_ARCH_AVAILABLE_GPR(_) \
76
    _(RCX) __COMMA__ \
77
    _(RDX) __COMMA__ \
78
    _(R8) __COMMA__ \
79
    _(R9) __COMMA__ \
80
    _(R10) __COMMA__ \
81
    _(R11)
82
83
#define MVM_JIT_ARCH_NONVOLATILE_GPR(_) \
84
    _(RBX) __COMMA__ \
85
    _(RSP) __COMMA__ \
86
    _(RBP) __COMMA__ \
87
    _(RSI) __COMMA__ \
88
    _(RDI) __COMMA__ \
89
    _(R12) __COMMA__ \
90
    _(R13) __COMMA__ \
91
    _(R14) __COMMA__ \
92
    _(R15)
93
#define MVM_JIT_ARCH_ARG_GPR(_) \
94
    _(RCX) __COMMA__ \
95
    _(RDX) __COMMA__ \
96
    _(R8) __COMMA__ \
97
    _(R9)
98
#define MVM_JIT_ARCH_ARG_NUM(_) \
99
    _(XMM0) __COMMA__ \
100
    _(XMM1) __COMMA__ \
101
    _(XMM2) __COMMA__ \
102
    _(XMM3)
103
#endif
104
105
/* Frame declarations */
106
546k
#define MVM_JIT_ARCH_NUM_GPR 16