]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/reorg.c
*** empty log message ***
[gcc.git] / gcc / reorg.c
index 080e7f7e8ced7acb9fa4ac68983c39d9e2dc7ab2..6af7a9132f75e113fa5f8cb60d352a115214078a 100644 (file)
@@ -3510,8 +3510,8 @@ dbr_schedule (first, file)
      function.  The condition code never is and memory always is.  If the
      frame pointer is needed, it is and so is the stack pointer unless
      EXIT_IGNORE_STACK is non-zero.  If the frame pointer is not needed, the
-     stack pointer is.  In addition, registers used to return the function
-     value are needed.  */
+     stack pointer is.  Registers used to return the function value are
+     needed.  Registers holding global variables are needed.  */
 
   end_of_function_needs.cc = 0;
   end_of_function_needs.memory = 1;
@@ -3533,6 +3533,10 @@ dbr_schedule (first, file)
     mark_referenced_resources (current_function_return_rtx,
                               &end_of_function_needs, 0);
 
+  for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
+    if (global_regs[i])
+      SET_HARD_REG_BIT (end_of_function_needs.regs, i);
+
   /* Show we haven't computed an end-of-function label yet.  */
   end_of_function_label = 0;
 
This page took 0.027466 seconds and 5 git commands to generate.