aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@gcc.gnu.org>1992-10-22 16:23:56 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1992-10-22 16:23:56 +0000
commitdf7fef57d1177b1a84c77723a255ec2b283228af (patch)
tree401543d09cf661158fbc15a69f458b63dde4d3b5
parent51bdc4d3b802e57f5711d8a1a6f81749ce99a245 (diff)
downloadgcc-df7fef57d1177b1a84c77723a255ec2b283228af.zip
gcc-df7fef57d1177b1a84c77723a255ec2b283228af.tar.gz
gcc-df7fef57d1177b1a84c77723a255ec2b283228af.tar.bz2
Align passed structures with double alignment correctly.
From-SVN: r2558
-rw-r--r--gcc/config/mips/mips.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 546174a..966dd85 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -2529,8 +2529,14 @@ function_arg (cum, mode, type, named)
: FP_ARG_FIRST;
break;
- case VOIDmode:
case BLKmode:
+ if (type != (tree)0 && TYPE_ALIGN (type) > BITS_PER_WORD)
+ cum->arg_words += (cum->arg_words & 1);
+
+ regbase = GP_ARG_FIRST;
+ break;
+
+ case VOIDmode:
case QImode:
case HImode:
case SImode: