Commit 2cea5e8c by Bernd Schmidt Committed by Bernd Schmidt

sync.md (sync_add<mode>, [...]): Operand 0 is in-out.

	* 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
parent 85300b46
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> 2006-02-06 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads. * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
......
;; GCC machine description for i386 synchronization instructions. ;; GCC machine description for i386 synchronization instructions.
;; Copyright (C) 2005 ;; Copyright (C) 2005, 2006
;; Free Software Foundation, Inc. ;; Free Software Foundation, Inc.
;; ;;
;; This file is part of GCC. ;; This file is part of GCC.
...@@ -230,7 +230,7 @@ ...@@ -230,7 +230,7 @@
"xchg{<modesuffix>}\t{%1, %0|%0, %1}") "xchg{<modesuffix>}\t{%1, %0|%0, %1}")
(define_insn "sync_add<mode>" (define_insn "sync_add<mode>"
[(set (match_operand:IMODE 0 "memory_operand" "=m") [(set (match_operand:IMODE 0 "memory_operand" "+m")
(unspec_volatile:IMODE (unspec_volatile:IMODE
[(plus:IMODE (match_dup 0) [(plus:IMODE (match_dup 0)
(match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))] (match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))]
...@@ -240,7 +240,7 @@ ...@@ -240,7 +240,7 @@
"lock\;add{<modesuffix>}\t{%1, %0|%0, %1}") "lock\;add{<modesuffix>}\t{%1, %0|%0, %1}")
(define_insn "sync_sub<mode>" (define_insn "sync_sub<mode>"
[(set (match_operand:IMODE 0 "memory_operand" "=m") [(set (match_operand:IMODE 0 "memory_operand" "+m")
(unspec_volatile:IMODE (unspec_volatile:IMODE
[(minus:IMODE (match_dup 0) [(minus:IMODE (match_dup 0)
(match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))] (match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))]
...@@ -250,7 +250,7 @@ ...@@ -250,7 +250,7 @@
"lock\;sub{<modesuffix>}\t{%1, %0|%0, %1}") "lock\;sub{<modesuffix>}\t{%1, %0|%0, %1}")
(define_insn "sync_ior<mode>" (define_insn "sync_ior<mode>"
[(set (match_operand:IMODE 0 "memory_operand" "=m") [(set (match_operand:IMODE 0 "memory_operand" "+m")
(unspec_volatile:IMODE (unspec_volatile:IMODE
[(ior:IMODE (match_dup 0) [(ior:IMODE (match_dup 0)
(match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))] (match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))]
...@@ -260,7 +260,7 @@ ...@@ -260,7 +260,7 @@
"lock\;or{<modesuffix>}\t{%1, %0|%0, %1}") "lock\;or{<modesuffix>}\t{%1, %0|%0, %1}")
(define_insn "sync_and<mode>" (define_insn "sync_and<mode>"
[(set (match_operand:IMODE 0 "memory_operand" "=m") [(set (match_operand:IMODE 0 "memory_operand" "+m")
(unspec_volatile:IMODE (unspec_volatile:IMODE
[(and:IMODE (match_dup 0) [(and:IMODE (match_dup 0)
(match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))] (match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))]
...@@ -270,7 +270,7 @@ ...@@ -270,7 +270,7 @@
"lock\;and{<modesuffix>}\t{%1, %0|%0, %1}") "lock\;and{<modesuffix>}\t{%1, %0|%0, %1}")
(define_insn "sync_xor<mode>" (define_insn "sync_xor<mode>"
[(set (match_operand:IMODE 0 "memory_operand" "=m") [(set (match_operand:IMODE 0 "memory_operand" "+m")
(unspec_volatile:IMODE (unspec_volatile:IMODE
[(xor:IMODE (match_dup 0) [(xor:IMODE (match_dup 0)
(match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))] (match_operand:IMODE 1 "nonmemory_operand" "r<immconstraint>"))]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment