aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/testsuite/gas/riscv/fence-tso.d11
-rw-r--r--gas/testsuite/gas/riscv/fence-tso.s2
-rw-r--r--include/ChangeLog5
-rw-r--r--include/opcode/riscv-opc.h2
-rw-r--r--opcodes/ChangeLog4
-rw-r--r--opcodes/riscv-opc.c1
7 files changed, 30 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 069f9cb..d6a4380 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2018-10-02 Palmer Dabbelt <palmer@sifive.com>
+
+ * testsuite/gas/riscv/fence-tso.d: New file.
+ * testsuite/gas/riscv/fence-tso.s: Likewise.
+
2018-09-26 Sandra Loosemore <sandra@codesourcery.com>
* testsuite/gas/all/gas.exp: Skip "Output file must be distinct
diff --git a/gas/testsuite/gas/riscv/fence-tso.d b/gas/testsuite/gas/riscv/fence-tso.d
new file mode 100644
index 0000000..ef8a4cd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/fence-tso.d
@@ -0,0 +1,11 @@
+#as: -march=rv32ic
+#objdump: -dr
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+[ ]+0:[ ]+8330000f[ ]+fence.tso
+
diff --git a/gas/testsuite/gas/riscv/fence-tso.s b/gas/testsuite/gas/riscv/fence-tso.s
new file mode 100644
index 0000000..7770052
--- /dev/null
+++ b/gas/testsuite/gas/riscv/fence-tso.s
@@ -0,0 +1,2 @@
+target:
+ fence.tso
diff --git a/include/ChangeLog b/include/ChangeLog
index d0e0d72..98d4241 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2018-10-02 Palmer Dabbelt <palmer@sifive.com>
+
+ * opcode/riscv-opc.h (MATCH_FENCE_TSO): New define.
+ (MASK_FENCE_TSO): Likewise.
+
2018-10-01 Cupertino Miranda <cmiranda@synopsys.com>
* arc-reloc.def (ARC_TLS_LE_32): Updated reloc formula.
diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
index 60bd2f9..f09200c 100644
--- a/include/opcode/riscv-opc.h
+++ b/include/opcode/riscv-opc.h
@@ -141,6 +141,8 @@
#define MASK_FENCE 0x707f
#define MATCH_FENCE_I 0x100f
#define MASK_FENCE_I 0x707f
+#define MATCH_FENCE_TSO 0x8330000f
+#define MASK_FENCE_TSO 0xfff0707f
#define MATCH_MUL 0x2000033
#define MASK_MUL 0xfe00707f
#define MATCH_MULH 0x2001033
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 9b68285..54baef0 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2018-10-02 Palmer Dabbelt <palmer@sifive.com>
+
+ * riscv-opc.c (riscv_opcodes) <fence.tso>: New opcode.
+
2018-09-23 Sandra Loosemore <sandra@codesourcery.com>
* nios2-dis.c (nios2_print_insn_arg): Make sure signed conversions
diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c
index e0f7118..b6843f2 100644
--- a/opcodes/riscv-opc.c
+++ b/opcodes/riscv-opc.c
@@ -342,6 +342,7 @@ const struct riscv_opcode riscv_opcodes[] =
{"fence", 0, {"I", 0}, "", MATCH_FENCE | MASK_PRED | MASK_SUCC, MASK_FENCE | MASK_RD | MASK_RS1 | MASK_IMM, match_opcode, INSN_ALIAS },
{"fence", 0, {"I", 0}, "P,Q", MATCH_FENCE, MASK_FENCE | MASK_RD | MASK_RS1 | (MASK_IMM & ~MASK_PRED & ~MASK_SUCC), match_opcode, 0 },
{"fence.i", 0, {"I", 0}, "", MATCH_FENCE_I, MASK_FENCE | MASK_RD | MASK_RS1 | MASK_IMM, match_opcode, 0 },
+{"fence.tso", 0, {"I", 0}, "", MATCH_FENCE_TSO, MASK_FENCE_TSO | MASK_RD | MASK_RS1, match_opcode, INSN_ALIAS },
{"rdcycle", 0, {"I", 0}, "d", MATCH_RDCYCLE, MASK_RDCYCLE, match_opcode, INSN_ALIAS },
{"rdinstret", 0, {"I", 0}, "d", MATCH_RDINSTRET, MASK_RDINSTRET, match_opcode, INSN_ALIAS },
{"rdtime", 0, {"I", 0}, "d", MATCH_RDTIME, MASK_RDTIME, match_opcode, INSN_ALIAS },