From 0a514f47b835740bc283e61541883a2793d4af1f Mon Sep 17 00:00:00 2001 From: Walter Lee Date: Wed, 27 Mar 2013 06:18:49 +0000 Subject: [PATCH] tilegx.c (tilegx_expand_prologue): Avoid double-decrement of next_scratch_regno. * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid double-decrement of next_scratch_regno. From-SVN: r197139 --- gcc/ChangeLog | 5 +++++ gcc/config/tilegx/tilegx.c | 9 ++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 919d3d720ab..519cce0de82 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-03-27 Walter Lee + + * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid + double-decrement of next_scratch_regno. + 2013-03-27 Walter Lee * config/tilegx/tilegx.md (insn_v1mulu): Fix constraints on diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c index 9f2aad5eb38..beb1012cf2c 100644 --- a/gcc/config/tilegx/tilegx.c +++ b/gcc/config/tilegx/tilegx.c @@ -3999,11 +3999,10 @@ tilegx_expand_prologue (void) if (r == NULL_RTX) { - rtx p = compute_frame_addr (offset, &next_scratch_regno); - r = gen_rtx_REG (Pmode, next_scratch_regno--); - reg_save_addr[which_scratch] = r; - - emit_insn (gen_rtx_SET (VOIDmode, r, p)); + int prev_scratch_regno = next_scratch_regno; + r = compute_frame_addr (offset, &next_scratch_regno); + if (prev_scratch_regno != next_scratch_regno) + reg_save_addr[which_scratch] = r; } else { -- 2.30.2