VirtualBox

Changeset 36844 in vbox


Ignore:
Timestamp:
Apr 26, 2011 8:48:35 AM (14 years ago)
Author:
vboxsync
Message:

IEM: started drilling down to FINIT, but have to change location.

File:
1 edited

Legend:

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

    r36841 r36844  
    84728472        case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC("shr Ev,CL"); break;
    84738473        case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC("sar Ev,CL"); break;
    8474         case 6: return IEMOP_RAISE_INVALID_LOCK_PREFIX();
     8474        case 6: return IEMOP_RAISE_INVALID_OPCODE();
    84758475        IEM_NOT_REACHED_DEFAULT_CASE_RET(); /* gcc maybe stupid */
    84768476    }
     
    86548654/** Opcode 0xda. */
    86558655FNIEMOP_STUB(iemOp_EscF2);
     8656
     8657
     8658/** Opcode 0xdb /0. */
     8659FNIEMOP_STUB_1(iemOp_fild, uint8_t, bRm);
     8660/** Opcode 0xdb /1. */
     8661FNIEMOP_STUB_1(iemOp_fisttp, uint8_t, bRm);
     8662/** Opcode 0xdb /2. */
     8663FNIEMOP_STUB_1(iemOp_fist, uint8_t, bRm);
     8664/** Opcode 0xdb /3. */
     8665FNIEMOP_STUB_1(iemOp_fistp, uint8_t, bRm);
     8666/** Opcode 0xdb /5. */
     8667FNIEMOP_STUB_1(iemOp_fld, uint8_t, bRm);
     8668/** Opcode 0xdb /7. */
     8669FNIEMOP_STUB_1(iemOp_fstp, uint8_t, bRm);
     8670
    86568671/** Opcode 0xdb. */
    8657 FNIEMOP_STUB(iemOp_EscF3);
    8658 /** @todo Do FINIT next. */
     8672FNIEMOP_DEF(iemOp_EscF3)
     8673{
     8674    uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     8675    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     8676    {
     8677#if 0
     8678        switch (bRm & 0xf0)
     8679        {
     8680            case 0x
     8681        }
     8682#endif
     8683        AssertFailedReturn(VERR_NOT_IMPLEMENTED);
     8684    }
     8685    else
     8686    {
     8687        switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     8688        {
     8689            case 0: return FNIEMOP_CALL_1(iemOp_fild, bRm);
     8690            case 1: return FNIEMOP_CALL_1(iemOp_fisttp, bRm);
     8691            case 2: return FNIEMOP_CALL_1(iemOp_fist, bRm);
     8692            case 3: return FNIEMOP_CALL_1(iemOp_fistp, bRm);
     8693            case 4: return IEMOP_RAISE_INVALID_OPCODE();
     8694            case 5: return FNIEMOP_CALL_1(iemOp_fld, bRm);
     8695            case 6: return IEMOP_RAISE_INVALID_OPCODE();
     8696            case 7: return FNIEMOP_CALL_1(iemOp_fstp, bRm);
     8697            IEM_NOT_REACHED_DEFAULT_CASE_RET();
     8698        }
     8699    }
     8700}
    86598701
    86608702/** Opcode 0xdc. */
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