re PR target/20421 (387 mode switching clobbers flags)
authorUros Bizjak <uros@kss-loka.si>
Tue, 5 Apr 2005 05:23:14 +0000 (07:23 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 5 Apr 2005 05:23:14 +0000 (07:23 +0200)
commitc9d3aededbe5dfaf0978b2ff0cf59284b092fbef
treeb6538ba455f8b329a4f7b2840d60e0bdf7914ba5
parent3ce9c82463e3066170e8d8d4177f785e83537966
re PR target/20421 (387 mode switching clobbers flags)

PR target/20421
* config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
(frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
Allocate local stack slots here.  Set ix86_optimize_mode_switching.
flag here. Implement using define_insn_and_split.
(frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
(frndintxf2_mask_pm_i387): New insn patterns.
(floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
Do not set ix86_optimize_mode_switching flag.
(ceilsf2, ceildf2, ceilxf2): Same.
(btruncsf2, btruncdf2, btruncxf2): Same.
(nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.

From-SVN: r97604
gcc/ChangeLog
gcc/config/i386/i386.md