- Timestamp:
- Mar 28, 2017 3:51:53 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114240
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r66309 r66311 1301 1301 * @oponlytest 1302 1302 */ 1303 IEMOP_MNEMONIC2(RM , MOVHLPS, movhlps, Vq, UqHi, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1303 IEMOP_MNEMONIC2(RM_REG, MOVHLPS, movhlps, Vq, UqHi, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1304 1304 1305 1305 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); … … 1329 1329 * @oponlytest 1330 1330 */ 1331 IEMOP_MNEMONIC2(RM , MOVLPS, movlps, Vq, Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE);1331 IEMOP_MNEMONIC2(RM_MEM, MOVLPS, movlps, Vq, Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1332 1332 1333 1333 IEM_MC_BEGIN(0, 2); … … 1349 1349 } 1350 1350 1351 /** Opcode 0x66 0x0f 0x12. */ 1352 FNIEMOP_STUB(iemOp_vmovlpd_Vq_Hq_Mq); //NEXT 1351 1352 FNIEMOP_DEF(iemOp_vmovlpd_Vq_Hq_Mq) 1353 { 1354 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1355 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) 1356 { 1357 /** 1358 * @todo figure this out! 1359 * opcode 0x12 1360 * todo 11 /reg 1361 * oppfx 0x66 1362 * openc ModR/M 1363 * opcpuid sse2 1364 * opgroup og_sse_simdfp_datamove 1365 * opunused immediate 1366 * optest op1=1 op2=2 -> op1=2 1367 * oponlytest 1368 */ 1369 return IEMOP_RAISE_INVALID_OPCODE(); 1370 } 1371 else 1372 { 1373 /** 1374 * @opdone 1375 * @opcode 0x12 1376 * @oppfx 0x66 1377 * @opcpuid sse2 1378 * @opgroup og_sse2_pcksclr_datamove 1379 * @opxcpttype 5 1380 * @optest op1=1 op2=2 -> op1=2 1381 * @optest op1=0 op2=-42 -> op1=-42 1382 * @opfunction iemOp_vmovlpd_Vq_Hq_Mq 1383 * @oponlytest 1384 */ 1385 IEMOP_MNEMONIC2(RM_MEM, MOVLPD, movlpd, Vq, Mq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 1386 1387 IEM_MC_BEGIN(0, 2); 1388 IEM_MC_LOCAL(uint64_t, uSrc); 1389 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1390 1391 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 1392 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 1393 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 1394 IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE(); 1395 1396 IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 1397 IEM_MC_STORE_XREG_U64(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg, uSrc); 1398 1399 IEM_MC_ADVANCE_RIP(); 1400 IEM_MC_END(); 1401 } 1402 return VINF_SUCCESS; 1403 } 1404 1353 1405 1354 1406 /** Opcode 0xf3 0x0f 0x12. */
Note:
See TracChangeset
for help on using the changeset viewer.