summaryrefslogtreecommitdiff
path: root/src/common/x64/xbyak_abi.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/common/x64/xbyak_abi.h69
1 files changed, 56 insertions, 13 deletions
diff --git a/src/common/x64/xbyak_abi.h b/src/common/x64/xbyak_abi.h
index 6090d93e1..fd3fbdd4b 100644
--- a/src/common/x64/xbyak_abi.h
+++ b/src/common/x64/xbyak_abi.h
@@ -60,20 +60,41 @@ const Xbyak::Reg ABI_PARAM4 = Xbyak::util::r9;
60 60
61const BitSet32 ABI_ALL_CALLER_SAVED = BuildRegSet({ 61const BitSet32 ABI_ALL_CALLER_SAVED = BuildRegSet({
62 // GPRs 62 // GPRs
63 Xbyak::util::rcx, Xbyak::util::rdx, Xbyak::util::r8, Xbyak::util::r9, Xbyak::util::r10, 63 Xbyak::util::rcx,
64 Xbyak::util::rdx,
65 Xbyak::util::r8,
66 Xbyak::util::r9,
67 Xbyak::util::r10,
64 Xbyak::util::r11, 68 Xbyak::util::r11,
65 // XMMs 69 // XMMs
66 Xbyak::util::xmm0, Xbyak::util::xmm1, Xbyak::util::xmm2, Xbyak::util::xmm3, Xbyak::util::xmm4, 70 Xbyak::util::xmm0,
71 Xbyak::util::xmm1,
72 Xbyak::util::xmm2,
73 Xbyak::util::xmm3,
74 Xbyak::util::xmm4,
67 Xbyak::util::xmm5, 75 Xbyak::util::xmm5,
68}); 76});
69 77
70const BitSet32 ABI_ALL_CALLEE_SAVED = BuildRegSet({ 78const BitSet32 ABI_ALL_CALLEE_SAVED = BuildRegSet({
71 // GPRs 79 // GPRs
72 Xbyak::util::rbx, Xbyak::util::rsi, Xbyak::util::rdi, Xbyak::util::rbp, Xbyak::util::r12, 80 Xbyak::util::rbx,
73 Xbyak::util::r13, Xbyak::util::r14, Xbyak::util::r15, 81 Xbyak::util::rsi,
82 Xbyak::util::rdi,
83 Xbyak::util::rbp,
84 Xbyak::util::r12,
85 Xbyak::util::r13,
86 Xbyak::util::r14,
87 Xbyak::util::r15,
74 // XMMs 88 // XMMs
75 Xbyak::util::xmm6, Xbyak::util::xmm7, Xbyak::util::xmm8, Xbyak::util::xmm9, Xbyak::util::xmm10, 89 Xbyak::util::xmm6,
76 Xbyak::util::xmm11, Xbyak::util::xmm12, Xbyak::util::xmm13, Xbyak::util::xmm14, 90 Xbyak::util::xmm7,
91 Xbyak::util::xmm8,
92 Xbyak::util::xmm9,
93 Xbyak::util::xmm10,
94 Xbyak::util::xmm11,
95 Xbyak::util::xmm12,
96 Xbyak::util::xmm13,
97 Xbyak::util::xmm14,
77 Xbyak::util::xmm15, 98 Xbyak::util::xmm15,
78}); 99});
79 100
@@ -90,18 +111,40 @@ const Xbyak::Reg ABI_PARAM4 = Xbyak::util::rcx;
90 111
91const BitSet32 ABI_ALL_CALLER_SAVED = BuildRegSet({ 112const BitSet32 ABI_ALL_CALLER_SAVED = BuildRegSet({
92 // GPRs 113 // GPRs
93 Xbyak::util::rcx, Xbyak::util::rdx, Xbyak::util::rdi, Xbyak::util::rsi, Xbyak::util::r8, 114 Xbyak::util::rcx,
94 Xbyak::util::r9, Xbyak::util::r10, Xbyak::util::r11, 115 Xbyak::util::rdx,
116 Xbyak::util::rdi,
117 Xbyak::util::rsi,
118 Xbyak::util::r8,
119 Xbyak::util::r9,
120 Xbyak::util::r10,
121 Xbyak::util::r11,
95 // XMMs 122 // XMMs
96 Xbyak::util::xmm0, Xbyak::util::xmm1, Xbyak::util::xmm2, Xbyak::util::xmm3, Xbyak::util::xmm4, 123 Xbyak::util::xmm0,
97 Xbyak::util::xmm5, Xbyak::util::xmm6, Xbyak::util::xmm7, Xbyak::util::xmm8, Xbyak::util::xmm9, 124 Xbyak::util::xmm1,
98 Xbyak::util::xmm10, Xbyak::util::xmm11, Xbyak::util::xmm12, Xbyak::util::xmm13, 125 Xbyak::util::xmm2,
99 Xbyak::util::xmm14, Xbyak::util::xmm15, 126 Xbyak::util::xmm3,
127 Xbyak::util::xmm4,
128 Xbyak::util::xmm5,
129 Xbyak::util::xmm6,
130 Xbyak::util::xmm7,
131 Xbyak::util::xmm8,
132 Xbyak::util::xmm9,
133 Xbyak::util::xmm10,
134 Xbyak::util::xmm11,
135 Xbyak::util::xmm12,
136 Xbyak::util::xmm13,
137 Xbyak::util::xmm14,
138 Xbyak::util::xmm15,
100}); 139});
101 140
102const BitSet32 ABI_ALL_CALLEE_SAVED = BuildRegSet({ 141const BitSet32 ABI_ALL_CALLEE_SAVED = BuildRegSet({
103 // GPRs 142 // GPRs
104 Xbyak::util::rbx, Xbyak::util::rbp, Xbyak::util::r12, Xbyak::util::r13, Xbyak::util::r14, 143 Xbyak::util::rbx,
144 Xbyak::util::rbp,
145 Xbyak::util::r12,
146 Xbyak::util::r13,
147 Xbyak::util::r14,
105 Xbyak::util::r15, 148 Xbyak::util::r15,
106}); 149});
107 150