sync.md (sync_add<mode>, [...]): Operand 0 is in-out.
authorBernd Schmidt <bernd.schmidt@analog.com>
Mon, 6 Feb 2006 14:27:21 +0000 (14:27 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Mon, 6 Feb 2006 14:27:21 +0000 (14:27 +0000)
* config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.

From-SVN: r110645

gcc/ChangeLog
gcc/config/i386/sync.md

index 4dc5389..225f6e8 100644 (file)
@@ -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.
index fb3976c..19a61c8 100644 (file)
@@ -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.
   "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>"))]
   "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>"))]
   "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>"))]
   "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>"))]
   "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>"))]