diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-09-03 20:15:27 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-09-03 20:15:27 +0000 |
commit | a15b4a3c5dce9d98a9ddbca764a998e6c12e60cb (patch) | |
tree | 022b78777d9e0e53c2e59c7d77769cb1fa21caa0 /gcc/config/alpha | |
parent | f0a46d8300adc51c430add3e640b289a8222c1b7 (diff) | |
download | gcc-a15b4a3c5dce9d98a9ddbca764a998e6c12e60cb.tar.gz |
* config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
memory barrier to below the test-and-set.
(alpha_split_lock_test_and_set_12): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139950 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/alpha')
-rw-r--r-- | gcc/config/alpha/alpha.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index a4d3bf1f150..3d546bef81b 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -4600,8 +4600,6 @@ alpha_split_lock_test_and_set (rtx retval, rtx mem, rtx val, rtx scratch) enum machine_mode mode = GET_MODE (mem); rtx label, x, cond = gen_lowpart (DImode, scratch); - emit_insn (gen_memory_barrier ()); - label = gen_rtx_LABEL_REF (DImode, gen_label_rtx ()); emit_label (XEXP (label, 0)); @@ -4611,6 +4609,8 @@ alpha_split_lock_test_and_set (rtx retval, rtx mem, rtx val, rtx scratch) x = gen_rtx_EQ (DImode, cond, const0_rtx); emit_unlikely_jump (x, label); + + emit_insn (gen_memory_barrier ()); } void @@ -4649,7 +4649,6 @@ alpha_split_lock_test_and_set_12 (enum machine_mode mode, rtx dest, rtx addr, mem = gen_rtx_MEM (DImode, align); MEM_VOLATILE_P (mem) = 1; - emit_insn (gen_memory_barrier ()); label = gen_rtx_LABEL_REF (DImode, gen_label_rtx ()); emit_label (XEXP (label, 0)); @@ -4673,6 +4672,8 @@ alpha_split_lock_test_and_set_12 (enum machine_mode mode, rtx dest, rtx addr, x = gen_rtx_EQ (DImode, scratch, const0_rtx); emit_unlikely_jump (x, label); + + emit_insn (gen_memory_barrier ()); } /* Adjust the cost of a scheduling dependency. Return the new cost of |