儲存庫 vbox 的更動 66808
- 時間撮記:
- 2017-5-5 下午12:06:21 (8 年 以前)
- 位置:
- trunk
- 檔案:
-
- 修改 5 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/include/VBox/disopcode.h
r66785 r66808 1070 1070 #define OP_PARM_VsdZxReg OP_PARM_Vsd /**< Annotates that register targets get their upper bits cleared. */ 1071 1071 #define OP_PARM_VqHi OP_PARM_Vdq /**< Annotates that only YMM/XMM[127:64] are accessed. */ 1072 #define OP_PARM_VqZxReg OP_PARM_Vq /**< Annotates that register targets get their upper bits cleared */ 1072 1073 #define OP_PARM_MbRO OP_PARM_Mb /**< Annotates read only memory byte operand. */ 1073 1074 #define OP_PARM_MdRO OP_PARM_Md /**< Annotates read only memory byte operand. */ -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py
r66785 r66808 221 221 'Wpd': ( 'IDX_UseModRM', 'rm', '%Wpd', 'Wpd', ), 222 222 'Wdq': ( 'IDX_UseModRM', 'rm', '%Wdq', 'Wdq', ), 223 'Wq': ( 'IDX_UseModRM', 'rm', '%Wq', 'Wq', ), 223 224 'WqZxReg': ( 'IDX_UseModRM', 'rm', '%Wq', 'Wq', ), 224 225 … … 250 251 'Vdq': ( 'IDX_UseModRM', 'reg', '%Vdq', 'Vdq', ), 251 252 'VqHi': ( 'IDX_UseModRM', 'reg', '%Vdq', 'VdqHi', ), 253 'VqZxReg': ( 'IDX_UseModRM', 'reg', '%Vq', 'VqZx', ), 252 254 253 255 # Immediate values. -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r66792 r66808 1930 1930 * @optest op1=-1 op2=0x00000002dddddddd00000001eeeeeeee -> 1931 1931 * op1=0x00000002000000020000000100000001 1932 * @oponly1933 1932 */ 1934 1933 FNIEMOP_DEF(iemOp_movshdup_Vdq_Wdq) … … 4313 4312 } 4314 4313 4315 /** Opcode 0xf3 0x0f 0x7e - movq Vq, Wq */ 4316 FNIEMOP_STUB(iemOp_movq_Vq_Wq); 4314 4315 /** 4316 * @opcode 0x7e 4317 * @opcodesub !11 mr/reg 4318 * @oppfx 0xf3 4319 * @opcpuid sse2 4320 * @opgroup og_sse2_pcksclr_datamove 4321 * @opxcpttype 5 4322 * @optest op1=1 op2=2 -> op1=2 4323 * @optest op1=0 op2=-42 -> op1=-42 4324 * @oponly 4325 */ 4326 FNIEMOP_DEF(iemOp_movq_Vq_Wq) 4327 { 4328 IEMOP_MNEMONIC2(RM, MOVQ, movq, VqZxReg, Wq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZE); 4329 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 4330 if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) 4331 { 4332 /* 4333 * Register, register. 4334 */ 4335 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 4336 IEM_MC_BEGIN(0, 2); 4337 IEM_MC_LOCAL(uint64_t, uSrc); 4338 4339 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 4340 IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE(); 4341 4342 IEM_MC_FETCH_XREG_U64(uSrc, (bRm & X86_MODRM_RM_MASK) | pVCpu->iem.s.uRexB); 4343 IEM_MC_STORE_XREG_U64_ZX_U128(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg, uSrc); 4344 4345 IEM_MC_ADVANCE_RIP(); 4346 IEM_MC_END(); 4347 } 4348 else 4349 { 4350 /* 4351 * Memory, register. 4352 */ 4353 IEM_MC_BEGIN(0, 2); 4354 IEM_MC_LOCAL(uint64_t, uSrc); 4355 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 4356 4357 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 4358 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 4359 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 4360 IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE(); 4361 4362 IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 4363 IEM_MC_STORE_XREG_U64_ZX_U128(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg, uSrc); 4364 4365 IEM_MC_ADVANCE_RIP(); 4366 IEM_MC_END(); 4367 } 4368 return VINF_SUCCESS; 4369 } 4370 4317 4371 /* Opcode 0xf2 0x0f 0x7e - invalid */ 4318 4372 -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r66791 r66808 1767 1767 1768 1768 1769 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VsdZxReg_Wsd(PBS3CG1STATE pThis, unsigned iEncoding) 1769 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VsdZxReg_Wsd__OR__MODRM_VqZxReg_Wq(PBS3CG1STATE pThis, 1770 unsigned iEncoding) 1770 1771 { 1771 1772 unsigned off; … … 2230 2231 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VssZxReg_Wss(pThis, iEncoding); 2231 2232 case BS3CG1ENC_MODRM_VsdZxReg_Wsd: 2232 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VsdZxReg_Wsd(pThis, iEncoding); 2233 case BS3CG1ENC_MODRM_VqZxReg_Wq: 2234 return Bs3Cg1EncodeNext_BS3CG1ENC_MODRM_VsdZxReg_Wsd__OR__MODRM_VqZxReg_Wq(pThis, iEncoding); 2233 2235 2234 2236 case BS3CG1ENC_MODRM_Gv_Ma: … … 2421 2423 2422 2424 case BS3CG1ENC_MODRM_VsdZxReg_Wsd: 2425 case BS3CG1ENC_MODRM_VqZxReg_Wq: 2423 2426 pThis->iRmOp = 1; 2424 2427 pThis->iRegOp = 0; -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h
r66791 r66808 49 49 BS3CG1OP_Wpd, 50 50 BS3CG1OP_Wdq, 51 BS3CG1OP_Wq, 51 52 BS3CG1OP_WqZxReg, 52 53 … … 64 65 BS3CG1OP_Vdq, 65 66 BS3CG1OP_VqHi, 67 BS3CG1OP_VqZxReg, 66 68 67 69 BS3CG1OP_Ib, … … 114 116 BS3CG1ENC_MODRM_VssZxReg_Wss, 115 117 BS3CG1ENC_MODRM_VsdZxReg_Wsd, 118 BS3CG1ENC_MODRM_VqZxReg_Wq, 116 119 BS3CG1ENC_MODRM_MbRO, 117 120 BS3CG1ENC_MODRM_MdRO,
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器