VirtualBox

Ignore:
Timestamp:
May 5, 2017 2:36:10 PM (8 years ago)
Author:
vboxsync
Message:

IEM: Implemented movq2dq Vdq,Nq (f3 0f d6)

Location:
trunk/src/VBox/ValidationKit/bootsectors
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-data.py

    r66748 r66810  
    308308                self.sEncoding += '_MOD_EQ_3' if oInstr.sSubOpcode == '11 mr/reg' else '_MOD_NE_3';
    309309            elif oInstr.sInvalidStyle == 'intel-modrm':
    310                 self.sEncoding = 'BS3CG1ENC_MODRM_Gv_Ev';
     310                if oInstr.sSubOpcode is None:
     311                    self.sEncoding = 'BS3CG1ENC_MODRM_Gv_Ev';
     312                elif oInstr.sSubOpcode == '11 mr/reg':
     313                    self.sEncoding = 'BS3CG1ENC_MODRM_MOD_EQ_3';
     314                elif oInstr.sSubOpcode == '!11 mr/reg':
     315                    self.sEncoding = 'BS3CG1ENC_MODRM_MOD_NE_3';
     316                else:
     317                    raise Exception('Unhandled sSubOpcode=%s for sInvalidStyle=%s' % (oInstr.sSubOpcode, oInstr.sInvalidStyle));
    311318
    312319        self.asFlags            = [];
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c

    r66808 r66810  
    17971797
    17981798
     1799static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqZxReg_Nq(PBS3CG1STATE pThis, unsigned iEncoding)
     1800{
     1801    unsigned off;
     1802    if (iEncoding == 0)
     1803    {
     1804        off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1805        pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 1, 0);
     1806        pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_MM0;
     1807        pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM1_LO_ZX;
     1808    }
     1809    else if (iEncoding == 1)
     1810    {
     1811        off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0));
     1812        pThis->abCurInstr[off++] = X86_MODRM_MAKE(3, 6, 7);
     1813        pThis->aOperands[pThis->iRmOp ].idxField = BS3CG1DST_MM7;
     1814        pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM6_LO_ZX;
     1815    }
     1816    else
     1817        return 0;
     1818    pThis->cbCurInstr = off;
     1819    return iEncoding + 1;
     1820}
     1821
     1822
    17991823static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_Gv_Ma(PBS3CG1STATE pThis, unsigned iEncoding)
    18001824{
     
    22332257        case BS3CG1ENC_MODRM_VqZxReg_Wq:
    22342258            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VsdZxReg_Wsd__OR__MODRM_VqZxReg_Wq(pThis, iEncoding);
     2259        case BS3CG1ENC_MODRM_VqZxReg_Nq:
     2260            return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VqZxReg_Nq(pThis, iEncoding);
    22352261
    22362262        case BS3CG1ENC_MODRM_Gv_Ma:
     
    24242450        case BS3CG1ENC_MODRM_VsdZxReg_Wsd:
    24252451        case BS3CG1ENC_MODRM_VqZxReg_Wq:
     2452        case BS3CG1ENC_MODRM_VqZxReg_Nq:
    24262453            pThis->iRmOp             = 1;
    24272454            pThis->iRegOp            = 0;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h

    r66808 r66810  
    5454    BS3CG1OP_Gb,
    5555    BS3CG1OP_Gv,
     56    BS3CG1OP_Nq,
    5657    BS3CG1OP_Uq,
    5758    BS3CG1OP_UqHi,
     
    117118    BS3CG1ENC_MODRM_VsdZxReg_Wsd,
    118119    BS3CG1ENC_MODRM_VqZxReg_Wq,
     120    BS3CG1ENC_MODRM_VqZxReg_Nq,
    119121    BS3CG1ENC_MODRM_MbRO,
    120122    BS3CG1ENC_MODRM_MdRO,
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