1061da546Spatrick //===-- lldb-x86-register-enums.h -------------------------------*- C++ -*-===// 2061da546Spatrick // 3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6061da546Spatrick // 7061da546Spatrick //===----------------------------------------------------------------------===// 8061da546Spatrick 9dda28197Spatrick #ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LLDB_X86_REGISTER_ENUMS_H 10dda28197Spatrick #define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LLDB_X86_REGISTER_ENUMS_H 11061da546Spatrick 12061da546Spatrick namespace lldb_private { 13061da546Spatrick // LLDB register codes (e.g. RegisterKind == eRegisterKindLLDB) 14061da546Spatrick 15061da546Spatrick // Internal codes for all i386 registers. 16061da546Spatrick enum { 17061da546Spatrick k_first_gpr_i386, 18061da546Spatrick lldb_eax_i386 = k_first_gpr_i386, 19061da546Spatrick lldb_ebx_i386, 20061da546Spatrick lldb_ecx_i386, 21061da546Spatrick lldb_edx_i386, 22061da546Spatrick lldb_edi_i386, 23061da546Spatrick lldb_esi_i386, 24061da546Spatrick lldb_ebp_i386, 25061da546Spatrick lldb_esp_i386, 26061da546Spatrick lldb_eip_i386, 27061da546Spatrick lldb_eflags_i386, 28061da546Spatrick lldb_cs_i386, 29061da546Spatrick lldb_fs_i386, 30061da546Spatrick lldb_gs_i386, 31061da546Spatrick lldb_ss_i386, 32061da546Spatrick lldb_ds_i386, 33061da546Spatrick lldb_es_i386, 34061da546Spatrick 35061da546Spatrick k_first_alias_i386, 36061da546Spatrick lldb_ax_i386 = k_first_alias_i386, 37061da546Spatrick lldb_bx_i386, 38061da546Spatrick lldb_cx_i386, 39061da546Spatrick lldb_dx_i386, 40061da546Spatrick lldb_di_i386, 41061da546Spatrick lldb_si_i386, 42061da546Spatrick lldb_bp_i386, 43061da546Spatrick lldb_sp_i386, 44061da546Spatrick lldb_ah_i386, 45061da546Spatrick lldb_bh_i386, 46061da546Spatrick lldb_ch_i386, 47061da546Spatrick lldb_dh_i386, 48061da546Spatrick lldb_al_i386, 49061da546Spatrick lldb_bl_i386, 50061da546Spatrick lldb_cl_i386, 51061da546Spatrick lldb_dl_i386, 52061da546Spatrick k_last_alias_i386 = lldb_dl_i386, 53061da546Spatrick 54061da546Spatrick k_last_gpr_i386 = k_last_alias_i386, 55061da546Spatrick 56061da546Spatrick k_first_fpr_i386, 57061da546Spatrick lldb_fctrl_i386 = k_first_fpr_i386, 58061da546Spatrick lldb_fstat_i386, 59061da546Spatrick lldb_ftag_i386, 60061da546Spatrick lldb_fop_i386, 61061da546Spatrick lldb_fiseg_i386, 62061da546Spatrick lldb_fioff_i386, 63061da546Spatrick lldb_foseg_i386, 64061da546Spatrick lldb_fooff_i386, 65061da546Spatrick lldb_mxcsr_i386, 66061da546Spatrick lldb_mxcsrmask_i386, 67061da546Spatrick lldb_st0_i386, 68061da546Spatrick lldb_st1_i386, 69061da546Spatrick lldb_st2_i386, 70061da546Spatrick lldb_st3_i386, 71061da546Spatrick lldb_st4_i386, 72061da546Spatrick lldb_st5_i386, 73061da546Spatrick lldb_st6_i386, 74061da546Spatrick lldb_st7_i386, 75061da546Spatrick lldb_mm0_i386, 76061da546Spatrick lldb_mm1_i386, 77061da546Spatrick lldb_mm2_i386, 78061da546Spatrick lldb_mm3_i386, 79061da546Spatrick lldb_mm4_i386, 80061da546Spatrick lldb_mm5_i386, 81061da546Spatrick lldb_mm6_i386, 82061da546Spatrick lldb_mm7_i386, 83061da546Spatrick lldb_xmm0_i386, 84061da546Spatrick lldb_xmm1_i386, 85061da546Spatrick lldb_xmm2_i386, 86061da546Spatrick lldb_xmm3_i386, 87061da546Spatrick lldb_xmm4_i386, 88061da546Spatrick lldb_xmm5_i386, 89061da546Spatrick lldb_xmm6_i386, 90061da546Spatrick lldb_xmm7_i386, 91061da546Spatrick k_last_fpr_i386 = lldb_xmm7_i386, 92061da546Spatrick 93061da546Spatrick k_first_avx_i386, 94061da546Spatrick lldb_ymm0_i386 = k_first_avx_i386, 95061da546Spatrick lldb_ymm1_i386, 96061da546Spatrick lldb_ymm2_i386, 97061da546Spatrick lldb_ymm3_i386, 98061da546Spatrick lldb_ymm4_i386, 99061da546Spatrick lldb_ymm5_i386, 100061da546Spatrick lldb_ymm6_i386, 101061da546Spatrick lldb_ymm7_i386, 102061da546Spatrick k_last_avx_i386 = lldb_ymm7_i386, 103061da546Spatrick 104061da546Spatrick k_first_mpxr_i386, 105061da546Spatrick lldb_bnd0_i386 = k_first_mpxr_i386, 106061da546Spatrick lldb_bnd1_i386, 107061da546Spatrick lldb_bnd2_i386, 108061da546Spatrick lldb_bnd3_i386, 109*be691f3bSpatrick k_last_mpxr_i386 = lldb_bnd3_i386, 110061da546Spatrick 111061da546Spatrick k_first_mpxc_i386, 112061da546Spatrick lldb_bndcfgu_i386 = k_first_mpxc_i386, 113061da546Spatrick lldb_bndstatus_i386, 114061da546Spatrick k_last_mpxc_i386 = lldb_bndstatus_i386, 115061da546Spatrick 116dda28197Spatrick k_first_dbr_i386, 117dda28197Spatrick lldb_dr0_i386 = k_first_dbr_i386, 118061da546Spatrick lldb_dr1_i386, 119061da546Spatrick lldb_dr2_i386, 120061da546Spatrick lldb_dr3_i386, 121061da546Spatrick lldb_dr4_i386, 122061da546Spatrick lldb_dr5_i386, 123061da546Spatrick lldb_dr6_i386, 124061da546Spatrick lldb_dr7_i386, 125dda28197Spatrick k_last_dbr_i386 = lldb_dr7_i386, 126061da546Spatrick 127061da546Spatrick k_num_registers_i386, 128061da546Spatrick k_num_gpr_registers_i386 = k_last_gpr_i386 - k_first_gpr_i386 + 1, 129061da546Spatrick k_num_fpr_registers_i386 = k_last_fpr_i386 - k_first_fpr_i386 + 1, 130061da546Spatrick k_num_avx_registers_i386 = k_last_avx_i386 - k_first_avx_i386 + 1, 131061da546Spatrick k_num_mpx_registers_i386 = k_last_mpxc_i386 - k_first_mpxr_i386 + 1, 132061da546Spatrick k_num_user_registers_i386 = k_num_gpr_registers_i386 + 133061da546Spatrick k_num_fpr_registers_i386 + 134061da546Spatrick k_num_avx_registers_i386 + 135061da546Spatrick k_num_mpx_registers_i386, 136dda28197Spatrick k_num_dbr_registers_i386 = k_last_dbr_i386 - k_first_dbr_i386 + 1, 137061da546Spatrick }; 138061da546Spatrick 139061da546Spatrick // Internal codes for all x86_64 registers. 140061da546Spatrick enum { 141061da546Spatrick k_first_gpr_x86_64, 142061da546Spatrick lldb_rax_x86_64 = k_first_gpr_x86_64, 143061da546Spatrick lldb_rbx_x86_64, 144061da546Spatrick lldb_rcx_x86_64, 145061da546Spatrick lldb_rdx_x86_64, 146061da546Spatrick lldb_rdi_x86_64, 147061da546Spatrick lldb_rsi_x86_64, 148061da546Spatrick lldb_rbp_x86_64, 149061da546Spatrick lldb_rsp_x86_64, 150061da546Spatrick lldb_r8_x86_64, 151061da546Spatrick lldb_r9_x86_64, 152061da546Spatrick lldb_r10_x86_64, 153061da546Spatrick lldb_r11_x86_64, 154061da546Spatrick lldb_r12_x86_64, 155061da546Spatrick lldb_r13_x86_64, 156061da546Spatrick lldb_r14_x86_64, 157061da546Spatrick lldb_r15_x86_64, 158061da546Spatrick lldb_rip_x86_64, 159061da546Spatrick lldb_rflags_x86_64, 160061da546Spatrick lldb_cs_x86_64, 161061da546Spatrick lldb_fs_x86_64, 162061da546Spatrick lldb_gs_x86_64, 163061da546Spatrick lldb_ss_x86_64, 164061da546Spatrick lldb_ds_x86_64, 165061da546Spatrick lldb_es_x86_64, 166061da546Spatrick 167061da546Spatrick k_first_alias_x86_64, 168061da546Spatrick lldb_eax_x86_64 = k_first_alias_x86_64, 169061da546Spatrick lldb_ebx_x86_64, 170061da546Spatrick lldb_ecx_x86_64, 171061da546Spatrick lldb_edx_x86_64, 172061da546Spatrick lldb_edi_x86_64, 173061da546Spatrick lldb_esi_x86_64, 174061da546Spatrick lldb_ebp_x86_64, 175061da546Spatrick lldb_esp_x86_64, 176061da546Spatrick lldb_r8d_x86_64, // Low 32 bits of r8 177061da546Spatrick lldb_r9d_x86_64, // Low 32 bits of r9 178061da546Spatrick lldb_r10d_x86_64, // Low 32 bits of r10 179061da546Spatrick lldb_r11d_x86_64, // Low 32 bits of r11 180061da546Spatrick lldb_r12d_x86_64, // Low 32 bits of r12 181061da546Spatrick lldb_r13d_x86_64, // Low 32 bits of r13 182061da546Spatrick lldb_r14d_x86_64, // Low 32 bits of r14 183061da546Spatrick lldb_r15d_x86_64, // Low 32 bits of r15 184061da546Spatrick lldb_ax_x86_64, 185061da546Spatrick lldb_bx_x86_64, 186061da546Spatrick lldb_cx_x86_64, 187061da546Spatrick lldb_dx_x86_64, 188061da546Spatrick lldb_di_x86_64, 189061da546Spatrick lldb_si_x86_64, 190061da546Spatrick lldb_bp_x86_64, 191061da546Spatrick lldb_sp_x86_64, 192061da546Spatrick lldb_r8w_x86_64, // Low 16 bits of r8 193061da546Spatrick lldb_r9w_x86_64, // Low 16 bits of r9 194061da546Spatrick lldb_r10w_x86_64, // Low 16 bits of r10 195061da546Spatrick lldb_r11w_x86_64, // Low 16 bits of r11 196061da546Spatrick lldb_r12w_x86_64, // Low 16 bits of r12 197061da546Spatrick lldb_r13w_x86_64, // Low 16 bits of r13 198061da546Spatrick lldb_r14w_x86_64, // Low 16 bits of r14 199061da546Spatrick lldb_r15w_x86_64, // Low 16 bits of r15 200061da546Spatrick lldb_ah_x86_64, 201061da546Spatrick lldb_bh_x86_64, 202061da546Spatrick lldb_ch_x86_64, 203061da546Spatrick lldb_dh_x86_64, 204061da546Spatrick lldb_al_x86_64, 205061da546Spatrick lldb_bl_x86_64, 206061da546Spatrick lldb_cl_x86_64, 207061da546Spatrick lldb_dl_x86_64, 208061da546Spatrick lldb_dil_x86_64, 209061da546Spatrick lldb_sil_x86_64, 210061da546Spatrick lldb_bpl_x86_64, 211061da546Spatrick lldb_spl_x86_64, 212061da546Spatrick lldb_r8l_x86_64, // Low 8 bits of r8 213061da546Spatrick lldb_r9l_x86_64, // Low 8 bits of r9 214061da546Spatrick lldb_r10l_x86_64, // Low 8 bits of r10 215061da546Spatrick lldb_r11l_x86_64, // Low 8 bits of r11 216061da546Spatrick lldb_r12l_x86_64, // Low 8 bits of r12 217061da546Spatrick lldb_r13l_x86_64, // Low 8 bits of r13 218061da546Spatrick lldb_r14l_x86_64, // Low 8 bits of r14 219061da546Spatrick lldb_r15l_x86_64, // Low 8 bits of r15 220061da546Spatrick k_last_alias_x86_64 = lldb_r15l_x86_64, 221061da546Spatrick 222061da546Spatrick k_last_gpr_x86_64 = k_last_alias_x86_64, 223061da546Spatrick 224061da546Spatrick k_first_fpr_x86_64, 225061da546Spatrick lldb_fctrl_x86_64 = k_first_fpr_x86_64, 226061da546Spatrick lldb_fstat_x86_64, 227061da546Spatrick lldb_ftag_x86_64, 228061da546Spatrick lldb_fop_x86_64, 229061da546Spatrick lldb_fiseg_x86_64, 230061da546Spatrick lldb_fioff_x86_64, 231*be691f3bSpatrick lldb_fip_x86_64, 232061da546Spatrick lldb_foseg_x86_64, 233061da546Spatrick lldb_fooff_x86_64, 234*be691f3bSpatrick lldb_fdp_x86_64, 235061da546Spatrick lldb_mxcsr_x86_64, 236061da546Spatrick lldb_mxcsrmask_x86_64, 237061da546Spatrick lldb_st0_x86_64, 238061da546Spatrick lldb_st1_x86_64, 239061da546Spatrick lldb_st2_x86_64, 240061da546Spatrick lldb_st3_x86_64, 241061da546Spatrick lldb_st4_x86_64, 242061da546Spatrick lldb_st5_x86_64, 243061da546Spatrick lldb_st6_x86_64, 244061da546Spatrick lldb_st7_x86_64, 245061da546Spatrick lldb_mm0_x86_64, 246061da546Spatrick lldb_mm1_x86_64, 247061da546Spatrick lldb_mm2_x86_64, 248061da546Spatrick lldb_mm3_x86_64, 249061da546Spatrick lldb_mm4_x86_64, 250061da546Spatrick lldb_mm5_x86_64, 251061da546Spatrick lldb_mm6_x86_64, 252061da546Spatrick lldb_mm7_x86_64, 253061da546Spatrick lldb_xmm0_x86_64, 254061da546Spatrick lldb_xmm1_x86_64, 255061da546Spatrick lldb_xmm2_x86_64, 256061da546Spatrick lldb_xmm3_x86_64, 257061da546Spatrick lldb_xmm4_x86_64, 258061da546Spatrick lldb_xmm5_x86_64, 259061da546Spatrick lldb_xmm6_x86_64, 260061da546Spatrick lldb_xmm7_x86_64, 261061da546Spatrick lldb_xmm8_x86_64, 262061da546Spatrick lldb_xmm9_x86_64, 263061da546Spatrick lldb_xmm10_x86_64, 264061da546Spatrick lldb_xmm11_x86_64, 265061da546Spatrick lldb_xmm12_x86_64, 266061da546Spatrick lldb_xmm13_x86_64, 267061da546Spatrick lldb_xmm14_x86_64, 268061da546Spatrick lldb_xmm15_x86_64, 269061da546Spatrick k_last_fpr_x86_64 = lldb_xmm15_x86_64, 270061da546Spatrick 271061da546Spatrick k_first_avx_x86_64, 272061da546Spatrick lldb_ymm0_x86_64 = k_first_avx_x86_64, 273061da546Spatrick lldb_ymm1_x86_64, 274061da546Spatrick lldb_ymm2_x86_64, 275061da546Spatrick lldb_ymm3_x86_64, 276061da546Spatrick lldb_ymm4_x86_64, 277061da546Spatrick lldb_ymm5_x86_64, 278061da546Spatrick lldb_ymm6_x86_64, 279061da546Spatrick lldb_ymm7_x86_64, 280061da546Spatrick lldb_ymm8_x86_64, 281061da546Spatrick lldb_ymm9_x86_64, 282061da546Spatrick lldb_ymm10_x86_64, 283061da546Spatrick lldb_ymm11_x86_64, 284061da546Spatrick lldb_ymm12_x86_64, 285061da546Spatrick lldb_ymm13_x86_64, 286061da546Spatrick lldb_ymm14_x86_64, 287061da546Spatrick lldb_ymm15_x86_64, 288061da546Spatrick k_last_avx_x86_64 = lldb_ymm15_x86_64, 289061da546Spatrick 290061da546Spatrick k_first_mpxr_x86_64, 291061da546Spatrick lldb_bnd0_x86_64 = k_first_mpxr_x86_64, 292061da546Spatrick lldb_bnd1_x86_64, 293061da546Spatrick lldb_bnd2_x86_64, 294061da546Spatrick lldb_bnd3_x86_64, 295061da546Spatrick k_last_mpxr_x86_64 = lldb_bnd3_x86_64, 296061da546Spatrick 297061da546Spatrick k_first_mpxc_x86_64, 298061da546Spatrick lldb_bndcfgu_x86_64 = k_first_mpxc_x86_64, 299061da546Spatrick lldb_bndstatus_x86_64, 300061da546Spatrick k_last_mpxc_x86_64 = lldb_bndstatus_x86_64, 301061da546Spatrick 302061da546Spatrick k_first_dbr_x86_64, 303061da546Spatrick lldb_dr0_x86_64 = k_first_dbr_x86_64, 304061da546Spatrick lldb_dr1_x86_64, 305061da546Spatrick lldb_dr2_x86_64, 306061da546Spatrick lldb_dr3_x86_64, 307061da546Spatrick lldb_dr4_x86_64, 308061da546Spatrick lldb_dr5_x86_64, 309061da546Spatrick lldb_dr6_x86_64, 310061da546Spatrick lldb_dr7_x86_64, 311061da546Spatrick k_last_dbr_x86_64 = lldb_dr7_x86_64, 312061da546Spatrick 313061da546Spatrick k_num_registers_x86_64, 314061da546Spatrick k_num_gpr_registers_x86_64 = k_last_gpr_x86_64 - k_first_gpr_x86_64 + 1, 315061da546Spatrick k_num_fpr_registers_x86_64 = k_last_fpr_x86_64 - k_first_fpr_x86_64 + 1, 316061da546Spatrick k_num_avx_registers_x86_64 = k_last_avx_x86_64 - k_first_avx_x86_64 + 1, 317061da546Spatrick k_num_mpx_registers_x86_64 = k_last_mpxc_x86_64 - k_first_mpxr_x86_64 + 1, 318061da546Spatrick k_num_user_registers_x86_64 = k_num_gpr_registers_x86_64 + 319061da546Spatrick k_num_fpr_registers_x86_64 + 320061da546Spatrick k_num_avx_registers_x86_64 + 321061da546Spatrick k_num_mpx_registers_x86_64, 322061da546Spatrick k_num_dbr_registers_x86_64 = k_last_dbr_x86_64 - k_first_dbr_x86_64 + 1, 323061da546Spatrick }; 324061da546Spatrick } 325061da546Spatrick 326dda28197Spatrick #endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LLDB_X86_REGISTER_ENUMS_H 327