- Timestamp:
- Apr 11, 2024 8:53:09 AM (9 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstTwoByte0f.cpp.h
r104279 r104288 6490 6490 6491 6491 6492 #if 0 /*unused*/ 6492 6493 /** 6493 6494 * Common worker for SSE2 instructions of the form: … … 6530 6531 } 6531 6532 } 6533 #endif 6534 6535 6536 /** 6537 * Preprocessor macro variant of iemOpCommonSse2_Shift_Imm 6538 */ 6539 #define SSE2_SHIFT_BODY_Imm(a_Ins, a_bRm, a_fRegNativeArchs) \ 6540 if (IEM_IS_MODRM_REG_MODE((a_bRm))) \ 6541 { \ 6542 /* \ 6543 * Register, immediate. \ 6544 */ \ 6545 IEM_MC_BEGIN(0, 0); \ 6546 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); \ 6547 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2); \ 6548 IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT(); \ 6549 IEM_MC_PREPARE_SSE_USAGE(); \ 6550 IEM_MC_NATIVE_IF(a_fRegNativeArchs) { \ 6551 IEM_MC_NATIVE_EMIT_2(RT_CONCAT3(iemNativeEmit_,a_Ins,_ri_u128), IEM_GET_MODRM_RM(pVCpu, (a_bRm)), bImm); \ 6552 } IEM_MC_NATIVE_ELSE() { \ 6553 IEM_MC_ARG(PRTUINT128U, pDst, 0); \ 6554 IEM_MC_ARG_CONST(uint8_t, bShiftArg, /*=*/ bImm, 1); \ 6555 IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_RM(pVCpu, (a_bRm))); \ 6556 IEM_MC_CALL_VOID_AIMPL_2(RT_CONCAT3(iemAImpl_,a_Ins,_imm_u128), pDst, bShiftArg); \ 6557 } IEM_MC_NATIVE_ENDIF(); \ 6558 IEM_MC_ADVANCE_RIP_AND_FINISH(); \ 6559 IEM_MC_END(); \ 6560 } \ 6561 else \ 6562 { \ 6563 /* \ 6564 * Register, memory. \ 6565 */ \ 6566 AssertFailedReturn(VINF_SUCCESS); \ 6567 } (void)0 6532 6568 6533 6569 … … 6544 6580 { 6545 6581 // IEMOP_MNEMONIC2(RI, PSRLW, psrlw, Ux, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0); 6546 return FNIEMOP_CALL_2(iemOpCommonSse2_Shift_Imm, bRm, iemAImpl_psrlw_imm_u128);6582 SSE2_SHIFT_BODY_Imm(psrlw, bRm, 0); 6547 6583 } 6548 6584 … … 6560 6596 { 6561 6597 // IEMOP_MNEMONIC2(RI, PSRAW, psraw, Ux, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0); 6562 return FNIEMOP_CALL_2(iemOpCommonSse2_Shift_Imm, bRm, iemAImpl_psraw_imm_u128);6598 SSE2_SHIFT_BODY_Imm(psraw, bRm, 0); 6563 6599 } 6564 6600 … … 6576 6612 { 6577 6613 // IEMOP_MNEMONIC2(RI, PSLLW, psllw, Ux, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0); 6578 return FNIEMOP_CALL_2(iemOpCommonSse2_Shift_Imm, bRm, iemAImpl_psllw_imm_u128);6614 SSE2_SHIFT_BODY_Imm(psllw, bRm, 0); 6579 6615 } 6580 6616 … … 6621 6657 { 6622 6658 // IEMOP_MNEMONIC2(RI, PSRLD, psrld, Ux, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0); 6623 return FNIEMOP_CALL_2(iemOpCommonSse2_Shift_Imm, bRm, iemAImpl_psrld_imm_u128);6659 SSE2_SHIFT_BODY_Imm(psrld, bRm, 0); 6624 6660 } 6625 6661 … … 6637 6673 { 6638 6674 // IEMOP_MNEMONIC2(RI, PSRAD, psrad, Ux, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0); 6639 return FNIEMOP_CALL_2(iemOpCommonSse2_Shift_Imm, bRm, iemAImpl_psrad_imm_u128);6675 SSE2_SHIFT_BODY_Imm(psrad, bRm, 0); 6640 6676 } 6641 6677 … … 6652 6688 { 6653 6689 // IEMOP_MNEMONIC2(RI, PSLLD, pslld, Ux, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0); 6654 return FNIEMOP_CALL_2(iemOpCommonSse2_Shift_Imm, bRm, iemAImpl_pslld_imm_u128);6690 SSE2_SHIFT_BODY_Imm(pslld, bRm, 0); 6655 6691 } 6656 6692 … … 6696 6732 { 6697 6733 // IEMOP_MNEMONIC2(RI, PSRLQ, psrlq, Ux, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0); 6698 return FNIEMOP_CALL_2(iemOpCommonSse2_Shift_Imm, bRm, iemAImpl_psrlq_imm_u128);6734 SSE2_SHIFT_BODY_Imm(psrlq, bRm, 0); 6699 6735 } 6700 6736 … … 6704 6740 { 6705 6741 // IEMOP_MNEMONIC2(RI, PSRLDQ, psrldq, Ux, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0); 6706 return FNIEMOP_CALL_2(iemOpCommonSse2_Shift_Imm, bRm, iemAImpl_psrldq_imm_u128);6742 SSE2_SHIFT_BODY_Imm(psrldq, bRm, 0); 6707 6743 } 6708 6744 … … 6720 6756 { 6721 6757 // IEMOP_MNEMONIC2(RI, PSLLQ, psllq, Ux, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0); 6722 return FNIEMOP_CALL_2(iemOpCommonSse2_Shift_Imm, bRm, iemAImpl_psllq_imm_u128);6758 SSE2_SHIFT_BODY_Imm(psllq, bRm, 0); 6723 6759 } 6724 6760 … … 6728 6764 { 6729 6765 // IEMOP_MNEMONIC2(RI, PSLLDQ, pslldq, Ux, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0); 6730 return FNIEMOP_CALL_2(iemOpCommonSse2_Shift_Imm, bRm, iemAImpl_pslldq_imm_u128);6766 SSE2_SHIFT_BODY_Imm(pslldq, bRm, 0); 6731 6767 } 6732 6768
Note:
See TracChangeset
for help on using the changeset viewer.