aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/sync.md12
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4dc5389..225f6e8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
+ sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
+
2006-02-06 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
diff --git a/gcc/config/i386/sync.md b/gcc/config/i386/sync.md
index fb3976c..19a61c8 100644
--- a/gcc/config/i386/sync.md
+++ b/gcc/config/i386/sync.md
@@ -1,5 +1,5 @@
;; GCC machine description for i386 synchronization instructions.
-;; Copyright (C) 2005
+;; Copyright (C) 2005, 2006
;; Free Software Foundation, Inc.
;;
;; This file is part of GCC.
@@ -230,7 +230,7 @@
"xchg{<modesuffix>}\t{%1, %0|%0, %1}")
(define_insn "sync_add<mode>"
- [(set (match_operand:IMODE 0 "memory_operand" "=m")
+ [(set (match_operand:IMODE 0 "memory_operand" "+m")
(unspec_volatile:IMODE
[(plus:IMODE (match_dup 0)
(match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))]
@@ -240,7 +240,7 @@
"lock\;add{<modesuffix>}\t{%1, %0|%0, %1}")
(define_insn "sync_sub<mode>"
- [(set (match_operand:IMODE 0 "memory_operand" "=m")
+ [(set (match_operand:IMODE 0 "memory_operand" "+m")
(unspec_volatile:IMODE
[(minus:IMODE (match_dup 0)
(match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))]
@@ -250,7 +250,7 @@
"lock\;sub{<modesuffix>}\t{%1, %0|%0, %1}")
(define_insn "sync_ior<mode>"
- [(set (match_operand:IMODE 0 "memory_operand" "=m")
+ [(set (match_operand:IMODE 0 "memory_operand" "+m")
(unspec_volatile:IMODE
[(ior:IMODE (match_dup 0)
(match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))]
@@ -260,7 +260,7 @@
"lock\;or{<modesuffix>}\t{%1, %0|%0, %1}")
(define_insn "sync_and<mode>"
- [(set (match_operand:IMODE 0 "memory_operand" "=m")
+ [(set (match_operand:IMODE 0 "memory_operand" "+m")
(unspec_volatile:IMODE
[(and:IMODE (match_dup 0)
(match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))]
@@ -270,7 +270,7 @@
"lock\;and{<modesuffix>}\t{%1, %0|%0, %1}")
(define_insn "sync_xor<mode>"
- [(set (match_operand:IMODE 0 "memory_operand" "=m")
+ [(set (match_operand:IMODE 0 "memory_operand" "+m")
(unspec_volatile:IMODE
[(xor:IMODE (match_dup 0)
(match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))]