summaryrefslogtreecommitdiff
path: root/mips/hgen/parser.hgen
blob: 8f573aa50f646d77e0d6e46cb837bcf0a989535b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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) }