aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2008-08-30 22:23:20 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2008-08-30 22:23:20 +0000
commit06b322fa4559dc317e1f0a55f05a1aebede46aea (patch)
treecc088bf424d4c8d5faa0b6e246b7b499073eadcb
parent588a58df9a9a8cee443c59ad5f2ef972d8a5908e (diff)
downloadgcc-06b322fa4559dc317e1f0a55f05a1aebede46aea.zip
gcc-06b322fa4559dc317e1f0a55f05a1aebede46aea.tar.gz
gcc-06b322fa4559dc317e1f0a55f05a1aebede46aea.tar.bz2
re PR target/37270 (SH: spill failure for R0_REGS)
PR target/37270 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate the reload address with the index register for SFmode access with a displacement. From-SVN: r139809
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/sh/sh.h4
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2449325..6f77e5c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2008-08-30 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/37270
+ * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
+ the reload address with the index register for SFmode
+ access with a displacement.
+
2008-08-30 Jan Hubicka <jh@suse.cz>
* optabs.c (expand_abs_nojump): Update BRANCH_COST call.
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 15bc744..d5ea612 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -2613,8 +2613,8 @@ struct sh_args {
if (TARGET_SH2E && MODE == SFmode) \
{ \
X = copy_rtx (X); \
- push_reload (index_rtx, NULL_RTX, &XEXP (X, 1), NULL, \
- R0_REGS, Pmode, VOIDmode, 0, 0, (OPNUM), \
+ push_reload (X, NULL_RTX, &X, NULL, \
+ BASE_REG_CLASS, Pmode, VOIDmode, 0, 0, (OPNUM), \
(TYPE)); \
goto WIN; \
} \