Commit 9311f3f6 by Roger Sayle Committed by Roger Sayle

* dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.

From-SVN: r65060
parent c717c5af
2003-03-30 Roger Sayle <roger@eyesopen.com>
* dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
2003-03-30 DJ Delorie <dj@redhat.com> 2003-03-30 DJ Delorie <dj@redhat.com>
* profile.c (instrument_edges): Make sure any newly created * profile.c (instrument_edges): Make sure any newly created
......
...@@ -588,10 +588,15 @@ do_jump (exp, if_false_label, if_true_label) ...@@ -588,10 +588,15 @@ do_jump (exp, if_false_label, if_true_label)
/* Note swapping the labels gives us not-equal. */ /* Note swapping the labels gives us not-equal. */
do_jump_by_parts_equality_rtx (temp, if_true_label, if_false_label); do_jump_by_parts_equality_rtx (temp, if_true_label, if_false_label);
else if (GET_MODE (temp) != VOIDmode) else if (GET_MODE (temp) != VOIDmode)
do_compare_rtx_and_jump (temp, CONST0_RTX (GET_MODE (temp)), {
NE, TREE_UNSIGNED (TREE_TYPE (exp)), /* The RTL optimizers prefer comparisons against pseudos. */
GET_MODE (temp), NULL_RTX, if (GET_CODE (temp) == SUBREG)
if_false_label, if_true_label); temp = copy_to_reg (temp);
do_compare_rtx_and_jump (temp, CONST0_RTX (GET_MODE (temp)),
NE, TREE_UNSIGNED (TREE_TYPE (exp)),
GET_MODE (temp), NULL_RTX,
if_false_label, if_true_label);
}
else else
abort (); abort ();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment