aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2009-04-24 06:30:15 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2009-04-24 06:30:15 +0000
commit6de7a512f0e76268d8ff69e51be80527c58d854b (patch)
tree46fea3a4179aa4614de45e545985a1505eaa237a /gcc
parentbb1a1907e4d59996c482682a291b4420204d4e48 (diff)
downloadgcc-6de7a512f0e76268d8ff69e51be80527c58d854b.zip
gcc-6de7a512f0e76268d8ff69e51be80527c58d854b.tar.gz
gcc-6de7a512f0e76268d8ff69e51be80527c58d854b.tar.bz2
sh.c (sh_expand_prologue, [...]): Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
2009-04-23 Paolo Bonzini <bonzini@gnu.org> * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue): Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS. From-SVN: r146668
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.c74
2 files changed, 35 insertions, 44 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index abf2b2e..042c56c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-23 Paolo Bonzini <bonzini@gnu.org>
+
+ * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
+ Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
+
2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/spu/spu-builtins.h: Delete file.
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index ce45898..c9493dd 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -6362,32 +6362,27 @@ sh_expand_prologue (void)
stack_pointer_rtx,
GEN_INT (offset)));
- GO_IF_LEGITIMATE_ADDRESS (mode, XEXP (mem_rtx, 0), try_pre_dec);
-
- gcc_assert (r0);
- mem_rtx = NULL_RTX;
-
- try_pre_dec:
- do
- if (HAVE_PRE_DECREMENT
- && (offset_in_r0 - offset == GET_MODE_SIZE (mode)
- || mem_rtx == NULL_RTX
- || reg == PR_REG || SPECIAL_REGISTER_P (reg)))
- {
- pre_dec = gen_frame_mem (mode, gen_rtx_PRE_DEC (Pmode, r0));
+ if (!memory_address_p (mode, XEXP (mem_rtx, 0)))
+ {
+ gcc_assert (r0);
+ mem_rtx = NULL_RTX;
+ }
- GO_IF_LEGITIMATE_ADDRESS (mode, XEXP (pre_dec, 0),
- pre_dec_ok);
+ if (HAVE_PRE_DECREMENT
+ && (offset_in_r0 - offset == GET_MODE_SIZE (mode)
+ || mem_rtx == NULL_RTX
+ || reg == PR_REG || SPECIAL_REGISTER_P (reg)))
+ {
+ pre_dec = gen_frame_mem (mode, gen_rtx_PRE_DEC (Pmode, r0));
+ if (!memory_address_p (mode, XEXP (pre_dec, 0)))
pre_dec = NULL_RTX;
-
- break;
-
- pre_dec_ok:
- mem_rtx = NULL_RTX;
- offset += GET_MODE_SIZE (mode);
- }
- while (0);
+ else
+ {
+ mem_rtx = NULL_RTX;
+ offset += GET_MODE_SIZE (mode);
+ }
+ }
if (mem_rtx != NULL_RTX)
goto addr_ok;
@@ -6650,31 +6645,22 @@ sh_expand_epilogue (bool sibcall_p)
stack_pointer_rtx,
GEN_INT (offset)));
- GO_IF_LEGITIMATE_ADDRESS (mode, XEXP (mem_rtx, 0), try_post_inc);
+ if (!memory_address_p (mode, XEXP (mem_rtx, 0)))
+ mem_rtx = NULL_RTX;
- mem_rtx = NULL_RTX;
-
- try_post_inc:
- do
- if (HAVE_POST_INCREMENT
- && (offset == offset_in_r0
- || (offset + GET_MODE_SIZE (mode) != d + d_rounding
- && mem_rtx == NULL_RTX)
- || reg == PR_REG || SPECIAL_REGISTER_P (reg)))
- {
- post_inc = gen_frame_mem (mode, gen_rtx_POST_INC (Pmode, r0));
-
- GO_IF_LEGITIMATE_ADDRESS (mode, XEXP (post_inc, 0),
- post_inc_ok);
+ if (HAVE_POST_INCREMENT
+ && (offset == offset_in_r0
+ || (offset + GET_MODE_SIZE (mode) != d + d_rounding
+ && mem_rtx == NULL_RTX)
+ || reg == PR_REG || SPECIAL_REGISTER_P (reg)))
+ {
+ post_inc = gen_frame_mem (mode, gen_rtx_POST_INC (Pmode, r0));
+ if (!memory_address_p (mode, XEXP (post_inc, 0)))
post_inc = NULL_RTX;
-
- break;
-
- post_inc_ok:
+ else
mem_rtx = NULL_RTX;
- }
- while (0);
+ }
if (mem_rtx != NULL_RTX)
goto addr_ok;