Lines Matching refs:rp

198 fasttrap_anarg(struct regs *rp, int argno)
203 return ((&rp->r_o0)[argno]);
206 struct frame *fr = (struct frame *)(rp->r_sp + STACK_BIAS);
213 struct frame32 *fr = (struct frame32 *)rp->r_sp;
228 fasttrap_usdt_args(fasttrap_probe_t *probe, struct regs *rp,
237 * avoid a call to fasttrap_getreg(), and safely use rp->r_sp
245 struct frame *fr = (struct frame *)(rp->r_sp + STACK_BIAS);
252 argv[i] = fasttrap_getreg(rp, R_O0 + x + inc);
258 struct frame32 *fr = (struct frame32 *)rp->r_sp;
265 argv[i] = fasttrap_getreg(rp, R_O0 + x + inc);
277 fasttrap_return_common(struct regs *rp, uintptr_t pc, pid_t pid,
313 fasttrap_usdt_args(probe, rp, fake_restore,
326 fasttrap_usdt_args(probe, rp, fake_restore,
333 uintptr_t arg0 = fasttrap_getreg(rp, R_I0);
334 uintptr_t arg1 = fasttrap_getreg(rp, R_I1);
335 uintptr_t arg2 = fasttrap_getreg(rp, R_I2);
336 uintptr_t arg3 = fasttrap_getreg(rp, R_I3);
337 uintptr_t arg4 = fasttrap_getreg(rp, R_I4);
347 dtrace_probe(probe->ftp_id, rp->r_o0, rp->r_o1,
348 rp->r_o2, rp->r_o3, rp->r_o4);
364 rp->r_npc - probe->ftp_faddr < probe->ftp_fsize)
378 if (rp->r_npc == rp->r_pc + 4 &&
379 rp->r_npc - probe->ftp_faddr < probe->ftp_fsize)
392 rp->r_o0, rp->r_o1, rp->r_o2, rp->r_o3);
394 uintptr_t arg0 = fasttrap_getreg(rp, R_I0);
395 uintptr_t arg1 = fasttrap_getreg(rp, R_I1);
396 uintptr_t arg2 = fasttrap_getreg(rp, R_I2);
397 uintptr_t arg3 = fasttrap_getreg(rp, R_I3);
412 fasttrap_pid_probe(struct regs *rp)
418 uintptr_t pc = rp->r_pc;
419 uintptr_t npc = rp->r_npc;
497 dtrace_probe(probe->ftp_id, rp->r_o0, rp->r_o1, rp->r_o2,
498 rp->r_o3, rp->r_o4);
526 rp->r_o0 = 1;
527 pc = rp->r_npc;
559 rp->r_g1 = rp->r_sp + imm;
560 pc = rp->r_g7 + FASTTRAP_OFF_SAVE;
592 value = fasttrap_getreg(rp, RS1(tp->ftt_instr)) + imm;
594 value = fasttrap_getreg(rp, RS1(tp->ftt_instr)) +
595 fasttrap_getreg(rp, RS2(tp->ftt_instr));
602 fasttrap_putreg(rp, ((rd & 0x18) == 0x8) ? rd + 16 : rd, value);
604 pc = rp->r_g7 + FASTTRAP_OFF_RESTORE;
629 target = fasttrap_getreg(rp, RS1(tp->ftt_instr)) + imm;
631 target = fasttrap_getreg(rp, RS1(tp->ftt_instr)) +
632 fasttrap_getreg(rp, RS2(tp->ftt_instr));
635 fasttrap_putreg(rp, R_O0, target);
637 pc = rp->r_g7 + FASTTRAP_OFF_RETURN;
651 value = fasttrap_getreg(rp, RS1(tp->ftt_instr)) | imm;
653 value = fasttrap_getreg(rp, RS1(tp->ftt_instr)) |
654 fasttrap_getreg(rp, RS2(tp->ftt_instr));
657 fasttrap_putreg(rp, RD(tp->ftt_instr), value);
658 pc = rp->r_npc;
666 fasttrap_putreg(rp, RD(tp->ftt_instr), (ulong_t)imm32);
668 pc = rp->r_npc;
675 uint_t ccr = rp->r_tstate >> TSTATE_CCR_SHIFT;
726 pc = rp->r_npc;
733 pc = rp->r_npc + 4;
736 pc = rp->r_npc;
800 pc = rp->r_npc;
807 pc = rp->r_npc + 4;
810 pc = rp->r_npc;
831 value = (int64_t)fasttrap_getreg(rp, reg);
853 pc = rp->r_npc;
860 pc = rp->r_npc + 4;
863 pc = rp->r_npc;
882 pc = rp->r_npc;
888 fasttrap_putreg(rp, RD(tp->ftt_instr), rp->r_pc);
889 pc = rp->r_npc;
897 rp->r_o7 = rp->r_pc;
898 pc = rp->r_npc;
903 pc = rp->r_npc;
911 npc = fasttrap_getreg(rp, rs1) + imm;
916 npc = fasttrap_getreg(rp, rs1) +
917 fasttrap_getreg(rp, rs2);
923 fasttrap_putreg(rp, RD(tp->ftt_instr), rp->r_pc);
929 curthread->t_dtrace_scrpc = rp->r_g7;
930 curthread->t_dtrace_astpc = rp->r_g7 + FASTTRAP_OFF_FTRET;
945 if (dtrace_blksuword32(rp->r_g7, &tp->ftt_instr, 1) == -1) {
978 ASSERT(pc != rp->r_g7 + 4);
979 ASSERT(pc != rp->r_g7 + 8);
997 fasttrap_return_common(rp, orig_pc, pid, fake_restore);
1001 ASSERT(curthread->t_dtrace_scrpc == rp->r_g7);
1007 rp->r_pc = pc;
1008 rp->r_npc = npc;
1014 fasttrap_return_probe(struct regs *rp)
1043 rp->r_pc = pc;
1044 rp->r_npc = npc;
1047 fasttrap_return_common(rp, pc, pid, 0);
1384 fasttrap_getreg(struct regs *rp, uint_t reg)
1400 return ((&rp->r_g1)[reg - 1]);
1423 mpcb = (struct machpcb *)((caddr_t)rp - REGOFF);
1426 struct frame *fr = (struct frame *)(rp->r_sp + STACK_BIAS);
1433 if ((long)mpcb->mpcb_spbuf[i] != rp->r_sp)
1445 (struct frame32 *)(uintptr_t)(caddr32_t)rp->r_sp;
1453 if ((long)mpcb->mpcb_spbuf[i] != rp->r_sp)
1484 fasttrap_putreg(struct regs *rp, uint_t reg, ulong_t value)
1494 (&rp->r_g1)[reg - 1] = value;
1522 mpcb = (struct machpcb *)((caddr_t)rp - REGOFF);
1525 struct frame *fr = (struct frame *)(rp->r_sp + STACK_BIAS);
1533 if ((long)mpcb->mpcb_spbuf[i] != rp->r_sp)
1548 mpcb->mpcb_spbuf[mpcb->mpcb_wbcnt] = (caddr_t)rp->r_sp;
1555 (struct frame32 *)(uintptr_t)(caddr32_t)rp->r_sp;
1564 if ((long)mpcb->mpcb_spbuf[i] != rp->r_sp)
1579 mpcb->mpcb_spbuf[mpcb->mpcb_wbcnt] = (caddr_t)rp->r_sp;