summaryrefslogtreecommitdiff
path: root/risc-v/hgen/parser.hgen
diff options
context:
space:
mode:
authorRobert Norton2017-08-08 14:11:57 +0100
committerRobert Norton2017-08-08 14:12:25 +0100
commitad0d53e799c0a3dcb2548a42554d5dcae7de5a01 (patch)
treee442098ea9def6f9a097767dd05708837d870762 /risc-v/hgen/parser.hgen
parentbe571f711102cd6659257e5ee1de3b708ebee6ab (diff)
work on integrating risc-v model with rmem (incomplete).
Diffstat (limited to 'risc-v/hgen/parser.hgen')
-rw-r--r--risc-v/hgen/parser.hgen24
1 files changed, 24 insertions, 0 deletions
diff --git a/risc-v/hgen/parser.hgen b/risc-v/hgen/parser.hgen
new file mode 100644
index 00000000..ba4dcac7
--- /dev/null
+++ b/risc-v/hgen/parser.hgen
@@ -0,0 +1,24 @@
+| UTYPE reg COMMA NUM
+ { `RISCVUTYPE($4, $2, $1.o) }
+| JAL reg COMMA NUM
+ { `RISCVJAL($4, $2) }
+| JALR reg COMMA reg COMMA NUM
+ { `RISCVJALR($6, $4, $2) }
+| BTYPE reg COMMA reg COMMA NUM
+ { `RISCVBType($6, $4, $2, $1.op) }
+| ITYPE reg COMMA reg COMMA NUM
+ { `RISCVIType(o$6, $4, $2, $1.op) }
+| SHIFTIOP reg COMMA reg COMMA NUM
+ { `RISCVShiftIop($6, $4, $2, $1.op) }
+| RTYPE reg COMMA reg COMMA reg
+ { `RISCVRType ($6, $3, $2, $1.op) }
+| LOAD reg COMMA NUM LPAR reg RPAR
+ { `RISCVLoad($4, $6, $2, $1.unsigned, $1.width) }
+| STORE reg COMMA NUM LPAR reg RPAR
+ { `RISCVStore($4, $6, $2, $1.width) } (* reg order? *)
+| ADDIW reg COMMA reg COMMA NUM
+ { `RISCVADDIW ($6, $4, $2) }
+| SHIFTW reg COMMA reg COMMA NUM
+ { `RISCVSHIFTW ($6, $4, $2, $1.op) }
+| RTYPEW reg COMMA reg COMMA reg
+ { `RISCVRTYPEW ($6, $4, $2, $1.op) }