+2002-06-15 Roger Sayle <roger@eyesopen.com>
+
+ * expr.c (compare_from_rtx): Call simplify_relational_operation
+ on all comparisons, not just those between integer constants,
+ with the correct (possibly unsigned) comparison code.
+ (do_compare_rtx_and_jump): Likewise.
+
2002-06-15 John David Anglin <dave@hiauly1.hia.nrc.ca>
* Makefile.in (tm_defines): New configuration variable.
enum machine_mode mode;
rtx size;
{
+ enum rtx_code ucode;
rtx tem;
/* If one operand is constant, make it the second one. Only do this
do_pending_stack_adjust ();
- if (GET_CODE (op0) == CONST_INT && GET_CODE (op1) == CONST_INT
- && (tem = simplify_relational_operation (code, mode, op0, op1)) != 0)
+ ucode = unsignedp ? unsigned_condition (code) : code;
+ if ((tem = simplify_relational_operation (ucode, mode, op0, op1)) != 0)
return tem;
#if 0
rtx size;
rtx if_false_label, if_true_label;
{
+ enum rtx_code ucode;
rtx tem;
int dummy_true_label = 0;
do_pending_stack_adjust ();
- if (GET_CODE (op0) == CONST_INT && GET_CODE (op1) == CONST_INT
- && (tem = simplify_relational_operation (code, mode, op0, op1)) != 0)
+ ucode = unsignedp ? unsigned_condition (code) : code;
+ if ((tem = simplify_relational_operation (ucode, mode, op0, op1)) != 0)
{
if (tem == const_true_rtx)
{