aboutsummaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2004-03-24 02:28:41 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2004-03-24 02:28:41 +0000
commit0c5faf294f9329ea1d10c3424f82339cf30d893a (patch)
treefdc5589420c8477ac11336433d27bf34a7c6705a /gcc/reg-stack.c
parentcbfd7e06e59e1543e5c98074ae467f93ea4d6b55 (diff)
downloadgcc-0c5faf294f9329ea1d10c3424f82339cf30d893a.zip
gcc-0c5faf294f9329ea1d10c3424f82339cf30d893a.tar.gz
gcc-0c5faf294f9329ea1d10c3424f82339cf30d893a.tar.bz2
reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND if flag_unsafe_math_optimizations.
* reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND if flag_unsafe_math_optimizations. * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations and TARGET_80387 expand using truncdfsf2_noop pattern. (truncxfsf2): Likewise using truncxfsf2_noop. (truncxfdf2): Likewise using truncxfdf2_noop. (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns. From-SVN: r79893
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r--gcc/reg-stack.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 22b290f..31ebddb 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -574,6 +574,13 @@ get_true_reg (rtx *pat)
case FIX:
case FLOAT_EXTEND:
pat = & XEXP (*pat, 0);
+ break;
+
+ case FLOAT_TRUNCATE:
+ if (!flag_unsafe_math_optimizations)
+ return pat;
+ pat = & XEXP (*pat, 0);
+ break;
}
}