aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>1999-12-21 12:11:13 +0000
committerRichard Kenner <kenner@gcc.gnu.org>1999-12-21 07:11:13 -0500
commitca098a1ddf082c8597f6b9b36b45d22dfd7a35b3 (patch)
tree9fcc72786998331803e19636ad3f0bde0532f294 /gcc
parent6ca30df6060ac9b106bea61a2605db116cfe3ae5 (diff)
downloadgcc-ca098a1ddf082c8597f6b9b36b45d22dfd7a35b3.zip
gcc-ca098a1ddf082c8597f6b9b36b45d22dfd7a35b3.tar.gz
gcc-ca098a1ddf082c8597f6b9b36b45d22dfd7a35b3.tar.bz2
* pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
From-SVN: r31050
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/pa/pa.h16
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 */