diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-08-17 18:31:36 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-08-17 18:31:36 -0400 |
commit | 0179115349c9520a592a9981716ccbf5062169e6 (patch) | |
tree | a87003f1ca81ba8ab7c6f28794697fbbaf1bef4a /gcc | |
parent | 7e1d482b8ca91238217fd6192907f6c9ba90ca51 (diff) | |
download | gcc-0179115349c9520a592a9981716ccbf5062169e6.zip gcc-0179115349c9520a592a9981716ccbf5062169e6.tar.gz gcc-0179115349c9520a592a9981716ccbf5062169e6.tar.bz2 |
(CLIPPER_ARG_SIZE): Return size in bytes.
(FUNCTION_ARG_ADVANCE): Fix argument alignment processing.
From-SVN: r7941
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/clipper/clipper.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/clipper/clipper.h b/gcc/config/clipper/clipper.h index c0294b3..385bfb0 100644 --- a/gcc/config/clipper/clipper.h +++ b/gcc/config/clipper/clipper.h @@ -466,9 +466,10 @@ struct _clipper_cum_args { int num; int size; }; /* internal helper : size of an argument */ #define CLIPPER_ARG_SIZE(MODE, TYPE) \ -((MODE) != BLKmode \ - ? (GET_MODE_SIZE (MODE) + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD \ - : (int_size_in_bytes (TYPE) + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD) +(((MODE) != BLKmode \ + ? (GET_MODE_SIZE (MODE) + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD \ + : (int_size_in_bytes (TYPE) + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD) \ + * UNITS_PER_WORD) /* Update the data in CUM to advance over an argument of mode MODE and data type TYPE. @@ -495,7 +496,7 @@ do \ { \ int align = FUNCTION_ARG_BOUNDARY (MODE, TYPE) / BITS_PER_UNIT; \ (CUM).size += align - 1; \ - (CUM).size &= align - 1; \ + (CUM).size &= ~(align - 1); \ (CUM).size += CLIPPER_ARG_SIZE (MODE, TYPE); \ } \ } while (0) |