Set rsize properly for args passed by reference.
authorBernd Schmidt <bernds@redhat.co.uk>
Fri, 15 Sep 2000 09:24:47 +0000 (09:24 +0000)
committerBernd Schmidt <crux@gcc.gnu.org>
Fri, 15 Sep 2000 09:24:47 +0000 (09:24 +0000)
From-SVN: r36429

gcc/ChangeLog
gcc/config/mips/mips.c

index a5e9bbbd11a65c11e791cc6a7744b04400b24c23..4ae165402150cb3f1ea26e42ef7ae3fc6d0ca996 100644 (file)
@@ -3,6 +3,8 @@
        * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
        * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
        is defined.
+       * config/mips/mips.c (mips_va_arg): Args passed by reference have a
+       rsize of UNITS_PER_WORD.
 
 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
 
index 860ce956d7bba5563dd4b2a3d26a0ee7b6c5fa38..ce5f9583aa81992cda98d4db29d434d05818a453 100644 (file)
@@ -4456,7 +4456,10 @@ mips_va_arg (valist, type)
       indirect
        = function_arg_pass_by_reference (NULL, TYPE_MODE (type), type, 0);
       if (indirect)
-       size = rsize = POINTER_SIZE / BITS_PER_UNIT;
+       {
+         size = POINTER_SIZE / BITS_PER_UNIT;
+         rsize = UNITS_PER_WORD;
+       }
 
       addr_rtx = gen_reg_rtx (Pmode);