summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Andrew Waterman <waterman@eecs.berkeley.edu>2012-03-24 12:59:44 -0700
committerGravatar Andrew Waterman <waterman@eecs.berkeley.edu>2012-03-24 12:59:44 -0700
commit59f027735429993530181993c7e8fd1af2e13a79 (patch)
treebc98e2da5f180a13918ece7718940183ca1ce95e
parentd4763b92ad009f6cdd769ba30b1af62215c277df (diff)
new supervisor mode
-rw-r--r--inst.v27
-rw-r--r--opcodes35
2 files changed, 30 insertions, 32 deletions
diff --git a/inst.v b/inst.v
index 0598a28..f60e785 100644
--- a/inst.v
+++ b/inst.v
@@ -95,22 +95,21 @@
`define MOVN 32'b?????_?????_?????_0000001101_1110111
`define FMOVZ 32'b?????_?????_?????_0000010101_1110111
`define FMOVN 32'b?????_?????_?????_0000011101_1110111
-`define EI 32'b?????_00000_00000_0000000000_1111011
-`define DI 32'b?????_00000_00000_0000000001_1111011
-`define MFPCR 32'b?????_00000_?????_0000000010_1111011
-`define MTPCR 32'b00000_?????_?????_0000000011_1111011
+`define CLEARPCR 32'b?????_?????_????????????_000_1111011
+`define SETPCR 32'b?????_?????_????????????_001_1111011
+`define MFPCR 32'b?????_?????_00000_0000000010_1111011
+`define MTPCR 32'b?????_?????_?????_0000000011_1111011
`define ERET 32'b00000_00000_00000_0000000100_1111011
`define CFLUSH 32'b00000_00000_00000_0000000101_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
-`define VXCPTHOLD 32'b00000_00000_00000_1100000010_1111011
-`define VENQCMD 32'b00000_?????_?????_1100000011_1111011
-`define VENQIMM1 32'b00000_?????_?????_1100000100_1111011
-`define VENQIMM2 32'b00000_?????_?????_1100000101_1111011
-`define VENQCNT 32'b00000_?????_?????_1100000110_1111011
+`define VXCPTSAVE 32'b00000_?????_00000_0000000110_1111011
+`define VXCPTRESTORE 32'b00000_?????_00000_0000001110_1111011
+`define VXCPTKILL 32'b00000_00000_00000_0000010110_1111011
+`define VXCPTEVAC 32'b00000_?????_00000_0001000110_1111011
+`define VXCPTHOLD 32'b00000_00000_00000_0001001110_1111011
+`define VENQCMD 32'b00000_?????_?????_0001010110_1111011
+`define VENQIMM1 32'b00000_?????_?????_0001011110_1111011
+`define VENQIMM2 32'b00000_?????_?????_0001100110_1111011
+`define VENQCNT 32'b00000_?????_?????_0001101110_1111011
`define FADD_S 32'b?????_?????_?????_00000_???_00_1010011
`define FSUB_S 32'b?????_?????_?????_00001_???_00_1010011
`define FMUL_S 32'b?????_?????_?????_00010_???_00_1010011
diff --git a/opcodes b/opcodes
index 8104f6f..320c7f1 100644
--- a/opcodes
+++ b/opcodes
@@ -123,24 +123,23 @@ movn rd rs1 rs2 16..10=1 9..7=5 6..2=0x1D 1..0=3
fmovz rd rs1 rs2 16..10=2 9..7=5 6..2=0x1D 1..0=3
fmovn rd rs1 rs2 16..10=3 9..7=5 6..2=0x1D 1..0=3
-ei rd 26..22=0 21..17=0 16..7=0 6..2=0x1E 1..0=3
-di rd 26..22=0 21..17=0 16..7=1 6..2=0x1E 1..0=3
-mfpcr rd 26..22=0 rs2 16..7=2 6..2=0x1E 1..0=3
-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 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
-vxcptwait 31..27=0 26..22=0 21..17=0 16..7=0x301 6..2=0x1E 1..0=3
-vxcpthold 31..27=0 26..22=0 21..17=0 16..7=0x302 6..2=0x1E 1..0=3
-venqcmd 31..27=0 rs1 rs2 16..7=0x303 6..2=0x1E 1..0=3
-venqimm1 31..27=0 rs1 rs2 16..7=0x304 6..2=0x1E 1..0=3
-venqimm2 31..27=0 rs1 rs2 16..7=0x305 6..2=0x1E 1..0=3
-venqcnt 31..27=0 rs1 rs2 16..7=0x306 6..2=0x1E 1..0=3
+clearpcr rd rs1 imm12 9..7=0 6..2=0x1E 1..0=3
+setpcr rd rs1 imm12 9..7=1 6..2=0x1E 1..0=3
+mfpcr rd rs1 21..17=0 16..10=0 9..7=2 6..2=0x1E 1..0=3
+mtpcr rd rs1 rs2 16..10=0 9..7=3 6..2=0x1E 1..0=3
+eret 31..27=0 26..22=0 21..17=0 16..10=0 9..7=4 6..2=0x1E 1..0=3
+cflush 31..27=0 26..22=0 21..17=0 16..10=0 9..7=5 6..2=0x1E 1..0=3
+
+vxcptsave 31..27=0 rs1 21..17=0 16..10=0x0 9..7=6 6..2=0x1E 1..0=3
+vxcptrestore 31..27=0 rs1 21..17=0 16..10=0x1 9..7=6 6..2=0x1E 1..0=3
+vxcptkill 31..27=0 26..22=0 21..17=0 16..10=0x2 9..7=6 6..2=0x1E 1..0=3
+
+vxcptevac 31..27=0 rs1 21..17=0 16..10=0x8 9..7=6 6..2=0x1E 1..0=3
+vxcpthold 31..27=0 26..22=0 21..17=0 16..10=0x9 9..7=6 6..2=0x1E 1..0=3
+venqcmd 31..27=0 rs1 rs2 16..10=0xA 9..7=6 6..2=0x1E 1..0=3
+venqimm1 31..27=0 rs1 rs2 16..10=0xB 9..7=6 6..2=0x1E 1..0=3
+venqimm2 31..27=0 rs1 rs2 16..10=0xC 9..7=6 6..2=0x1E 1..0=3
+venqcnt 31..27=0 rs1 rs2 16..10=0xD 9..7=6 6..2=0x1E 1..0=3
# 0x7C-0x7F are reserved for >32b instructions