aboutsummaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1999-01-17 11:04:07 -0700
committerJeff Law <law@gcc.gnu.org>1999-01-17 11:04:07 -0700
commit20f7cbac8f4a12c71fca2b06fa94b565a8811cdd (patch)
tree5321a20ffda2368f914471ad24be590bdab804a5 /gcc/reg-stack.c
parent16e829b30def15b0bb3bae40556323917e814482 (diff)
downloadgcc-20f7cbac8f4a12c71fca2b06fa94b565a8811cdd.zip
gcc-20f7cbac8f4a12c71fca2b06fa94b565a8811cdd.tar.gz
gcc-20f7cbac8f4a12c71fca2b06fa94b565a8811cdd.tar.bz2
reg-stack.c (subst_stack_regs_pat): Abort if the destination of a FP conditional move is not on the FP register stack.
* reg-stack.c (subst_stack_regs_pat): Abort if the destination of a FP conditional move is not on the FP register stack. Forgot to check it in last night/this morning. One should not hack at 4am. From-SVN: r24716
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r--gcc/reg-stack.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index e391706..a0f48fa 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -1,5 +1,5 @@
/* Register to Stack convert for GNU compiler.
- Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1992, 93-98, 1999 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -2046,6 +2046,10 @@ subst_stack_regs_pat (insn, regstack, pat)
break;
case IF_THEN_ELSE:
+ /* dest has to be on stack. */
+ if (get_hard_regnum (regstack, *dest) < FIRST_STACK_REG)
+ abort ();
+
/* This insn requires the top of stack to be the destination. */
/* If the comparison operator is an FP comparison operator,
@@ -2099,9 +2103,7 @@ subst_stack_regs_pat (insn, regstack, pat)
}
}
- /* Make dest the top of stack. Add dest to regstack if not present. */
- if (get_hard_regnum (regstack, *dest) < FIRST_STACK_REG)
- regstack->reg[++regstack->top] = REGNO (*dest);
+ /* Make dest the top of stack. */
SET_HARD_REG_BIT (regstack->reg_set, REGNO (*dest));
replace_reg (dest, FIRST_STACK_REG);