VirtualBox

Changeset 61638 in vbox


Ignore:
Timestamp:
Jun 9, 2016 7:27:57 PM (9 years ago)
Author:
vboxsync
Message:

IEM: movlps for fedora 18.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h

    r61637 r61638  
    15131513    if (pIemCpu->fPrefixes == 0)
    15141514    {
     1515        IEMOP_MNEMONIC("movups Wps,Vps");
    15151516        uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    15161517        if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    15581559/** Opcode 0x0f 0x12. */
    15591560FNIEMOP_STUB(iemOp_movlps_Vq_Mq__movhlps_Vq_Uq__movlpd_Vq_Mq__movsldup_Vq_Wq__movddup_Vq_Wq); //NEXT
     1561
     1562
    15601563/** Opcode 0x0f 0x13. */
    1561 FNIEMOP_STUB(iemOp_movlps_Mq_Vq__movlpd_Mq_Vq); //NEXT
     1564FNIEMOP_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
    15621618/** Opcode 0x0f 0x14. */
    15631619FNIEMOP_STUB(iemOp_unpckhlps_Vps_Wq__unpcklpd_Vpd_Wq);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette