diff options
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 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) |