Commit 9c8cab44 by Steve Ellcey Committed by Steve Ellcey

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
parent 60f8b2e2
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> 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
PR middle-end/42431 PR middle-end/42431
......
...@@ -135,8 +135,8 @@ ...@@ -135,8 +135,8 @@
if (GET_MODE (dst) != DImode) if (GET_MODE (dst) != DImode)
dst = gen_reg_rtx (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_cmpxchg_rel_<mode> (dst, operands[1], ccv, operands[3]));
emit_insn (gen_memory_barrier ());
if (dst != operands[0]) if (dst != operands[0])
emit_move_insn (operands[0], gen_lowpart (<MODE>mode, dst)); emit_move_insn (operands[0], gen_lowpart (<MODE>mode, dst));
......
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