1 | //===-- RegisterInfos_x86_64_with_base_shared.cpp--------------------------===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #include "RegisterInfos_x86_64_with_base_shared.h" |
10 | |
11 | #include "lldb/lldb-defines.h" |
12 | #include <mutex> |
13 | |
14 | using namespace lldb; |
15 | |
16 | namespace lldb_private { |
17 | |
18 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_eax[] = { |
19 | lldb_eax_i386, LLDB_INVALID_REGNUM}; |
20 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_ebx[] = { |
21 | lldb_ebx_i386, LLDB_INVALID_REGNUM}; |
22 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_ecx[] = { |
23 | lldb_ecx_i386, LLDB_INVALID_REGNUM}; |
24 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_edx[] = { |
25 | lldb_edx_i386, LLDB_INVALID_REGNUM}; |
26 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_edi[] = { |
27 | lldb_edi_i386, LLDB_INVALID_REGNUM}; |
28 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_esi[] = { |
29 | lldb_esi_i386, LLDB_INVALID_REGNUM}; |
30 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_ebp[] = { |
31 | lldb_ebp_i386, LLDB_INVALID_REGNUM}; |
32 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_esp[] = { |
33 | lldb_esp_i386, LLDB_INVALID_REGNUM}; |
34 | |
35 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_eax[] = { |
36 | lldb_eax_i386, lldb_ax_i386, lldb_ah_i386, lldb_al_i386, |
37 | LLDB_INVALID_REGNUM}; |
38 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_ebx[] = { |
39 | lldb_ebx_i386, lldb_bx_i386, lldb_bh_i386, lldb_bl_i386, |
40 | LLDB_INVALID_REGNUM}; |
41 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_ecx[] = { |
42 | lldb_ecx_i386, lldb_cx_i386, lldb_ch_i386, lldb_cl_i386, |
43 | LLDB_INVALID_REGNUM}; |
44 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_edx[] = { |
45 | lldb_edx_i386, lldb_dx_i386, lldb_dh_i386, lldb_dl_i386, |
46 | LLDB_INVALID_REGNUM}; |
47 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_edi[] = { |
48 | lldb_edi_i386, lldb_di_i386, LLDB_INVALID_REGNUM}; |
49 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_esi[] = { |
50 | lldb_esi_i386, lldb_si_i386, LLDB_INVALID_REGNUM}; |
51 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_ebp[] = { |
52 | lldb_ebp_i386, lldb_bp_i386, LLDB_INVALID_REGNUM}; |
53 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_esp[] = { |
54 | lldb_esp_i386, lldb_sp_i386, LLDB_INVALID_REGNUM}; |
55 | |
56 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_rax[] = { |
57 | x86_64_with_base::lldb_rax, LLDB_INVALID_REGNUM}; |
58 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_rbx[] = { |
59 | x86_64_with_base::lldb_rbx, LLDB_INVALID_REGNUM}; |
60 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_rcx[] = { |
61 | x86_64_with_base::lldb_rcx, LLDB_INVALID_REGNUM}; |
62 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_rdx[] = { |
63 | x86_64_with_base::lldb_rdx, LLDB_INVALID_REGNUM}; |
64 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_rdi[] = { |
65 | x86_64_with_base::lldb_rdi, LLDB_INVALID_REGNUM}; |
66 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_rsi[] = { |
67 | x86_64_with_base::lldb_rsi, LLDB_INVALID_REGNUM}; |
68 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_rbp[] = { |
69 | x86_64_with_base::lldb_rbp, LLDB_INVALID_REGNUM}; |
70 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_rsp[] = { |
71 | x86_64_with_base::lldb_rsp, LLDB_INVALID_REGNUM}; |
72 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_r8[] = { |
73 | x86_64_with_base::lldb_r8, LLDB_INVALID_REGNUM}; |
74 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_r9[] = { |
75 | x86_64_with_base::lldb_r9, LLDB_INVALID_REGNUM}; |
76 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_r10[] = { |
77 | x86_64_with_base::lldb_r10, LLDB_INVALID_REGNUM}; |
78 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_r11[] = { |
79 | x86_64_with_base::lldb_r11, LLDB_INVALID_REGNUM}; |
80 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_r12[] = { |
81 | x86_64_with_base::lldb_r12, LLDB_INVALID_REGNUM}; |
82 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_r13[] = { |
83 | x86_64_with_base::lldb_r13, LLDB_INVALID_REGNUM}; |
84 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_r14[] = { |
85 | x86_64_with_base::lldb_r14, LLDB_INVALID_REGNUM}; |
86 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_r15[] = { |
87 | x86_64_with_base::lldb_r15, LLDB_INVALID_REGNUM}; |
88 | |
89 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_rax[] = { |
90 | x86_64_with_base::lldb_rax, x86_64_with_base::lldb_eax, |
91 | x86_64_with_base::lldb_ax, x86_64_with_base::lldb_ah, |
92 | x86_64_with_base::lldb_al, LLDB_INVALID_REGNUM}; |
93 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_rbx[] = { |
94 | x86_64_with_base::lldb_rbx, x86_64_with_base::lldb_ebx, |
95 | x86_64_with_base::lldb_bx, x86_64_with_base::lldb_bh, |
96 | x86_64_with_base::lldb_bl, LLDB_INVALID_REGNUM}; |
97 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_rcx[] = { |
98 | x86_64_with_base::lldb_rcx, x86_64_with_base::lldb_ecx, |
99 | x86_64_with_base::lldb_cx, x86_64_with_base::lldb_ch, |
100 | x86_64_with_base::lldb_cl, LLDB_INVALID_REGNUM}; |
101 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_rdx[] = { |
102 | x86_64_with_base::lldb_rdx, x86_64_with_base::lldb_edx, |
103 | x86_64_with_base::lldb_dx, x86_64_with_base::lldb_dh, |
104 | x86_64_with_base::lldb_dl, LLDB_INVALID_REGNUM}; |
105 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_rdi[] = { |
106 | x86_64_with_base::lldb_rdi, x86_64_with_base::lldb_edi, |
107 | x86_64_with_base::lldb_di, x86_64_with_base::lldb_dil, LLDB_INVALID_REGNUM}; |
108 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_rsi[] = { |
109 | x86_64_with_base::lldb_rsi, x86_64_with_base::lldb_esi, |
110 | x86_64_with_base::lldb_si, x86_64_with_base::lldb_sil, LLDB_INVALID_REGNUM}; |
111 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_rbp[] = { |
112 | x86_64_with_base::lldb_rbp, x86_64_with_base::lldb_ebp, |
113 | x86_64_with_base::lldb_bp, x86_64_with_base::lldb_bpl, LLDB_INVALID_REGNUM}; |
114 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_rsp[] = { |
115 | x86_64_with_base::lldb_rsp, x86_64_with_base::lldb_esp, |
116 | x86_64_with_base::lldb_sp, x86_64_with_base::lldb_spl, LLDB_INVALID_REGNUM}; |
117 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_r8[] = { |
118 | x86_64_with_base::lldb_r8, x86_64_with_base::lldb_r8d, |
119 | x86_64_with_base::lldb_r8w, x86_64_with_base::lldb_r8l, |
120 | LLDB_INVALID_REGNUM}; |
121 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_r9[] = { |
122 | x86_64_with_base::lldb_r9, x86_64_with_base::lldb_r9d, |
123 | x86_64_with_base::lldb_r9w, x86_64_with_base::lldb_r9l, |
124 | LLDB_INVALID_REGNUM}; |
125 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_r10[] = { |
126 | x86_64_with_base::lldb_r10, x86_64_with_base::lldb_r10d, |
127 | x86_64_with_base::lldb_r10w, x86_64_with_base::lldb_r10l, |
128 | LLDB_INVALID_REGNUM}; |
129 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_r11[] = { |
130 | x86_64_with_base::lldb_r11, x86_64_with_base::lldb_r11d, |
131 | x86_64_with_base::lldb_r11w, x86_64_with_base::lldb_r11l, |
132 | LLDB_INVALID_REGNUM}; |
133 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_r12[] = { |
134 | x86_64_with_base::lldb_r12, x86_64_with_base::lldb_r12d, |
135 | x86_64_with_base::lldb_r12w, x86_64_with_base::lldb_r12l, |
136 | LLDB_INVALID_REGNUM}; |
137 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_r13[] = { |
138 | x86_64_with_base::lldb_r13, x86_64_with_base::lldb_r13d, |
139 | x86_64_with_base::lldb_r13w, x86_64_with_base::lldb_r13l, |
140 | LLDB_INVALID_REGNUM}; |
141 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_r14[] = { |
142 | x86_64_with_base::lldb_r14, x86_64_with_base::lldb_r14d, |
143 | x86_64_with_base::lldb_r14w, x86_64_with_base::lldb_r14l, |
144 | LLDB_INVALID_REGNUM}; |
145 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_r15[] = { |
146 | x86_64_with_base::lldb_r15, x86_64_with_base::lldb_r15d, |
147 | x86_64_with_base::lldb_r15w, x86_64_with_base::lldb_r15l, |
148 | LLDB_INVALID_REGNUM}; |
149 | |
150 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_fip[] = { |
151 | x86_64_with_base::lldb_fip, LLDB_INVALID_REGNUM}; |
152 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_fdp[] = { |
153 | x86_64_with_base::lldb_fdp, LLDB_INVALID_REGNUM}; |
154 | |
155 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_fip[] = { |
156 | x86_64_with_base::lldb_fip, x86_64_with_base::lldb_fioff, |
157 | x86_64_with_base::lldb_fiseg, LLDB_INVALID_REGNUM}; |
158 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_fdp[] = { |
159 | x86_64_with_base::lldb_fdp, x86_64_with_base::lldb_fooff, |
160 | x86_64_with_base::lldb_foseg, LLDB_INVALID_REGNUM}; |
161 | |
162 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st0_32[] = { |
163 | lldb_st0_i386, LLDB_INVALID_REGNUM}; |
164 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st1_32[] = { |
165 | lldb_st1_i386, LLDB_INVALID_REGNUM}; |
166 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st2_32[] = { |
167 | lldb_st2_i386, LLDB_INVALID_REGNUM}; |
168 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st3_32[] = { |
169 | lldb_st3_i386, LLDB_INVALID_REGNUM}; |
170 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st4_32[] = { |
171 | lldb_st4_i386, LLDB_INVALID_REGNUM}; |
172 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st5_32[] = { |
173 | lldb_st5_i386, LLDB_INVALID_REGNUM}; |
174 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st6_32[] = { |
175 | lldb_st6_i386, LLDB_INVALID_REGNUM}; |
176 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st7_32[] = { |
177 | lldb_st7_i386, LLDB_INVALID_REGNUM}; |
178 | |
179 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st0_32[] = { |
180 | lldb_st0_i386, lldb_mm0_i386, LLDB_INVALID_REGNUM}; |
181 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st1_32[] = { |
182 | lldb_st1_i386, lldb_mm1_i386, LLDB_INVALID_REGNUM}; |
183 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st2_32[] = { |
184 | lldb_st2_i386, lldb_mm2_i386, LLDB_INVALID_REGNUM}; |
185 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st3_32[] = { |
186 | lldb_st3_i386, lldb_mm3_i386, LLDB_INVALID_REGNUM}; |
187 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st4_32[] = { |
188 | lldb_st4_i386, lldb_mm4_i386, LLDB_INVALID_REGNUM}; |
189 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st5_32[] = { |
190 | lldb_st5_i386, lldb_mm5_i386, LLDB_INVALID_REGNUM}; |
191 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st6_32[] = { |
192 | lldb_st6_i386, lldb_mm6_i386, LLDB_INVALID_REGNUM}; |
193 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st7_32[] = { |
194 | lldb_st7_i386, lldb_mm7_i386, LLDB_INVALID_REGNUM}; |
195 | |
196 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st0_64[] = { |
197 | x86_64_with_base::lldb_st0, LLDB_INVALID_REGNUM}; |
198 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st1_64[] = { |
199 | x86_64_with_base::lldb_st1, LLDB_INVALID_REGNUM}; |
200 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st2_64[] = { |
201 | x86_64_with_base::lldb_st2, LLDB_INVALID_REGNUM}; |
202 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st3_64[] = { |
203 | x86_64_with_base::lldb_st3, LLDB_INVALID_REGNUM}; |
204 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st4_64[] = { |
205 | x86_64_with_base::lldb_st4, LLDB_INVALID_REGNUM}; |
206 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st5_64[] = { |
207 | x86_64_with_base::lldb_st5, LLDB_INVALID_REGNUM}; |
208 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st6_64[] = { |
209 | x86_64_with_base::lldb_st6, LLDB_INVALID_REGNUM}; |
210 | uint32_t RegisterInfos_x86_64_with_base_shared::g_contained_st7_64[] = { |
211 | x86_64_with_base::lldb_st7, LLDB_INVALID_REGNUM}; |
212 | |
213 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st0_64[] = { |
214 | x86_64_with_base::lldb_st0, x86_64_with_base::lldb_mm0, |
215 | LLDB_INVALID_REGNUM}; |
216 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st1_64[] = { |
217 | x86_64_with_base::lldb_st1, x86_64_with_base::lldb_mm1, |
218 | LLDB_INVALID_REGNUM}; |
219 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st2_64[] = { |
220 | x86_64_with_base::lldb_st2, x86_64_with_base::lldb_mm2, |
221 | LLDB_INVALID_REGNUM}; |
222 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st3_64[] = { |
223 | x86_64_with_base::lldb_st3, x86_64_with_base::lldb_mm3, |
224 | LLDB_INVALID_REGNUM}; |
225 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st4_64[] = { |
226 | x86_64_with_base::lldb_st4, x86_64_with_base::lldb_mm4, |
227 | LLDB_INVALID_REGNUM}; |
228 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st5_64[] = { |
229 | x86_64_with_base::lldb_st5, x86_64_with_base::lldb_mm5, |
230 | LLDB_INVALID_REGNUM}; |
231 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st6_64[] = { |
232 | x86_64_with_base::lldb_st6, x86_64_with_base::lldb_mm6, |
233 | LLDB_INVALID_REGNUM}; |
234 | uint32_t RegisterInfos_x86_64_with_base_shared::g_invalidate_st7_64[] = { |
235 | x86_64_with_base::lldb_st7, x86_64_with_base::lldb_mm7, |
236 | LLDB_INVALID_REGNUM}; |
237 | |
238 | RegInfo &GetRegInfoShared(llvm::Triple::ArchType arch_type, bool with_base) { |
239 | static std::once_flag once_flag_x86, once_flag_x86_64, |
240 | once_flag_x86_64_with_base; |
241 | static RegInfo reg_info_x86, reg_info_x86_64, reg_info_x86_64_with_base, reg_info_invalid; |
242 | |
243 | switch (arch_type) { |
244 | case llvm::Triple::x86: |
245 | std::call_once(once&: once_flag_x86, f: []() { |
246 | reg_info_x86.num_registers = k_num_registers_i386; |
247 | reg_info_x86.num_gpr_registers = k_num_gpr_registers_i386; |
248 | reg_info_x86.num_fpr_registers = k_num_fpr_registers_i386; |
249 | reg_info_x86.num_avx_registers = k_num_avx_registers_i386; |
250 | reg_info_x86.last_gpr = k_last_gpr_i386; |
251 | reg_info_x86.first_fpr = k_first_fpr_i386; |
252 | reg_info_x86.last_fpr = k_last_fpr_i386; |
253 | reg_info_x86.first_st = lldb_st0_i386; |
254 | reg_info_x86.last_st = lldb_st7_i386; |
255 | reg_info_x86.first_mm = lldb_mm0_i386; |
256 | reg_info_x86.last_mm = lldb_mm7_i386; |
257 | reg_info_x86.first_xmm = lldb_xmm0_i386; |
258 | reg_info_x86.last_xmm = lldb_xmm7_i386; |
259 | reg_info_x86.first_ymm = lldb_ymm0_i386; |
260 | reg_info_x86.last_ymm = lldb_ymm7_i386; |
261 | reg_info_x86.first_dr = lldb_dr0_i386; |
262 | reg_info_x86.gpr_flags = lldb_eflags_i386; |
263 | }); |
264 | |
265 | return reg_info_x86; |
266 | case llvm::Triple::x86_64: |
267 | if (with_base) { |
268 | std::call_once(once&: once_flag_x86_64_with_base, f: []() { |
269 | reg_info_x86_64_with_base.num_registers = |
270 | x86_64_with_base::k_num_registers; |
271 | reg_info_x86_64_with_base.num_gpr_registers = |
272 | x86_64_with_base::k_num_gpr_registers; |
273 | reg_info_x86_64_with_base.num_fpr_registers = |
274 | x86_64_with_base::k_num_fpr_registers; |
275 | reg_info_x86_64_with_base.num_avx_registers = |
276 | x86_64_with_base::k_num_avx_registers; |
277 | reg_info_x86_64_with_base.last_gpr = x86_64_with_base::k_last_gpr; |
278 | reg_info_x86_64_with_base.first_fpr = x86_64_with_base::k_first_fpr; |
279 | reg_info_x86_64_with_base.last_fpr = x86_64_with_base::k_last_fpr; |
280 | reg_info_x86_64_with_base.first_st = x86_64_with_base::lldb_st0; |
281 | reg_info_x86_64_with_base.last_st = x86_64_with_base::lldb_st7; |
282 | reg_info_x86_64_with_base.first_mm = x86_64_with_base::lldb_mm0; |
283 | reg_info_x86_64_with_base.last_mm = x86_64_with_base::lldb_mm7; |
284 | reg_info_x86_64_with_base.first_xmm = x86_64_with_base::lldb_xmm0; |
285 | reg_info_x86_64_with_base.last_xmm = x86_64_with_base::lldb_xmm15; |
286 | reg_info_x86_64_with_base.first_ymm = x86_64_with_base::lldb_ymm0; |
287 | reg_info_x86_64_with_base.last_ymm = x86_64_with_base::lldb_ymm15; |
288 | reg_info_x86_64_with_base.first_dr = x86_64_with_base::lldb_dr0; |
289 | reg_info_x86_64_with_base.gpr_flags = x86_64_with_base::lldb_rflags; |
290 | }); |
291 | |
292 | return reg_info_x86_64_with_base; |
293 | } else { |
294 | std::call_once(once&: once_flag_x86_64, f: []() { |
295 | reg_info_x86_64.num_registers = k_num_registers_x86_64; |
296 | reg_info_x86_64.num_gpr_registers = k_num_gpr_registers_x86_64; |
297 | reg_info_x86_64.num_fpr_registers = k_num_fpr_registers_x86_64; |
298 | reg_info_x86_64.num_avx_registers = k_num_avx_registers_x86_64; |
299 | reg_info_x86_64.last_gpr = k_last_gpr_x86_64; |
300 | reg_info_x86_64.first_fpr = k_first_fpr_x86_64; |
301 | reg_info_x86_64.last_fpr = k_last_fpr_x86_64; |
302 | reg_info_x86_64.first_st = lldb_st0_x86_64; |
303 | reg_info_x86_64.last_st = lldb_st7_x86_64; |
304 | reg_info_x86_64.first_mm = lldb_mm0_x86_64; |
305 | reg_info_x86_64.last_mm = lldb_mm7_x86_64; |
306 | reg_info_x86_64.first_xmm = lldb_xmm0_x86_64; |
307 | reg_info_x86_64.last_xmm = lldb_xmm15_x86_64; |
308 | reg_info_x86_64.first_ymm = lldb_ymm0_x86_64; |
309 | reg_info_x86_64.last_ymm = lldb_ymm15_x86_64; |
310 | reg_info_x86_64.first_dr = lldb_dr0_x86_64; |
311 | reg_info_x86_64.gpr_flags = lldb_rflags_x86_64; |
312 | }); |
313 | return reg_info_x86_64; |
314 | } |
315 | default: |
316 | assert(false && "Unhandled target architecture." ); |
317 | return reg_info_invalid; |
318 | } |
319 | } |
320 | |
321 | } // namespace lldb_private |
322 | |