1 | //===-- RegisterInfos_x86_64_with_base_shared.h -----------------*- C++ -*-===// |
---|---|
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 "Plugins/Process/Utility/lldb-x86-register-enums.h" |
10 | #include <stdint.h> |
11 | |
12 | #ifndef lldb_RegisterInfos_x86_64_with_base_shared_h |
13 | #define lldb_RegisterInfos_x86_64_with_base_shared_h |
14 | |
15 | #include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h" |
16 | |
17 | namespace lldb_private { |
18 | |
19 | struct RegisterInfos_x86_64_with_base_shared { |
20 | static uint32_t g_contained_eax[]; |
21 | static uint32_t g_contained_ebx[]; |
22 | static uint32_t g_contained_ecx[]; |
23 | static uint32_t g_contained_edx[]; |
24 | static uint32_t g_contained_edi[]; |
25 | static uint32_t g_contained_esi[]; |
26 | static uint32_t g_contained_ebp[]; |
27 | static uint32_t g_contained_esp[]; |
28 | |
29 | static uint32_t g_invalidate_eax[]; |
30 | static uint32_t g_invalidate_ebx[]; |
31 | static uint32_t g_invalidate_ecx[]; |
32 | static uint32_t g_invalidate_edx[]; |
33 | static uint32_t g_invalidate_edi[]; |
34 | static uint32_t g_invalidate_esi[]; |
35 | static uint32_t g_invalidate_ebp[]; |
36 | static uint32_t g_invalidate_esp[]; |
37 | |
38 | static uint32_t g_contained_rax[]; |
39 | static uint32_t g_contained_rbx[]; |
40 | static uint32_t g_contained_rcx[]; |
41 | static uint32_t g_contained_rdx[]; |
42 | static uint32_t g_contained_rdi[]; |
43 | static uint32_t g_contained_rsi[]; |
44 | static uint32_t g_contained_rbp[]; |
45 | static uint32_t g_contained_rsp[]; |
46 | static uint32_t g_contained_r8[]; |
47 | static uint32_t g_contained_r9[]; |
48 | static uint32_t g_contained_r10[]; |
49 | static uint32_t g_contained_r11[]; |
50 | static uint32_t g_contained_r12[]; |
51 | static uint32_t g_contained_r13[]; |
52 | static uint32_t g_contained_r14[]; |
53 | static uint32_t g_contained_r15[]; |
54 | |
55 | static uint32_t g_invalidate_rax[]; |
56 | static uint32_t g_invalidate_rbx[]; |
57 | static uint32_t g_invalidate_rcx[]; |
58 | static uint32_t g_invalidate_rdx[]; |
59 | static uint32_t g_invalidate_rdi[]; |
60 | static uint32_t g_invalidate_rsi[]; |
61 | static uint32_t g_invalidate_rbp[]; |
62 | static uint32_t g_invalidate_rsp[]; |
63 | static uint32_t g_invalidate_r8[]; |
64 | static uint32_t g_invalidate_r9[]; |
65 | static uint32_t g_invalidate_r10[]; |
66 | static uint32_t g_invalidate_r11[]; |
67 | static uint32_t g_invalidate_r12[]; |
68 | static uint32_t g_invalidate_r13[]; |
69 | static uint32_t g_invalidate_r14[]; |
70 | static uint32_t g_invalidate_r15[]; |
71 | |
72 | static uint32_t g_contained_fip[]; |
73 | static uint32_t g_contained_fdp[]; |
74 | |
75 | static uint32_t g_invalidate_fip[]; |
76 | static uint32_t g_invalidate_fdp[]; |
77 | |
78 | static uint32_t g_contained_st0_32[]; |
79 | static uint32_t g_contained_st1_32[]; |
80 | static uint32_t g_contained_st2_32[]; |
81 | static uint32_t g_contained_st3_32[]; |
82 | static uint32_t g_contained_st4_32[]; |
83 | static uint32_t g_contained_st5_32[]; |
84 | static uint32_t g_contained_st6_32[]; |
85 | static uint32_t g_contained_st7_32[]; |
86 | |
87 | static uint32_t g_invalidate_st0_32[]; |
88 | static uint32_t g_invalidate_st1_32[]; |
89 | static uint32_t g_invalidate_st2_32[]; |
90 | static uint32_t g_invalidate_st3_32[]; |
91 | static uint32_t g_invalidate_st4_32[]; |
92 | static uint32_t g_invalidate_st5_32[]; |
93 | static uint32_t g_invalidate_st6_32[]; |
94 | static uint32_t g_invalidate_st7_32[]; |
95 | |
96 | static uint32_t g_contained_st0_64[]; |
97 | static uint32_t g_contained_st1_64[]; |
98 | static uint32_t g_contained_st2_64[]; |
99 | static uint32_t g_contained_st3_64[]; |
100 | static uint32_t g_contained_st4_64[]; |
101 | static uint32_t g_contained_st5_64[]; |
102 | static uint32_t g_contained_st6_64[]; |
103 | static uint32_t g_contained_st7_64[]; |
104 | |
105 | static uint32_t g_invalidate_st0_64[]; |
106 | static uint32_t g_invalidate_st1_64[]; |
107 | static uint32_t g_invalidate_st2_64[]; |
108 | static uint32_t g_invalidate_st3_64[]; |
109 | static uint32_t g_invalidate_st4_64[]; |
110 | static uint32_t g_invalidate_st5_64[]; |
111 | static uint32_t g_invalidate_st6_64[]; |
112 | static uint32_t g_invalidate_st7_64[]; |
113 | }; |
114 | |
115 | struct RegInfo { |
116 | uint32_t num_registers; |
117 | uint32_t num_gpr_registers; |
118 | uint32_t num_fpr_registers; |
119 | uint32_t num_avx_registers; |
120 | |
121 | uint32_t last_gpr; |
122 | uint32_t first_fpr; |
123 | uint32_t last_fpr; |
124 | |
125 | uint32_t first_st; |
126 | uint32_t last_st; |
127 | uint32_t first_mm; |
128 | uint32_t last_mm; |
129 | uint32_t first_xmm; |
130 | uint32_t last_xmm; |
131 | uint32_t first_ymm; |
132 | uint32_t last_ymm; |
133 | |
134 | uint32_t first_dr; |
135 | uint32_t gpr_flags; |
136 | }; |
137 | |
138 | RegInfo &GetRegInfoShared(llvm::Triple::ArchType arch_type, bool with_base); |
139 | |
140 | } // namespace lldb_private |
141 | |
142 | #endif // ifndef lldb_RegisterInfos_x86_64_with_base_shared_h |
143 |