From 4741f6ad9a7902744e4953becc3ff5d55461d914 Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Sat, 28 Aug 1999 05:41:44 +0000 Subject: [PATCH] * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers. From-SVN: r28941 --- gcc/ChangeLog | 2 ++ gcc/cse.c | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f123ab187d2..283fce6796e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ Fri Aug 27 15:35:24 1999 Jeffrey A Law (law@cygnus.com) + * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers. + * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an operand. diff --git a/gcc/cse.c b/gcc/cse.c index c39ab9f8522..7a13a7b2d24 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -5802,7 +5802,14 @@ fold_rtx (x, insn) hence not save anything) or be incorrect. */ if (const_arg1 != 0 && GET_CODE (const_arg1) == CONST_INT && INTVAL (const_arg1) < 0 - && - INTVAL (const_arg1) >= 0 + /* This used to test + + - INTVAL (const_arg1) >= 0 + + But The Sun V5.0 compilers mis-compiled that test. So + instead we test for the problematic value in a more direct + manner and hope the Sun compilers get it correct. */ + && INTVAL (const_arg1) != (1 << (HOST_BITS_PER_WIDE_INT - 1)) && GET_CODE (folded_arg1) == REG) { rtx new_const = GEN_INT (- INTVAL (const_arg1)); -- 2.30.2