Changeset 96435 in vbox
- Timestamp:
- Aug 23, 2022 10:40:19 AM (2 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/vm.h
r96407 r96435 146 146 struct IEMCPU s; 147 147 #endif 148 uint8_t padding[ 28736]; /* multiple of 64 */148 uint8_t padding[32832]; /* multiple of 64 */ 149 149 } iem; 150 150 … … 327 327 } em; 328 328 329 /** Align the structure size on 16384 boundrary for arm64 purposes. */330 uint8_t abStructPadding[4096];331 329 } VMCPU; 332 330 333 331 334 332 #ifndef VBOX_FOR_DTRACE_LIB 333 /* Make sure the structure size is aligned on a 16384 boundary for arm64 purposes. */ 335 334 AssertCompileSizeAlignment(VMCPU, 16384); 336 335 -
trunk/include/VBox/vmm/vm.mac
r96407 r96435 58 58 59 59 alignb 64 60 .iem resb 2873660 .iem resb 32832 61 61 62 62 alignb 64 -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r96407 r96435 11316 11316 /* Opcode 0x0f 0xf0 - invalid */ 11317 11317 /* Opcode 0x66 0x0f 0xf0 - invalid */ 11318 11319 11318 11320 /** Opcode 0xf2 0x0f 0xf0 - lddqu Vx, Mx */ 11319 FNIEMOP_STUB(iemOp_lddqu_Vx_Mx); 11321 FNIEMOP_DEF(iemOp_lddqu_Vx_Mx) 11322 { 11323 IEMOP_MNEMONIC2(RM_MEM, LDDQU, lddqu, Vdq_WO, Mx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 11324 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 11325 if (IEM_IS_MODRM_REG_MODE(bRm)) 11326 { 11327 /* 11328 * Register, register - (not implemented, assuming it raises \#UD). 11329 */ 11330 return IEMOP_RAISE_INVALID_OPCODE(); 11331 } 11332 else 11333 { 11334 /* 11335 * Register, memory. 11336 */ 11337 IEM_MC_BEGIN(0, 2); 11338 IEM_MC_LOCAL(RTUINT128U, u128Tmp); 11339 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 11340 11341 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 11342 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11343 IEM_MC_MAYBE_RAISE_SSE3_RELATED_XCPT(); 11344 IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE(); 11345 IEM_MC_FETCH_MEM_U128(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 11346 IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp); 11347 11348 IEM_MC_ADVANCE_RIP(); 11349 IEM_MC_END(); 11350 } 11351 return VINF_SUCCESS; 11352 } 11320 11353 11321 11354 -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap1.cpp.h
r96407 r96435 4615 4615 /* Opcode VEX.0F 0xf0 - invalid */ 4616 4616 /* Opcode VEX.66.0F 0xf0 - invalid */ 4617 4618 4617 4619 /** Opcode VEX.F2.0F 0xf0 - vlddqu Vx, Mx */ 4618 FNIEMOP_STUB(iemOp_vlddqu_Vx_Mx); 4620 FNIEMOP_DEF(iemOp_vlddqu_Vx_Mx) 4621 { 4622 IEMOP_MNEMONIC2(VEX_RM_MEM, VLDDQU, vlddqu, Vx_WO, Mx, DISOPTYPE_HARMLESS | DISOPTYPE_AVX, IEMOPHINT_IGNORES_OP_SIZES); 4623 Assert(pVCpu->iem.s.uVexLength <= 1); 4624 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 4625 if (IEM_IS_MODRM_REG_MODE(bRm)) 4626 { 4627 /* 4628 * Register, register - (not implemented, assuming it raises \#UD). 4629 */ 4630 return IEMOP_RAISE_INVALID_OPCODE(); 4631 } 4632 else if (pVCpu->iem.s.uVexLength == 0) 4633 { 4634 /* 4635 * Register, memory128. 4636 */ 4637 IEM_MC_BEGIN(0, 2); 4638 IEM_MC_LOCAL(RTUINT128U, u128Tmp); 4639 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 4640 4641 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 4642 IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV(); 4643 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 4644 IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE(); 4645 4646 IEM_MC_FETCH_MEM_U128(u128Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 4647 IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp); 4648 4649 IEM_MC_ADVANCE_RIP(); 4650 IEM_MC_END(); 4651 } 4652 else 4653 { 4654 /* 4655 * Register, memory256. 4656 */ 4657 IEM_MC_BEGIN(0, 2); 4658 IEM_MC_LOCAL(RTUINT256U, u256Tmp); 4659 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 4660 4661 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 4662 IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV(); 4663 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 4664 IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE(); 4665 4666 IEM_MC_FETCH_MEM_U256(u256Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 4667 IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u256Tmp); 4668 4669 IEM_MC_ADVANCE_RIP(); 4670 IEM_MC_END(); 4671 } 4672 return VINF_SUCCESS; 4673 } 4674 4619 4675 4620 4676 /* Opcode VEX.0F 0xf1 - invalid */
Note:
See TracChangeset
for help on using the changeset viewer.