]> 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:46:35 +0000 (15:46 -0800)
committerDavid S. Miller <davem@gcc.gnu.org>
Thu, 4 Apr 2002 23:46:35 +0000 (15:46 -0800)
2002-04-04  David S. Miller  <davem@redhat.com>

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

From-SVN: r51887

gcc/ChangeLog
gcc/calls.c

index 083d5e1ab015730ad541464cadcb491627409811..1a7d5d09e332bbf4ca80075985168e597d72295c 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-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
 
        preprocessor/3951
index 3c20fa3d6d8e5bcee75b011a5bd9e014e08e2148..ba8af6f1e90911d95de39bcd319ae29ded9cad19 100644 (file)
@@ -4426,7 +4426,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