Home | History | Annotate | Download | only in priv

Lines Matching refs:Binop

255       return toBool( isIRAtom(e->Iex.Binop.arg1) 
256 && isIRAtom(e->Iex.Binop.arg2) );
311 IRExpr_Binop(ex->Iex.Binop.op,
312 flatten_Expr(bb, ex->Iex.Binop.arg1),
313 flatten_Expr(bb, ex->Iex.Binop.arg2))));
1258 if (e->Iex.Binop.arg1->tag == Iex_Const
1259 && e->Iex.Binop.arg2->tag == Iex_Const) {
1261 switch (e->Iex.Binop.op) {
1266 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1267 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1271 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U16
1272 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U16))));
1276 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1277 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1281 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1282 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1288 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1289 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1293 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U16
1294 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U16))));
1298 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1299 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1303 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1304 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1310 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1311 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1315 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U16
1316 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U16))));
1320 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1321 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1325 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1326 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1332 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1333 + e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1337 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1338 + e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1342 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1343 + e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1349 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1350 - e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1354 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1355 - e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1359 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1360 - e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1365 UInt u32a = e->Iex.Binop.arg1->Iex.Const.con->Ico.U32;
1366 UInt u32b = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
1375 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1376 * e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1380 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1381 * e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1386 UInt u32a = e->Iex.Binop.arg1->Iex.Const.con->Ico.U32;
1387 UInt u32b = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
1400 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1401 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1404 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1408 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1409 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1412 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1420 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1421 s32 = (Int)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32);
1422 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1432 Binop.arg2->Iex.Const.con->tag == Ico_U8);
1433 s64 = (Long)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64);
1434 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1446 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1447 u32 = (UInt)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32);
1448 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1458 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1459 u64 = (ULong)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64);
1460 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1471 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1472 == e->Iex.Binop.arg2->Iex.Const.con->Ico.U32))));
1476 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1477 == e->Iex.Binop.arg2->Iex.Const.con->Ico.U64))));
1483 ((0xFF & e->Iex.Binop.arg1->Iex.Const.con->Ico.U8)
1484 != (0xFF & e->Iex.Binop.arg2->Iex.Const.con->Ico.U8)))));
1488 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1489 != e->Iex.Binop.arg2->Iex.Const.con->Ico.U32))));
1493 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1494 != e->Iex.Binop.arg2->Iex.Const.con->Ico.U64))));
1500 ((UInt)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1501 <= (UInt)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
1505 ((ULong)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64)
1506 <= (ULong)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)))));
1512 ((Int)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1513 <= (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
1517 ((Long)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64)
1518 <= (Long)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)))));
1524 ((Int)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1525 < (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
1529 ((Long)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64)
1530 < (Long)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)))));
1536 ((UInt)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1537 < (UInt)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
1541 ((ULong)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64)
1542 < (ULong)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)))));
1548 UInt u32a = e->Iex.Binop.arg1->Iex.Const.con->Ico.U32;
1549 UInt u32b = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
1566 (((ULong)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)) << 32)
1567 | ((ULong)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32))
1586 if ((e->Iex.Binop.op == Iop_Shl64 || e->Iex.Binop.op == Iop_Shr64)
1587 && e->Iex.Binop.arg2->tag == Iex_Const
1588 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U8 == 0) {
1589 e2 = e->Iex.Binop.arg1;
1593 if ((e->Iex.Binop.op == Iop_Shl32 || e->Iex.Binop.op == Iop_Shr32)
1594 && e->Iex.Binop.arg2->tag == Iex_Const
1595 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U8 == 0) {
1596 e2 = e->Iex.Binop.arg1;
1600 if ((e->Iex.Binop.op == Iop_Or8)
1601 && e->Iex.Binop.arg2->tag == Iex_Const
1602 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U8 == 0) {
1603 e2 = e->Iex.Binop.arg1;
1607 if ((e->Iex.Binop.op == Iop_Or16)
1608 && e->Iex.Binop.arg2->tag == Iex_Const
1609 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U16 == 0) {
1610 e2 = e->Iex.Binop.arg1;
1615 if (e->Iex.Binop.op == Iop_Add32
1616 || e->Iex.Binop.op == Iop_Or32 || e->Iex.Binop.op == Iop_Max32U) {
1617 if (isZeroU32(e->Iex.Binop.arg2))
1618 e2 = e->Iex.Binop.arg1;
1619 else if (isZeroU32(e->Iex.Binop.arg1))
1620 e2 = e->Iex.Binop.arg2;
1624 if (e->Iex.Binop.op == Iop_Sub64 && isZeroU64(e->Iex.Binop.arg2)) {
1625 e2 = e->Iex.Binop.arg1;
1632 if (e->Iex.Binop.op == Iop_Add32
1633 && e->Iex.Binop.arg1->tag == Iex_RdTmp
1634 && e->Iex.Binop.arg2->tag == Iex_RdTmp
1635 && e->Iex.Binop.arg1->Iex.RdTmp.tmp
1636 == e->Iex.Binop.arg2->Iex.RdTmp.tmp) {
1638 e->Iex.Binop.arg1,
1643 if (e->Iex.Binop.op == Iop_Add64
1644 && e->Iex.Binop.arg1->tag == Iex_RdTmp
1645 && e->Iex.Binop.arg2->tag == Iex_RdTmp
1646 && e->Iex.Binop.arg1->Iex.RdTmp.tmp
1647 == e->Iex.Binop.arg2->Iex.RdTmp.tmp) {
1649 e->Iex.Binop.arg1,
1654 if (e->Iex.Binop.op == Iop_Add8
1655 && e->Iex.Binop.arg1->tag == Iex_RdTmp
1656 && e->Iex.Binop.arg2->tag == Iex_RdTmp
1657 && e->Iex.Binop.arg1->Iex.RdTmp.tmp
1658 == e->Iex.Binop.arg2->Iex.RdTmp.tmp) {
1660 e->Iex.Binop.arg1,
1667 if (e->Iex.Binop.op == Iop_Add64 || e->Iex.Binop.op == Iop_Or64) {
1668 if (isZeroU64(e->Iex.Binop.arg2))
1669 e2 = e->Iex.Binop.arg1;
1670 else if (isZeroU64(e->Iex.Binop.arg1))
1671 e2 = e->Iex.Binop.arg2;
1675 if (e->Iex.Binop.op == Iop_And32
1676 && e->Iex.Binop.arg2->tag == Iex_Const
1677 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U32 == 0xFFFFFFFF) {
1678 e2 = e->Iex.Binop.arg1;
1682 if (e->Iex.Binop.op == Iop_And32
1683 && e->Iex.Binop.arg2->tag == Iex_Const
1684 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U32 == 0) {
1689 if ((e->Iex.Binop.op == Iop_And32 || e->Iex.Binop.op == Iop_Shl32)
1690 && e->Iex.Binop.arg1->tag == Iex_Const
1691 && e->Iex.Binop.arg1->Iex.Const.con->Ico.U32 == 0) {
1696 if (e->Iex.Binop.op == Iop_Or8
1697 && e->Iex.Binop.arg1->tag == Iex_Const
1698 && e->Iex.Binop.arg1->Iex.Const.con->Ico.U8 == 0) {
1699 e2 = e->Iex.Binop.arg2;
1705 switch (e->Iex.Binop.op) {
1711 if (sameIRTemps(e->Iex.Binop.arg1, e->Iex.Binop.arg2))
1712 e2 = e->Iex.Binop.arg1;
1720 switch (e->Iex.Binop.op) {
1725 if (sameIRTemps(e->Iex.Binop.arg1, e->Iex.Binop.arg2))
1726 e2 = mkZeroOfPrimopResultType(e->Iex.Binop.op);
1732 switch (e->Iex.Binop.op) {
1736 if (sameIRTemps(e->Iex.Binop.arg1, e->Iex.Binop.arg2))
1737 e2 = mkOnesOfPrimopResultType(e->Iex.Binop.op);
1767 && sameIRTemps(e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
1848 vassert(isIRAtom(ex->Iex.Binop.arg1));
1849 vassert(isIRAtom(ex->Iex.Binop.arg2));
1851 ex->Iex.Binop.op,
1852 subst_Expr(env, ex->Iex.Binop.arg1),
1853 subst_Expr(env, ex->Iex.Binop.arg2)
2174 addUses_Expr(set, e->Iex.Binop.arg1);
2175 addUses_Expr(set, e->Iex.Binop.arg2);
2536 /* binop(tmp,tmp) */
2542 /* binop(tmp,const) */
2548 /* binop(const,tmp) */
2706 && e->Iex.Binop.arg1->tag == Iex_RdTmp
2707 && e->Iex.Binop.arg2->tag == Iex_RdTmp) {
2710 ae->u.Btt.op = e->Iex.Binop.op;
2711 ae->u.Btt.arg1 = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
2712 ae->u.Btt.arg2 = e->Iex.Binop.arg2->Iex.RdTmp.tmp;
2717 && e->Iex.Binop.arg1->tag == Iex_RdTmp
2718 && e->Iex.Binop.arg2->tag == Iex_Const) {
2721 ae->u.Btc.op = e->Iex.Binop.op;
2722 ae->u.Btc.arg1 = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
2723 ae->u.Btc.con2 = *(e->Iex.Binop.arg2->Iex.Const.con);
2728 && e->Iex.Binop.arg1->tag == Iex_Const
2729 && e->Iex.Binop.arg2->tag == Iex_RdTmp) {
2732 ae->u.Bct.op = e->Iex.Binop.op;
2733 ae->u.Bct.arg2 = e->Iex.Binop.arg2->Iex.RdTmp.tmp;
2734 ae->u.Bct.con1 = *(e->Iex.Binop.arg1->Iex.Const.con);
2939 if (e->Iex.Binop.op != Iop_Add32 && e->Iex.Binop.op != Iop_Sub32)
2941 if (e->Iex.Binop.arg1->tag != Iex_RdTmp)
2943 if (e->Iex.Binop.arg2->tag != Iex_Const)
2945 *tmp = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
2946 *i32 = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32);
2947 if (e->Iex.Binop.op == Iop_Sub32)
3458 deltaIRExpr(e->Iex.Binop.arg1, delta);
3459 deltaIRExpr(e->Iex.Binop.arg2, delta);
3853 setHints_Expr(doesLoad, doesGet, e->Iex.Binop.arg1);
3854 setHints_Expr(doesLoad, doesGet, e->Iex.Binop.arg2);
3928 aoccCount_Expr(uses, e->Iex.Binop.arg1);
3929 aoccCount_Expr(uses, e->Iex.Binop.arg2);
4051 return e->tag == Iex_Binop && e->Iex.Binop.op == op;
4085 && is_Unop(aa->Iex.Binop.arg1, Iop_CmpwNEZ64))
4089 aa->Iex.Binop.arg1->Iex.Unop.arg,
4090 aa->Iex.Binop.arg2));
4093 && is_Unop(aa->Iex.Binop.arg2, Iop_CmpwNEZ64))
4097 aa->Iex.Binop.arg1,
4098 aa->Iex.Binop.arg2->Iex.Unop.arg));
4226 e->Iex.Binop.op,
4227 atbSubst_Expr(env, e->Iex.Binop.arg1),
4228 atbSubst_Expr(env, e->Iex.Binop.arg2)