summaryrefslogtreecommitdiff
path: root/riscv/riscv.sail
diff options
context:
space:
mode:
Diffstat (limited to 'riscv/riscv.sail')
-rw-r--r--riscv/riscv.sail74
1 files changed, 37 insertions, 37 deletions
diff --git a/riscv/riscv.sail b/riscv/riscv.sail
index 004621c7..21c6fd64 100644
--- a/riscv/riscv.sail
+++ b/riscv/riscv.sail
@@ -353,40 +353,40 @@ function clause execute (FENCE(pred, succ)) = {
}
/* ****************************************************************** */
-union clause ast = FENCEI
+union clause ast = FENCEI : unit
-function clause decode 0b000000000000 @ 0b00000 @ 0b001 @ 0b00000 @ 0b0001111 = Some(FENCEI)
+function clause decode 0b000000000000 @ 0b00000 @ 0b001 @ 0b00000 @ 0b0001111 = Some(FENCEI())
-function clause execute FENCEI = MEM_fence_i()
+function clause execute FENCEI() = MEM_fence_i()
/* ****************************************************************** */
-union clause ast = ECALL
+union clause ast = ECALL : unit
-function clause decode 0b000000000000 @ 0b00000 @ 0b000 @ 0b00000 @ 0b1110011 = Some(ECALL)
+function clause decode 0b000000000000 @ 0b00000 @ 0b000 @ 0b00000 @ 0b1110011 = Some(ECALL())
-function clause execute ECALL =
+function clause execute ECALL() =
let t : sync_exception =
struct { trap = match (cur_privilege) {
USER => User_ECall,
MACHINE => Machine_ECall
},
- excinfo = (None : option(xlenbits)) } in
+ excinfo = (None() : option(xlenbits)) } in
nextPC = handle_exception_ctl(cur_privilege, CTL_TRAP(t), PC)
/* ****************************************************************** */
-union clause ast = MRET
+union clause ast = MRET : unit
-function clause decode 0b0011000 @ 0b00010 @ 0b00000 @ 0b000 @ 0b00000 @ 0b1110011 = Some(MRET)
+function clause decode 0b0011000 @ 0b00010 @ 0b00000 @ 0b000 @ 0b00000 @ 0b1110011 = Some(MRET())
-function clause execute MRET =
- nextPC = handle_exception_ctl(cur_privilege, CTL_MRET, PC)
+function clause execute MRET() =
+ nextPC = handle_exception_ctl(cur_privilege, CTL_MRET(), PC)
/* ****************************************************************** */
-union clause ast = EBREAK
+union clause ast = EBREAK : unit
-function clause decode 0b000000000001 @ 0b00000 @ 0b000 @ 0b00000 @ 0b1110011 = Some(EBREAK)
+function clause decode 0b000000000001 @ 0b00000 @ 0b000 @ 0b00000 @ 0b1110011 = Some(EBREAK())
-function clause execute EBREAK = { throw(Error_EBREAK) }
+function clause execute EBREAK() = { throw Error_EBREAK() }
/* ****************************************************************** */
union clause ast = LOADRES : (bool, bool, regbits, word_width, regbits)
@@ -591,22 +591,22 @@ function clause execute CSR(csr, rs1, rd, is_imm, op) =
/* ****************************************************************** */
-union clause ast = NOP
+union clause ast = NOP : unit
function clause decodeCompressed (0b000 @ nzi1 : bits(1) @ 0b00000 @ (nzi0 : bits(5)) @ 0b01) : bits(16) = {
- if (nzi1 == 0b0) & (nzi0 == 0b00000) then Some(NOP)
- else None
+ if (nzi1 == 0b0) & (nzi0 == 0b00000) then Some(NOP())
+ else None()
}
-function clause execute (NOP) = ()
+function clause execute NOP() = ()
/* ****************************************************************** */
-union clause ast = ILLEGAL
+union clause ast = ILLEGAL : unit
-function clause decodeCompressed (0b0000 @ 0b00000 @ 0b00000 @ 0b00) : bits(16) = Some(ILLEGAL)
+function clause decodeCompressed (0b0000 @ 0b00000 @ 0b00000 @ 0b00) : bits(16) = Some(ILLEGAL())
-function clause execute (ILLEGAL) = {
+function clause execute ILLEGAL() = {
let t : sync_exception =
struct { trap = Illegal_Instr,
excinfo = Some (EXTZ(0b0)) } in
@@ -619,7 +619,7 @@ union clause ast = C_ADDI4SPN : (cregbits, bits(8))
function clause decodeCompressed (0b000 @ nz54 : bits(2) @ nz96 : bits(4) @ nz2 : bits(1) @ nz3 : bits(1) @ rd : cregbits @ 0b00) : bits(16) = {
let nzimm = (nz96 @ nz54 @ nz3 @ nz2) : bits(8) in
- if nzimm == 0b00000000 then None
+ if nzimm == 0b00000000 then None()
else Some(C_ADDI4SPN(rd, nzimm))
}
@@ -699,7 +699,7 @@ union clause ast = C_ADDI : (bits(6), regbits)
function clause decodeCompressed (0b000 @ nzi5 : bits(1) @ rsd : regbits @ nzi40 : bits(5) @ 0b01) : bits(16) = {
let nzi = (nzi5 @ nzi40) : bits(6) in
- if (nzi == 0b000000) | (rsd == zreg) then None
+ if (nzi == 0b000000) | (rsd == zreg) then None()
else Some(C_ADDI(nzi, rsd))
}
@@ -735,7 +735,7 @@ function clause execute (C_ADDIW(imm, rsd)) = {
union clause ast = C_LI : (bits(6), regbits)
function clause decodeCompressed (0b010 @ imm5 : bits(1) @ rd : regbits @ imm40 : bits(5) @ 0b01) = {
- if (rd == zreg) then None
+ if (rd == zreg) then None()
else Some(C_LI(imm5 @ imm40, rd))
}
@@ -750,7 +750,7 @@ union clause ast = C_ADDI16SP : (bits(6))
function clause decodeCompressed (0b011 @ nzi9 : bits(1) @ /* x2 */ 0b00010 @ nzi4 : bits(1) @ nzi6 : bits(1) @ nzi87 : bits(2) @ nzi5 : bits(1) @ 0b01) = {
let nzimm = nzi9 @ nzi87 @ nzi6 @ nzi5 @ nzi4 in
- if (nzimm == 0b000000) then None
+ if (nzimm == 0b000000) then None()
else Some(C_ADDI16SP(nzimm))
}
@@ -764,7 +764,7 @@ function clause execute (C_ADDI16SP(imm)) = {
union clause ast = C_LUI : (bits(6), regbits)
function clause decodeCompressed (0b011 @ imm17 : bits(1) @ rd : regbits @ imm1612 : bits(5) @ 0b01) = {
- if (rd == zreg) | (rd == sp) then None
+ if (rd == zreg) | (rd == sp) then None()
else Some(C_LUI(imm17 @ imm1612, rd))
}
@@ -780,7 +780,7 @@ union clause ast = C_SRLI : (bits(6), cregbits)
function clause decodeCompressed (0b100 @ nzui5 : bits(1) @ 0b00 @ rsd : cregbits @ nzui40 : bits(5) @ 0b01) = {
let shamt : bits(6) = nzui5 @ nzui40 in
if shamt == 0b000000 /* TODO: On RV32, also need shamt[5] == 0 */
- then None
+ then None()
else Some(C_SRLI(shamt, rsd))
}
@@ -796,7 +796,7 @@ union clause ast = C_SRAI : (bits(6), cregbits)
function clause decodeCompressed (0b100 @ nzui5 : bits(1) @ 0b01 @ rsd : cregbits @ nzui40 : bits(5) @ 0b01) = {
let shamt : bits(6) = nzui5 @ nzui40 in
if shamt == 0b000000 /* TODO: On RV32, also need shamt[5] == 0 */
- then None
+ then None()
else Some(C_SRAI(shamt, rsd))
}
@@ -927,7 +927,7 @@ union clause ast = C_SLLI : (bits(6), regbits)
function clause decodeCompressed (0b000 @ nzui5 : bits(1) @ rsd : regbits @ nzui40 : bits(5) @ 0b10) = {
let shamt : bits(6) = nzui5 @ nzui40 in
if shamt == 0b000000 | rsd == zreg /* TODO: On RV32, also need shamt[5] == 0 */
- then None
+ then None()
else Some(C_SLLI(shamt, rsd))
}
@@ -941,7 +941,7 @@ union clause ast = C_LWSP : (bits(6), regbits)
function clause decodeCompressed (0b010 @ ui5 : bits(1) @ rd : regbits @ ui42 : bits(3) @ ui76 : bits(2) @ 0b10) = {
let uimm : bits(6) = ui76 @ ui5 @ ui42 in
if rd == zreg
- then None
+ then None()
else Some(C_LWSP(uimm, rd))
}
@@ -957,7 +957,7 @@ union clause ast = C_LDSP : (bits(6), regbits)
function clause decodeCompressed (0b011 @ ui5 : bits(1) @ rd : regbits @ ui43 : bits(2) @ ui86 : bits(3) @ 0b10) = {
let uimm : bits(6) = ui86 @ ui5 @ ui43 in
if rd == zreg
- then None
+ then None()
else Some(C_LDSP(uimm, rd))
}
@@ -1000,7 +1000,7 @@ union clause ast = C_JR : (regbits)
function clause decodeCompressed (0b100 @ 0b0 @ rs1 : regbits @ 0b00000 @ 0b10) = {
if rs1 == zreg
- then None
+ then None()
else Some(C_JR(rs1))
}
@@ -1013,7 +1013,7 @@ union clause ast = C_JALR : (regbits)
function clause decodeCompressed (0b100 @ 0b1 @ rs1 : regbits @ 0b00000 @ 0b10) = {
if rs1 == zreg
- then None
+ then None()
else Some(C_JALR(rs1))
}
@@ -1026,7 +1026,7 @@ union clause ast = C_MV : (regbits, regbits)
function clause decodeCompressed (0b100 @ 0b0 @ rd : regbits @ rs2 : regbits @ 0b10) = {
if rs2 == zreg | rd == zreg
- then None
+ then None()
else Some(C_MV(rd, rs2))
}
@@ -1039,7 +1039,7 @@ union clause ast = C_ADD : (regbits, regbits)
function clause decodeCompressed (0b100 @ 0b1 @ rsd : regbits @ rs2 : regbits @ 0b10) = {
if rsd == zreg | rs2 == zreg
- then None
+ then None()
else Some(C_ADD(rsd, rs2))
}
@@ -1048,8 +1048,8 @@ function clause execute (C_ADD(rsd, rs2)) =
/* ****************************************************************** */
-function clause decode _ = None
-function clause decodeCompressed _ = None
+function clause decode _ = None()
+function clause decodeCompressed _ = None()
end ast
end decode