From: Paolo Bonzini Date: Fri, 14 Aug 2009 12:14:04 +0000 (+0000) Subject: re PR target/40934 (ICE in get_hard_regnum, at reg-stack.c:741) X-Git-Tag: releases/gcc-4.5.0~4033 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=371015a84ab10d45cc9fe24116688e702e03506b;p=thirdparty%2Fgcc.git re PR target/40934 (ICE in get_hard_regnum, at reg-stack.c:741) 2009-08-14 Paolo Bonzini 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 PR target/40934 * gcc.target/i386/pr40934.c: New. From-SVN: r150754 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0862182fe518..5e51aea56f20 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-08-14 Paolo Bonzini + + PR target/40934 + * config/i386/i386.c (ix86_fp_comparison_strategy): + Only enable/disable sahf at function granularity. + 2009-08-14 Hans-Peter Nilsson PR rtl-optimization/41064 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index acb7753664b6..8b73fca0c6f9 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 db94b62afef6..e6864f5065e5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-08-14 Paolo Bonzini + + PR target/40934 + * gcc.target/i386/pr40934.c: New. + 2009-08-14 Uros Bizjak 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 000000000000..41f46f881144 --- /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; +}