From 4ad2b0ae5ca82153c1d2a40fa8d9fae3036a52c2 Mon Sep 17 00:00:00 2001 From: danglin Date: Wed, 29 Aug 2001 17:57:47 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45271 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 8 ++++++++ gcc/config/pa/pa.c | 9 ++++++--- gcc/config/pa/pa.h | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 89ace66..2d5043f 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 85183ff..0bc2c8f 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 4647167..24f6b41 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 -- 2.7.4