Lines Matching refs:rp
178 dtrace_user_probe(struct regs *rp, caddr_t addr, processorid_t cpuid)
184 if (USERMODE(rp->r_cs) || (rp->r_ps & PS_VM)) {
197 if (rp->r_trapno == T_DTRACE_RET) {
229 rp->r_pc = npc;
240 (void) (*dtrace_return_probe_ptr)(rp);
242 rp->r_pc = npc;
244 } else if (rp->r_trapno == T_BPTFLT) {
258 (*dtrace_pid_probe_ptr)(rp) == 0) {
264 if (dtrace_linear_pc(rp, p, &linearpc) != 0) {
265 trap(rp, addr, cpuid);
279 if (rp->r_pc > 0 && fuword8(linearpc - 1, &instr) == 0 &&
281 (instr != 3 || (rp->r_pc >= 2 &&
283 rp->r_pc--;
287 trap(rp, addr, cpuid);
290 trap(rp, addr, cpuid);
298 struct regs *rp = lwptoregs(ttolwp(t));
309 if (rp->r_pc < t->t_dtrace_scrpc ||
310 rp->r_pc > t->t_dtrace_astpc + isz) {
312 } else if (rp->r_pc == t->t_dtrace_scrpc ||
313 rp->r_pc == t->t_dtrace_astpc) {
314 rp->r_pc = t->t_dtrace_pc;
323 struct regs *rp = lwptoregs(ttolwp(t));
332 if (rp->r_pc < t->t_dtrace_scrpc ||
333 rp->r_pc > t->t_dtrace_astpc + isz) {
346 if (rp->r_pc >= t->t_dtrace_scrpc + isz &&
347 rp->r_pc < t->t_dtrace_astpc) {
355 rp->r_pc == t->t_dtrace_scrpc + isz) {
358 rp->r_rax = t->t_dtrace_regv;
361 rp->r_rcx = t->t_dtrace_regv;
364 rp->r_r8 = t->t_dtrace_regv;
367 rp->r_r9 = t->t_dtrace_regv;
372 rp->r_pc = t->t_dtrace_npc;
382 ASSERT(rp->r_pc < t->t_dtrace_astpc);
383 rp->r_pc += t->t_dtrace_astpc - t->t_dtrace_scrpc;