OP_C
const u32 insn = OPC_DIVU | OP_A(rd) | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_DIVS | OP_A(rd) | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_REMU | OP_A(rd) | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_REMS | OP_A(rd) | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_AND | OP_A(rd) | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_TST | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_TST | OP_B(rd) | OP_C(rs) | CC_equal;
const u32 insn = OPC_OR | OP_A(rd) | OP_B(rs1) | OP_C(rs2);
const u32 insn = OPC_XOR | OP_A(rd) | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_NOT | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_ASL | OP_A(rd) | OP_B(rs1) | OP_C(rs2);
const u32 insn = OPC_ASR | OP_A(rd) | OP_B(rs1) | OP_C(rs2);
const u32 insn = OPC_LSR | OP_A(rd) | OP_B(rs1) | OP_C(rs2);
const u32 insn = OPC_SWAPE | OP_B(r) | OP_C(r);
const u32 insn = OPC_JL | OP_C(reg);
#define OP_IMM (OP_C(ARC_R_IMM))
#define ADDI_U6(x) OP_C(x)
#define ADCI_U6(x) OP_C(x)
#define SUBI_U6(x) OP_C(x)
#define BTST_U6(x) (OP_C((x) & 63))
#define ASLI_U6(x) OP_C((x) & 31)
#define OPC_J_BLINK (OPC_JMP | OP_C(ARC_R_BLINK))
const u32 insn = OPC_MOV | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_MOV_CC | OP_B(rd) | OP_C(rs) | COND(cc);
const u32 insn = OPC_MOVU_CC | OP_B(rd) | OP_C(imm) | COND(cc);
const u32 insn = OPC_SEXB | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_SEXH | OP_B(rd) | OP_C(rs);
const u32 insn = OPC_STORE | STORE_ZZ(zz) | OP_C(reg) |
const u32 insn = OPC_PUSH | OP_C(reg);
const u32 insn = OPC_ADD | OP_A(ra) | OP_B(ra) | OP_C(rc);
const u32 insn = OPC_ADDF | OP_A(ra) | OP_B(ra) | OP_C(rc);
const u32 insn = OPC_ADC | OP_A(ra) | OP_B(ra) | OP_C(rc);
const u32 insn = OPC_SUB | OP_A(ra) | OP_B(ra) | OP_C(rc);
const u32 insn = OPC_SUBF | OP_A(ra) | OP_B(ra) | OP_C(rc);
const u32 insn = OPC_SBC | OP_A(ra) | OP_B(ra) | OP_C(rc);
const u32 insn = OPC_CMP | OP_B(rb) | OP_C(rc);
const u32 insn = OPC_CMP | OP_B(rb) | OP_C(rc) | CC_equal;
const u32 insn = OPC_MPY | OP_A(ra) | OP_B(rb) | OP_C(rc);
const u32 insn = OPC_MPYDU | OP_A(ra) | OP_B(ra) | OP_C(rc);