re PR target/58475 (SH4 insn swapb does not satisfy its constraints:)

2013-09-23  Christian Bruel  <christian.bruel@st.com>

        PR target/58475
        * config/sh/sh.md (movsf_ie): Allow fpul_operand.
        * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.

From-SVN: r202825
This commit is contained in:
Christian Bruel 2013-09-23 10:30:00 +02:00
parent 4d0e5b54a8
commit 0e26cf7972
5 changed files with 31 additions and 10 deletions

View File

@ -1,3 +1,9 @@
2013-09-23 Christian Bruel <christian.bruel@st.com>
PR target/58475
* config/sh/sh.md (movsf_ie): Allow fpul_operand.
* config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
2013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
Revert r202780:
@ -7,6 +13,7 @@
(aarch64_expand_epilogue): Likewise.
(aarch64_legitimize_reload_address): Likewise.
>>>>>>> .r202824
2013-09-22 Eric Botcazou <ebotcazou@adacore.com>
* gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to

View File

@ -154,7 +154,7 @@
return (regno != T_REG && regno != PR_REG
&& ! TARGET_REGISTER_P (regno)
&& (regno != FPUL_REG || TARGET_SH4)
&& regno != FPUL_REG
&& regno != MACH_REG && regno != MACL_REG);
}
/* Allow a no-op sign extension - compare LOAD_EXTEND_OP.

View File

@ -8203,15 +8203,9 @@ label:
(use (match_operand:PSI 2 "fpscr_operand" "c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c"))
(clobber (match_scratch:SI 3 "=X,X,Bsc,Bsc,&z,X,X,X,X,X,X,X,X,y,X,X,X,X,X"))]
"TARGET_SH2E
&& (arith_reg_operand (operands[0], SFmode)
|| arith_reg_operand (operands[1], SFmode)
|| arith_reg_operand (operands[3], SImode)
|| (fpul_operand (operands[0], SFmode)
&& memory_operand (operands[1], SFmode)
&& GET_CODE (XEXP (operands[1], 0)) == POST_INC)
|| (fpul_operand (operands[1], SFmode)
&& memory_operand (operands[0], SFmode)
&& GET_CODE (XEXP (operands[0], 0)) == PRE_DEC))"
&& (arith_reg_operand (operands[0], SFmode) || fpul_operand (operands[0], SFmode)
|| arith_reg_operand (operands[1], SFmode) || fpul_operand (operands[1], SFmode)
|| arith_reg_operand (operands[3], SImode))"
"@
fmov %1,%0
mov %1,%0

View File

@ -1,3 +1,8 @@
2013-09-23 Christian Bruel <christian.bruel@st.com>
PR target/58475
* gcc.target/sh/torture/pr58475.c: New test.
2013-09-23 Janus Weil <janus@gcc.gnu.org>
PR fortran/58355

View File

@ -0,0 +1,15 @@
/* { dg-do compile { target "sh*-*-*" } } */
int
kerninfo(int __bsx, double tscale)
{
return (
(int)(__extension__
({
((((__bsx) & 0xff000000u) >> 24)
| (((__bsx) & 0x00ff0000) >> 8)
| (((__bsx) & 0x0000ff00) << 8)
| (((__bsx) & 0x000000ff) << 24)
); }))
* tscale);
}