predicates.md (input_operand): Add comment.
* config/sparc/predicates.md (input_operand): Add comment. Return true for any memory operand when LRA is in progress. * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix. Co-Authored-By: Jeff Law <law@redhat.com> Co-Authored-By: Vladimir Makarov <vmakarov@redhat.com> From-SVN: r246989
This commit is contained in:
parent
6143c99823
commit
a16c8d8b61
@ -1,3 +1,10 @@
|
||||
2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
|
||||
Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
* config/sparc/predicates.md (input_operand): Add comment. Return
|
||||
true for any memory operand when LRA is in progress.
|
||||
* config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
|
||||
|
||||
2017-04-18 Jeff Law <law@redhat.com>
|
||||
|
||||
PR target/74563
|
||||
|
@ -373,6 +373,7 @@
|
||||
if (TARGET_ARCH32 && mode == DImode && GET_CODE (op) == CONST_INT)
|
||||
return true;
|
||||
|
||||
/* Allow FP constants to be built in integer registers. */
|
||||
if (mclass == MODE_FLOAT && GET_CODE (op) == CONST_DOUBLE)
|
||||
return true;
|
||||
|
||||
@ -388,7 +389,14 @@
|
||||
|
||||
/* Check for valid MEM forms. */
|
||||
if (GET_CODE (op) == MEM)
|
||||
return memory_address_p (mode, XEXP (op, 0));
|
||||
{
|
||||
/* Except when LRA is precisely working hard to make them valid
|
||||
and relying entirely on the constraints. */
|
||||
if (lra_in_progress)
|
||||
return true;
|
||||
|
||||
return memory_address_p (mode, XEXP (op, 0));
|
||||
}
|
||||
|
||||
return false;
|
||||
})
|
||||
|
@ -1911,9 +1911,8 @@ sparc_expand_move (machine_mode mode, rtx *operands)
|
||||
/* We are able to build any SF constant in integer registers
|
||||
with at most 2 instructions. */
|
||||
&& (mode == SFmode
|
||||
/* And any DF constant in integer registers. */
|
||||
|| (mode == DFmode
|
||||
&& ! can_create_pseudo_p ())))
|
||||
/* And any DF constant in integer registers if needed. */
|
||||
|| (mode == DFmode && !can_create_pseudo_p ())))
|
||||
return false;
|
||||
|
||||
operands[1] = force_const_mem (mode, operands[1]);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
|
||||
Jeff Law <law@redhat.com>
|
||||
|
||||
* gcc.c-torture/compile/20170419-1.c: New test.
|
||||
|
||||
2017-04-19 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
PR testsuite/80221
|
||||
|
13
gcc/testsuite/gcc.c-torture/compile/20170419-1.c
Normal file
13
gcc/testsuite/gcc.c-torture/compile/20170419-1.c
Normal file
@ -0,0 +1,13 @@
|
||||
extern int __fpclassifyd (double x);
|
||||
|
||||
double fdim (double x, double y)
|
||||
{
|
||||
int c = __fpclassifyd (x);
|
||||
if (c == 0)
|
||||
return (x);
|
||||
if (__fpclassifyd (y) == 0)
|
||||
return (y);
|
||||
if (c == 1)
|
||||
return (__builtin_huge_val ());
|
||||
return x > y ? x - y : 0.0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user