Lines Matching refs:rp

194 fasttrap_anarg(struct regs *rp, int function_entry, int argno)
208 return ((&rp->r_rdi)[argno]);
210 stack = (uintptr_t *)rp->r_sp;
216 uint32_t *stack = (uint32_t *)rp->r_sp;
659 fasttrap_return_common(struct regs *rp, uintptr_t pc, pid_t pid,
701 rp->r_r0, rp->r_r1, 0, 0);
726 fasttrap_usdt_args64(fasttrap_probe_t *probe, struct regs *rp, int argc,
730 uintptr_t *stack = (uintptr_t *)rp->r_sp;
736 argv[i] = (&rp->r_rdi)[x];
748 fasttrap_usdt_args32(fasttrap_probe_t *probe, struct regs *rp, int argc,
752 uint32_t *stack = (uint32_t *)rp->r_sp;
766 fasttrap_do_seg(fasttrap_tracepoint_t *tp, struct regs *rp, uintptr_t *addr)
775 sel = rp->r_cs;
778 sel = rp->r_ds;
781 sel = rp->r_es;
784 sel = rp->r_fs;
787 sel = rp->r_gs;
790 sel = rp->r_ss;
879 fasttrap_pid_probe(struct regs *rp)
882 uintptr_t pc = rp->r_pc - 1, new_pc = 0;
951 rp->r_pc = pc;
969 dtrace_probe(probe->ftp_id, rp->r_rdi,
970 rp->r_rsi, rp->r_rdx, rp->r_rcx,
971 rp->r_r8);
984 dtrace_probe(probe->ftp_id, rp->r_rdi,
985 rp->r_rsi, rp->r_rdx, rp->r_rcx,
986 rp->r_r8);
990 fasttrap_usdt_args64(probe, rp,
1000 uint32_t *stack = (uint32_t *)rp->r_sp;
1046 fasttrap_usdt_args32(probe, rp,
1072 rp->r_pc = pc + tp->ftt_size;
1086 rp->r_r0 = 1;
1087 new_pc = rp->r_pc;
1113 ret = fasttrap_fulword((void *)rp->r_sp, &dst);
1114 addr = rp->r_sp + sizeof (uintptr_t);
1118 ret = fasttrap_fuword32((void *)rp->r_sp, &dst32);
1120 addr = rp->r_sp + sizeof (uint32_t);
1125 fasttrap_sigsegv(p, curthread, rp->r_sp);
1133 rp->r_sp = addr;
1144 taken = (rp->r_ps & FASTTRAP_EFLAGS_OF) != 0;
1147 taken = (rp->r_ps & FASTTRAP_EFLAGS_OF) == 0;
1150 taken = (rp->r_ps & FASTTRAP_EFLAGS_CF) != 0;
1153 taken = (rp->r_ps & FASTTRAP_EFLAGS_CF) == 0;
1156 taken = (rp->r_ps & FASTTRAP_EFLAGS_ZF) != 0;
1159 taken = (rp->r_ps & FASTTRAP_EFLAGS_ZF) == 0;
1162 taken = (rp->r_ps & FASTTRAP_EFLAGS_CF) != 0 ||
1163 (rp->r_ps & FASTTRAP_EFLAGS_ZF) != 0;
1166 taken = (rp->r_ps & FASTTRAP_EFLAGS_CF) == 0 &&
1167 (rp->r_ps & FASTTRAP_EFLAGS_ZF) == 0;
1170 taken = (rp->r_ps & FASTTRAP_EFLAGS_SF) != 0;
1173 taken = (rp->r_ps & FASTTRAP_EFLAGS_SF) == 0;
1176 taken = (rp->r_ps & FASTTRAP_EFLAGS_PF) != 0;
1179 taken = (rp->r_ps & FASTTRAP_EFLAGS_PF) == 0;
1182 taken = ((rp->r_ps & FASTTRAP_EFLAGS_SF) == 0) !=
1183 ((rp->r_ps & FASTTRAP_EFLAGS_OF) == 0);
1186 taken = ((rp->r_ps & FASTTRAP_EFLAGS_SF) == 0) ==
1187 ((rp->r_ps & FASTTRAP_EFLAGS_OF) == 0);
1190 taken = (rp->r_ps & FASTTRAP_EFLAGS_ZF) != 0 ||
1191 ((rp->r_ps & FASTTRAP_EFLAGS_SF) == 0) !=
1192 ((rp->r_ps & FASTTRAP_EFLAGS_OF) == 0);
1195 taken = (rp->r_ps & FASTTRAP_EFLAGS_ZF) == 0 &&
1196 ((rp->r_ps & FASTTRAP_EFLAGS_SF) == 0) ==
1197 ((rp->r_ps & FASTTRAP_EFLAGS_OF) == 0);
1213 greg_t cx = rp->r_rcx--;
1215 greg_t cx = rp->r_ecx--;
1220 taken = (rp->r_ps & FASTTRAP_EFLAGS_ZF) == 0 &&
1224 taken = (rp->r_ps & FASTTRAP_EFLAGS_ZF) != 0 &&
1242 greg_t cx = rp->r_rcx;
1244 greg_t cx = rp->r_ecx;
1261 addr = rp->r_sp - sizeof (uintptr_t);
1262 ret = fasttrap_sulword((void *)addr, rp->r_fp);
1265 addr = rp->r_sp - sizeof (uint32_t);
1267 (uint32_t)rp->r_fp);
1277 rp->r_sp = addr;
1294 addr += fasttrap_getreg(rp, tp->ftt_base);
1296 addr += fasttrap_getreg(rp, tp->ftt_index) <<
1307 fasttrap_do_seg(tp, rp, &addr) != 0) {
1354 addr = rp->r_sp - sizeof (uintptr_t);
1359 addr = rp->r_sp - sizeof (uint32_t);
1372 rp->r_sp = addr;
1525 reg = &rp->r_rax;
1529 reg = &rp->r_rcx;
1533 reg = &rp->r_r8;
1537 reg = &rp->r_r9;
1635 rp->r_pc = pc;
1637 fasttrap_return_common(rp, pc, pid, new_pc);
1646 rp->r_pc = new_pc;
1652 fasttrap_return_probe(struct regs *rp)
1673 * We set rp->r_pc to the address of the traced instruction so
1679 rp->r_pc = pc;
1681 fasttrap_return_common(rp, pc, p->p_pid, npc);
1703 fasttrap_getreg(struct regs *rp, uint_t reg)
1707 case REG_R15: return (rp->r_r15);
1708 case REG_R14: return (rp->r_r14);
1709 case REG_R13: return (rp->r_r13);
1710 case REG_R12: return (rp->r_r12);
1711 case REG_R11: return (rp->r_r11);
1712 case REG_R10: return (rp->r_r10);
1713 case REG_R9: return (rp->r_r9);
1714 case REG_R8: return (rp->r_r8);
1715 case REG_RDI: return (rp->r_rdi);
1716 case REG_RSI: return (rp->r_rsi);
1717 case REG_RBP: return (rp->r_rbp);
1718 case REG_RBX: return (rp->r_rbx);
1719 case REG_RDX: return (rp->r_rdx);
1720 case REG_RCX: return (rp->r_rcx);
1721 case REG_RAX: return (rp->r_rax);
1722 case REG_TRAPNO: return (rp->r_trapno);
1723 case REG_ERR: return (rp->r_err);
1724 case REG_RIP: return (rp->r_rip);
1725 case REG_CS: return (rp->r_cs);
1726 case REG_RFL: return (rp->r_rfl);
1727 case REG_RSP: return (rp->r_rsp);
1728 case REG_SS: return (rp->r_ss);
1729 case REG_FS: return (rp->r_fs);
1730 case REG_GS: return (rp->r_gs);
1731 case REG_DS: return (rp->r_ds);
1732 case REG_ES: return (rp->r_es);
1743 return (((greg_t *)&rp->r_gs)[reg]);