aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2009-08-14 12:14:04 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2009-08-14 12:14:04 +0000
commit371015a84ab10d45cc9fe24116688e702e03506b (patch)
tree0d386091edd3e271b4afa6d1ccafcfc0d3048e46 /gcc
parent94aca67aaf3c0e615ca0ddbac528662fcdd9bb2a (diff)
downloadgcc-371015a84ab10d45cc9fe24116688e702e03506b.zip
gcc-371015a84ab10d45cc9fe24116688e702e03506b.tar.gz
gcc-371015a84ab10d45cc9fe24116688e702e03506b.tar.bz2
re PR target/40934 (ICE in get_hard_regnum, at reg-stack.c:741)
2009-08-14 Paolo Bonzini <bonzini@gnu.org> PR target/40934 * config/i386/i386.c (ix86_fp_comparison_strategy): Only enable/disable sahf at function granularity. gcc/testsuite: 2009-08-14 Paolo Bonzini <bonzini@gnu.org> PR target/40934 * gcc.target/i386/pr40934.c: New. From-SVN: r150754
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/pr40934.c15
4 files changed, 27 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0862182..5e51aea 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2009-08-14 Paolo Bonzini <bonzini@gnu.org>
+
+ PR target/40934
+ * config/i386/i386.c (ix86_fp_comparison_strategy):
+ Only enable/disable sahf at function granularity.
+
2009-08-14 Hans-Peter Nilsson <hp@axis.com>
PR rtl-optimization/41064
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index acb7753..8b73fca 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -14594,7 +14594,7 @@ ix86_fp_comparison_strategy (enum rtx_code code ATTRIBUTE_UNUSED)
if (TARGET_CMOVE)
return IX86_FPCMP_COMI;
- if (TARGET_SAHF && (TARGET_USE_SAHF || optimize_insn_for_size_p ()))
+ if (TARGET_SAHF && (TARGET_USE_SAHF || optimize_function_for_size_p (cfun)))
return IX86_FPCMP_SAHF;
return IX86_FPCMP_ARITH;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index db94b62..e6864f5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2009-08-14 Paolo Bonzini <bonzini@gnu.org>
+
+ PR target/40934
+ * gcc.target/i386/pr40934.c: New.
+
2009-08-14 Uros Bizjak <ubizjak@gmail.com>
PR target/41019
diff --git a/gcc/testsuite/gcc.target/i386/pr40934.c b/gcc/testsuite/gcc.target/i386/pr40934.c
new file mode 100644
index 0000000..41f46f8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr40934.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target ilp32 } */
+/* { dg-options "-O2 -march=i586 -ffast-math" } */
+
+extern double host_frametime;
+extern float pitchvel;
+V_DriftPitch (float delta, float move)
+{
+ if (!delta)
+ move = host_frametime;
+ if (delta > 0)
+ ;
+ else if (delta < 0 && move > -delta)
+ pitchvel = 0;
+}