319 lines · c
1//===-- MachRegisterStatesX86_64.h --------------------------------*- C++2//-*-===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9//10// Created by Sean Callanan on 3/16/11.11//12//===----------------------------------------------------------------------===//13 14#ifndef LLDB_TOOLS_DEBUGSERVER_SOURCE_MACOSX_X86_64_MACHREGISTERSTATESX86_64_H15#define LLDB_TOOLS_DEBUGSERVER_SOURCE_MACOSX_X86_64_MACHREGISTERSTATESX86_64_H16 17#include <cinttypes>18 19#define __x86_64_THREAD_STATE 420#define __x86_64_FLOAT_STATE 521#define __x86_64_EXCEPTION_STATE 622#define __x86_64_DEBUG_STATE 1123#define __x86_64_AVX_STATE 1724#define __x86_64_AVX512F_STATE 2025#define __x86_64_THREAD_FULL_STATE 2326 27typedef struct {28 uint64_t __rax;29 uint64_t __rbx;30 uint64_t __rcx;31 uint64_t __rdx;32 uint64_t __rdi;33 uint64_t __rsi;34 uint64_t __rbp;35 uint64_t __rsp;36 uint64_t __r8;37 uint64_t __r9;38 uint64_t __r10;39 uint64_t __r11;40 uint64_t __r12;41 uint64_t __r13;42 uint64_t __r14;43 uint64_t __r15;44 uint64_t __rip;45 uint64_t __rflags;46 uint64_t __cs;47 uint64_t __fs;48 uint64_t __gs;49 uint64_t __ds;50 uint64_t __es;51 uint64_t __ss;52 uint64_t __gsbase;53} __x86_64_thread_state_t;54 55typedef struct {56 uint16_t __invalid : 1;57 uint16_t __denorm : 1;58 uint16_t __zdiv : 1;59 uint16_t __ovrfl : 1;60 uint16_t __undfl : 1;61 uint16_t __precis : 1;62 uint16_t __PAD1 : 2;63 uint16_t __pc : 2;64 uint16_t __rc : 2;65 uint16_t __PAD2 : 1;66 uint16_t __PAD3 : 3;67} __x86_64_fp_control_t;68 69typedef struct {70 uint16_t __invalid : 1;71 uint16_t __denorm : 1;72 uint16_t __zdiv : 1;73 uint16_t __ovrfl : 1;74 uint16_t __undfl : 1;75 uint16_t __precis : 1;76 uint16_t __stkflt : 1;77 uint16_t __errsumm : 1;78 uint16_t __c0 : 1;79 uint16_t __c1 : 1;80 uint16_t __c2 : 1;81 uint16_t __tos : 3;82 uint16_t __c3 : 1;83 uint16_t __busy : 1;84} __x86_64_fp_status_t;85 86typedef struct {87 uint8_t __mmst_reg[10];88 uint8_t __mmst_rsrv[6];89} __x86_64_mmst_reg;90 91typedef struct { uint8_t __xmm_reg[16]; } __x86_64_xmm_reg;92 93typedef struct {94 uint32_t __fpu_reserved[2];95 __x86_64_fp_control_t __fpu_fcw;96 __x86_64_fp_status_t __fpu_fsw;97 uint8_t __fpu_ftw;98 uint8_t __fpu_rsrv1;99 uint16_t __fpu_fop;100 uint32_t __fpu_ip;101 uint16_t __fpu_cs;102 uint16_t __fpu_rsrv2;103 uint32_t __fpu_dp;104 uint16_t __fpu_ds;105 uint16_t __fpu_rsrv3;106 uint32_t __fpu_mxcsr;107 uint32_t __fpu_mxcsrmask;108 __x86_64_mmst_reg __fpu_stmm0;109 __x86_64_mmst_reg __fpu_stmm1;110 __x86_64_mmst_reg __fpu_stmm2;111 __x86_64_mmst_reg __fpu_stmm3;112 __x86_64_mmst_reg __fpu_stmm4;113 __x86_64_mmst_reg __fpu_stmm5;114 __x86_64_mmst_reg __fpu_stmm6;115 __x86_64_mmst_reg __fpu_stmm7;116 __x86_64_xmm_reg __fpu_xmm0;117 __x86_64_xmm_reg __fpu_xmm1;118 __x86_64_xmm_reg __fpu_xmm2;119 __x86_64_xmm_reg __fpu_xmm3;120 __x86_64_xmm_reg __fpu_xmm4;121 __x86_64_xmm_reg __fpu_xmm5;122 __x86_64_xmm_reg __fpu_xmm6;123 __x86_64_xmm_reg __fpu_xmm7;124 __x86_64_xmm_reg __fpu_xmm8;125 __x86_64_xmm_reg __fpu_xmm9;126 __x86_64_xmm_reg __fpu_xmm10;127 __x86_64_xmm_reg __fpu_xmm11;128 __x86_64_xmm_reg __fpu_xmm12;129 __x86_64_xmm_reg __fpu_xmm13;130 __x86_64_xmm_reg __fpu_xmm14;131 __x86_64_xmm_reg __fpu_xmm15;132 uint8_t __fpu_rsrv4[6 * 16];133 uint32_t __fpu_reserved1;134} __x86_64_float_state_t;135 136typedef struct {137 uint32_t __fpu_reserved[2];138 __x86_64_fp_control_t __fpu_fcw;139 __x86_64_fp_status_t __fpu_fsw;140 uint8_t __fpu_ftw;141 uint8_t __fpu_rsrv1;142 uint16_t __fpu_fop;143 uint32_t __fpu_ip;144 uint16_t __fpu_cs;145 uint16_t __fpu_rsrv2;146 uint32_t __fpu_dp;147 uint16_t __fpu_ds;148 uint16_t __fpu_rsrv3;149 uint32_t __fpu_mxcsr;150 uint32_t __fpu_mxcsrmask;151 __x86_64_mmst_reg __fpu_stmm0;152 __x86_64_mmst_reg __fpu_stmm1;153 __x86_64_mmst_reg __fpu_stmm2;154 __x86_64_mmst_reg __fpu_stmm3;155 __x86_64_mmst_reg __fpu_stmm4;156 __x86_64_mmst_reg __fpu_stmm5;157 __x86_64_mmst_reg __fpu_stmm6;158 __x86_64_mmst_reg __fpu_stmm7;159 __x86_64_xmm_reg __fpu_xmm0;160 __x86_64_xmm_reg __fpu_xmm1;161 __x86_64_xmm_reg __fpu_xmm2;162 __x86_64_xmm_reg __fpu_xmm3;163 __x86_64_xmm_reg __fpu_xmm4;164 __x86_64_xmm_reg __fpu_xmm5;165 __x86_64_xmm_reg __fpu_xmm6;166 __x86_64_xmm_reg __fpu_xmm7;167 __x86_64_xmm_reg __fpu_xmm8;168 __x86_64_xmm_reg __fpu_xmm9;169 __x86_64_xmm_reg __fpu_xmm10;170 __x86_64_xmm_reg __fpu_xmm11;171 __x86_64_xmm_reg __fpu_xmm12;172 __x86_64_xmm_reg __fpu_xmm13;173 __x86_64_xmm_reg __fpu_xmm14;174 __x86_64_xmm_reg __fpu_xmm15;175 uint8_t __fpu_rsrv4[6 * 16];176 uint32_t __fpu_reserved1;177 uint8_t __avx_reserved1[64];178 __x86_64_xmm_reg __fpu_ymmh0;179 __x86_64_xmm_reg __fpu_ymmh1;180 __x86_64_xmm_reg __fpu_ymmh2;181 __x86_64_xmm_reg __fpu_ymmh3;182 __x86_64_xmm_reg __fpu_ymmh4;183 __x86_64_xmm_reg __fpu_ymmh5;184 __x86_64_xmm_reg __fpu_ymmh6;185 __x86_64_xmm_reg __fpu_ymmh7;186 __x86_64_xmm_reg __fpu_ymmh8;187 __x86_64_xmm_reg __fpu_ymmh9;188 __x86_64_xmm_reg __fpu_ymmh10;189 __x86_64_xmm_reg __fpu_ymmh11;190 __x86_64_xmm_reg __fpu_ymmh12;191 __x86_64_xmm_reg __fpu_ymmh13;192 __x86_64_xmm_reg __fpu_ymmh14;193 __x86_64_xmm_reg __fpu_ymmh15;194} __x86_64_avx_state_t;195 196typedef struct { uint8_t __ymm_reg[32]; } __x86_64_ymm_reg;197typedef struct { uint8_t __zmm_reg[64]; } __x86_64_zmm_reg;198typedef struct { uint8_t __opmask_reg[8]; } __x86_64_opmask_reg;199 200typedef struct {201 uint32_t __fpu_reserved[2];202 __x86_64_fp_control_t __fpu_fcw;203 __x86_64_fp_status_t __fpu_fsw;204 uint8_t __fpu_ftw;205 uint8_t __fpu_rsrv1;206 uint16_t __fpu_fop;207 uint32_t __fpu_ip;208 uint16_t __fpu_cs;209 uint16_t __fpu_rsrv2;210 uint32_t __fpu_dp;211 uint16_t __fpu_ds;212 uint16_t __fpu_rsrv3;213 uint32_t __fpu_mxcsr;214 uint32_t __fpu_mxcsrmask;215 __x86_64_mmst_reg __fpu_stmm0;216 __x86_64_mmst_reg __fpu_stmm1;217 __x86_64_mmst_reg __fpu_stmm2;218 __x86_64_mmst_reg __fpu_stmm3;219 __x86_64_mmst_reg __fpu_stmm4;220 __x86_64_mmst_reg __fpu_stmm5;221 __x86_64_mmst_reg __fpu_stmm6;222 __x86_64_mmst_reg __fpu_stmm7;223 __x86_64_xmm_reg __fpu_xmm0;224 __x86_64_xmm_reg __fpu_xmm1;225 __x86_64_xmm_reg __fpu_xmm2;226 __x86_64_xmm_reg __fpu_xmm3;227 __x86_64_xmm_reg __fpu_xmm4;228 __x86_64_xmm_reg __fpu_xmm5;229 __x86_64_xmm_reg __fpu_xmm6;230 __x86_64_xmm_reg __fpu_xmm7;231 __x86_64_xmm_reg __fpu_xmm8;232 __x86_64_xmm_reg __fpu_xmm9;233 __x86_64_xmm_reg __fpu_xmm10;234 __x86_64_xmm_reg __fpu_xmm11;235 __x86_64_xmm_reg __fpu_xmm12;236 __x86_64_xmm_reg __fpu_xmm13;237 __x86_64_xmm_reg __fpu_xmm14;238 __x86_64_xmm_reg __fpu_xmm15;239 uint8_t __fpu_rsrv4[6 * 16];240 uint32_t __fpu_reserved1;241 uint8_t __avx_reserved1[64];242 __x86_64_xmm_reg __fpu_ymmh0;243 __x86_64_xmm_reg __fpu_ymmh1;244 __x86_64_xmm_reg __fpu_ymmh2;245 __x86_64_xmm_reg __fpu_ymmh3;246 __x86_64_xmm_reg __fpu_ymmh4;247 __x86_64_xmm_reg __fpu_ymmh5;248 __x86_64_xmm_reg __fpu_ymmh6;249 __x86_64_xmm_reg __fpu_ymmh7;250 __x86_64_xmm_reg __fpu_ymmh8;251 __x86_64_xmm_reg __fpu_ymmh9;252 __x86_64_xmm_reg __fpu_ymmh10;253 __x86_64_xmm_reg __fpu_ymmh11;254 __x86_64_xmm_reg __fpu_ymmh12;255 __x86_64_xmm_reg __fpu_ymmh13;256 __x86_64_xmm_reg __fpu_ymmh14;257 __x86_64_xmm_reg __fpu_ymmh15;258 __x86_64_opmask_reg __fpu_k0;259 __x86_64_opmask_reg __fpu_k1;260 __x86_64_opmask_reg __fpu_k2;261 __x86_64_opmask_reg __fpu_k3;262 __x86_64_opmask_reg __fpu_k4;263 __x86_64_opmask_reg __fpu_k5;264 __x86_64_opmask_reg __fpu_k6;265 __x86_64_opmask_reg __fpu_k7;266 __x86_64_ymm_reg __fpu_zmmh0;267 __x86_64_ymm_reg __fpu_zmmh1;268 __x86_64_ymm_reg __fpu_zmmh2;269 __x86_64_ymm_reg __fpu_zmmh3;270 __x86_64_ymm_reg __fpu_zmmh4;271 __x86_64_ymm_reg __fpu_zmmh5;272 __x86_64_ymm_reg __fpu_zmmh6;273 __x86_64_ymm_reg __fpu_zmmh7;274 __x86_64_ymm_reg __fpu_zmmh8;275 __x86_64_ymm_reg __fpu_zmmh9;276 __x86_64_ymm_reg __fpu_zmmh10;277 __x86_64_ymm_reg __fpu_zmmh11;278 __x86_64_ymm_reg __fpu_zmmh12;279 __x86_64_ymm_reg __fpu_zmmh13;280 __x86_64_ymm_reg __fpu_zmmh14;281 __x86_64_ymm_reg __fpu_zmmh15;282 __x86_64_zmm_reg __fpu_zmm16;283 __x86_64_zmm_reg __fpu_zmm17;284 __x86_64_zmm_reg __fpu_zmm18;285 __x86_64_zmm_reg __fpu_zmm19;286 __x86_64_zmm_reg __fpu_zmm20;287 __x86_64_zmm_reg __fpu_zmm21;288 __x86_64_zmm_reg __fpu_zmm22;289 __x86_64_zmm_reg __fpu_zmm23;290 __x86_64_zmm_reg __fpu_zmm24;291 __x86_64_zmm_reg __fpu_zmm25;292 __x86_64_zmm_reg __fpu_zmm26;293 __x86_64_zmm_reg __fpu_zmm27;294 __x86_64_zmm_reg __fpu_zmm28;295 __x86_64_zmm_reg __fpu_zmm29;296 __x86_64_zmm_reg __fpu_zmm30;297 __x86_64_zmm_reg __fpu_zmm31;298 299} __x86_64_avx512f_state_t;300 301typedef struct {302 uint32_t __trapno;303 uint32_t __err;304 uint64_t __faultvaddr;305} __x86_64_exception_state_t;306 307typedef struct {308 uint64_t __dr0;309 uint64_t __dr1;310 uint64_t __dr2;311 uint64_t __dr3;312 uint64_t __dr4;313 uint64_t __dr5;314 uint64_t __dr6;315 uint64_t __dr7;316} __x86_64_debug_state_t;317 318#endif319