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
This commit is contained in:
Paolo Bonzini 2009-04-24 06:30:15 +00:00 committed by Paolo Bonzini
parent bb1a1907e4
commit 6de7a512f0
2 changed files with 35 additions and 44 deletions

View File

@ -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.

View File

@ -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;