* dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
From-SVN: r65060
This commit is contained in:
parent
c717c5af27
commit
9311f3f613
@ -1,3 +1,7 @@
|
|||||||
|
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
|
||||||
|
13
gcc/dojump.c
13
gcc/dojump.c
@ -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 ();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user