LLDB  mainline
RegisterContext_x86.h
Go to the documentation of this file.
1 //===-- RegisterContext_x86.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 #ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXT_X86_H
10 #define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXT_X86_H
11 
12 #include <cstddef>
13 #include <cstdint>
14 
15 #include "llvm/ADT/ArrayRef.h"
16 #include "llvm/ADT/BitmaskEnum.h"
17 #include "llvm/Support/Compiler.h"
18 
19 namespace lldb_private {
20 // i386 ehframe, dwarf regnums
21 
22 // Register numbers seen in eh_frame (eRegisterKindEHFrame) on i386 systems
23 // (non-Darwin)
24 //
25 enum {
30 
31  // on Darwin esp & ebp are reversed in the eh_frame section for i386 (versus
32  // dwarf's reg numbering).
33  // To be specific:
34  // i386+darwin eh_frame: 4 is ebp, 5 is esp
35  // i386+everyone else eh_frame: 4 is esp, 5 is ebp
36  // i386 dwarf: 4 is esp, 5 is ebp
37  // lldb will get the darwin-specific eh_frame reg numberings from debugserver,
38  // or the ABI, so we
39  // only encode the generally correct 4 == esp, 5 == ebp numbers in this
40  // generic header.
41 
72 };
73 
74 // DWARF register numbers (eRegisterKindDWARF)
75 // Intel's x86 or IA-32
76 enum {
77  // General Purpose Registers.
88  // Floating Point Registers
97  // SSE Registers
106  // MMX Registers
115  dwarf_fctrl_i386 = 37, // x87 control word
116  dwarf_fstat_i386 = 38, // x87 status word
124 
125  // I believe the ymm registers use the dwarf_xmm%_i386 register numbers and
126  // then differentiate based on size of the register.
131 };
132 
133 // AMD x86_64, AMD64, Intel EM64T, or Intel 64 ehframe, dwarf regnums
134 
135 // EHFrame and DWARF Register numbers (eRegisterKindEHFrame &
136 // eRegisterKindDWARF)
137 // This is the spec I used (as opposed to x86-64-abi-0.99.pdf):
138 // http://software.intel.com/sites/default/files/article/402129/mpx-linux64-abi.pdf
139 enum {
140  // GP Registers
149  // Extended GP Registers
158  // Return Address (RA) mapped to RIP
160  // SSE Vector Registers
177  // Floating Point Registers
186  // MMX Registers
195  // Control and Status Flags Register
197  // selector registers
204  // Floating point control registers
205  dwarf_mxcsr_x86_64 = 64, // Media Control and Status
206  dwarf_fctrl_x86_64, // x87 control word
207  dwarf_fstat_x86_64, // x87 status word
208  // Upper Vector Registers
225  // MPX registers
230  // AVX2 Vector Mask Registers
231  // dwarf_k0_x86_64 = 118,
232  // dwarf_k1_x86_64,
233  // dwarf_k2_x86_64,
234  // dwarf_k3_x86_64,
235  // dwarf_k4_x86_64,
236  // dwarf_k5_x86_64,
237  // dwarf_k6_x86_64,
238  // dwarf_k7_x86_64,
239 };
240 
241 // Generic floating-point registers
242 
243 LLVM_PACKED_START
244 struct MMSRegComp {
245  uint64_t mantissa;
247 };
248 
249 struct MMSReg {
250  union {
251  uint8_t bytes[10];
253  };
254  uint8_t pad[6];
255 };
257 
258 static_assert(sizeof(MMSRegComp) == 10, "MMSRegComp is not 10 bytes of size");
259 static_assert(sizeof(MMSReg) == 16, "MMSReg is not 16 bytes of size");
260 
261 struct XMMReg {
262  uint8_t bytes[16]; // 128-bits for each XMM register
263 };
264 
265 // i387_fxsave_struct
266 struct FXSAVE {
267  uint16_t fctrl; // FPU Control Word (fcw)
268  uint16_t fstat; // FPU Status Word (fsw)
269  uint16_t ftag; // FPU Tag Word (ftw)
270  uint16_t fop; // Last Instruction Opcode (fop)
271  union {
272  struct {
273  uint64_t fip; // Instruction Pointer
274  uint64_t fdp; // Data Pointer
275  } x86_64;
276  struct {
277  uint32_t fioff; // FPU IP Offset (fip)
278  uint32_t fiseg; // FPU IP Selector (fcs)
279  uint32_t fooff; // FPU Operand Pointer Offset (foo)
280  uint32_t foseg; // FPU Operand Pointer Selector (fos)
281  } i386_; // Added _ in the end to avoid error with gcc defining i386 in some
282  // cases
283  } ptr;
284  uint32_t mxcsr; // MXCSR Register State
285  uint32_t mxcsrmask; // MXCSR Mask
286  MMSReg stmm[8]; // 8*16 bytes for each FP-reg = 128 bytes
287  XMMReg xmm[16]; // 16*16 bytes for each XMM-reg = 256 bytes
288  uint8_t padding1[48];
289  uint64_t xcr0;
290  uint8_t padding2[40];
291 };
292 
293 // Extended floating-point registers
294 
295 struct YMMHReg {
296  uint8_t bytes[16]; // 16 * 8 bits for the high bytes of each YMM register
297 };
298 
299 struct YMMReg {
300  uint8_t bytes[32]; // 16 * 16 bits for each YMM register
301 };
302 
303 struct YMM {
304  YMMReg ymm[16]; // assembled from ymmh and xmm registers
305 };
306 
307 struct MPXReg {
308  uint8_t bytes[16]; // MPX 128 bit bound registers
309 };
310 
311 struct MPXCsr {
312  uint8_t bytes[8]; // MPX 64 bit bndcfgu and bndstatus registers (collectively
313  // BNDCSR state)
314 };
315 
316 struct MPX {
319 };
320 
321 LLVM_PACKED_START
322 struct XSAVE_HDR {
323  enum class XFeature : uint64_t {
324  FP = 1,
325  SSE = FP << 1,
326  YMM = SSE << 1,
327  BNDREGS = YMM << 1,
328  BNDCSR = BNDREGS << 1,
329  OPMASK = BNDCSR << 1,
330  ZMM_Hi256 = OPMASK << 1,
331  Hi16_ZMM = ZMM_Hi256 << 1,
332  PT = Hi16_ZMM << 1,
333  PKRU = PT << 1,
334  LLVM_MARK_AS_BITMASK_ENUM(/*LargestValue*/ PKRU)
335  };
336 
337  XFeature xstate_bv; // OS enabled xstate mask to determine the extended states
338  // supported by the processor
339  XFeature xcomp_bv; // Mask to indicate the format of the XSAVE area and of
340  // the XRSTOR instruction
341  uint64_t reserved1[1];
342  uint64_t reserved2[5];
343 };
344 static_assert(sizeof(XSAVE_HDR) == 64, "XSAVE_HDR layout incorrect");
346 
347 // x86 extensions to FXSAVE (i.e. for AVX and MPX processors)
348 LLVM_PACKED_START
349 struct XSAVE {
350  FXSAVE i387; // floating point registers typical in i387_fxsave_struct
351  XSAVE_HDR header; // The xsave_hdr_struct can be used to determine if the
352  // following extensions are usable
353  YMMHReg ymmh[16]; // High 16 bytes of each of 16 YMM registers (the low bytes
354  // are in FXSAVE.xmm for compatibility with SSE)
355  uint64_t reserved3[16];
356  MPXReg mpxr[4]; // MPX BNDREG state, containing 128-bit bound registers
357  MPXCsr mpxc[2]; // MPX BNDCSR state, containing 64-bit BNDCFGU and
358  // BNDSTATUS registers
359 };
361 
362 // Floating-point registers
363 union FPR {
364  FXSAVE fxsave; // Generic floating-point registers.
365  XSAVE xsave; // x86 extended processor state.
366 };
367 
369 
370 // Convenience function to combine YMM register data from XSAVE-style input.
371 inline YMMReg XStateToYMM(const void* xmm_bytes, const void* ymmh_bytes) {
372  YMMReg ret;
373 
374  ::memcpy(ret.bytes, xmm_bytes, sizeof(XMMReg));
375  ::memcpy(ret.bytes + sizeof(XMMReg), ymmh_bytes, sizeof(YMMHReg));
376 
377  return ret;
378 }
379 
380 // Convenience function to copy YMM register data into XSAVE-style output.
381 inline void YMMToXState(const YMMReg& input, void* xmm_bytes, void* ymmh_bytes) {
382  ::memcpy(xmm_bytes, input.bytes, sizeof(XMMReg));
383  ::memcpy(ymmh_bytes, input.bytes + sizeof(XMMReg), sizeof(YMMHReg));
384 }
385 
386 uint16_t AbridgedToFullTagWord(uint8_t abridged_tw, uint16_t sw,
387  llvm::ArrayRef<MMSReg> st_regs);
388 uint8_t FullToAbridgedTagWord(uint16_t tw);
389 
390 } // namespace lldb_private
391 
392 #endif
lldb_private::dwarf_xmm5_i386
@ dwarf_xmm5_i386
Definition: RegisterContext_x86.h:103
lldb_private::YMM
Definition: RegisterContext_x86.h:303
lldb_private::dwarf_mm2_x86_64
@ dwarf_mm2_x86_64
Definition: RegisterContext_x86.h:189
lldb_private::FXSAVE::padding1
uint8_t padding1[48]
Definition: RegisterContext_x86.h:288
lldb_private::MPXCsr
Definition: RegisterContext_x86.h:311
lldb_private::ehframe_mm3_i386
@ ehframe_mm3_i386
Definition: RegisterContext_x86.h:67
lldb_private::dwarf_xmm3_x86_64
@ dwarf_xmm3_x86_64
Definition: RegisterContext_x86.h:164
lldb_private::ehframe_st1_i386
@ ehframe_st1_i386
Definition: RegisterContext_x86.h:49
lldb_private::dwarf_ymm7h_x86_64
@ dwarf_ymm7h_x86_64
Definition: RegisterContext_x86.h:216
lldb_private::ehframe_eip_i386
@ ehframe_eip_i386
Definition: RegisterContext_x86.h:46
lldb_private::dwarf_mm7_i386
@ dwarf_mm7_i386
Definition: RegisterContext_x86.h:114
lldb_private::ehframe_xmm7_i386
@ ehframe_xmm7_i386
Definition: RegisterContext_x86.h:63
lldb_private::dwarf_ymm12h_x86_64
@ dwarf_ymm12h_x86_64
Definition: RegisterContext_x86.h:221
lldb_private::MPX::mpxr
MPXReg mpxr[4]
Definition: RegisterContext_x86.h:317
lldb_private::dwarf_mm7_x86_64
@ dwarf_mm7_x86_64
Definition: RegisterContext_x86.h:194
lldb_private::dwarf_esi_i386
@ dwarf_esi_i386
Definition: RegisterContext_x86.h:84
lldb_private::XSAVE
Definition: RegisterContext_x86.h:349
lldb_private::dwarf_mm6_x86_64
@ dwarf_mm6_x86_64
Definition: RegisterContext_x86.h:193
lldb_private::dwarf_xmm2_x86_64
@ dwarf_xmm2_x86_64
Definition: RegisterContext_x86.h:163
lldb_private::dwarf_st4_x86_64
@ dwarf_st4_x86_64
Definition: RegisterContext_x86.h:182
lldb_private::MPXReg::bytes
uint8_t bytes[16]
Definition: RegisterContext_x86.h:308
lldb_private::YMMToXState
void YMMToXState(const YMMReg &input, void *xmm_bytes, void *ymmh_bytes)
Definition: RegisterContext_x86.h:381
lldb_private::MMSReg
Definition: RegisterContext_x86.h:249
lldb_private::dwarf_xmm11_x86_64
@ dwarf_xmm11_x86_64
Definition: RegisterContext_x86.h:172
lldb_private::ehframe_st2_i386
@ ehframe_st2_i386
Definition: RegisterContext_x86.h:50
lldb_private::dwarf_st5_x86_64
@ dwarf_st5_x86_64
Definition: RegisterContext_x86.h:183
lldb_private::dwarf_fstat_x86_64
@ dwarf_fstat_x86_64
Definition: RegisterContext_x86.h:207
lldb_private::dwarf_st0_x86_64
@ dwarf_st0_x86_64
Definition: RegisterContext_x86.h:178
lldb_private::dwarf_ss_x86_64
@ dwarf_ss_x86_64
Definition: RegisterContext_x86.h:200
lldb_private::ehframe_ecx_i386
@ ehframe_ecx_i386
Definition: RegisterContext_x86.h:27
lldb_private::dwarf_rcx_x86_64
@ dwarf_rcx_x86_64
Definition: RegisterContext_x86.h:143
lldb_private::dwarf_st7_i386
@ dwarf_st7_i386
Definition: RegisterContext_x86.h:96
lldb_private::ehframe_edi_i386
@ ehframe_edi_i386
Definition: RegisterContext_x86.h:45
lldb_private::YMMReg::bytes
uint8_t bytes[32]
Definition: RegisterContext_x86.h:300
lldb_private::dwarf_eax_i386
@ dwarf_eax_i386
Definition: RegisterContext_x86.h:78
lldb_private::LLVM_PACKED_END
LLVM_PACKED_END
Definition: RegisterContext_x86.h:258
lldb_private::dwarf_es_i386
@ dwarf_es_i386
Definition: RegisterContext_x86.h:118
lldb_private::dwarf_ymm5h_x86_64
@ dwarf_ymm5h_x86_64
Definition: RegisterContext_x86.h:214
lldb_private::dwarf_xmm14_x86_64
@ dwarf_xmm14_x86_64
Definition: RegisterContext_x86.h:175
lldb_private::FXSAVE::foseg
uint32_t foseg
Definition: RegisterContext_x86.h:280
lldb_private::dwarf_mm3_i386
@ dwarf_mm3_i386
Definition: RegisterContext_x86.h:110
lldb_private::XSAVE_HDR::reserved2
uint64_t reserved2[5]
Definition: RegisterContext_x86.h:342
lldb_private::ehframe_st5_i386
@ ehframe_st5_i386
Definition: RegisterContext_x86.h:53
lldb_private::FXSAVE::padding2
uint8_t padding2[40]
Definition: RegisterContext_x86.h:290
lldb_private::dwarf_ymm11h_x86_64
@ dwarf_ymm11h_x86_64
Definition: RegisterContext_x86.h:220
lldb_private::dwarf_fs_i386
@ dwarf_fs_i386
Definition: RegisterContext_x86.h:122
lldb_private::dwarf_fctrl_i386
@ dwarf_fctrl_i386
Definition: RegisterContext_x86.h:115
lldb_private::dwarf_xmm6_x86_64
@ dwarf_xmm6_x86_64
Definition: RegisterContext_x86.h:167
lldb_private::dwarf_st2_x86_64
@ dwarf_st2_x86_64
Definition: RegisterContext_x86.h:180
lldb_private::dwarf_st4_i386
@ dwarf_st4_i386
Definition: RegisterContext_x86.h:93
lldb_private::FXSAVE::xmm
XMMReg xmm[16]
Definition: RegisterContext_x86.h:287
lldb_private::MMSRegComp::sign_exp
uint16_t sign_exp
Definition: RegisterContext_x86.h:246
lldb_private::dwarf_r13_x86_64
@ dwarf_r13_x86_64
Definition: RegisterContext_x86.h:155
lldb_private::XSAVE::header
XSAVE_HDR header
Definition: RegisterContext_x86.h:351
lldb_private::ehframe_edx_i386
@ ehframe_edx_i386
Definition: RegisterContext_x86.h:28
lldb_private::dwarf_xmm7_x86_64
@ dwarf_xmm7_x86_64
Definition: RegisterContext_x86.h:168
lldb_private::ehframe_mm1_i386
@ ehframe_mm1_i386
Definition: RegisterContext_x86.h:65
lldb_private::XSAVE::i387
FXSAVE i387
Definition: RegisterContext_x86.h:350
lldb_private::dwarf_ymm2h_x86_64
@ dwarf_ymm2h_x86_64
Definition: RegisterContext_x86.h:211
lldb_private::dwarf_eflags_i386
@ dwarf_eflags_i386
Definition: RegisterContext_x86.h:87
lldb_private::XSAVE_HDR::reserved1
uint64_t reserved1[1]
Definition: RegisterContext_x86.h:341
lldb_private::dwarf_ymm1h_x86_64
@ dwarf_ymm1h_x86_64
Definition: RegisterContext_x86.h:210
lldb_private::ehframe_st7_i386
@ ehframe_st7_i386
Definition: RegisterContext_x86.h:55
lldb_private::dwarf_r10_x86_64
@ dwarf_r10_x86_64
Definition: RegisterContext_x86.h:152
lldb_private::dwarf_mm1_i386
@ dwarf_mm1_i386
Definition: RegisterContext_x86.h:108
lldb_private::dwarf_ds_i386
@ dwarf_ds_i386
Definition: RegisterContext_x86.h:121
lldb_private::ehframe_xmm0_i386
@ ehframe_xmm0_i386
Definition: RegisterContext_x86.h:56
lldb_private::ehframe_xmm4_i386
@ ehframe_xmm4_i386
Definition: RegisterContext_x86.h:60
lldb_private::dwarf_bnd1_i386
@ dwarf_bnd1_i386
Definition: RegisterContext_x86.h:128
lldb_private::ehframe_eflags_i386
@ ehframe_eflags_i386
Definition: RegisterContext_x86.h:47
lldb_private::FXSAVE::x86_64
struct lldb_private::FXSAVE::@107::@108 x86_64
lldb_private::AbridgedToFullTagWord
uint16_t AbridgedToFullTagWord(uint8_t abridged_tw, uint16_t sw, llvm::ArrayRef< MMSReg > st_regs)
Definition: RegisterContext_x86.cpp:16
lldb_private::dwarf_mm6_i386
@ dwarf_mm6_i386
Definition: RegisterContext_x86.h:113
lldb_private::XSAVE::mpxr
MPXReg mpxr[4]
Definition: RegisterContext_x86.h:356
lldb_private::ehframe_mm0_i386
@ ehframe_mm0_i386
Definition: RegisterContext_x86.h:64
lldb_private::XSAVE_HDR::XFeature::FP
@ FP
lldb_private::FXSAVE::mxcsrmask
uint32_t mxcsrmask
Definition: RegisterContext_x86.h:285
lldb_private::dwarf_rsi_x86_64
@ dwarf_rsi_x86_64
Definition: RegisterContext_x86.h:145
lldb_private::dwarf_xmm12_x86_64
@ dwarf_xmm12_x86_64
Definition: RegisterContext_x86.h:173
lldb_private::dwarf_fs_x86_64
@ dwarf_fs_x86_64
Definition: RegisterContext_x86.h:202
lldb_private::dwarf_st5_i386
@ dwarf_st5_i386
Definition: RegisterContext_x86.h:94
lldb_private::dwarf_mm4_x86_64
@ dwarf_mm4_x86_64
Definition: RegisterContext_x86.h:191
lldb_private::dwarf_ymm3h_x86_64
@ dwarf_ymm3h_x86_64
Definition: RegisterContext_x86.h:212
lldb_private::dwarf_xmm2_i386
@ dwarf_xmm2_i386
Definition: RegisterContext_x86.h:100
lldb_private::dwarf_ymm4h_x86_64
@ dwarf_ymm4h_x86_64
Definition: RegisterContext_x86.h:213
lldb_private::FPR::xsave
XSAVE xsave
Definition: RegisterContext_x86.h:365
lldb_private::dwarf_xmm9_x86_64
@ dwarf_xmm9_x86_64
Definition: RegisterContext_x86.h:170
lldb_private::dwarf_rbp_x86_64
@ dwarf_rbp_x86_64
Definition: RegisterContext_x86.h:147
lldb_private::FXSAVE::fiseg
uint32_t fiseg
Definition: RegisterContext_x86.h:278
lldb_private::dwarf_mm0_i386
@ dwarf_mm0_i386
Definition: RegisterContext_x86.h:107
lldb_private::FXSAVE::mxcsr
uint32_t mxcsr
Definition: RegisterContext_x86.h:284
lldb_private::ehframe_st3_i386
@ ehframe_st3_i386
Definition: RegisterContext_x86.h:51
lldb_private::dwarf_rdi_x86_64
@ dwarf_rdi_x86_64
Definition: RegisterContext_x86.h:146
lldb_private::ehframe_st0_i386
@ ehframe_st0_i386
Definition: RegisterContext_x86.h:48
lldb_private::dwarf_ss_i386
@ dwarf_ss_i386
Definition: RegisterContext_x86.h:120
lldb_private::dwarf_ymm13h_x86_64
@ dwarf_ymm13h_x86_64
Definition: RegisterContext_x86.h:222
lldb_private::XSAVE_HDR::XFeature::ZMM_Hi256
@ ZMM_Hi256
lldb_private::dwarf_xmm7_i386
@ dwarf_xmm7_i386
Definition: RegisterContext_x86.h:105
lldb_private::YMMReg
Definition: RegisterContext_x86.h:299
lldb_private::ehframe_mm7_i386
@ ehframe_mm7_i386
Definition: RegisterContext_x86.h:71
lldb_private::ehframe_mm6_i386
@ ehframe_mm6_i386
Definition: RegisterContext_x86.h:70
lldb_private::dwarf_r11_x86_64
@ dwarf_r11_x86_64
Definition: RegisterContext_x86.h:153
lldb_private::XStateToYMM
YMMReg XStateToYMM(const void *xmm_bytes, const void *ymmh_bytes)
Definition: RegisterContext_x86.h:371
lldb_private::dwarf_bnd3_i386
@ dwarf_bnd3_i386
Definition: RegisterContext_x86.h:130
lldb_private::FXSAVE
Definition: RegisterContext_x86.h:266
lldb_private::dwarf_st2_i386
@ dwarf_st2_i386
Definition: RegisterContext_x86.h:91
lldb_private::dwarf_r8_x86_64
@ dwarf_r8_x86_64
Definition: RegisterContext_x86.h:150
lldb_private::dwarf_st7_x86_64
@ dwarf_st7_x86_64
Definition: RegisterContext_x86.h:185
lldb_private::dwarf_rip_x86_64
@ dwarf_rip_x86_64
Definition: RegisterContext_x86.h:159
lldb_private::YMM::ymm
YMMReg ymm[16]
Definition: RegisterContext_x86.h:304
lldb_private::dwarf_cs_i386
@ dwarf_cs_i386
Definition: RegisterContext_x86.h:119
lldb_private::XSAVE_HDR::XFeature::Hi16_ZMM
@ Hi16_ZMM
lldb_private::FPR
Definition: RegisterContext_x86.h:363
lldb_private::FullToAbridgedTagWord
uint8_t FullToAbridgedTagWord(uint16_t tw)
Definition: RegisterContext_x86.cpp:49
lldb_private::ehframe_xmm2_i386
@ ehframe_xmm2_i386
Definition: RegisterContext_x86.h:58
lldb_private::dwarf_xmm10_x86_64
@ dwarf_xmm10_x86_64
Definition: RegisterContext_x86.h:171
lldb_private::ehframe_mm2_i386
@ ehframe_mm2_i386
Definition: RegisterContext_x86.h:66
lldb_private::dwarf_ymm9h_x86_64
@ dwarf_ymm9h_x86_64
Definition: RegisterContext_x86.h:218
lldb_private::FXSAVE::fctrl
uint16_t fctrl
Definition: RegisterContext_x86.h:267
lldb_private::XSAVE_HDR::XFeature::PT
@ PT
lldb_private::dwarf_rflags_x86_64
@ dwarf_rflags_x86_64
Definition: RegisterContext_x86.h:196
lldb_private::dwarf_xmm1_x86_64
@ dwarf_xmm1_x86_64
Definition: RegisterContext_x86.h:162
lldb_private::ehframe_xmm3_i386
@ ehframe_xmm3_i386
Definition: RegisterContext_x86.h:59
lldb_private::dwarf_ymm6h_x86_64
@ dwarf_ymm6h_x86_64
Definition: RegisterContext_x86.h:215
lldb_private::dwarf_bnd2_x86_64
@ dwarf_bnd2_x86_64
Definition: RegisterContext_x86.h:228
lldb_private::XSAVE::ymmh
YMMHReg ymmh[16]
Definition: RegisterContext_x86.h:353
lldb_private::XSAVE_HDR::XFeature::OPMASK
@ OPMASK
lldb_private::MPXCsr::bytes
uint8_t bytes[8]
Definition: RegisterContext_x86.h:312
lldb_private::dwarf_edi_i386
@ dwarf_edi_i386
Definition: RegisterContext_x86.h:85
lldb_private::ehframe_esi_i386
@ ehframe_esi_i386
Definition: RegisterContext_x86.h:44
lldb_private::dwarf_edx_i386
@ dwarf_edx_i386
Definition: RegisterContext_x86.h:80
lldb_private::dwarf_mxcsr_i386
@ dwarf_mxcsr_i386
Definition: RegisterContext_x86.h:117
lldb_private::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE
LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE()
lldb_private::dwarf_bnd3_x86_64
@ dwarf_bnd3_x86_64
Definition: RegisterContext_x86.h:229
lldb_private::dwarf_xmm5_x86_64
@ dwarf_xmm5_x86_64
Definition: RegisterContext_x86.h:166
lldb_private::XSAVE_HDR::XFeature::BNDCSR
@ BNDCSR
lldb_private::dwarf_mm5_i386
@ dwarf_mm5_i386
Definition: RegisterContext_x86.h:112
lldb_private::dwarf_ymm15h_x86_64
@ dwarf_ymm15h_x86_64
Definition: RegisterContext_x86.h:224
lldb_private::MPX::mpxc
MPXCsr mpxc[2]
Definition: RegisterContext_x86.h:318
lldb_private::ehframe_xmm5_i386
@ ehframe_xmm5_i386
Definition: RegisterContext_x86.h:61
lldb_private::dwarf_gs_i386
@ dwarf_gs_i386
Definition: RegisterContext_x86.h:123
lldb_private::ehframe_st4_i386
@ ehframe_st4_i386
Definition: RegisterContext_x86.h:52
lldb_private::dwarf_mm3_x86_64
@ dwarf_mm3_x86_64
Definition: RegisterContext_x86.h:190
lldb_private::dwarf_bnd1_x86_64
@ dwarf_bnd1_x86_64
Definition: RegisterContext_x86.h:227
lldb_private::FXSAVE::fioff
uint32_t fioff
Definition: RegisterContext_x86.h:277
lldb_private::dwarf_r12_x86_64
@ dwarf_r12_x86_64
Definition: RegisterContext_x86.h:154
lldb_private::dwarf_mm4_i386
@ dwarf_mm4_i386
Definition: RegisterContext_x86.h:111
lldb_private::dwarf_ecx_i386
@ dwarf_ecx_i386
Definition: RegisterContext_x86.h:79
lldb_private::ehframe_ebx_i386
@ ehframe_ebx_i386
Definition: RegisterContext_x86.h:29
lldb_private::dwarf_r14_x86_64
@ dwarf_r14_x86_64
Definition: RegisterContext_x86.h:156
lldb_private::dwarf_xmm0_i386
@ dwarf_xmm0_i386
Definition: RegisterContext_x86.h:98
lldb_private::MMSRegComp::mantissa
uint64_t mantissa
Definition: RegisterContext_x86.h:245
lldb_private::dwarf_ymm8h_x86_64
@ dwarf_ymm8h_x86_64
Definition: RegisterContext_x86.h:217
lldb_private::dwarf_rsp_x86_64
@ dwarf_rsp_x86_64
Definition: RegisterContext_x86.h:148
uint32_t
lldb_private::dwarf_es_x86_64
@ dwarf_es_x86_64
Definition: RegisterContext_x86.h:198
lldb_private::dwarf_bnd0_i386
@ dwarf_bnd0_i386
Definition: RegisterContext_x86.h:127
lldb_private::dwarf_bnd0_x86_64
@ dwarf_bnd0_x86_64
Definition: RegisterContext_x86.h:226
lldb_private::FXSAVE::fstat
uint16_t fstat
Definition: RegisterContext_x86.h:268
lldb_private::XMMReg
Definition: RegisterContext_x86.h:261
lldb_private::ehframe_ebp_i386
@ ehframe_ebp_i386
Definition: RegisterContext_x86.h:43
lldb_private::XSAVE_HDR
Definition: RegisterContext_x86.h:322
lldb_private::dwarf_bnd2_i386
@ dwarf_bnd2_i386
Definition: RegisterContext_x86.h:129
lldb_private::XSAVE_HDR::XFeature
XFeature
Definition: RegisterContext_x86.h:323
lldb_private::dwarf_gs_x86_64
@ dwarf_gs_x86_64
Definition: RegisterContext_x86.h:203
lldb_private::dwarf_r9_x86_64
@ dwarf_r9_x86_64
Definition: RegisterContext_x86.h:151
lldb_private::ehframe_st6_i386
@ ehframe_st6_i386
Definition: RegisterContext_x86.h:54
lldb_private::XSAVE_HDR::xstate_bv
XFeature xstate_bv
Definition: RegisterContext_x86.h:337
lldb_private::XSAVE_HDR::xcomp_bv
XFeature xcomp_bv
Definition: RegisterContext_x86.h:339
lldb_private::dwarf_st6_i386
@ dwarf_st6_i386
Definition: RegisterContext_x86.h:95
lldb_private::XSAVE_HDR::XFeature::BNDREGS
@ BNDREGS
lldb_private::FXSAVE::fdp
uint64_t fdp
Definition: RegisterContext_x86.h:274
lldb_private::dwarf_xmm6_i386
@ dwarf_xmm6_i386
Definition: RegisterContext_x86.h:104
lldb_private::dwarf_r15_x86_64
@ dwarf_r15_x86_64
Definition: RegisterContext_x86.h:157
lldb_private::dwarf_xmm1_i386
@ dwarf_xmm1_i386
Definition: RegisterContext_x86.h:99
uint16_t
lldb_private::FPR::fxsave
FXSAVE fxsave
Definition: RegisterContext_x86.h:364
lldb_private::ehframe_mm4_i386
@ ehframe_mm4_i386
Definition: RegisterContext_x86.h:68
lldb_private::ehframe_esp_i386
@ ehframe_esp_i386
Definition: RegisterContext_x86.h:42
lldb_private::dwarf_xmm4_i386
@ dwarf_xmm4_i386
Definition: RegisterContext_x86.h:102
lldb_private::dwarf_st3_i386
@ dwarf_st3_i386
Definition: RegisterContext_x86.h:92
lldb_private::FXSAVE::ftag
uint16_t ftag
Definition: RegisterContext_x86.h:269
lldb_private::dwarf_st0_i386
@ dwarf_st0_i386
Definition: RegisterContext_x86.h:89
lldb_private::dwarf_mxcsr_x86_64
@ dwarf_mxcsr_x86_64
Definition: RegisterContext_x86.h:205
lldb_private::XMMReg::bytes
uint8_t bytes[16]
Definition: RegisterContext_x86.h:262
lldb_private::MMSReg::pad
uint8_t pad[6]
Definition: RegisterContext_x86.h:254
lldb_private::dwarf_xmm3_i386
@ dwarf_xmm3_i386
Definition: RegisterContext_x86.h:101
lldb_private::dwarf_mm5_x86_64
@ dwarf_mm5_x86_64
Definition: RegisterContext_x86.h:192
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
lldb_private::dwarf_rax_x86_64
@ dwarf_rax_x86_64
Definition: RegisterContext_x86.h:141
lldb_private::dwarf_ebx_i386
@ dwarf_ebx_i386
Definition: RegisterContext_x86.h:81
lldb_private::dwarf_xmm8_x86_64
@ dwarf_xmm8_x86_64
Definition: RegisterContext_x86.h:169
lldb_private::dwarf_mm1_x86_64
@ dwarf_mm1_x86_64
Definition: RegisterContext_x86.h:188
lldb_private::dwarf_fstat_i386
@ dwarf_fstat_i386
Definition: RegisterContext_x86.h:116
lldb_private::dwarf_esp_i386
@ dwarf_esp_i386
Definition: RegisterContext_x86.h:82
lldb_private::dwarf_ymm0h_x86_64
@ dwarf_ymm0h_x86_64
Definition: RegisterContext_x86.h:209
lldb_private::ehframe_mm5_i386
@ ehframe_mm5_i386
Definition: RegisterContext_x86.h:69
lldb_private::FXSAVE::fop
uint16_t fop
Definition: RegisterContext_x86.h:270
lldb_private::XSAVE_HDR::XFeature::PKRU
@ PKRU
lldb_private::dwarf_xmm13_x86_64
@ dwarf_xmm13_x86_64
Definition: RegisterContext_x86.h:174
lldb_private::dwarf_ymm14h_x86_64
@ dwarf_ymm14h_x86_64
Definition: RegisterContext_x86.h:223
lldb_private::dwarf_ebp_i386
@ dwarf_ebp_i386
Definition: RegisterContext_x86.h:83
lldb_private::dwarf_eip_i386
@ dwarf_eip_i386
Definition: RegisterContext_x86.h:86
lldb_private::XSAVE::mpxc
MPXCsr mpxc[2]
Definition: RegisterContext_x86.h:357
lldb_private::ehframe_xmm1_i386
@ ehframe_xmm1_i386
Definition: RegisterContext_x86.h:57
lldb_private::MMSRegComp
Definition: RegisterContext_x86.h:244
lldb_private::dwarf_st3_x86_64
@ dwarf_st3_x86_64
Definition: RegisterContext_x86.h:181
lldb_private::dwarf_ymm10h_x86_64
@ dwarf_ymm10h_x86_64
Definition: RegisterContext_x86.h:219
lldb_private::dwarf_cs_x86_64
@ dwarf_cs_x86_64
Definition: RegisterContext_x86.h:199
lldb_private::FXSAVE::fooff
uint32_t fooff
Definition: RegisterContext_x86.h:279
lldb_private::ehframe_xmm6_i386
@ ehframe_xmm6_i386
Definition: RegisterContext_x86.h:62
lldb_private::FXSAVE::stmm
MMSReg stmm[8]
Definition: RegisterContext_x86.h:286
lldb_private::YMMHReg::bytes
uint8_t bytes[16]
Definition: RegisterContext_x86.h:296
lldb_private::YMMHReg
Definition: RegisterContext_x86.h:295
lldb_private::FXSAVE::i386_
struct lldb_private::FXSAVE::@107::@109 i386_
lldb_private::ehframe_eax_i386
@ ehframe_eax_i386
Definition: RegisterContext_x86.h:26
lldb_private::FXSAVE::fip
uint64_t fip
Definition: RegisterContext_x86.h:273
lldb_private::XSAVE_HDR::XFeature::SSE
@ SSE
lldb_private::dwarf_xmm0_x86_64
@ dwarf_xmm0_x86_64
Definition: RegisterContext_x86.h:161
lldb_private::dwarf_st1_x86_64
@ dwarf_st1_x86_64
Definition: RegisterContext_x86.h:179
lldb_private::dwarf_xmm15_x86_64
@ dwarf_xmm15_x86_64
Definition: RegisterContext_x86.h:176
lldb_private::dwarf_mm2_i386
@ dwarf_mm2_i386
Definition: RegisterContext_x86.h:109
lldb_private::FXSAVE::ptr
union lldb_private::FXSAVE::@107 ptr
lldb_private::dwarf_rdx_x86_64
@ dwarf_rdx_x86_64
Definition: RegisterContext_x86.h:142
lldb_private::dwarf_mm0_x86_64
@ dwarf_mm0_x86_64
Definition: RegisterContext_x86.h:187
lldb_private::MMSReg::bytes
uint8_t bytes[10]
Definition: RegisterContext_x86.h:251
lldb_private::FXSAVE::xcr0
uint64_t xcr0
Definition: RegisterContext_x86.h:289
lldb_private::MPX
Definition: RegisterContext_x86.h:316
lldb_private::dwarf_rbx_x86_64
@ dwarf_rbx_x86_64
Definition: RegisterContext_x86.h:144
lldb_private::dwarf_st1_i386
@ dwarf_st1_i386
Definition: RegisterContext_x86.h:90
lldb_private::MMSReg::comp
MMSRegComp comp
Definition: RegisterContext_x86.h:252
lldb_private::XSAVE::reserved3
uint64_t reserved3[16]
Definition: RegisterContext_x86.h:355
lldb_private::dwarf_ds_x86_64
@ dwarf_ds_x86_64
Definition: RegisterContext_x86.h:201
lldb_private::dwarf_xmm4_x86_64
@ dwarf_xmm4_x86_64
Definition: RegisterContext_x86.h:165
lldb_private::MPXReg
Definition: RegisterContext_x86.h:307
lldb_private::dwarf_st6_x86_64
@ dwarf_st6_x86_64
Definition: RegisterContext_x86.h:184
lldb_private::dwarf_fctrl_x86_64
@ dwarf_fctrl_x86_64
Definition: RegisterContext_x86.h:206