OSDN Git Service

* calls.c (store_one_arg): Expand comment.
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Sep 2001 10:14:13 +0000 (10:14 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Sep 2001 10:14:13 +0000 (10:14 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45502 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/calls.c

index df5139d..892a74c 100644 (file)
@@ -1,3 +1,7 @@
+2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
+
+       * calls.c (store_one_arg): Expand comment.
+
 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
 
        * calls.c (store_one_arg): Make sure that the entire argument is
index dc915ad..f21160f 100644 (file)
@@ -4565,8 +4565,14 @@ 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.  */
+      /* Special handling is required if part of the parameter lies in the
+        register parameter area.  The argument may be copied into the stack
+        slot using memcpy(), but the original contents of the register
+        parameter area will be restored after the memcpy() call.
+
+        To ensure that the part that lies in the register parameter area
+        is copied correctly, we emit a separate push for that part.  This
+        push should be small enough to avoid a call to memcpy().  */
 #ifndef STACK_PARMS_IN_REG_PARM_AREA
       if (arg->reg && arg->pass_on_stack)
 #else