* calls.c (expand_call): Slightly reorganize code.
authorJeffrey A Law <law@cygnus.com>
Tue, 9 Mar 1999 15:49:12 +0000 (15:49 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 9 Mar 1999 15:49:12 +0000 (08:49 -0700)
From-SVN: r25655

gcc/ChangeLog
gcc/calls.c

index afbc9266fd7dabbb0fb805d591e39c3c70b16822..2a5b2a99169c0a6c2d2f72b8a91c3801ac18c195 100644 (file)
@@ -15,6 +15,8 @@ Tue Mar  9 09:33:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
 Tue Mar  9 02:08:17 1999  Jeffrey A Law  (law@cygnus.com)
 
+       * calls.c (expand_call): Slightly reorganize code.
+
        * calls.c (compute_argument_addresses): New function.
        (rtx_for_function_call): New function.
        (expand_call): Use them.
index a30bde9e37cb5cbe43841973d8b97b3d4f06ed62..e45c3c23360d735581af3c1d7a75bf6bfe2f16ab 100644 (file)
@@ -1754,11 +1754,6 @@ expand_call (exp, target, ignore)
       mark_addressable (fndecl);
     }
 
-  /* When calling a const function, we must pop the stack args right away,
-     so that the pop is deleted or moved with the call.  */
-  if (is_const)
-    NO_DEFER_POP;
-
   function_call_count++;
 
   if (fndecl && DECL_NAME (fndecl))
@@ -1772,6 +1767,17 @@ expand_call (exp, target, ignore)
   if (may_be_alloca)
     current_function_calls_alloca = 1;
 
+  /* Operand 0 is a pointer-to-function; get the type of the function.  */
+  funtype = TREE_TYPE (TREE_OPERAND (exp, 0));
+  if (! POINTER_TYPE_P (funtype))
+    abort ();
+  funtype = TREE_TYPE (funtype);
+
+  /* When calling a const function, we must pop the stack args right away,
+     so that the pop is deleted or moved with the call.  */
+  if (is_const)
+    NO_DEFER_POP;
+
   /* Don't let pending stack adjusts add up to too much.
      Also, do all pending adjustments now
      if there is any chance this might be a call to alloca.  */
@@ -1780,13 +1786,6 @@ expand_call (exp, target, ignore)
       || (pending_stack_adjust > 0 && may_be_alloca))
     do_pending_stack_adjust ();
 
-  /* Operand 0 is a pointer-to-function; get the type of the function.  */
-  funtype = TREE_TYPE (TREE_OPERAND (exp, 0));
-  if (! POINTER_TYPE_P (funtype))
-    abort ();
-
-  funtype = TREE_TYPE (funtype);
-
   /* Push the temporary stack slot level so that we can free any temporaries
      we make.  */
   push_temp_slots ();