Lines Matching refs:rs1

165 #define	FBT_FMT3_RS1_SET(val, rs1) \
166 (val) = ((val) & ~FBT_FMT3_RS1_MASK) | ((rs1) << FBT_FMT3_RS1_SHIFT)
227 #define FBT_ADD(rs1, rs2, rd) \
228 (FBT_OP_ADD | ((rs1) << FBT_FMT3_RS1_SHIFT) | \
231 #define FBT_CMP(rs1, rs2) \
232 (FBT_OP_SUB | FBT_OP_CC | ((rs1) << FBT_FMT3_RS1_SHIFT) | \
249 #define FBT_SAVEIMM(rd, val, rs1) \
250 (FBT_OP_SAVE | ((rs1) << FBT_FMT3_RS1_SHIFT) | \
253 #define FBT_RESTORE(rd, rs1, rs2) \
254 (FBT_OP_RESTORE | ((rs1) << FBT_FMT3_RS1_SHIFT) | \
257 #define FBT_RETURN(rs1, val) \
258 (FBT_OP_RETURN | ((rs1) << FBT_FMT3_RS1_SHIFT) | \
273 * We're only going to treat a save as safe if (a) both rs1 and rd are
510 * (a) return rs1 + imm
513 * (b) jmpl rs1 + (rs2 | offset), rd
514 * restore rs1, rs2 | imm, rd
517 * restore rs1, rs2 | imm, rd
519 * If rs1 in (a) is anything other than %i7, or imm is anything other than 8,
524 * Note that rs1 and rs2 in the restore instructions in (b) and (c) are
526 * relied upon across the call to dtrace_probe(), we move rs1 into an unused
532 * Likewise, rs1 and rs2 in the jmpl of case (b) may be outputs and/or globals.
552 * as rs1 and 8 as the simm13 -- it would just be
687 uint32_t cti = *instr, restore = *(instr + 1), rs1, dest;
735 uint32_t rs1 = FBT_FMT3_RS1(cti);
736 FBT_REG_MARKLOCAL(locals, rs1);
747 rs1 = FBT_FMT3_RS1(restore);
748 FBT_REG_MARKLOCAL(locals, rs1);
756 uint32_t rs1 = FBT_FMT3_RS1(cti);
758 if (FBT_REG_ISVOLATILE(rs1)) {
761 *tinstr++ = FBT_MOV(rs1, local);
775 rs1 = FBT_FMT3_RS1(restore);
777 if (FBT_REG_ISVOLATILE(rs1)) {
780 *tinstr++ = FBT_MOV(rs1, local);
878 uint32_t rs1, rs2, o2i = FBT_REG_I0 - FBT_REG_O0;
886 rs1 = FBT_FMT3_RS1(cti);
888 if (FBT_REG_ISOUTPUT(rs1))
889 rs1 += o2i;
891 if (FBT_REG_ISGLOBAL(rs1)) {
892 *tinstr++ = FBT_MOV(rs1, FBT_REG_L0);
893 rs1 = FBT_REG_L0;
896 FBT_FMT3_RS1_SET(cti, rs1);
919 if (FBT_FMT3_RD(cti) != FBT_REG_O7 && rs1 != FBT_REG_I7) {
926 *tinstr++ = FBT_ADDSIMM13(rs1,
929 *tinstr++ = FBT_ADD(rs1, rs2, FBT_REG_L2);