Changeset 61638 in vbox
- Timestamp:
- Jun 9, 2016 7:27:57 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h
r61637 r61638 1513 1513 if (pIemCpu->fPrefixes == 0) 1514 1514 { 1515 IEMOP_MNEMONIC("movups Wps,Vps"); 1515 1516 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1516 1517 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) … … 1558 1559 /** Opcode 0x0f 0x12. */ 1559 1560 FNIEMOP_STUB(iemOp_movlps_Vq_Mq__movhlps_Vq_Uq__movlpd_Vq_Mq__movsldup_Vq_Wq__movddup_Vq_Wq); //NEXT 1561 1562 1560 1563 /** Opcode 0x0f 0x13. */ 1561 FNIEMOP_STUB(iemOp_movlps_Mq_Vq__movlpd_Mq_Vq); //NEXT 1564 FNIEMOP_DEF(iemOp_movlps_Mq_Vq__movlpd_Mq_Vq) 1565 { 1566 /* Quick hack. Need to restructure all of this later some time. */ 1567 if (pIemCpu->fPrefixes == IEM_OP_PRF_SIZE_OP) 1568 { 1569 IEMOP_MNEMONIC("movlpd Mq,Vq"); 1570 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 1571 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) 1572 { 1573 #if 0 1574 /* 1575 * Register, register. 1576 */ 1577 IEMOP_HLP_DONE_DECODING_NO_LOCK_REPZ_OR_REPNZ_PREFIXES(); 1578 IEM_MC_BEGIN(0, 1); 1579 IEM_MC_LOCAL(uint64_t, uSrc); 1580 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 1581 IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE(); 1582 IEM_MC_FETCH_XREG_U64(uSrc, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 1583 IEM_MC_STORE_XREG_U64((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, uSrc); 1584 IEM_MC_ADVANCE_RIP(); 1585 IEM_MC_END(); 1586 #else 1587 return IEMOP_RAISE_INVALID_OPCODE(); 1588 #endif 1589 } 1590 else 1591 { 1592 /* 1593 * Memory, register. 1594 */ 1595 IEM_MC_BEGIN(0, 2); 1596 IEM_MC_LOCAL(uint64_t, uSrc); 1597 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 1598 1599 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 1600 IEMOP_HLP_DONE_DECODING_NO_LOCK_REPZ_OR_REPNZ_PREFIXES(); /** @todo check if this is delayed this long for REPZ/NZ - yes it generally is! */ 1601 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 1602 IEM_MC_ACTUALIZE_SSE_STATE_FOR_READ(); 1603 1604 IEM_MC_FETCH_XREG_U64(uSrc, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg); 1605 IEM_MC_STORE_MEM_U64(pIemCpu->iEffSeg, GCPtrEffSrc, uSrc); 1606 1607 IEM_MC_ADVANCE_RIP(); 1608 IEM_MC_END(); 1609 } 1610 return VINF_SUCCESS; 1611 } 1612 1613 IEMOP_BITCH_ABOUT_STUB(); 1614 return VERR_IEM_INSTR_NOT_IMPLEMENTED; 1615 } 1616 1617 1562 1618 /** Opcode 0x0f 0x14. */ 1563 1619 FNIEMOP_STUB(iemOp_unpckhlps_Vps_Wq__unpcklpd_Vpd_Wq);
Note:
See TracChangeset
for help on using the changeset viewer.