Home | History | Annotate | Download | only in priv

Lines Matching refs:modrm

495 /* Figure out whether the mod and rm parts of a modRM byte refer to a
504 /* Extract the 'g' field from a modRM byte. This only produces 3
513 /* Ditto the 'e' field of a modRM byte. */
826 modrm bytes supply the low 3 bits of the register number. The
832 e register field (when the mod part of modrm indicates that modrm's
840 number extracted from the modrm e or g field is treated as an index
1216 /* Functions for getting register numbers from modrm bytes and REX
1220 /* Extract the g reg field from a modRM byte, and augment it using the
1231 /* Extract the e reg field from a modRM byte, and augment it using the
1233 associated with the e register field (when modrm indicates e is a
1249 field in a modrm byte, taking into account REX (or its absence),
1295 field in a modrm byte, taking into account REX (or its absence),
2384 /* Generate IR to calculate an address indicated by a ModRM and
2763 Is passed the a ptr to the modRM byte, the actual operation, and the
2887 Is passed the a ptr to the modRM byte, the actual operation, and the
3023 Is passed the a ptr to the modRM byte, and the data size. Returns
3069 Is passed the a ptr to the modRM byte, and the data size. Returns
3270 Long delta, UChar modrm,
3283 switch (gregLO3ofRM(modrm)) {
3293 if (epartIsReg(modrm)) {
3296 assign(dst0, getIRegE(sz,pfx,modrm));
3299 if (gregLO3ofRM(modrm) == 2 /* ADC */) {
3303 if (gregLO3ofRM(modrm) == 3 /* SBB */) {
3314 if (gregLO3ofRM(modrm) < 7)
3315 putIRegE(sz, pfx, modrm, mkexpr(dst1));
3319 nameGrp1(gregLO3ofRM(modrm)), nameISize(sz), d64,
3320 nameIRegE(sz,pfx,modrm));
3327 if (gregLO3ofRM(modrm) == 2 /* ADC */) {
3338 if (gregLO3ofRM(modrm) == 3 /* SBB */) {
3350 if (gregLO3ofRM(modrm) < 7) {
3367 nameGrp1(gregLO3ofRM(modrm)), nameISize(sz),
3380 Long delta, UChar modrm,
3384 /* delta on entry points at the modrm byte. */
3398 if (epartIsReg(modrm)) {
3399 assign(dst0, getIRegE(sz, pfx, modrm));
3408 switch (gregLO3ofRM(modrm)) { case 4: case 5: case 6: case 7: isShift = True; }
3411 switch (gregLO3ofRM(modrm)) { case 0: case 1: isRotate = True; }
3414 switch (gregLO3ofRM(modrm)) { case 2: case 3: isRotateC = True; }
3430 Bool left = toBool(gregLO3ofRM(modrm) == 2);
3487 switch (gregLO3ofRM(modrm)) {
3540 Bool left = toBool(gregLO3ofRM(modrm) == 0);
3619 if (epartIsReg(modrm)) {
3620 putIRegE(sz, pfx, modrm, mkexpr(dst1));
3623 nameGrp2(gregLO3ofRM(modrm)), nameISize(sz) );
3628 vex_printf(", %s\n", nameIRegE(sz,pfx,modrm));
3634 nameGrp2(gregLO3ofRM(modrm)), nameISize(sz) );
3650 Long delta, UChar modrm,
3655 And delta on entry points at the modrm byte. */
3678 switch (gregLO3ofRM(modrm)) {
3692 if (epartIsReg(modrm)) {
3694 assign( t2, widenUto64(getIRegE(sz, pfx, modrm)) );
3696 DIP("%s%c $0x%llx, %s\n", nameGrp8(gregLO3ofRM(modrm)),
3698 src_val, nameIRegE(sz,pfx,modrm));
3704 DIP("%s%c $0x%llx, %s\n", nameGrp8(gregLO3ofRM(modrm)),
3710 switch (gregLO3ofRM(modrm)) {
3728 if (gregLO3ofRM(modrm) != 4 /* BT */) {
3729 if (epartIsReg(modrm)) {
3730 putIRegE(sz, pfx, modrm, narrowTo(ty, mkexpr(t2m)));
3843 UChar modrm;
3851 modrm = getUChar(delta);
3852 if (epartIsReg(modrm)) {
3853 switch (gregLO3ofRM(modrm)) {
3860 getIRegE(sz,pfx,modrm),
3865 nameIRegE(sz, pfx, modrm));
3873 putIRegE(sz, pfx, modrm,
3875 getIRegE(sz, pfx, modrm)));
3877 nameIRegE(sz, pfx, modrm));
3885 assign(src, getIRegE(sz, pfx, modrm));
3889 putIRegE(sz, pfx, modrm, mkexpr(dst1));
3890 DIP("neg%c %s\n", nameISize(sz), nameIRegE(sz, pfx, modrm));
3895 assign(src, getIRegE(sz,pfx,modrm));
3897 nameIRegE(sz,pfx,modrm) );
3902 assign(src, getIRegE(sz,pfx,modrm));
3904 nameIRegE(sz,pfx,modrm) );
3908 assign( t1, getIRegE(sz, pfx, modrm) );
3911 nameIRegE(sz, pfx, modrm));
3915 assign( t1, getIRegE(sz, pfx, modrm) );
3918 nameIRegE(sz, pfx, modrm));
3928 gregLO3ofRM(modrm)==0/*TEST*/
3935 switch (gregLO3ofRM(modrm)) {
4007 UChar modrm;
4015 modrm = getUChar(delta);
4016 if (epartIsReg(modrm)) {
4017 assign(t1, getIRegE(1, pfx, modrm));
4018 switch (gregLO3ofRM(modrm)) {
4021 putIRegE(1, pfx, modrm, mkexpr(t2));
4026 putIRegE(1, pfx, modrm, mkexpr(t2));
4034 DIP("%sb %s\n", nameGrp4(gregLO3ofRM(modrm)),
4035 nameIRegE(1, pfx, modrm));
4039 switch (gregLO3ofRM(modrm)) {
4065 DIP("%sb %s\n", nameGrp4(gregLO3ofRM(modrm)), dis_buf);
4078 UChar modrm;
4089 modrm = getUChar(delta);
4090 if (epartIsReg(modrm)) {
4091 assign(t1, getIRegE(sz,pfx,modrm));
4092 switch (gregLO3ofRM(modrm)) {
4098 putIRegE(sz,pfx,modrm, mkexpr(t2));
4105 putIRegE(sz,pfx,modrm, mkexpr(t2));
4112 assign(t3, getIRegE(sz,pfx,modrm));
4127 assign(t3, getIRegE(sz,pfx,modrm));
4137 DIP("%s%c %s\n", nameGrp5(gregLO3ofRM(modrm)),
4139 nameIRegE(sz, pfx, modrm));
4142 if (gregLO3ofRM(modrm) != 2 && gregLO3ofRM(modrm) != 4
4143 && gregLO3ofRM(modrm) != 6) {
4146 switch (gregLO3ofRM(modrm)) {
4217 DIP("%s%c %s\n", nameGrp5(gregLO3ofRM(modrm)),
5021 /* On entry, delta points at the second byte of the insn (the modrm
5024 UChar modrm = getUChar(delta+0);
5029 if (modrm < 0xC0) {
5031 /* bits 5,4,3 are an opcode extension, and the modRM also
5036 switch (gregLO3ofRM(modrm)) {
5100 vex_printf("unhandled opc_aux = 0x%2x\n", gregLO3ofRM(modrm));
5106 switch (modrm) {
5109 fp_do_op_ST_ST ( "add", Iop_AddF64, modrm - 0xC0, 0, False );
5113 fp_do_op_ST_ST ( "mul", Iop_MulF64, modrm - 0xC8, 0, False );
5118 r_dst = (UInt)modrm - 0xD0;
5133 r_dst = (UInt)modrm - 0xD8;
5148 fp_do_op_ST_ST ( "sub", Iop_SubF64, modrm - 0xE0, 0, False );
5152 fp_do_oprev_ST_ST ( "subr", Iop_SubF64, modrm - 0xE8, 0, False );
5156 fp_do_op_ST_ST ( "div", Iop_DivF64, modrm - 0xF0, 0, False );
5160 fp_do_oprev_ST_ST ( "divr", Iop_DivF64, modrm - 0xF8, 0, False );
5172 if (modrm < 0xC0) {
5174 /* bits 5,4,3 are an opcode extension, and the modRM also
5179 switch (gregLO3ofRM(modrm)) {
5361 vex_printf("unhandled opc_aux = 0x%2x\n", gregLO3ofRM(modrm));
5368 switch (modrm) {
5371 r_src = (UInt)modrm - 0xC0;
5380 r_src = (UInt)modrm - 0xC8;
5671 if (modrm < 0xC0) {
5673 /* bits 5,4,3 are an opcode extension, and the modRM also
5678 switch (gregLO3ofRM(modrm)) {
5729 vex_printf("unhandled opc_aux = 0x%2x\n", gregLO3ofRM(modrm));
5737 switch (modrm) {
5740 r_src = (UInt)modrm - 0xC0;
5750 r_src = (UInt)modrm - 0xC8;
5760 r_src = (UInt)modrm - 0xD0;
5770 r_src = (UInt)modrm - 0xD8;
5804 if (modrm < 0xC0) {
5806 /* bits 5,4,3 are an opcode extension, and the modRM also
5811 switch (gregLO3ofRM(modrm)) {
5897 vex_printf("unhandled opc_aux = 0x%2x\n", gregLO3ofRM(modrm));
5905 switch (modrm) {
5908 r_src = (UInt)modrm - 0xC0;
5918 r_src = (UInt)modrm - 0xC8;
5932 r_src = (UInt)modrm - 0xD0;
5946 r_src = (UInt)modrm - 0xD8;
6005 fp_do_ucomi_ST0_STi( (UInt)modrm - 0xE8, False );
6009 fp_do_ucomi_ST0_STi( (UInt)modrm - 0xF0, False );
6021 if (modrm < 0xC0) {
6023 /* bits 5,4,3 are an opcode extension, and the modRM also
6028 switch (gregLO3ofRM(modrm)) {
6085 vex_printf("unhandled opc_aux = 0x%2x\n", gregLO3ofRM(modrm));
6093 switch (modrm) {
6096 fp_do_op_ST_ST ( "add", Iop_AddF64, 0, modrm - 0xC0, False );
6100 fp_do_op_ST_ST ( "mul", Iop_MulF64, 0, modrm - 0xC8, False );
6104 fp_do_oprev_ST_ST ( "subr", Iop_SubF64, 0, modrm - 0xE0, False );
6108 fp_do_op_ST_ST ( "sub", Iop_SubF64, 0, modrm - 0xE8, False );
6112 fp_do_oprev_ST_ST ( "divr", Iop_DivF64, 0, modrm - 0xF0, False );
6116 fp_do_op_ST_ST ( "div", Iop_DivF64, 0, modrm - 0xF8, False );
6130 if (modrm < 0xC0) {
6132 /* bits 5,4,3 are an opcode extension, and the modRM also
6137 switch (gregLO3ofRM(modrm)) {
6319 vex_printf("unhandled opc_aux = 0x%2x\n", gregLO3ofRM(modrm));
6325 switch (modrm) {
6328 r_dst = (UInt)modrm - 0xC0;
6334 r_dst = (UInt)modrm - 0xD0;
6343 r_dst = (UInt)modrm - 0xD8;
6353 r_dst = (UInt)modrm - 0xE0;
6367 r_dst = (UInt)modrm - 0xE8;
6391 if (modrm < 0xC0) {
6393 /* bits 5,4,3 are an opcode extension, and the modRM also
6399 switch (gregLO3ofRM(modrm)) {
6452 vex_printf("unhandled opc_aux = 0x%2x\n", gregLO3ofRM(modrm));
6460 switch (modrm) {
6463 fp_do_op_ST_ST ( "add", Iop_AddF64, 0, modrm - 0xC0, True );
6467 fp_do_op_ST_ST ( "mul", Iop_MulF64, 0, modrm - 0xC8, True );
6486 fp_do_oprev_ST_ST ( "subr", Iop_SubF64, 0, modrm - 0xE0, True );
6490 fp_do_op_ST_ST ( "sub", Iop_SubF64, 0, modrm - 0xE8, True );
6494 fp_do_oprev_ST_ST ( "divr", Iop_DivF64, 0, modrm - 0xF0, True );
6498 fp_do_op_ST_ST ( "div", Iop_DivF64, 0, modrm - 0xF8, True );
6512 if (modrm < 0xC0) {
6514 /* bits 5,4,3 are an opcode extension, and the modRM also
6519 switch (gregLO3ofRM(modrm)) {
6568 vex_printf("unhandled opc_aux = 0x%2x\n", gregLO3ofRM(modrm));
6576 switch (modrm) {
6604 fp_do_ucomi_ST0_STi( (UInt)modrm - 0xE8, True );
6609 fp_do_ucomi_ST0_STi( (UInt)modrm - 0xF0, True );
6700 UChar modrm = getUChar(delta);
6701 Bool isReg = epartIsReg(modrm);
6790 argG = getMMXReg(gregLO3ofRM(modrm));
6796 argE = getMMXReg(eregLO3ofRM(modrm));
6828 putMMXReg( gregLO3ofRM(modrm), mkexpr(res) );
6832 ( isReg ? nameMMXReg(eregLO3ofRM(modrm)) : dis_buf ),
6833 nameMMXReg(gregLO3ofRM(modrm)) );
6978 UChar modrm;
6991 modrm = getUChar(delta);
6992 if (epartIsReg(modrm)) {
6995 gregLO3ofRM(modrm),
6998 getIReg32(eregOfRexRM(pfx,modrm)) ) );
7000 nameIReg32(eregOfRexRM(pfx,modrm)),
7001 nameMMXReg(gregLO3ofRM(modrm)));
7006 gregLO3ofRM(modrm),
7010 DIP("movd %s, %s\n", dis_buf, nameMMXReg(gregLO3ofRM(modrm)));
7016 modrm = getUChar(delta);
7017 if (epartIsReg(modrm)) {
7019 putMMXReg( gregLO3ofRM(modrm),
7020 getIReg64(eregOfRexRM(pfx,modrm)) );
7022 nameIReg64(eregOfRexRM(pfx,modrm)),
7023 nameMMXReg(gregLO3ofRM(modrm)));
7027 putMMXReg( gregLO3ofRM(modrm),
7029 DIP("movd{64} %s, %s\n", dis_buf, nameMMXReg(gregLO3ofRM(modrm)));
7040 modrm = getUChar(delta);
7041 if (epartIsReg(modrm)) {
7043 putIReg32( eregOfRexRM(pfx,modrm),
7044 unop(Iop_64to32, getMMXReg(gregLO3ofRM(modrm)) ) );
7046 nameMMXReg(gregLO3ofRM(modrm)),
7047 nameIReg32(eregOfRexRM(pfx,modrm)));
7052 unop(Iop_64to32, getMMXReg(gregLO3ofRM(modrm)) ) );
7053 DIP("movd %s, %s\n", nameMMXReg(gregLO3ofRM(modrm)), dis_buf);
7059 modrm = getUChar(delta);
7060 if (epartIsReg(modrm)) {
7062 putIReg64( eregOfRexRM(pfx,modrm),
7063 getMMXReg(gregLO3ofRM(modrm)) );
7065 nameMMXReg(gregLO3ofRM(modrm)),
7066 nameIReg64(eregOfRexRM(pfx,modrm)));
7071 getMMXReg(gregLO3ofRM(modrm)) );
7072 DIP("movd{64} %s, %s\n", nameMMXReg(gregLO3ofRM(modrm)), dis_buf);
7084 modrm = getUChar(delta);
7085 if (epartIsReg(modrm)) {
7087 putMMXReg( gregLO3ofRM(modrm), getMMXReg(eregLO3ofRM(modrm)) );
7089 nameMMXReg(eregLO3ofRM(modrm)),
7090 nameMMXReg(gregLO3ofRM(modrm)));
7094 putMMXReg( gregLO3ofRM(modrm), loadLE(Ity_I64, mkexpr(addr)) );
7096 dis_buf, nameMMXReg(gregLO3ofRM(modrm)));
7105 modrm = getUChar(delta);
7106 if (epartIsReg(modrm)) {
7108 putMMXReg( eregLO3ofRM(modrm), getMMXReg(gregLO3ofRM(modrm)) );
7110 nameMMXReg(gregLO3ofRM(modrm)),
7111 nameMMXReg(eregLO3ofRM(modrm)));
7115 storeLE( mkexpr(addr), getMMXReg(gregLO3ofRM(modrm)) );
7117 nameMMXReg(gregLO3ofRM(modrm)), dis_buf);
7326 modrm = getUChar(delta);
7327 if (sz != 4 || (!epartIsReg(modrm)))
7332 assign( regM, getMMXReg( eregLO3ofRM(modrm) ));
7333 assign( regD, getMMXReg( gregLO3ofRM(modrm) ));
7345 DIP("maskmovq %s,%s\n", nameMMXReg( eregLO3ofRM(modrm) ),
7346 nameMMXReg( gregLO3ofRM(modrm) ) );
7414 Long delta, UChar modrm,
7422 for printing it. And eip on entry points at the modrm byte. */
7455 assign( gsrc, getIRegG(sz, pfx, modrm) );
7457 if (epartIsReg(modrm)) {
7459 assign( esrc, getIRegE(sz, pfx, modrm) );
7463 nameIRegG(sz, pfx, modrm), nameIRegE(sz, pfx, modrm));
7473 nameIRegG(sz, pfx, modrm), dis_buf);
7568 if (epartIsReg(modrm)) {
7569 putIRegE(sz, pfx, modrm, mkexpr(resTy));
7601 UChar modrm;
7618 modrm = getUChar(delta);
7620 assign( t_bitno0, widenSto64(getIRegG(sz, pfx, modrm)) );
7622 if (epartIsReg(modrm)) {
7645 storeLE( mkexpr(t_rsp), getIRegE(sz, pfx, modrm) );
7708 if ((pfx & PFX_LOCK) && !epartIsReg(modrm)) {
7734 if (epartIsReg(modrm)) {
7740 putIRegE(sz, pfx, modrm, loadLE(szToITy(sz), mkexpr(t_rsp)) );
7745 nameBtOp(op), nameISize(sz), nameIRegG(sz, pfx, modrm),
7746 ( epartIsReg(modrm) ? nameIRegE(sz, pfx, modrm) : dis_buf ) );
7759 UChar modrm;
7771 modrm = getUChar(delta);
7772 isReg = epartIsReg(modrm);
7775 assign( src, getIRegE(sz, pfx, modrm) );
7785 ( isReg ? nameIRegE(sz, pfx, modrm) : dis_buf ),
7786 nameIRegG(sz, pfx, modrm));
7846 widenUto64( getIRegG( sz, pfx, modrm ) ),
7864 putIRegG( sz, pfx, modrm, mkexpr(dst) );
9516 UChar modrm = getUChar(delta);
9518 if (epartIsReg(modrm)) {
9519 assign( argR, getXMMRegLane64F( eregOfRexRM(pfx,modrm),
9524 nameXMMReg(eregOfRexRM(pfx,modrm)),
9525 nameXMMReg(gregOfRexRM(pfx,modrm)) );
9533 nameXMMReg(gregOfRexRM(pfx,modrm)) );
9535 assign( argL, getXMMRegLane64F( gregOfRexRM(pfx,modrm),
9559 UChar modrm = getUChar(delta);
9561 if (epartIsReg(modrm)) {
9562 assign( argR, getXMMRegLane32F( eregOfRexRM(pfx,modrm),
9567 nameXMMReg(eregOfRexRM(pfx,modrm)),
9568 nameXMMReg(gregOfRexRM(pfx,modrm)) );
9576 nameXMMReg(gregOfRexRM(pfx,modrm)) );
9578 assign( argL, getXMMRegLane32F( gregOfRexRM(pfx,modrm),
9603 UChar modrm = getUChar(delta);
9606 if (epartIsReg(modrm)) {
9607 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
9611 nameXMMReg(eregOfRexRM(pfx,modrm)),
9612 nameXMMReg(gregOfRexRM(pfx,modrm)));
9621 nameXMMReg(gregOfRexRM(pfx,modrm)));
9637 (gregOfRexRM(pfx,modrm), mkexpr(dV));
9742 UChar modrm = getUChar(delta);
9748 if (epartIsReg(modrm)) {
9750 assign(f64lo, getXMMRegLane64F(eregOfRexRM(pfx,modrm), 0));
9752 nameXMMReg(eregOfRexRM(pfx,modrm)),
9753 nameIReg(sz, gregOfRexRM(pfx,modrm),
9761 nameIReg(sz, gregOfRexRM(pfx,modrm),
9772 putIReg32( gregOfRexRM(pfx,modrm),
9776 putIReg64( gregOfRexRM(pfx,modrm),
9790 UChar modrm = getUChar(delta);
9796 if (epartIsReg(modrm)) {
9798 assign(f32lo, getXMMRegLane32F(eregOfRexRM(pfx,modrm), 0));
9800 nameXMMReg(eregOfRexRM(pfx,modrm)),
9801 nameIReg(sz, gregOfRexRM(pfx,modrm),
9809 nameIReg(sz, gregOfRexRM(pfx,modrm),
9820 putIReg32( gregOfRexRM(pfx,modrm),
9826 putIReg64( gregOfRexRM(pfx,modrm),
9844 UChar modrm
9845 UInt rG = gregOfRexRM(pfx,modrm);
9846 if (epartIsReg(modrm)) {
9847 UInt rE = eregOfRexRM(pfx,modrm);
9881 UChar modrm = getUChar(delta);
9882 UInt rG = gregOfRexRM(pfx,modrm);
9883 if (epartIsReg(modrm)) {
9884 UInt rE = eregOfRexRM(pfx,modrm);
9918 UChar modrm = getUChar(delta);
9919 UInt rG = gregOfRexRM(pfx,modrm);
9922 if (epartIsReg(modrm)) {
9923 UInt rE = eregOfRexRM(pfx,modrm);
9963 UChar modrm = getUChar(delta);
9966 UInt rG = gregOfRexRM(pfx,modrm);
9969 if (epartIsReg(modrm)) {
9970 UInt rE = eregOfRexRM(pfx,modrm);
10013 UChar modrm = getUChar(delta);
10016 UInt rG = gregOfRexRM(pfx,modrm);
10019 if (epartIsReg(modrm)) {
10020 UInt rE = eregOfRexRM(pfx,modrm);
10065 UChar modrm = getUChar(delta);
10068 UInt rG = gregOfRexRM(pfx,modrm);
10071 if (epartIsReg(modrm)) {
10072 UInt rE = eregOfRexRM(pfx,modrm);
10120 UChar modrm = getUChar(delta);
10123 UInt rG = gregOfRexRM(pfx,modrm);
10126 if (epartIsReg(modrm)) {
10127 UInt rE = eregOfRexRM(pfx,modrm);
10174 UChar modrm = getUChar(delta);
10177 UInt rG = gregOfRexRM(pfx,modrm);
10180 if (epartIsReg(modrm)) {
10181 UInt rE = eregOfRexRM(pfx,modrm);
10222 UChar modrm = getUChar(delta);
10225 UInt rG = gregOfRexRM(pfx,modrm);
10228 if (epartIsReg(modrm)) {
10229 UInt rE = eregOfRexRM(pfx,modrm);
10273 UChar modrm = getUChar(delta);
10274 vassert(epartIsReg(modrm)); /* ensured by caller */
10275 UInt rE = eregOfRexRM(pfx,modrm);
10276 UInt rG = gregOfRexRM(pfx,modrm);
10679 UChar modrm = getUChar(delta);
10680 UInt rG = gregOfRexRM(pfx,modrm);
10689 if (epartIsReg(modrm)) {
10690 UInt rE = eregOfRexRM(pfx,modrm);
10731 UChar modrm = getUChar(delta);
10732 UInt rG = gregOfRexRM(pfx,modrm);
10737 if (epartIsReg(modrm)) {
10738 UInt rE = eregOfRexRM(pfx,modrm);
10772 UChar modrm = getUChar(delta);
10774 UInt rG = gregOfRexRM(pfx,modrm);
10776 if (epartIsReg(modrm)) {
10777 UInt rE = eregOfRexRM(pfx,modrm);
10807 UChar modrm = getUChar(delta);
10808 vassert(!epartIsReg(modrm)); /* ensured by caller */
10809 vassert(gregOfRexRM(pfx,modrm) == 3); /* ditto */
10839 UChar modrm = getUChar(delta);
10840 vassert(!epartIsReg(modrm)); /* ensured by caller */
10841 vassert(gregOfRexRM(pfx,modrm) == 2); /* ditto */
10945 UChar modrm = getUChar(delta);
10946 UInt rG = gregOfRexRM(pfx,modrm);
10947 UInt rE = eregOfRexRM(pfx,modrm);
10958 getXMMRegLane64( eregOfRexRM(pfx,modrm), 1 ),
10961 getXMMRegLane64( eregOfRexRM(pfx,modrm), 0 ),
10983 UChar modrm = getUChar(delta);
10984 UInt rG = gregOfRexRM(pfx,modrm);
10985 UInt rE = eregOfRexRM(pfx,modrm);
11014 UChar modrm = getUChar(delta);
11015 UInt rG = gregOfRexRM(pfx,modrm);
11016 UInt rE = eregOfRexRM(pfx,modrm);
11065 UChar modrm = getUChar(delta);
11066 UInt rG = gregOfRexRM(pfx,modrm);
11067 UInt rE = eregOfRexRM(pfx,modrm);
11086 UChar modrm = getUChar(delta);
11087 UInt rG = gregOfRexRM(pfx,modrm);
11088 UInt rE = eregOfRexRM(pfx,modrm);
11130 UChar modrm = 0;
11145 modrm = getUChar(delta);
11146 if (epartIsReg(modrm)) {
11147 putXMMReg( gregOfRexRM(pfx,modrm),
11148 getXMMReg( eregOfRexRM(pfx,modrm) ));
11149 DIP("movupd %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
11150 nameXMMReg(gregOfRexRM(pfx,modrm)));
11154 putXMMReg( gregOfRexRM(pfx,modrm),
11157 nameXMMReg(gregOfRexRM(pfx,modrm)));
11167 modrm = getUChar(delta);
11168 if (epartIsReg(modrm)) {
11169 putXMMRegLane64( gregOfRexRM(pfx,modrm), 0,
11170 getXMMRegLane64( eregOfRexRM(pfx,modrm), 0 ));
11171 DIP("movsd %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
11172 nameXMMReg(gregOfRexRM(pfx,modrm)));
11176 putXMMReg( gregOfRexRM(pfx,modrm), mkV128(0) );
11177 putXMMRegLane64( gregOfRexRM(pfx,modrm), 0,
11180 nameXMMReg(gregOfRexRM(pfx,modrm)));
11189 modrm = getUChar(delta);
11190 if (epartIsReg(modrm)) {
11191 putXMMRegLane32( gregOfRexRM(pfx,modrm), 0,
11192 getXMMRegLane32( eregOfRexRM(pfx,modrm), 0 ));
11193 DIP("movss %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
11194 nameXMMReg(gregOfRexRM(pfx,modrm)));
11198 putXMMReg( gregOfRexRM(pfx,modrm), mkV128(0) );
11199 putXMMRegLane32( gregOfRexRM(pfx,modrm), 0,
11202 nameXMMReg(gregOfRexRM(pfx,modrm)));
11210 modrm = getUChar(delta);
11211 if (epartIsReg(modrm)) {
11212 putXMMReg( gregOfRexRM(pfx,modrm),
11213 getXMMReg( eregOfRexRM(pfx,modrm) ));
11214 DIP("movups %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
11215 nameXMMReg(gregOfRexRM(pfx,modrm)));
11219 putXMMReg( gregOfRexRM(pfx,modrm),
11222 nameXMMReg(gregOfRexRM(pfx,modrm)));
11234 modrm = getUChar(delta);
11235 if (epartIsReg(modrm)) {
11236 putXMMRegLane64( eregOfRexRM(pfx,modrm), 0,
11237 getXMMRegLane64( gregOfRexRM(pfx,modrm), 0 ));
11238 DIP("movsd %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
11239 nameXMMReg(eregOfRexRM(pfx,modrm)));
11244 modrm), 0) );
11245 DIP("movsd %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
11254 modrm = getUChar(delta);
11255 if (epartIsReg(modrm)) {
11260 getXMMRegLane32(gregOfRexRM(pfx,modrm), 0) );
11261 DIP("movss %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
11270 modrm = getUChar(delta);
11271 if (epartIsReg(modrm)) {
11272 putXMMReg( eregOfRexRM(pfx,modrm),
11273 getXMMReg( gregOfRexRM(pfx,modrm) ) );
11274 DIP("movupd %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
11275 nameXMMReg(eregOfRexRM(pfx,modrm)));
11279 storeLE( mkexpr(addr), getXMMReg(gregOfRexRM(pfx,modrm)) );
11280 DIP("movupd %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
11289 modrm = getUChar(delta);
11290 if (epartIsReg(modrm)) {
11294 storeLE( mkexpr(addr), getXMMReg(gregOfRexRM(pfx,modrm)) );
11295 DIP("movups %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
11308 modrm = getUChar(delta);
11309 if (epartIsReg(modrm)) {
11314 putXMMRegLane64( gregOfRexRM(pfx,modrm),
11318 dis_buf, nameXMMReg( gregOfRexRM(pfx,modrm) ));
11326 modrm = getUChar(delta);
11327 if (epartIsReg(modrm)) {
11329 putXMMRegLane64( gregOfRexRM(pfx,modrm),
11331 getXMMRegLane64( eregOfRexRM(pfx,modrm), 1 ));
11332 DIP("movhlps %s, %s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
11333 nameXMMReg(gregOfRexRM(pfx,modrm)));
11337 putXMMRegLane64( gregOfRexRM(pfx,modrm), 0/*lower lane*/,
11340 dis_buf, nameXMMReg( gregOfRexRM(pfx,modrm) ));
11350 modrm = getUChar(delta);
11351 if (!epartIsReg(modrm)) {
11355 getXMMRegLane64( gregOfRexRM(pfx,modrm),
11357 DIP("movlps %s, %s\n", nameXMMReg( gregOfRexRM(pfx,modrm) ),
11367 modrm = getUChar(delta);
11368 if (!epartIsReg(modrm)) {
11372 getXMMRegLane64( gregOfRexRM(pfx,modrm),
11374 DIP("movlpd %s, %s\n", nameXMMReg( gregOfRexRM(pfx,modrm) ),
11391 modrm = getUChar(delta);
11392 UInt rG = gregOfRexRM(pfx,modrm);
11394 if (epartIsReg(modrm)) {
11395 UInt rE = eregOfRexRM(pfx,modrm);
11419 modrm = getUChar(delta);
11420 UInt rG = gregOfRexRM(pfx,modrm);
11422 if (epartIsReg(modrm)) {
11423 UInt rE = eregOfRexRM(pfx,modrm);
11447 modrm = getUChar(delta);
11448 if (epartIsReg(modrm)) {
11453 putXMMRegLane64( gregOfRexRM(pfx,modrm), 1/*upper lane*/,
11456 nameXMMReg( gregOfRexRM(pfx,modrm) ));
11464 modrm = getUChar(delta);
11465 if (epartIsReg(modrm)) {
11467 putXMMRegLane64( gregOfRexRM(pfx,modrm), 1/*upper lane*/,
11468 getXMMRegLane64( eregOfRexRM(pfx,modrm), 0 ) );
11469 DIP("movhps %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
11470 nameXMMReg(gregOfRexRM(pfx,modrm)));
11474 putXMMRegLane64( gregOfRexRM(pfx,modrm), 1/*upper lane*/,
11477 nameXMMReg( gregOfRexRM(pfx,modrm) ));
11487 modrm = getUChar(delta);
11488 if (!epartIsReg(modrm)) {
11492 getXMMRegLane64( gregOfRexRM(pfx,modrm),
11494 DIP("movhps %s,%s\n", nameXMMReg( gregOfRexRM(pfx,modrm) ),
11504 modrm = getUChar(delta);
11505 if (!epartIsReg(modrm)) {
11509 getXMMRegLane64( gregOfRexRM(pfx,modrm),
11511 DIP("movhpd %s,%s\n", nameXMMReg( gregOfRexRM(pfx,modrm) ),
11530 modrm = getUChar(delta);
11531 vassert(!epartIsReg(modrm));
11536 switch (gregLO3ofRM(modrm)) {
11553 modrm = getUChar(delta);
11554 if (epartIsReg(modrm)) {
11555 putXMMReg( gregOfRexRM(pfx,modrm),
11556 getXMMReg( eregOfRexRM(pfx,modrm) ));
11557 DIP("movapd %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
11558 nameXMMReg(gregOfRexRM(pfx,modrm)));
11563 putXMMReg( gregOfRexRM(pfx,modrm),
11566 nameXMMReg(gregOfRexRM(pfx,modrm)));
11574 modrm = getUChar(delta);
11575 if (epartIsReg(modrm)) {
11576 putXMMReg( gregOfRexRM(pfx,modrm),
11577 getXMMReg( eregOfRexRM(pfx,modrm) ));
11578 DIP("movaps %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
11579 nameXMMReg(gregOfRexRM(pfx,modrm)));
11584 putXMMReg( gregOfRexRM(pfx,modrm),
11587 nameXMMReg(gregOfRexRM(pfx,modrm)));
11598 modrm = getUChar(delta);
11599 if (epartIsReg(modrm)) {
11601 putXMMReg( eregOfRexRM(pfx,modrm),
11602 getXMMReg( gregOfRexRM(pfx,modrm) ));
11603 DIP("movaps %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
11604 nameXMMReg(eregOfRexRM(pfx,modrm)));
11609 storeLE( mkexpr(addr), getXMMReg(gregOfRexRM(pfx,modrm)) );
11610 DIP("movaps %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
11619 modrm = getUChar(delta);
11620 if (epartIsReg(modrm)) {
11621 putXMMReg( eregOfRexRM(pfx,modrm),
11622 getXMMReg( gregOfRexRM(pfx,modrm) ) );
11623 DIP("movapd %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
11624 nameXMMReg(eregOfRexRM(pfx,modrm)));
11629 storeLE( mkexpr(addr), getXMMReg(gregOfRexRM(pfx,modrm)) );
11630 DIP("movapd %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
11645 modrm = getUChar(delta);
11647 if (epartIsReg(modrm)) {
11648 modrm)) );
11650 DIP("cvtpi2ps %s,%s\n", nameMMXReg(eregLO3ofRM(modrm)),
11651 nameXMMReg(gregOfRexRM(pfx,modrm)));
11657 nameXMMReg(gregOfRexRM(pfx,modrm)) );
11663 gregOfRexRM(pfx,modrm), 0,
11670 gregOfRexRM(pfx,modrm), 1,
11684 modrm = getUChar(delta);
11687 if (epartIsReg(modrm)) {
11688 assign( arg32, getIReg32(eregOfRexRM(pfx,modrm)) );
11690 DIP("cvtsi2ss %s,%s\n", nameIReg32(eregOfRexRM(pfx,modrm)),
11691 nameXMMReg(gregOfRexRM(pfx,modrm)));
11697 nameXMMReg(gregOfRexRM(pfx,modrm)) );
11700 gregOfRexRM(pfx,modrm), 0,
11707 if (epartIsReg(modrm)) {
11708 assign( arg64, getIReg64(eregOfRexRM(pfx,modrm)) );
11710 DIP("cvtsi2ssq %s,%s\n", nameIReg64(eregOfRexRM(pfx,modrm)),
11711 nameXMMReg(gregOfRexRM(pfx,modrm)));
11717 nameXMMReg(gregOfRexRM(pfx,modrm)) );
11720 gregOfRexRM(pfx,modrm), 0,
11732 modrm = getUChar(delta);
11735 if (epartIsReg(modrm)) {
11736 assign( arg32, getIReg32(eregOfRexRM(pfx,modrm)) );
11738 DIP("cvtsi2sdl %s,%s\n", nameIReg32(eregOfRexRM(pfx,modrm)),
11739 nameXMMReg(gregOfRexRM(pfx,modrm)));
11745 nameXMMReg(gregOfRexRM(pfx,modrm)) );
11747 putXMMRegLane64F( gregOfRexRM(pfx,modrm), 0,
11753 if (epartIsReg(modrm)) {
11754 assign( arg64, getIReg64(eregOfRexRM(pfx,modrm)) );
11756 DIP("cvtsi2sdq %s,%s\n", nameIReg64(eregOfRexRM(pfx,modrm)),
11757 nameXMMReg(gregOfRexRM(pfx,modrm)));
11763 nameXMMReg(gregOfRexRM(pfx,modrm)) );
11766 gregOfRexRM(pfx,modrm),
11781 modrm = getUChar(delta);
11782 if (epartIsReg(modrm)) {
11790 assign( arg64, getMMXReg(eregLO3ofRM(modrm)) );
11792 DIP("cvtpi2pd %s,%s\n", nameMMXReg(eregLO3ofRM(modrm)),
11793 nameXMMReg(gregOfRexRM(pfx,modrm)));
11799 nameXMMReg(gregOfRexRM(pfx,modrm)) );
11803 gregOfRexRM(pfx,modrm), 0,
11808 gregOfRexRM(pfx,modrm), 1,
11821 modrm = getUChar(delta);
11822 if (!epartIsReg(modrm)) {
11825 storeLE( mkexpr(addr), getXMMReg(gregOfRexRM(pfx,modrm)) );
11828 nameXMMReg(gregOfRexRM(pfx,modrm)));
11850 modrm = getUChar(delta);
11852 if (epartIsReg(modrm)) {
11854 assign(f32lo, getXMMRegLane32F(eregOfRexRM(pfx,modrm), 0));
11855 assign(f32hi, getXMMRegLane32F(eregOfRexRM(pfx,modrm), 1));
11857 nameXMMReg(eregOfRexRM(pfx,modrm)),
11858 nameMMXReg(gregLO3ofRM(modrm)));
11868 nameMMXReg(gregLO3ofRM(modrm)));
11889 putMMXReg(gregLO3ofRM(modrm), mkexpr(dst64));
11936 modrm = getUChar(delta);
11938 if (epartIsReg(modrm)) {
11940 assign(f64lo, getXMMRegLane64F(eregOfRexRM(pfx,modrm), 0));
11941 assign(f64hi, getXMMRegLane64F(eregOfRexRM(pfx,modrm), 1));
11943 nameXMMReg(eregOfRexRM(pfx,modrm)),
11944 nameMMXReg(gregLO3ofRM(modrm)));
11954 nameMMXReg(gregLO3ofRM(modrm)));
11971 putMMXReg(gregLO3ofRM(modrm), mkexpr(dst64));
12204 modrm = getUChar(delta);
12205 if (epartIsReg(modrm)) {
12207 assign(f32lo, getXMMRegLane32F(eregOfRexRM(pfx,modrm), 0));
12208 DIP("cvtss2sd %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
12209 nameXMMReg(gregOfRexRM(pfx,modrm)));
12215 nameXMMReg(gregOfRexRM(pfx,modrm)));
12218 putXMMRegLane64F( gregOfRexRM(pfx,modrm), 0,
12229 modrm = getUChar(delta);
12230 if (epartIsReg(modrm)) {
12232 assign(f64lo, getXMMRegLane64F(eregOfRexRM(pfx,modrm), 0));
12233 DIP("cvtsd2ss %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
12234 nameXMMReg(gregOfRexRM(pfx,modrm)));
12240 nameXMMReg(gregOfRexRM(pfx,modrm)));
12245 gregOfRexRM(pfx,modrm), 0,
12519 modrm = getUChar(delta);
12520 if (epartIsReg(modrm)) {
12524 gregOfRexRM(pfx,modrm),
12525 unop( Iop_32UtoV128, getIReg32(eregOfRexRM(pfx,modrm)) )
12527 DIP("movd %s, %s\n", nameIReg32(eregOfRexRM(pfx,modrm)),
12528 nameXMMReg(gregOfRexRM(pfx,modrm)));
12531 gregOfRexRM(pfx,modrm),
12532 unop( Iop_64UtoV128, getIReg64(eregOfRexRM(pfx,modrm)) )
12534 DIP("movq %s, %s\n", nameIReg64(eregOfRexRM(pfx,modrm)),
12535 nameXMMReg(gregOfRexRM(pfx,modrm)));
12541 gregOfRexRM(pfx,modrm),
12547 nameXMMReg(gregOfRexRM(pfx,modrm)));
12557 modrm = getUChar(delta);
12558 if (epartIsReg(modrm)) {
12559 putXMMReg( gregOfRexRM(pfx,modrm),
12560 getXMMReg( eregOfRexRM(pfx,modrm) ));
12561 DIP("movdqa %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
12562 nameXMMReg(gregOfRexRM(pfx,modrm)));
12567 putXMMReg( gregOfRexRM(pfx,modrm),
12570 nameXMMReg(gregOfRexRM(pfx,modrm)));
12577 modrm = getUChar(delta);
12578 if (epartIsReg(modrm)) {
12579 putXMMReg( gregOfRexRM(pfx,modrm),
12580 getXMMReg( eregOfRexRM(pfx,modrm) ));
12581 DIP("movdqu %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
12582 nameXMMReg(gregOfRexRM(pfx,modrm)));
12586 putXMMReg( gregOfRexRM(pfx,modrm),
12589 nameXMMReg(gregOfRexRM(pfx,modrm)));
12611 modrm = getUChar(delta);
12612 if (epartIsReg(modrm)) {
12613 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
12617 nameMMXReg(eregLO3ofRM(modrm)),
12618 nameMMXReg(gregLO3ofRM(modrm)));
12627 nameMMXReg(gregLO3ofRM(modrm)));
12636 putMMXReg(gregLO3ofRM(modrm), mkexpr(dV));
12782 modrm = getUChar(delta);
12783 if (epartIsReg(modrm)) {
12784 putXMMRegLane64( gregOfRexRM(pfx,modrm), 0,
12785 getXMMRegLane64( eregOfRexRM(pfx,modrm), 0 ));
12787 putXMMRegLane64( gregOfRexRM(pfx,modrm), 1, mkU64(0) );
12788 DIP("movsd %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
12789 nameXMMReg(gregOfRexRM(pfx,modrm)));
12793 putXMMReg( gregOfRexRM(pfx,modrm), mkV128(0) );
12794 putXMMRegLane64( gregOfRexRM(pfx,modrm), 0,
12797 nameXMMReg(gregOfRexRM(pfx,modrm)));
12806 modrm = getUChar(delta);
12807 if (epartIsReg(modrm)) {
12810 putIReg32( eregOfRexRM(pfx,modrm),
12811 getXMMRegLane32(gregOfRexRM(pfx,modrm), 0) );
12812 DIP("movd %s, %s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
12813 nameIReg32(eregOfRexRM(pfx,modrm)));
12815 putIReg64( eregOfRexRM(pfx,modrm),
12816 getXMMRegLane64(gregOfRexRM(pfx,modrm), 0) );
12817 DIP("movq %s, %s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
12818 nameIReg64(eregOfRexRM(pfx,modrm)));
12825 ? getXMMRegLane32(gregOfRexRM(pfx,modrm),0)
12826 : getXMMRegLane64(gregOfRexRM(pfx,modrm),0) );
12828 nameXMMReg(gregOfRexRM(pfx,modrm)), dis_buf);
12837 modrm = getUChar(delta);
12838 if (epartIsReg(modrm)) {
12841 putXMMReg( eregOfRexRM(pfx,modrm),
12842 getXMMReg(gregOfRexRM(pfx,modrm)) );
12843 DIP("movdqu %s, %s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
12844 nameXMMReg(eregOfRexRM(pfx,modrm)));
12848 storeLE( mkexpr(addr), getXMMReg(gregOfRexRM(pfx,modrm)) );
12849 DIP("movdqu %s, %s\n", nameXMMReg(gregOfRexRM(pfx,modrm)), dis_buf);
12855 modrm = getUChar(delta);
12856 if (epartIsReg(modrm)) {
12858 putXMMReg( eregOfRexRM(pfx,modrm),
12859 getXMMReg(gregOfRexRM(pfx,modrm)) );
12860 DIP("movdqa %s, %s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
12861 nameXMMReg(eregOfRexRM(pfx,modrm)));
12866 storeLE( mkexpr(addr), getXMMReg(gregOfRexRM(pfx,modrm)) );
12867 DIP("movdqa %s, %s\n", nameXMMReg(gregOfRexRM(pfx,modrm)), dis_buf);
12956 modrm = getUChar(delta);
12957 vassert(!epartIsReg(modrm));
13032 modrm = getUChar(delta);
13033 vassert(!epartIsReg(modrm));
13136 modrm = getUChar(delta);
13137 if (!epartIsReg(modrm)) {
13139 storeLE( mkexpr(addr), getIRegG(sz, pfx, modrm) );
13141 nameIRegG(sz, pfx, modrm));
13162 modrm = getUChar(delta);
13165 assign(t5, getMMXReg(gregLO3ofRM(modrm)));
13168 if (epartIsReg(modrm)) {
13169 assign(t4, getIReg16(eregOfRexRM(pfx,modrm)));
13173 nameIReg16(eregOfRexRM(pfx,modrm)),
13174 nameMMXReg(gregLO3ofRM(modrm)));
13182 nameMMXReg(gregLO3ofRM(modrm)));
13192 putMMXReg(gregLO3ofRM(modrm), mkexpr(t6));
13201 modrm = getUChar(delta);
13202 UInt rG = gregOfRexRM(pfx,modrm);
13203 if (epartIsReg(modrm)) {
13204 UInt rE = eregOfRexRM(pfx,modrm);
13232 modrm = getUChar(delta);
13233 if (epartIsReg(modrm)) {
13237 assign(sV, getMMXReg(eregLO3ofRM(modrm)));
13247 putIReg64(gregOfRexRM(pfx,modrm), unop(Iop_16Uto64, mkexpr(t5)));
13249 putIReg32(gregOfRexRM(pfx,modrm), unop(Iop_16Uto32, mkexpr(t5)));
13252 nameMMXReg(eregLO3ofRM(modrm)),
13253 sz==8 ? nameIReg64(gregOfRexRM(pfx,modrm))
13254 : nameIReg32(gregOfRexRM(pfx,modrm))
13282 modrm = getUChar(delta);
13283 UInt rG = gregOfRexRM(pfx,modrm);
13285 if (epartIsReg(modrm)) {
13286 UInt rE = eregOfRexRM(pfx,modrm);
13299 putXMMReg( gregOfRexRM(pfx,modrm), mkexpr(res) );
13308 modrm = getUChar(delta);
13309 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
13311 if (epartIsReg(modrm)) {
13312 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
13316 nameXMMReg(eregOfRexRM(pfx,modrm)),
13317 nameXMMReg(gregOfRexRM(pfx,modrm)));
13325 nameXMMReg(gregOfRexRM(pfx,modrm)));
13329 putXMMReg( gregOfRexRM(pfx,modrm), mkexpr(res) );
13388 modrm = getUChar(delta);
13389 if (epartIsReg(modrm)) {
13391 putXMMReg( gregOfRexRM(pfx,modrm),
13392 unop(Iop_64UtoV128, getMMXReg( eregLO3ofRM(modrm) )) );
13393 DIP("movq2dq %s,%s\n", nameMMXReg(eregLO3ofRM(modrm)),
13394 nameXMMReg(gregOfRexRM(pfx,modrm)));
13404 modrm = getUChar(delta);
13405 if (epartIsReg(modrm)) {
13411 getXMMRegLane64( gregOfRexRM(pfx,modrm), 0 ));
13412 DIP("movq %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)), dis_buf );
13419 modrm = getUChar(delta);
13420 if (epartIsReg(modrm)) {
13422 putMMXReg( gregLO3ofRM(modrm),
13423 getXMMRegLane64( eregOfRexRM(pfx,modrm), 0 ));
13424 DIP("movdq2q %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
13425 nameMMXReg(gregLO3ofRM(modrm)));
13450 modrm = getUChar(delta);
13451 if (epartIsReg(modrm)) {
13455 assign(t0, getMMXReg(eregLO3ofRM(modrm)));
13461 putIReg32(gregOfRexRM(pfx,modrm), unop(Iop_64to32,mkexpr(t1)));
13462 DIP("pmovmskb %s,%s\n", nameMMXReg(eregLO3ofRM(modrm)),
13463 nameIReg32(gregOfRexRM(pfx,modrm)));
13661 modrm = getUChar(delta);
13662 if (!epartIsReg(modrm)) {
13665 storeLE( mkexpr(addr), getMMXReg(gregLO3ofRM(modrm)) );
13667 nameMMXReg(gregLO3ofRM(modrm)));
13675 modrm = getUChar(delta);
13676 if (!epartIsReg(modrm)) {
13679 storeLE( mkexpr(addr), getXMMReg(gregOfRexRM(pfx,modrm)) );
13681 nameXMMReg(gregOfRexRM(pfx,modrm)));
13806 modrm = getUChar(delta);
13807 UInt rG = gregOfRexRM(pfx,modrm);
13809 if (epartIsReg(modrm)) {
13810 UInt rE = eregOfRexRM(pfx,modrm);
13831 modrm = getUChar(delta);
13834 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
13836 if (epartIsReg(modrm)) {
13837 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
13839 DIP("pmuludq %s,%s\n", nameMMXReg(eregLO3ofRM(modrm)),
13840 nameMMXReg(gregLO3ofRM(modrm)));
13846 nameMMXReg(gregLO3ofRM(modrm)));
13851 putMMXReg( gregLO3ofRM(modrm),
13863 modrm = getUChar(delta);
13864 UInt rG = gregOfRexRM(pfx,modrm);
13865 if (epartIsReg(modrm)) {
13866 UInt rE = eregOfRexRM(pfx,modrm);
13896 modrm = getUChar(delta);
13897 UInt rG = gregOfRexRM(pfx,modrm);
13898 if (epartIsReg(modrm)) {
13899 UInt rE = eregOfRexRM(pfx,modrm);
14031 UChar modrm = getUChar(delta);
14032 UInt rG = gregOfRexRM(pfx,modrm);
14033 if (epartIsReg(modrm)) {
14034 UInt rE = eregOfRexRM(pfx,modrm);
14061 UChar modrm = getUChar(delta);
14062 UInt rG = gregOfRexRM(pfx,modrm);
14063 if (epartIsReg(modrm)) {
14064 UInt rE = eregOfRexRM(pfx,modrm);
14092 UChar modrm = getUChar(delta);
14093 UInt rG = gregOfRexRM(pfx,modrm);
14096 if (epartIsReg(modrm)) {
14097 UInt rE = eregOfRexRM(pfx,modrm);
14126 UChar modrm = getUChar(delta);
14127 UInt rG = gregOfRexRM(pfx,modrm);
14130 if (epartIsReg(modrm)) {
14131 UInt rE = eregOfRexRM(pfx,modrm);
14199 UChar modrm = 0;
14246 modrm = getUChar(delta);
14247 UInt rG = gregOfRexRM(pfx,modrm);
14248 if (epartIsReg(modrm)) {
14249 UInt rE = eregOfRexRM(pfx,modrm);
14271 modrm = getUChar(delta);
14272 UInt rG = gregOfRexRM(pfx,modrm);
14273 if (epartIsReg(modrm)) {
14274 UInt rE = eregOfRexRM(pfx,modrm);
14296 modrm = getUChar(delta);
14297 UInt rG = gregOfRexRM(pfx,modrm);
14298 if (epartIsReg(modrm)) {
14299 UInt rE = eregOfRexRM(pfx,modrm);
14318 modrm = getUChar(delta);
14319 UInt rG = gregOfRexRM(pfx,modrm);
14321 modrm = getUChar(delta);
14322 if (epartIsReg(modrm)) {
14323 UInt rE = eregOfRexRM(pfx,modrm);
14343 modrm = getUChar(delta);
14344 if (epartIsReg(modrm)) {
14348 putXMMReg( gregOfRexRM(pfx,modrm),
14351 nameXMMReg(gregOfRexRM(pfx,modrm)));
14486 UChar modrm = getUChar(delta);
14487 UInt rG = gregOfRexRM(pfx,modrm);
14506 if (epartIsReg(modrm)) {
14507 UInt rE = eregOfRexRM(pfx,modrm);
14575 UChar modrm = 0;
14593 modrm = getUChar(delta);
14594 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
14596 if (epartIsReg(modrm)) {
14597 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
14599 DIP("pshufb %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
14600 nameXMMReg(gregOfRexRM(pfx,modrm)));
14607 nameXMMReg(gregOfRexRM(pfx,modrm)));
14611 putXMMReg(gregOfRexRM(pfx,modrm), mkexpr(res));
14619 modrm = getUChar(delta);
14621 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14623 if (epartIsReg(modrm)) {
14624 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
14626 DIP("pshufb %s,%s\n", nameMMXReg(eregLO3ofRM(modrm)),
14627 nameMMXReg(gregLO3ofRM(modrm)));
14633 nameMMXReg(gregLO3ofRM(modrm)));
14637 gregLO3ofRM(modrm),
14698 modrm = getUChar(delta);
14715 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14717 if (epartIsReg(modrm)) {
14718 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
14720 DIP("ph%s %s,%s\n", str, nameMMXReg(eregLO3ofRM(modrm)),
14721 modrm)));
14727 nameMMXReg(gregLO3ofRM(modrm)));
14731 gregLO3ofRM(modrm),
14748 modrm = getUChar(delta);
14749 UInt rG = gregOfRexRM(pfx,modrm);
14753 if (epartIsReg(modrm)) {
14754 UInt rE = eregOfRexRM(pfx,modrm);
14779 modrm = getUChar(delta);
14781 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14783 if (epartIsReg(modrm)) {
14784 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
14786 DIP("pmaddubsw %s,%s\n", nameMMXReg(eregLO3ofRM(modrm)),
14787 nameMMXReg(gregLO3ofRM(modrm)));
14793 nameMMXReg(gregLO3ofRM(modrm)));
14811 gregLO3ofRM(modrm),
14845 modrm = getUChar(delta);
14846 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
14848 if (epartIsReg(modrm)) {
14849 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
14851 DIP("psign%s %s,%s\n", str, nameXMMReg(eregOfRexRM(pfx,modrm)),
14852 nameXMMReg(gregOfRexRM(pfx,modrm)));
14859 nameXMMReg(gregOfRexRM(pfx,modrm)));
14868 gregOfRexRM(pfx,modrm),
14892 modrm = getUChar(delta);
14894 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14896 if (epartIsReg(modrm)) {
14897 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
14899 DIP("psign%s %s,%s\n", str, nameMMXReg(eregLO3ofRM(modrm)),
14900 nameMMXReg(gregLO3ofRM(modrm)));
14906 nameMMXReg(gregLO3ofRM(modrm)));
14910 gregLO3ofRM(modrm),
14929 modrm = getUChar(delta);
14930 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
14932 if (epartIsReg(modrm)) {
14933 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
14935 DIP("pmulhrsw %s,%s\n", nameXMMReg(eregOfRexRM(pfx,modrm)),
14936 nameXMMReg(gregOfRexRM(pfx,modrm)));
14943 nameXMMReg(gregOfRexRM(pfx,modrm)));
14952 gregOfRexRM(pfx,modrm),
14966 modrm = getUChar(delta);
14968 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
14970 if (epartIsReg(modrm)) {
14971 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
14973 DIP("pmulhrsw %s,%s\n", nameMMXReg(eregLO3ofRM(modrm)),
14974 nameMMXReg(gregLO3ofRM(modrm)));
14980 nameMMXReg(gregLO3ofRM(modrm)));
14984 gregLO3ofRM(modrm),
15010 modrm = getUChar(delta);
15011 if (epartIsReg(modrm)) {
15012 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
15014 DIP("pabs%s %s,%s\n", str, nameXMMReg(eregOfRexRM(pfx,modrm)),
15015 nameXMMReg(gregOfRexRM(pfx,modrm)));
15022 nameXMMReg(gregOfRexRM(pfx,modrm)));
15025 putXMMReg( gregOfRexRM(pfx,modrm),
15044 modrm = getUChar(delta);
15047 if (epartIsReg(modrm)) {
15048 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
15050 DIP("pabs%s %s,%s\n", str, nameMMXReg(eregLO3ofRM(modrm)),
15051 nameMMXReg(gregLO3ofRM(modrm)));
15057 nameMMXReg(gregLO3ofRM(modrm)));
15060 putMMXReg( gregLO3ofRM(modrm),
15095 UChar modrm = 0;
15113 modrm = getUChar(delta);
15114 assign( dV, getXMMReg(gregOfRexRM(pfx,modrm)) );
15116 if (epartIsReg(modrm)) {
15117 assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
15121 nameXMMReg(eregOfRexRM(pfx,modrm)),
15122 nameXMMReg(gregOfRexRM(pfx,modrm)));
15131 nameXMMReg(gregOfRexRM(pfx,modrm)));
15135 putXMMReg( gregOfRexRM(pfx,modrm), mkexpr(res) );
15144 modrm = getUChar(delta);
15146 assign( dV, getMMXReg(gregLO3ofRM(modrm)) );
15148 if (epartIsReg(modrm)) {
15149 assign( sV, getMMXReg(eregLO3ofRM(modrm)) );
15153 nameMMXReg(eregLO3ofRM(modrm)),
15154 nameMMXReg(gregLO3ofRM(modrm)));
15162 nameMMXReg(gregLO3ofRM(modrm)));
15187 putMMXReg( gregLO3ofRM(modrm), mkexpr(res) );
15222 UChar modrm = 0;
15241 modrm = getUChar(delta);
15242 if (epartIsReg(modrm)) {
15243 assign(src, getIRegE(sz, pfx, modrm));
15245 DIP("popcnt%c %s, %s\n", nameISize(sz), nameIRegE(sz, pfx, modrm),
15246 nameIRegG(sz, pfx, modrm));
15252 nameIRegG(sz, pfx, modrm));
15256 putIRegG(sz, pfx, modrm, mkexpr(result));
15287 modrm = getUChar(delta);
15288 if (epartIsReg(modrm)) {
15289 assign(src, getIRegE(sz, pfx, modrm));
15291 DIP("lzcnt%c %s, %s\n", nameISize(sz), nameIRegE(sz, pfx, modrm),
15292 nameIRegG(sz, pfx, modrm));
15298 nameIRegG(sz, pfx, modrm));
15302 putIRegG(sz, pfx, modrm, mkexpr(res));
15416 UChar modrm = getUChar(delta);
15417 UInt rG = gregOfRexRM(pfx, modrm);
15423 if (epartIsReg(modrm)) {
15425 UInt rE = eregOfRexRM(pfx, modrm);
15455 UChar modrm = getUChar(delta);
15456 UInt rG = gregOfRexRM(pfx, modrm);
15462 if (epartIsReg(modrm)) {
15464 UInt rE = eregOfRexRM(pfx, modrm);
15594 UChar modrm = getUChar(delta);
15595 UInt rG = gregOfRexRM(pfx, modrm);
15599 if ( epartIsReg(modrm) ) {
15600 UInt rE = eregOfRexRM(pfx, modrm);
15647 UChar modrm = getUChar(delta);
15648 UInt rG = gregOfRexRM(pfx, modrm);
15652 if ( epartIsReg(modrm) ) {
15653 UInt rE = eregOfRexRM(pfx, modrm);
15706 UChar modrm = getUChar(delta);
15709 UInt rG = gregOfRexRM(pfx, modrm);
15710 if ( epartIsReg(modrm) ) {
15711 UInt rE = eregOfRexRM(pfx, modrm);
15748 UChar modrm = getUChar(delta);
15751 UInt rG = gregOfRexRM(pfx, modrm);
15753 if ( epartIsReg(modrm) ) {
15754 UInt rE = eregOfRexRM(pfx, modrm);
15774 ( gregOfRexRM(pfx, modrm), res );
15787 UChar modrm = getUChar(delta);
15789 UInt rG = gregOfRexRM(pfx, modrm);
15791 if ( epartIsReg( modrm ) ) {
15792 UInt rE = eregOfRexRM(pfx, modrm);
15820 UChar modrm = getUChar(delta);
15822 UInt rG = gregOfRexRM(pfx, modrm);
15824 if ( epartIsReg( modrm ) ) {
15825 UInt rE = eregOfRexRM(pfx, modrm);
15858 UChar modrm = getUChar(delta);
15861 UInt rG = gregOfRexRM(pfx, modrm);
15866 if ( epartIsReg(modrm) ) {
15867 UInt rE = eregOfRexRM(pfx, modrm);
15904 UChar modrm = getUChar(delta);
15907 UInt rG = gregOfRexRM(pfx, modrm);
15908 if ( epartIsReg(modrm) ) {
15909 UInt rE = eregOfRexRM(pfx, modrm);
15947 UChar modrm = getUChar(delta);
15949 UInt rG = gregOfRexRM(pfx, modrm);
15950 if ( epartIsReg(modrm) ) {
15951 UInt rE = eregOfRexRM(pfx, modrm);
15980 UChar modrm = getUChar(delta);
15982 UInt rG = gregOfRexRM(pfx, modrm);
15983 if ( epartIsReg(modrm) ) {
15984 UInt rE = eregOfRexRM(pfx, modrm);
16017 UChar modrm = getUChar(delta);
16023 UInt rG = gregOfRexRM(pfx,modrm);
16024 if (epartIsReg(modrm)) {
16025 UInt rE = eregOfRexRM(pfx,modrm);
16057 UChar modrm = getUChar(delta);
16058 UInt rG = gregOfRexRM(pfx, modrm);
16068 if (epartIsReg(modrm)) {
16069 regNoL = eregOfRexRM(pfx, modrm);
16151 UChar modrm = getUChar(delta);
16153 UInt regNoR = gregOfRexRM(pfx, modrm);
16157 modrm = getUChar(delta);
16158 if (epartIsReg(modrm)) {
16159 regNoL = eregOfRexRM(pfx, modrm);
16219 UChar modrm = 0;
16240 modrm = getUChar(delta);
16262 if ( epartIsReg(modrm) ) {
16263 assign(vecE, getXMMReg(eregOfRexRM(pfx, modrm)));
16266 nameXMMReg( eregOfRexRM(pfx, modrm) ),
16267 nameXMMReg( gregOfRexRM(pfx, modrm) ) );
16274 dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
16277 assign(vecG, getXMMReg(gregOfRexRM(pfx, modrm)));
16281 putXMMReg(gregOfRexRM(pfx, modrm), mkexpr(res));
16364 modrm = getUChar(delta);
16365 UInt rG = gregOfRexRM(pfx,modrm);
16367 if (epartIsReg(modrm)) {
16368 UInt rE = eregOfRexRM(pfx,modrm);
16400 modrm = getUChar(delta);
16405 if ( epartIsReg(modrm) ) {
16406 assign( argL, getXMMReg( eregOfRexRM(pfx, modrm) ) );
16409 nameXMMReg( eregOfRexRM(pfx, modrm) ),
16410 nameXMMReg( gregOfRexRM(pfx, modrm) ) );
16417 dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
16420 assign(argR, getXMMReg( gregOfRexRM(pfx, modrm) ));
16422 putXMMReg( gregOfRexRM(pfx, modrm),
16583 modrm = getUChar(delta);
16588 if ( epartIsReg(modrm) ) {
16589 assign( argL, getXMMReg( eregOfRexRM(pfx, modrm) ) );
16592 nameXMMReg( eregOfRexRM(pfx, modrm) ),
16593 nameXMMReg( gregOfRexRM(pfx, modrm) ) );
16600 dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
16603 assign(argR, getXMMReg( gregOfRexRM(pfx, modrm) ));
16605 modrm),
16646 modrm = getUChar(delta);
16656 if (epartIsReg(modrm)) {
16657 assign(valE, getIRegE(sz, pfx, modrm));
16659 DIP("crc32b %s,%s\n", nameIRegE(sz, pfx, modrm),
16660 nameIRegG(1==getRexW(pfx) ? 8 : 4, pfx, modrm));
16666 nameIRegG(1==getRexW(pfx) ? 8 : 4, pfx, modrm));
16674 assign(valG0, binop(Iop_And64, getIRegG(8, pfx, modrm),
16696 putIRegG(4, pfx, modrm, unop(Iop_64to32, mkexpr(valG1)));
16730 UChar modrm = getUChar(delta);
16733 UInt rG = gregOfRexRM(pfx,modrm);
16743 if ( epartIsReg( modrm ) ) {
16762 if ( epartIsReg( modrm ) ) {
16763 UInt rE = eregOfRexRM(pfx,modrm);
16785 UChar modrm = 0;
16795 modrm = getUChar(delta);
16796 assign( xmm_vec, getXMMReg( gregOfRexRM(pfx,modrm) ) );
16799 if ( epartIsReg( modrm ) ) {
16814 if ( epartIsReg( modrm ) ) {
16815 putIReg32( eregOfRexRM(pfx,modrm), mkexpr(src_dword) );
16818 nameXMMReg( gregOfRexRM(pfx, modrm) ),
16819 nameIReg32( eregOfRexRM(pfx, modrm) ) );
16824 imm8_10, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
16834 UChar modrm = 0;
16844 modrm = getUChar(delta);
16845 assign( xmm_vec, getXMMReg( gregOfRexRM(pfx,modrm) ) );
16847 if ( epartIsReg( modrm ) ) {
16862 if ( epartIsReg( modrm ) ) {
16863 putIReg64( eregOfRexRM(pfx,modrm), mkexpr(src_qword) );
16866 nameXMMReg( gregOfRexRM(pfx, modrm) ),
16867 nameIReg64( eregOfRexRM(pfx, modrm) ) );
16872 imm8_0, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
16898 UChar modrm = getUChar(delta);
16899 if (epartIsReg(modrm)) {
16900 regNoL = eregOfRexRM(pfx, modrm);
16901 regNoR = gregOfRexRM(pfx, modrm);
16906 regNoR = gregOfRexRM(pfx, modrm);
17124 UChar modrm = getUChar(delta);
17127 assign( xmm_vec, getXMMReg( gregOfRexRM(pfx,modrm) ) );
17131 if ( epartIsReg( modrm ) ) {
17147 if ( epartIsReg( modrm ) ) {
17148 putIReg64( eregOfRexRM(pfx,modrm),
17153 nameXMMReg( gregOfRexRM(pfx, modrm) ),
17154 nameIReg64( eregOfRexRM(pfx, modrm) ) );
17159 imm8, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf );
17289 UChar modrm = getUChar(delta);
17293 UInt rG = gregOfRexRM(pfx,modrm);
17300 if ( epartIsReg( modrm ) ) {
17315 if ( epartIsReg( modrm ) ) {
17316 UInt rE = eregOfRexRM(pfx,modrm);
17366 UChar modrm = 0;
17392 modrm = getUChar(delta);
17394 if (epartIsReg(modrm)) {
17396 getXMMRegLane32F( eregOfRexRM(pfx, modrm), 0 ) );
17398 getXMMRegLane32F( eregOfRexRM(pfx, modrm), 1 ) );
17400 getXMMRegLane32F( eregOfRexRM(pfx, modrm), 2 ) );
17402 getXMMRegLane32F( eregOfRexRM(pfx, modrm), 3 ) );
17407 imm, nameXMMReg( eregOfRexRM(pfx, modrm) ),
17408 nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17424 imm, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17438 putXMMRegLane32F( gregOfRexRM(pfx, modrm), 0, mkexpr(res0) );
17439 putXMMRegLane32F( gregOfRexRM(pfx, modrm), 1, mkexpr(res1) );
17440 putXMMRegLane32F( gregOfRexRM(pfx, modrm), 2, mkexpr(res2) );
17441 putXMMRegLane32F( gregOfRexRM(pfx, modrm), 3, mkexpr(res3) );
17458 modrm = getUChar(delta);
17460 if (epartIsReg(modrm)) {
17462 getXMMRegLane64F( eregOfRexRM(pfx, modrm), 0 ) );
17464 getXMMRegLane64F( eregOfRexRM(pfx, modrm), 1 ) );
17469 imm, nameXMMReg( eregOfRexRM(pfx, modrm) ),
17470 nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17482 imm, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17494 putXMMRegLane64F( gregOfRexRM(pfx, modrm), 0, mkexpr(res0) );
17495 putXMMRegLane64F( gregOfRexRM(pfx, modrm), 1, mkexpr(res1) );
17513 modrm = getUChar(delta);
17515 if (epartIsReg(modrm)) {
17517 isD ? getXMMRegLane64F( eregOfRexRM(pfx, modrm), 0 )
17518 : getXMMRegLane32F( eregOfRexRM(pfx, modrm), 0 ) );
17524 imm, nameXMMReg( eregOfRexRM(pfx, modrm) ),
17525 nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17534 imm, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17547 putXMMRegLane64F( gregOfRexRM(pfx, modrm), 0, mkexpr(res) );
17549 putXMMRegLane32F( gregOfRexRM(pfx, modrm), 0, mkexpr(res) );
17564 modrm = getUChar(delta);
17566 assign( dst_vec, getXMMReg( gregOfRexRM(pfx, modrm) ) );
17568 if ( epartIsReg( modrm ) ) {
17570 assign( src_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
17573 nameXMMReg( eregOfRexRM(pfx, modrm) ),
17574 nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17583 imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17586 putXMMReg( gregOfRexRM(pfx, modrm),
17601 modrm = getUChar(delta);
17602 assign( dst_vec, getXMMReg( gregOfRexRM(pfx, modrm) ) );
17604 if ( epartIsReg( modrm ) ) {
17606 assign( src_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
17609 nameXMMReg( eregOfRexRM(pfx, modrm) ),
17610 nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17619 imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17622 putXMMReg( gregOfRexRM(pfx, modrm),
17637 modrm = getUChar(delta);
17639 assign( dst_vec, getXMMReg( gregOfRexRM(pfx, modrm) ) );
17641 if ( epartIsReg( modrm ) ) {
17643 assign( src_vec, getXMMReg( eregOfRexRM(pfx, modrm) ) );
17646 nameXMMReg( eregOfRexRM(pfx, modrm) ),
17647 nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17656 imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) );
17659 putXMMReg( gregOfRexRM(pfx, modrm),
17724 modrm = getUChar(delta);
17725 UInt rG = gregOfRexRM(pfx, modrm);
17726 if ( epartIsReg( modrm ) ) {
17727 UInt rE = eregOfRexRM(pfx,modrm);
17742 assign(src_vec, getXMMReg( gregOfRexRM(pfx, modrm) ));
17757 modrm = getUChar(delta);
17758 UInt rG = gregOfRexRM(pfx, modrm);
17760 if ( epartIsReg( modrm ) ) {
17761 UInt rE = eregOfRexRM(pfx, modrm);
17795 modrm = getUChar(delta);
17796 UInt rG = gregOfRexRM(pfx, modrm);
17798 if ( epartIsReg( modrm ) ) {
17799 UInt rE = eregOfRexRM(pfx,modrm);
17826 modrm = getUChar(delta);
17827 UInt rG = gregOfRexRM(pfx, modrm);
17829 if ( epartIsReg( modrm ) ) {
17830 UInt rE = eregOfRexRM(pfx,modrm);
17857 modrm = getUChar(delta);
17861 UInt rG = gregOfRexRM(pfx, modrm);
17863 if ( epartIsReg( modrm ) ) {
17864 UInt rE = eregOfRexRM(pfx, modrm);
17890 modrm = getUChar(delta);
17894 UInt rG = gregOfRexRM(pfx, modrm);
17896 if ( epartIsReg( modrm ) ) {
17897 UInt rE = eregOfRexRM(pfx, modrm);
17926 modrm = getUChar(delta);
17927 UInt rG = gregOfRexRM(pfx, modrm);
17931 if ( epartIsReg( modrm ) ) {
17932 UInt rE = eregOfRexRM(pfx, modrm);
17964 modrm = getUChar(delta);
17965 UInt rG = gregOfRexRM(pfx, modrm);
17969 if ( epartIsReg( modrm ) ) {
17970 UInt rE = eregOfRexRM(pfx, modrm);
18062 UChar modrm = 0;
18341 modrm = getUChar(delta);
18342 if (epartIsReg(modrm)) {
18344 putIRegG(8, pfx, modrm,
18346 getIRegE(4, pfx, modrm)));
18348 nameIRegE(4, pfx, modrm),
18349 nameIRegG(8, pfx, modrm));
18354 putIRegG(8, pfx, modrm,
18358 nameIRegG(8, pfx, modrm));
18478 modrm = getUChar(delta);
18483 delta = dis_Grp1 ( vbi, pfx, delta, modrm, am_sz, d_sz, sz, d64 );
18488 modrm = getUChar(delta);
18492 delta = dis_Grp1 ( vbi, pfx, delta, modrm, am_sz, d_sz, sz, d64 );
18497 modrm = getUChar(delta);
18501 delta = dis_Grp1 ( vbi, pfx, delta, modrm, am_sz, d_sz, sz, d64 );
18525 modrm = getUChar(delta);
18528 if (epartIsReg(modrm)) {
18529 assign(t1, getIRegE(sz, pfx, modrm));
18530 assign(t2, getIRegG(sz, pfx, modrm));
18531 putIRegG(sz, pfx, modrm, mkexpr(t1));
18532 putIRegE(sz, pfx, modrm, mkexpr(t2));
18535 nameISize(sz), nameIRegG(sz, pfx, modrm),
18536 nameIRegE(sz, pfx, modrm));
18541 assign( t2, getIRegG(sz, pfx, modrm) );
18544 putIRegG( sz, pfx, modrm, mkexpr(t1) );
18547 nameIRegG(sz, pfx, modrm), dis_buf);
18575 modrm = getUChar(delta);
18576 if (epartIsReg(modrm))
18586 putIRegG( sz, pfx, modrm,
18592 nameIRegG(sz,pfx,modrm));
19022 modrm = getUChar(delta);
19027 delta = dis_Grp2 ( vbi, pfx, delta, modrm, am_sz, d_sz, sz,
19036 modrm = getUChar(delta);
19040 delta = dis_Grp2 ( vbi, pfx, delta, modrm, am_sz, d_sz, sz,
19068 modrm = getUChar(delta);
19069 if (epartIsReg(modrm)) {
19073 putIRegE(sz, pfx, modrm,
19077 nameIRegE(sz,pfx,modrm));
19148 modrm = getUChar(delta);
19153 delta = dis_Grp2 ( vbi, pfx, delta, modrm, am_sz, d_sz, sz,
19162 modrm = getUChar(delta);
19166 delta = dis_Grp2 ( vbi, pfx, delta, modrm, am_sz, d_sz, sz,
19175 modrm = getUChar(delta);
19179 delta = dis_Grp2 ( vbi, pfx, delta, modrm, am_sz, d_sz, sz,
19188 modrm = getUChar(delta);
19191 delta = dis_Grp2 ( vbi, pfx, delta, modrm, am_sz, d_sz, sz,
19665 UChar modrm = 0;
19678 modrm = getUChar(delta);
19681 if (!epartIsReg(modrm)
19682 && (gregLO3ofRM(modrm) == 0 || gregLO3ofRM(modrm) == 1)) {
19689 switch (gregLO3ofRM(modrm)) {
19699 mkU64(gregLO3ofRM(modrm)) )
19709 if (modrm == 0xD0 && (archinfo->hwcaps & VEX_HWCAPS_AMD64_AVX)) {
19752 modrm = getUChar(delta);
19753 if (epartIsReg(modrm)) goto decode_failure;
19754 if (gregLO3ofRM(modrm) != 0 && gregLO3ofRM(modrm) != 1)
19758 switch (gregLO3ofRM(modrm)) {
19767 modrm = getUChar(delta);
19768 if (epartIsReg(modrm)) goto decode_failure;
19908 modrm = getUChar(delta);
19909 if (epartIsReg(modrm)) {
19911 putIRegE(1, pfx, modrm, mkexpr(t1));
19913 nameIRegE(1,pfx,modrm));
19986 modrm = getUChar(delta);
19990 vbi, pfx, delta, modrm, sz,
19996 modrm = getUChar(delta);
19998 vbi, pfx, delta, modrm, sz,
20010 modrm = getUChar(delta);
20014 vbi, pfx, delta, modrm, sz,
20020 modrm = getUChar(delta);
20022 vbi, pfx, delta, modrm, sz,
20072 modrm = getUChar(delta);
20075 delta = dis_Grp8_Imm ( vbi, pfx, delta, modrm, am_sz, sz, d64,
20157 modrm = getUChar(delta);
20158 if (epartIsReg(modrm)) goto decode_failure;
20159 if (gregLO3ofRM(modrm) != 1) goto decode_failure;
20459 UChar modrm = 0;
20462 modrm = getUChar(delta);
20463 if (epartIsReg(modrm)) break;
20471 putIRegG(sz, pfx, modrm, mkexpr(dst));
20472 DIP("movbe %s,%s\n", dis_buf, nameIRegG(sz, pfx, modrm));
20474 assign(src, getIRegG(sz, pfx, modrm));
20477 DIP("movbe %s,%s\n", nameIRegG(sz, pfx, modrm), dis_buf);
20586 UChar modrm = getUChar(delta);
20587 UInt rD = gregOfRexRM(pfx, modrm);
20599 if (epartIsReg(modrm)) {
20600 UInt rSR = eregOfRexRM(pfx, modrm);
20672 UChar modrm = getUChar(delta);
20673 UInt rG = gregOfRexRM(pfx,modrm);
20679 if (epartIsReg(modrm)) {
20680 UInt rE = eregOfRexRM(pfx,modrm);
21248 UChar modrm = getUChar(delta);
21249 UInt rD = gregOfRexRM(pfx, modrm);
21261 if (epartIsReg(modrm)) {
21262 UInt rSR = eregOfRexRM(pfx, modrm);
21362 UChar modrm = getUChar(delta);
21364 UInt rG = gregOfRexRM(pfx,modrm);
21365 if (epartIsReg(modrm)) {
21366 UInt rE = eregOfRexRM(pfx,modrm);
21398 UChar modrm = getUChar(delta);
21399 UInt rG = gregOfRexRM(pfx,modrm);
21402 if (epartIsReg(modrm)) {
21403 UInt rE = eregOfRexRM(pfx,modrm);
21458 UChar modrm = getUChar(delta);
21460 UInt rG = gregOfRexRM(pfx,modrm);
21474 UChar modrm = getUChar(delta);
21475 UInt rG = gregOfRexRM(pfx, modrm);
21476 UInt rE = eregOfRexRM(pfx, modrm);
21493 UChar modrm = getUChar(delta);
21495 UInt rG = gregOfRexRM(pfx,modrm);
21509 UChar modrm = getUChar(delta);
21510 UInt rG = gregOfRexRM(pfx, modrm);
21511 UInt rE = eregOfRexRM(pfx, modrm);
21528 UChar modrm = getUChar(delta);
21529 UInt rG = gregOfRexRM(pfx, modrm);
21530 if (epartIsReg(modrm)) {
21531 UInt rE = eregOfRexRM(pfx,modrm);
21545 UChar modrm = getUChar(delta);
21546 UInt rG = gregOfRexRM(pfx, modrm);
21547 if (epartIsReg(modrm)) {
21548 UInt rE = eregOfRexRM(pfx,modrm);
21562 UChar modrm = getUChar(delta);
21563 UInt rG = gregOfRexRM(pfx, modrm);
21564 if (epartIsReg(modrm)) {
21565 UInt rE = eregOfRexRM(pfx,modrm);
21579 UChar modrm = getUChar(delta);
21580 UInt rG = gregOfRexRM(pfx, modrm);
21581 if (epartIsReg(modrm)) {
21582 UInt rE = eregOfRexRM(pfx,modrm);
21600 UChar modrm = getUChar(delta);
21602 UInt rG = gregOfRexRM(pfx,modrm);
21612 UChar modrm = getUChar(delta);
21613 UInt rG = gregOfRexRM(pfx, modrm);
21614 UInt rE = eregOfRexRM(pfx, modrm);
21630 UChar modrm = getUChar(delta);
21632 UInt rG = gregOfRexRM(pfx,modrm);
21642 UChar modrm = getUChar(delta);
21643 UInt rG = gregOfRexRM(pfx, modrm);
21644 UInt rE = eregOfRexRM(pfx, modrm);
21661 UChar modrm = getUChar(delta);
21662 UInt rG = gregOfRexRM(pfx,modrm);
21663 if (epartIsReg(modrm)) {
21664 UInt rE = eregOfRexRM(pfx,modrm);
21678 UChar modrm = getUChar(delta);
21679 UInt rG = gregOfRexRM(pfx,modrm);
21680 if (epartIsReg(modrm)) {
21681 UInt rE = eregOfRexRM(pfx,modrm);
21695 UChar modrm = getUChar(delta);
21696 UInt rG = gregOfRexRM(pfx,modrm);
21697 if (epartIsReg(modrm)) {
21698 UInt rE = eregOfRexRM(pfx,modrm);
21712 UChar modrm = getUChar(delta);
21713 UInt rG = gregOfRexRM(pfx,modrm);
21714 if (epartIsReg(modrm)) {
21715 UInt rE = eregOfRexRM(pfx,modrm);
21744 UChar modrm = getUChar(delta);
21745 UInt rG = gregOfRexRM(pfx, modrm);
21746 UInt rE = eregOfRexRM(pfx, modrm);
21765 UChar modrm = getUChar(delta);
21766 UInt rG = gregOfRexRM(pfx, modrm);
21800 UChar modrm = getUChar(delta);
21801 UInt rG = gregOfRexRM(pfx, modrm);
21816 UChar modrm = getUChar(delta);
21817 UInt rG = gregOfRexRM(pfx,modrm);
21822 if (epartIsReg(modrm)) {
21823 UInt rE = eregOfRexRM(pfx,modrm);
21844 UChar modrm = getUChar(delta);
21845 UInt rG = gregOfRexRM(pfx,modrm);
21850 if (epartIsReg(modrm)) {
21851 UInt rE = eregOfRexRM(pfx,modrm);
21872 UChar modrm = getUChar(delta);
21873 UInt rG = gregOfRexRM(pfx,modrm);
21878 if (epartIsReg(modrm)) {
21879 UInt rE = eregOfRexRM(pfx,modrm);
21900 UChar modrm = getUChar(delta);
21901 UInt rG = gregOfRexRM(pfx,modrm);
21906 if (epartIsReg(modrm)) {
21907 UInt rE = eregOfRexRM(pfx,modrm);
21931 UChar modrm = getUChar(delta);
21932 UInt rG = gregOfRexRM(pfx, modrm);
21933 UInt rE = eregOfRexRM(pfx, modrm);
21952 UChar modrm = getUChar(delta);
21953 UInt rG = gregOfRexRM(pfx, modrm);
21987 UChar modrm = getUChar(delta);
21988 UInt rG = gregOfRexRM(pfx, modrm);
22001 UChar modrm = getUChar(delta);
22002 UInt rG = gregOfRexRM(pfx, modrm);
22003 if (epartIsReg(modrm)) {
22004 UInt rE = eregOfRexRM(pfx,modrm);
22019 UChar modrm = getUChar(delta);
22020 UInt rG = gregOfRexRM(pfx, modrm);
22021 if (epartIsReg(modrm)) {
22022 UInt rE = eregOfRexRM(pfx,modrm);
22037 UChar modrm = getUChar(delta);
22038 UInt rG = gregOfRexRM(pfx, modrm);
22039 if (epartIsReg(modrm)) {
22040 UInt rE = eregOfRexRM(pfx,modrm);
22055 UChar modrm = getUChar(delta);
22056 UInt rG = gregOfRexRM(pfx, modrm);
22057 if (epartIsReg(modrm)) {
22058 UInt rE = eregOfRexRM(pfx,modrm);
22076 UChar modrm = getUChar(delta);
22077 UInt rG = gregOfRexRM(pfx,modrm);
22078 if (epartIsReg(modrm)) {
22079 UInt rE = eregOfRexRM(pfx,modrm);
22094 UChar modrm = getUChar(delta);
22095 UInt rG = gregOfRexRM(pfx,modrm);
22096 if (epartIsReg(modrm)) {
22097 UInt rE = eregOfRexRM(pfx,modrm);
22112 UChar modrm = getUChar(delta);
22113 UInt rG = gregOfRexRM(pfx,modrm);
22114 if (epartIsReg(modrm)) {
22115 UInt rE = eregOfRexRM(pfx,modrm);
22131 UChar modrm = getUChar(delta);
22132 UInt rG = gregOfRexRM(pfx,modrm);
22133 if (epartIsReg(modrm)) {
22134 UInt rE = eregOfRexRM(pfx,modrm);
22155 UChar modrm = getUChar(delta);
22157 UInt rD = gregOfRexRM(pfx, modrm);
22159 if (epartIsReg(modrm)) {
22160 UInt rS = eregOfRexRM(pfx,modrm);
22181 UChar modrm = getUChar(delta);
22183 UInt rD = gregOfRexRM(pfx, modrm);
22185 if (epartIsReg(modrm)) {
22186 UInt rS = eregOfRexRM(pfx,modrm);
22209 UChar modrm = getUChar(delta);
22211 UInt rD = gregOfRexRM(pfx, modrm);
22213 if (epartIsReg(modrm)) {
22214 UInt rS = eregOfRexRM(pfx,modrm);
22239 UChar modrm = getUChar(delta);
22241 UInt rD = gregOfRexRM(pfx, modrm);
22243 if (epartIsReg(modrm)) {
22244 UInt rS = eregOfRexRM(pfx,modrm);
22274 UChar modrm = getUChar(delta);
22275 UInt rS = gregOfRexRM(pfx, modrm);
22290 UChar modrm = getUChar(delta);
22291 UInt rS = gregOfRexRM(pfx, modrm);
22694 UChar modrm = getUChar(delta);
22696 UInt rD = gregOfRexRM(pfx, modrm);
22700 if (epartIsReg(modrm)) {
22701 UInt rS = eregOfRexRM(pfx,modrm);
22724 UChar modrm = getUChar(delta);
22726 UInt rD = gregOfRexRM(pfx, modrm);
22728 if (epartIsReg(modrm)) {
22729 UInt rS = eregOfRexRM(pfx,modrm);
23110 UChar modrm = getUChar(delta);
23111 if (epartIsReg(modrm)) {
23114 gregOfRexRM(pfx,modrm),
23115 unop( Iop_32UtoV128, getIReg32(eregOfRexRM(pfx,modrm)) )
23117 DIP("vmovd %s, %s\n", nameIReg32(eregOfRexRM(pfx,modrm)),
23118 nameXMMReg(gregOfRexRM(pfx,modrm)));
23123 gregOfRexRM(pfx,modrm),
23127 nameXMMReg(gregOfRexRM(pfx,modrm)));
23135 UChar modrm = getUChar(delta);
23136 if (epartIsReg(modrm)) {
23139 gregOfRexRM(pfx,modrm),
23140 unop( Iop_64UtoV128, getIReg64(eregOfRexRM(pfx,modrm)) )
23142 DIP("vmovq %s, %s\n", nameIReg64(eregOfRexRM(pfx,modrm)),
23143 nameXMMReg(gregOfRexRM(pfx,modrm)));
23148 gregOfRexRM(pfx,modrm),
23152 nameXMMReg(gregOfRexRM(pfx,modrm)));
23163 UChar modrm = getUChar(delta);
23164 UInt rD = gregOfRexRM(pfx, modrm);
23168 if (epartIsReg(modrm)) {
23169 UInt rS = eregOfRexRM(pfx, modrm);
23188 UChar modrm = getUChar(delta);
23189 UInt rD = gregOfRexRM(pfx, modrm);
23193 if (epartIsReg(modrm)) {
23194 UInt rS = eregOfRexRM(pfx, modrm);
23397 UChar modrm = getUChar(delta);
23398 UInt rG = gregOfRexRM(pfx,modrm);
23400 if (epartIsReg(modrm)) {
23401 UInt rE = eregOfRexRM(pfx,modrm);
23426 UChar modrm = getUChar(delta);
23427 UInt rG = gregOfRexRM(pfx,modrm);
23430 if (epartIsReg(modrm)) {
23431 UInt rE = eregOfRexRM(pfx,modrm);
23459 UChar modrm = getUChar(delta);
23460 UInt rG = gregOfRexRM(pfx,modrm);
23462 if (epartIsReg(modrm)) {
23463 UInt rE = eregOfRexRM(pfx,modrm);
23488 UChar modrm = getUChar(delta);
23489 UInt rG = gregOfRexRM(pfx,modrm);
23492 if (epartIsReg(modrm)) {
23493 UInt rE = eregOfRexRM(pfx,modrm);
23525 UChar modrm = getUChar(delta);
23526 UInt rG = gregOfRexRM(pfx,modrm);
23527 if (epartIsReg(modrm)) {
23528 UInt rE = eregOfRexRM(pfx,modrm);
23548 UChar modrm = getUChar(delta);
23549 UInt rG = gregOfRexRM(pfx,modrm);
23550 if (epartIsReg(modrm)) {
23551 UInt rE = eregOfRexRM(pfx,modrm);
23567 UChar modrm = getUChar(delta);
23568 UInt rG = gregOfRexRM(pfx,modrm);
23569 if (epartIsReg(modrm)) {
23570 UInt rE = eregOfRexRM(pfx,modrm);
23589 UChar modrm = getUChar(delta);
23590 UInt rS = gregOfRexRM(pfx, modrm);
23595 if (epartIsReg(modrm)) {
23596 UInt rD = eregOfRexRM(pfx, modrm);
23614 UChar modrm = getUChar(delta);
23615 UInt rS = gregOfRexRM(pfx, modrm);
23620 if (epartIsReg(modrm)) {
23621 UInt rD = eregOfRexRM(pfx, modrm);
23722 UChar modrm = getUChar(delta);
23723 UInt rG = gregOfRexRM(pfx, modrm);
23728 if ( epartIsReg( modrm ) ) {
23731 getIReg32(eregOfRexRM(pfx,modrm))) );
23734 nameIReg32( eregOfRexRM(pfx, modrm) ), nameXMMReg(rG) );
23772 UInt modrm = getUChar(delta);
23773 UInt rG = gregOfRexRM(pfx,modrm);
23776 if (epartIsReg(modrm)) {
23777 UInt rE = eregOfRexRM(pfx,modrm);
23802 UInt modrm = getUChar(delta);
23803 UInt rG = gregOfRexRM(pfx,modrm);
23806 if (epartIsReg(modrm)) {
23807 UInt rE = eregOfRexRM(pfx,modrm);
23832 UInt modrm = getUChar(delta);
23833 UInt rG = gregOfRexRM(pfx,modrm);
23836 if (epartIsReg(modrm)) {
23837 UInt rE = eregOfRexRM(pfx,modrm);
23862 UInt modrm = getUChar(delta);
23863 UInt rG = gregOfRexRM(pfx,modrm);
23866 if (epartIsReg(modrm)) {
23867 UInt rE = eregOfRexRM(pfx,modrm);
23976 UChar modrm = getUChar(delta);
23977 UInt rG = gregOfRexRM(pfx,modrm);
23978 if (epartIsReg(modrm)) {
24168 UChar modrm = getUChar(delta);
24169 UInt rG = gregOfRexRM(pfx,modrm);
24170 if (!epartIsReg(modrm)) {
24182 UChar modrm = getUChar(delta);
24183 UInt rG = gregOfRexRM(pfx,modrm);
24184 if (!epartIsReg(modrm)) {
24275 UChar modrm = getUChar(delta);
24276 UInt rD = gregOfRexRM(pfx, modrm);
24278 if (epartIsReg(modrm)) break;
24288 UChar modrm = getUChar(delta);
24289 UInt rD = gregOfRexRM(pfx, modrm);
24291 if (epartIsReg(modrm)) break;
24602 UChar modrm = getUChar(delta);
24603 UInt rG = gregOfRexRM(pfx,modrm);
24615 if (epartIsReg(modrm)) {
24616 UInt rE = eregOfRexRM(pfx,modrm);
24651 UChar modrm = getUChar(delta);
24652 UInt rG = gregOfRexRM(pfx,modrm);
24657 if (epartIsReg(modrm)) {
24658 UInt rE = eregOfRexRM(pfx,modrm);
24690 UChar modrm = getUChar(delta);
24691 UInt rG = gregOfRexRM(pfx, modrm);
24694 if (epartIsReg(modrm)) {
24695 UInt rE = eregOfRexRM(pfx, modrm);
24717 UChar modrm = getUChar(delta);
24718 UInt rG = gregOfRexRM(pfx, modrm);
24721 if (epartIsReg(modrm)) {
24722 UInt rE = eregOfRexRM(pfx, modrm);
24747 UChar modrm = getUChar(delta);
24748 UInt rG = gregOfRexRM(pfx, modrm);
24751 if (epartIsReg(modrm)) {
24752 UInt rE = eregOfRexRM(pfx, modrm);
24774 UChar modrm = getUChar(delta);
24775 UInt rG = gregOfRexRM(pfx, modrm);
24778 if (epartIsReg(modrm)) {
24779 UInt rE = eregOfRexRM(pfx, modrm);
24844 UChar modrm = getUChar(delta);
24845 UInt rG = gregOfRexRM(pfx, modrm);
24861 UChar modrm = getUChar(delta);
24862 UInt rG = gregOfRexRM(pfx, modrm);
24882 UChar modrm = getUChar(delta);
24883 UInt rG = gregOfRexRM(pfx, modrm);
24901 UChar modrm = getUChar(delta);
24902 UInt rG = gregOfRexRM(pfx, modrm);
25022 UChar modrm = getUChar(delta);
25023 UInt rD = gregOfRexRM(pfx, modrm);
25290 UChar modrm = getUChar(delta);
25292 UInt rG = gregOfRexRM(pfx, modrm);
25294 if (epartIsReg(modrm)) {
25295 UInt rE = eregOfRexRM(pfx, modrm);
25320 UChar modrm = getUChar(delta);
25322 UInt rG = gregOfRexRM(pfx, modrm);
25324 if (epartIsReg(modrm)) {
25325 UInt rE = eregOfRexRM(pfx, modrm);
25348 UChar modrm = getUChar(delta);
25350 UInt rG = gregOfRexRM(pfx, modrm);
25352 if (epartIsReg(modrm)) {
25353 UInt rE = eregOfRexRM(pfx, modrm);
25381 UChar modrm = getUChar(delta);
25383 UInt rG = gregOfRexRM(pfx, modrm);
25385 if (epartIsReg(modrm)) {
25386 UInt rE = eregOfRexRM(pfx, modrm);
25419 UChar modrm = getUChar(delta);
25421 UInt rG = gregOfRexRM(pfx, modrm);
25429 if (epartIsReg(modrm)) {
25430 UInt rE = eregOfRexRM(pfx, modrm);
25465 UChar modrm = getUChar(delta);
25466 UInt rG = gregOfRexRM(pfx, modrm);
25475 modrm = getUChar(delta);
25477 if (epartIsReg(modrm)) {
25478 UInt rE = eregOfRexRM(pfx, modrm);
25513 UChar modrm = getUChar(delta);
25514 UInt rG = gregOfRexRM(pfx, modrm);
25527 modrm = getUChar(delta);
25529 if (epartIsReg(modrm)) {
25530 UInt rE = eregOfRexRM(pfx, modrm);
25570 UChar modrm = getUChar(delta);
25571 UInt rG = gregOfRexRM(pfx, modrm);
25578 modrm = getUChar(delta);
25580 if (epartIsReg(modrm)) {
25581 UInt rE = eregOfRexRM(pfx, modrm);
25614 UChar modrm = getUChar(delta);
25615 UInt rG = gregOfRexRM(pfx, modrm);
25624 modrm = getUChar(delta);
25626 if (epartIsReg(modrm)) {
25627 UInt rE = eregOfRexRM(pfx, modrm);
25666 UChar modrm = getUChar(delta);
25667 UInt rG = gregOfRexRM(pfx, modrm);
25674 if (epartIsReg(modrm)) {
25675 UInt rE = eregOfRexRM(pfx, modrm);
25721 UChar modrm = getUChar(delta);
25723 UInt rG = gregOfRexRM(pfx, modrm);
25728 if (epartIsReg(modrm)) {
25729 UInt rE = eregOfRexRM(pfx, modrm);
25752 UChar modrm = getUChar(delta);
25754 UInt rG = gregOfRexRM(pfx, modrm);
25759 if (epartIsReg(modrm)) {
25760 UInt rE = eregOfRexRM(pfx, modrm);
25786 UChar modrm = getUChar(delta);
25788 UInt rG = gregOfRexRM(pfx, modrm);
25793 if (epartIsReg(modrm)) {
25794 UInt rE = eregOfRexRM(pfx, modrm);
25817 UChar modrm = getUChar(delta);
25819 UInt rG = gregOfRexRM(pfx, modrm);
25824 if (epartIsReg(modrm)) {
25825 UInt rE = eregOfRexRM(pfx, modrm);
25851 modrm = getUChar(delta);
25853 UInt rG = gregOfRexRM(pfx, modrm);
25858 if (epartIsReg(modrm)) {
25859 UInt rE = eregOfRexRM(pfx, modrm);
25885 UChar modrm = getUChar(delta);
25886 UInt rG = gregOfRexRM(pfx, modrm);
25894 if ( epartIsReg( modrm ) ) {
25895 UInt rE = eregOfRexRM(pfx, modrm);
25966 UChar modrm = getUChar(delta);
25968 UInt rG = gregOfRexRM(pfx, modrm);
25971 if (epartIsReg(modrm)) {
25972 UInt rE = eregOfRexRM(pfx, modrm);
26001 UChar modrm = getUChar(delta);
26003 UInt rS = gregOfRexRM(pfx, modrm);
26005 if (epartIsReg(modrm)) {
26006 UInt rD = eregOfRexRM(pfx, modrm);
26032 UChar modrm = getUChar(delta);
26033 UInt rG = gregOfRexRM(pfx, modrm);
26038 if ( epartIsReg( modrm ) ) {
26039 UInt rE = eregOfRexRM(pfx,modrm);
26067 UChar modrm = getUChar(delta);
26068 UInt rG = gregOfRexRM(pfx, modrm);
26074 if ( epartIsReg( modrm ) ) {
26075 UInt rE = eregOfRexRM(pfx, modrm);
26107 UChar modrm = getUChar(delta);
26108 UInt rG = gregOfRexRM(pfx, modrm);
26113 if ( epartIsReg( modrm ) ) {
26114 UInt rE = eregOfRexRM(pfx,modrm);
26139 UChar modrm = getUChar(delta);
26140 UInt rG = gregOfRexRM(pfx, modrm);
26145 if ( epartIsReg( modrm ) ) {
26146 UInt rE = eregOfRexRM(pfx,modrm);
26173 UChar modrm = getUChar(delta);
26174 UInt rG = gregOfRexRM(pfx, modrm);
26178 if (epartIsReg( modrm )) {
26179 UInt rE = eregOfRexRM(pfx,modrm);
26203 UChar modrm = getUChar(delta);
26204 UInt rG = gregOfRexRM(pfx, modrm);
26208 if (epartIsReg( modrm )) {
26209 UInt rE = eregOfRexRM(pfx,modrm);
26241 UChar modrm = getUChar(delta);
26242 UInt rG = gregOfRexRM(pfx, modrm);
26246 if (epartIsReg( modrm )) {
26247 UInt rE = eregOfRexRM(pfx,modrm);
26275 UChar modrm = getUChar(delta);
26279 UInt rG = gregOfRexRM(pfx, modrm);
26284 if ( epartIsReg( modrm ) ) {
26285 UInt rE = eregOfRexRM(pfx, modrm);
26317 UChar modrm = getUChar(delta);
26321 UInt rG = gregOfRexRM(pfx, modrm);
26326 if ( epartIsReg( modrm ) ) {
26327 UInt rE = eregOfRexRM(pfx, modrm);