re PR target/44392 (libgcc compile with --enable-target-optspace (-Os) causes recursion in __bswapsi2)

2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/44392
	* config/arm/arm.md (bswapsi2): Handle condition correctly
	for armv6 and optimize_size.

From-SVN: r164029
This commit is contained in:
Ramana Radhakrishnan 2010-09-08 21:35:48 +00:00 committed by Ramana Radhakrishnan
parent 03dbada4fb
commit 0a7822a32b
2 changed files with 25 additions and 24 deletions

View File

@ -1,3 +1,9 @@
2010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/44392
* config/arm/arm.md (bswapsi2): Handle condition correctly
for armv6 and optimize_size.
2010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR other/18555

View File

@ -10658,34 +10658,29 @@
(define_expand "bswapsi2"
[(set (match_operand:SI 0 "s_register_operand" "=r")
(bswap:SI (match_operand:SI 1 "s_register_operand" "r")))]
"TARGET_EITHER"
"TARGET_EITHER && (arm_arch6 || !optimize_size)"
"
if (!arm_arch6)
{
if (!optimize_size)
{
rtx op2 = gen_reg_rtx (SImode);
rtx op3 = gen_reg_rtx (SImode);
if (!arm_arch6)
{
rtx op2 = gen_reg_rtx (SImode);
rtx op3 = gen_reg_rtx (SImode);
if (TARGET_THUMB)
{
rtx op4 = gen_reg_rtx (SImode);
rtx op5 = gen_reg_rtx (SImode);
if (TARGET_THUMB)
{
rtx op4 = gen_reg_rtx (SImode);
rtx op5 = gen_reg_rtx (SImode);
emit_insn (gen_thumb_legacy_rev (operands[0], operands[1],
op2, op3, op4, op5));
}
else
{
emit_insn (gen_arm_legacy_rev (operands[0], operands[1],
op2, op3));
}
emit_insn (gen_thumb_legacy_rev (operands[0], operands[1],
op2, op3, op4, op5));
}
else
{
emit_insn (gen_arm_legacy_rev (operands[0], operands[1],
op2, op3));
}
DONE;
}
else
FAIL;
}
DONE;
}
"
)