diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4dc53896671e20dfe32b2635dbf62a9fee37d37f..225f6e82a2d1723b25a356e2dc7bb716ec90d9ea 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 fb3976cc6bc461420263d12b09b92f174ed26691..19a61c8b580acfc977dd237ee353c6e49fba6611 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>"))]