diff options
Diffstat (limited to 'gcc/dojump.c')
-rw-r--r-- | gcc/dojump.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/gcc/dojump.c b/gcc/dojump.c index 3643085..76f62c6 100644 --- a/gcc/dojump.c +++ b/gcc/dojump.c @@ -756,64 +756,6 @@ do_jump_by_parts_equality (tree exp, rtx if_false_label, rtx if_true_label) if_true_label); } -/* Generate code for a comparison of OP0 and OP1 with rtx code CODE. - MODE is the machine mode of the comparison, not of the result. - (including code to compute the values to be compared) and set CC0 - according to the result. The decision as to signed or unsigned - comparison must be made by the caller. - - We force a stack adjustment unless there are currently - things pushed on the stack that aren't yet used. - - If MODE is BLKmode, SIZE is an RTX giving the size of the objects being - compared. */ - -rtx -compare_from_rtx (rtx op0, rtx op1, enum rtx_code code, int unsignedp, - enum machine_mode mode, rtx size) -{ - rtx tem; - - /* If one operand is constant, make it the second one. Only do this - if the other operand is not constant as well. */ - - if (swap_commutative_operands_p (op0, op1)) - { - tem = op0; - op0 = op1; - op1 = tem; - code = swap_condition (code); - } - - do_pending_stack_adjust (); - - code = unsignedp ? unsigned_condition (code) : code; - tem = simplify_relational_operation (code, VOIDmode, mode, op0, op1); - if (tem) - { - if (CONSTANT_P (tem)) - return tem; - - if (COMPARISON_P (tem)) - { - code = GET_CODE (tem); - op0 = XEXP (tem, 0); - op1 = XEXP (tem, 1); - mode = GET_MODE (op0); - unsignedp = (code == GTU || code == LTU - || code == GEU || code == LEU); - } - } - - emit_cmp_insn (op0, op1, code, size, mode, unsignedp); - -#if HAVE_cc0 - return gen_rtx_fmt_ee (code, VOIDmode, cc0_rtx, const0_rtx); -#else - return gen_rtx_fmt_ee (code, VOIDmode, op0, op1); -#endif -} - /* Like do_compare_and_jump but expects the values to compare as two rtx's. The decision as to signed or unsigned comparison must be made by the caller. |