summaryrefslogtreecommitdiff
path: root/risc-v/hgen/trans_sail.hgen
diff options
context:
space:
mode:
Diffstat (limited to 'risc-v/hgen/trans_sail.hgen')
-rw-r--r--risc-v/hgen/trans_sail.hgen45
1 files changed, 43 insertions, 2 deletions
diff --git a/risc-v/hgen/trans_sail.hgen b/risc-v/hgen/trans_sail.hgen
index df22d9dc..8b7cbe11 100644
--- a/risc-v/hgen/trans_sail.hgen
+++ b/risc-v/hgen/trans_sail.hgen
@@ -58,7 +58,7 @@
translate_rop "op" op;
],
[])
-| `RISCVLoad(imm, rs, rd, unsigned, width) ->
+| `RISCVLoad(imm, rs, rd, unsigned, width, aq, rl) ->
("LOAD",
[
translate_imm12 "imm" imm;
@@ -66,15 +66,19 @@
translate_reg "rd" rd;
translate_bool "unsigned" unsigned;
translate_width "width" width;
+ translate_bool "aq" aq;
+ translate_bool "rl" rl;
],
[])
-| `RISCVStore(imm, rs2, rs1, width) ->
+| `RISCVStore(imm, rs2, rs1, width, aq, rl) ->
("STORE",
[
translate_imm12 "imm" imm;
translate_reg "rs2" rs2;
translate_reg "rs1" rs1;
translate_width "width" width;
+ translate_bool "aq" aq;
+ translate_bool "rl" rl;
],
[])
| `RISCVADDIW(imm, rs, rd) ->
@@ -110,3 +114,40 @@
translate_imm4 "succ" succ;
],
[])
+| `RISCVFENCEI ->
+ ("FENCEI",
+ [],
+ [])
+| `RISCVLoadRes(aq, rl, rs1, width, rd) ->
+ ("LOADRES",
+ [
+ translate_bool "aq" aq;
+ translate_bool "rl" rl;
+ translate_reg "rs1" rs1;
+ translate_width "width" width;
+ translate_reg "rd" rd;
+ ],
+ [])
+| `RISCVStoreCon(aq, rl, rs2, rs1, width, rd) ->
+ ("STORECON",
+ [
+ translate_bool "aq" aq;
+ translate_bool "rl" rl;
+ translate_reg "rs2" rs2;
+ translate_reg "rs1" rs1;
+ translate_width "width" width;
+ translate_reg "rd" rd;
+ ],
+ [])
+| `RISCVAMO(op, aq, rl, rs2, rs1, width, rd) ->
+ ("AMO",
+ [
+ translate_amoop "op" op;
+ translate_bool "aq" aq;
+ translate_bool "rl" rl;
+ translate_reg "rs2" rs2;
+ translate_reg "rs1" rs1;
+ translate_width "width" width;
+ translate_reg "rd" rd;
+ ],
+ [])