• Home
  • Raw
  • Download

Lines Matching refs:src1

352 		kill_use(&insn->src1);  in kill_insn()
498 replace_pseudo(insn, &insn->src1, src); in replace_with_unop()
546 pseudo_t old_a = in->src1; in replace_insn_pair()
548 pseudo_t old_1 = out->src1; in replace_insn_pair()
551 use_pseudo(in, a, &in->src1); in replace_insn_pair()
553 use_pseudo(out, in->target, &out->src1); in replace_insn_pair()
556 remove_usage(old_a, &in->src1); in replace_insn_pair()
558 remove_usage(old_1, &out->src1); in replace_insn_pair()
629 static pseudo_t eval_op(int op, unsigned size, pseudo_t src1, pseudo_t src2) in eval_op() argument
632 long long left = src1->value; in eval_op()
792 return replace_pseudo(insn, &insn->src1, orb); in simplify_mask_or_and()
794 if (!one_use(insn->src1)) in simplify_mask_or_and()
797 struct instruction *or = insn->src1->def; in simplify_mask_or_and()
798 pseudo_t *arg = (ora == or->src1) ? &or->src1 : &or->src2; in simplify_mask_or_and()
800 return replace_pseudo(or, arg, and->src1); in simplify_mask_or_and()
818 pseudo_t src1 = or->src1; in simplify_mask_or() local
822 if (src1->type == PSEUDO_REG) { in simplify_mask_or()
823 if ((rc = simplify_mask_or_and(insn, mask, src1, src2))) in simplify_mask_or()
827 if ((rc = simplify_mask_or_and(insn, mask, src2, src1))) in simplify_mask_or()
836 return replace_pseudo(insn, &insn->src1, src1); in simplify_mask_or()
840 return replace_pseudo(insn, &insn->src1, value_pseudo(mask)); in simplify_mask_or()
874 switch (DEF_OPCODE(inner, sh->src1)) { in simplify_mask_shift()
889 return eval_op(insn->opcode, size, insn->src1, insn->src2); in eval_insn()
978 return replace_pseudo(insn, &insn->src1, def->src1); in simplify_shift()
1014 return replace_pseudo(insn, &insn->src1, def->src1); in simplify_shift()
1047 return replace_pseudo(insn, &insn->src1, pseudo->def->src1); in simplify_shift()
1054 return replace_pseudo(insn, &insn->src1, def->src1); in simplify_shift()
1063 return replace_with_pseudo(insn, insn->src1); in simplify_mul_div()
1086 pseudo_t old = insn->src1; in simplify_seteq_setne()
1132 use_pseudo(insn, def->src1, &insn->src1); in simplify_seteq_setne()
1134 remove_usage(old, &insn->src1); in simplify_seteq_setne()
1149 return replace_pseudo(insn, &insn->src1, def->src); in simplify_seteq_setne()
1175 pseudo_t src1, src2; in simplify_compare_constant() local
1271 src1 = insn->src1; in simplify_compare_constant()
1274 switch (DEF_OPCODE(def, src1)) { in simplify_compare_constant()
1390 return replace_pseudo(insn, &insn->src1, def->src); in simplify_compare_constant()
1397 return replace_pseudo(insn, &insn->src1, def->src); in simplify_compare_constant()
1404 return replace_pseudo(insn, &insn->src1, def->src); in simplify_compare_constant()
1443 return replace_pseudo(insn, &insn->src1, def->src); in simplify_compare_constant()
1470 pseudo_t old = insn->src1; in simplify_constant_mask()
1511 if (constant(def->src1)) { // (C - y) + D --> eval(C+D) - y in simplify_const_rightadd()
1512 pseudo_t val = eval_op(OP_ADD, size, def->src1, src2); in simplify_const_rightadd()
1515 return replace_pseudo(insn, &insn->src1, val); in simplify_const_rightadd()
1543 return replace_with_pseudo(insn, insn->src1); in simplify_constant_rightside()
1553 return replace_with_pseudo(insn, insn->src1); in simplify_constant_rightside()
1554 if (insn->src1->type == PSEUDO_REG) // (x # y) + z in simplify_constant_rightside()
1555 changed |= simplify_const_rightadd(insn->src1->def, insn); in simplify_constant_rightside()
1560 return simplify_shift(insn, insn->src1, value); in simplify_constant_rightside()
1575 return replace_with_pseudo(insn, insn->src1); in simplify_constant_rightside()
1593 pseudo_t src1 = insn->src1; in simplify_const_leftsub() local
1598 insn->src1 = eval_op(OP_SUB, size, src1, def->src2); in simplify_const_leftsub()
1599 return replace_pseudo(insn, &insn->src2, def->src1); in simplify_const_leftsub()
1603 if (constant(def->src1)) { // C - (D - z) --> z + eval(C-D) in simplify_const_leftsub()
1604 pseudo_t val = eval_op(OP_SUB, size, src1, def->src1); in simplify_const_leftsub()
1606 use_pseudo(insn, def->src2, &insn->src1); in simplify_const_leftsub()
1616 long long value = insn->src1->value; in simplify_constant_leftside()
1629 return replace_with_pseudo(insn, insn->src1); in simplify_constant_leftside()
1683 if (constant(insn->src1)) { in simplify_binop()
1690 if (insn->src1 == insn->src2) in simplify_binop()
1691 return simplify_binop_same_args(insn, insn->src1); in simplify_binop()
1740 if (canonical_order(insn->src1, insn->src2)) in canonicalize_commutative()
1743 switch_pseudo(insn, &insn->src1, insn, &insn->src2); in canonicalize_commutative()
1749 if (canonical_order(insn->src1, insn->src2)) in canonicalize_compare()
1752 switch_pseudo(insn, &insn->src1, insn, &insn->src2); in canonicalize_compare()
1803 pseudo_t pseudo = insn->src1; in simplify_associative_binop()
1819 return replace_pseudo(insn, &insn->src1, def->src1); in simplify_associative_binop()
1823 switch_pseudo(def, &def->src1, insn, &insn->src2); in simplify_associative_binop()
1831 pseudo_t src1 = *p1; in simplify_add_one_side() local
1834 switch (DEF_OPCODE(def, src1)) { in simplify_add_one_side()
1839 swap_insn(insn, defr, def->src1, defr->src1, def->src2); in simplify_add_one_side()
1842 if (defr->src1 == def->src1 && can_move_to(def->src1, defr)) { in simplify_add_one_side()
1844 swap_insn(insn, defr, def->src2, defr->src2, def->src1); in simplify_add_one_side()
1847 if (defr->src1 == def->src2 && can_move_to(def->src1, defr)) { in simplify_add_one_side()
1849 swap_insn(insn, defr, def->src1, defr->src2, def->src2); in simplify_add_one_side()
1856 return replace_binop(insn, OP_SUB, &insn->src1, src2, &insn->src2, def->src); in simplify_add_one_side()
1860 return replace_with_pseudo(insn, def->src1); in simplify_add_one_side()
1868 return simplify_add_one_side(insn, &insn->src1, &insn->src2) || in simplify_add()
1869 simplify_add_one_side(insn, &insn->src2, &insn->src1); in simplify_add()
1874 pseudo_t src1 = insn->src1; in simplify_sub() local
1878 switch (DEF_OPCODE(def, src1)) { in simplify_sub()
1880 if (def->src1 == src2) // (x + y) - x --> y in simplify_sub()
1883 return replace_with_pseudo(insn, def->src1); in simplify_sub()
1889 if (src1 == def->src1) // x - (x + z) --> -z in simplify_sub()
1891 if (src1 == def->src2) // x - (y + x) --> -y in simplify_sub()
1892 return replace_with_unop(insn, OP_NEG, def->src1); in simplify_sub()
1904 pseudo_t src1 = insn->src1; in simplify_compare() local
1910 switch (DEF_OPCODE(def, src1)) { in simplify_compare()
1918 replace_pseudo(insn, &insn->src1, def->src); in simplify_compare()
1929 pseudo_t src1 = *p1; in simplify_and_one_side() local
1931 switch (DEF_OPCODE(def, src1)) { in simplify_and_one_side()
1938 if (def->src1 == defr->src1 && def->src2 == defr->src2) in simplify_and_one_side()
1948 replace_binop(insn, OP_SET_BE, &insn->src1, defr->src1, &insn->src2, defr->src2); in simplify_and_one_side()
1957 swap_insn(insn, defr, def->src1, defr->src1, def->src2); in simplify_and_one_side()
1960 if (defr->src1 == def->src1 && can_move_to(def->src1, defr)) { in simplify_and_one_side()
1962 swap_insn(insn, defr, def->src2, defr->src2, def->src1); in simplify_and_one_side()
1965 if (defr->src1 == def->src2 && can_move_to(def->src1, defr)) { in simplify_and_one_side()
1967 swap_insn(insn, defr, def->src1, defr->src2, def->src2); in simplify_and_one_side()
1974 if (can_move_to(def->src1, defr)) { in simplify_and_one_side()
1976 swap_insn(insn, defr, def->src1, defr->src1, def->src2); in simplify_and_one_side()
1987 return simplify_and_one_side(insn, &insn->src1, &insn->src2) || in simplify_and()
1988 simplify_and_one_side(insn, &insn->src2, &insn->src1); in simplify_and()
1994 pseudo_t src1 = *p1; in simplify_ior_one_side() local
1996 switch (DEF_OPCODE(def, src1)) { in simplify_ior_one_side()
2001 swap_insn(insn, defr, def->src1, defr->src1, def->src2); in simplify_ior_one_side()
2004 if (defr->src1 == def->src1 && can_move_to(def->src1, defr)) { in simplify_ior_one_side()
2006 swap_insn(insn, defr, def->src2, defr->src2, def->src1); in simplify_ior_one_side()
2009 if (defr->src1 == def->src2 && can_move_to(def->src1, defr)) { in simplify_ior_one_side()
2011 swap_insn(insn, defr, def->src1, defr->src2, def->src2); in simplify_ior_one_side()
2022 if (def->src1 == defr->src1 && def->src2 == defr->src2) in simplify_ior_one_side()
2028 if (can_move_to(def->src1, defr)) { in simplify_ior_one_side()
2030 swap_insn(insn, defr, def->src1, defr->src1, def->src2); in simplify_ior_one_side()
2041 return simplify_ior_one_side(insn, &insn->src1, &insn->src2) || in simplify_ior()
2042 simplify_ior_one_side(insn, &insn->src2, &insn->src1); in simplify_ior()
2048 pseudo_t src1 = *p1; in simplify_xor_one_side() local
2050 switch (DEF_OPCODE(def, src1)) { in simplify_xor_one_side()
2055 swap_insn(insn, defr, def->src1, defr->src1, def->src2); in simplify_xor_one_side()
2058 if (defr->src1 == def->src1 && can_move_to(def->src1, defr)) { in simplify_xor_one_side()
2060 swap_insn(insn, defr, def->src2, defr->src2, def->src1); in simplify_xor_one_side()
2063 if (defr->src1 == def->src2 && can_move_to(def->src1, defr)) { in simplify_xor_one_side()
2065 swap_insn(insn, defr, def->src1, defr->src2, def->src2); in simplify_xor_one_side()
2076 if (def->src1 == defr->src1 && def->src2 == defr->src2) in simplify_xor_one_side()
2082 if (can_move_to(def->src1, defr)) { in simplify_xor_one_side()
2084 swap_insn(insn, defr, def->src1, defr->src1, def->src2); in simplify_xor_one_side()
2095 return simplify_xor_one_side(insn, &insn->src1, &insn->src2) || in simplify_xor()
2096 simplify_xor_one_side(insn, &insn->src2, &insn->src1); in simplify_xor()
2101 long long val = insn->src1->value; in simplify_constant_unop()
2145 use_pseudo(insn, def->src1, &insn->src2); in simplify_unop()
2146 return replace_pseudo(insn, &insn->src1, src); in simplify_unop()
2150 return replace_pseudo(insn, &insn->src1, def->src); in simplify_unop()
2154 if (!constant(def->src1)) in simplify_unop()
2157 insn->src2 = eval_unop(OP_NOT, insn->size, def->src1); in simplify_unop()
2158 return replace_pseudo(insn, &insn->src1, def->src2); in simplify_unop()
2164 return replace_pseudo(insn, &insn->src1, def->src1); in simplify_unop()
2174 use_pseudo(insn, def->src1, &insn->src2); in simplify_unop()
2175 return replace_pseudo(insn, &insn->src1, src); in simplify_unop()
2181 return replace_pseudo(insn, &insn->src1, def->src); in simplify_unop()
2184 use_pseudo(insn, def->src1, &insn->src2); in simplify_unop()
2185 return replace_pseudo(insn, &insn->src1, def->src2); in simplify_unop()
2207 new = def->src1; in simplify_one_memop()
2212 off = def->src1; in simplify_one_memop()
2339 return replace_pseudo(insn, &insn->src1, def->src1); in simplify_cast()
2374 return replace_pseudo(insn, &insn->src1, def->src); in simplify_cast()
2385 return replace_pseudo(insn, &insn->src1, def2->src1); in simplify_cast()
2391 return replace_pseudo(insn, &insn->src1, def->src); in simplify_cast()
2428 pseudo_t cond, src1, src2; in simplify_select() local
2431 cond = insn->src1; in simplify_select()
2432 src1 = insn->src2; in simplify_select()
2436 return replace_with_pseudo(insn, cond->value ? src1 : src2); in simplify_select()
2437 if (src1 == src2) in simplify_select()
2438 return replace_with_pseudo(insn, src1); in simplify_select()
2440 if (constant(src1) && constant(src2)) { in simplify_select()
2441 long long val1 = src1->value; in simplify_select()
2448 src1 = src2; in simplify_select()
2453 insn->src2 = src1; /* Zero */ in simplify_select()
2457 if (cond == src2 && is_zero(src1)) // SEL(x, 0, x) --> 0 in simplify_select()
2458 return replace_with_pseudo(insn, src1); in simplify_select()
2459 if (cond == src1 && is_zero(src2)) // SEL(x, x, 0) --> x in simplify_select()
2464 if (src1 == def->src1 && src2 == def->src2) in simplify_select()
2466 if (src2 == def->src1 && src1 == def->src2) in simplify_select()
2470 if (src1 == def->src1 && src2 == def->src2) in simplify_select()
2471 return replace_with_pseudo(insn, src1); // SEL(x!=y,x,y) --> x in simplify_select()
2472 if (src2 == def->src1 && src1 == def->src2) in simplify_select()
2473 return replace_with_pseudo(insn, src1); // SEL(y!=x,x,y) --> x in simplify_select()
2484 if (is_negate_of(src2, src1)) in simplify_select()
2499 if ((src1 == def->src2) && (src2 == def->src3)) in simplify_select()
2508 return replace_with_pseudo(insn, src1); in simplify_select()
2511 …if (is_pow2(def->src2) && is_pow2(src1) && is_zero(src2) && insn->size == def->size && one_use(con… in simplify_select()
2528 switch (DEF_OPCODE(def, src1)) { in simplify_select()
2530 if ((def->src1 == src2) && can_move_to(cond, def)) { in simplify_select()
2537 swap_select(insn, def, cond, def->src1, value_pseudo(0), src2); in simplify_select()
2545 if ((def->src1 == src1) && can_move_to(cond, def)) { in simplify_select()
2547 swap_select(insn, def, cond, value_pseudo(0), def->src2, src1); in simplify_select()
2550 if ((def->src2 == src1) && can_move_to(cond, def)) { in simplify_select()
2552 swap_select(insn, def, cond, value_pseudo(0), def->src1, src1); in simplify_select()
2575 pseudo_t src1, src2, src3; in simplify_range() local
2577 src1 = insn->src1; in simplify_range()
2582 if (is_in_range(src1, src2->value, src3->value)) { in simplify_range()
2619 if (constant(def->src1) && !def->src1->value) in simplify_branch()
2622 return simplify_cond_branch(insn, def, def->src1); in simplify_branch()
2637 return replace_pseudo(insn, &insn->cond, def->src1); in simplify_branch()
2692 return replace_pseudo(insn, &insn->src1, def->cond); in simplify_cgoto()