aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorDavid Edelsohn <dje.gcc@gmail.com>2015-06-12 00:00:53 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2015-06-11 20:00:53 -0400
commit39e150e85f8059df69b1cc4fff2567d682b6da9f (patch)
tree401c22aaaaa8d6fc8fa355cd99b13368cd61c84a /gcc/config
parent7672ab25db2459b86afa56533feb36a2f83c080a (diff)
downloadgcc-39e150e85f8059df69b1cc4fff2567d682b6da9f.zip
gcc-39e150e85f8059df69b1cc4fff2567d682b6da9f.tar.gz
gcc-39e150e85f8059df69b1cc4fff2567d682b6da9f.tar.bz2
rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC variants cases from switch.
* config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC variants cases from switch. (rs6000_post_atomic_barrier): Same. (rs6000_expand_atomic_compare_and_swap): Use memmodel_base. (rs6000_expand_atomic_exchange): Same. (rs6000_expand_atomic_op): Same. * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove SYNC variants cases from switch. (atomic_load): Same. (atomic_store): Same. From-SVN: r224401
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/rs6000/rs6000.c14
-rw-r--r--gcc/config/rs6000/sync.md13
2 files changed, 7 insertions, 20 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 26c84fe..ed2da59 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -20558,15 +20558,12 @@ rs6000_pre_atomic_barrier (rtx mem, enum memmodel model)
case MEMMODEL_RELAXED:
case MEMMODEL_CONSUME:
case MEMMODEL_ACQUIRE:
- case MEMMODEL_SYNC_ACQUIRE:
break;
case MEMMODEL_RELEASE:
- case MEMMODEL_SYNC_RELEASE:
case MEMMODEL_ACQ_REL:
emit_insn (gen_lwsync ());
break;
case MEMMODEL_SEQ_CST:
- case MEMMODEL_SYNC_SEQ_CST:
emit_insn (gen_hwsync ());
break;
default:
@@ -20583,13 +20580,10 @@ rs6000_post_atomic_barrier (enum memmodel model)
case MEMMODEL_RELAXED:
case MEMMODEL_CONSUME:
case MEMMODEL_RELEASE:
- case MEMMODEL_SYNC_RELEASE:
break;
case MEMMODEL_ACQUIRE:
- case MEMMODEL_SYNC_ACQUIRE:
case MEMMODEL_ACQ_REL:
case MEMMODEL_SEQ_CST:
- case MEMMODEL_SYNC_SEQ_CST:
emit_insn (gen_isync ());
break;
default:
@@ -20690,8 +20684,8 @@ rs6000_expand_atomic_compare_and_swap (rtx operands[])
oldval = operands[3];
newval = operands[4];
is_weak = (INTVAL (operands[5]) != 0);
- mod_s = memmodel_from_int (INTVAL (operands[6]));
- mod_f = memmodel_from_int (INTVAL (operands[7]));
+ mod_s = memmodel_base (INTVAL (operands[6]));
+ mod_f = memmodel_base (INTVAL (operands[7]));
orig_mode = mode = GET_MODE (mem);
mask = shift = NULL_RTX;
@@ -20810,7 +20804,7 @@ rs6000_expand_atomic_exchange (rtx operands[])
retval = operands[0];
mem = operands[1];
val = operands[2];
- model = (enum memmodel) INTVAL (operands[3]);
+ model = memmodel_base (INTVAL (operands[3]));
mode = GET_MODE (mem);
mask = shift = NULL_RTX;
@@ -20861,7 +20855,7 @@ void
rs6000_expand_atomic_op (enum rtx_code code, rtx mem, rtx val,
rtx orig_before, rtx orig_after, rtx model_rtx)
{
- enum memmodel model = (enum memmodel) INTVAL (model_rtx);
+ enum memmodel model = memmodel_base (INTVAL (model_rtx));
machine_mode mode = GET_MODE (mem);
machine_mode store_mode = mode;
rtx label, x, cond, mask, shift;
diff --git a/gcc/config/rs6000/sync.md b/gcc/config/rs6000/sync.md
index 8ba30b9..d97df8b 100644
--- a/gcc/config/rs6000/sync.md
+++ b/gcc/config/rs6000/sync.md
@@ -41,21 +41,18 @@
[(match_operand:SI 0 "const_int_operand" "")] ;; model
""
{
- enum memmodel model = memmodel_from_int (INTVAL (operands[0]));
+ enum memmodel model = memmodel_base (INTVAL (operands[0]));
switch (model)
{
case MEMMODEL_RELAXED:
break;
case MEMMODEL_CONSUME:
case MEMMODEL_ACQUIRE:
- case MEMMODEL_SYNC_ACQUIRE:
case MEMMODEL_RELEASE:
- case MEMMODEL_SYNC_RELEASE:
case MEMMODEL_ACQ_REL:
emit_insn (gen_lwsync ());
break;
case MEMMODEL_SEQ_CST:
- case MEMMODEL_SYNC_SEQ_CST:
emit_insn (gen_hwsync ());
break;
default:
@@ -147,7 +144,7 @@
if (<MODE>mode == TImode && !TARGET_SYNC_TI)
FAIL;
- enum memmodel model = memmodel_from_int (INTVAL (operands[2]));
+ enum memmodel model = memmodel_base (INTVAL (operands[2]));
if (is_mm_seq_cst (model))
emit_insn (gen_hwsync ());
@@ -185,9 +182,7 @@
break;
case MEMMODEL_CONSUME:
case MEMMODEL_ACQUIRE:
- case MEMMODEL_SYNC_ACQUIRE:
case MEMMODEL_SEQ_CST:
- case MEMMODEL_SYNC_SEQ_CST:
emit_insn (gen_loadsync_<mode> (operands[0]));
break;
default:
@@ -214,17 +209,15 @@
if (<MODE>mode == TImode && !TARGET_SYNC_TI)
FAIL;
- enum memmodel model = memmodel_from_int (INTVAL (operands[2]));
+ enum memmodel model = memmodel_base (INTVAL (operands[2]));
switch (model)
{
case MEMMODEL_RELAXED:
break;
case MEMMODEL_RELEASE:
- case MEMMODEL_SYNC_RELEASE:
emit_insn (gen_lwsync ());
break;
case MEMMODEL_SEQ_CST:
- case MEMMODEL_SYNC_SEQ_CST:
emit_insn (gen_hwsync ());
break;
default: