aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorStuart Henderson <shenders@gcc.gnu.org>2011-05-04 10:42:59 +0000
committerStuart Henderson <shenders@gcc.gnu.org>2011-05-04 10:42:59 +0000
commit9f8d69ee246583778c5eb61b430eb465477742f3 (patch)
tree8cff581693c884639ccb8a836f798ec0eef5501d /gcc
parent5b56b9d2e77047a14a4dde4754dec934292a08a8 (diff)
downloadgcc-9f8d69ee246583778c5eb61b430eb465477742f3.zip
gcc-9f8d69ee246583778c5eb61b430eb465477742f3.tar.gz
gcc-9f8d69ee246583778c5eb61b430eb465477742f3.tar.bz2
2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
From Jie Zhang * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2. From-SVN: r173364
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/bfin/bfin.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6f30c31..3722fe5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
+
+ From Jie Zhang
+ * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
+
2011-05-04 Nick Clifton <nickc@redhat.com>
* config/mn10300/mn10300.c: Include cfgloop.h.
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index e046789..596042d 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -1341,8 +1341,10 @@ bfin_expand_prologue (void)
= bfin_initial_elimination_offset (ARG_POINTER_REGNUM,
STACK_POINTER_REGNUM);
rtx lim = crtl->limit_stack ? stack_limit_rtx : NULL_RTX;
+ rtx tmp = gen_rtx_REG (Pmode, REG_R3);
rtx p2reg = gen_rtx_REG (Pmode, REG_P2);
+ emit_move_insn (tmp, p2reg);
if (!lim)
{
emit_move_insn (p2reg, gen_int_mode (0xFFB00000, SImode));
@@ -1379,6 +1381,7 @@ bfin_expand_prologue (void)
}
emit_insn (gen_compare_lt (bfin_cc_rtx, spreg, lim));
emit_insn (gen_trapifcc ());
+ emit_move_insn (p2reg, tmp);
}
expand_prologue_reg_save (spreg, all, false);