From 20f7cbac8f4a12c71fca2b06fa94b565a8811cdd Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Sun, 17 Jan 1999 11:04:07 -0700 Subject: [PATCH] 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 --- gcc/reg-stack.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index e3917063beb..a0f48fa1e56 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); -- 2.30.2