OSDN Git Service

* config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 May 2011 20:55:30 +0000 (20:55 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 May 2011 20:55:30 +0000 (20:55 +0000)
commit7d13df59740d1f73a0d5af790214bb56094e0e1b
tree6866f2f327a649175a244f2051b7b017833804ae
parent9e4cf85ea8135ba27c0337fda6ccedbf4e9a13f2
* config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
to memory for !TARGET_MEMORY_MISMATCH_STALL.
(*movdf_internal_rex64): Do not penalize F->r alternative.
(*movdf_internal):  Penalize FYd*r->o alternative to prevent partial
memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
when optimizing function for size.  Do not move CONST_DOUBLEs
directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
(FP move splitters): Merge {TF,XF,DF}mode move splitters.  Do not
handle SUBREGs.  Do not check for MEM_P operands in the insn condition,
check for ANY_FP_REGNO_P instead.
* config/i386/constraints.md (Yd): Enable GENERAL_REGS for
TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
function for speed.
* config/i386/i386.c (ix86_option_override_internal): Do not
set TARGET_INTEGER_DFMODE_MOVES here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174453 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/constraints.md
gcc/config/i386/i386.c
gcc/config/i386/i386.md