summaryrefslogtreecommitdiff
path: root/mips/gen/parser.hgen
diff options
context:
space:
mode:
authorShaked Flur2017-12-04 14:47:38 +0000
committerShaked Flur2017-12-04 14:47:38 +0000
commit748318f8af7b82a01bb151f1bfcb466d0fc8291f (patch)
treea09ad0e0517bb55cd0ce69bccb11c53c71086a5b /mips/gen/parser.hgen
parent9e1309ab7c1a137324c88c272c5a76c4c8bce016 (diff)
renamed hgen to gen
Diffstat (limited to 'mips/gen/parser.hgen')
-rw-r--r--mips/gen/parser.hgen34
1 files changed, 34 insertions, 0 deletions
diff --git a/mips/gen/parser.hgen b/mips/gen/parser.hgen
new file mode 100644
index 00000000..8f573aa5
--- /dev/null
+++ b/mips/gen/parser.hgen
@@ -0,0 +1,34 @@
+| RTYPE reg COMMA reg COMMA reg
+ { `MIPSRType ($1.op, $2, $4, $6) }
+| ITYPE reg COMMA reg COMMA NUM
+ { `MIPSIType ($1.op, $2, $4, $6) }
+| SHIFTI reg COMMA reg COMMA NUM
+ { `MIPSShiftI ($1.op, $2, $4, $6) }
+| SHIFTV reg COMMA reg COMMA reg
+ { `MIPSShiftV ($1.op, $2, $4, $6) }
+| MULDIV reg COMMA reg
+ { `MIPSMulDiv ($1.op, $2, $4) }
+| MFHILO reg
+ { `MIPSMFHiLo ($1.op, $2) }
+| LUI reg COMMA NUM
+ { `MIPSLUI ($2, $4) }
+| LOAD reg COMMA NUM LPAR reg RPAR
+ { `MIPSLoad ($1.width, $1.signed, $1.linked, $6, $2, $4) }
+| STORE reg COMMA NUM LPAR reg RPAR
+ { `MIPSStore ($1.width, $1.conditional, $6, $2, $4) }
+| LSLR reg COMMA NUM LPAR reg RPAR
+ { `MIPSLSLR ($1.store, $1.double, $1.left, $6, $2, $4) }
+| SYNC
+ { `MIPSSYNC }
+| BEQ reg COMMA reg COMMA NUM
+ { `MIPSBEQ ( $2, $4, $6, $1.ne, $1.likely) }
+| BCMPZ reg COMMA NUM
+ { `MIPSBCMPZ ( $2, $4, $1.cmp, $1.link, $1.likely) }
+| J NUM
+ { `MIPSJ ($2) }
+| JAL NUM
+ { `MIPSJAL ($2) }
+| JR reg
+ { `MIPSJR ($2) }
+| JALR reg COMMA reg
+ { `MIPSJALR ($2, $4) }