aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2008-02-06 12:34:00 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2008-02-06 11:34:00 +0000
commit20a415f83b12a3ef53c18ec29453bce4933bfa74 (patch)
treee338c23c41066b0918a61fd194b23605ff8219db /gcc
parentcc8d36a15a4dbbf65efc38edbce5660518ea239a (diff)
downloadgcc-20a415f83b12a3ef53c18ec29453bce4933bfa74.zip
gcc-20a415f83b12a3ef53c18ec29453bce4933bfa74.tar.gz
gcc-20a415f83b12a3ef53c18ec29453bce4933bfa74.tar.bz2
re PR objc/5587 (Objc problems with user_label_prefix)
PR target/5587 * i386.md (moddf_integer): Do not produce partial memory stalls for targets where it hurts. From-SVN: r132145
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.md8
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c663174..3b81415 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-06 Jan Hubicka <jh@suse.cz>
+
+ PR target/5587
+ * i386.md (moddf_integer): Do not produce partial memory stalls for
+ targets where it hurts.
+
2008-02-06 Uros Bizjak <ubizjak@gmail.com>
PR target/35083
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index fce691c..1724c0d 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -2690,15 +2690,19 @@
[(set (match_operand:DF 0 "nonimmediate_operand"
"=f,m,f,*r ,o ,Y2*x,Y2*x,Y2*x ,m ")
(match_operand:DF 1 "general_operand"
- "fm,f,G,*roF,F*r,C ,Y2*x,mY2*x,Y2*x"))]
+ "fm,f,G,*roF,*Fr,C ,Y2*x,mY2*x,Y2*x"))]
"!(MEM_P (operands[0]) && MEM_P (operands[1]))
&& ((optimize_size || !TARGET_INTEGER_DFMODE_MOVES) && !TARGET_64BIT)
&& (reload_in_progress || reload_completed
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| (!(TARGET_SSE2 && TARGET_SSE_MATH) && optimize_size
+ && !memory_operand (operands[0], DFmode)
&& standard_80387_constant_p (operands[1]))
|| GET_CODE (operands[1]) != CONST_DOUBLE
- || memory_operand (operands[0], DFmode))"
+ || ((optimize_size
+ || !TARGET_MEMORY_MISMATCH_STALL
+ || reload_in_progress || reload_completed)
+ && memory_operand (operands[0], DFmode)))"
{
switch (which_alternative)
{