Changeset 66216 in vbox
- Timestamp:
- Mar 22, 2017 11:16:35 PM (8 years ago)
- Location:
- trunk/src/VBox/ValidationKit/bootsectors
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r66206 r66216 228 228 BS3REGCTX aInitialCtxs[4]; 229 229 230 /** The extended context. */ 231 PBS3EXTCTX pExtCtx; 232 /** The initial extended context. */ 233 PBS3EXTCTX pInitialExtCtx; 234 230 235 /** Memory operand scratch space. */ 231 236 union … … 380 385 /* [BS3CG1DST_OZ_R15] = */ BS3CG1DSTSIZE_OPERAND_SIZE_GRP, 381 386 387 /* [BS3CG1DST_FCW] = */ 2, 388 /* [BS3CG1DST_FSW] = */ 2, 389 /* [BS3CG1DST_FTW] = */ 2, 390 /* [BS3CG1DST_FOP] = */ 2, 391 /* [BS3CG1DST_FPUIP] = */ 2, 392 /* [BS3CG1DST_FPUCS] = */ 2, 393 /* [BS3CG1DST_FPUDP] = */ 2, 394 /* [BS3CG1DST_FPUDS] = */ 2, 395 /* [BS3CG1DST_MXCSR] = */ 4, 396 /* [BS3CG1DST_MXCSR_MASK] = */ 4, 397 /* [BS3CG1DST_ST0] = */ 12, 398 /* [BS3CG1DST_ST1] = */ 12, 399 /* [BS3CG1DST_ST2] = */ 12, 400 /* [BS3CG1DST_ST3] = */ 12, 401 /* [BS3CG1DST_ST4] = */ 12, 402 /* [BS3CG1DST_ST5] = */ 12, 403 /* [BS3CG1DST_ST6] = */ 12, 404 /* [BS3CG1DST_ST7] = */ 12, 405 /* [BS3CG1DST_MM0] = */ 8, 406 /* [BS3CG1DST_MM1] = */ 8, 407 /* [BS3CG1DST_MM2] = */ 8, 408 /* [BS3CG1DST_MM3] = */ 8, 409 /* [BS3CG1DST_MM4] = */ 8, 410 /* [BS3CG1DST_MM5] = */ 8, 411 /* [BS3CG1DST_MM6] = */ 8, 412 /* [BS3CG1DST_MM7] = */ 8, 413 /* [BS3CG1DST_XMM0] = */ 16, 414 /* [BS3CG1DST_XMM1] = */ 16, 415 /* [BS3CG1DST_XMM2] = */ 16, 416 /* [BS3CG1DST_XMM3] = */ 16, 417 /* [BS3CG1DST_XMM4] = */ 16, 418 /* [BS3CG1DST_XMM5] = */ 16, 419 /* [BS3CG1DST_XMM6] = */ 16, 420 /* [BS3CG1DST_XMM7] = */ 16, 421 /* [BS3CG1DST_XMM8] = */ 16, 422 /* [BS3CG1DST_XMM9] = */ 16, 423 /* [BS3CG1DST_XMM10] = */ 16, 424 /* [BS3CG1DST_XMM11] = */ 16, 425 /* [BS3CG1DST_XMM12] = */ 16, 426 /* [BS3CG1DST_XMM13] = */ 16, 427 /* [BS3CG1DST_XMM14] = */ 16, 428 /* [BS3CG1DST_XMM15] = */ 16, 429 /* [BS3CG1DST_YMM0] = */ 32, 430 /* [BS3CG1DST_YMM1] = */ 32, 431 /* [BS3CG1DST_YMM2] = */ 32, 432 /* [BS3CG1DST_YMM3] = */ 32, 433 /* [BS3CG1DST_YMM4] = */ 32, 434 /* [BS3CG1DST_YMM5] = */ 32, 435 /* [BS3CG1DST_YMM6] = */ 32, 436 /* [BS3CG1DST_YMM7] = */ 32, 437 /* [BS3CG1DST_YMM8] = */ 32, 438 /* [BS3CG1DST_YMM9] = */ 32, 439 /* [BS3CG1DST_YMM10] = */ 32, 440 /* [BS3CG1DST_YMM11] = */ 32, 441 /* [BS3CG1DST_YMM12] = */ 32, 442 /* [BS3CG1DST_YMM13] = */ 32, 443 /* [BS3CG1DST_YMM14] = */ 32, 444 /* [BS3CG1DST_YMM15] = */ 32, 445 382 446 /* [BS3CG1DST_VALUE_XCPT] = */ 1, 383 384 447 }; 448 AssertCompile(RT_ELEMENTS(g_acbBs3Cg1DstFields) == BS3CG1DST_END); 385 449 386 450 /** Destination field offset indexed by bBS3CG1DST. … … 388 452 static const unsigned g_aoffBs3Cg1DstFields[] = 389 453 { 390 /* [BS3CG1DST_INVALID] = */ ~0U, 391 /* [BS3CG1DST_OP1] = */ ~0U, 392 /* [BS3CG1DST_OP2] = */ ~0U, 393 /* [BS3CG1DST_OP3] = */ ~0U, 394 /* [BS3CG1DST_OP4] = */ ~0U, 395 /* [BS3CG1DST_EFL] = */ RT_OFFSETOF(BS3REGCTX, rflags), 396 /* [BS3CG1DST_EFL_UNDEF]=*/ ~0, /* special field */ 397 398 /* [BS3CG1DST_AL] = */ RT_OFFSETOF(BS3REGCTX, rax.u8), 399 /* [BS3CG1DST_CL] = */ RT_OFFSETOF(BS3REGCTX, rcx.u8), 400 /* [BS3CG1DST_DL] = */ RT_OFFSETOF(BS3REGCTX, rdx.u8), 401 /* [BS3CG1DST_BL] = */ RT_OFFSETOF(BS3REGCTX, rbx.u8), 402 /* [BS3CG1DST_AH] = */ RT_OFFSETOF(BS3REGCTX, rax.b.bHi), 403 /* [BS3CG1DST_CH] = */ RT_OFFSETOF(BS3REGCTX, rcx.b.bHi), 404 /* [BS3CG1DST_DH] = */ RT_OFFSETOF(BS3REGCTX, rdx.b.bHi), 405 /* [BS3CG1DST_BH] = */ RT_OFFSETOF(BS3REGCTX, rbx.b.bHi), 406 /* [BS3CG1DST_SPL] = */ RT_OFFSETOF(BS3REGCTX, rsp.u8), 407 /* [BS3CG1DST_BPL] = */ RT_OFFSETOF(BS3REGCTX, rbp.u8), 408 /* [BS3CG1DST_SIL] = */ RT_OFFSETOF(BS3REGCTX, rsi.u8), 409 /* [BS3CG1DST_DIL] = */ RT_OFFSETOF(BS3REGCTX, rdi.u8), 410 /* [BS3CG1DST_R8L] = */ RT_OFFSETOF(BS3REGCTX, r8.u8), 411 /* [BS3CG1DST_R9L] = */ RT_OFFSETOF(BS3REGCTX, r9.u8), 412 /* [BS3CG1DST_R10L] = */ RT_OFFSETOF(BS3REGCTX, r10.u8), 413 /* [BS3CG1DST_R11L] = */ RT_OFFSETOF(BS3REGCTX, r11.u8), 414 /* [BS3CG1DST_R12L] = */ RT_OFFSETOF(BS3REGCTX, r12.u8), 415 /* [BS3CG1DST_R13L] = */ RT_OFFSETOF(BS3REGCTX, r13.u8), 416 /* [BS3CG1DST_R14L] = */ RT_OFFSETOF(BS3REGCTX, r14.u8), 417 /* [BS3CG1DST_R15L] = */ RT_OFFSETOF(BS3REGCTX, r15.u8), 418 419 /* [BS3CG1DST_AX] = */ RT_OFFSETOF(BS3REGCTX, rax.u16), 420 /* [BS3CG1DST_CX] = */ RT_OFFSETOF(BS3REGCTX, rcx.u16), 421 /* [BS3CG1DST_DX] = */ RT_OFFSETOF(BS3REGCTX, rdx.u16), 422 /* [BS3CG1DST_BX] = */ RT_OFFSETOF(BS3REGCTX, rbx.u16), 423 /* [BS3CG1DST_SP] = */ RT_OFFSETOF(BS3REGCTX, rsp.u16), 424 /* [BS3CG1DST_BP] = */ RT_OFFSETOF(BS3REGCTX, rbp.u16), 425 /* [BS3CG1DST_SI] = */ RT_OFFSETOF(BS3REGCTX, rsi.u16), 426 /* [BS3CG1DST_DI] = */ RT_OFFSETOF(BS3REGCTX, rdi.u16), 427 /* [BS3CG1DST_R8W] = */ RT_OFFSETOF(BS3REGCTX, r8.u16), 428 /* [BS3CG1DST_R9W] = */ RT_OFFSETOF(BS3REGCTX, r9.u16), 429 /* [BS3CG1DST_R10W] = */ RT_OFFSETOF(BS3REGCTX, r10.u16), 430 /* [BS3CG1DST_R11W] = */ RT_OFFSETOF(BS3REGCTX, r11.u16), 431 /* [BS3CG1DST_R12W] = */ RT_OFFSETOF(BS3REGCTX, r12.u16), 432 /* [BS3CG1DST_R13W] = */ RT_OFFSETOF(BS3REGCTX, r13.u16), 433 /* [BS3CG1DST_R14W] = */ RT_OFFSETOF(BS3REGCTX, r14.u16), 434 /* [BS3CG1DST_R15W] = */ RT_OFFSETOF(BS3REGCTX, r15.u16), 435 436 /* [BS3CG1DST_EAX] = */ RT_OFFSETOF(BS3REGCTX, rax.u32), 437 /* [BS3CG1DST_ECX] = */ RT_OFFSETOF(BS3REGCTX, rcx.u32), 438 /* [BS3CG1DST_EDX] = */ RT_OFFSETOF(BS3REGCTX, rdx.u32), 439 /* [BS3CG1DST_EBX] = */ RT_OFFSETOF(BS3REGCTX, rbx.u32), 440 /* [BS3CG1DST_ESP] = */ RT_OFFSETOF(BS3REGCTX, rsp.u32), 441 /* [BS3CG1DST_EBP] = */ RT_OFFSETOF(BS3REGCTX, rbp.u32), 442 /* [BS3CG1DST_ESI] = */ RT_OFFSETOF(BS3REGCTX, rsi.u32), 443 /* [BS3CG1DST_EDI] = */ RT_OFFSETOF(BS3REGCTX, rdi.u32), 444 /* [BS3CG1DST_R8D] = */ RT_OFFSETOF(BS3REGCTX, r8.u32), 445 /* [BS3CG1DST_R9D] = */ RT_OFFSETOF(BS3REGCTX, r9.u32), 446 /* [BS3CG1DST_R10D] = */ RT_OFFSETOF(BS3REGCTX, r10.u32), 447 /* [BS3CG1DST_R11D] = */ RT_OFFSETOF(BS3REGCTX, r11.u32), 448 /* [BS3CG1DST_R12D] = */ RT_OFFSETOF(BS3REGCTX, r12.u32), 449 /* [BS3CG1DST_R13D] = */ RT_OFFSETOF(BS3REGCTX, r13.u32), 450 /* [BS3CG1DST_R14D] = */ RT_OFFSETOF(BS3REGCTX, r14.u32), 451 /* [BS3CG1DST_R15D] = */ RT_OFFSETOF(BS3REGCTX, r15.u32), 452 453 /* [BS3CG1DST_RAX] = */ RT_OFFSETOF(BS3REGCTX, rax.u64), 454 /* [BS3CG1DST_RCX] = */ RT_OFFSETOF(BS3REGCTX, rcx.u64), 455 /* [BS3CG1DST_RDX] = */ RT_OFFSETOF(BS3REGCTX, rdx.u64), 456 /* [BS3CG1DST_RBX] = */ RT_OFFSETOF(BS3REGCTX, rbx.u64), 457 /* [BS3CG1DST_RSP] = */ RT_OFFSETOF(BS3REGCTX, rsp.u64), 458 /* [BS3CG1DST_RBP] = */ RT_OFFSETOF(BS3REGCTX, rbp.u64), 459 /* [BS3CG1DST_RSI] = */ RT_OFFSETOF(BS3REGCTX, rsi.u64), 460 /* [BS3CG1DST_RDI] = */ RT_OFFSETOF(BS3REGCTX, rdi.u64), 461 /* [BS3CG1DST_R8] = */ RT_OFFSETOF(BS3REGCTX, r8.u64), 462 /* [BS3CG1DST_R9] = */ RT_OFFSETOF(BS3REGCTX, r9.u64), 463 /* [BS3CG1DST_R10] = */ RT_OFFSETOF(BS3REGCTX, r10.u64), 464 /* [BS3CG1DST_R11] = */ RT_OFFSETOF(BS3REGCTX, r11.u64), 465 /* [BS3CG1DST_R12] = */ RT_OFFSETOF(BS3REGCTX, r12.u64), 466 /* [BS3CG1DST_R13] = */ RT_OFFSETOF(BS3REGCTX, r13.u64), 467 /* [BS3CG1DST_R14] = */ RT_OFFSETOF(BS3REGCTX, r14.u64), 468 /* [BS3CG1DST_R15] = */ RT_OFFSETOF(BS3REGCTX, r15.u64), 469 470 /* [BS3CG1DST_OZ_RAX] = */ RT_OFFSETOF(BS3REGCTX, rax), 471 /* [BS3CG1DST_OZ_RCX] = */ RT_OFFSETOF(BS3REGCTX, rcx), 472 /* [BS3CG1DST_OZ_RDX] = */ RT_OFFSETOF(BS3REGCTX, rdx), 473 /* [BS3CG1DST_OZ_RBX] = */ RT_OFFSETOF(BS3REGCTX, rbx), 474 /* [BS3CG1DST_OZ_RSP] = */ RT_OFFSETOF(BS3REGCTX, rsp), 475 /* [BS3CG1DST_OZ_RBP] = */ RT_OFFSETOF(BS3REGCTX, rbp), 476 /* [BS3CG1DST_OZ_RSI] = */ RT_OFFSETOF(BS3REGCTX, rsi), 477 /* [BS3CG1DST_OZ_RDI] = */ RT_OFFSETOF(BS3REGCTX, rdi), 478 /* [BS3CG1DST_OZ_R8] = */ RT_OFFSETOF(BS3REGCTX, r8), 479 /* [BS3CG1DST_OZ_R9] = */ RT_OFFSETOF(BS3REGCTX, r9), 480 /* [BS3CG1DST_OZ_R10] = */ RT_OFFSETOF(BS3REGCTX, r10), 481 /* [BS3CG1DST_OZ_R11] = */ RT_OFFSETOF(BS3REGCTX, r11), 482 /* [BS3CG1DST_OZ_R12] = */ RT_OFFSETOF(BS3REGCTX, r12), 483 /* [BS3CG1DST_OZ_R13] = */ RT_OFFSETOF(BS3REGCTX, r13), 484 /* [BS3CG1DST_OZ_R14] = */ RT_OFFSETOF(BS3REGCTX, r14), 485 /* [BS3CG1DST_OZ_R15] = */ RT_OFFSETOF(BS3REGCTX, r15), 486 487 /* [BS3CG1DST_VALUE_XCPT] = */ ~0U, 454 /* [BS3CG1DST_INVALID] = */ ~0U, 455 /* [BS3CG1DST_OP1] = */ ~0U, 456 /* [BS3CG1DST_OP2] = */ ~0U, 457 /* [BS3CG1DST_OP3] = */ ~0U, 458 /* [BS3CG1DST_OP4] = */ ~0U, 459 /* [BS3CG1DST_EFL] = */ RT_OFFSETOF(BS3REGCTX, rflags), 460 /* [BS3CG1DST_EFL_UNDEF]=*/ ~0, /* special field */ 461 462 /* [BS3CG1DST_AL] = */ RT_OFFSETOF(BS3REGCTX, rax.u8), 463 /* [BS3CG1DST_CL] = */ RT_OFFSETOF(BS3REGCTX, rcx.u8), 464 /* [BS3CG1DST_DL] = */ RT_OFFSETOF(BS3REGCTX, rdx.u8), 465 /* [BS3CG1DST_BL] = */ RT_OFFSETOF(BS3REGCTX, rbx.u8), 466 /* [BS3CG1DST_AH] = */ RT_OFFSETOF(BS3REGCTX, rax.b.bHi), 467 /* [BS3CG1DST_CH] = */ RT_OFFSETOF(BS3REGCTX, rcx.b.bHi), 468 /* [BS3CG1DST_DH] = */ RT_OFFSETOF(BS3REGCTX, rdx.b.bHi), 469 /* [BS3CG1DST_BH] = */ RT_OFFSETOF(BS3REGCTX, rbx.b.bHi), 470 /* [BS3CG1DST_SPL] = */ RT_OFFSETOF(BS3REGCTX, rsp.u8), 471 /* [BS3CG1DST_BPL] = */ RT_OFFSETOF(BS3REGCTX, rbp.u8), 472 /* [BS3CG1DST_SIL] = */ RT_OFFSETOF(BS3REGCTX, rsi.u8), 473 /* [BS3CG1DST_DIL] = */ RT_OFFSETOF(BS3REGCTX, rdi.u8), 474 /* [BS3CG1DST_R8L] = */ RT_OFFSETOF(BS3REGCTX, r8.u8), 475 /* [BS3CG1DST_R9L] = */ RT_OFFSETOF(BS3REGCTX, r9.u8), 476 /* [BS3CG1DST_R10L] = */ RT_OFFSETOF(BS3REGCTX, r10.u8), 477 /* [BS3CG1DST_R11L] = */ RT_OFFSETOF(BS3REGCTX, r11.u8), 478 /* [BS3CG1DST_R12L] = */ RT_OFFSETOF(BS3REGCTX, r12.u8), 479 /* [BS3CG1DST_R13L] = */ RT_OFFSETOF(BS3REGCTX, r13.u8), 480 /* [BS3CG1DST_R14L] = */ RT_OFFSETOF(BS3REGCTX, r14.u8), 481 /* [BS3CG1DST_R15L] = */ RT_OFFSETOF(BS3REGCTX, r15.u8), 482 483 /* [BS3CG1DST_AX] = */ RT_OFFSETOF(BS3REGCTX, rax.u16), 484 /* [BS3CG1DST_CX] = */ RT_OFFSETOF(BS3REGCTX, rcx.u16), 485 /* [BS3CG1DST_DX] = */ RT_OFFSETOF(BS3REGCTX, rdx.u16), 486 /* [BS3CG1DST_BX] = */ RT_OFFSETOF(BS3REGCTX, rbx.u16), 487 /* [BS3CG1DST_SP] = */ RT_OFFSETOF(BS3REGCTX, rsp.u16), 488 /* [BS3CG1DST_BP] = */ RT_OFFSETOF(BS3REGCTX, rbp.u16), 489 /* [BS3CG1DST_SI] = */ RT_OFFSETOF(BS3REGCTX, rsi.u16), 490 /* [BS3CG1DST_DI] = */ RT_OFFSETOF(BS3REGCTX, rdi.u16), 491 /* [BS3CG1DST_R8W] = */ RT_OFFSETOF(BS3REGCTX, r8.u16), 492 /* [BS3CG1DST_R9W] = */ RT_OFFSETOF(BS3REGCTX, r9.u16), 493 /* [BS3CG1DST_R10W] = */ RT_OFFSETOF(BS3REGCTX, r10.u16), 494 /* [BS3CG1DST_R11W] = */ RT_OFFSETOF(BS3REGCTX, r11.u16), 495 /* [BS3CG1DST_R12W] = */ RT_OFFSETOF(BS3REGCTX, r12.u16), 496 /* [BS3CG1DST_R13W] = */ RT_OFFSETOF(BS3REGCTX, r13.u16), 497 /* [BS3CG1DST_R14W] = */ RT_OFFSETOF(BS3REGCTX, r14.u16), 498 /* [BS3CG1DST_R15W] = */ RT_OFFSETOF(BS3REGCTX, r15.u16), 499 500 /* [BS3CG1DST_EAX] = */ RT_OFFSETOF(BS3REGCTX, rax.u32), 501 /* [BS3CG1DST_ECX] = */ RT_OFFSETOF(BS3REGCTX, rcx.u32), 502 /* [BS3CG1DST_EDX] = */ RT_OFFSETOF(BS3REGCTX, rdx.u32), 503 /* [BS3CG1DST_EBX] = */ RT_OFFSETOF(BS3REGCTX, rbx.u32), 504 /* [BS3CG1DST_ESP] = */ RT_OFFSETOF(BS3REGCTX, rsp.u32), 505 /* [BS3CG1DST_EBP] = */ RT_OFFSETOF(BS3REGCTX, rbp.u32), 506 /* [BS3CG1DST_ESI] = */ RT_OFFSETOF(BS3REGCTX, rsi.u32), 507 /* [BS3CG1DST_EDI] = */ RT_OFFSETOF(BS3REGCTX, rdi.u32), 508 /* [BS3CG1DST_R8D] = */ RT_OFFSETOF(BS3REGCTX, r8.u32), 509 /* [BS3CG1DST_R9D] = */ RT_OFFSETOF(BS3REGCTX, r9.u32), 510 /* [BS3CG1DST_R10D] = */ RT_OFFSETOF(BS3REGCTX, r10.u32), 511 /* [BS3CG1DST_R11D] = */ RT_OFFSETOF(BS3REGCTX, r11.u32), 512 /* [BS3CG1DST_R12D] = */ RT_OFFSETOF(BS3REGCTX, r12.u32), 513 /* [BS3CG1DST_R13D] = */ RT_OFFSETOF(BS3REGCTX, r13.u32), 514 /* [BS3CG1DST_R14D] = */ RT_OFFSETOF(BS3REGCTX, r14.u32), 515 /* [BS3CG1DST_R15D] = */ RT_OFFSETOF(BS3REGCTX, r15.u32), 516 517 /* [BS3CG1DST_RAX] = */ RT_OFFSETOF(BS3REGCTX, rax.u64), 518 /* [BS3CG1DST_RCX] = */ RT_OFFSETOF(BS3REGCTX, rcx.u64), 519 /* [BS3CG1DST_RDX] = */ RT_OFFSETOF(BS3REGCTX, rdx.u64), 520 /* [BS3CG1DST_RBX] = */ RT_OFFSETOF(BS3REGCTX, rbx.u64), 521 /* [BS3CG1DST_RSP] = */ RT_OFFSETOF(BS3REGCTX, rsp.u64), 522 /* [BS3CG1DST_RBP] = */ RT_OFFSETOF(BS3REGCTX, rbp.u64), 523 /* [BS3CG1DST_RSI] = */ RT_OFFSETOF(BS3REGCTX, rsi.u64), 524 /* [BS3CG1DST_RDI] = */ RT_OFFSETOF(BS3REGCTX, rdi.u64), 525 /* [BS3CG1DST_R8] = */ RT_OFFSETOF(BS3REGCTX, r8.u64), 526 /* [BS3CG1DST_R9] = */ RT_OFFSETOF(BS3REGCTX, r9.u64), 527 /* [BS3CG1DST_R10] = */ RT_OFFSETOF(BS3REGCTX, r10.u64), 528 /* [BS3CG1DST_R11] = */ RT_OFFSETOF(BS3REGCTX, r11.u64), 529 /* [BS3CG1DST_R12] = */ RT_OFFSETOF(BS3REGCTX, r12.u64), 530 /* [BS3CG1DST_R13] = */ RT_OFFSETOF(BS3REGCTX, r13.u64), 531 /* [BS3CG1DST_R14] = */ RT_OFFSETOF(BS3REGCTX, r14.u64), 532 /* [BS3CG1DST_R15] = */ RT_OFFSETOF(BS3REGCTX, r15.u64), 533 534 /* [BS3CG1DST_OZ_RAX] = */ RT_OFFSETOF(BS3REGCTX, rax), 535 /* [BS3CG1DST_OZ_RCX] = */ RT_OFFSETOF(BS3REGCTX, rcx), 536 /* [BS3CG1DST_OZ_RDX] = */ RT_OFFSETOF(BS3REGCTX, rdx), 537 /* [BS3CG1DST_OZ_RBX] = */ RT_OFFSETOF(BS3REGCTX, rbx), 538 /* [BS3CG1DST_OZ_RSP] = */ RT_OFFSETOF(BS3REGCTX, rsp), 539 /* [BS3CG1DST_OZ_RBP] = */ RT_OFFSETOF(BS3REGCTX, rbp), 540 /* [BS3CG1DST_OZ_RSI] = */ RT_OFFSETOF(BS3REGCTX, rsi), 541 /* [BS3CG1DST_OZ_RDI] = */ RT_OFFSETOF(BS3REGCTX, rdi), 542 /* [BS3CG1DST_OZ_R8] = */ RT_OFFSETOF(BS3REGCTX, r8), 543 /* [BS3CG1DST_OZ_R9] = */ RT_OFFSETOF(BS3REGCTX, r9), 544 /* [BS3CG1DST_OZ_R10] = */ RT_OFFSETOF(BS3REGCTX, r10), 545 /* [BS3CG1DST_OZ_R11] = */ RT_OFFSETOF(BS3REGCTX, r11), 546 /* [BS3CG1DST_OZ_R12] = */ RT_OFFSETOF(BS3REGCTX, r12), 547 /* [BS3CG1DST_OZ_R13] = */ RT_OFFSETOF(BS3REGCTX, r13), 548 /* [BS3CG1DST_OZ_R14] = */ RT_OFFSETOF(BS3REGCTX, r14), 549 /* [BS3CG1DST_OZ_R15] = */ RT_OFFSETOF(BS3REGCTX, r15), 550 551 /* [BS3CG1DST_FCW] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.FCW), 552 /* [BS3CG1DST_FSW] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.FSW), 553 /* [BS3CG1DST_FTW] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.FTW), 554 /* [BS3CG1DST_FOP] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.FOP), 555 /* [BS3CG1DST_FPUIP] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.FPUIP), 556 /* [BS3CG1DST_FPUCS] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.CS), 557 /* [BS3CG1DST_FPUDP] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.FPUDP), 558 /* [BS3CG1DST_FPUDS] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.DS), 559 /* [BS3CG1DST_MXCSR] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.MXCSR), 560 /* [BS3CG1DST_MXCSR_MASK] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.MXCSR_MASK), 561 /* [BS3CG1DST_ST0] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[0]), 562 /* [BS3CG1DST_ST1] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[1]), 563 /* [BS3CG1DST_ST2] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[2]), 564 /* [BS3CG1DST_ST3] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[3]), 565 /* [BS3CG1DST_ST4] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[4]), 566 /* [BS3CG1DST_ST5] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[5]), 567 /* [BS3CG1DST_ST6] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[6]), 568 /* [BS3CG1DST_ST7] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[7]), 569 /* [BS3CG1DST_MM0] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[0]), 570 /* [BS3CG1DST_MM1] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[1]), 571 /* [BS3CG1DST_MM2] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[2]), 572 /* [BS3CG1DST_MM3] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[3]), 573 /* [BS3CG1DST_MM4] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[4]), 574 /* [BS3CG1DST_MM5] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[5]), 575 /* [BS3CG1DST_MM6] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[6]), 576 /* [BS3CG1DST_MM7] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aRegs[7]), 577 /* [BS3CG1DST_XMM0] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[0]), 578 /* [BS3CG1DST_XMM1] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[1]), 579 /* [BS3CG1DST_XMM2] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[2]), 580 /* [BS3CG1DST_XMM3] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[3]), 581 /* [BS3CG1DST_XMM4] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[4]), 582 /* [BS3CG1DST_XMM5] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[5]), 583 /* [BS3CG1DST_XMM6] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[6]), 584 /* [BS3CG1DST_XMM7] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[7]), 585 /* [BS3CG1DST_XMM8] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[8]), 586 /* [BS3CG1DST_XMM9] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[9]), 587 /* [BS3CG1DST_XMM10] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[10]), 588 /* [BS3CG1DST_XMM11] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[11]), 589 /* [BS3CG1DST_XMM12] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[12]), 590 /* [BS3CG1DST_XMM13] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[13]), 591 /* [BS3CG1DST_XMM14] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[14]), 592 /* [BS3CG1DST_XMM15] = */ sizeof(BS3REGCTX) + RT_OFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[15]), 593 /* [BS3CG1DST_YMM0] = */ ~0U, 594 /* [BS3CG1DST_YMM1] = */ ~0U, 595 /* [BS3CG1DST_YMM2] = */ ~0U, 596 /* [BS3CG1DST_YMM3] = */ ~0U, 597 /* [BS3CG1DST_YMM4] = */ ~0U, 598 /* [BS3CG1DST_YMM5] = */ ~0U, 599 /* [BS3CG1DST_YMM6] = */ ~0U, 600 /* [BS3CG1DST_YMM7] = */ ~0U, 601 /* [BS3CG1DST_YMM8] = */ ~0U, 602 /* [BS3CG1DST_YMM9] = */ ~0U, 603 /* [BS3CG1DST_YMM10] = */ ~0U, 604 /* [BS3CG1DST_YMM11] = */ ~0U, 605 /* [BS3CG1DST_YMM12] = */ ~0U, 606 /* [BS3CG1DST_YMM13] = */ ~0U, 607 /* [BS3CG1DST_YMM14] = */ ~0U, 608 /* [BS3CG1DST_YMM15] = */ ~0U, 609 610 /* [BS3CG1DST_VALUE_XCPT] = */ ~0U, 488 611 }; 612 AssertCompile(RT_ELEMENTS(g_aoffBs3Cg1DstFields) == BS3CG1DST_END); 489 613 490 614 #ifdef BS3CG1_DEBUG_CTX_MOD … … 589 713 { "OZ_R15" }, 590 714 715 { "FCW" }, 716 { "FSW" }, 717 { "FTW" }, 718 { "FOP" }, 719 { "FPUIP" }, 720 { "FPUCS" }, 721 { "FPUDP" }, 722 { "FPUDS" }, 723 { "MXCSR" }, 724 { "MXCSR_M" }, 725 { "ST0" }, 726 { "ST1" }, 727 { "ST2" }, 728 { "ST3" }, 729 { "ST4" }, 730 { "ST5" }, 731 { "ST6" }, 732 { "ST7" }, 733 { "MM0" }, 734 { "MM1" }, 735 { "MM2" }, 736 { "MM3" }, 737 { "MM4" }, 738 { "MM5" }, 739 { "MM6" }, 740 { "MM7" }, 741 { "XMM0" }, 742 { "XMM1" }, 743 { "XMM2" }, 744 { "XMM3" }, 745 { "XMM4" }, 746 { "XMM5" }, 747 { "XMM6" }, 748 { "XMM7" }, 749 { "XMM8" }, 750 { "XMM9" }, 751 { "XMM10" }, 752 { "XMM11" }, 753 { "XMM12" }, 754 { "XMM13" }, 755 { "XMM14" }, 756 { "XMM15" }, 757 { "YMM0" }, 758 { "YMM1" }, 759 { "YMM2" }, 760 { "YMM3" }, 761 { "YMM4" }, 762 { "YMM5" }, 763 { "YMM6" }, 764 { "YMM7" }, 765 { "YMM8" }, 766 { "YMM9" }, 767 { "YMM10" }, 768 { "YMM11" }, 769 { "YMM12" }, 770 { "YMM13" }, 771 { "YMM14" }, 772 { "YMM15" }, 773 591 774 { "VALXCPT" }, 592 775 }; 776 AssertCompile(RT_ELEMENTS(g_aszBs3Cg1DstFields) == BS3CG1DST_END); 593 777 594 778 #endif … … 870 1054 break; 871 1055 1056 case BS3CG1ENC_MODRM_Wsd_Vsd: 1057 if (iEncoding == 0) 1058 { 1059 off = Bs3Cg1InsertOpcodes(pThis, 0); 1060 pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0); 1061 pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_XMM0; 1062 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1; 1063 } 1064 else 1065 break; 1066 pThis->cbCurInstr = off; 1067 iEncoding++; 1068 break; 1069 1070 872 1071 case BS3CG1ENC_MODRM_Gv_Ma: 873 1072 cbOp = BS3_MODE_IS_16BIT_CODE(pThis->bMode) ? 2 : 4; … … 1063 1262 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_MEM; 1064 1263 pThis->aOperands[1].idxField = BS3CG1DST_INVALID; 1264 break; 1265 1266 case BS3CG1ENC_MODRM_Wsd_Vsd: 1267 pThis->iRmOp = 0; 1268 pThis->iRegOp = 1; 1269 pThis->aOperands[0].cbOp = 16; 1270 pThis->aOperands[1].cbOp = 16; 1271 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 1272 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 1065 1273 break; 1066 1274 … … 1301 1509 unsigned cbDst; 1302 1510 BS3CG1DST idxField; 1511 BS3PTRUNION PtrField; 1303 1512 1304 1513 /* Expand the destiation field (can be escaped). */ … … 1384 1593 { 1385 1594 unsigned const offField = g_aoffBs3Cg1DstFields[idxField]; 1386 BS3PTRUNION PtrField;1387 1595 1388 1596 /* … … 1471 1679 PtrField.pu8 = &pThis->bValueXcpt; 1472 1680 } 1473 /// @todo else if (idxField <= BS3CG1DST_OP4) 1474 /// @todo { 1475 /// @todo 1476 /// @todo } 1681 /* FPU and FXSAVE format. */ 1682 else if ( pThis->pExtCtx->enmMethod != BS3EXTCTXMETHOD_ANCIENT 1683 && offField - sizeof(BS3REGCTX) <= RT_UOFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[15]) ) 1684 PtrField.pb = (uint8_t *)pThis->pExtCtx + offField - sizeof(BS3REGCTX); 1685 /** @todo other FPU fields and FPU state formats. */ 1477 1686 else 1478 1687 return Bs3TestFailedF("Todo implement me: cbDst=%u idxField=%d offField=%#x", cbDst, idxField, offField); … … 1574 1783 */ 1575 1784 else 1576 return Bs3TestFailedF("TODO: Implement me: cbDst=%u idxField=%d", cbDst, idxField); 1785 { 1786 union 1787 { 1788 X86FPUREG FpuReg; 1789 X86XMMREG XmmReg; 1790 X86YMMREG YmmReg; 1791 X86ZMMREG ZmmReg; 1792 uint8_t ab[sizeof(X86ZMMREG)]; 1793 uint32_t au32[sizeof(X86ZMMREG) / sizeof(uint32_t)]; 1794 } Value; 1795 unsigned const offField = g_aoffBs3Cg1DstFields[idxField]; 1796 1797 /* Copy the value into the union, doing the zero padding / extending. */ 1798 Bs3MemCpy(&Value, pbCode, cbValue); 1799 if (cbValue < sizeof(Value)) 1800 { 1801 if ((bOpcode & BS3CG1_CTXOP_SIGN_EXT) && (Value.ab[cbValue - 1] & 0x80)) 1802 Bs3MemSet(&Value.ab[cbValue], 0xff, sizeof(Value) - cbValue); 1803 else 1804 Bs3MemSet(&Value.ab[cbValue], 0x00, sizeof(Value) - cbValue); 1805 } 1806 1807 /* Optimized access to XMM and STx registers. */ 1808 if ( pThis->pExtCtx->enmMethod != BS3EXTCTXMETHOD_ANCIENT 1809 && offField - sizeof(BS3REGCTX) <= RT_UOFFSETOF(BS3EXTCTX, Ctx.x87.aXMM[15]) ) 1810 { 1811 /* Modify the field. */ 1812 unsigned i; 1813 if (cbDst & 3) 1814 return Bs3TestFailedF("Malformed context instruction: cbDst=%u, multiple of 4", cbDst); 1815 1816 PtrField.pb = (uint8_t *)pThis->pExtCtx + offField - sizeof(BS3REGCTX); 1817 i = cbDst / 4; 1818 while (i-- > 0) 1819 { 1820 switch (bOpcode & BS3CG1_CTXOP_OPERATOR_MASK) 1821 { 1822 case BS3CG1_CTXOP_ASSIGN: PtrField.pu32[i] = Value.au32[i]; break; 1823 case BS3CG1_CTXOP_OR: PtrField.pu32[i] |= Value.au32[i]; break; 1824 case BS3CG1_CTXOP_AND: PtrField.pu32[i] &= Value.au32[i]; break; 1825 case BS3CG1_CTXOP_AND_INV: PtrField.pu32[i] &= ~Value.au32[i]; break; 1826 } 1827 } 1828 } 1829 /* The YMM (AVX) and the first 16 ZMM (AVX512) registers have split storage in 1830 the state, so they need special handling. */ 1831 else 1832 return Bs3TestFailedF("TODO: implement me: cbDst=%d idxField=%d (AVX and other weird state)", cbDst, idxField); 1833 1834 } 1577 1835 1578 1836 /* … … 1811 2069 Bs3MemFree(pThis->pbDataPg, X86_PAGE_SIZE); 1812 2070 } 2071 Bs3ExtCtxFree(pThis->pExtCtx); 2072 Bs3ExtCtxFree(pThis->pInitialExtCtx); 1813 2073 } 1814 2074 … … 1839 2099 pThis->fAdvanceMnemonic = 1; 1840 2100 2101 /* Allocate extended context structures. */ 2102 pThis->pExtCtx = Bs3ExtCtxAlloc(0, BS3MEMKIND_TILED); 2103 pThis->pInitialExtCtx = Bs3ExtCtxAlloc(0, BS3MEMKIND_TILED); 2104 if (!pThis->pExtCtx || !pThis->pInitialExtCtx) 2105 return Bs3TestFailed("Bs3ExtCtxAlloc failed"); 2106 1841 2107 /* Allocate guarded exectuable and data memory. */ 1842 2108 if (BS3_MODE_IS_PAGED(bMode)) … … 1848 2114 pThis->pbDataPg = Bs3MemGuardedTestPageAlloc(enmMemKind); 1849 2115 if (!pThis->pbDataPg) 1850 {1851 Bs3MemGuardedTestPageFree(pThis->pbCodePg);1852 2116 return Bs3TestFailedF("Second Bs3MemGuardedTestPageAlloc(%d) failed", enmMemKind); 1853 }1854 2117 if ( BS3_MODE_IS_64BIT_CODE(bMode) 1855 2118 && (uintptr_t)pThis->pbDataPg >= _2G) 1856 { 1857 Bs3TestFailedF("pbDataPg=%p is above 2GB and not simple to address from 64-bit code", pThis->pbDataPg); 1858 Bs3MemGuardedTestPageFree(pThis->pbDataPg); 1859 Bs3MemGuardedTestPageFree(pThis->pbCodePg); 1860 return 0; 1861 } 2119 return Bs3TestFailedF("pbDataPg=%p is above 2GB and not simple to address from 64-bit code", pThis->pbDataPg); 1862 2120 #else 1863 2121 return Bs3TestFailed("WTF?! #1"); … … 1871 2129 pThis->pbDataPg = Bs3MemAlloc(enmMemKind, X86_PAGE_SIZE); 1872 2130 if (!pThis->pbDataPg) 1873 {1874 Bs3MemFree(pThis->pbCodePg, X86_PAGE_SIZE);1875 2131 return Bs3TestFailedF("Second Bs3MemAlloc(%d,Pg) failed", enmMemKind); 1876 }1877 2132 } 1878 2133 pThis->uCodePgFlat = Bs3SelPtrToFlat(pThis->pbCodePg); … … 1919 2174 #endif 1920 2175 1921 /* Create basic context for each target ring. In protected 16-bit code we need 1922 set up code selectors that can access pbCodePg. ASSUMES 16-bit driver code! */ 2176 /* 2177 * Create basic context for each target ring. 2178 * 2179 * In protected 16-bit code we need set up code selectors that can access 2180 * pbCodePg. 2181 * 2182 * In long mode we make sure the high 32-bits of GPRs (sans RSP) have some 2183 * bits set so we can check that the implicit clearing is tested. 2184 */ 1923 2185 Bs3RegCtxSaveEx(&pThis->aInitialCtxs[pThis->iFirstRing], bMode, 1024 * 3); 1924 2186 #if ARCH_BITS == 64 … … 1939 2201 pThis->aInitialCtxs[pThis->iFirstRing].r15.u |= UINT64_C(0x1515151500000000); 1940 2202 #endif 2203 1941 2204 if (BS3_MODE_IS_RM_OR_V86(bMode)) 1942 2205 { … … 2158 2421 { 2159 2422 bRet = BS3_CMN_NM(Bs3Cg1WorkerInner)(&This); 2160 2161 Bs3Cg1Destroy(&This);2162 2423 Bs3TestSubDone(); 2163 2424 } 2425 Bs3Cg1Destroy(&This); 2164 2426 #else 2165 2427 PBS3CG1STATE pThis = (PBS3CG1STATE)Bs3MemAlloc(BS3MEMKIND_REAL, sizeof(*pThis)); 2166 2428 if (pThis) 2167 2429 { 2168 2169 2430 if (BS3_CMN_NM(Bs3Cg1Init)(pThis, bMode)) 2170 2431 { 2171 2432 bRet = BS3_CMN_NM(Bs3Cg1WorkerInner)(pThis); 2172 2173 Bs3Cg1Destroy(pThis);2174 2433 Bs3TestSubDone(); 2175 2434 } 2435 Bs3Cg1Destroy(pThis); 2176 2436 Bs3MemFree(pThis, sizeof(*pThis)); 2177 2437 } -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h
r66172 r66216 327 327 BS3CG1DST_OZ_R15, 328 328 329 /* FPU registers. */ 330 BS3CG1DST_FPU_FIRST, 331 BS3CG1DST_FCW = BS3CG1DST_FPU_FIRST, 332 BS3CG1DST_FSW, 333 BS3CG1DST_FTW, 334 BS3CG1DST_FOP, 335 BS3CG1DST_FPUIP, 336 BS3CG1DST_FPUCS, 337 BS3CG1DST_FPUDP, 338 BS3CG1DST_FPUDS, 339 BS3CG1DST_MXCSR, 340 BS3CG1DST_MXCSR_MASK, 341 BS3CG1DST_ST0, 342 BS3CG1DST_ST1, 343 BS3CG1DST_ST2, 344 BS3CG1DST_ST3, 345 BS3CG1DST_ST4, 346 BS3CG1DST_ST5, 347 BS3CG1DST_ST6, 348 BS3CG1DST_ST7, 349 /* MMX registers. */ 350 BS3CG1DST_MM0, 351 BS3CG1DST_MM1, 352 BS3CG1DST_MM2, 353 BS3CG1DST_MM3, 354 BS3CG1DST_MM4, 355 BS3CG1DST_MM5, 356 BS3CG1DST_MM6, 357 BS3CG1DST_MM7, 358 /* SSE registers. */ 359 BS3CG1DST_XMM0, 360 BS3CG1DST_XMM1, 361 BS3CG1DST_XMM2, 362 BS3CG1DST_XMM3, 363 BS3CG1DST_XMM4, 364 BS3CG1DST_XMM5, 365 BS3CG1DST_XMM6, 366 BS3CG1DST_XMM7, 367 BS3CG1DST_XMM8, 368 BS3CG1DST_XMM9, 369 BS3CG1DST_XMM10, 370 BS3CG1DST_XMM11, 371 BS3CG1DST_XMM12, 372 BS3CG1DST_XMM13, 373 BS3CG1DST_XMM14, 374 BS3CG1DST_XMM15, 375 /* AVX registers. */ 376 BS3CG1DST_YMM0, 377 BS3CG1DST_YMM1, 378 BS3CG1DST_YMM2, 379 BS3CG1DST_YMM3, 380 BS3CG1DST_YMM4, 381 BS3CG1DST_YMM5, 382 BS3CG1DST_YMM6, 383 BS3CG1DST_YMM7, 384 BS3CG1DST_YMM8, 385 BS3CG1DST_YMM9, 386 BS3CG1DST_YMM10, 387 BS3CG1DST_YMM11, 388 BS3CG1DST_YMM12, 389 BS3CG1DST_YMM13, 390 BS3CG1DST_YMM14, 391 BS3CG1DST_YMM15, 392 329 393 /* Special fields: */ 330 394 BS3CG1DST_SPECIAL_START, -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h
r66214 r66216 2694 2694 /** xsave/xrstor */ 2695 2695 X86XSAVEAREA x; 2696 /** Byte array view. */ 2697 uint8_t ab[sizeof(X86XSAVEAREA)]; 2696 2698 } Ctx; 2697 2699 } BS3EXTCTX;
Note:
See TracChangeset
for help on using the changeset viewer.