Changeset 66744 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- May 2, 2017 11:28:41 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 115152
- File:
-
- 1 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
Note:
See TracChangeset
for help on using the changeset viewer.