aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-06-07 21:08:20 +0000
committerRichard Stallman <rms@gnu.org>1992-06-07 21:08:20 +0000
commit64af12fd4e845b6ba1efc84f6b68c5af8f287d6c (patch)
tree6cf200b78386423b5855cb52cd2d4449c2ce5dc3
parentc43f8fbd9700b9b5ba5b5d6ae0a63d55d3a0c4df (diff)
downloadgcc-64af12fd4e845b6ba1efc84f6b68c5af8f287d6c.zip
gcc-64af12fd4e845b6ba1efc84f6b68c5af8f287d6c.tar.gz
gcc-64af12fd4e845b6ba1efc84f6b68c5af8f287d6c.tar.bz2
*** empty log message ***
From-SVN: r1181
-rw-r--r--gcc/reorg.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 080e7f7..6af7a91 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -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;