]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
authorDavid S. Miller <davem@redhat.com>
Thu, 4 Apr 2002 23:30:18 +0000 (15:30 -0800)
committerDavid S. Miller <davem@gcc.gnu.org>
Thu, 4 Apr 2002 23:30:18 +0000 (15:30 -0800)
2002-04-04  David S. Miller  <davem@redhat.com>

* calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.

From-SVN: r51886

gcc/ChangeLog
gcc/calls.c

index 6c4dc907035d3e6a444d9daa178f75526f631ba2..eb3270e925f1a3bb644904d29a769286b85fbd05 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 197914a9e7a65a2415c428c2ee962a860511ec22..33f47296e215653ab0276a0e0cc7652116386f36 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