diff options
| author | Shaked Flur | 2017-12-04 14:47:38 +0000 |
|---|---|---|
| committer | Shaked Flur | 2017-12-04 14:47:38 +0000 |
| commit | 748318f8af7b82a01bb151f1bfcb466d0fc8291f (patch) | |
| tree | a09ad0e0517bb55cd0ce69bccb11c53c71086a5b /mips/gen/fold.hgen | |
| parent | 9e1309ab7c1a137324c88c272c5a76c4c8bce016 (diff) | |
renamed hgen to gen
Diffstat (limited to 'mips/gen/fold.hgen')
| -rw-r--r-- | mips/gen/fold.hgen | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/mips/gen/fold.hgen b/mips/gen/fold.hgen new file mode 100644 index 00000000..05b9c808 --- /dev/null +++ b/mips/gen/fold.hgen @@ -0,0 +1,19 @@ +| `MIPSThreadStart -> (y_reg, y_sreg) +| `MIPSRType (op, rd, rs, rt) -> fold_reg rt (fold_reg rs (fold_reg rd (y_reg, y_sreg))) +| `MIPSIType (op, rs, rt, imm) -> fold_reg rs (fold_reg rt (y_reg, y_sreg)) +| `MIPSShiftI (op, rd, rt, imm) -> fold_reg rt (fold_reg rd (y_reg, y_sreg)) +| `MIPSShiftV (op, rd, rt, rs) -> fold_reg rs (fold_reg rt (fold_reg rd (y_reg, y_sreg))) +| `MIPSMulDiv (op, rs, rt) -> fold_reg rs (fold_reg rt (y_reg, y_sreg)) +| `MIPSMFHiLo (op, rs) -> fold_reg rs (y_reg, y_sreg) +| `MIPSLUI (rt, imm) -> fold_reg rt (y_reg, y_sreg) +| `MIPSLoad (width, signed, linked, base, rt, offset) -> fold_reg rt (fold_reg base (y_reg, y_sreg)) +| `MIPSStore (width, conditional, base, rt, offset) -> fold_reg rt (fold_reg base (y_reg, y_sreg)) +| `MIPSLSLR (store, double, left, base, rt, offset) -> fold_reg rt (fold_reg base (y_reg, y_sreg)) +| `MIPSSYNC -> (y_reg, y_sreg) +| `MIPSBEQ (rs, rt, offset, ne, likely) -> fold_reg rs (fold_reg rt (y_reg, y_sreg)) +| `MIPSBCMPZ (rs, offset, cmp, link, likely) -> fold_reg rs (y_reg, y_sreg) +| `MIPSJ (offset) -> (y_reg, y_sreg) +| `MIPSJAL (offset) -> fold_reg (IReg(R31)) (y_reg, y_sreg) +| `MIPSJR (rd) -> fold_reg rd (y_reg, y_sreg) +| `MIPSJALR (rd, rs) -> fold_reg rd (fold_reg rs (y_reg, y_sreg)) + |
