From 6de7a512f0e76268d8ff69e51be80527c58d854b Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 24 Apr 2009 06:30:15 +0000 Subject: [PATCH] sh.c (sh_expand_prologue, [...]): Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS. 2009-04-23 Paolo Bonzini * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue): Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS. From-SVN: r146668 --- gcc/ChangeLog | 5 ++++ gcc/config/sh/sh.c | 74 +++++++++++++++++++--------------------------- 2 files changed, 35 insertions(+), 44 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index abf2b2eab80..042c56c673d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-04-23 Paolo Bonzini + + * 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 * config/spu/spu-builtins.h: Delete file. diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index ce45898ff2d..c9493dd6c9c 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); + if (!memory_address_p (mode, XEXP (mem_rtx, 0))) + { + gcc_assert (r0); + mem_rtx = NULL_RTX; + } - 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)); - - 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;