OSDN Git Service

2003-02-15 Roger Sayle <roger@eyesopen.com>
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 Feb 2003 01:35:38 +0000 (01:35 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 Feb 2003 01:35:38 +0000 (01:35 +0000)
commit17815dd7bcb55ada5cf26eef011db70c56e986b6
treec5992b263188c567bbeaa331e4c8c317af271e2c
parent214502e17db090d00b03cc8c4fea136ce36d2571
2003-02-15  Roger Sayle  <roger@eyesopen.com>

* config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns
to load mathematical constants on K6, Athlon, Pentium 4 and PPro.
(ext_80387_constants_table): Global table of 80387 special constants
guarded by ext_80387_constants_init flag when not initialized.
(init_ext_80387_constants): New function to initialize this table.
(standard_80387_constant_p): Extend to recognize extra 80387
constants, in XFmode, on processors where this is a win.
(standard_80387_constant_opcode): New function to return the
opcode associated with standard_80387_constant_p.
(standard_80387_constant_rtx): New function to return the XFmode
CONST_DOUBLE associated with standard_80387_constant_p.
(ix86_rtx_costs): Give the new constants the same cost as 1.0.

* config/i386/i386-protos.h (standard_80387_constant_opcode):
Prototype here.
(standard_80387_constant_rtx): Likewise.

* config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger,
*movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer,
*movtf_integer): Simplify using new standard_80387_constant_opcode.

* gcc.dg/i386-387-3.c: New test case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62958 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/i386-protos.h
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/i386-387-3.c [new file with mode: 0644]