OSDN Git Service

* calls.c (store_one_arg): Make sure that the entire argument is
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Sep 2001 10:10:16 +0000 (10:10 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Sep 2001 10:10:16 +0000 (10:10 +0000)
pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45501 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/calls.c

index bcf8e62..df5139d 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 8d6d084..dc915ad 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);
          }
        }