儲存庫 vbox 的更動 66791
- 時間撮記:
- 2017-5-4 下午12:29:02 (8 年 以前)
- 位置:
- trunk/src/VBox
- 檔案:
-
- 修改 3 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r66789 r66791 1993 1993 */ 1994 1994 1995 /** Opcode 0x0f 0x17 - movhpsv1 Mq, Vq */ 1996 FNIEMOP_STUB(iemOp_movhps_Mq_Vq); //NEXT 1995 1996 /** 1997 * @opcode 0x17 1998 * @opcodesub !11 mr/reg 1999 * @oppfx none 2000 * @opcpuid sse 2001 * @opgroup og_sse_simdfp_datamove 2002 * @opxcpttype 5 2003 * @optest op1=1 op2=2 -> op1=2 2004 * @optest op1=0 op2=-42 -> op1=-42 2005 */ 2006 FNIEMOP_DEF(iemOp_movhps_Mq_Vq) 2007 { 2008 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 2009 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 2010 { 2011 IEMOP_MNEMONIC2(MR_MEM, MOVHPS, movhps, MqWO, VqHi, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 2012 2013 IEM_MC_BEGIN(0, 2); 2014 IEM_MC_LOCAL(uint64_t, uSrc); 2015 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 2016 2017 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 2018 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 2019 IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT(); 2020 IEM_MC_ACTUALIZE_SSE_STATE_FOR_READ(); 2021 2022 IEM_MC_FETCH_XREG_HI_U64(uSrc, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg); 2023 IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc); 2024 2025 IEM_MC_ADVANCE_RIP(); 2026 IEM_MC_END(); 2027 return VINF_SUCCESS; 2028 } 2029 2030 /** 2031 * @opdone 2032 * @opmnemonic ud0f17m3 2033 * @opcode 0x17 2034 * @opcodesub 11 mr/reg 2035 * @oppfx none 2036 * @opunused immediate 2037 * @opcpuid sse 2038 * @optest -> 2039 */ 2040 return IEMOP_RAISE_INVALID_OPCODE(); 2041 } 2042 1997 2043 /** Opcode 0x66 0x0f 0x17 - movhpdv1 Mq, Vq */ 1998 2044 FNIEMOP_STUB(iemOp_movhpd_Mq_Vq); //NEXT -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r66785 r66791 2012 2012 2013 2013 2014 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_MqWO_VqHi(PBS3CG1STATE pThis, unsigned iEncoding) 2015 { 2016 unsigned off; 2017 if (iEncoding == 0) 2018 { 2019 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM2_HI; 2020 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0)); 2021 off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 2 /*iReg*/, 8, 0, BS3CG1OPLOC_MEM_RW); 2022 } 2023 else if (iEncoding == 1) 2024 { 2025 pThis->aOperands[pThis->iRegOp].idxField = BS3CG1DST_XMM3_HI; 2026 off = Bs3Cg1InsertOpcodes(pThis, Bs3Cg1InsertReqPrefix(pThis, 0)); 2027 off = Bs3Cfg1EncodeMemMod0Disp(pThis, false, off, 3 /*iReg*/, 8, 1 /*cbMissalign*/, BS3CG1OPLOC_MEM_RW); 2028 } 2029 else 2030 return 0; 2031 pThis->cbCurInstr = off; 2032 return iEncoding + 1; 2033 } 2034 2035 2014 2036 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_FIXED(PBS3CG1STATE pThis, unsigned iEncoding) 2015 2037 { … … 2223 2245 case BS3CG1ENC_MODRM_MqWO_Vq: 2224 2246 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_MqWO_Vq(pThis, iEncoding); 2247 case BS3CG1ENC_MODRM_MqWO_VqHi: 2248 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_MqWO_VqHi(pThis, iEncoding); 2225 2249 2226 2250 case BS3CG1ENC_FIXED: … … 2425 2449 2426 2450 case BS3CG1ENC_MODRM_MqWO_Vq: 2451 case BS3CG1ENC_MODRM_MqWO_VqHi: 2427 2452 pThis->iRmOp = 0; 2428 2453 pThis->iRegOp = 1; -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h
r66785 r66791 118 118 BS3CG1ENC_MODRM_MdWO, 119 119 BS3CG1ENC_MODRM_MqWO_Vq, 120 BS3CG1ENC_MODRM_MqWO_VqHi, 120 121 121 122 BS3CG1ENC_VEX_MODRM_MdWO,
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器