From 59f027735429993530181993c7e8fd1af2e13a79 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Sat, 24 Mar 2012 12:59:44 -0700 Subject: new supervisor mode --- inst.v | 27 +++++++++++++-------------- opcodes | 35 +++++++++++++++++------------------ 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 -- cgit v1.2.3