diff options
author | Richard Henderson <rth@cygnus.com> | 1999-11-04 16:37:48 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-11-04 16:37:48 -0800 |
commit | a6028d444a2e956b8296e3b5232d89f36e6f3fbd (patch) | |
tree | 6fa20841e918a1f169187730f7f9b0fa855fc550 /gcc/reg-stack.c | |
parent | bd695e1e9d018a98de8d09bd855574dc6e183ad9 (diff) | |
download | gcc-a6028d444a2e956b8296e3b5232d89f36e6f3fbd.zip gcc-a6028d444a2e956b8296e3b5232d89f36e6f3fbd.tar.gz gcc-a6028d444a2e956b8296e3b5232d89f36e6f3fbd.tar.bz2 |
reg-stack.c (convert_regs_1): Initialize target_stack->top after verifying an EH edge.
* reg-stack.c (convert_regs_1): Initialize target_stack->top
after verifying an EH edge.
From-SVN: r30402
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r-- | gcc/reg-stack.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 4efaea1..ec7d069 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -2546,15 +2546,16 @@ convert_regs_1 (file, block) HARD_REG_SET tmp; CLEAR_HARD_REG_SET (tmp); - GO_IF_HARD_REG_EQUAL (BLOCK_INFO (e->dest)->stack_in.reg_set, - tmp, eh1); + GO_IF_HARD_REG_EQUAL (target_stack->reg_set, tmp, eh1); abort(); eh1: SET_HARD_REG_BIT (tmp, FIRST_STACK_REG); - GO_IF_HARD_REG_EQUAL (BLOCK_INFO (e->src)->out_reg_set, tmp, eh2); + GO_IF_HARD_REG_EQUAL (regstack.reg_set, tmp, eh2); abort(); - eh2:; + eh2: + + target_stack->top = -1; } /* It is better to output directly to the end of the block |