diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 1999-12-21 12:11:13 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1999-12-21 07:11:13 -0500 |
commit | ca098a1ddf082c8597f6b9b36b45d22dfd7a35b3 (patch) | |
tree | 9fcc72786998331803e19636ad3f0bde0532f294 | |
parent | 6ca30df6060ac9b106bea61a2605db116cfe3ae5 (diff) | |
download | gcc-ca098a1ddf082c8597f6b9b36b45d22dfd7a35b3.zip gcc-ca098a1ddf082c8597f6b9b36b45d22dfd7a35b3.tar.gz gcc-ca098a1ddf082c8597f6b9b36b45d22dfd7a35b3.tar.bz2 |
* pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
From-SVN: r31050
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/pa/pa.h | 16 |
2 files changed, 13 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8bb1587..f009143 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Tue Dec 21 07:06:36 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0. + 1999-12-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz> * md.texi: Add c4x constraints documentation. diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 4e5c9ef..1794520 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1058,13 +1058,15 @@ struct hppa_args {int words, nargs_prototype, indirect; }; bits, of an argument with the specified mode and type. If it is not defined, `PARM_BOUNDARY' is used for all arguments. */ -#define FUNCTION_ARG_BOUNDARY(MODE, TYPE) \ - (((TYPE) != 0) \ - ? (((int_size_in_bytes (TYPE)) + UNITS_PER_WORD - 1) \ - / UNITS_PER_WORD) * BITS_PER_WORD \ - : ((GET_MODE_ALIGNMENT(MODE) <= PARM_BOUNDARY) \ - ? PARM_BOUNDARY \ - : GET_MODE_ALIGNMENT(MODE))) +#define FUNCTION_ARG_BOUNDARY(MODE, TYPE) \ + (((TYPE) != 0) \ + ? ((integer_zerop (TYPE_SIZE (TYPE)) \ + || ! TREE_CONSTANT (TYPE_SIZE (TYPE))) \ + ? BITS_PER_UNIT \ + : (((int_size_in_bytes (TYPE)) + UNITS_PER_WORD - 1) \ + / UNITS_PER_WORD) * BITS_PER_WORD) \ + : ((GET_MODE_ALIGNMENT(MODE) <= PARM_BOUNDARY) \ + ? PARM_BOUNDARY : GET_MODE_ALIGNMENT(MODE))) /* Arguments larger than eight bytes are passed by invisible reference */ |