Lines Matching defs:rm
507 /* Figure out whether the mod and rm parts of a modRM byte refer to a
1206 Int rm;
1208 rm = (Int)(mod_reg_rm & 0x7);
1209 rm += (pfx & PFX_REXB) ? 8 : 0;
1210 return rm;
2306 { UChar rm = toUChar(mod_reg_rm & 7);
2307 DIS(buf, "%s(%s)", segRegTxt(pfx), nameIRegRexB(8,pfx,rm));
2310 handleAddrOverrides(vbi, pfx, getIRegRexB(8,pfx,rm)));
2318 { UChar rm = toUChar(mod_reg_rm & 7);
2321 DIS(buf, "%s(%s)", segRegTxt(pfx), nameIRegRexB(8,pfx,rm));
2323 DIS(buf, "%s%lld(%s)", segRegTxt(pfx), d, nameIRegRexB(8,pfx,rm));
2328 binop(Iop_Add64,getIRegRexB(8,pfx,rm),mkU64(d))));
2336 { UChar rm = toUChar(mod_reg_rm & 7);
2338 DIS(buf, "%s%lld(%s)", segRegTxt(pfx), d, nameIRegRexB(8,pfx,rm));
2342 binop(Iop_Add64,getIRegRexB(8,pfx,rm),mkU64(d))));
2676 UChar rm = getUChar(delta0);
2686 if (epartIsReg(rm)) {
2692 && offsetIRegG(size,pfx,rm) == offsetIRegE(size,pfx,rm)) {
2695 putIRegG(size,pfx,rm, mkU(ty,0));
2698 assign( dst0, getIRegG(size,pfx,rm) );
2699 assign( src, getIRegE(size,pfx,rm) );
2704 putIRegG(size, pfx, rm, mkexpr(dst1));
2709 putIRegG(size, pfx, rm, mkexpr(dst1));
2717 putIRegG(size, pfx, rm, mkexpr(dst1));
2721 nameIRegE(size,pfx,rm),
2722 nameIRegG(size,pfx,rm));
2727 assign( dst0, getIRegG(size,pfx,rm) );
2733 putIRegG(size, pfx, rm, mkexpr(dst1));
2738 putIRegG(size, pfx, rm, mkexpr(dst1));
2746 putIRegG(size, pfx, rm, mkexpr(dst1));
2750 dis_buf, nameIRegG(size, pfx, rm));
2792 UChar rm = getUChar(delta0);
2802 if (epartIsReg(rm)) {
2808 && offsetIRegG(size,pfx,rm) == offsetIRegE(size,pfx,rm)) {
2809 putIRegE(size,pfx,rm, mkU(ty,0));
2812 assign(dst0, getIRegE(size,pfx,rm));
2813 assign(src, getIRegG(size,pfx,rm));
2818 putIRegE(size, pfx, rm, mkexpr(dst1));
2823 putIRegE(size, pfx, rm, mkexpr(dst1));
2831 putIRegE(size, pfx, rm, mkexpr(dst1));
2835 nameIRegG(size,pfx,rm),
2836 nameIRegE(size,pfx,rm));
2844 assign(src, getIRegG(size,pfx,rm));
2887 nameIRegG(size,pfx,rm), dis_buf);
2916 UChar rm = getUChar(delta0);
2919 if (epartIsReg(rm)) {
2920 putIRegG(size, pfx, rm, getIRegE(size, pfx, rm));
2922 nameIRegE(size,pfx,rm),
2923 nameIRegG(size,pfx,rm));
2930 putIRegG(size, pfx, rm, loadLE(szToITy(size), mkexpr(addr)));
2933 nameIRegG(size,pfx,rm));
2962 UChar rm = getUChar(delta0);
2965 if (epartIsReg(rm)) {
2966 putIRegE(size, pfx, rm, getIRegG(size, pfx, rm));
2968 nameIRegG(size,pfx,rm),
2969 nameIRegE(size,pfx,rm));
2976 storeLE( mkexpr(addr), getIRegG(size, pfx, rm) );
2978 nameIRegG(size,pfx,rm),
3041 UChar rm = getUChar(delta);
3042 if (epartIsReg(rm)) {
3043 putIRegG(szd, pfx, rm,
3046 getIRegE(szs,pfx,rm)));
3050 nameIRegE(szs,pfx,rm),
3051 nameIRegG(szd,pfx,rm));
3060 putIRegG(szd, pfx, rm,
3068 nameIRegG(szd,pfx,rm));
4327 UChar rm = getUChar(delta0);
4333 assign( tg, getIRegG(size, pfx, rm) );
4334 if (epartIsReg(rm)) {
4335 assign( te, getIRegE(size, pfx, rm) );
4345 putIRegG(size, pfx, rm, mkexpr(resLo) );
4347 if (epartIsReg(rm)) {
4349 nameIRegE(size,pfx,rm),
4350 nameIRegG(size,pfx,rm));
4355 nameIRegG(size,pfx,rm));
4372 UChar rm = getUChar(delta);
4380 if (epartIsReg(rm)) {
4381 assign(te, getIRegE(size, pfx, rm));
4399 putIRegG(size, pfx, rm, mkexpr(resLo));
4403 ( epartIsReg(rm) ? nameIRegE(size,pfx,rm) : dis_buf ),
4404 nameIRegG(size,pfx,rm) );
6663 UChar rm = getUChar(delta);
6669 if (epartIsReg(rm)) {
6670 assign( amt, getMMXReg(eregLO3ofRM(rm)) );
6672 nameMMXReg(eregLO3ofRM(rm)),
6673 nameMMXReg(gregLO3ofRM(rm)) );
6680 nameMMXReg(gregLO3ofRM(rm)) );
6683 assign( g0, getMMXReg(gregLO3ofRM(rm)) );
6723 putMMXReg( gregLO3ofRM(rm), mkexpr(g1) );
6735 UChar rm = getUChar(delta);
6739 vassert(epartIsReg(rm));
6740 vassert(gregLO3ofRM(rm) == 2
6741 || gregLO3ofRM(rm) == 4 || gregLO3ofRM(rm) == 6);
6746 nameMMXReg(eregLO3ofRM(rm)) );
6748 assign( e0, getMMXReg(eregLO3ofRM(rm)) );
6779 putMMXReg( eregLO3ofRM(rm), mkexpr(e1) );
7782 UChar rm = getUChar(delta0);
7795 if (epartIsReg(rm)) {
7797 assign( dest, getIRegE(size, pfx, rm) );
7799 assign( src, getIRegG(size, pfx, rm) );
7806 putIRegE(size, pfx, rm, mkexpr(dest2));
7808 nameIRegG(size,pfx,rm),
7809 nameIRegE(size,pfx,rm) );
7811 else if (!epartIsReg(rm) && !(pfx & PFX_LOCK)) {
7816 assign( src, getIRegG(size, pfx, rm) );
7825 nameIRegG(size,pfx,rm), dis_buf);
7827 else if (!epartIsReg(rm) && (pfx & PFX_LOCK)) {
7835 assign( src, getIRegG(size, pfx, rm) );
7846 nameIRegG(size,pfx,rm), dis_buf);
7879 UChar rm = getUChar(delta0);
7887 if (epartIsReg(rm)) {
7888 assign( tmps, getIRegE(sz, pfx, rm) );
7889 assign( tmpd, getIRegG(sz, pfx, rm) );
7891 putIRegG( sz, pfx, rm,
7898 nameIRegE(sz,pfx,rm),
7899 nameIRegG(sz,pfx,rm));
7907 assign( tmpd, getIRegG(sz, pfx, rm) );
7909 putIRegG( sz, pfx, rm,
7918 nameIRegG(sz,pfx,rm));
7930 UChar rm = getUChar(delta0);
7949 if (epartIsReg(rm)) {
7951 assign( tmpd, getIRegE(sz, pfx, rm) );
7952 assign( tmpt0, getIRegG(sz, pfx, rm) );
7956 putIRegG(sz, pfx, rm, mkexpr(tmpd));
7957 putIRegE(sz, pfx, rm, mkexpr(tmpt1));
7959 nameISize(sz), nameIRegG(sz,pfx,rm),
7960 nameIRegE(sz,pfx,rm));
7964 else if (!epartIsReg(rm) && !(pfx & PFX_LOCK)) {
7968 assign( tmpt0, getIRegG(sz, pfx, rm) );
7973 putIRegG(sz, pfx, rm, mkexpr(tmpd));
7975 nameISize(sz), nameIRegG(sz,pfx,rm), dis_buf);
7979 else if (!epartIsReg(rm) && (pfx & PFX_LOCK)) {
7983 assign( tmpt0, getIRegG(sz, pfx, rm) );
7989 putIRegG(sz, pfx, rm, mkexpr(tmpd));
7991 nameISize(sz), nameIRegG(sz,pfx,rm), dis_buf);
8006 //.. UChar rm = getUChar(delta0);
8009 //.. if (epartIsReg(rm)) {
8010 //.. putSReg( gregOfRM(rm), getIReg(2, eregOfRM(rm)) );
8011 //.. DIP("movw %s,%s\n", nameIReg(2,eregOfRM(rm)), nameSReg(gregOfRM(rm)));
8015 //.. putSReg( gregOfRM(rm), loadLE(Ity_I16, mkexpr(addr)) );
8016 //.. DIP("movw %s,%s\n", dis_buf, nameSReg(gregOfRM(rm)));
8031 //.. UChar rm = getUChar(delta0);
8036 //.. if (epartIsReg(rm)) {
8038 //.. putIReg(4, eregOfRM(rm), unop(Iop_16Uto32, getSReg(gregOfRM(rm))));
8040 //.. putIReg(2, eregOfRM(rm), getSReg(gregOfRM(rm)));
8042 //.. DIP("mov %s,%s\n", nameSReg(gregOfRM(rm)), nameIReg(sz,eregOfRM(rm)));
8046 //.. storeLE( mkexpr(addr), getSReg(gregOfRM(rm)) );
8047 //.. DIP("mov %s,%s\n", nameSReg(gregOfRM(rm)), dis_buf);
8116 UChar rm = getUChar(delta);
8118 = invertG ? unop(Iop_NotV128, getXMMReg(gregOfRexRM(pfx,rm)))
8119 : getXMMReg(gregOfRexRM(pfx,rm));
8120 if (epartIsReg(rm)) {
8121 putXMMReg( gregOfRexRM(pfx,rm),
8123 getXMMReg(eregOfRexRM(pfx,rm))) );
8125 nameXMMReg(eregOfRexRM(pfx,rm)),
8126 nameXMMReg(gregOfRexRM(pfx,rm)) );
8130 putXMMReg( gregOfRexRM(pfx,rm),
8135 nameXMMReg(gregOfRexRM(pfx,rm)) );
8171 UChar rm = getUChar(delta);
8172 IRExpr* gpart = getXMMReg(gregOfRexRM(pfx,rm));
8173 if (epartIsReg(rm)) {
8174 putXMMReg( gregOfRexRM(pfx,rm),
8176 getXMMReg(eregOfRexRM(pfx,rm))) );
8178 nameXMMReg(eregOfRexRM(pfx,rm)),
8179 nameXMMReg(gregOfRexRM(pfx,rm)) );
8188 putXMMReg( gregOfRexRM(pfx,rm),
8192 nameXMMReg(gregOfRexRM(pfx,rm)) );
8207 UChar rm = getUChar(delta);
8208 IRExpr* gpart = getXMMReg(gregOfRexRM(pfx,rm));
8209 if (epartIsReg(rm)) {
8210 putXMMReg( gregOfRexRM(pfx,rm),
8212 getXMMReg(eregOfRexRM(pfx,rm))) );
8214 nameXMMReg(eregOfRexRM(pfx,rm)),
8215 nameXMMReg(gregOfRexRM(pfx,rm)) );
8224 putXMMReg( gregOfRexRM(pfx,rm),
8228 nameXMMReg(gregOfRexRM(pfx,rm)) );
8245 UChar rm = getUChar(delta);
8246 if (epartIsReg(rm)) {
8247 putXMMReg( gregOfRexRM(pfx,rm),
8248 unop(op, getXMMReg(eregOfRexRM(pfx,rm))) );
8250 nameXMMReg(eregOfRexRM(pfx,rm)),
8251 nameXMMReg(gregOfRexRM(pfx,rm)) );
8255 putXMMReg( gregOfRexRM(pfx,rm),
8259 nameXMMReg(gregOfRexRM(pfx,rm)) );
8278 UChar rm = getUChar(delta);
8282 assign( oldG0, getXMMReg(gregOfRexRM(pfx,rm)) );
8284 if (epartIsReg(rm)) {
8288 getXMMRegLane32(eregOfRexRM(pfx,rm), 0)) );
8289 putXMMReg( gregOfRexRM(pfx,rm), unop(op, mkexpr(oldG1)) );
8291 nameXMMReg(eregOfRexRM(pfx,rm)),
8292 nameXMMReg(gregOfRexRM(pfx,rm)) );
8300 putXMMReg( gregOfRexRM(pfx,rm), unop(op, mkexpr(oldG1)) );
8303 nameXMMReg(gregOfRexRM(pfx,rm)) );
8322 UChar rm
8326 assign( oldG0, getXMMReg(gregOfRexRM(pfx,rm)) );
8328 if (epartIsReg(rm)) {
8332 getXMMRegLane64(eregOfRexRM(pfx,rm), 0)) );
8333 putXMMReg( gregOfRexRM(pfx,rm), unop(op, mkexpr(oldG1)) );
8335 nameXMMReg(eregOfRexRM(pfx,rm)),
8336 nameXMMReg(gregOfRexRM(pfx,rm)) );
8344 putXMMReg( gregOfRexRM(pfx,rm), unop(op, mkexpr(oldG1)) );
8347 nameXMMReg(gregOfRexRM(pfx,rm)) );
8367 UChar rm = getUChar(delta);
8368 IRExpr* gpart = getXMMReg(gregOfRexRM(pfx,rm));
8370 if (epartIsReg(rm)) {
8371 epart = getXMMReg(eregOfRexRM(pfx,rm));
8373 nameXMMReg(eregOfRexRM(pfx,rm)),
8374 nameXMMReg(gregOfRexRM(pfx,rm)) );
8381 nameXMMReg(gregOfRexRM(pfx,rm)) );
8384 putXMMReg( gregOfRexRM(pfx,rm),
8455 UChar rm = getUChar(delta);
8458 if (epartIsReg(rm)) {
8461 assign( plain, binop(op, getXMMReg(gregOfRexRM(pfx,rm)),
8462 getXMMReg(eregOfRexRM(pfx,rm))) );
8466 nameXMMReg(eregOfRexRM(pfx,rm)),
8467 nameXMMReg(gregOfRexRM(pfx,rm)) );
8475 getXMMReg(gregOfRexRM(pfx,rm)),
8485 nameXMMReg(gregOfRexRM(pfx,rm)) );
8489 putXMMReg( gregOfRexRM(pfx,rm),
8495 putXMMReg( gregOfRexRM(pfx,rm),
8499 putXMMReg( gregOfRexRM(pfx,rm), mkexpr(plain) );
8517 UChar rm = getUChar(delta);
8522 if (epartIsReg(rm)) {
8523 assign( amt, getXMMRegLane32(eregOfRexRM(pfx,rm), 0) );
8525 nameXMMReg(eregOfRexRM(pfx,rm)),
8526 nameXMMReg(gregOfRexRM(pfx,rm)) );
8533 nameXMMReg(gregOfRexRM(pfx,rm)) );
8536 assign( g0, getXMMReg(gregOfRexRM(pfx,rm)) );
8578 putXMMReg( gregOfRexRM(pfx,rm), mkexpr(g1) );
8590 UChar rm = getUChar(delta);
8594 vassert(epartIsReg(rm));
8595 vassert(gregLO3ofRM(rm) == 2
8596 || gregLO3ofRM(rm) == 4 || gregLO3ofRM(rm) == 6);
8601 nameXMMReg(eregOfRexRM(pfx,rm)) );
8602 assign( e0, getXMMReg(eregOfRexRM(pfx,rm)) );
8633 putXMMReg( eregOfRexRM(pfx,rm), mkexpr(e1) );
15516 IRTemp rm = newTemp(Ity_I32);
15550 assign(rm, (imm & 4) ? get_sse_roundingmode() : mkU32(imm & 3));
15552 assign(res0, binop(Iop_RoundF64toInt, mkexpr(rm), mkexpr(src0)) );
15553 assign(res1, binop(Iop_RoundF64toInt, mkexpr(rm), mkexpr(src1)) );
15575 IRTemp rm = newTemp(Ity_I32);
15617 assign(rm, (imm & 4) ? get_sse_roundingmode() : mkU32(imm & 3));
15619 assign(res0, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src0)) );
15620 assign(res1, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src1)) );
15621 assign(res2, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src2)) );
15622 assign(res3, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src3)) );
16795 delta++; /* mod/rm byte */
17203 UChar rm;
17212 rm = getUChar(delta);
17215 if (epartIsReg(rm) || gregLO3ofRM(rm) != 0)