vbox的更動 67104 路徑 trunk/src/VBox/ValidationKit
- 時間撮記:
- 2017-5-25 下午10:44:22 (7 年 以前)
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1-template.c
r67103 r67104 2088 2088 2089 2089 2090 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_Msomething_Vsomething (PBS3CG1STATE pThis, unsigned iEncoding)2090 static unsigned BS3_NEAR_CODE Bs3Cg1EncodeNext_MODRM_Msomething_Vsomething_OR_ViceVersa(PBS3CG1STATE pThis, unsigned iEncoding) 2091 2091 { 2092 2092 unsigned off; … … 3619 3619 { 3620 3620 case BS3CG1ENC_MODRM_Eb_Gb: 3621 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Eb_Gb_OR_ViceVersa;3622 pThis->iRmOp = 0;3623 pThis->iRegOp = 1;3624 pThis->aOperands[0].cbOp = 1;3625 pThis->aOperands[1].cbOp = 1;3626 pThis->aOperands[0].idxFieldBase = BS3CG1DST_AL;3627 pThis->aOperands[1].idxFieldBase = BS3CG1DST_AL;3628 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX;3629 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_RW;3630 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3621 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Eb_Gb_OR_ViceVersa; 3622 pThis->iRmOp = 0; 3623 pThis->iRegOp = 1; 3624 pThis->aOperands[0].cbOp = 1; 3625 pThis->aOperands[1].cbOp = 1; 3626 pThis->aOperands[0].idxFieldBase = BS3CG1DST_AL; 3627 pThis->aOperands[1].idxFieldBase = BS3CG1DST_AL; 3628 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3629 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_RW; 3630 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3631 3631 break; 3632 3632 3633 3633 case BS3CG1ENC_MODRM_Ev_Gv: 3634 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Gv_Ev__OR__MODRM_Ev_Gv;3635 pThis->iRmOp = 0;3636 pThis->iRegOp = 1;3637 pThis->cbOperand = 2;3638 pThis->aOperands[0].idxFieldBase = BS3CG1DST_OZ_RAX;3639 pThis->aOperands[1].idxFieldBase = BS3CG1DST_OZ_RAX;3640 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX;3641 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_RW;3642 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3634 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Gv_Ev__OR__MODRM_Ev_Gv; 3635 pThis->iRmOp = 0; 3636 pThis->iRegOp = 1; 3637 pThis->cbOperand = 2; 3638 pThis->aOperands[0].idxFieldBase = BS3CG1DST_OZ_RAX; 3639 pThis->aOperands[1].idxFieldBase = BS3CG1DST_OZ_RAX; 3640 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3641 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_RW; 3642 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3643 3643 break; 3644 3644 3645 3645 case BS3CG1ENC_MODRM_Ed_WO_Pd_WZ: 3646 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_PdZx_WO_Ed_WZ;3647 pThis->iRmOp = 0;3648 pThis->iRegOp = 1;3649 pThis->aOperands[0].cbOp = 4;3650 pThis->aOperands[1].cbOp = 4;3651 pThis->aOperands[0].idxFieldBase = BS3CG1DST_EAX;3652 pThis->aOperands[1].idxFieldBase = BS3CG1DST_MM0;3653 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3654 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX;3655 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO;3656 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3646 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_PdZx_WO_Ed_WZ; 3647 pThis->iRmOp = 0; 3648 pThis->iRegOp = 1; 3649 pThis->aOperands[0].cbOp = 4; 3650 pThis->aOperands[1].cbOp = 4; 3651 pThis->aOperands[0].idxFieldBase = BS3CG1DST_EAX; 3652 pThis->aOperands[1].idxFieldBase = BS3CG1DST_MM0; 3653 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3654 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3655 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO; 3656 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3657 3657 break; 3658 3658 3659 3659 case BS3CG1ENC_MODRM_Eq_WO_Pq_WNZ: 3660 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Pq_WO_Eq_WNZ;3661 pThis->iRmOp = 0;3662 pThis->iRegOp = 1;3663 pThis->aOperands[0].cbOp = 8;3664 pThis->aOperands[1].cbOp = 8;3665 pThis->aOperands[0].idxFieldBase = BS3CG1DST_RAX;3666 pThis->aOperands[1].idxFieldBase = BS3CG1DST_MM0;3667 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3668 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX;3669 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO;3670 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3660 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Pq_WO_Eq_WNZ; 3661 pThis->iRmOp = 0; 3662 pThis->iRegOp = 1; 3663 pThis->aOperands[0].cbOp = 8; 3664 pThis->aOperands[1].cbOp = 8; 3665 pThis->aOperands[0].idxFieldBase = BS3CG1DST_RAX; 3666 pThis->aOperands[1].idxFieldBase = BS3CG1DST_MM0; 3667 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3668 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3669 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO; 3670 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3671 3671 break; 3672 3672 3673 3673 case BS3CG1ENC_MODRM_Ed_WO_Vd_WZ: 3674 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vd_WO_Ed_WZ;3675 pThis->iRmOp = 0;3676 pThis->iRegOp = 1;3677 pThis->aOperands[0].cbOp = 4;3678 pThis->aOperands[1].cbOp = 4;3679 pThis->aOperands[0].idxFieldBase = BS3CG1DST_EAX;3680 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0;3681 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3682 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX;3683 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO;3684 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3674 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vd_WO_Ed_WZ; 3675 pThis->iRmOp = 0; 3676 pThis->iRegOp = 1; 3677 pThis->aOperands[0].cbOp = 4; 3678 pThis->aOperands[1].cbOp = 4; 3679 pThis->aOperands[0].idxFieldBase = BS3CG1DST_EAX; 3680 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0; 3681 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3682 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3683 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO; 3684 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3685 3685 break; 3686 3686 3687 3687 case BS3CG1ENC_MODRM_Eq_WO_Vq_WNZ: 3688 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vq_WO_Eq_WNZ;3689 pThis->iRmOp = 0;3690 pThis->iRegOp = 1;3691 pThis->aOperands[0].cbOp = 8;3692 pThis->aOperands[1].cbOp = 8;3693 pThis->aOperands[0].idxFieldBase = BS3CG1DST_RAX;3694 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0;3695 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3696 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX;3697 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO;3698 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3688 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vq_WO_Eq_WNZ; 3689 pThis->iRmOp = 0; 3690 pThis->iRegOp = 1; 3691 pThis->aOperands[0].cbOp = 8; 3692 pThis->aOperands[1].cbOp = 8; 3693 pThis->aOperands[0].idxFieldBase = BS3CG1DST_RAX; 3694 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0; 3695 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3696 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3697 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO; 3698 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3699 3699 break; 3700 3700 3701 3701 case BS3CG1ENC_MODRM_Gb_Eb: 3702 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Eb_Gb_OR_ViceVersa;3703 pThis->iRegOp = 0;3704 pThis->iRmOp = 1;3705 pThis->aOperands[0].cbOp = 1;3706 pThis->aOperands[1].cbOp = 1;3707 pThis->aOperands[0].idxFieldBase = BS3CG1DST_AL;3708 pThis->aOperands[1].idxFieldBase = BS3CG1DST_AL;3709 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3710 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX;3711 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM;3702 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Eb_Gb_OR_ViceVersa; 3703 pThis->iRegOp = 0; 3704 pThis->iRmOp = 1; 3705 pThis->aOperands[0].cbOp = 1; 3706 pThis->aOperands[1].cbOp = 1; 3707 pThis->aOperands[0].idxFieldBase = BS3CG1DST_AL; 3708 pThis->aOperands[1].idxFieldBase = BS3CG1DST_AL; 3709 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3710 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX; 3711 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM; 3712 3712 break; 3713 3713 3714 3714 case BS3CG1ENC_MODRM_Gv_Ev: 3715 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Gv_Ev__OR__MODRM_Ev_Gv;3716 pThis->iRegOp = 0;3717 pThis->iRmOp = 1;3718 pThis->cbOperand = 2;3719 pThis->aOperands[0].idxFieldBase = BS3CG1DST_OZ_RAX;3720 pThis->aOperands[1].idxFieldBase = BS3CG1DST_OZ_RAX;3721 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3722 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX;3723 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM;3715 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Gv_Ev__OR__MODRM_Ev_Gv; 3716 pThis->iRegOp = 0; 3717 pThis->iRmOp = 1; 3718 pThis->cbOperand = 2; 3719 pThis->aOperands[0].idxFieldBase = BS3CG1DST_OZ_RAX; 3720 pThis->aOperands[1].idxFieldBase = BS3CG1DST_OZ_RAX; 3721 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3722 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX; 3723 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM; 3724 3724 break; 3725 3725 3726 3726 case BS3CG1ENC_MODRM_Gv_RO_Ma: /* bound instr */ 3727 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Gv_RO_Ma;3728 pThis->iRmOp = 1;3729 pThis->iRegOp = 0;3730 pThis->cbOperand = 2;3731 pThis->aOperands[0].cbOp = 2;3732 pThis->aOperands[1].cbOp = 4;3733 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3734 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_MEM;3735 pThis->aOperands[0].idxFieldBase = BS3CG1DST_OZ_RAX;3727 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Gv_RO_Ma; 3728 pThis->iRmOp = 1; 3729 pThis->iRegOp = 0; 3730 pThis->cbOperand = 2; 3731 pThis->aOperands[0].cbOp = 2; 3732 pThis->aOperands[1].cbOp = 4; 3733 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3734 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_MEM; 3735 pThis->aOperands[0].idxFieldBase = BS3CG1DST_OZ_RAX; 3736 3736 break; 3737 3737 3738 3738 case BS3CG1ENC_MODRM_Wss_WO_Vss: 3739 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa;3740 pThis->iRmOp = 0;3741 pThis->iRegOp = 1;3742 pThis->aOperands[0].cbOp = 4;3743 pThis->aOperands[1].cbOp = 4;3744 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_DW0;3745 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_DW0;3746 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO;3747 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX;3748 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3739 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa; 3740 pThis->iRmOp = 0; 3741 pThis->iRegOp = 1; 3742 pThis->aOperands[0].cbOp = 4; 3743 pThis->aOperands[1].cbOp = 4; 3744 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_DW0; 3745 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_DW0; 3746 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO; 3747 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3748 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3749 3749 break; 3750 3750 3751 3751 case BS3CG1ENC_MODRM_Wsd_WO_Vsd: 3752 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa;3753 pThis->iRmOp = 0;3754 pThis->iRegOp = 1;3755 pThis->aOperands[0].cbOp = 8;3756 pThis->aOperands[1].cbOp = 8;3757 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO;3758 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO;3759 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO;3760 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX;3761 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3752 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa; 3753 pThis->iRmOp = 0; 3754 pThis->iRegOp = 1; 3755 pThis->aOperands[0].cbOp = 8; 3756 pThis->aOperands[1].cbOp = 8; 3757 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO; 3758 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO; 3759 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO; 3760 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3761 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3762 3762 break; 3763 3763 3764 3764 case BS3CG1ENC_MODRM_WqZxReg_WO_Vq: 3765 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa;3766 pThis->iRmOp = 0;3767 pThis->iRegOp = 1;3768 pThis->aOperands[0].cbOp = 8;3769 pThis->aOperands[1].cbOp = 8;3770 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO_ZX;3771 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO;3772 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX;3773 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO;3774 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3765 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa; 3766 pThis->iRmOp = 0; 3767 pThis->iRegOp = 1; 3768 pThis->aOperands[0].cbOp = 8; 3769 pThis->aOperands[1].cbOp = 8; 3770 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO_ZX; 3771 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO; 3772 pThis->aOperands[0].enmLocationReg = BS3CG1OPLOC_CTX; 3773 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO; 3774 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3775 3775 break; 3776 3776 … … 3790 3790 3791 3791 case BS3CG1ENC_MODRM_Vdq_WO_Mdq: 3792 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_MsomethingWO_Vsomething_OR_ViceVersa;3793 pThis->iRegOp = 0;3794 pThis->iRmOp = 1;3795 pThis->aOperands[0].cbOp = 16;3796 pThis->aOperands[1].cbOp = 16;3797 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3798 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_MEM;3799 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0;3792 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_MsomethingWO_Vsomething_OR_ViceVersa; 3793 pThis->iRegOp = 0; 3794 pThis->iRmOp = 1; 3795 pThis->aOperands[0].cbOp = 16; 3796 pThis->aOperands[1].cbOp = 16; 3797 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3798 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_MEM; 3799 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0; 3800 3800 break; 3801 3801 … … 3816 3816 3817 3817 case BS3CG1ENC_MODRM_Pq_WO_Qq: 3818 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Pq_WO_Qq;3819 pThis->iRegOp = 0;3820 pThis->iRmOp = 1;3821 pThis->aOperands[0].cbOp = 8;3822 pThis->aOperands[1].cbOp = 8;3823 pThis->aOperands[0].idxFieldBase = BS3CG1DST_MM0;3824 pThis->aOperands[1].idxFieldBase = BS3CG1DST_MM0;3825 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3826 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3827 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX;3828 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM;3818 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Pq_WO_Qq; 3819 pThis->iRegOp = 0; 3820 pThis->iRmOp = 1; 3821 pThis->aOperands[0].cbOp = 8; 3822 pThis->aOperands[1].cbOp = 8; 3823 pThis->aOperands[0].idxFieldBase = BS3CG1DST_MM0; 3824 pThis->aOperands[1].idxFieldBase = BS3CG1DST_MM0; 3825 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3826 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3827 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX; 3828 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM; 3829 3829 break; 3830 3830 3831 3831 case BS3CG1ENC_MODRM_Pq_WO_Uq: 3832 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Pq_WO_Uq;3833 pThis->iRegOp = 0;3834 pThis->iRmOp = 1;3835 pThis->aOperands[0].cbOp = 8;3836 pThis->aOperands[1].cbOp = 8;3837 pThis->aOperands[0].idxFieldBase = BS3CG1DST_MM0;3838 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO;3839 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3840 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; /* reg only */3832 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Pq_WO_Uq; 3833 pThis->iRegOp = 0; 3834 pThis->iRmOp = 1; 3835 pThis->aOperands[0].cbOp = 8; 3836 pThis->aOperands[1].cbOp = 8; 3837 pThis->aOperands[0].idxFieldBase = BS3CG1DST_MM0; 3838 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO; 3839 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3840 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; /* reg only */ 3841 3841 break; 3842 3842 3843 3843 case BS3CG1ENC_MODRM_PdZx_WO_Ed_WZ: 3844 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_PdZx_WO_Ed_WZ;3845 pThis->iRegOp = 0;3846 pThis->iRmOp = 1;3847 pThis->aOperands[0].cbOp = 4;3848 pThis->aOperands[1].cbOp = 4;3849 pThis->aOperands[0].idxFieldBase = BS3CG1DST_MM0_LO_ZX;3850 pThis->aOperands[1].idxFieldBase = BS3CG1DST_EAX;3851 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3852 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3853 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX;3854 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM;3844 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_PdZx_WO_Ed_WZ; 3845 pThis->iRegOp = 0; 3846 pThis->iRmOp = 1; 3847 pThis->aOperands[0].cbOp = 4; 3848 pThis->aOperands[1].cbOp = 4; 3849 pThis->aOperands[0].idxFieldBase = BS3CG1DST_MM0_LO_ZX; 3850 pThis->aOperands[1].idxFieldBase = BS3CG1DST_EAX; 3851 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3852 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3853 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX; 3854 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM; 3855 3855 break; 3856 3856 3857 3857 case BS3CG1ENC_MODRM_Pq_WO_Eq_WNZ: 3858 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Pq_WO_Eq_WNZ;3859 pThis->iRegOp = 0;3860 pThis->iRmOp = 1;3861 pThis->aOperands[0].cbOp = 8;3862 pThis->aOperands[1].cbOp = 8;3863 pThis->aOperands[0].idxFieldBase = BS3CG1DST_MM0;3864 pThis->aOperands[1].idxFieldBase = BS3CG1DST_RAX;3865 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3866 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3867 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX;3868 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM;3858 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Pq_WO_Eq_WNZ; 3859 pThis->iRegOp = 0; 3860 pThis->iRmOp = 1; 3861 pThis->aOperands[0].cbOp = 8; 3862 pThis->aOperands[1].cbOp = 8; 3863 pThis->aOperands[0].idxFieldBase = BS3CG1DST_MM0; 3864 pThis->aOperands[1].idxFieldBase = BS3CG1DST_RAX; 3865 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3866 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3867 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX; 3868 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM; 3869 3869 break; 3870 3870 3871 3871 case BS3CG1ENC_MODRM_VdZx_WO_Ed_WZ: 3872 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vd_WO_Ed_WZ;3873 pThis->iRegOp = 0;3874 pThis->iRmOp = 1;3875 pThis->aOperands[0].cbOp = 4;3876 pThis->aOperands[1].cbOp = 4;3877 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_DW0_ZX;3878 pThis->aOperands[1].idxFieldBase = BS3CG1DST_EAX;3879 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3880 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3881 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX;3882 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM;3872 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vd_WO_Ed_WZ; 3873 pThis->iRegOp = 0; 3874 pThis->iRmOp = 1; 3875 pThis->aOperands[0].cbOp = 4; 3876 pThis->aOperands[1].cbOp = 4; 3877 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_DW0_ZX; 3878 pThis->aOperands[1].idxFieldBase = BS3CG1DST_EAX; 3879 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3880 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3881 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX; 3882 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM; 3883 3883 break; 3884 3884 3885 3885 case BS3CG1ENC_MODRM_VqZx_WO_Eq_WNZ: 3886 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vq_WO_Eq_WNZ;3887 pThis->iRegOp = 0;3888 pThis->iRmOp = 1;3889 pThis->aOperands[0].cbOp = 8;3890 pThis->aOperands[1].cbOp = 8;3891 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO_ZX;3892 pThis->aOperands[1].idxFieldBase = BS3CG1DST_RAX;3893 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3894 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3895 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX;3896 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM;3886 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vq_WO_Eq_WNZ; 3887 pThis->iRegOp = 0; 3888 pThis->iRmOp = 1; 3889 pThis->aOperands[0].cbOp = 8; 3890 pThis->aOperands[1].cbOp = 8; 3891 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO_ZX; 3892 pThis->aOperands[1].idxFieldBase = BS3CG1DST_RAX; 3893 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3894 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3895 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX; 3896 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM; 3897 3897 break; 3898 3898 3899 3899 case BS3CG1ENC_MODRM_Vq_WO_UqHi: 3900 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Usomething_OR_ViceVersa;3901 pThis->iRegOp = 0;3902 pThis->iRmOp = 1;3903 pThis->aOperands[0].cbOp = 8;3904 pThis->aOperands[1].cbOp = 8;3905 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO;3906 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_HI;3907 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3908 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3900 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Usomething_OR_ViceVersa; 3901 pThis->iRegOp = 0; 3902 pThis->iRmOp = 1; 3903 pThis->aOperands[0].cbOp = 8; 3904 pThis->aOperands[1].cbOp = 8; 3905 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO; 3906 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_HI; 3907 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3908 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3909 3909 break; 3910 3910 3911 3911 case BS3CG1ENC_MODRM_VqHi_WO_Uq: 3912 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Usomething_OR_ViceVersa;3913 pThis->iRegOp = 0;3914 pThis->iRmOp = 1;3915 pThis->aOperands[0].cbOp = 8;3916 pThis->aOperands[1].cbOp = 8;3917 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_HI;3918 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO;3919 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3920 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3912 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Usomething_OR_ViceVersa; 3913 pThis->iRegOp = 0; 3914 pThis->iRmOp = 1; 3915 pThis->aOperands[0].cbOp = 8; 3916 pThis->aOperands[1].cbOp = 8; 3917 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_HI; 3918 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO; 3919 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3920 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3921 3921 break; 3922 3922 3923 3923 case BS3CG1ENC_MODRM_VqHi_WO_Mq: 3924 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Msomething_Vsomething ;3924 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Msomething_Vsomething_OR_ViceVersa; 3925 3925 pThis->iRegOp = 0; 3926 3926 pThis->iRmOp = 1; … … 3933 3933 3934 3934 case BS3CG1ENC_MODRM_Vq_WO_Mq: 3935 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Msomething_Vsomething ;3935 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Msomething_Vsomething_OR_ViceVersa; 3936 3936 pThis->iRegOp = 0; 3937 3937 pThis->iRmOp = 1; … … 3944 3944 3945 3945 case BS3CG1ENC_MODRM_VssZx_WO_Wss: 3946 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa;3947 pThis->iRegOp = 0;3948 pThis->iRmOp = 1;3949 pThis->aOperands[0].cbOp = 4;3950 pThis->aOperands[1].cbOp = 4;3951 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3952 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX;3953 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM;3954 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_DW0_ZX;3955 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO;3946 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa; 3947 pThis->iRegOp = 0; 3948 pThis->iRmOp = 1; 3949 pThis->aOperands[0].cbOp = 4; 3950 pThis->aOperands[1].cbOp = 4; 3951 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3952 pThis->aOperands[1].enmLocationReg = BS3CG1OPLOC_CTX; 3953 pThis->aOperands[1].enmLocationMem = BS3CG1OPLOC_MEM; 3954 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_DW0_ZX; 3955 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0_LO; 3956 3956 break; 3957 3957 3958 3958 case BS3CG1ENC_MODRM_VqZx_WO_Nq: 3959 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Nsomething;3960 pThis->iRegOp = 0;3961 pThis->iRmOp = 1;3962 pThis->aOperands[0].cbOp = 8;3963 pThis->aOperands[1].cbOp = 8;3964 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;3965 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;3966 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO_ZX;3967 pThis->aOperands[1].idxFieldBase = BS3CG1DST_MM0;3959 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Nsomething; 3960 pThis->iRegOp = 0; 3961 pThis->iRmOp = 1; 3962 pThis->aOperands[0].cbOp = 8; 3963 pThis->aOperands[1].cbOp = 8; 3964 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3965 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 3966 pThis->aOperands[0].idxFieldBase = BS3CG1DST_XMM0_LO_ZX; 3967 pThis->aOperands[1].idxFieldBase = BS3CG1DST_MM0; 3968 3968 break; 3969 3969 3970 3970 case BS3CG1ENC_MODRM_VsdZx_WO_Wsd: 3971 3971 case BS3CG1ENC_MODRM_VqZx_WO_Wq: 3972 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa;3973 pThis->iRegOp = 0;3974 pThis->iRmOp = 1;3975 pThis->aOperands[0].cbOp = 8;3976 pThis->aOperands[1].cbOp = 8;3972 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Vsomething_Wsomething_OR_ViceVersa; 3973 pThis->iRegOp = 0; 3974 pThis->iRmOp = 1; 3975 pThis->aOperands[0].cbOp = 8; 3976 pThis->aOperands[1].cbOp = 8; 3977 3977 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 3978 3978 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; … … 4008 4008 4009 4009 case BS3CG1ENC_MODRM_Mdq_WO_Vdq: 4010 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_MsomethingWO_Vsomething_OR_ViceVersa;4011 pThis->iRmOp = 0;4012 pThis->iRegOp = 1;4013 pThis->aOperands[0].cbOp = 16;4014 pThis->aOperands[1].cbOp = 16;4015 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_MEM_WO;4016 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;4017 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0;4010 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_MsomethingWO_Vsomething_OR_ViceVersa; 4011 pThis->iRmOp = 0; 4012 pThis->iRegOp = 1; 4013 pThis->aOperands[0].cbOp = 16; 4014 pThis->aOperands[1].cbOp = 16; 4015 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_MEM_WO; 4016 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 4017 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0; 4018 4018 break; 4019 4019 4020 4020 case BS3CG1ENC_MODRM_Mq_WO_Pq: 4021 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Msomething_Psomething;4022 pThis->iRmOp = 0;4023 pThis->iRegOp = 1;4024 pThis->aOperands[0].cbOp = 8;4025 pThis->aOperands[1].cbOp = 8;4026 pThis->aOperands[1].idxFieldBase = BS3CG1DST_MM0;4027 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_MEM_WO;4028 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;4021 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Msomething_Psomething; 4022 pThis->iRmOp = 0; 4023 pThis->iRegOp = 1; 4024 pThis->aOperands[0].cbOp = 8; 4025 pThis->aOperands[1].cbOp = 8; 4026 pThis->aOperands[1].idxFieldBase = BS3CG1DST_MM0; 4027 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_MEM_WO; 4028 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 4029 4029 break; 4030 4030 4031 4031 case BS3CG1ENC_MODRM_Mq_WO_Vq: 4032 4032 case BS3CG1ENC_MODRM_Mq_WO_VqHi: 4033 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Msomething_Vsomething;4034 pThis->iRmOp = 0;4035 pThis->iRegOp = 1;4036 pThis->aOperands[0].cbOp = 8;4037 pThis->aOperands[1].cbOp = 8;4033 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_Msomething_Vsomething_OR_ViceVersa; 4034 pThis->iRmOp = 0; 4035 pThis->iRegOp = 1; 4036 pThis->aOperands[0].cbOp = 8; 4037 pThis->aOperands[1].cbOp = 8; 4038 4038 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_MEM_WO; 4039 4039 pThis->aOperands[0].enmLocationMem = BS3CG1OPLOC_MEM_WO; … … 4045 4045 case BS3CG1ENC_MODRM_Mps_WO_Vps: 4046 4046 case BS3CG1ENC_MODRM_Mpd_WO_Vpd: 4047 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_MsomethingWO_Vsomething_OR_ViceVersa;4048 pThis->iRmOp = 0;4049 pThis->iRegOp = 1;4050 pThis->aOperands[0].cbOp = 16;4051 pThis->aOperands[1].cbOp = 16;4052 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_MEM_WO;4053 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX;4054 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0;4047 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_MsomethingWO_Vsomething_OR_ViceVersa; 4048 pThis->iRmOp = 0; 4049 pThis->iRegOp = 1; 4050 pThis->aOperands[0].cbOp = 16; 4051 pThis->aOperands[1].cbOp = 16; 4052 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_MEM_WO; 4053 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_CTX; 4054 pThis->aOperands[1].idxFieldBase = BS3CG1DST_XMM0; 4055 4055 break; 4056 4056 … … 4060 4060 4061 4061 case BS3CG1ENC_FIXED_AL_Ib: 4062 pThis->aOperands[0].cbOp = 1;4063 pThis->aOperands[1].cbOp = 1;4064 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;4065 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_IMM;4066 pThis->aOperands[0].idxField = BS3CG1DST_AL;4067 pThis->aOperands[1].idxField = BS3CG1DST_INVALID;4062 pThis->aOperands[0].cbOp = 1; 4063 pThis->aOperands[1].cbOp = 1; 4064 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 4065 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_IMM; 4066 pThis->aOperands[0].idxField = BS3CG1DST_AL; 4067 pThis->aOperands[1].idxField = BS3CG1DST_INVALID; 4068 4068 break; 4069 4069 4070 4070 case BS3CG1ENC_FIXED_rAX_Iz: 4071 pThis->aOperands[0].cbOp = 2;4072 pThis->aOperands[1].cbOp = 2;4073 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX;4074 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_IMM;4075 pThis->aOperands[0].idxField = BS3CG1DST_OZ_RAX;4076 pThis->aOperands[1].idxField = BS3CG1DST_INVALID;4071 pThis->aOperands[0].cbOp = 2; 4072 pThis->aOperands[1].cbOp = 2; 4073 pThis->aOperands[0].enmLocation = BS3CG1OPLOC_CTX; 4074 pThis->aOperands[1].enmLocation = BS3CG1OPLOC_IMM; 4075 pThis->aOperands[0].idxField = BS3CG1DST_OZ_RAX; 4076 pThis->aOperands[1].idxField = BS3CG1DST_INVALID; 4077 4077 break; 4078 4078 4079 4079 /* Unused or invalid instructions mostly. */ 4080 4080 case BS3CG1ENC_MODRM_MOD_EQ_3: 4081 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_MOD_EQ_3;4081 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_MOD_EQ_3; 4082 4082 break; 4083 4083 case BS3CG1ENC_MODRM_MOD_NE_3: 4084 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_MOD_NE_3;4084 pThis->pfnEncoder = Bs3Cg1EncodeNext_MODRM_MOD_NE_3; 4085 4085 break; 4086 4086
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器