aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2013-01-13 20:06:54 +0100
committerUros Bizjak <uros@gcc.gnu.org>2013-01-13 20:06:54 +0100
commit45805f17035ea374047d014014527ed642bbcd65 (patch)
treeb14e06c940459c48296503f40eeb5351935ba7fd
parent9d60be386676d883d4a8bd2feaace130fb905a0f (diff)
downloadgcc-45805f17035ea374047d014014527ed642bbcd65.zip
gcc-45805f17035ea374047d014014527ed642bbcd65.tar.gz
gcc-45805f17035ea374047d014014527ed642bbcd65.tar.bz2
sync.md (mem_thread_fence): Mask operands[0] with MEMMODEL_MASK to determine memory model.
* config/i386/sync.md (mem_thread_fence): Mask operands[0] with MEMMODEL_MASK to determine memory model. (atomic_store<mode>): Ditto from operands[2]. * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool. From-SVN: r195137
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/config/i386/i386.c2
-rw-r--r--gcc/config/i386/sync.md6
-rw-r--r--gcc/testsuite/ChangeLog2
4 files changed, 15 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 59a16bb..853c2d7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,8 +1,14 @@
+2013-01-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
+ MEMMODEL_MASK to determine memory model.
+ (atomic_store<mode>): Ditto from operands[2].
+ * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
+
2013-01-13 Jakub Jelinek <jakub@redhat.com>
PR fortran/55935
- * gimple-fold.c (get_symbol_constant_value): Call
- unshare_expr.
+ * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
(fold_gimple_assign): Don't call unshare_expr here.
(fold_ctor_reference): Call unshare_expr.
@@ -61,7 +67,7 @@
2013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
- Update copyright years
+ Update copyright years.
2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 723c654..4f778c1 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -42082,7 +42082,7 @@ static unsigned HOST_WIDE_INT
ix86_memmodel_check (unsigned HOST_WIDE_INT val)
{
unsigned HOST_WIDE_INT model = val & MEMMODEL_MASK;
- unsigned HOST_WIDE_INT strong;
+ bool strong;
if (val & ~(unsigned HOST_WIDE_INT)(IX86_HLE_ACQUIRE|IX86_HLE_RELEASE
|MEMMODEL_MASK)
diff --git a/gcc/config/i386/sync.md b/gcc/config/i386/sync.md
index a2ea7b2..83198b9 100644
--- a/gcc/config/i386/sync.md
+++ b/gcc/config/i386/sync.md
@@ -101,9 +101,11 @@
[(match_operand:SI 0 "const_int_operand")] ;; model
""
{
+ enum memmodel model = (enum memmodel) (INTVAL (operands[0]) & MEMMODEL_MASK);
+
/* Unless this is a SEQ_CST fence, the i386 memory model is strong
enough not to require barriers of any kind. */
- if (INTVAL (operands[0]) == MEMMODEL_SEQ_CST)
+ if (model == MEMMODEL_SEQ_CST)
{
rtx (*mfence_insn)(rtx);
rtx mem;
@@ -200,7 +202,7 @@
UNSPEC_MOVA))]
""
{
- enum memmodel model = (enum memmodel) INTVAL (operands[2]);
+ enum memmodel model = (enum memmodel) (INTVAL (operands[2]) & MEMMODEL_MASK);
if (<MODE>mode == DImode && !TARGET_64BIT)
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 67671a8..f567a72 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -52,7 +52,7 @@
2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
- PR rtl-optimization/pr55672
+ PR rtl-optimization/55672
* gcc.target/i386/pr55672.c: New.
2013-01-10 Jeff Law <law@redhat.com>