diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 89ace6633842..2d5043f201c9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2001-08-29 John David Anglin + + * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for + comparison with rtx INTVAL. + (pa_output_function_prologue): Don't mix signed and unsigned in `?' + expression. + * pa.h (FUNCTION_ARG_SIZE): Likewise. + 2001-08-29 Kazu Hirata * config/h8300/lib1funcs.asm: Update the copyright. Fix diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 85183ffc0b02..0bc2c8fa6515 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -377,12 +377,14 @@ move_operand (op, mode) && ((GET_CODE (XEXP (op, 0)) == MULT && GET_CODE (XEXP (XEXP (op, 0), 0)) == REG && GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST_INT - && INTVAL (XEXP (XEXP (op, 0), 1)) == GET_MODE_SIZE (mode) + && INTVAL (XEXP (XEXP (op, 0), 1)) + == (HOST_WIDE_INT) GET_MODE_SIZE (mode) && GET_CODE (XEXP (op, 1)) == REG) || (GET_CODE (XEXP (op, 1)) == MULT &&GET_CODE (XEXP (XEXP (op, 1), 0)) == REG && GET_CODE (XEXP (XEXP (op, 1), 1)) == CONST_INT - && INTVAL (XEXP (XEXP (op, 1), 1)) == GET_MODE_SIZE (mode) + && INTVAL (XEXP (XEXP (op, 1), 1)) + == (HOST_WIDE_INT) GET_MODE_SIZE (mode) && GET_CODE (XEXP (op, 0)) == REG))) return 1; @@ -2938,7 +2940,8 @@ pa_output_function_prologue (file, size) total_code_bytes += FUNCTION_BOUNDARY / BITS_PER_UNIT; /* Be prepared to handle overflows. */ - total_code_bytes = old_total > total_code_bytes ? -1 : total_code_bytes; + if (old_total > total_code_bytes) + total_code_bytes = -1; } else total_code_bytes = -1; diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 464716723bb4..24f6b41e3117 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -744,7 +744,7 @@ struct hppa_args {int words, nargs_prototype, indirect; }; #define FUNCTION_ARG_SIZE(MODE, TYPE) \ ((((MODE) != BLKmode \ - ? GET_MODE_SIZE (MODE) \ + ? (HOST_WIDE_INT) GET_MODE_SIZE (MODE) \ : int_size_in_bytes (TYPE)) + UNITS_PER_WORD - 1) / UNITS_PER_WORD) /* Update the data in CUM to advance over an argument