Lines Matching refs:rp

191 die(uint_t type, struct regs *rp, caddr_t addr, processorid_t cpuid)  in die()  argument
208 ti.trap_regs = rp; in die()
217 type, trap_mnemonic, trap_name, (void *)rp, (void *)addr, in die()
218 mod_containing_pc((caddr_t)rp->r_pc), in die()
224 type, trap_mnemonic, trap_name, (void *)rp, (void *)addr); in die()
302 ldt_rewrite_syscall(struct regs *rp, proc_t *p, int syscall_insn) in ldt_rewrite_syscall() argument
309 if (linear_pc(rp, p, &linearpc) == 0) { in ldt_rewrite_syscall()
402 emulate_lsahf(struct regs *rp, uchar_t instr) in emulate_lsahf() argument
406 rp->r_ps = (rp->r_ps & ~0xff) | in emulate_lsahf()
407 ((rp->r_rax >> 8) & PSL_LSAHFMASK) | PS_MB1; in emulate_lsahf()
410 rp->r_rax = (rp->r_rax & ~0xff00) | in emulate_lsahf()
411 (((rp->r_ps & PSL_LSAHFMASK) | PS_MB1) << 8); in emulate_lsahf()
413 rp->r_pc += LSAHFSIZE; in emulate_lsahf()
462 trap(struct regs *rp, caddr_t addr, processorid_t cpuid) in trap() argument
489 type = rp->r_trapno; in trap()
494 errcode = rp->r_err; in trap()
497 } else if ((caddr_t)rp->r_pc == addr || in trap()
508 showregs(type, rp, addr); in trap()
510 if (USERMODE(rp->r_cs)) { in trap()
530 ASSERT(lwptoregs(lwp) == rp); in trap()
535 if ((caddr_t)rp->r_pc == addr) in trap()
558 (ulong_t)type, (ulong_t)rp); in trap()
570 showregs(type, rp, (caddr_t)0); in trap()
575 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
579 (void) die(type, rp, addr, cpuid); in trap()
593 rp->r_pc = ct->t_ontrap->ot_trampoline; in trap()
607 (void) die(type, rp, addr, cpuid); in trap()
621 (rp->r_ps & PS_ACHK) == 0) { in trap()
622 (void) die(type, rp, addr, cpuid); in trap()
672 uintptr_t rip = rp->r_pc; in trap()
680 rp->r_pc = rip; in trap()
695 caddr_t pc = (caddr_t)rp->r_pc; in trap()
709 (void *)rp->r_pc); in trap()
714 (void) die(type, rp, addr, cpuid); in trap()
719 (void) die(type, rp, addr, cpuid); in trap()
725 showregs(type, rp, addr); in trap()
726 traceregs(rp); in trap()
732 rp->r_r0 = res; in trap()
733 rp->r_pc = ct->t_lofault; in trap()
779 if (rp->r_pc <= 0xffffffff) in trap()
787 if (!watchpage || (sz = instr_size(rp, &vaddr, rw)) <= 0) in trap()
793 watchcode, rp->r_pc); in trap()
801 siginfo.si_pc = (caddr_t)rp->r_pc; in trap()
807 if (rw != S_EXEC && pr_watch_emul(rp, vaddr, rw)) in trap()
845 addr != (caddr_t)rp->r_pc && in trap()
846 instr_is_prefetch((caddr_t)rp->r_pc)) { in trap()
850 (void *)rp->r_pc, p->p_pid); in trap()
857 showregs(type, rp, addr); in trap()
902 ldt_rewrite_syscall(rp, p, X86FSET_ASYSC)) in trap()
910 instr_is_lsahf((caddr_t)rp->r_pc, &instr)) { in trap()
911 emulate_lsahf(rp, instr); in trap()
918 showregs(type, rp, (caddr_t)0); in trap()
921 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
927 showregs(type, rp, (caddr_t)0); in trap()
930 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
936 showregs(type, rp, (caddr_t)0); in trap()
939 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
951 (void) die(type, rp, addr, cpuid); in trap()
960 (void) die(type, rp, addr, cpuid); in trap()
965 showregs(type, rp, addr); in trap()
966 if ((sicode = fpexterrflt(rp)) != 0) { in trap()
969 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
976 showregs(type, rp, addr); in trap()
986 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
989 } else if ((sicode = fpsimderrflt(rp)) != 0) { in trap()
992 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1008 showregs(type, rp, (caddr_t)0); in trap()
1010 (void) die(type, rp, addr, cpuid); in trap()
1025 if (rp->r_pc == (greg_t)brand_sys_sysenter || in trap()
1026 rp->r_pc == (greg_t)sys_sysenter || in trap()
1027 rp->r_pc == (greg_t)tr_brand_sys_sysenter || in trap()
1028 rp->r_pc == (greg_t)tr_sys_sysenter) { in trap()
1030 rp->r_pc += 0x3; /* sizeof (swapgs) */ in trap()
1032 rp->r_ps &= ~PS_T; /* turn off trace */ in trap()
1039 showregs(type, rp, (caddr_t)0); in trap()
1047 (void) die(type, rp, addr, cpuid); in trap()
1088 showregs(type, rp, (caddr_t)0); in trap()
1089 rp->r_pc = ct->t_ontrap->ot_trampoline; in trap()
1103 showregs(type, rp, addr); in trap()
1104 traceregs(rp); in trap()
1106 rp->r_r0 = EFAULT; in trap()
1107 rp->r_pc = ct->t_lofault; in trap()
1129 showregs(type, rp, (caddr_t)0); in trap()
1130 rp->r_pc = ct->t_ontrap->ot_trampoline; in trap()
1137 showregs(type, rp, (caddr_t)0); in trap()
1138 if (kern_gpfault(rp)) in trap()
1139 (void) die(type, rp, addr, cpuid); in trap()
1158 if (instr_is_lcall_syscall((caddr_t)rp->r_pc)) { in trap()
1178 rp->r_pc += LCALLSIZE; in trap()
1179 lwp->lwp_regs = rp; in trap()
1205 ldt_rewrite_syscall(rp, p, X86FSET_SEP)) in trap()
1214 showregs(type, rp, (caddr_t)0); in trap()
1217 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1223 showregs(type, rp, (caddr_t)0); in trap()
1227 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1233 showregs(type, rp, (caddr_t)0); in trap()
1239 rp->r_ps &= ~PS_T; in trap()
1251 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1260 showregs(type, rp, (caddr_t)0); in trap()
1268 rp->r_pc--; in trap()
1271 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1304 showregs(type, rp, (caddr_t)0); in trap()
1308 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1348 profil_tick(rp->r_pc); in trap()
1365 deferred_singlestep_trap((caddr_t)rp->r_pc); in trap()
1432 rp->r_ps |= PS_T; in trap()
1436 rp->r_ps &= ~PS_T; in trap()
1590 showregs(uint_t type, struct regs *rp, caddr_t addr) in showregs() argument
1614 USERMODE(rp->r_cs) ? "user": "kernel", (uintptr_t)addr); in showregs()
1621 ttoproc(curthread)->p_pid : 0, rp->r_pc, rp->r_sp, rp->r_ps); in showregs()
1642 dumpregs(rp); in showregs()
1647 dumpregs(struct regs *rp) in dumpregs() argument
1651 printf(fmt, "rdi", rp->r_rdi, "rsi", rp->r_rsi, "rdx", rp->r_rdx); in dumpregs()
1652 printf(fmt, "rcx", rp->r_rcx, " r8", rp->r_r8, " r9", rp->r_r9); in dumpregs()
1653 printf(fmt, "rax", rp->r_rax, "rbx", rp->r_rbx, "rbp", rp->r_rbp); in dumpregs()
1654 printf(fmt, "r10", rp->r_r10, "r11", rp->r_r11, "r12", rp->r_r12); in dumpregs()
1655 printf(fmt, "r13", rp->r_r13, "r14", rp->r_r14, "r15", rp->r_r15); in dumpregs()
1658 " ds", rp->r_ds); in dumpregs()
1659 printf(fmt, " es", rp->r_es, " fs", rp->r_fs, " gs", rp->r_gs); in dumpregs()
1661 printf(fmt, "trp", rp->r_trapno, "err", rp->r_err, "rip", rp->r_rip); in dumpregs()
1662 printf(fmt, " cs", rp->r_cs, "rfl", rp->r_rfl, "rsp", rp->r_rsp); in dumpregs()
1664 printf("\t%3s: %16lx\n", " ss", rp->r_ss); in dumpregs()
1750 kern_gpfault(struct regs *rp) in kern_gpfault() argument
1756 caddr_t pc = (caddr_t)rp->r_pc; in kern_gpfault()
1798 bcopy(rp, trp, offsetof(struct regs, r_pc)); in kern_gpfault()
1804 ASSERT(trp->r_err == rp->r_err); in kern_gpfault()
1825 ASSERT((caddr_t)trp == (caddr_t)rp->r_sp); in kern_gpfault()
1842 trp->r_trapno = rp->r_trapno; in kern_gpfault()
1843 trp->r_err = rp->r_err; in kern_gpfault()