Home | History | Annotate | Download | only in priv

Lines Matching refs:binop

303 static IRExpr* binop ( IROp op, IRExpr* a1, IRExpr* a2 )
341 binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0))) );
373 binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0))) );
398 binop(Iop_Or32,
399 binop(Iop_Shl32, mkexpr(src), mkU8(32 - rot)),
400 binop(Iop_Shr32, mkexpr(src), mkU8(rot)));
405 return binop(Iop_64HLtoV128, mkU64(i), mkU64(i));
413 return binop(Iop_And32, e, mkU32(~3));
590 // e = binop(Iop_And32, e, mkU32(~3));
599 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
632 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
727 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
770 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
836 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
895 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
924 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
964 assign(nyu, binop(Iop_Or32, mkexpr(old), e) );
989 assign(masked, binop(Iop_Shr32, e, mkU8(lowbits_to_ignore)));
1020 assign(ge10, binop(Iop_And32, mkexpr(t32), mkU32(0x00008000)));
1021 assign(ge32, binop(Iop_And32, mkexpr(t32), mkU32(0x80000000)));
1038 assign(ge0, binop(Iop_And32, mkexpr(t32), mkU32(0x00000080)));
1039 assign(ge1, binop(Iop_And32, mkexpr(t32), mkU32(0x00008000)));
1040 assign(ge2, binop(Iop_And32, mkexpr(t32), mkU32(0x00800000)));
1041 assign(ge3, binop(Iop_And32, mkexpr(t32), mkU32(0x80000000)));
1075 binop(Iop_Shr32, IRExpr_Get(OFFB_FPSCR, Ity_I32), mkU8(22)));
1078 binop(Iop_Or32,
1079 binop(Iop_And32,
1080 binop(Iop_Shl32, mkexpr(armEncd), mkU8(1)),
1082 binop(Iop_And32,
1083 binop(Iop_Shr32, mkexpr(armEncd), mkU8(1)),
1145 binop(Iop_Or32, IRExpr_Get(OFFB_CC_OP, Ity_I32), cond),
1257 args1 = mkIRExprVec_4 ( binop(Iop_GetElem32x4, resL, mkU8(0)),
1258 binop(Iop_GetElem32x4, resL, mkU8(1)),
1259 binop(Iop_GetElem32x4, resR, mkU8(0)),
1260 binop(Iop_GetElem32x4, resR, mkU8(1)) );
1261 args2 = mkIRExprVec_4 ( binop(Iop_GetElem32x4, resL, mkU8(2)),
1262 binop(Iop_GetElem32x4, resL, mkU8(3)),
1263 binop(Iop_GetElem32x4, resR, mkU8(2)),
1264 binop(Iop_GetElem32x4, resR, mkU8(3)) );
1266 args1 = mkIRExprVec_4 ( binop(Iop_GetElem32x2, resL, mkU8(0)),
1267 binop(Iop_GetElem32x2, resL, mkU8(1)),
1268 binop(Iop_GetElem32x2, resR, mkU8(0)),
1269 binop(Iop_GetElem32x2, resR, mkU8(1)) );
1287 res = binop(Iop_Or32, call1, call2);
1300 binop(Iop_Or32,
1302 binop(Iop_Shl32,
1329 assign( c1, binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)) );
1458 binop(Iop_CmpNE32, mkexpr(t), mkU32(0)),
1483 binop(Iop_Shr32, mkexpr(old_itstate), mkU8(8)));
1513 binop(Iop_Or32,
1515 binop(Iop_Shl32,
1517 binop(Iop_CmpNE32,
1524 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(0), mkU32(0)));
1526 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(1), mkU32(0)));
1528 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(2), mkU32(0)));
1530 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(3), mkU32(0)));
1533 binop(Iop_Or32,
1535 binop(Iop_Or32,
1536 binop(Iop_Or32,
1537 binop(Iop_Shl32, ge0, mkU8(16)),
1538 binop(Iop_Shl32, ge1, mkU8(17))),
1539 binop(Iop_Or32,
1540 binop(Iop_Shl32, ge2, mkU8(18)),
1541 binop(Iop_Shl32, ge3, mkU8(19))) )));
1555 assign(immT, binop(Iop_And32, mkexpr(apsrT), mkU32(0xF0000000)) );
1559 assign(qnewT, binop(Iop_And32, mkexpr(apsrT), mkU32(ARMG_CC_MASK_Q)));
1564 put_GEFLAG32(0, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<16)),
1566 put_GEFLAG32(1, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<17)),
1568 put_GEFLAG32(2, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<18)),
1570 put_GEFLAG32(3, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<19)),
1614 assign( nd2, binop( Iop_CmpLT32S, mkexpr(nd1), mkexpr(nd0) ) );
1617 assign( nd5, binop( Iop_CmpLT32S, mkexpr(nd3), mkexpr(nd4) ) );
1624 assign( *resQ, binop(Iop_Xor32, mkexpr(*res), mkexpr(regT)) );
1658 assign( nd2, binop( Iop_CmpLT32S, mkexpr(nd1), mkexpr(nd0) ) );
1661 assign( nd5, binop( Iop_CmpLT32S, mkexpr(nd3), mkexpr(nd4) ) );
1668 assign( *resQ, binop(Iop_Xor32, mkexpr(*res), mkexpr(regT)) );
1683 binop( Iop_Shr32,
1684 binop( Iop_And32,
1685 binop( Iop_Xor32, mkexpr(res), mkexpr(argL) ),
1686 binop( Iop_Xor32, mkexpr(res), mkexpr(argR) )),
1698 binop( Iop_Shr32,
1699 binop( Iop_And32,
1700 binop( Iop_Xor32, mkexpr(argL), mkexpr(argR) ),
1701 binop( Iop_Xor32, mkexpr(res), mkexpr(argL) )),
1747 binop(Iop_And32,
1748 binop(Iop_Shr32, mkexpr(rMt),
1753 binop(Iop_Shl32, mkexpr(rMt), mkU8(shift_amt)) );
1773 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
1788 binop(Iop_CmpEQ32, mkexpr(amtT), mkU32(0)),
1791 binop(Iop_CmpLE32U, mkexpr(amtT), mkU32(32)),
1792 binop(Iop_And32,
1793 binop(Iop_Shr32,
1796 binop(Iop_And32,
1797 binop(Iop_Sub32,
1817 binop(
1819 binop(Iop_Shl32,
1822 binop(Iop_And32, mkexpr(rSt), mkU32(31)))),
1823 binop(Iop_Sar32,
1824 binop(Iop_Sub32,
1846 binop(Iop_And32,
1847 binop(Iop_Shr32, mkexpr(rMt), mkU8(31)),
1859 binop(Iop_And32,
1860 binop(Iop_Shr32, mkexpr(rMt),
1865 binop(Iop_Shr32, mkexpr(rMt), mkU8(shift_amt)) );
1885 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
1898 binop(Iop_CmpEQ32, mkexpr(amtT), mkU32(0)),
1901 binop(Iop_CmpLE32U, mkexpr(amtT), mkU32(32)),
1902 binop(Iop_And32,
1903 binop(Iop_Shr32,
1906 binop(Iop_And32,
1907 binop(Iop_Sub32,
1927 binop(
1929 binop(Iop_Shr32,
1932 binop
1933 binop(Iop_Sar32,
1934 binop(Iop_Sub32,
1956 binop(Iop_And32,
1957 binop(Iop_Shr32, mkexpr(rMt), mkU8(31)),
1960 assign( *res, binop(Iop_Sar32, mkexpr(rMt), mkU8(31)) );
1969 binop(Iop_And32,
1970 binop(Iop_Shr32, mkexpr(rMt),
1975 binop(Iop_Sar32, mkexpr(rMt), mkU8(shift_amt)) );
1995 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
2008 binop(Iop_CmpEQ32, mkexpr(amtT), mkU32(0)),
2011 binop(Iop_CmpLE32U, mkexpr(amtT), mkU32(32)),
2012 binop(Iop_And32,
2013 binop(Iop_Shr32,
2016 binop(Iop_And32,
2017 binop(Iop_Sub32,
2026 binop(Iop_And32,
2027 binop(Iop_Shr32,
2040 binop(
2046 binop(Iop_CmpLT32U, mkexpr(amtT), mkU32(32)),
2066 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
2068 assign( amt5T, binop(Iop_And32, mkexpr(rSt), mkU32(31)) );
2075 binop(Iop_CmpNE32, mkexpr(amtT), mkU32(0)),
2076 binop(Iop_And32,
2077 binop(Iop_Shr32,
2080 binop(Iop_And32,
2081 binop(Iop_Sub32,
2098 binop(Iop_CmpNE32, mkexpr(amt5T), mkU32(0)),
2099 binop(Iop_Or32,
2100 binop(Iop_Shr32,
2104 binop(Iop_Shl32,
2107 binop(Iop_Sub32, mkU32(32), mkexpr(amt5T))
2175 binop(Iop_And32, mkexpr(rMt), mkU32(1)));
2179 binop(Iop_Or32,
2180 binop(Iop_Shl32, mkexpr(oldcT), mkU8(31)),
2181 binop(Iop_Shr32, mkexpr(rMt), mkU8(1))) );
2190 binop(Iop_And32,
2191 binop(Iop_Shr32, mkexpr(rMt),
2196 binop(Iop_Or32,
2197 binop(Iop_Shr32, mkexpr(rMt), mkU8(shift_amt)),
2198 binop(Iop_Shl32, mkexpr(rMt),
2378 binop( (bU == 1 ? Iop_Add32 : Iop_Sub32),
2402 index = binop(Iop_Shl32, getIRegA(rM), mkU8(imm5));
2410 index = binop(Iop_Shr32, getIRegA(rM), mkU8(imm5));
2419 index = binop(Iop_Sar32, getIRegA(rM), mkU8(31));
2422 index = binop(Iop_Sar32, getIRegA(rM), mkU8(imm5));
2433 index = binop(Iop_Or32,
2434 binop(Iop_Shl32, mkexpr(cflagT), mkU8(31)),
2435 binop(Iop_Shr32, mkexpr(rmT), mkU8(1)));
2441 index = binop(Iop_Or32,
2442 binop(Iop_Shl32, mkexpr(rmT), mkU8(32-imm5)),
2443 binop(Iop_Shr32, mkexpr(rmT), mkU8(imm5)));
2451 return binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
2467 binop( (bU == 1 ? Iop_Add32 : Iop_Sub32),
2484 return binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
2533 binop(Iop_Or32,
2534 binop(Iop_And32,
2535 binop(Iop_Shr32, mkexpr(irRes), mkU8(5)),
2537 binop(Iop_And32, mkexpr(irRes), mkU32(1))));
2541 binop(Iop_Add32,
2542 binop(Iop_Shr32,
2543 binop(Iop_Sub32,
2544 binop(Iop_Shl32,
2545 binop(Iop_Xor32, mkexpr(ix), mkU32(1)),
2553 binop(Iop_And32,
2554 binop(Iop_And32,
2556 binop(Iop_Shr32, mkexpr(ix), mkU8(1))),
2559 assign(nzcv, binop(Iop_Sub32, mkexpr(termL), mkexpr(termR)));
2714 binop(Iop_Or32,
2715 binop(Iop_Shl32,
2716 binop(Iop_And32, mkexpr(x0), mkU32(c1)),
2718 binop(Iop_Shr32,
2719 binop(Iop_And32, mkexpr(x0), mkU32(~c1)),
2723 binop(Iop_Or32,
2724 binop(Iop_Shl32,
2725 binop(Iop_And32, mkexpr(x1), mkU32(c2)),
2727 binop(Iop_Shr32,
2728 binop(Iop_And32, mkexpr(x1), mkU32(~c2)),
2732 binop(Iop_Or32,
2733 binop(Iop_Shl32,
2734 binop(Iop_And32, mkexpr(x2), mkU32(c3)),
2736 binop(Iop_Shr32,
2737 binop(Iop_And32, mkexpr(x2), mkU32(~c3)),
2741 binop(Iop_Or32,
2742 binop(Iop_Shl32,
2743 binop(Iop_And32, mkexpr(x3), mkU32(c4)),
2745 binop(Iop_Shr32,
2746 binop(Iop_And32, mkexpr(x3), mkU32(~c4)),
2750 binop(Iop_Or32,
2751 binop(Iop_Shl32,
2752 binop(Iop_And32, mkexpr(x4), mkU32(c5)),
2754 binop(Iop_Shr32,
2755 binop(Iop_And32, mkexpr(x4), mkU32(~c5)),
2768 binop(Iop_Or32,
2769 binop(Iop_Shl32, mkexpr(arg), mkU8(24)),
2770 binop(Iop_Or32,
2771 binop(Iop_And32, binop(Iop_Shl32, mkexpr(arg), mkU8(8)),
2773 binop(Iop_Or32,
2774 binop(Iop_And32, binop(Iop_Shr32, mkexpr(arg), mkU8(8)),
2776 binop(Iop_And32, binop(Iop_Shr32, mkexpr(arg), mkU8(24)),
2789 binop(Iop_Or32,
2790 binop(Iop_And32,
2791 binop(Iop_Shl32, mkexpr(arg), mkU8(8)),
2793 binop(Iop_And32,
2794 binop(Iop_Shr32, mkexpr(arg), mkU8(8)),
2896 return binop(op, argL, argR);
2945 assign(new_arg, binop(Iop_Sub8x8, mkexpr(old_arg), mkU64(imm)));
2946 assign(cur_mask, binop(cmp, mkU64(imm), mkexpr(old_arg)));
2947 assign(new_mask, binop(Iop_Or64, mkexpr(old_mask), mkexpr(cur_mask)));
2948 assign(new_res, binop(Iop_Or64,
2950 binop(Iop_And64,
2951 binop(Iop_Perm8x8,
2953 binop(Iop_And64,
2964 assign(new_res, binop(Iop_Or64,
2965 binop(Iop_And64,
3027 assign(res, unop(op, binop(op2, mkexpr(arg_m), mkU8(index))));
3089 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
3131 binop(addOp,
3132 binop(addOp,
3133 binop(shOp, mkexpr(arg_m), mkU8(1)),
3134 binop(shOp, mkexpr(arg_n), mkU8(1))),
3135 binop(shOp,
3136 binop(addOp,
3137 binop(andOp, mkexpr(arg_m), imm_val),
3138 binop(andOp, mkexpr(arg_n), imm_val)),
3196 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
3197 assign(tmp, binop(op2, mkexpr(arg_n), mkexpr(arg_m)));
3261 assign(cc, binop(shift_op,
3262 binop(add_op,
3263 binop(add_op,
3264 binop(Iop_AndV128,
3266 binop(Iop_64HLtoV128,
3269 binop(Iop_AndV128,
3271 binop(Iop_64HLtoV128,
3274 binop(Iop_64HLtoV128,
3278 assign(res, binop(add_op,
3279 binop(add_op,
3280 binop(shift_op,
3283 binop(shift_op,
3289 assign(cc, binop(shift_op,
3290 binop(add_op,
3291 binop(add_op,
3292 binop(Iop_And64,
3295 binop(Iop_And64,
3300 assign(res, binop(add_op,
3301 binop(add_op,
3302 binop(shift_op,
3305 binop(shift_op,
3320 assign(res, binop(Iop_AndV128, mkexpr(arg_n),
3323 assign(res, binop(Iop_And64, mkexpr(arg_n),
3334 assign(res, binop(Iop_AndV128,mkexpr(arg_n),
3337 assign(res, binop(Iop_And64, mkexpr(arg_n),
3349 assign(res, binop(Iop_OrV128, mkexpr(arg_n),
3352 assign(res, binop(Iop_Or64, mkexpr(arg_n),
3368 assign(res, binop(Iop_OrV128,mkexpr(arg_n),
3371 assign(res, binop(Iop_Or64, mkexpr(arg_n),
3384 assign(res, binop(Iop_XorV128, mkexpr(arg_n),
3387 assign(res, binop(Iop_Xor64, mkexpr(arg_n),
3399 binop(Iop_OrV128,
3400 binop(Iop_AndV128, mkexpr(arg_n),
3402 binop(Iop_AndV128,
3410 binop(Iop_Or64,
3411 binop(Iop_And64, mkexpr(arg_n),
3413 binop(Iop_And64,
3427 binop(Iop_OrV128,
3428 binop(Iop_AndV128, mkexpr(arg_n),
3430 binop(Iop_AndV128,
3437 binop(Iop_Or64,
3438 binop(Iop_And64, mkexpr(arg_n),
3440 binop(Iop_And64,
3454 binop(Iop_OrV128,
3455 binop(Iop_AndV128, mkexpr(reg_d),
3457 binop(Iop_AndV128,
3464 binop(Iop_Or64,
3465 binop(Iop_And64, mkexpr(reg_d),
3467 binop(Iop_And64,
3498 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
3542 binop(subOp,
3543 binop(subOp,
3544 binop(shOp, mkexpr(arg_n), mkU8(1)),
3545 binop(shOp, mkexpr(arg_m), mkU8(1))),
3546 binop(andOp,
3547 binop(andOp,
3606 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
3607 assign(tmp, binop(op2, mkexpr(arg_n), mkexpr(arg_m)));
3636 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
3649 binop(op, mkexpr(arg_m), mkexpr(arg_n))));
3695 assign(res, binop(op, mkexpr(arg_m),
3698 assign(res, binop(op, mkexpr(arg_m), mkexpr(arg_n)));
3701 assign(tmp, binop(sub_op,
3702 binop(Iop_64HLtoV128, mkU64(0), mkU64(0)),
3705 assign(tmp, binop(sub_op, mkU64(0), mkexpr(arg_n)));
3707 assign(res, binop(op, mkexpr(arg_m),
3710 assign(res, binop(op, mkexpr(arg_m), mkexpr(tmp)));
3792 assign(res, binop(op, mkexpr(arg_m), mkexpr(arg_n)));
3795 binop(op_shrn,
3796 binop(op_shln,
3803 assign(shval, binop(Q ? Iop_OrV128 : Iop_Or64,
3805 binop(op_shln,
3815 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
3816 binop(cmp_gt, mkexpr(shval),
3824 assign(mask, binop(cmp_gt, mkexpr(shval),
3827 assign(tmp, binop(op_rev, mkexpr(res),
3830 assign(tmp, binop(op_rev, mkexpr(res), mkexpr(arg_n)));
3831 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
3833 binop(Q ? Iop_AndV128 : Iop_And64,
3927 assign(shval, binop(op_shrn,
3928 binop(op_shln,
3935 assign(shval, binop(Q ? Iop_OrV128 : Iop_Or64,
3937 binop(op_shln,
3943 assign(round, binop(Q ? Iop_AndV128 : Iop_And64,
3944 binop(op,
3947 binop(op_add,
3950 binop(Q ? Iop_AndV128 : Iop_And64,
3952 binop(cmp_gt,
3955 assign(res, binop(op_add,
3956 binop(op,
3961 assign(round, binop(Q ? Iop_AndV128 : Iop_And64,
3962 binop(op,
3964 binop(op_add,
3967 binop(Q ? Iop_AndV128 : Iop_And64,
3969 binop(cmp_gt,
3972 assign(res, binop(op_add,
3973 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
4077 assign(shval, binop(op_shrn,
4078 binop(op_shln,
4085 assign(shval, binop(Q ? Iop_OrV128 : Iop_Or64,
4087 binop(op_shln,
4092 assign(round, binop(Q ? Iop_AndV128 : Iop_And64,
4093 binop(op,
4095 binop(op_add,
4098 binop(Q ? Iop_AndV128 : Iop_And64,
4100 binop(cmp_gt,
4103 assign(res, binop(op_add,
4104 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
4112 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4113 binop(cmp_gt, mkexpr(shval),
4121 assign(mask, binop(cmp_gt, mkexpr(shval),
4124 assign(tmp, binop(op_rev, mkexpr(res),
4127 assign(tmp, binop(op_rev, mkexpr(res), mkexpr(arg_n)));
4128 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4130 binop(Q ? Iop_AndV128 : Iop_And64,
4161 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4186 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4245 assign(cond, binop(op_cmp, mkexpr(arg_n), mkexpr(arg_m)));
4246 assign(res, binop(Q ? Iop_OrV128 : Iop_Or64,
4247 binop(Q ? Iop_AndV128 : Iop_And64,
4248 binop(op_sub, mkexpr(arg_n),
4251 binop(Q ? Iop_AndV128 : Iop_And64,
4252 binop(op_sub, mkexpr(arg_m),
4323 assign(cond, binop(op_cmp, mkexpr(arg_n), mkexpr(arg_m)));
4324 assign(tmp, binop(Q ? Iop_OrV128 : Iop_Or64,
4325 binop(Q ? Iop_AndV128 : Iop_And64,
4326 binop(op_sub, mkexpr(arg_n),
4329 binop(Q ? Iop_AndV128 : Iop_And64,
4330 binop(op_sub, mkexpr(arg_m),
4334 assign(res, binop(op_add, mkexpr(acc), mkexpr(tmp)));
4369 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4381 assign(res, unop(op, binop(Q ? Iop_AndV128 : Iop_And64,
4391 binop(Q ? Iop_XorV128 : Iop_Xor64,
4444 assign(res, binop(op2,
4446 binop(op, mkexpr(arg_n), mkexpr(arg_m))));
4472 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4502 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4534 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4535 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4536 binop(op2, mkexpr(arg_n),
4538 binop(op2, mkexpr(arg_m),
4568 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4569 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4570 binop(op2, mkexpr(arg_n),
4572 binop(op2, mkexpr(arg_m),
4593 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4635 binop(Iop_Sub32Fx2,
4701 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4715 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4725 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4739 assign(res, binop(op,
4744 assign(res, binop(op,
4770 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4785 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4793 assign(res, binop(Q ? Iop_RecipStep32Fx4
4803 assign(res, binop(Q ? Iop_RSqrtStep32Fx4
4875 putQReg(dreg, binop(op, mkexpr(arg_n), mkexpr(arg_m)),
4919 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
4922 assign(res, binop(op, mkexpr(tmp),
4923 binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm))));
4927 putDRegI64(dreg, unop(cvt, binop(sh, mkexpr(res), mkU8(8 << size))),
4973 assign(cond, unop(cvt2, binop(cmp, getDRegI64(nreg),
4975 assign(res, binop(op2,
4976 binop(Iop_OrV128,
4977 binop(Iop_AndV128,
4978 binop(op, mkexpr(arg_n), mkexpr(arg_m)),
4980 binop(Iop_AndV128,
4981 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
5029 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
5032 assign(res, binop(op2, mkexpr(tmp),
5033 binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm))));
5037 putDRegI64(dreg, unop(cvt, binop(sh, mkexpr(res), mkU8(8 << size))),
5080 assign(cond, unop(cvt2, binop(cmp, getDRegI64(nreg),
5082 assign(res, binop(Iop_OrV128,
5083 binop(Iop_AndV128,
5084 binop(op, mkexpr(arg_n), mkexpr(arg_m)),
5086 binop(Iop_AndV128,
5087 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
5119 assign(res, binop(op, getDRegI64(nreg),getDRegI64(mreg)));
5120 putQReg(dreg, binop(op2, getQReg(dreg), mkexpr(res)), condT);
5158 assign(res, binop(op, getDRegI64(nreg), getDRegI64(mreg)));
5159 assign(tmp, binop(op2, getQReg(dreg), mkexpr(res)));
5160 setFlag_QC(mkexpr(tmp), binop(add, getQReg(dreg), mkexpr(res)),
5162 setFlag_QC(binop(Iop_And64,
5163 binop(cmp, getDRegI64(nreg), mkU64(imm)),
5164 binop(cmp, getDRegI64(mreg), mkU64(imm))),
5167 putQReg(dreg, binop(add, getQReg(dreg), mkexpr(res)), condT);
5193 putQReg(dreg, binop(op, getDRegI64(nreg),
5226 putQReg(dreg, binop(op, getDRegI64(nreg), getDRegI64(mreg)),
5228 setFlag_QC(binop(Iop_And64,
5229 binop(op2, getDRegI64(nreg), mkU64(imm)),
5230 binop(op2, getDRegI64(mreg), mkU64(imm))),
5290 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5315 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5356 putDRegI64(dreg, binop(op2, getDRegI64(dreg), mkexpr(res)),
5394 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5413 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5414 putQReg(dreg, binop(op2, getQReg(dreg), mkexpr(res)), condT);
5453 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5480 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5481 assign(tmp, binop(op2, getQReg(dreg), mkexpr(res)));
5482 binop(Iop_And64,
5483 binop(cmp, mkexpr(arg_n), mkU64(imm)),
5484 binop(cmp, mkexpr(arg_m), mkU64(imm))),
5487 setFlag_QC(mkexpr(tmp), binop(add, getQReg(dreg), mkexpr(res)),
5489 putQReg(dreg, binop(add, getQReg(dreg), mkexpr(res)), condT);
5527 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5552 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5622 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5629 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5666 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5687 putQReg(dreg, binop(op, mkexpr(arg_n), mkexpr(arg_m)),
5689 setFlag_QC(binop(Iop_And64,
5690 binop(op2, mkexpr(arg_n), mkU64(imm)),
5691 binop(op2, mkexpr(arg_m), mkU64(imm))),
5732 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5757 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5779 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5780 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
5781 binop(op2, mkexpr(arg_n),
5783 binop(op2, mkexpr(arg_m),
5830 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5855 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5877 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5878 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
5879 binop(op2, mkexpr(arg_n),
5881 binop(op2, mkexpr(arg_m),
5964 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
6013 binop(add,
6014 binop(op,
6017 binop(Q ? Iop_AndV128 : Iop_And64,
6018 binop(op,
6033 putQReg(dreg, binop(add, mkexpr(res), getQReg(dreg)),
6036 putDRegI64(dreg, binop(add, mkexpr(res), getDRegI64(dreg)),
6107 assign(res, binop(op, mkexpr(reg_m), mkU8(shift_imm)));
6110 putQReg(dreg, binop(add, mkexpr(res), getQReg(dreg)),
6113 putDRegI64(dreg, binop(add, mkexpr(res), getDRegI64(dreg)),
6147 assign(mask, binop(op, binop(Iop_64HLtoV128,
6151 assign(res, binop(Iop_OrV128,
6152 binop(Iop_AndV128,
6156 binop(op,
6161 assign(mask, binop(op, mkU64(0xFFFFFFFFFFFFFFFFLL),
6163 assign(res, binop(Iop_Or64,
6164 binop(Iop_And64,
6168 binop(op,
6196 assign(mask, binop(op, binop(Iop_64HLtoV128,
6200 assign(res, binop(Iop_OrV128,
6201 binop(Iop_AndV128,
6205 binop(op,
6210 assign(mask, binop(op, mkU64(0xFFFFFFFFFFFFFFFFLL),
6212 assign(res, binop(Iop_Or64,
6213 binop(Iop_And64,
6217 binop(op,
6241 assign(res, binop(op, Q ? getQReg(mreg) : getDRegI64(mreg),
6346 assign(res, binop(op, mkexpr(reg_m), mkU8(shift_imm)));
6347 assign(tmp, binop(op_rev, mkexpr(res), mkU8(shift_imm)));
6387 binop(op,
6409 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
6430 binop(addOp,
6431 binop(shOp,
6434 binop(Iop_AndV128,
6435 binop(shOp,
6527 assign(res, binop(add,
6528 binop(op, mkexpr(reg_m), mkU8(shift_imm)),
6529 binop(Iop_AndV128,
6530 binop(op,
6536 assign(res, binop(op, mkexpr(reg_m), mkU8(shift_imm)));
6570 assign(res, binop(op, unop(cvt, getDRegI64(mreg)), mkU8(shift_imm)));
6605 putQReg(dreg, binop(op, getQReg(mreg),
6608 putDRegI64(dreg, binop(op, getDRegI64(mreg),
6837 assign(res, binop(add_op, unop(op, mkexpr(arg_m)),
6850 zero1 = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6851 zero2 = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6881 assign(mask, binop(op_cmp, mkexpr(arg_m), zero1));
6882 neg = binop(op_qsub, zero2, mkexpr(arg_m));
6883 neg2 = binop(op_sub, zero2, mkexpr(arg_m));
6884 assign(res, binop
6885 binop(Q ? Iop_AndV128 : Iop_And64,
6888 binop(Q ? Iop_AndV128 : Iop_And64,
6892 assign(tmp, binop(Q ? Iop_OrV128 : Iop_Or64,
6893 binop(Q ? Iop_AndV128 : Iop_And64,
6896 binop(Q ? Iop_AndV128 : Iop_And64,
6910 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6932 assign(res, binop(op, zero, mkexpr(arg_m)));
6933 setFlag_QC(mkexpr(res), binop(op2, zero, mkexpr(arg_m)),
6964 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6983 assign(res, binop(op, mkexpr(arg_m), zero));
6993 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7003 assign(res, binop(op, mkexpr(arg_m), zero));
7013 binop(op, zero, mkexpr(arg_m))));
7025 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7034 assign(res, binop(op, zero, mkexpr(arg_m)));
7055 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7065 assign(res, binop(op, zero, mkexpr(arg_m)));
7075 binop(op, mkexpr(arg_m), zero)));
7086 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7096 assign(res, binop(op, zero, mkexpr(arg_m)));
7105 assign(res, binop(op, zero, mkexpr(arg_m)));
7147 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7158 assign(res, binop(op, zero, mkexpr(arg_m)));
7249 assign(new_d, binop(op_even, mkexpr(old_m), mkexpr(old_d)));
7250 assign(new_m, binop(op_odd, mkexpr(old_m), mkexpr(old_d)));
7300 assign(new_d, binop(op_even, mkexpr(old_m), mkexpr(old_d)));
7301 assign(new_m, binop(op_odd, mkexpr(old_m), mkexpr(old_d)));
7351 assign(new_d, binop(op_lo, mkexpr(old_m), mkexpr(old_d)));
7352 assign(new_m, binop(op_hi, mkexpr(old_m), mkexpr(old_d)));
7454 assign(res, binop(op, unop(cvt, getDRegI64(mreg)),
7716 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
7753 expr = binop(Iop_OrV128, mkexpr(tmp_var), imm_val);
7755 expr = binop(Iop_Or64, mkexpr(tmp_var), imm_val);
7760 expr = binop(Iop_AndV128, mkexpr(tmp_var),
7763 expr = binop(Iop_And64, mkexpr(tmp_var), unop(Iop_Not64, imm_val));
7858 loadLE(Ity_I8, binop(Iop_Add32,
7868 loadLE(Ity_I16, binop(Iop_Add32,
7878 loadLE(Ity_I32, binop(Iop_Add32,
7899 binop(Iop_GetElem8x8, getDRegI64(rD), mkU8(index)));
7903 binop(Iop_GetElem16x4, getDRegI64(rD), mkU8(index)));
7907 binop(Iop_GetElem32x2, getDRegI64(rD), mkU8(index)));
7915 storeLE(binop(Iop_Add32, mkexpr(addr), mkU32(i * 1)),
7916 binop(Iop_GetElem8x8, getDRegI64(rD + i * inc),
7920 storeLE(binop(Iop_Add32, mkexpr(addr), mkU32(i * 2)),
7921 binop(Iop_GetElem16x4, getDRegI64(rD + i * inc),
7925 storeLE(binop(Iop_Add32, mkexpr(addr), mkU32(i * 4)),
7926 binop(Iop_GetElem32x2, getDRegI64(rD + i * inc),
7950 assign(*u0, binop(Iop_InterleaveLO32x2, mkexpr(i1), mkexpr(i0)));
7951 assign(*u1, binop(Iop_InterleaveHI32x2, mkexpr(i1), mkexpr(i0)));
7956 assign(*u0, binop(Iop_CatEvenLanes16x4, mkexpr(i1), mkexpr(i0)));
7957 assign(*u1, binop(Iop_CatOddLanes16x4, mkexpr(i1), mkexpr(i0)));
7962 assign(*u0, binop(Iop_CatEvenLanes8x8, mkexpr(i1), mkexpr(i0)));
7963 assign(*u1, binop(Iop_CatOddLanes8x8, mkexpr(i1), mkexpr(i0)));
7986 assign(*i0, binop(Iop_InterleaveLO32x2, mkexpr(u1), mkexpr(u0)));
7987 assign(*i1, binop(Iop_InterleaveHI32x2, mkexpr(u1), mkexpr(u0)));
7992 assign(*i0, binop(Iop_InterleaveLO16x4, mkexpr(u1), mkexpr(u0)));
7993 assign(*i1, binop(Iop_InterleaveHI16x4, mkexpr(u1), mkexpr(u0)));
7998 assign(*i0, binop(Iop_InterleaveLO8x8, mkexpr(u1), mkexpr(u0)));
7999 assign(*i1, binop(Iop_InterleaveHI8x8, mkexpr(u1), mkexpr(u0)));
8029 assign(h3, binop(Iop_InterleaveHI8x8,
8030 binop(Iop_Shl64, SRC_VEC(7), SRC_SHIFT(7)),
8031 binop(Iop_Shl64, SRC_VEC(6), SRC_SHIFT(6))));
8032 assign(h2, binop(Iop_InterleaveHI8x8,
8033 binop(Iop_Shl64, SRC_VEC(5), SRC_SHIFT(5)),
8034 binop(Iop_Shl64, SRC_VEC(4), SRC_SHIFT(4))));
8035 assign(h1, binop(Iop_InterleaveHI8x8,
8036 binop(Iop_Shl64, SRC_VEC(3), SRC_SHIFT(3)),
8037 binop(Iop_Shl64, SRC_VEC(2), SRC_SHIFT(2))));
8038 assign(h0, binop(Iop_InterleaveHI8x8,
8039 binop(Iop_Shl64, SRC_VEC(1), SRC_SHIFT(1)),
8040 binop(Iop_Shl64, SRC_VEC(0), SRC_SHIFT(0))));
8048 assign(w1, binop(Iop_InterleaveHI16x4, mkexpr(h3), mkexpr(h2)));
8049 assign(w0, binop(Iop_InterleaveHI16x4, mkexpr(h1), mkexpr(h0)));
8050 return binop(Iop_InterleaveHI32x2, mkexpr(w1), mkexpr(w0));
8060 # define IHI32x2(_e1, _e2) binop(Iop_InterleaveHI32x2, (_e1), (_e2))
8061 # define IHI16x4(_e1, _e2) binop(Iop_InterleaveHI16x4, (_e1), (_e2))
8062 # define SHL64(_tmp, _amt) binop(Iop_Shl64, mkexpr(_tmp), mkU8(_amt))
8115 # define IHI32x2(_e1, _e2) binop(Iop_InterleaveHI32x2, (_e1), (_e2))
8116 # define IHI16x4(_e1, _e2) binop(Iop_InterleaveHI16x4, (_e1), (_e2))
8117 # define SHL64(_tmp, _amt) binop(Iop_Shl64, mkexpr(_tmp), mkU8(_amt))
8172 binop(Iop_InterleaveHI32x2, mkexpr(_t1), mkexpr(_t2))
8174 binop(Iop_InterleaveLO32x2, mkexpr(_t1), mkexpr(_t2))
8176 binop(Iop_InterleaveHI16x4, mkexpr(_t1), mkexpr(_t2))
8178 binop(Iop_InterleaveLO16x4, mkexpr(_t1), mkexpr(_t2))
8180 binop(Iop_InterleaveHI8x8, mkexpr(_t1), _e2)
8182 binop(Iop_Shl64, mkexpr(_tmp), mkU8(_amt))
8252 binop(Iop_InterleaveHI32x2, mkexpr(_t1), mkexpr(_t2))
8254 binop(Iop_InterleaveLO32x2, mkexpr(_t1), mkexpr(_t2))
8256 binop(Iop_CatEvenLanes16x4, mkexpr(_t1), mkexpr(_t2))
8258 binop(Iop_CatOddLanes16x4, mkexpr(_t1), mkexpr(_t2))
8260 binop(Iop_CatOddLanes8x8, mkexpr(_t1), _e2)
8262 binop(Iop_Shl64, mkexpr(_tmp), mkU8(_amt))
8459 loadLE(Ity_I8, binop(Iop_Add32,
8467 loadLE(Ity_I16, binop(Iop_Add32,
8475 loadLE(Ity_I32, binop(Iop_Add32,
8503 IRExpr* e = binop(Iop_Add32,
8511 IRExpr* e = binop(Iop_Add32,
8591 assign(tmp, binop(Iop_Add32, mkexpr(addr), mkU32(8)));
8619 IRExpr* a0 = binop(Iop_Add32, mkexpr(addr), mkU32(0));
8620 IRExpr* a1 = binop(Iop_Add32, mkexpr(addr), mkU32(8));
8639 assign(tmp, binop(Iop_Add32, mkexpr(addr), mkU32(16)));
8644 IRExpr* a0 = binop(Iop_Add32, mkexpr(addr), mkU32(0));
8645 IRExpr* a1 = binop(Iop_Add32, mkexpr(addr), mkU32(8));
8646 IRExpr* a2 = binop(Iop_Add32, mkexpr(addr), mkU32(16));
8647 IRExpr* a3 = binop(Iop_Add32, mkexpr(addr), mkU32(24));
8683 assign(tmp, binop(Iop_Add32, mkexpr(addr), mkU32(32)));
8692 IRExpr* a0 = binop(Iop_Add32, mkexpr(addr), mkU32(0));
8693 IRExpr* a1 = binop(Iop_Add32, mkexpr(addr), mkU32(8));
8694 IRExpr* a2 = binop(Iop_Add32, mkexpr(addr), mkU32(16));
8719 assign(tmp, binop(Iop_Add32, mkexpr(addr), mkU32(24)));
8727 IRExpr* a0 = binop(Iop_Add32, mkexpr(addr), mkU32(0));
8728 IRExpr* a1 = binop(Iop_Add32, mkexpr(addr), mkU32(8));
8729 IRExpr* a2 = binop(Iop_Add32, mkexpr(addr), mkU32(16));
8730 IRExpr* a3 = binop(Iop_Add32, mkexpr(addr), mkU32(24));
8763 assign(tmp, binop(Iop_Add32, mkexpr(addr), mkU32(32)));
8774 e = binop(Iop_Add32, mkexpr(initialRn),
8777 e = binop(Iop_Add32, mkexpr(initialRn),
8980 assign( srcN, binop(Iop_Sar32,
8981 binop(Iop_Shl32,
8984 assign( srcM, binop(Iop_Sar32,
8985 binop(Iop_Shl32,
8988 assign( res, binop(Iop_Mul32, mkexpr(srcN), mkexpr(srcM)) );
9035 binop(Iop_MullS32,
9037 binop(Iop_Sar32,
9038 binop(Iop_Shl32,
9043 IRExpr* ire_result = binop(Iop_Or32,
9044 binop( Iop_Shl32,
9047 binop( Iop_Shr32,
9106 = binop( Iop_Or32,
9107 binop(Iop_And32, mkexpr(irt_regM_shift), mkU32(mask)),
9108 binop(Iop_And32, isT ? getIRegT(regN) : getIRegA(regN),
9278 binop( Iop_Sar32,
9279 binop(Iop_Shl32, mkexpr(irt_regN), mkU8(16)),
9281 assign( irt_regN_hi, binop(Iop_Sar32, mkexpr(irt_regN), mkU8(16)) );
9290 = binop(Iop_Or32,
9291 binop(Iop_And32, mkexpr(irt_res_lo), mkU32(0xFFFF)),
9292 binop(Iop_Shl32, mkexpr(irt_res_hi), mkU8(16)));
9339 assign( irt_regN_lo, binop( Iop_Sar32,
9340 binop(Iop_Shl32, mkexpr(irt_regN), mkU8(16)),
9342 assign( irt_regN_hi, binop(Iop_Sar32, mkexpr(irt_regN), mkU8(16)) );
9350 IRExpr* ire_result = binop( Iop_Or32,
9351 binop(Iop_Shl32, mkexpr(irt_res_hi), mkU8(16)),
9399 assign(res, binop(Iop_Add16x2, mkexpr(rNt), mkexpr(rMt)));
9405 assign(reso, binop(Iop_HAdd16Ux2, mkexpr(rNt), mkexpr(rMt)));
9448 assign(res, binop(Iop_Add16x2, mkexpr(rNt), mkexpr(rMt)));
9455 binop(Iop_HAdd16Sx2, mkexpr(rNt), mkexpr(rMt))));
9498 assign(res, binop(Iop_Sub16x2, mkexpr(rNt), mkexpr(rMt)));
9505 binop(Iop_HSub16Ux2, mkexpr(rNt), mkexpr(rMt))));
9548 assign(res, binop(Iop_Sub16x2, mkexpr(rNt), mkexpr(rMt)));
9555 binop(Iop_HSub16Sx2, mkexpr(rNt), mkexpr(rMt))));
9598 assign(res, binop(Iop_Add8x4, mkexpr(rNt), mkexpr(rMt)));
9604 assign(reso, binop(Iop_HAdd8Ux4, mkexpr(rNt), mkexpr(rMt)));
9647 assign(res, binop(Iop_Add8x4, mkexpr(rNt), mkexpr(rMt)));
9654 binop(Iop_HAdd8Sx4, mkexpr(rNt), mkexpr(rMt))));
9697 assign(res, binop(Iop_Sub8x4, mkexpr(rNt), mkexpr(rMt)));
9704 binop(Iop_HSub8Ux4, mkexpr(rNt), mkexpr(rMt))));
9747 assign(res, binop(Iop_Sub8x4, mkexpr(rNt), mkexpr(rMt)));
9754 binop(Iop_HSub8Sx4, mkexpr(rNt), mkexpr(rMt))));
9796 assign(res_q, binop(Iop_QAdd8Sx4, mkexpr(rNt), mkexpr(rMt)));
9841 assign(res_q, binop(Iop_QSub8Sx4, mkexpr(rNt), mkexpr(rMt)));
9886 assign(res_q, binop(Iop_QAdd8Ux4, mkexpr(rNt), mkexpr(rMt)));
9931 assign(res_q, binop(Iop_QSub8Ux4, mkexpr(rNt), mkexpr(rMt)));
9976 assign(res_q, binop(Iop_HAdd8Ux4, mkexpr(rNt), mkexpr(rMt)));
10021 assign(res_q, binop(Iop_HAdd16Ux2, mkexpr(rNt), mkexpr(rMt)));
10066 assign(res_q, binop(Iop_HAdd8Sx4, mkexpr(rNt), mkexpr(rMt)));
10111 assign(res_q, binop(Iop_QAdd16Sx2, mkexpr(rNt), mkexpr(rMt)));
10156 assign(res_q, binop(Iop_QSub16Sx2, mkexpr(rNt), mkexpr(rMt)));
10207 binop( Iop_Sub32,
10208 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
10209 binop( Iop_Sar32,
10210 binop(Iop_Shl32, mkexpr(irt_regM), mkU8(16)),
10215 binop( Iop_Add32,
10216 binop( Iop_Sar32,
10217 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
10219 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) )) );
10222 IRExpr* ire_result = binop( Iop_Or32,
10223 binop( Iop_Shl32, mkexpr(irt_diff_res),
10225 binop( Iop_And32, mkexpr(irt_sum_res),
10276 binop( Iop_Sub32,
10277 binop( Iop_Sar32,
10278 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
10280 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
10284 binop( Iop_Add32,
10285 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
10286 binop( Iop_Sar32,
10287 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
10292 = binop( Iop_Or32,
10293 binop( Iop_Shl32, mkexpr(irt_res_sum), mkU8(16) ),
10294 binop( Iop_And32, mkexpr(irt_res_diff), mkU32(0xFFFF) ) );
10342 binop( Iop_Sub32,
10343 binop( Iop_Sar32,
10344 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
10346 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
10349 binop( Iop_Add32,
10350 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
10351 binop( Iop_Sar32,
10352 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
10356 = binop( Iop_Or32,
10357 binop( Iop_Shl32, mkexpr(irt_sum), mkU8(16) ),
10358 binop( Iop_And32, mkexpr(irt_diff), mkU32(0xFFFF) ) );
10425 binop( Iop_Mul32,
10426 binop( Iop_Sar32,
10427 binop(Iop_Shl32, mkexpr(irt_regN), mkU8(16)),
10429 binop( Iop_Sar32,
10430 binop(Iop_Shl32, mkexpr(irt_regM), mkU8(16)),
10432 assign( irt_prod_hi, binop(Iop_Mul32,
10433 binop(Iop_Sar32, mkexpr(irt_regN), mkU8(16)),
10434 binop(Iop_Sar32, mkexpr(irt_regM), mkU8(16))) );
10436 = binop( isAD ? Iop_Add32 : Iop_Sub32,
10509 binop(Iop_Mul32,
10510 binop(Iop_Sar32,
10511 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
10513 binop(Iop_Sar32,
10514 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
10517 binop( Iop_Mul32,
10518 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
10519 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
10520 assign( irt_sum, binop( isAD ? Iop_Add32 : Iop_Sub32,
10523 IRExpr* ire_result = binop(Iop_Add32, mkexpr(irt_sum), mkexpr(irt_regA));
10587 binop(Iop_Mul32,
10588 binop(Iop_Sar32,
10589 binop(Iop_Shl32,
10593 binop(Iop_Sar32,
10594 binop(Iop_Shl32,
10601 IRExpr* ire_result = binop(Iop_Add32, mkexpr(irt_prod), mkexpr(irt_regA));
10661 binop(Iop_MullS32,
10662 binop(Iop_Sar32,
10663 binop(Iop_Shl32,
10667 binop(Iop_Sar32,
10668 binop(Iop_Shl32,
10673 assign( irt_regD, binop(Iop_32HLto64,
10676 assign( irt_res, binop(Iop_Add64, mkexpr(irt_regD), mkexpr(irt_prod)) );
10730 binop(Iop_MullS32,
10732 binop(Iop_Sar32,
10733 binop(Iop_Shl32,
10742 binop(Iop_Or32,
10743 binop(Iop_Shl32, unop(Iop_64HIto32, mkexpr(irt_prod)), mkU8(16)),
10744 binop(Iop_Shr32, unop(Iop_64to32, mkexpr(irt_prod)), mkU8(16))
10747 IRExpr* ire_result = binop(Iop_Add32, mkexpr(prod32), mkexpr(irt_regA));
10806 = binop(Iop_Or32, mkexpr(irt_ge_flag0),
10807 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag0)));
10809 = binop(Iop_Or32, mkexpr(irt_ge_flag1),
10810 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag1)));
10812 = binop(Iop_Or32, mkexpr(irt_ge_flag2),
10813 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag2)));
10815 = binop(Iop_Or32, mkexpr(irt_ge_flag3),
10816 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag3)));
10819 = binop( Iop_Or32,
10820 binop(Iop_Or32,
10821 binop(Iop_And32,
10822 binop(Iop_Sar32, ire_ge_flag0_or, mkU8(31)),
10824 binop(Iop_And32,
10825 binop(Iop_Sar32, ire_ge_flag1_or, mkU8(31)),
10827 binop(Iop_Or32,
10828 binop(Iop_And32,
10829 binop(Iop_Sar32, ire_ge_flag2_or, mkU8(31)),
10831 binop(Iop_And32,
10832 binop(Iop_Sar32, ire_ge_flag3_or, mkU8(31)),
10836 = binop(Iop_Or32,
10837 binop(Iop_And32,
10840 binop(Iop_And32,
10889 assign( irt_rot, binop(Iop_And32,
10894 = binop(Iop_And32,
10895 binop(Iop_Add32, mkexpr(irt_regN), mkexpr(irt_rot)),
10899 = binop(Iop_Add32,
10900 binop(Iop_And32, mkexpr(irt_regN), mkU32(0xFFFF0000)),
10901 binop(Iop_And32, mkexpr(irt_rot), mkU32(0xFFFF0000)));
10904 = binop( Iop_Or32, resHi, resLo );
10951 IRExpr* res = binop(Iop_Add32,
10952 binop(Iop_Sad8Ux4, rNe, rMe),
11004 assign(res_q, binop(Iop_QAdd32S, mkexpr(rMt), mkexpr(rNt)));
11012 binop(Iop_Add32, mkexpr(rMt), mkexpr(rNt)), rMt, rNt),
11058 binop(Iop_Add32, mkexpr(rNt), mkexpr(rNt)), rNt, rNt),
11062 assign(rN_d, binop(Iop_QAdd32S, mkexpr(rNt), mkexpr(rNt)));
11063 assign(res_q, binop(Iop_QAdd32S, mkexpr(rMt), mkexpr(rN_d)));
11071 binop(Iop_Add32, mkexpr(rMt), mkexpr(rN_d)), rMt, rN_d),
11114 assign(res_q, binop(Iop_QSub32S, mkexpr(rMt), mkexpr(rNt)));
11122 binop(Iop_Sub32, mkexpr(rMt), mkexpr(rNt)), rMt, rNt),
11168 binop(Iop_Add32, mkexpr(rNt), mkexpr(rNt)), rNt, rNt),
11172 assign(rN_d, binop(Iop_QAdd32S, mkexpr(rNt), mkexpr(rNt)));
11173 assign(res_q, binop(Iop_QSub32S, mkexpr(rMt), mkexpr(rN_d)));
11181 binop(Iop_Sub32, mkexpr(rMt), mkexpr(rN_d)), rMt, rN_d),
11224 assign(res_q, binop(Iop_QSub16Ux2, mkexpr(rNt), mkexpr(rMt)));
11269 assign(res_q, binop(Iop_HAdd16Sx2, mkexpr(rNt), mkexpr(rMt)));
11314 assign(res_q, binop(Iop_HSub8Ux4, mkexpr(rNt), mkexpr(rMt)));
11359 assign(res_q, binop(Iop_HSub16Ux2, mkexpr(rNt), mkexpr(rMt)));
11404 assign(res_q, binop(Iop_QAdd16Ux2, mkexpr(rNt), mkexpr(rMt)));
11453 binop( Iop_Sub32,
11454 binop( Iop_Shr32, mkexpr(irt_regN), mkU8(16) ),
11455 binop( Iop_Shr32,
11456 binop(Iop_Shl32, mkexpr(irt_regM), mkU8(16)),
11461 binop( Iop_Add32,
11462 binop( Iop_Shr32,
11463 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
11465 binop( Iop_Shr32, mkexpr(irt_regM), mkU8(16) )) );
11468 IRExpr* ire_result = binop( Iop_Or32,
11469 binop( Iop_Shl32, mkexpr(irt_diff_res),
11471 binop( Iop_And32, mkexpr(irt_sum_res),
11522 binop( Iop_Sub32,
11523 binop( Iop_Shr32,
11524 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
11526 binop( Iop_Shr32, mkexpr(irt_regM), mkU8(16) ) ) );
11530 binop( Iop_Add32,
11531 binop( Iop_Shr32, mkexpr(irt_regN), mkU8(16) ),
11532 binop( Iop_Shr32,
11533 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
11538 = binop( Iop_Or32,
11539 binop( Iop_Shl32, mkexpr(irt_res_sum), mkU8(16) ),
11540 binop( Iop_And32, mkexpr(irt_res_diff), mkU32(0xFFFF) ) );
11588 binop( Iop_Add32,
11592 binop( Iop_Shr32, mkexpr(irt_regM), mkU8(16) ) ) );
11595 binop( Iop_Sub32,
11596 binop( Iop_Shr32, mkexpr(irt_regN), mkU8(16) ),
11604 = binop( Iop_Or32,
11605 binop( Iop_Shl32, mkexpr(irt_diff), mkU8(16) ),
11606 binop( Iop_And32, mkexpr(irt_sum), mkU32(0xFFFF) ) );
11609 assign( ge10, IRExpr_ITE( binop( Iop_CmpLE32U,
11666 binop( Iop_Sub32,
11670 binop( Iop_Shr32, mkexpr(irt_regM), mkU8(16) ) ) );
11673 binop( Iop_Add32,
11674 binop( Iop_Shr32, mkexpr(irt_regN), mkU8(16) ),
11680 = binop( Iop_Or32,
11681 binop( Iop_Shl32, mkexpr(irt_sum), mkU8(16) ),
11682 binop( Iop_And32, mkexpr(irt_diff), mkU32(0xFFFF) ) );
11690 assign( ge32, IRExpr_ITE( binop( Iop_CmpLE32U,
11742 binop( Iop_Add32,
11743 binop( Iop_Sar32,
11744 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
11746 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
11749 binop( Iop_Sub32,
11750 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
11751 binop( Iop_Sar32,
11752 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
11756 = binop( Iop_Or32,
11757 binop( Iop_Shl32, mkexpr(irt_diff), mkU8(16) ),
11758 binop( Iop_And32, mkexpr(irt_sum), mkU32(0xFFFF) ) );
11814 assign(res_q, binop(Iop_HSub8Sx4, mkexpr(rNt), mkexpr(rMt)));
11864 = binop(Iop_And32,
11865 binop(Iop_Add32,
11873 = binop(Iop_And32,
11874 binop(Iop_Add32,
11876 binop(Iop_Shl32,
11880 binop(Iop_Shr32,
11887 = binop( Iop_Or32, resHi, resLo );
11937 binop(Iop_Sub32,
11945 binop(Iop_Shr32,
11954 binop(Iop_Add32,
11957 binop(Iop_Shr32,
11970 binop(Iop_Or32,
11973 binop(Iop_Shr32,
11978 binop(Iop_Shl32,
11979 binop(Iop_Shr32,
12034 binop(Iop_Sub32,
12042 binop(Iop_Shr32,
12051 binop(Iop_Add32,
12054 binop(Iop_Shr32,
12067 binop(Iop_Or32,
12070 binop(Iop_Shr32,
12075 binop(Iop_Shl32,
12076 binop(Iop_Shr32,
12131 binop(Iop_Add32,
12139 binop(Iop_Shr32,
12148 binop(Iop_Sub32,
12151 binop(Iop_Shr32,
12164 binop(Iop_Or32,
12167 binop(Iop_Shr32,
12172 binop(Iop_Shl32,
12173 binop(Iop_Shr32,
12228 binop(Iop_Add32,
12236 binop(Iop_Shr32,
12245 binop(Iop_Sub32,
12248 binop(Iop_Shr32,
12261 binop(Iop_Or32,
12264 binop(Iop_Shr32,
12269 binop(Iop_Shl32,
12270 binop(Iop_Shr32,
12322 assign(res_q, binop(Iop_HSub16Sx2, mkexpr(rNt), mkexpr(rMt)));
12375 binop(Iop_Add64,
12376 binop(Iop_Sub64,
12377 binop(Iop_32HLto64, mkexpr(irt_rA), mkU32(0)),
12378 binop(Iop_MullS32, mkexpr(irt_rN), mkexpr(irt_rM))),
12439 assign( pr_1, binop(Iop_MullS32,
12448 assign( pr_2, binop(Iop_MullS32,
12449 binop(Iop_Sar32, mkexpr(irt_rN), mkU8(16)),
12450 binop(Iop_Sar32, mkexpr(op_2), mkU8(16))
12453 assign( result, binop(Iop_Add64,
12454 binop(Iop_Add64,
12458 binop(Iop_32HLto64,
12527 assign( pr_1, binop(Iop_MullS32,
12536 assign( pr_2, binop(Iop_MullS32,
12537 binop(Iop_Sar32, mkexpr(irt_rN), mkU8(16)),
12538 binop(Iop_Sar32, mkexpr(op_2), mkU8(16))
12541 assign( result, binop(Iop_Add64,
12542 binop(Iop_Sub64,
12546 binop(Iop_32HLto64,
12615 /* assign(anchorT, binop(Iop_And32, mkexpr(oldRnT), mkU32(~3U))); */
12636 IRExpr* e = binop(opADDorSUB, mkexpr(oldRnT), mkU32(4*nRegs));
12737 binop(opADDorSUB, mkexpr(anchorT),
12751 storeLE( binop(opADDorSUB, mkexpr(anchorT), mkU32(xOff[i])),
12760 IRExpr* e = binop(opADDorSUB, mkexpr(oldRnT), mkU32(4*nRegs));
12906 assign(rnTnew, binop(summary == 2 ? Iop_Add32 : Iop_Sub32,
12927 IRExpr* addr = binop(Iop_Add32, mkexpr(taT), mkU32(8*i));
13043 assign(rnTnew, binop(summary == 2 ? Iop_Add32 : Iop_Sub32,
13064 IRExpr* addr = binop(Iop_Add32, mkexpr(taT), mkU32(8*i));
13114 assign(nzcvT, binop(Iop_And32,
13158 binop(Iop_32HLto64,
13299 binop(Iop_GetElem8x8,
13313 binop(Iop_GetElem16x4,
13326 IRExpr* e = binop(Iop_GetElem32x2, getDRegI64(rN), mkU8(index));
13442 assign(ea, binop(bU ? Iop_Add32 : Iop_Sub32,
13612 assign(irRes, binop(Iop_CmpF64, mkexpr(argL), mkexpr(argR)));
13636 binop(Iop_Or32,
13637 binop(Iop_And32, mkexpr(oldFPSCR), mkU32(0x0FFFFFFF)),
13638 binop(Iop_Shl32, mkexpr(nzcv), mkU8(28))));
13682 putDReg(dD, binop(Iop_SqrtF64, rm, getDReg(dM)), condT);
13735 binop(Iop_F64toI32S, mkexpr(rmode),
13743 binop(Iop_F64toI32U, mkexpr(rmode),
13835 assign(rnTnew, binop(summary == 2 ? Iop_Add32 : Iop_Sub32,
13856 IRExpr* addr = binop(Iop_Add32, mkexpr(taT), mkU32(4*i));
13947 assign(ea, binop(bU ? Iop_Add32 : Iop_Sub32,
14123 assign(irRes, binop(Iop_CmpF64, mkexpr(argL), mkexpr(argR)));
14147 binop(Iop_Or32,
14148 binop(Iop_And32, mkexpr(oldFPSCR), mkU32(0x0FFFFFFF)),
14149 binop(Iop_Shl32, mkexpr(nzcv), mkU8(28))));
14196 putFReg(fD, binop(Iop_SqrtF32, rm, getFReg(fM)), condT);
14227 putFReg(fD, binop(Iop_F64toF32,
14235 putFReg(fD, binop(Iop_F64toF32,
14262 binop(Iop_F64toI32S, mkexpr(rmode),
14271 binop(Iop_F64toI32U, mkexpr(rmode),
14305 putFReg(fD, binop(Iop_F64toF32, mkexpr(rmode), getDReg(dM)),
14359 IRExpr* resF32 = binop(Iop_F64toF32, mkexpr(rmode), resF64);
14402 assign(asI32, binop(unsyned ? Iop_F64toI32U : Iop_F64toI32S,
14808 assign(res, binop(op, mkexpr(shop), mkexpr(rNt)) );
14812 assign(res, binop(op, mkexpr(rNt),
14816 assign(res, binop(op, mkexpr(rNt), mkexpr(shop)) );
14947 assign( res, binop(isTEQ ? Iop_Xor32 : Iop_And32,
14984 binop(Iop_Add32,
14985 binop(Iop_Add32, mkexpr(rNt), mkexpr(shop)),
14990 binop(Iop_Sub32,
14991 binop(Iop_Sub32, mkexpr(rNt), mkexpr(shop)),
14992 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
14996 binop(Iop_Sub32,
14997 binop(Iop_Sub32, mkexpr(shop), mkexpr(rNt)),
14998 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
15678 binop(Iop_CmpEQ32, mkexpr(arg), mkU32(0)),
15706 assign( res, binop(Iop_Mul32, mkexpr(argL), mkexpr(argR)) );
15717 assign( pair, binop(Iop_Or32,
15718 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
15745 assign(res, binop(Iop_DivS32, mkexpr(argL), mkexpr(argR)));
15767 assign(res, binop(Iop_DivU32, mkexpr(argL), mkexpr(argR)));
15800 assign( res, binop(isMLS ? Iop_Sub32 : Iop_Add32,
15802 binop(Iop_Mul32, mkexpr(argL), mkexpr(argR)) ));
15814 assign( pair, binop(Iop_Or32,
15815 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
15849 assign( res, binop(mulOp, mkexpr(argL), mkexpr(argR)) );
15863 assign( pair, binop(Iop_Or32,
15864 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
15899 assign( old, binop(Iop_32HLto64, getIRegA(rDhi), getIRegA(rDlo)) );
15900 assign( res, binop(Iop_Add64,
15902 binop(mulOp, mkexpr(argL), mkexpr(argR))) );
15916 assign( pair, binop(Iop_Or32,
15917 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
15950 binop(Iop_Add64,
15951 binop(Iop_Add64,
15952 binop(Iop_MullU32, mkexpr(argN), mkexpr(argM)),
16189 ? binop(Iop_32HLto64, getIRegA(rT+1), getIRegA(rT+0))
16228 binop(Iop_Or32,
16229 binop(Iop_And32, getIRegA(rD), mkU32(0xFFFF)),
16279 assign(dstT, binop(Iop_And32, mkexpr(rotT), mkU32(0x00FF00FF)));
16285 assign(lo32, binop(Iop_And32, mkexpr(rotT), mkU32(0xFF)));
16286 assign(hi32, binop(Iop_Shr32, mkexpr(rotT), mkU8(16)));
16289 binop(Iop_Or32,
16290 binop(Iop_And32,
16294 binop(Iop_Shl32,
16333 binop(Iop_Or32,
16334 binop(Iop_And32,
16335 binop(Iop_Shl32, mkexpr(src), mkU8(lsb)),
16337 binop(Iop_And32,
16376 assign(tmp, binop(Iop_And32,
16377 binop(Iop_Shr32, mkexpr(src), mkU8(lsb)),
16379 assign(res, binop(isU ? Iop_Shr32 : Iop_Sar32,
16380 binop(Iop_Shl32, mkexpr(tmp), mkU8(31-wm1)),
16544 storeGuardedLE( binop(Iop_Add32, mkexpr(taT), mkU32(0)),
16546 storeGuardedLE( binop(Iop_Add32, mkexpr(taT), mkU32(4)),
16557 binop(Iop_Add32, mkexpr(taT), mkU32(0)),
16561 binop(Iop_Add32, mkexpr(taT), mkU32(4)),
16615 assign(res, binop(Iop_Add32,
16645 assign(res, binop(Iop_Add32,
16687 binop(Iop_Sar32,
16688 binop(Iop_Shl32, mkexpr(irt_rM), mkU8(24)),
16693 binop(Iop_And32,
16694 binop(Iop_Shr32, mkexpr(irt_rM), mkU8(8)),
16699 binop(Iop_Or32, mkexpr(irt_hi), mkexpr(irt_low))
16732 binop(Iop_Add64,
16733 binop(Iop_MullS32, getIRegA(rN), getIRegA(rM)),
16754 binop(Iop_Add64,
16755 binop(Iop_Add64,
16756 binop(Iop_32HLto64, getIRegA(rA), mkU32(0)),
16757 binop(Iop_MullS32, getIRegA(rN), getIRegA(rM))),
16788 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16843 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16902 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16929 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16958 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16985 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
17014 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
17041 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
17065 IRExpr* newRn = binop(bU ? Iop_Add32 : Iop_Sub32,
17119 IRExpr* newRn = binop(bU ? Iop_Add32 : Iop_Sub32,
17144 IRExpr* newRn = binop(bU ? Iop_Add32 : Iop_Sub32,
17167 IRExpr* newRn = binop(bU ? Iop_Add32 : Iop_Sub32,
17365 binop(Iop_Xor32,
17693 // binop(Iop_Shr32, mkexpr(old_itstate), mkU8(8)));
17710 // binop(Iop_Xor32,
17711 // binop(Iop_And32, mkexpr(old_itstate), mkU32(0xF0)),
17724 // unop(Iop_32to8, binop(Iop_And32,
17740 // binop(Iop_Xor32,
17741 // binop(Iop_And32, mkexpr(old_itstate), mkU32(1)),
17750 // binop(Iop_And32, mkexpr(notInITt), mkexpr(condT)));
17761 binop(Iop_Shr32, mkexpr(old_itstate), mkU8(8)));
17775 binop(Iop_Xor32,
17776 binop(Iop_And32, mkexpr(old_itstate), mkU32(0xF0)),
17805 binop(Iop_CmpNE32, binop(Iop_And32,
17819 binop(Iop_Xor32,
17820 binop(Iop_And32, mkexpr(old_itstate), mkU32(1)),
17829 binop(Iop_And32, mkexpr(notInITt), mkexpr(condT)));
17899 assign( res, binop(Iop_And32, getIRegT(rN), getIRegT(rM)) );
17916 putIRegT(rD, binop(Iop_Sub32, mkexpr(zero), mkexpr(arg)), condT);
17962 assign( res, binop(anOp, getIRegT(rD), getIRegT(rM) ));
17982 assign( res, binop(Iop_And32, getIRegT(rD),
18005 assign(res, binop(Iop_Add32,
18006 binop(Iop_Add32, mkexpr(argL), mkexpr(argR)),
18028 assign(res, binop(Iop_Sub32,
18029 binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)),
18030 binop(Iop_Xor32, mkexpr(oldC), mkU32(1))));
18044 putIRegT(rD, binop(Iop_And32, getIRegT(rM), mkU32(0xFF)),
18055 putIRegT(rD, binop(Iop_Sar32,
18056 binop(Iop_Shl32, getIRegT(rM), mkU8(24)),
18068 putIRegT(rD, binop(Iop_And32, getIRegT(rM), mkU32(0xFFFF)),
18079 putIRegT(rD, binop(Iop_Sar32,
18080 binop(Iop_Shl32, getIRegT(rM), mkU8(16)),
18169 binop(Iop_Sar32,
18170 binop(Iop_Shl32, mkexpr(irt_rM), mkU8(24)),
18175 binop(Iop_And32,
18176 binop(Iop_Shr32, mkexpr(irt_rM), mkU8(8)),
18181 binop(Iop_Or32, mkexpr(irt_hi), mkexpr(irt_low))
18201 putIRegT(13, binop(Iop_Add32, getIRegT(13), mkU32(uimm7 * 4)),
18210 putIRegT(13, binop(Iop_Sub32, getIRegT(13), mkU32(uimm7 * 4)),
18312 assign( res, binop(Iop_Add32, getIRegT(rD), getIRegT(rM) ));
18323 llPutIReg(15, binop(Iop_Or32, mkexpr(res), mkU32(1)));
18373 llPutIReg(15, binop(Iop_Or32, mkexpr(val), mkU32(1)));
18420 assign( kond, binop(bOP ? Iop_CmpNE32 : Iop_CmpEQ32,
18480 assign(newSP, binop(Iop_Sub32, getIRegT(13), mkU32(4 * nRegs)));
18486 assign(base, binop(Iop_And32, mkexpr(newSP), mkU32(~3)));
18492 storeLE( binop(Iop_Add32, mkexpr(base), mkU32(4 * nRegs)),
18538 assign(base, binop(Iop_And32, mkexpr(oldSP), mkU32(~3)));
18544 assign(newSP, binop(Iop_Add32, mkexpr(oldSP),
18552 binop(Iop_Add32, mkexpr(base),
18563 binop(Iop_Add32, mkexpr(base),
18602 putIRegT(rD, binop(isSub ? Iop_Sub32 : Iop_Add32,
18623 putIRegT( rD, binop(isSub ? Iop_Sub32 : Iop_Add32,
18642 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
18667 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
18689 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
18707 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
18728 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
18764 putIRegT( rN, binop(isSub ? Iop_Sub32 : Iop_Add32,
18778 putIRegT(rD, binop(Iop_Add32,
18779 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
18790 putIRegT(rD, binop(Iop_Add32, getIRegT(13), mkU32(imm8 * 4)),
18834 assign(ea, binop(Iop_Add32,
18835 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
18857 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5 * 4));
18882 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5 * 2));
18907 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5));
18931 IRExpr* ea = binop(Iop_Add32, getIRegT(13), mkU32(imm8 * 4));
18961 assign(base, binop(Iop_And32, mkexpr(oldRn), mkU32(~3U)));
18968 binop(Iop_Add32, mkexpr(base),
18977 binop(Iop_Add32, mkexpr(oldRn),
19015 assign(base, binop(Iop_And32, mkexpr(oldRn), mkU32(~3U)));
19020 storeLE( binop(Iop_Add32, mkexpr(base), mkU32(nRegs * 4 - 4)),
19025 binop(Iop_Add32, mkexpr(oldRn),
19339 assign(res, binop(Iop_Add32, mkexpr(argL), mkexpr(argR)));
19366 assign(res, binop(Iop_Add32, mkexpr(argL), mkexpr(argR)));
19414 assign(res, binop(isTST ? Iop_And32 : Iop_Xor32,
19449 ? binop(Iop_Sub32, mkexpr(argR), mkexpr(argL))
19450 : binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)));
19481 assign(res, binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)));
19513 binop(Iop_Add32,
19514 binop(Iop_Add32, mkexpr(argL), mkexpr(argR)),
19524 binop(Iop_Sub32,
19525 binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)),
19526 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
19576 assign(res, binop(op, mkexpr(argL), mkexpr(argR)));
19647 ? binop(op, mkexpr(argR), mkexpr(argL))
19648 : binop(op, mkexpr(argL), mkexpr(argR)));
19709 binop(Iop_Add32,
19710 binop(Iop_Add32, mkexpr(argL), mkexpr(argR)),
19720 binop(Iop_Sub32,
19721 binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)),
19722 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
19787 assign(res, binop(op, mkexpr(rNt),
19790 assign(res, binop(op, mkexpr(rNt), mkexpr(argR)));
19915 assign(res, binop(isTST ? Iop_And32 : Iop_Xor32,
20014 binop(Iop_Or32,
20015 binop(Iop_And32, getIRegT(rD), mkU32(0xFFFF)),
20105 assign(postAddr, binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
20290 binop( Iop_Add32,
20292 binop(Iop_Shl32, getIRegT(rM), mkU8(imm2)) ));
20445 assign(rNt, binop(Iop_And32, getIRegT(15), mkU32(~3)));
20452 binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
20548 ? binop(Iop_And32, getIRegT(15), mkU32(~3U))
20552 assign(postAddr, binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
20578 storeGuardedLE( binop(Iop_Add32, mkexpr(transAddr), mkU32(4)),
20591 binop(Iop_Add32, mkexpr(transAddr), mkU32(4)),
20716 = binop(Iop_Add32,
20718 bH ? binop(Iop_Shl32, getIRegT(rM), mkU8(1))
20730 binop(Iop_Or32,
20731 binop(Iop_Add32,
20733 binop(Iop_Shl32, mkexpr(delta), mkU8(1))
20768 assign(tmp, binop(Iop_And32,
20769 binop(Iop_Shr32, mkexpr(src), mkU8(lsb)),
20771 assign(res, binop(isU ? Iop_Shr32 : Iop_Sar32,
20772 binop(Iop_Shl32, mkexpr(tmp), mkU8(31-wm1)),
20832 assign(dstT, binop(Iop_And32, mkexpr(rotT),
20839 assign(lo32, binop(Iop_And32, mkexpr(rotT), mkU32(0xFF)));
20840 assign(hi32, binop(Iop_Shr32, mkexpr(rotT), mkU8(16)));
20843 binop(Iop_Or32,
20844 binop(Iop_And32,
20848 binop(Iop_Shl32,
20872 assign(res, binop(Iop_Mul32, getIRegT(rN), getIRegT(rM)));
20891 assign(res, binop(Iop_DivS32, mkexpr(argL), mkexpr(argR)));
20910 assign(res, binop(Iop_DivU32, mkexpr(argL), mkexpr(argR)));
20928 assign(res, binop(isU ? Iop_MullU32 : Iop_MullS32,
20951 binop(isMLA ? Iop_Add32 : Iop_Sub32,
20953 binop(Iop_Mul32, getIRegT(rN), getIRegT(rM))));
20969 putIRegT(rD, binop(Iop_Add32,
20970 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
20999 assign( old, binop(Iop_32HLto64, getIRegT(rDhi), getIRegT(rDlo)) );
21000 assign( res, binop(Iop_Add64,
21002 binop(mulOp, mkexpr(argL), mkexpr(argR))) );
21033 binop(Iop_Add64,
21034 binop(Iop_Add64,
21035 binop(Iop_MullU32, mkexpr(argN), mkexpr(argM)),
21059 binop(Iop_Add64,
21060 binop(Iop_MullS32, getIRegT(rN), getIRegT(rM)),
21081 binop(Iop_Add64,
21082 binop(Iop_Add64,
21083 binop(Iop_32HLto64, getIRegT(rA), mkU32(0)),
21084 binop(Iop_MullS32, getIRegT(rN), getIRegT(rM))),
21101 putIRegT(rD, binop(Iop_Sub32,
21102 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
21131 binop(Iop_Or32,
21132 binop(Iop_And32,
21133 binop(Iop_Shl32, mkexpr(src), mkU8(lsb)),
21135 binop(Iop_And32,
21170 assign(res, binop(Iop_Add32,
21199 assign(res, binop(Iop_Add32,
21223 binop(Iop_CmpEQ32, mkexpr(arg), mkU32(0)),
21284 binop(Iop_Sar32,
21285 binop(Iop_Shl32, mkexpr(irt_rM), mkU8(24)),
21290 binop(Iop_And32,
21291 binop(Iop_Shr32, mkexpr(irt_rM), mkU8(8)),
21296 binop(Iop_Or32, mkexpr(irt_hi), mkexpr(irt_low))
21345 binop(Iop_Add32, getIRegT(rN), mkU32(imm8 * 4)),
21412 binop(Iop_Add32, getIRegT(rN), mkU32(imm8 * 4)),
21470 assign(data, binop(Iop_32HLto64, getIRegT(rT2), getIRegT(rT)));
21606 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21629 IRExpr* address = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21650 IRExpr* address = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21678 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21707 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21730 IRExpr* address = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21753 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21777 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
22109 if (out3) assign(*out3, binop(Iop_Shr32, mkexpr(hi32), mkU8(16)));
22110 if (out2) assign(*out2, binop(Iop_And32, mkexpr(hi32), mkU32(0xFFFF)));
22111 if (out1) assign(*out1, binop(Iop_Shr32, mkexpr(lo32), mkU8(16)));
22112 if (out0) assign(*out0, binop(Iop_And32, mkexpr(lo32), mkU32(0xFFFF)));
22122 binop(Iop_Or32,
22123 binop(Iop_Shl32, mkexpr(in3), mkU8(16)),
22124 binop(Iop_And32, mkexpr(in2), mkU32(0xFFFF))));
22126 binop(Iop_Or32,
22127 binop(Iop_Shl32, mkexpr(in1), mkU8(16)),
22128 binop(Iop_And32, mkexpr(in0), mkU32(0xFFFF))));
22130 assign(res, binop(Iop_32HLto64, mkexpr(hi32), mkexpr(lo32)));
22205 assign(*out7, binop(Iop_And32,
22206 binop(Iop_Shr32, mkexpr(hi32), mkU8(24)),
22209 assign(*out6, binop(Iop_And32,
22210 binop(Iop_Shr32, mkexpr(hi32), mkU8(16)),
22213 assign(*out5, binop(Iop_And32,
22214 binop(Iop_Shr32, mkexpr(hi32), mkU8(8)),
22217 assign(*out4, binop(Iop_And32, mkexpr(hi32), mkU32(0xFF)));
22219 assign(*out3, binop(Iop_And32,
22220 binop(Iop_Shr32, mkexpr(lo32), mkU8(24)),
22223 assign(*out2, binop(Iop_And32,
22224 binop(Iop_Shr32, mkexpr(lo32), mkU8(16)),
22227 assign(*out1, binop(Iop_And32,
22228 binop(Iop_Shr32, mkexpr(lo32), mkU8(8)),
22231 assign(*out0, binop(Iop_And32, mkexpr(lo32), mkU32(0xFF)));
22240 binop(Iop_Or32,
22241 binop(Iop_Or32,
22242 binop(Iop_Shl32,
22243 binop(Iop_And32, mkexpr(in7), mkU32(0xFF)),
22245 binop(Iop_Shl32,
22246 binop(Iop_And32, mkexpr(in6), mkU32(0xFF)),
22248 binop(Iop_Or32,
22249 binop(Iop_Shl32,
22250 binop(Iop_And32, mkexpr(in5), mkU32(0xFF)), mkU8(8)),
22251 binop(Iop_And32,
22254 binop(Iop_Or32,
22255 binop(Iop_Or32,
22256 binop(Iop_Shl32,
22257 binop(Iop_And32, mkexpr(in3), mkU32(0xFF)),
22259 binop(Iop_Shl32,
22260 binop(Iop_And32, mkexpr(in2), mkU32(0xFF)),
22262 binop(Iop_Or32,
22263 binop(Iop_Shl32,
22264 binop(Iop_And32, mkexpr(in1), mkU32(0xFF)), mkU8(8)),
22265 binop(Iop_And32,
22268 assign(res, binop(Iop_32HLto64, mkexpr(hi32), mkexpr(lo32)));
22329 return binop(Iop_32HLto64, unop(Iop_64to32, mkexpr(a10)),
22336 return binop(Iop_32HLto64, unop(Iop_64HIto32, mkexpr(a10)),