2002-04-04 David S. Miller <davem@redhat.com>
authordavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Apr 2002 23:30:18 +0000 (23:30 +0000)
committerdavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Apr 2002 23:30:18 +0000 (23:30 +0000)
* calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.

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

gcc/ChangeLog
gcc/calls.c

index 6c4dc90..eb3270e 100644 (file)
@@ -1,3 +1,7 @@
+2002-04-04  David S. Miller  <davem@redhat.com>
+
+       * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
+
 2002-04-04  Richard Henderson  <rth@redhat.com>
 
        PR middle-end/5099
index 197914a..33f4729 100644 (file)
@@ -4362,7 +4362,13 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space)
   /* If this isn't going to be placed on both the stack and in registers,
      set up the register and number of words.  */
   if (! arg->pass_on_stack)
-    reg = arg->reg, partial = arg->partial;
+    {
+      if (flags & ECF_SIBCALL)
+       reg = arg->tail_call_reg;
+      else
+       reg = arg->reg;
+      partial = arg->partial;
+    }
 
   if (reg != 0 && partial == 0)
     /* Being passed entirely in a register.  We shouldn't be called in