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 + + * simplify-rtx.c (simplify_relational_operation): Canonicalize + constant to op1 for testing. + 2000-02-06 Michael Hayes * config/c4x/c4x.md (*ldi_on_overflow): New pattern. @@ -171,20 +176,20 @@ 2000-02-04 Jan Hubicka Richard Henderson - * 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