2005-12-22 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Thu, 22 Dec 2005 20:18:18 +0000 (20:18 -0000)
committerZoltan Varga <vargaz@gmail.com>
Thu, 22 Dec 2005 20:18:18 +0000 (20:18 -0000)
* sparc/sparc-codegen.h (sparc_membar): Add membar instruction.

svn path=/trunk/mono/; revision=54750

mono/arch/ChangeLog
mono/arch/sparc/sparc-codegen.h

index 79fc9c3c259dfa78964bee968a322ef05a9e8fd7..5be42bb41a0e09ee34fcf28f2d53fc6160672481 100644 (file)
@@ -1,3 +1,7 @@
+2005-12-22  Zoltan Varga  <vargaz@gmail.com>
+
+       * sparc/sparc-codegen.h (sparc_membar): Add membar instruction.
+
 2005-10-30  Zoltan Varga  <vargaz@gmail.com>
 
        * ia64/ia64-codegen.h (ia64_m17): Fix a warning.
index 2e447a42a412fdc413b16c89922defa0dcb88b9d..38ccb42ffe132b2964c54b8d58d590aa37974317 100644 (file)
@@ -219,6 +219,19 @@ typedef enum {
        sparc_fcmpeq_val = 87
 } SparcFOp;
 
+typedef enum {
+       sparc_membar_load_load = 0x1,
+       sparc_membar_store_load = 0x2,
+       sparc_membar_load_store = 0x4,
+       sparc_membar_store_store = 0x8,
+   
+       sparc_membar_lookaside = 0x10,
+       sparc_membar_memissue = 0x20,
+       sparc_membar_sync = 0x40,
+
+    sparc_membar_all = 0x4f
+} SparcMembarFlags;
+
 typedef struct {
        unsigned int op   : 2; /* always 1 */
        unsigned int disp : 30;
@@ -649,6 +662,8 @@ typedef struct {
 
 #define sparc_flushw(ins) sparc_encode_format3a((ins),2,0,0,0,43,0)
 
+#define sparc_membar(ins,flags) sparc_encode_format3b ((ins), 2, 0xf, (flags), 0x28, 0)
+
 /* trap */
 
 #define sparc_ta(ins,tt) sparc_encode_format3b((ins),2,0,(tt),58,0x8)