aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/ia64
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2010-03-12 18:19:14 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2010-03-12 18:19:14 +0000
commit9c8cab4478ead482a1b758ba5155fc13cfd460f5 (patch)
tree41d271c548763fb69d37280d2f3b375b93943cab /gcc/config/ia64
parent60f8b2e2ffeb33d3f91dad993a2f78f416065855 (diff)
downloadgcc-9c8cab4478ead482a1b758ba5155fc13cfd460f5.zip
gcc-9c8cab4478ead482a1b758ba5155fc13cfd460f5.tar.gz
gcc-9c8cab4478ead482a1b758ba5155fc13cfd460f5.tar.bz2
re PR target/42869 (GOMP_critical_start wrong on Itanium due to __sync miscompilation)
2010-03-12 Steve Ellcey <sje@cup.hp.com> PR target/42869 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence. From-SVN: r157410
Diffstat (limited to 'gcc/config/ia64')
-rw-r--r--gcc/config/ia64/sync.md2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/ia64/sync.md b/gcc/config/ia64/sync.md
index b40e208..9aec0fe 100644
--- a/gcc/config/ia64/sync.md
+++ b/gcc/config/ia64/sync.md
@@ -135,8 +135,8 @@
if (GET_MODE (dst) != DImode)
dst = gen_reg_rtx (DImode);
- emit_insn (gen_memory_barrier ());
emit_insn (gen_cmpxchg_rel_<mode> (dst, operands[1], ccv, operands[3]));
+ emit_insn (gen_memory_barrier ());
if (dst != operands[0])
emit_move_insn (operands[0], gen_lowpart (<MODE>mode, dst));