Changeset 73555 in vbox for trunk/src/VBox/VMM/include/IEMInternal.h
- Timestamp:
- Aug 8, 2018 8:49:36 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/IEMInternal.h
r72866 r73555 422 422 uint8_t iEffSeg; /* 0x2b */ 423 423 424 /** The offset of the ModR/M byte relative to the start of the instruction. */ 425 uint8_t offModRm; /* 0x2c */ 424 426 #else 425 427 /** The size of what has currently been fetched into abOpcode. */ … … 427 429 /** The current offset into abOpcode. */ 428 430 uint8_t offOpcode; /* 0x09 */ 431 /** The offset of the ModR/M byte relative to the start of the instruction. */ 432 uint8_t offModRm; /* 0x0a */ 429 433 430 434 /** The effective segment register (X86_SREG_XXX). */ 431 uint8_t iEffSeg; /* 0x0a */ 432 433 /** The extra REX ModR/M register field bit (REX.R << 3). */ 434 uint8_t uRexReg; /* 0x0b */ 435 uint8_t iEffSeg; /* 0x0b */ 436 435 437 /** The prefix mask (IEM_OP_PRF_XXX). */ 436 438 uint32_t fPrefixes; /* 0x0c */ 439 /** The extra REX ModR/M register field bit (REX.R << 3). */ 440 uint8_t uRexReg; /* 0x10 */ 437 441 /** The extra REX ModR/M r/m field, SIB base and opcode reg bit 438 442 * (REX.B << 3). */ 439 uint8_t uRexB; /* 0x1 0*/443 uint8_t uRexB; /* 0x11 */ 440 444 /** The extra REX SIB index field bit (REX.X << 3). */ 441 uint8_t uRexIndex; /* 0x1 1*/445 uint8_t uRexIndex; /* 0x12 */ 442 446 443 447 #endif 444 448 445 449 /** The effective operand mode. */ 446 IEMMODE enmEffOpSize; /* 0x2 c, 0x12*/450 IEMMODE enmEffOpSize; /* 0x2d, 0x13 */ 447 451 /** The default addressing mode. */ 448 IEMMODE enmDefAddrMode; /* 0x2 d, 0x13*/452 IEMMODE enmDefAddrMode; /* 0x2e, 0x14 */ 449 453 /** The effective addressing mode. */ 450 IEMMODE enmEffAddrMode; /* 0x2 e, 0x14*/454 IEMMODE enmEffAddrMode; /* 0x2f, 0x15 */ 451 455 /** The default operand mode. */ 452 IEMMODE enmDefOpSize; /* 0x 2f, 0x15*/456 IEMMODE enmDefOpSize; /* 0x30, 0x16 */ 453 457 454 458 /** Prefix index (VEX.pp) for two byte and three byte tables. */ 455 uint8_t idxPrefix; /* 0x3 0, 0x16*/459 uint8_t idxPrefix; /* 0x31, 0x17 */ 456 460 /** 3rd VEX/EVEX/XOP register. 457 461 * Please use IEM_GET_EFFECTIVE_VVVV to access. */ 458 uint8_t uVex3rdReg; /* 0x3 1, 0x17*/462 uint8_t uVex3rdReg; /* 0x32, 0x18 */ 459 463 /** The VEX/EVEX/XOP length field. */ 460 uint8_t uVexLength; /* 0x3 2, 0x18*/464 uint8_t uVexLength; /* 0x33, 0x19 */ 461 465 /** Additional EVEX stuff. */ 462 uint8_t fEvexStuff; /* 0x33, 0x19 */ 463 466 uint8_t fEvexStuff; /* 0x34, 0x1a */ 467 468 /** Explicit alignment padding. */ 469 uint8_t abAlignment2a[1]; /* 0x35, 0x1b */ 464 470 /** The FPU opcode (FOP). */ 465 uint16_t uFpuOpcode; /* 0x3 4, 0x1a*/466 471 uint16_t uFpuOpcode; /* 0x36, 0x1c */ 472 #ifndef IEM_WITH_CODE_TLB 467 473 /** Explicit alignment padding. */ 468 #ifdef IEM_WITH_CODE_TLB 469 uint8_t abAlignment2a[2]; /* 0x36 */ 474 uint8_t abAlignment2b[2]; /* 0x1e */ 470 475 #endif 471 476 472 477 /** The opcode bytes. */ 473 uint8_t abOpcode[15]; /* 0x48, 0x 1c*/478 uint8_t abOpcode[15]; /* 0x48, 0x20 */ 474 479 /** Explicit alignment padding. */ 475 480 #ifdef IEM_WITH_CODE_TLB 476 481 uint8_t abAlignment2c[0x48 - 0x47]; /* 0x37 */ 477 482 #else 478 uint8_t abAlignment2c[0x48 - 0x2 b]; /* 0x2b*/483 uint8_t abAlignment2c[0x48 - 0x2f]; /* 0x2f */ 479 484 #endif 480 485 /** @} */
Note:
See TracChangeset
for help on using the changeset viewer.