diff options
author | Bilal Sakhawat <63648044+bilalsakhawat-10xe@users.noreply.github.com> | 2022-01-20 00:14:23 +0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-19 19:14:23 +0000 |
commit | 56125e6fe6fbceacda0134da3e699a601986abc5 (patch) | |
tree | 7bfdbf7422d6d6cd363175b477eaca02153dcf99 | |
parent | b2d56b70adf2f62f2fc9ed9f6e49493e22903aaa (diff) | |
download | sail-riscv-56125e6fe6fbceacda0134da3e699a601986abc5.zip sail-riscv-56125e6fe6fbceacda0134da3e699a601986abc5.tar.gz sail-riscv-56125e6fe6fbceacda0134da3e699a601986abc5.tar.bz2 |
Add support for Zmmul (#122)
-rw-r--r-- | model/riscv_insts_mext.sail | 4 | ||||
-rw-r--r-- | model/riscv_sys_regs.sail | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/model/riscv_insts_mext.sail b/model/riscv_insts_mext.sail index 6ab6ed2..c6bb91f 100644 --- a/model/riscv_insts_mext.sail +++ b/model/riscv_insts_mext.sail @@ -85,7 +85,7 @@ mapping clause encdec = MUL(rs2, rs1, rd, high, signed1, signed2) <-> 0b0000001 @ rs2 @ rs1 @ encdec_mul_op(high, signed1, signed2) : bits(3) @ rd @ 0b0110011 function clause execute (MUL(rs2, rs1, rd, high, signed1, signed2)) = { - if haveMulDiv() then { + if haveMulDiv() | haveZmmul() then { let rs1_val = X(rs1); let rs2_val = X(rs2); let rs1_int : int = if signed1 then signed(rs1_val) else unsigned(rs1_val); @@ -177,7 +177,7 @@ mapping clause encdec = MULW(rs2, rs1, rd) if sizeof(xlen) == 64 function clause execute (MULW(rs2, rs1, rd)) = { - if haveMulDiv() then { + if haveMulDiv() | haveZmmul() then { let rs1_val = X(rs1)[31..0]; let rs2_val = X(rs2)[31..0]; let rs1_int : int = signed(rs1_val); diff --git a/model/riscv_sys_regs.sail b/model/riscv_sys_regs.sail index 98e5019..91e70c0 100644 --- a/model/riscv_sys_regs.sail +++ b/model/riscv_sys_regs.sail @@ -198,6 +198,8 @@ function haveZknh() -> bool = true function haveZkne() -> bool = true function haveZknd() -> bool = true +function haveZmmul() -> bool = true + bitfield Mstatush : bits(32) = { MBE : 5, SBE : 4 |