diff options
author | Steve Ellcey <sje@cup.hp.com> | 2010-03-12 18:19:14 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2010-03-12 18:19:14 +0000 |
commit | 9c8cab4478ead482a1b758ba5155fc13cfd460f5 (patch) | |
tree | 41d271c548763fb69d37280d2f3b375b93943cab /gcc | |
parent | 60f8b2e2ffeb33d3f91dad993a2f78f416065855 (diff) | |
download | gcc-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')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/ia64/sync.md | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9bb215a..580ccc4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-03-12 Steve Ellcey <sje@cup.hp.com> + + PR target/42869 + * config/ia64/sync.md (sync_compare_and_swap): Move memory fence. + 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com> PR middle-end/42431 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)); |