aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/reg-stack.c7
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8f86a90..dfcb9b5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
Thu Sep 10 01:38:05 1998 Jeffrey A Law (law@cygnus.com)
+ * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
+ empty or has a single entry.
+
* toplev.c (rest_of_compilation): Open up the dump file for reg-stack
before calling reg_to_stack.
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index ab400c5..a7a5fb7 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -309,6 +309,13 @@ straighten_stack (insn, regstack)
struct stack_def temp_stack;
int top;
+ /* If there is only a single register on the stack, then the stack is
+ already in increasing order and no reorganization is needed.
+
+ Similarly if the stack is empty. */
+ if (regstack->top <= 0)
+ return;
+
temp_stack.reg_set = regstack->reg_set;
for (top = temp_stack.top = regstack->top; top >= 0; top--)