OSDN Git Service

* config/i386/i386.md (*movtf_internal): Avoid allocating general
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 31 May 2011 16:14:08 +0000 (16:14 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 31 May 2011 16:14:08 +0000 (16:14 +0000)
commitb928b0b2120298e220ac448baf6afd1cc8b3bea9
treeb3a5027345c52e6b5a3f04b335a61ad4c29558ad
parent7857a7b7de4653975002fd7d1345990f4d68332e
* config/i386/i386.md (*movtf_internal): Avoid allocating general
registers.  Penalize F*r->o alternative to prevent partial memory
stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
CONST_DOUBLE immediates when optimizing function for size.  Do not move
CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
(*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
(*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
(*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
alternatives.
(*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.

(fp_register_operand splitters): Use fp_register_operand
constraint.  Do not use FP_REG_P in insn condition.
(any_fp_register_operand splitters): Use any_fp_register_operand
constraint.  Do not use ANY_FP_REG_P in insn condition.

* config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
(FP push_operand splitters): Merge {TF,XF,DF}mode splitters.

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