RS2
__RD(0), RS1(vaddr), RS2(asid))
__RD(0), RS1(gaddr), RS2(vmid))
__RD(0), RS1(addr), RS2(src))
__RD(0), RS1(addr), RS2(src))
__RD(0), RS1(addr), RS2(src))
__RD(0), RS1(addr), RS2(src))
__RD(0), RS1(addr), RS2(src))
__RD(0), RS1(addr), RS2(src))
__RD(0), RS1(addr), RS2(src))
__RD(0), RS1(addr), RS2(src))
__RD(0), RS1(vaddr), RS2(asid))
__RD(0), RS1(vaddr), RS2(asid))
__RD(0), RS1(gaddr), RS2(vmid))
.word (F3F(2,0x36,0x147)|RS1(a)|RS2(b)|RD(c));
.word (F3F(2, 0x19, 0)|RS1(a)|RS2(b)|RS3(c)|RD(d));
.word (F3F(2, 0x19, 1)|RS1(a)|RS2(b)|RS3(c)|RD(d));
.word (F3F(2, 0x19, 2)|RS1(a)|RS2(b)|RS3(c)|RD(d));
.word (F3F(2, 0x19, 3)|RS1(a)|RS2(b)|RS3(c)|RD(d));
.word (F3F(2, 0x19, 4)|RS1(a)|RS2(b)|RS3(c)|RD(d));
.word (F3F(2, 0x19, 5)|RS1(a)|RS2(b)|RS3(c)|RD(d));
.word (F3F(2, 0x19, 6)|RS1(a)|RS2(b)|RS3(c)|RD(d));
.word (F3F(2, 0x19, 7)|RS1(a)|RS2(b)|RS3(c)|RD(d));
.word (F3F(2, 0x19, 8)|RS1(a)|RS2(b)|IMM5_9(c)|RD(d));
.word (F3F(2, 0x36, 0x130)|RS1(a)|RS2(b)|RD(c));
.word (F3F(2, 0x36, 0x131)|RS1(a)|RS2(b)|RD(c));
.word (F3F(2, 0x19, 0x009)|RS1(a)|RS2(b)|RS3(c)|RD(d));
.word (F3F(2, 0x19, 0x00c)|RS1(a)|RS2(b)|RS3(c)|RD(d));
.word (F3F(2, 0x36, 0x13c)|RS1(a)|RS2(b)|RD(c));
.word (F3F(2, 0x36, 0x13d)|RS1(a)|RS2(b)|RD(c));
maybe_flush_windows(RS1(insn), RS2(insn), RD(insn), 0);
orig_rs2 = rs2 = fetch_reg(RS2(insn), regs);
maybe_flush_windows(RS1(insn), RS2(insn), RD(insn), 0);
rs2 = fetch_reg(RS2(insn), regs);
maybe_flush_windows(RS1(insn), RS2(insn), RD(insn), 0);
rs2 = fetch_reg(RS2(insn), regs);
rs2 = fpd_regval(f, RS2(insn));
rs2 = fpd_regval(f, RS2(insn));
rs2 = fpd_regval(f, RS2(insn));
rs2 = fpd_regval(f, RS2(insn));
rs2 = fpd_regval(f, RS2(insn));
rs2 = fps_regval(f, RS2(insn));
rs2 = fps_regval(f, RS2(insn));
rs2 = fpd_regval(f, RS2(insn));
rs2 = fps_regval(f, RS2(insn));
rs2 = fpd_regval(f, RS2(insn));
rs2 = fps_regval(f, RS2(insn));
rs2 = fpd_regval(f, RS2(insn));
*prog++ = SUB | RS1(G0) | RS2(r_A) | RD(r_A); \
*prog++ = OR | RS1(G0) | RS2(FROM) | RD(TO); \
*prog++ = OR | RS1(G0) | RS2(G0) | RD(REG); \
*prog++ = OPCODE | RS1(r_A) | RS2(r_X) | RD(r_A); \
*prog++ = _insn | RS2(r_TMP); \
*prog++ = (SUBCC | RS1(R1) | RS2(R2) | RD(G0))
*prog++ = (ANDCC | RS1(R1) | RS2(R2) | RD(G0))
*prog++ = (SUB | RS1(R1) | RS2(R2) | RD(R3))
*prog++ = (ADD | RS1(R1) | RS2(R2) | RD(R3))
*prog++ = (AND | RS1(R1) | RS2(R2) | RD(R3))
emit(ST64 | RS1(tmp) | RS2(G0) | RD(dst), ctx);
emit(LD64A | ASI(ASI_PL) | RS1(tmp) | RS2(G0) | RD(dst), ctx);
emit(SUB | RS1(dst) | RS2(tmp) | RD(dst), ctx);
emit(div | RS1(dst) | RS2(tmp1) | RD(tmp), ctx);
emit(MULX | RS1(tmp) | RS2(tmp1) | RD(tmp), ctx);
emit(SUB | RS1(dst) | RS2(tmp) | RD(dst), ctx);
rs2 = RS2(tmp);
rs2 = RS2(tmp);
rs2 = RS2(tmp);
emit(LD32 | RS1(tmp) | RS2(G0) | RD(tmp2), ctx);
emit(CAS | ASI(ASI_P) | RS1(tmp) | RS2(tmp2) | RD(tmp3), ctx);
emit(LD64 | RS1(tmp) | RS2(G0) | RD(tmp2), ctx);
emit(CASX | ASI(ASI_P) | RS1(tmp) | RS2(tmp2) | RD(tmp3), ctx);
emit(OR | RS1(G0) | RS2(from) | RD(to), ctx);
emit(opcode | RS1(dst) | RS2(src) | RD(dst), ctx);
emit(opcode | RS1(a) | RS2(b) | RD(c), ctx);
emit(insn | RS2(tmp), ctx);
emit(insn | RS2(tmp), ctx);
emit(OR | RS1(dest) | RS2(tmp) | RD(dest), ctx);
emit(cb_opc | WDISP10(off << 2) | RS1(dst) | RS2(src), ctx);
emit(SUBCC | RS1(R1) | RS2(R2) | RD(G0), CTX)
emit(ANDCC | RS1(R1) | RS2(R2) | RD(G0), CTX)
emit(RESTORE | RS1(bpf2sparc[BPF_REG_0]) | RS2(G0) | RD(O0), ctx);
emit(SUB | RS1(0) | RS2(dst) | RD(dst), ctx);