aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYunsup Lee <yunsup@cs.berkeley.edu>2011-04-03 23:54:56 -0700
committerYunsup Lee <yunsup@cs.berkeley.edu>2011-04-04 02:10:13 -0700
commit5f1c52e53e863b9a295b60d9eb3bc35a8a9b6d59 (patch)
tree73c1c74c9cc367bcf8a0d22a7cff535dc700a9f8
parent474d9bb318bee21ac52e23a53cd4ec4f7a18f965 (diff)
downloadriscv-opcodes-5f1c52e53e863b9a295b60d9eb3bc35a8a9b6d59.zip
riscv-opcodes-5f1c52e53e863b9a295b60d9eb3bc35a8a9b6d59.tar.gz
riscv-opcodes-5f1c52e53e863b9a295b60d9eb3bc35a8a9b6d59.tar.bz2
[opcodes,pk,sim,xcc] add fence instructions for vector unit
-rw-r--r--inst.v4
-rw-r--r--instr-table.tex36
-rw-r--r--opcodes8
3 files changed, 46 insertions, 2 deletions
diff --git a/inst.v b/inst.v
index f40fcec..de1cd33 100644
--- a/inst.v
+++ b/inst.v
@@ -82,6 +82,10 @@
`define AMOMAXU_D 32'b?????_?????_?????_0000111011_0101011
`define FENCE_I 32'b?????_?????_????????????_001_0101111
`define FENCE 32'b?????_?????_????????????_010_0101111
+`define FENCE_L_V 32'b?????_?????_????????????_100_0101111
+`define FENCE_G_V 32'b?????_?????_????????????_101_0101111
+`define FENCE_L_CV 32'b?????_?????_????????????_110_0101111
+`define FENCE_G_CV 32'b?????_?????_????????????_111_0101111
`define SYSCALL 32'b00000_00000_00000_0000000000_1110111
`define BREAK 32'b00000_00000_00000_0000000001_1110111
`define EI 32'b?????_00000_00000_0000000000_1111011
diff --git a/instr-table.tex b/instr-table.tex
index eb756b4..2ce8687 100644
--- a/instr-table.tex
+++ b/instr-table.tex
@@ -1958,6 +1958,42 @@
&
+\multicolumn{1}{|c|}{rd} &
+\multicolumn{1}{c|}{rs1} &
+\multicolumn{5}{c|}{imm12} &
+\multicolumn{2}{c|}{100} &
+\multicolumn{1}{c|}{0101111} & FENCE.L.V rd,rs1,imm12 \\
+\cline{2-11}
+
+
+&
+\multicolumn{1}{|c|}{rd} &
+\multicolumn{1}{c|}{rs1} &
+\multicolumn{5}{c|}{imm12} &
+\multicolumn{2}{c|}{101} &
+\multicolumn{1}{c|}{0101111} & FENCE.G.V rd,rs1,imm12 \\
+\cline{2-11}
+
+
+&
+\multicolumn{1}{|c|}{rd} &
+\multicolumn{1}{c|}{rs1} &
+\multicolumn{5}{c|}{imm12} &
+\multicolumn{2}{c|}{110} &
+\multicolumn{1}{c|}{0101111} & FENCE.L.CV rd,rs1,imm12 \\
+\cline{2-11}
+
+
+&
+\multicolumn{1}{|c|}{rd} &
+\multicolumn{1}{c|}{rs1} &
+\multicolumn{5}{c|}{imm12} &
+\multicolumn{2}{c|}{111} &
+\multicolumn{1}{c|}{0101111} & FENCE.G.CV rd,rs1,imm12 \\
+\cline{2-11}
+
+
+&
\multicolumn{10}{c}{} & \\
&
\multicolumn{10}{c}{\bf System Instructions} & \\
diff --git a/opcodes b/opcodes
index eff7bf5..0097df0 100644
--- a/opcodes
+++ b/opcodes
@@ -106,8 +106,12 @@ amomax.d rd rs1 rs2 16..10=5 9..7=3 6..2=0x0A 1..0=3
amominu.d rd rs1 rs2 16..10=6 9..7=3 6..2=0x0A 1..0=3
amomaxu.d rd rs1 rs2 16..10=7 9..7=3 6..2=0x0A 1..0=3
-fence.i rd rs1 imm12 9..7=1 6..2=0x0B 1..0=3
-fence rd rs1 imm12 9..7=2 6..2=0x0B 1..0=3
+fence.i rd rs1 imm12 9..7=1 6..2=0x0B 1..0=3
+fence rd rs1 imm12 9..7=2 6..2=0x0B 1..0=3
+fence.l.v rd rs1 imm12 9..7=4 6..2=0x0B 1..0=3
+fence.g.v rd rs1 imm12 9..7=5 6..2=0x0B 1..0=3
+fence.l.cv rd rs1 imm12 9..7=6 6..2=0x0B 1..0=3
+fence.g.cv rd rs1 imm12 9..7=7 6..2=0x0B 1..0=3
syscall 31..27=0 26..22=0 21..17=0 16..7=0 6..2=0x1D 1..0=3
break 31..27=0 26..22=0 21..17=0 16..7=1 6..2=0x1D 1..0=3