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
This commit is contained in:
Jeff Law 1999-01-17 11:04:07 -07:00
parent 16e829b30d
commit 20f7cbac8f

View File

@ -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);