MachRegisterStatesX86_64.h revision 4d3a89ef9d015e0cc3c12736b61d367fd98fe073
1//===-- MachRegisterStatesX86_64.h --------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// Created by Sean Callanan on 3/16/11. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef __MachRegisterStatesX86_64_h__ 15#define __MachRegisterStatesX86_64_h__ 16 17#include <inttypes.h> 18 19#define __x86_64_THREAD_STATE 4 20#define __x86_64_FLOAT_STATE 5 21#define __x86_64_EXCEPTION_STATE 6 22#define __x86_64_AVX_STATE 17 23 24typedef struct { 25 uint64_t __rax; 26 uint64_t __rbx; 27 uint64_t __rcx; 28 uint64_t __rdx; 29 uint64_t __rdi; 30 uint64_t __rsi; 31 uint64_t __rbp; 32 uint64_t __rsp; 33 uint64_t __r8; 34 uint64_t __r9; 35 uint64_t __r10; 36 uint64_t __r11; 37 uint64_t __r12; 38 uint64_t __r13; 39 uint64_t __r14; 40 uint64_t __r15; 41 uint64_t __rip; 42 uint64_t __rflags; 43 uint64_t __cs; 44 uint64_t __fs; 45 uint64_t __gs; 46} __x86_64_thread_state_t; 47 48typedef struct { 49 uint16_t __invalid : 1; 50 uint16_t __denorm : 1; 51 uint16_t __zdiv : 1; 52 uint16_t __ovrfl : 1; 53 uint16_t __undfl : 1; 54 uint16_t __precis : 1; 55 uint16_t __PAD1 : 2; 56 uint16_t __pc : 2; 57 uint16_t __rc : 2; 58 uint16_t __PAD2 : 1; 59 uint16_t __PAD3 : 3; 60} __x86_64_fp_control_t; 61 62typedef struct { 63 uint16_t __invalid : 1; 64 uint16_t __denorm : 1; 65 uint16_t __zdiv : 1; 66 uint16_t __ovrfl : 1; 67 uint16_t __undfl : 1; 68 uint16_t __precis : 1; 69 uint16_t __stkflt : 1; 70 uint16_t __errsumm : 1; 71 uint16_t __c0 : 1; 72 uint16_t __c1 : 1; 73 uint16_t __c2 : 1; 74 uint16_t __tos : 3; 75 uint16_t __c3 : 1; 76 uint16_t __busy : 1; 77} __x86_64_fp_status_t; 78 79typedef struct { 80 uint8_t __mmst_reg[10]; 81 uint8_t __mmst_rsrv[6]; 82} __x86_64_mmst_reg; 83 84typedef struct { 85 uint8_t __xmm_reg[16]; 86} __x86_64_xmm_reg; 87 88typedef struct { 89 int32_t __fpu_reserved[2]; 90 __x86_64_fp_control_t __fpu_fcw; 91 __x86_64_fp_status_t __fpu_fsw; 92 uint8_t __fpu_ftw; 93 uint8_t __fpu_rsrv1; 94 uint16_t __fpu_fop; 95 uint32_t __fpu_ip; 96 uint16_t __fpu_cs; 97 uint16_t __fpu_rsrv2; 98 uint32_t __fpu_dp; 99 uint16_t __fpu_ds; 100 uint16_t __fpu_rsrv3; 101 uint32_t __fpu_mxcsr; 102 uint32_t __fpu_mxcsrmask; 103 __x86_64_mmst_reg __fpu_stmm0; 104 __x86_64_mmst_reg __fpu_stmm1; 105 __x86_64_mmst_reg __fpu_stmm2; 106 __x86_64_mmst_reg __fpu_stmm3; 107 __x86_64_mmst_reg __fpu_stmm4; 108 __x86_64_mmst_reg __fpu_stmm5; 109 __x86_64_mmst_reg __fpu_stmm6; 110 __x86_64_mmst_reg __fpu_stmm7; 111 __x86_64_xmm_reg __fpu_xmm0; 112 __x86_64_xmm_reg __fpu_xmm1; 113 __x86_64_xmm_reg __fpu_xmm2; 114 __x86_64_xmm_reg __fpu_xmm3; 115 __x86_64_xmm_reg __fpu_xmm4; 116 __x86_64_xmm_reg __fpu_xmm5; 117 __x86_64_xmm_reg __fpu_xmm6; 118 __x86_64_xmm_reg __fpu_xmm7; 119 __x86_64_xmm_reg __fpu_xmm8; 120 __x86_64_xmm_reg __fpu_xmm9; 121 __x86_64_xmm_reg __fpu_xmm10; 122 __x86_64_xmm_reg __fpu_xmm11; 123 __x86_64_xmm_reg __fpu_xmm12; 124 __x86_64_xmm_reg __fpu_xmm13; 125 __x86_64_xmm_reg __fpu_xmm14; 126 __x86_64_xmm_reg __fpu_xmm15; 127 uint8_t __fpu_rsrv4[6*16]; 128 int32_t __fpu_reserved1; 129} __x86_64_float_state_t; 130 131typedef struct { 132 uint32_t __fpu_reserved[2]; 133 __x86_64_fp_control_t __fpu_fcw; 134 __x86_64_fp_status_t __fpu_fsw; 135 uint8_t __fpu_ftw; 136 uint8_t __fpu_rsrv1; 137 uint16_t __fpu_fop; 138 uint32_t __fpu_ip; 139 uint16_t __fpu_cs; 140 uint16_t __fpu_rsrv2; 141 uint32_t __fpu_dp; 142 uint16_t __fpu_ds; 143 uint16_t __fpu_rsrv3; 144 uint32_t __fpu_mxcsr; 145 uint32_t __fpu_mxcsrmask; 146 __x86_64_mmst_reg __fpu_stmm0; 147 __x86_64_mmst_reg __fpu_stmm1; 148 __x86_64_mmst_reg __fpu_stmm2; 149 __x86_64_mmst_reg __fpu_stmm3; 150 __x86_64_mmst_reg __fpu_stmm4; 151 __x86_64_mmst_reg __fpu_stmm5; 152 __x86_64_mmst_reg __fpu_stmm6; 153 __x86_64_mmst_reg __fpu_stmm7; 154 __x86_64_xmm_reg __fpu_xmm0; 155 __x86_64_xmm_reg __fpu_xmm1; 156 __x86_64_xmm_reg __fpu_xmm2; 157 __x86_64_xmm_reg __fpu_xmm3; 158 __x86_64_xmm_reg __fpu_xmm4; 159 __x86_64_xmm_reg __fpu_xmm5; 160 __x86_64_xmm_reg __fpu_xmm6; 161 __x86_64_xmm_reg __fpu_xmm7; 162 __x86_64_xmm_reg __fpu_xmm8; 163 __x86_64_xmm_reg __fpu_xmm9; 164 __x86_64_xmm_reg __fpu_xmm10; 165 __x86_64_xmm_reg __fpu_xmm11; 166 __x86_64_xmm_reg __fpu_xmm12; 167 __x86_64_xmm_reg __fpu_xmm13; 168 __x86_64_xmm_reg __fpu_xmm14; 169 __x86_64_xmm_reg __fpu_xmm15; 170 uint8_t __fpu_rsrv4[6*16]; 171 uint32_t __fpu_reserved1; 172 uint8_t __avx_reserved1[64]; 173 __x86_64_xmm_reg __fpu_ymmh0; 174 __x86_64_xmm_reg __fpu_ymmh1; 175 __x86_64_xmm_reg __fpu_ymmh2; 176 __x86_64_xmm_reg __fpu_ymmh3; 177 __x86_64_xmm_reg __fpu_ymmh4; 178 __x86_64_xmm_reg __fpu_ymmh5; 179 __x86_64_xmm_reg __fpu_ymmh6; 180 __x86_64_xmm_reg __fpu_ymmh7; 181 __x86_64_xmm_reg __fpu_ymmh8; 182 __x86_64_xmm_reg __fpu_ymmh9; 183 __x86_64_xmm_reg __fpu_ymmh10; 184 __x86_64_xmm_reg __fpu_ymmh11; 185 __x86_64_xmm_reg __fpu_ymmh12; 186 __x86_64_xmm_reg __fpu_ymmh13; 187 __x86_64_xmm_reg __fpu_ymmh14; 188 __x86_64_xmm_reg __fpu_ymmh15; 189} __x86_64_avx_state_t; 190 191typedef struct { 192 uint32_t __trapno; 193 uint32_t __err; 194 uint64_t __faultvaddr; 195} __x86_64_exception_state_t; 196 197#endif 198