Home | History | Annotate | Download | only in priv

Lines Matching refs:Binop

274       return toBool( isIRAtom(e->Iex.Binop.arg1) 
275 && isIRAtom(e->Iex.Binop.arg2) );
334 IRExpr_Binop(ex->Iex.Binop.op,
335 flatten_Expr(bb, ex->Iex.Binop.arg1),
336 flatten_Expr(bb, ex->Iex.Binop.arg2))));
1082 return toBool( e1->Iex.Binop.op == e2->Iex.Binop.op
1083 && sameIRExprs_aux( env, e1->Iex.Binop.arg1,
1084 e2->Iex.Binop.arg1 )
1085 && sameIRExprs_aux( env, e1->Iex.Binop.arg2,
1086 e2->Iex.Binop.arg2 ));
1698 if (e->Iex.Binop.arg1->tag == Iex_Const
1699 && e->Iex.Binop.arg2->tag == Iex_Const) {
1701 switch (e->Iex.Binop.op) {
1706 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1707 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1711 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U16
1712 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U16))));
1716 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1717 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1721 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1722 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1726 (e->Iex.Binop.arg1->Iex.Const.con->Ico.V128
1727 | e->Iex.Binop.arg2->Iex.Const.con->Ico.V128)));
1733 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1734 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1738 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U16
1739 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U16))));
1743 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1744 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1748 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1749 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1753 (e->Iex.Binop.arg1->Iex.Const.con->Ico.V128
1754 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.V128)));
1760 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1761 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1765 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U16
1766 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U16))));
1770 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1771 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1775 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1776 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1780 (e->Iex.Binop.arg1->Iex.Const.con->Ico.V128
1781 & e->Iex.Binop.arg2->Iex.Const.con->Ico.V128)));
1787 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1788 + e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1792 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1793 + e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1797 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1798 + e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1804 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1805 - e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1809 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1810 - e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1814 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1815 - e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1820 UInt u32a = e->Iex.Binop.arg1->Iex.Const.con->Ico.U32;
1821 UInt u32b = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
1830 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1831 * e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1835 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1836 * e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1841 UInt u32a = e->Iex.Binop.arg1->Iex.Const.con->Ico.U32;
1842 UInt u32b = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
1855 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1856 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1859 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1863 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1864 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1867 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1875 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1876 s32 = (Int)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32);
1877 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1887 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1888 s64 = (Long)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64);
1889 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1901 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1902 u32 = (UInt)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32);
1903 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1913 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1914 u64 = (ULong)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64);
1915 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1926 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1927 == e->Iex.Binop.arg2->Iex.Const.con->Ico.U32))));
1931 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1932 == e->Iex.Binop.arg2->Iex.Const.con->Ico.U64))));
1940 ((0xFF & e->Iex.Binop.arg1->Iex.Const.con->Ico.U8)
1941 != (0xFF & e->Iex.Binop.arg2->Iex.Const.con->Ico.U8)))));
1947 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1948 != e->Iex.Binop.arg2->Iex.Const.con->Ico.U32))));
1954 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1955 != e->Iex.Binop.arg2->Iex.Const.con->Ico.U64))));
1961 ((UInt)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1962 <= (UInt)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
1966 ((ULong)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64)
1967 <= (ULong)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)))));
1973 ((Int)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1974 <= (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
1978 ((Long)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64)
1979 <= (Long)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)))));
1985 ((Int)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1986 < (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
1990 ((Long)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64)
1991 < (Long)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)))));
1997 ((UInt)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1998 < (UInt)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
2002 ((ULong)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64)
2003 < (ULong)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)))));
2009 UInt u32a = e->Iex.Binop.arg1->Iex.Const.con->Ico.U32;
2010 UInt u32b = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
2027 (((ULong)(e->Iex.Binop.arg1
2029 | ((ULong)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32))
2044 ULong argHi = e->Iex.Binop.arg1->Iex.Const.con->Ico.U64;
2045 ULong argLo = e->Iex.Binop.arg2->Iex.Const.con->Ico.U64;
2055 IRExpr* argHi = e->Iex.Binop.arg1;
2056 IRExpr* argLo = e->Iex.Binop.arg2;
2069 UShort arg1 = e->Iex.Binop.arg1->Iex.Const.con->Ico.V128;
2070 UShort arg2 = e->Iex.Binop.arg2->Iex.Const.con->Ico.V128;
2086 switch (e->Iex.Binop.op) {
2093 if (isZeroU(e->Iex.Binop.arg2)) {
2094 e2 = e->Iex.Binop.arg1;
2098 if (isZeroU(e->Iex.Binop.arg1)) {
2099 e2 = e->Iex.Binop.arg1;
2107 if (isZeroU(e->Iex.Binop.arg2)) {
2108 e2 = e->Iex.Binop.arg1;
2119 if (isZeroU(e->Iex.Binop.arg2)) {
2120 e2 = e->Iex.Binop.arg1;
2124 if (isZeroU(e->Iex.Binop.arg1)) {
2125 e2 = e->Iex.Binop.arg2;
2130 if (isOnesU(e->Iex.Binop.arg1) || isOnesU(e->Iex.Binop.arg2)) {
2131 e2 = mkOnesOfPrimopResultType(e->Iex.Binop.op);
2135 if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2136 e2 = e->Iex.Binop.arg1;
2147 if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2148 e2 = IRExpr_Binop(Iop_Shl8, e->Iex.Binop.arg1,
2159 if (isZeroU(e->Iex.Binop.arg2)) {
2160 e2 = e->Iex.Binop.arg1;
2164 if (isZeroU(e->Iex.Binop.arg1)) {
2165 e2 = e->Iex.Binop.arg2;
2169 if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2171 e->Iex.Binop.op == Iop_Add32 ? Iop_Shl32 : Iop_Shl64,
2172 e->Iex.Binop.arg1, IRExpr_Const(IRConst_U8(1)));
2180 if (isZeroU(e->Iex.Binop.arg2)) {
2181 e2 = e->Iex.Binop.arg1;
2185 if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2186 e2 = mkZeroOfPrimopResultType(e->Iex.Binop.op);
2192 if (isZeroV128(e->Iex.Binop.arg2)) {
2193 e2 = e->Iex.Binop.arg1;
2203 if (isOnesU(e->Iex.Binop.arg2)) {
2204 e2 = e->Iex.Binop.arg1;
2208 if (isOnesU(e->Iex.Binop.arg1)) {
2209 e2 = e->Iex.Binop.arg2;
2213 if (isZeroU(e->Iex.Binop.arg2)) {
2214 e2 = e->Iex.Binop.arg2;
2218 if (isZeroU(e->Iex.Binop.arg1)) {
2219 e2 = e->Iex.Binop.arg1;
2223 if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2224 e2 = e->Iex.Binop.arg1;
2233 if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2234 e2 = e->Iex.Binop.arg1;
2239 if (e->Iex.Binop.op == Iop_AndV256
2240 && (isZeroV256(e->Iex.Binop.arg1)
2241 || isZeroV256(e->Iex.Binop.arg2))) {
2242 e2 = mkZeroOfPrimopResultType(e->Iex.Binop.op);
2244 } else if (e->Iex.Binop.op == Iop_AndV128
2245 && (isZeroV128(e->Iex.Binop.arg1)
2246 || isZeroV128(e->Iex.Binop.arg2))) {
2247 e2 = mkZeroOfPrimopResultType(e->Iex.Binop.op);
2255 if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2256 e2 = e->Iex.Binop.arg1;
2260 if (e->Iex.Binop.op == Iop_OrV128) {
2261 if (isZeroV128(e->Iex.Binop.arg2)) {
2262 e2 = e->Iex.Binop.arg1;
2265 if (isZeroV128(e->Iex.Binop.arg1)) {
2266 e2 = e->Iex.Binop.arg2;
2271 if (e->Iex.Binop.op == Iop_OrV256) {
2272 if (isZeroV256(e->Iex.Binop.arg2)) {
2273 e2 = e->Iex.Binop.arg1;
2277 //if (isZeroV256(e->Iex.Binop.arg1)) {
2278 // e2 = e->Iex.Binop.arg2;
2291 if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2292 e2 = mkZeroOfPrimopResultType(e->Iex.Binop.op);
2296 if (e->Iex.Binop.op == Iop_XorV128) {
2297 if (isZeroV128(e->Iex.Binop.arg2)) {
2298 e2 = e->Iex.Binop.arg1;
2302 //if (isZeroV128(e->Iex.Binop.arg1)) {
2303 // e2 = e->Iex.Binop.arg2;
2308 if (isZeroU(e->Iex.Binop.arg1)) {
2309 e2 = e->Iex.Binop.arg2;
2313 if (isZeroU(e->Iex.Binop.arg2)) {
2314 e2 = e->Iex.Binop.arg1;
2322 if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2323 e2 = mkZeroOfPrimopResultType(e->Iex.Binop.op);
2327 if (isZeroU32(e->Iex.Binop.arg2)) {
2328 IRExpr* a1 = chase(env, e->Iex.Binop.arg1);
2343 if (sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2344 e2 = mkOnesOfPrimopResultType(e->Iex.Binop.op);
2395 && !debug_only_hack_sameIRExprs_might_assert(e->Iex.Binop.arg1,
2396 e->Iex.Binop.arg2)
2397 && sameIRExprs(env, e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
2487 vassert(isIRAtom(ex->Iex.Binop.arg1));
2488 vassert(isIRAtom(ex->Iex.Binop.arg2));
2490 ex->Iex.Binop.op,
2491 subst_Expr(env, ex->Iex.Binop.arg1),
2492 subst_Expr(env, ex->Iex.Binop.arg2)
2968 addUses_Expr(set, e->Iex.Binop.arg1);
2969 addUses_Expr(set, e->Iex.Binop.arg2);
3433 /* binop(tmp,tmp) */
3439 /* binop(tmp,const) */
3445 /* binop(const,tmp) */
3739 if (e->Iex.Binop.arg1->tag == Iex_RdTmp) {
3740 if (e->Iex.Binop.arg2->tag == Iex_RdTmp) {
3743 ae->u.Btt.op = e->Iex.Binop.op;
3744 ae->u.Btt.arg1 = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
3745 ae->u.Btt.arg2 = e->Iex.Binop.arg2->Iex.RdTmp.tmp;
3748 if (e->Iex.Binop.arg2->tag == Iex_Const) {
3751 ae->u.Btc.op = e->Iex.Binop.op;
3752 ae->u.Btc.arg1 = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
3753 ae->u.Btc.con2 = *(e->Iex.Binop.arg2->Iex.Const.con);
3756 } else if (e->Iex.Binop.arg1->tag == Iex_Const
3757 && e->Iex.Binop.arg2->tag == Iex_RdTmp) {
3760 ae->u.Bct.op = e->Iex.Binop.op;
3761 ae->u.Bct.arg2 = e->Iex.Binop.arg2->Iex.RdTmp.tmp;
3762 ae->u.Bct.con1 = *(e->Iex.Binop.arg1->Iex.Const.con);
4046 if (e->Iex.Binop.op != Iop_Add32 && e->Iex.Binop.op != Iop_Sub32)
4048 if (e->Iex.Binop.arg1->tag != Iex_RdTmp)
4050 if (e->Iex.Binop.arg2->tag != Iex_Const)
4052 *tmp = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
4053 *i32 = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32);
4054 if (e->Iex.Binop.op == Iop_Sub32)
4576 deltaIRExpr(e->Iex.Binop.arg1, delta);
4577 deltaIRExpr(e->Iex.Binop.arg2, delta);
5028 setHints_Expr(doesLoad, getInterval, e->Iex.Binop.arg1);
5029 setHints_Expr(doesLoad, getInterval, e->Iex.Binop.arg2);
5113 aoccCount_Expr(uses, e->Iex.Binop.arg1);
5114 aoccCount_Expr(uses, e->Iex.Binop.arg2);
5253 return e->tag == Iex_Binop && e->Iex.Binop.op == op;
5290 && is_Unop(aa->Iex.Binop.arg1, Iop_CmpwNEZ64))
5294 aa->Iex.Binop.arg1->Iex.Unop.arg,
5295 aa->Iex.Binop.arg2));
5298 && is_Unop(aa->Iex.Binop
5302 aa->Iex.Binop.arg1,
5303 aa->Iex.Binop.arg2->Iex.Unop.arg));
5385 && is_Unop(aa->Iex.Unop.arg->Iex.Binop.arg1, Iop_32Uto64)
5386 && is_Unop(aa->Iex.Unop.arg->Iex.Binop.arg1->Iex.Unop.arg,
5394 && is_Unop(aa->Iex.Unop.arg->Iex.Binop.arg1, Iop_32Uto64)
5395 && is_Unop(aa->Iex.Unop.arg->Iex.Binop.arg1->Iex.Unop.arg,
5404 aa->Iex.Unop.arg->Iex.Binop.arg1->Iex.Unop.arg->Iex.Unop.arg,
5405 aa->Iex.Unop.arg->Iex.Binop.arg2
5473 e->Iex.Binop.op,
5474 atbSubst_Expr(env, e->Iex.Binop.arg1),
5475 atbSubst_Expr(env, e->Iex.Binop.arg2)
5991 ppIROp(e->Iex.Binop.op);
5993 print_flat_expr(env, e->Iex.Binop.arg1);
5995 print_flat_expr(env, e->Iex.Binop.arg2);
6034 && (_e)->Iex.Binop.op == (_op))
6037 # define LL(_e) ((_e)->Iex.Binop.arg1)
6038 # define RR(_e) ((_e)->Iex.Binop.arg2)
6185 switch (e->Iex.Binop.op) {