Changeset 66744 in vbox
- Timestamp:
- May 2, 2017 11:28:41 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 115152
- Location:
- trunk/src/VBox
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r66743 r66744 1042 1042 1043 1043 1044 /** Opcode 0x66 0x0f 0x10 - vmovupd Vpd, Wpd */ 1045 FNIEMOP_STUB(iemOp_movupd_Vpd_Wpd); 1044 /** 1045 * @opcode 0x10 1046 * @oppfx 0x66 1047 * @opcpuid sse2 1048 * @opgroup og_sse2_pcksclr_datamove 1049 * @opxcpttype 4UA 1050 * @optest op1=1 op2=2 -> op1=2 1051 * @optest op1=0 op2=-42 -> op1=-42 1052 * @oponlytest 1053 */ 1054 FNIEMOP_DEF(iemOp_movupd_Vpd_Wpd) 1055 { 1056 IEMOP_MNEMONIC2(RM, MOVUPD, movupd, Vpd, Wpd, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1057 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1058 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) 1059 { 1060 /* 1061 * Register, register. 1062 */ 1063 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 1064 IEM_MC_BEGIN(0, 0); 1065 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 1066 IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE(); 1067 IEM_MC_COPY_XREG_U128(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg, 1068 (bRm & X86_MODRM_RM_MASK) | pVCpu->iem.s.uRexB); 1069 IEM_MC_ADVANCE_RIP(); 1070 IEM_MC_END(); 1071 } 1072 else 1073 { 1074 /* 1075 * Memory, register. 1076 */ 1077 IEM_MC_BEGIN(0, 2); 1078 IEM_MC_LOCAL(RTUINT128U, uSrc); /** @todo optimize this one day... */ 1079 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1080 1081 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 1082 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 1083 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 1084 IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE(); 1085 1086 IEM_MC_FETCH_MEM_U128(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 1087 IEM_MC_STORE_XREG_U128(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg, uSrc); 1088 1089 IEM_MC_ADVANCE_RIP(); 1090 IEM_MC_END(); 1091 } 1092 return VINF_SUCCESS; 1093 } 1046 1094 1047 1095 -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r66743 r66744 1660 1660 1661 1661 1662 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vps_Wps(PBS3CG1STATE pThis, unsigned iEncoding) 1662 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vps_Wps__OR__BS3CG1ENC_MODRM_Vpd_Wpd(PBS3CG1STATE pThis, 1663 unsigned iEncoding) 1663 1664 { 1664 1665 unsigned off; … … 2100 2101 case BS3CG1ENC_MODRM_Vdq_Wdq: 2101 2102 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vdq_Wdq(pThis, iEncoding); 2103 case BS3CG1ENC_MODRM_Vpd_Wpd: 2102 2104 case BS3CG1ENC_MODRM_Vps_Wps: 2103 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vps_Wps (pThis, iEncoding);2105 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Vps_Wps__OR__BS3CG1ENC_MODRM_Vpd_Wpd(pThis, iEncoding); 2104 2106 case BS3CG1ENC_MODRM_VssZxReg_Wss: 2105 2107 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VssZxReg_Wss(pThis, iEncoding); … … 2250 2252 break; 2251 2253 2254 case BS3CG1ENC_MODRM_Vpd_Wpd: 2252 2255 case BS3CG1ENC_MODRM_Vps_Wps: 2253 2256 pThis->iRmOp = 1; -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h
r66743 r66744 105 105 BS3CG1ENC_MODRM_Vq_Mq, 106 106 BS3CG1ENC_MODRM_Vdq_Wdq, 107 BS3CG1ENC_MODRM_Vpd_Wpd, 107 108 BS3CG1ENC_MODRM_Vps_Wps, 108 109 BS3CG1ENC_MODRM_VssZxReg_Wss,
Note:
See TracChangeset
for help on using the changeset viewer.