diff options
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/config/alpha/alpha.c | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a867ed7..3e9f613 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,9 @@ -2001-07-19 Andrew Haley <aph@cambridge.redhat.com> +2001-07-25 Richard Henderson <rth@redhat.com> + + * config/alpha/alpha.c (alpha_emit_conditional_move): Always + swap GE/GT if its an fp comparison. + +2001-07-25 Andrew Haley <aph@cambridge.redhat.com> * alias.c (rtx_equal_for_memref_p): Allow strings as types in operands. diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 1abf97b..d36adcc 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -1905,7 +1905,7 @@ alpha_emit_setcc (code) break; case GE: case GT: case GEU: case GTU: - /* These are normally need swapping, but for integer zero we have + /* These normally need swapping, but for integer zero we have special patterns that recognize swapped operands. */ if (!fp_p && op1 == const0_rtx) break; @@ -1996,8 +1996,9 @@ alpha_emit_conditional_move (cmp, mode) break; case GE: case GT: case GEU: case GTU: - /* These must be swapped. */ - if (op1 == CONST0_RTX (cmp_mode)) + /* These normally need swapping, but for integer zero we have + special patterns that recognize swapped operands. */ + if (!fp_p && op1 == const0_rtx) cmp_code = code, code = NE; else { |
