| 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) } | J NUM { `MIPSJ ($2) } | JAL NUM { `MIPSJAL ($2) } | JR ARCH_REG { `MIPSJR ($2) } | JALR ARCH_REG COMMA ARCH_REG { `MIPSJALR ($2, $4) }