diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-08-17 22:31:36 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-08-17 22:31:36 +0000 |
commit | f381adca52c7ff0527ce90f8544fd5329869cdfa (patch) | |
tree | a87003f1ca81ba8ab7c6f28794697fbbaf1bef4a /gcc/config/clipper | |
parent | bfec5d7abcca7c6952b7ef108bcedcd4b779dd2d (diff) | |
download | gcc-f381adca52c7ff0527ce90f8544fd5329869cdfa.tar.gz |
(CLIPPER_ARG_SIZE): Return size in bytes.
(FUNCTION_ARG_ADVANCE): Fix argument alignment processing.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7941 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/clipper')
-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 c0294b38dd9..385bfb0c51c 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) |