calls.c (store_one_arg): Make sure that the entire argument is pushed if...
authorRoman Lechtchinsky <rl@cs.tu-berlin.de>
Mon, 10 Sep 2001 10:10:16 +0000 (10:10 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 10 Sep 2001 10:10:16 +0000 (10:10 +0000)
* calls.c (store_one_arg): Make sure that the entire argument is
pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.

From-SVN: r45501

gcc/ChangeLog
gcc/calls.c

index bcf8e62ab539c90e0e029519557104290c2e628d..df5139d07582997b6ad1a112d9aa7e3d7e7d9d59 100644 (file)
@@ -1,3 +1,8 @@
+2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
+
+       * calls.c (store_one_arg): Make sure that the entire argument is
+       pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
+
 2001-09-09  Richard Henderson  <rth@redhat.com>
 
        * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
index 8d6d0849148299895589825a86c3cf4aa2ddb12b..dc915ad1ff12ad1a0327ca0183df05e62ce2076a 100644 (file)
@@ -4567,7 +4567,11 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space)
 
       /*  If parm is passed both in stack and in register and offset is 
          greater than reg_parm_stack_space, split the offset.  */
+#ifndef STACK_PARMS_IN_REG_PARM_AREA
       if (arg->reg && arg->pass_on_stack)
+#else
+      if (1)
+#endif
        {
          if (arg->offset.constant < reg_parm_stack_space && arg->offset.var)
            error ("variable offset is passed paritially in stack and in reg");
@@ -4583,8 +4587,6 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space)
                            excess, argblock, ARGS_SIZE_RTX (arg->offset),
                            reg_parm_stack_space,
                            ARGS_SIZE_RTX (arg->alignment_pad));
-
-           size_rtx = GEN_INT (INTVAL(size_rtx) - reg_parm_stack_space);
          }
        }