- Timestamp:
- Jul 6, 2016 3:15:42 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpumctx.h
r62062 r62064 123 123 } CPUMSYSENTER; 124 124 125 /** @def CPUM_UNION_N AME125 /** @def CPUM_UNION_NM 126 126 * For compilers (like DTrace) that does not grok nameless unions, we have a 127 127 * little hack to make them palatable. 128 128 */ 129 /** @def CPUM_STRUCT_NM 130 * For compilers (like DTrace) that does not grok nameless structs (it is 131 * non-standard C++), we have a little hack to make them palatable. 132 */ 129 133 #ifdef VBOX_FOR_DTRACE_LIB 130 # define CPUM_UNION_NAME(a_Nm) a_Nm 134 # define CPUM_UNION_NM(a_Nm) a_Nm 135 # define CPUM_STRUCT_NM(a_Nm) a_Nm 131 136 #elif defined(VBOX_WITHOUT_UNNAMED_UNIONS) 132 # define CPUM_UNION_NAME(a_Nm) a_Nm 137 # define CPUM_UNION_NM(a_Nm) a_Nm 138 # define CPUM_STRUCT_NM(a_Nm) a_Nm 133 139 #else 134 # define CPUM_UNION_NAME(a_Nm) 140 # define CPUM_UNION_NM(a_Nm) 141 # define CPUM_STRUCT_NM(a_Nm) 135 142 #endif 143 /** @def CPUM_UNION_STRUCT_NM 144 * Combines CPUM_UNION_NM and CPUM_STRUCT_NM to avoid hitting the right side of 145 * the screen in the compile time assertions. 146 */ 147 #define CPUM_UNION_STRUCT_NM(a_UnionNm, a_StructNm) CPUM_UNION_NM(a_UnionNm .) CPUM_STRUCT_NM(a_StructNm) 136 148 137 149 /** A general register (union). */ … … 155 167 /** High byte in the first word - ah, ch, dh, bh. */ 156 168 uint8_t bHi; 157 } CPUM_ UNION_NAME(s);169 } CPUM_STRUCT_NM(s); 158 170 } CPUMCTXGREG; 159 171 #ifdef VBOX_FOR_DTRACE_LIB 160 172 AssertCompileSize(CPUMCTXGREG, 8); 161 AssertCompileMemberOffset(CPUMCTXGREG, CPUM_ UNION_NAME(s.) bLo, 0);162 AssertCompileMemberOffset(CPUMCTXGREG, CPUM_ UNION_NAME(s.) bHi, 1);173 AssertCompileMemberOffset(CPUMCTXGREG, CPUM_STRUCT_NM(s.) bLo, 0); 174 AssertCompileMemberOffset(CPUMCTXGREG, CPUM_STRUCT_NM(s.) bHi, 1); 163 175 #endif 164 176 … … 184 196 uint32_t eax; 185 197 uint64_t rax; 186 } CPUM_UNION_N AME(rax);198 } CPUM_UNION_NM(rax); 187 199 union 188 200 { … … 191 203 uint32_t ecx; 192 204 uint64_t rcx; 193 } CPUM_UNION_N AME(rcx);205 } CPUM_UNION_NM(rcx); 194 206 union 195 207 { … … 198 210 uint32_t edx; 199 211 uint64_t rdx; 200 } CPUM_UNION_N AME(rdx);212 } CPUM_UNION_NM(rdx); 201 213 union 202 214 { … … 205 217 uint32_t ebx; 206 218 uint64_t rbx; 207 } CPUM_UNION_N AME(rbx);219 } CPUM_UNION_NM(rbx); 208 220 union 209 221 { … … 211 223 uint32_t esp; 212 224 uint64_t rsp; 213 } CPUM_UNION_N AME(rsp);225 } CPUM_UNION_NM(rsp); 214 226 union 215 227 { … … 217 229 uint32_t ebp; 218 230 uint64_t rbp; 219 } CPUM_UNION_N AME(rbp);231 } CPUM_UNION_NM(rbp); 220 232 union 221 233 { … … 224 236 uint32_t esi; 225 237 uint64_t rsi; 226 } CPUM_UNION_N AME(rsi);238 } CPUM_UNION_NM(rsi); 227 239 union 228 240 { … … 231 243 uint32_t edi; 232 244 uint64_t rdi; 233 } CPUM_UNION_N AME(rdi);245 } CPUM_UNION_NM(rdi); 234 246 uint64_t r8; 235 247 uint64_t r9; … … 260 272 uint32_t eip; 261 273 uint64_t rip; 262 } CPUM_UNION_N AME(rip);274 } CPUM_UNION_NM(rip); 263 275 264 276 /** The flags register. */ … … 267 279 X86EFLAGS eflags; 268 280 X86RFLAGS rflags; 269 } CPUM_UNION_N AME(rflags);281 } CPUM_UNION_NM(rflags); 270 282 271 283 } CPUMCTXCORE; … … 292 304 { 293 305 uint64_t rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15; 294 } CPUM_ UNION_NAME(qw);306 } CPUM_STRUCT_NM(qw); 295 307 /** 64-bit general purpose register view. */ 296 308 RT_GCC_EXTENSION struct /* no tag! */ 297 309 { 298 310 uint64_t r0, r1, r2, r3, r4, r5, r6, r7; 299 } CPUM_ UNION_NAME(qw2);311 } CPUM_STRUCT_NM(qw2); 300 312 /** 32-bit general purpose register view. */ 301 313 RT_GCC_EXTENSION struct /* no tag! */ … … 305 317 r8d, u32Pad08, r9d, u32Pad09, r10d, u32Pad10, r11d, u32Pad11, 306 318 r12d, u32Pad12, r13d, u32Pad13, r14d, u32Pad14, r15d, u32Pad15; 307 } CPUM_ UNION_NAME(dw);319 } CPUM_STRUCT_NM(dw); 308 320 /** 16-bit general purpose register view. */ 309 321 RT_GCC_EXTENSION struct /* no tag! */ … … 313 325 r8w, au16Pad08[3], r9w, au16Pad09[3], r10w, au16Pad10[3], r11w, au16Pad11[3], 314 326 r12w, au16Pad12[3], r13w, au16Pad13[3], r14w, au16Pad14[3], r15w, au16Pad15[3]; 315 } CPUM_ UNION_NAME(w);327 } CPUM_STRUCT_NM(w); 316 328 RT_GCC_EXTENSION struct /* no tag! */ 317 329 { … … 320 332 r8l, abPad08[7], r9l, abPad09[7], r10l, abPad10[7], r11l, abPad11[7], 321 333 r12l, abPad12[7], r13l, abPad13[7], r14l, abPad14[7], r15l, abPad15[7]; 322 } CPUM_ UNION_NAME(b);323 } CPUM_UNION_N AME(g);334 } CPUM_STRUCT_NM(b); 335 } CPUM_UNION_NM(g); 324 336 325 337 /** Segment registers. */ … … 332 344 { 333 345 CPUMSELREG es, cs, ss, ds, fs, gs; 334 } CPUM_ UNION_NAME(n);335 } CPUM_UNION_N AME(s);346 } CPUM_STRUCT_NM(n); 347 } CPUM_UNION_NM(s); 336 348 337 349 /** The program counter. */ … … 341 353 uint32_t eip; 342 354 uint64_t rip; 343 } CPUM_UNION_N AME(rip);355 } CPUM_UNION_NM(rip); 344 356 345 357 /** The flags register. */ … … 348 360 X86EFLAGS eflags; 349 361 X86RFLAGS rflags; 350 } CPUM_UNION_N AME(rflags);362 } CPUM_UNION_NM(rflags); 351 363 352 364 /** @} */ /*(CPUMCTXCORE)*/ … … 426 438 #ifndef VBOX_FOR_DTRACE_LIB 427 439 AssertCompileSizeAlignment(CPUMCTX, 64); 428 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) rax, 0);429 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) rcx, 8);430 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) rdx, 16);431 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) rbx, 24);432 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) rsp, 32);433 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) rbp, 40);434 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) rsi, 48);435 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) rdi, 56);436 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) r8, 64);437 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) r9, 72);438 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) r10, 80);439 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) r11, 88);440 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) r12, 96);441 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) r13, 104);442 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) r14, 112);443 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(g.qw.) r15, 120);444 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(s.n.) es, 128);445 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(s.n.) cs, 152);446 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(s.n.) ss, 176);447 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(s.n.) ds, 200);448 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(s.n.) fs, 224);449 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_N AME(s.n.) gs, 248);440 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) rax, 0); 441 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) rcx, 8); 442 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) rdx, 16); 443 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) rbx, 24); 444 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) rsp, 32); 445 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) rbp, 40); 446 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) rsi, 48); 447 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) rdi, 56); 448 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) r8, 64); 449 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) r9, 72); 450 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) r10, 80); 451 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) r11, 88); 452 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) r12, 96); 453 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) r13, 104); 454 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) r14, 112); 455 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(g.) CPUM_STRUCT_NM(qw.) r15, 120); 456 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(s.) CPUM_STRUCT_NM(n.) es, 128); 457 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(s.) CPUM_STRUCT_NM(n.) cs, 152); 458 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(s.) CPUM_STRUCT_NM(n.) ss, 176); 459 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(s.) CPUM_STRUCT_NM(n.) ds, 200); 460 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(s.) CPUM_STRUCT_NM(n.) fs, 224); 461 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NM(s.) CPUM_STRUCT_NM(n.) gs, 248); 450 462 AssertCompileMemberOffset(CPUMCTX, rip, 272); 451 463 AssertCompileMemberOffset(CPUMCTX, rflags, 280); … … 474 486 AssertCompileMemberOffset(CPUMCTX, pXStateRC, HC_ARCH_BITS == 64 ? 592 : 584); 475 487 AssertCompileMemberOffset(CPUMCTX, aoffXState, HC_ARCH_BITS == 64 ? 596 : 588); 476 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rax, CPUMCTX, CPUM_UNION_NAME(g.)aGRegs);477 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rax, CPUMCTX, CPUM_UNION_NAME(g.qw2.) r0);478 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rcx, CPUMCTX, CPUM_UNION_NAME(g.qw2.) r1);479 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rdx, CPUMCTX, CPUM_UNION_NAME(g.qw2.) r2);480 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rbx, CPUMCTX, CPUM_UNION_NAME(g.qw2.) r3);481 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rsp, CPUMCTX, CPUM_UNION_NAME(g.qw2.) r4);482 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rbp, CPUMCTX, CPUM_UNION_NAME(g.qw2.) r5);483 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rsi, CPUMCTX, CPUM_UNION_NAME(g.qw2.) r6);484 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rdi, CPUMCTX, CPUM_UNION_NAME(g.qw2.) r7);485 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rax, CPUMCTX, CPUM_UNION_NAME(g.dw.) eax);486 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rcx, CPUMCTX, CPUM_UNION_NAME(g.dw.) ecx);487 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rdx, CPUMCTX, CPUM_UNION_NAME(g.dw.) edx);488 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rbx, CPUMCTX, CPUM_UNION_NAME(g.dw.) ebx);489 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rsp, CPUMCTX, CPUM_UNION_NAME(g.dw.) esp);490 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rbp, CPUMCTX, CPUM_UNION_NAME(g.dw.) ebp);491 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rsi, CPUMCTX, CPUM_UNION_NAME(g.dw.) esi);492 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rdi, CPUMCTX, CPUM_UNION_NAME(g.dw.) edi);493 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r8, CPUMCTX, CPUM_UNION_NAME(g.dw.) r8d);494 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r9, CPUMCTX, CPUM_UNION_NAME(g.dw.) r9d);495 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r10, CPUMCTX, CPUM_UNION_NAME(g.dw.) r10d);496 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r11, CPUMCTX, CPUM_UNION_NAME(g.dw.) r11d);497 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r12, CPUMCTX, CPUM_UNION_NAME(g.dw.) r12d);498 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r13, CPUMCTX, CPUM_UNION_NAME(g.dw.) r13d);499 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r14, CPUMCTX, CPUM_UNION_NAME(g.dw.) r14d);500 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r15, CPUMCTX, CPUM_UNION_NAME(g.dw.) r15d);501 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rax, CPUMCTX, CPUM_UNION_NAME(g.w.) ax);502 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rcx, CPUMCTX, CPUM_UNION_NAME(g.w.) cx);503 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rdx, CPUMCTX, CPUM_UNION_NAME(g.w.) dx);504 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rbx, CPUMCTX, CPUM_UNION_NAME(g.w.) bx);505 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rsp, CPUMCTX, CPUM_UNION_NAME(g.w.) sp);506 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rbp, CPUMCTX, CPUM_UNION_NAME(g.w.) bp);507 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rsi, CPUMCTX, CPUM_UNION_NAME(g.w.) si);508 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rdi, CPUMCTX, CPUM_UNION_NAME(g.w.) di);509 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r8, CPUMCTX, CPUM_UNION_NAME(g.w.) r8w);510 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r9, CPUMCTX, CPUM_UNION_NAME(g.w.) r9w);511 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r10, CPUMCTX, CPUM_UNION_NAME(g.w.) r10w);512 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r11, CPUMCTX, CPUM_UNION_NAME(g.w.) r11w);513 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r12, CPUMCTX, CPUM_UNION_NAME(g.w.) r12w);514 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r13, CPUMCTX, CPUM_UNION_NAME(g.w.) r13w);515 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r14, CPUMCTX, CPUM_UNION_NAME(g.w.) r14w);516 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r15, CPUMCTX, CPUM_UNION_NAME(g.w.) r15w);517 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rax, CPUMCTX, CPUM_UNION_NAME(g.b.) al);518 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rcx, CPUMCTX, CPUM_UNION_NAME(g.b.) cl);519 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rdx, CPUMCTX, CPUM_UNION_NAME(g.b.) dl);520 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rbx, CPUMCTX, CPUM_UNION_NAME(g.b.) bl);521 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rsp, CPUMCTX, CPUM_UNION_NAME(g.b.) spl);522 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rbp, CPUMCTX, CPUM_UNION_NAME(g.b.) bpl);523 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rsi, CPUMCTX, CPUM_UNION_NAME(g.b.) sil);524 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rdi, CPUMCTX, CPUM_UNION_NAME(g.b.) dil);525 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r8, CPUMCTX, CPUM_UNION_NAME(g.b.) r8l);526 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r9, CPUMCTX, CPUM_UNION_NAME(g.b.) r9l);527 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r10, CPUMCTX, CPUM_UNION_NAME(g.b.) r10l);528 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r11, CPUMCTX, CPUM_UNION_NAME(g.b.) r11l);529 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r12, CPUMCTX, CPUM_UNION_NAME(g.b.) r12l);530 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r13, CPUMCTX, CPUM_UNION_NAME(g.b.) r13l);531 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r14, CPUMCTX, CPUM_UNION_NAME(g.b.) r14l);532 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r15, CPUMCTX, CPUM_UNION_NAME(g.b.) r15l);533 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_N AME(s.n.) es, CPUMCTX, CPUM_UNION_NAME(s.)aSRegs);488 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rax, CPUMCTX, CPUM_UNION_NM(g.) aGRegs); 489 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rax, CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw2.) r0); 490 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rcx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw2.) r1); 491 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rdx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw2.) r2); 492 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rbx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw2.) r3); 493 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rsp, CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw2.) r4); 494 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rbp, CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw2.) r5); 495 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rsi, CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw2.) r6); 496 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rdi, CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw2.) r7); 497 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rax, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) eax); 498 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rcx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) ecx); 499 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rdx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) edx); 500 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rbx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) ebx); 501 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rsp, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) esp); 502 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rbp, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) ebp); 503 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rsi, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) esi); 504 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rdi, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) edi); 505 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r8, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) r8d); 506 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r9, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) r9d); 507 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r10, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) r10d); 508 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r11, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) r11d); 509 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r12, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) r12d); 510 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r13, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) r13d); 511 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r14, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) r14d); 512 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r15, CPUMCTX, CPUM_UNION_STRUCT_NM(g,dw.) r15d); 513 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rax, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) ax); 514 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rcx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) cx); 515 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rdx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) dx); 516 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rbx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) bx); 517 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rsp, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) sp); 518 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rbp, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) bp); 519 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rsi, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) si); 520 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rdi, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) di); 521 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r8, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) r8w); 522 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r9, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) r9w); 523 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r10, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) r10w); 524 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r11, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) r11w); 525 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r12, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) r12w); 526 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r13, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) r13w); 527 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r14, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) r14w); 528 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r15, CPUMCTX, CPUM_UNION_STRUCT_NM(g,w.) r15w); 529 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rax, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) al); 530 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rcx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) cl); 531 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rdx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) dl); 532 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rbx, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) bl); 533 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rsp, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) spl); 534 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rbp, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) bpl); 535 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rsi, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) sil); 536 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rdi, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) dil); 537 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r8, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) r8l); 538 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r9, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) r9l); 539 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r10, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) r10l); 540 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r11, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) r11l); 541 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r12, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) r12l); 542 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r13, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) r13l); 543 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r14, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) r14l); 544 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r15, CPUMCTX, CPUM_UNION_STRUCT_NM(g,b.) r15l); 545 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_NM(s.) CPUM_STRUCT_NM(n.) es, CPUMCTX, CPUM_UNION_NM(s.) aSRegs); 534 546 # ifndef _MSC_VER 535 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rax, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_xAX]);536 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rcx, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_xCX]);537 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rdx, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_xDX]);538 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rbx, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_xBX]);539 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rsp, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_xSP]);540 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rbp, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_xBP]);541 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rsi, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_xSI]);542 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) rdi, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_xDI]);543 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r8, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_x8]);544 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r9, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_x9]);545 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r10, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_x10]);546 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r11, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_x11]);547 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r12, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_x12]);548 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r13, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_x13]);549 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r14, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_x14]);550 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(g.qw.) r15, CPUMCTX, CPUM_UNION_NAME(g.) aGRegs[X86_GREG_x15]);551 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(s.n.) es, CPUMCTX, CPUM_UNION_NAME(s.) aSRegs[X86_SREG_ES]);552 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(s.n.) cs, CPUMCTX, CPUM_UNION_NAME(s.) aSRegs[X86_SREG_CS]);553 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(s.n.) ss, CPUMCTX, CPUM_UNION_NAME(s.) aSRegs[X86_SREG_SS]);554 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(s.n.) ds, CPUMCTX, CPUM_UNION_NAME(s.) aSRegs[X86_SREG_DS]);555 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(s.n.) fs, CPUMCTX, CPUM_UNION_NAME(s.) aSRegs[X86_SREG_FS]);556 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_ NAME(s.n.) gs, CPUMCTX, CPUM_UNION_NAME(s.) aSRegs[X86_SREG_GS]);547 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rax, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_xAX]); 548 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rcx, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_xCX]); 549 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rdx, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_xDX]); 550 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rbx, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_xBX]); 551 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rsp, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_xSP]); 552 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rbp, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_xBP]); 553 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rsi, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_xSI]); 554 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) rdi, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_xDI]); 555 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r8, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_x8]); 556 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r9, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_x9]); 557 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r10, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_x10]); 558 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r11, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_x11]); 559 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r12, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_x12]); 560 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r13, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_x13]); 561 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r14, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_x14]); 562 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(g,qw.) r15, CPUMCTX, CPUM_UNION_NM(g.) aGRegs[X86_GREG_x15]); 563 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(s,n.) es, CPUMCTX, CPUM_UNION_NM(s.) aSRegs[X86_SREG_ES]); 564 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(s,n.) cs, CPUMCTX, CPUM_UNION_NM(s.) aSRegs[X86_SREG_CS]); 565 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(s,n.) ss, CPUMCTX, CPUM_UNION_NM(s.) aSRegs[X86_SREG_SS]); 566 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(s,n.) ds, CPUMCTX, CPUM_UNION_NM(s.) aSRegs[X86_SREG_DS]); 567 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(s,n.) fs, CPUMCTX, CPUM_UNION_NM(s.) aSRegs[X86_SREG_FS]); 568 AssertCompileMembersAtSameOffset(CPUMCTX, CPUM_UNION_STRUCT_NM(s,n.) gs, CPUMCTX, CPUM_UNION_NM(s.) aSRegs[X86_SREG_GS]); 557 569 # endif 558 570
Note:
See TracChangeset
for help on using the changeset viewer.