summaryrefslogtreecommitdiff
path: root/mips/hgen/parser.hgen
blob: bf15ab1e67dbc42f30de38689a09b3f0e5489a65 (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
| RTYPE ARCH_REG COMMA ARCH_REG COMMA ARCH_REG
    { `MIPSRType ($1.op, $2, $4, $6) }
| ITYPE ARCH_REG COMMA ARCH_REG COMMA NUM
    { `MIPSIType ($1.op, $2, $4, $6) }
| SHIFTI ARCH_REG COMMA ARCH_REG COMMA NUM
    { `MIPSShiftI ($1.op, $2, $4, $6) }
| SHIFTV ARCH_REG COMMA ARCH_REG COMMA ARCH_REG
    { `MIPSShiftV ($1.op, $2, $4, $6) }
| MULDIV ARCH_REG COMMA ARCH_REG
    { `MIPSMulDiv ($1.op, $2, $4) }
| MFHILO ARCH_REG
    { `MIPSMFHiLo ($1.op, $2) }
| LUI ARCH_REG COMMA NUM
    { `MIPSLUI ($2, $4) }
| LOAD ARCH_REG COMMA NUM LPAR ARCH_REG RPAR
    { `MIPSLoad ($1.width, $1.signed, $1.linked, $6, $2, $4) }
| STORE ARCH_REG COMMA NUM LPAR ARCH_REG RPAR
    { `MIPSStore ($1.width, $1.conditional, $6, $2, $4) }
| LSLR  ARCH_REG COMMA NUM LPAR ARCH_REG RPAR
    { `MIPSLSLR ($1.store, $1.double, $1.left, $6, $2, $4) }
| SYNC
    { `MIPSSYNC }
| BEQ ARCH_REG COMMA ARCH_REG COMMA NUM
    { `MIPSBEQ ( $2, $4, $6, $1.ne, $1.likely) }
| BCMPZ ARCH_REG COMMA NUM
    { `MIPSBCMPZ ( $2, $4, $1.cmp, $1.link, $1.likely) }