mips.md (UNSPEC_MEMORY_BARRIER): New entry in define_constants.
authorDavid Daney <ddaney@avtrex.com>
Mon, 10 Sep 2007 18:23:27 +0000 (18:23 +0000)
committerDavid Daney <daney@gcc.gnu.org>
Mon, 10 Sep 2007 18:23:27 +0000 (18:23 +0000)
* config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in
define_constants.
(memory_barrier): Rewrote as an insn that clobbers memory.

From-SVN: r128349

gcc/ChangeLog
gcc/config/mips/mips.md

index b5a55a38a35ebc399b2da5f01e55bcbd37a1c735..9360ae05cf121be257962958d017a6be6303dbd0 100644 (file)
@@ -1,3 +1,9 @@
+2007-09-10  David Daney  <ddaney@avtrex.com>
+
+       * config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in
+       define_constants.
+       (memory_barrier): Rewrote as an insn that clobbers memory.
+
 2007-09-10  Richard Sandiford  <richard@codesourcery.com>
 
        * config/mips/mips.c (mips_global_pointer): Check
index 76dde25fc9c6776f806e1e501c53115194075530..42f9b1ea323903d12d0be52036ff890e92987116 100644 (file)
@@ -57,6 +57,7 @@
    (UNSPEC_SYNC_OLD_OP         38)
    (UNSPEC_SYNC_NEW_OP         39)
    (UNSPEC_SYNC_EXCHANGE       40)
+   (UNSPEC_MEMORY_BARRIER      41)
    
    (UNSPEC_ADDRESS_FIRST       100)
 
 
 ;; Atomic memory operations.
 
-(define_expand "memory_barrier"
-  [(unspec_volatile [(const_int 0)] UNSPEC_SYNC)]
+(define_insn "memory_barrier"
+  [(set (mem:BLK (scratch))
+        (unspec:BLK [(const_int 0)] UNSPEC_MEMORY_BARRIER))]
   "ISA_HAS_SYNC"
-  "")
+  "sync")
 
 (define_insn "sync_compare_and_swap<mode>"
   [(set (match_operand:GPR 0 "register_operand" "=&d,d")