summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-02-06 10:56:56 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-02-06 10:56:56 +0000
commit125b9253d075db53bb8365068c882452d9e948ce (patch)
treedb6ecb99832a88e5633e916992cbab50ca441beb /gcc
parent2ffc1517702eabe581ff1074ca4b7715fbe9e8ee (diff)
downloadppe42-gcc-125b9253d075db53bb8365068c882452d9e948ce.tar.gz
ppe42-gcc-125b9253d075db53bb8365068c882452d9e948ce.zip
* simplify-rtx.c (simplify_relational_operation): Canonicalize
constant to op1 for testing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31825 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog21
-rw-r--r--gcc/simplify-rtx.c8
2 files changed, 21 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 85ddc65e356..3831f59b518 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-02-06 Richard Henderson <rth@cygnus.com>
+
+ * simplify-rtx.c (simplify_relational_operation): Canonicalize
+ constant to op1 for testing.
+
2000-02-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.md (*ldi_on_overflow): New pattern.
@@ -171,20 +176,20 @@
2000-02-04 Jan Hubicka <jh@suse.cz>
Richard Henderson <rth@cygnus.com>
- * i386.c (SAVE_REGS_FIRST): Remove.
- (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
- (ix86_compute_frame_size): Likewise.
+ * i386.c (SAVE_REGS_FIRST): Remove.
+ (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
+ (ix86_compute_frame_size): Likewise.
(ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack.
- (ix86_emit_restore_regs): Remove.
+ (ix86_emit_restore_regs): Remove.
(ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
when a frame pointer is in use.
- (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov
+ (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov
instead of pop to restore a register when profitable; emit leave
when profitable.
- (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
- as a TYPE_LEA insn.
+ (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
+ as a TYPE_LEA insn.
(ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
- * i386.md (prologue_allocate_stack): Remove.
+ * i386.md (prologue_allocate_stack): Remove.
(epilogue_deallocate_stack): Remove.
(pro_epilogue_adjust_stack): New.
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 12d1d8c91b8..c02248e7930 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -1591,6 +1591,14 @@ simplify_relational_operation (code, mode, op0, op1)
)
return 0;
+ /* Make sure the constant is second. */
+ if ((CONSTANT_P (op0) && ! CONSTANT_P (op1))
+ || (GET_CODE (op0) == CONST_INT && GET_CODE (op1) != CONST_INT))
+ {
+ tem = op0, op0 = op1, op1 = tem;
+ code = swap_condition (code);
+ }
+
/* For integer comparisons of A and B maybe we can simplify A - B and can
then simplify a comparison of that with zero. If A and B are both either
a register or a CONST_INT, this can't help; testing for these cases will
OpenPOWER on IntegriCloud