summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Andrew Waterman <waterman@eecs.berkeley.edu>2012-03-18 20:44:00 -0700
committerGravatar Andrew Waterman <waterman@eecs.berkeley.edu>2012-03-18 20:44:00 -0700
commitd4763b92ad009f6cdd769ba30b1af62215c277df (patch)
tree511011635d401f005434f8acdfaecfd6395c20e1
parent63da785d33275b8c9476a781a67829f91cc34fc6 (diff)
change vector fence names/encoding
-rw-r--r--[-rwxr-xr-x]Makefile0
-rw-r--r--inst.v10
-rw-r--r--instr-table.tex22
-rw-r--r--opcodes12
4 files changed, 10 insertions, 34 deletions
diff --git a/Makefile b/Makefile
index 529cf38..529cf38 100755..100644
--- a/Makefile
+++ b/Makefile
diff --git a/inst.v b/inst.v
index 8745a53..0598a28 100644
--- a/inst.v
+++ b/inst.v
@@ -82,15 +82,13 @@
`define AMOMAXU_D 32'b?????_?????_?????_0000111011_0101011
`define FENCE_I 32'b?????_?????_????????????_001_0101111
`define FENCE 32'b?????_?????_????????????_010_0101111
+`define FENCE_V_L 32'b?????_?????_????????????_100_0101111
+`define FENCE_V_G 32'b?????_?????_????????????_101_0101111
`define SYSCALL 32'b00000_00000_00000_0000000000_1110111
`define BREAK 32'b00000_00000_00000_0000000001_1110111
`define RDCYCLE 32'b?????_00000_00000_0000000100_1110111
`define RDTIME 32'b?????_00000_00000_0000001100_1110111
`define RDINSTRET 32'b?????_00000_00000_0000010100_1110111
-`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 STOP 32'b00000_00000_00000_0000000010_1110111
`define UTIDX 32'b?????_00000_00000_0000000011_1110111
`define MOVZ 32'b?????_?????_?????_0000000101_1110111
@@ -103,8 +101,8 @@
`define MTPCR 32'b00000_?????_?????_0000000011_1111011
`define ERET 32'b00000_00000_00000_0000000100_1111011
`define CFLUSH 32'b00000_00000_00000_0000000101_1111011
-`define VXCPTSAVE 32'b00000_00000_00000_1000000000_1111011
-`define VXCPTRESTORE 32'b00000_00000_00000_1000000001_1111011
+`define VXCPTSAVE 32'b00000_?????_00000_1000000000_1111011
+`define VXCPTRESTORE 32'b00000_?????_00000_1000000001_1111011
`define VXCPTKILL 32'b00000_00000_00000_1000000010_1111011
`define VXCPTEVAC 32'b00000_?????_00000_1100000000_1111011
`define VXCPTWAIT 32'b00000_00000_00000_1100000001_1111011
diff --git a/instr-table.tex b/instr-table.tex
index d693294..69fff54 100644
--- a/instr-table.tex
+++ b/instr-table.tex
@@ -1962,7 +1962,7 @@
\multicolumn{1}{c|}{rs1} &
\multicolumn{5}{c|}{imm12} &
\multicolumn{2}{c|}{100} &
-\multicolumn{1}{c|}{0101111} & FENCE.L.V rd,rs1,imm12 \\
+\multicolumn{1}{c|}{0101111} & FENCE.V.L rd,rs1,imm12 \\
\cline{2-11}
@@ -1971,25 +1971,7 @@
\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 \\
+\multicolumn{1}{c|}{0101111} & FENCE.V.G rd,rs1,imm12 \\
\cline{2-11}
diff --git a/opcodes b/opcodes
index f79cff8..8104f6f 100644
--- a/opcodes
+++ b/opcodes
@@ -106,6 +106,8 @@ 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.v.l rd rs1 imm12 9..7=4 6..2=0x0B 1..0=3
+fence.v.g rd rs1 imm12 9..7=5 6..2=0x0B 1..0=3
syscall 31..27=0 26..22=0 21..17=0 16..10=0 9..7=0 6..2=0x1D 1..0=3
break 31..27=0 26..22=0 21..17=0 16..10=0 9..7=1 6..2=0x1D 1..0=3
@@ -113,12 +115,6 @@ rdcycle rd 26..22=0 21..17=0 16..10=0 9..7=4 6..2=0x1D 1..0=3
rdtime rd 26..22=0 21..17=0 16..10=1 9..7=4 6..2=0x1D 1..0=3
rdinstret rd 26..22=0 21..17=0 16..10=2 9..7=4 6..2=0x1D 1..0=3
-# vector fence instructions
-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
-
# vector scalar instructions
stop 31..27=0 26..22=0 21..17=0 16..10=0 9..7=2 6..2=0x1D 1..0=3
utidx rd 26..22=0 21..17=0 16..10=0 9..7=3 6..2=0x1D 1..0=3
@@ -134,8 +130,8 @@ mtpcr 31..27=0 rs1 rs2 16..7=3 6..2=0x1E 1..0=3
eret 31..27=0 26..22=0 21..17=0 16..7=4 6..2=0x1E 1..0=3
cflush 31..27=0 26..22=0 21..17=0 16..7=5 6..2=0x1E 1..0=3
-vxcptsave 31..27=0 26..22=0 21..17=0 16..7=0x200 6..2=0x1E 1..0=3
-vxcptrestore 31..27=0 26..22=0 21..17=0 16..7=0x201 6..2=0x1E 1..0=3
+vxcptsave 31..27=0 rs1 21..17=0 16..7=0x200 6..2=0x1E 1..0=3
+vxcptrestore 31..27=0 rs1 21..17=0 16..7=0x201 6..2=0x1E 1..0=3
vxcptkill 31..27=0 26..22=0 21..17=0 16..7=0x202 6..2=0x1E 1..0=3
vxcptevac 31..27=0 rs1 21..17=0 16..7=0x300 6..2=0x1E 1..0=3