Changeset 103513 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Feb 22, 2024 3:50:36 AM (12 months ago)
- svn:sync-xref-src-repo-rev:
- 161856
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstOneByte.cpp.h
r103350 r103513 8563 8563 uint8_t bOpcode; IEM_OPCODE_GET_NEXT_U8(&bOpcode); 8564 8564 pVCpu->iem.s.fPrefixes |= IEM_OP_PRF_VEX; 8565 if ((bVex2 & 0x80 /* VEX.W */) && IEM_IS_64BIT_CODE(pVCpu)) 8566 pVCpu->iem.s.fPrefixes |= IEM_OP_PRF_SIZE_REX_W; 8565 if (IEM_IS_64BIT_CODE(pVCpu)) 8566 { 8567 #if 1 8568 AssertCompile(IEM_OP_PRF_SIZE_REX_W == RT_BIT_32(9)); 8569 pVCpu->iem.s.fPrefixes |= (uint32_t)(bVex2 & 0x80) << (9 - 7); 8570 AssertCompile(IEM_OP_PRF_REX_B == RT_BIT_32(25) && IEM_OP_PRF_REX_X == RT_BIT_32(26) && IEM_OP_PRF_REX_R == RT_BIT_32(27)); 8571 pVCpu->iem.s.fPrefixes |= (uint32_t)(~bRm & 0xe0) << (25 - 5); 8572 #else 8573 if (bVex2 & 0x80 /* VEX.W */) 8574 pVCpu->iem.s.fPrefixes |= IEM_OP_PRF_SIZE_REX_W; 8575 if (~bRm & 0x20 /* VEX.~B */) 8576 pVCpu->iem.s.fPrefixes |= IEM_OP_PRF_SIZE_REX_B; 8577 if (~bRm & 0x40 /* VEX.~X */) 8578 pVCpu->iem.s.fPrefixes |= IEM_OP_PRF_SIZE_REX_X; 8579 if (~bRm & 0x80 /* VEX.~R */) 8580 pVCpu->iem.s.fPrefixes |= IEM_OP_PRF_SIZE_REX_R; 8581 #endif 8582 } 8567 8583 pVCpu->iem.s.uRexReg = (~bRm >> (7 - 3)) & 0x8; 8568 8584 pVCpu->iem.s.uRexIndex = (~bRm >> (6 - 3)) & 0x8; … … 8634 8650 uint8_t bOpcode; IEM_OPCODE_GET_NEXT_U8(&bOpcode); 8635 8651 pVCpu->iem.s.fPrefixes |= IEM_OP_PRF_VEX; 8652 AssertCompile(IEM_OP_PRF_REX_R == RT_BIT_32(27)); 8653 pVCpu->iem.s.fPrefixes |= (uint32_t)(~bRm & 0x80) << (27 - 7); 8636 8654 pVCpu->iem.s.uRexReg = (~bRm >> (7 - 3)) & 0x8; 8637 8655 pVCpu->iem.s.uVex3rdReg = (~bRm >> 3) & 0xf;
Note:
See TracChangeset
for help on using the changeset viewer.