- Timestamp:
- Jul 6, 2016 2:57:29 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpumctx.h
r58106 r62059 72 72 X86DESCATTR Attr; 73 73 } CPUMSELREG; 74 #ifdef VBOX_FOR_DTRACE_LIB 75 AssertCompileSize(CPUMSELREG, 24) 76 #endif 74 77 75 78 /** @name CPUMSELREG_FLAGS_XXX - CPUMSELREG::fFlags values. … … 120 123 } CPUMSYSENTER; 121 124 122 /** 125 /** @def CPUM_UNION_NAME 123 126 * For compilers (like DTrace) that does not grok nameless unions, we have a 124 127 * little hack to make them palatable. … … 131 134 # define CPUM_UNION_NAME(a_Nm) 132 135 #endif 136 137 /** A general register (union). */ 138 typedef union CPUMCTXGREG 139 { 140 /** Natural unsigned integer view. */ 141 uint64_t u; 142 /** 64-bit view. */ 143 uint64_t u64; 144 /** 32-bit view. */ 145 uint32_t u32; 146 /** 16-bit view. */ 147 uint16_t u16; 148 /** 8-bit view. */ 149 uint8_t u8; 150 /** 8-bit low/high view. */ 151 struct 152 { 153 /** Low byte (al, cl, dl, bl, ++). */ 154 uint8_t bLo; 155 /** High byte in the first word - ah, ch, dh, bh. */ 156 uint8_t bHi; 157 } CPUM_UNION_NAME(s); 158 } CPUMCTXGREG; 159 #ifdef VBOX_FOR_DTRACE_LIB 160 AssertCompileSize(CPUMCTXGREG, 8); 161 AssertCompileMemberOffset(CPUMCTXGREG, CPUM_UNION_NAME(s.) bLo, 0); 162 AssertCompileMemberOffset(CPUMCTXGREG, CPUM_UNION_NAME(s.) bHi, 1); 163 #endif 164 133 165 134 166 … … 250 282 * @{ */ 251 283 252 /** @name General Register. 253 * @note These follow the encoding order (X86_GREG_XXX) and can be accessed as 254 * an array starting at rax. 255 * @{ */ 256 union 257 { 258 uint8_t al; 259 uint16_t ax; 260 uint32_t eax; 261 uint64_t rax; 262 } CPUM_UNION_NAME(rax); 263 union 264 { 265 uint8_t cl; 266 uint16_t cx; 267 uint32_t ecx; 268 uint64_t rcx; 269 } CPUM_UNION_NAME(rcx); 270 union 271 { 272 uint8_t dl; 273 uint16_t dx; 274 uint32_t edx; 275 uint64_t rdx; 276 } CPUM_UNION_NAME(rdx); 277 union 278 { 279 uint8_t bl; 280 uint16_t bx; 281 uint32_t ebx; 282 uint64_t rbx; 283 } CPUM_UNION_NAME(rbx); 284 union 285 { 286 uint16_t sp; 287 uint32_t esp; 288 uint64_t rsp; 289 } CPUM_UNION_NAME(rsp); 290 union 291 { 292 uint16_t bp; 293 uint32_t ebp; 294 uint64_t rbp; 295 } CPUM_UNION_NAME(rbp); 296 union 297 { 298 uint8_t sil; 299 uint16_t si; 300 uint32_t esi; 301 uint64_t rsi; 302 } CPUM_UNION_NAME(rsi); 303 union 304 { 305 uint8_t dil; 306 uint16_t di; 307 uint32_t edi; 308 uint64_t rdi; 309 } CPUM_UNION_NAME(rdi); 310 uint64_t r8; 311 uint64_t r9; 312 uint64_t r10; 313 uint64_t r11; 314 uint64_t r12; 315 uint64_t r13; 316 uint64_t r14; 317 uint64_t r15; 318 /** @} */ 319 320 /** @name Segment registers. 321 * @note These follow the encoding order (X86_SREG_XXX) and can be accessed as 322 * an array starting at es. 323 * @{ */ 324 CPUMSELREG es; 325 CPUMSELREG cs; 326 CPUMSELREG ss; 327 CPUMSELREG ds; 328 CPUMSELREG fs; 329 CPUMSELREG gs; 330 /** @} */ 284 /** General purpose registers. */ 285 union /* no tag! */ 286 { 287 /** The general purpose register array view, indexed by X86_GREG_XXX. */ 288 CPUMCTXGREG aGRegs[16]; 289 290 /** 64-bit general purpose register view. */ 291 struct /* no tag! */ 292 { 293 uint64_t rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15; 294 } CPUM_UNION_NAME(qw); 295 /** 64-bit general purpose register view. */ 296 struct /* no tag! */ 297 { 298 uint64_t r0, r1, r2, r3, r4, r5, r6, r7; 299 } CPUM_UNION_NAME(qw2); 300 /** 32-bit general purpose register view. */ 301 struct /* no tag! */ 302 { 303 uint32_t eax, u32Pad00, ecx, u32Pad01, edx, u32Pad02, ebx, u32Pad03, 304 esp, u32Pad04, ebp, u32Pad05, esi, u32Pad06, edi, u32Pad07, 305 r8d, u32Pad08, r9d, u32Pad09, r10d, u32Pad10, r11d, u32Pad11, 306 r12d, u32Pad12, r13d, u32Pad13, r14d, u32Pad14, r15d, u32Pad15; 307 } CPUM_UNION_NAME(dw); 308 /** 16-bit general purpose register view. */ 309 struct /* no tag! */ 310 { 311 uint16_t ax, au16Pad00[3], cx, au16Pad01[3], dx, au16Pad02[3], bx, au16Pad03[3], 312 sp, au16Pad04[3], bp, au16Pad05[3], si, au16Pad06[3], di, au16Pad07[3], 313 r8w, au16Pad08[3], r9w, au16Pad09[3], r10w, au16Pad10[3], r11w, au16Pad11[3], 314 r12w, au16Pad12[3], r13w, au16Pad13[3], r14w, au16Pad14[3], r15w, au16Pad15[3]; 315 } CPUM_UNION_NAME(w); 316 struct /* no tag! */ 317 { 318 uint8_t al, ah, abPad00[6], cl, ch, abPad01[6], dl, dh, abPad02[6], bl, bh, abPad03[6], 319 spl, abPad04[7], bpl, abPad05[7], sil, abPad06[7], dil, abPad07[7], 320 r8l, abPad08[7], r9l, abPad09[7], r10l, abPad10[7], r11l, abPad11[7], 321 r12l, abPad12[7], r13l, abPad13[7], r14l, abPad14[7], r15l, abPad15[7]; 322 } CPUM_UNION_NAME(b); 323 } CPUM_UNION_NAME(g); 324 325 /** Segment registers. */ 326 union /* no tag! */ 327 { 328 /** The segment register array view, indexed by X86_SREG_XXX. */ 329 CPUMSELREG aSRegs[6]; 330 /** The named segment register view. */ 331 struct /* no tag! */ 332 { 333 CPUMSELREG es, cs, ss, ds, fs, gs; 334 } CPUM_UNION_NAME(n); 335 } CPUM_UNION_NAME(s); 331 336 332 337 /** The program counter. */ … … 421 426 #ifndef VBOX_FOR_DTRACE_LIB 422 427 AssertCompileSizeAlignment(CPUMCTX, 64); 428 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) rax, 0); 429 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) rcx, 8); 430 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) rdx, 16); 431 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) rbx, 24); 432 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) rsp, 32); 433 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) rbp, 40); 434 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) rsi, 48); 435 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) rdi, 56); 436 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) r8, 64); 437 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) r9, 72); 438 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) r10, 80); 439 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) r11, 88); 440 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) r12, 96); 441 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) r13, 104); 442 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) r14, 112); 443 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(g.qw.) r15, 120); 444 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(s.n.) es, 128); 445 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(s.n.) cs, 152); 446 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(s.n.) ss, 176); 447 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(s.n.) ds, 200); 448 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(s.n.) fs, 224); 449 AssertCompileMemberOffset(CPUMCTX, CPUM_UNION_NAME(s.n.) gs, 248); 450 AssertCompileMemberOffset(CPUMCTX, rip, 272); 451 AssertCompileMemberOffset(CPUMCTX, rflags, 280); 452 AssertCompileMemberOffset(CPUMCTX, cr0, 288); 453 AssertCompileMemberOffset(CPUMCTX, cr2, 296); 454 AssertCompileMemberOffset(CPUMCTX, cr3, 304); 455 AssertCompileMemberOffset(CPUMCTX, cr4, 312); 456 AssertCompileMemberOffset(CPUMCTX, dr, 320); 457 AssertCompileMemberOffset(CPUMCTX, gdtr, 384+6); 458 AssertCompileMemberOffset(CPUMCTX, idtr, 400+6); 459 AssertCompileMemberOffset(CPUMCTX, ldtr, 416); 460 AssertCompileMemberOffset(CPUMCTX, tr, 440); 461 AssertCompileMemberOffset(CPUMCTX, SysEnter, 464); 462 AssertCompileMemberOffset(CPUMCTX, msrEFER, 488); 463 AssertCompileMemberOffset(CPUMCTX, msrSTAR, 496); 464 AssertCompileMemberOffset(CPUMCTX, msrPAT, 504); 465 AssertCompileMemberOffset(CPUMCTX, msrLSTAR, 512); 466 AssertCompileMemberOffset(CPUMCTX, msrCSTAR, 520); 467 AssertCompileMemberOffset(CPUMCTX, msrSFMASK, 528); 468 AssertCompileMemberOffset(CPUMCTX, msrKERNELGSBASE, 536); 469 AssertCompileMemberOffset(CPUMCTX, msrApicBase, 544); 470 AssertCompileMemberOffset(CPUMCTX, aXcr, 552); 471 AssertCompileMemberOffset(CPUMCTX, fXStateMask, 568); 472 AssertCompileMemberOffset(CPUMCTX, pXStateR0, 576); 473 AssertCompileMemberOffset(CPUMCTX, pXStateR3, HC_ARCH_BITS == 64 ? 584 : 580); 474 AssertCompileMemberOffset(CPUMCTX, pXStateRC, HC_ARCH_BITS == 64 ? 592 : 584); 475 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_NAME(s.n.) es, CPUMCTX, CPUM_UNION_NAME(s.) aSRegs); 534 # 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]); 557 # endif 423 558 424 559 /**
Note:
See TracChangeset
for help on using the changeset viewer.