Lines Matching refs:rp

193 die(uint_t type, struct regs *rp, caddr_t addr, processorid_t cpuid)  in die()  argument
210 ti.trap_regs = rp; in die()
219 type, trap_mnemonic, trap_name, (void *)rp, (void *)addr, in die()
220 mod_containing_pc((caddr_t)rp->r_pc), in die()
226 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()
404 emulate_lsahf(struct regs *rp, uchar_t instr) in emulate_lsahf() argument
408 rp->r_ps = (rp->r_ps & ~0xff) | in emulate_lsahf()
409 ((rp->r_rax >> 8) & PSL_LSAHFMASK) | PS_MB1; in emulate_lsahf()
412 rp->r_rax = (rp->r_rax & ~0xff00) | in emulate_lsahf()
413 (((rp->r_ps & PSL_LSAHFMASK) | PS_MB1) << 8); in emulate_lsahf()
415 rp->r_pc += LSAHFSIZE; in emulate_lsahf()
465 trap(struct regs *rp, caddr_t addr, processorid_t cpuid) in trap() argument
492 type = rp->r_trapno; in trap()
498 errcode = rp->r_err; in trap()
501 else if ((caddr_t)rp->r_pc == addr || in trap()
535 showregs(type, rp, addr); in trap()
537 if (USERMODE(rp->r_cs)) { in trap()
557 ASSERT(lwptoregs(lwp) == rp); in trap()
562 if ((caddr_t)rp->r_pc == addr) in trap()
588 (ulong_t)type, (ulong_t)rp); in trap()
600 showregs(type, rp, (caddr_t)0); in trap()
605 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
610 (void) die(type, rp, addr, cpuid); in trap()
623 rp->r_pc = ct->t_ontrap->ot_trampoline; in trap()
637 (void) die(type, rp, addr, cpuid); in trap()
687 uintptr_t rip = rp->r_pc; in trap()
695 rp->r_pc = rip; in trap()
710 caddr_t pc = (caddr_t)rp->r_pc; in trap()
724 (void *)rp->r_pc); in trap()
729 (void) die(type, rp, addr, cpuid); in trap()
734 (void) die(type, rp, addr, cpuid); in trap()
740 showregs(type, rp, addr); in trap()
741 traceregs(rp); in trap()
747 rp->r_r0 = res; in trap()
748 rp->r_pc = ct->t_lofault; in trap()
794 if (rp->r_pc <= 0xffffffff) in trap()
814 if (watchpage && addr == (caddr_t)rp->r_sp && in trap()
815 rw == S_READ && instr_is_lcall_syscall((caddr_t)rp->r_pc)) { in trap()
818 rp->r_pc += LCALLSIZE; in trap()
824 if (!watchpage || (sz = instr_size(rp, &vaddr, rw)) <= 0) in trap()
830 watchcode, rp->r_pc); in trap()
838 siginfo.si_pc = (caddr_t)rp->r_pc; in trap()
844 if (rw != S_EXEC && pr_watch_emul(rp, vaddr, rw)) in trap()
882 addr != (caddr_t)rp->r_pc && in trap()
883 instr_is_prefetch((caddr_t)rp->r_pc)) { in trap()
887 (void *)rp->r_pc, p->p_pid); in trap()
894 showregs(type, rp, addr); in trap()
939 ldt_rewrite_syscall(rp, p, X86FSET_ASYSC)) in trap()
948 instr_is_lsahf((caddr_t)rp->r_pc, &instr)) { in trap()
949 emulate_lsahf(rp, instr); in trap()
957 showregs(type, rp, (caddr_t)0); in trap()
960 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
966 showregs(type, rp, (caddr_t)0); in trap()
969 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
975 showregs(type, rp, (caddr_t)0); in trap()
978 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
984 showregs(type, rp, addr); in trap()
985 if (fpnoextflt(rp)) { in trap()
988 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
997 if (rp->r_pc != (uintptr_t)ndptrap_frstor) { in trap()
999 (void) die(type, rp, addr, cpuid); in trap()
1006 showregs(type, rp, addr); in trap()
1007 if (fpextovrflt(rp)) { in trap()
1010 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1019 if (rp->r_pc != (uintptr_t)ndptrap_frstor) { in trap()
1021 (void) die(type, rp, addr, cpuid); in trap()
1029 showregs(type, rp, addr); in trap()
1030 if (sicode = fpexterrflt(rp)) { in trap()
1033 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1040 showregs(type, rp, addr); in trap()
1050 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1053 } else if ((sicode = fpsimderrflt(rp)) != 0) { in trap()
1056 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1072 showregs(type, rp, (caddr_t)0); in trap()
1074 (void) die(type, rp, addr, cpuid); in trap()
1092 if (rp->r_pc == (uintptr_t)sys_sysenter || in trap()
1093 rp->r_pc == (uintptr_t)brand_sys_sysenter) { in trap()
1103 if (rp->r_pc == (uintptr_t)sys_sysenter) in trap()
1104 rp->r_pc = (uintptr_t) in trap()
1107 rp->r_pc = (uintptr_t) in trap()
1112 else if (rp->r_pc == (uintptr_t)sys_call || in trap()
1113 rp->r_pc == (uintptr_t)brand_sys_call) { in trap()
1120 showregs(type, rp, (caddr_t)0); in trap()
1123 rp->r_ps &= ~PS_T; /* turn off trace */ in trap()
1134 (void) die(type, rp, addr, cpuid); in trap()
1175 showregs(type, rp, (caddr_t)0); in trap()
1176 rp->r_pc = ct->t_ontrap->ot_trampoline; in trap()
1190 showregs(type, rp, addr); in trap()
1191 traceregs(rp); in trap()
1193 rp->r_r0 = EFAULT; in trap()
1194 rp->r_pc = ct->t_lofault; in trap()
1216 showregs(type, rp, (caddr_t)0); in trap()
1217 rp->r_pc = ct->t_ontrap->ot_trampoline; in trap()
1224 showregs(type, rp, (caddr_t)0); in trap()
1225 if (kern_gpfault(rp)) in trap()
1226 (void) die(type, rp, addr, cpuid); in trap()
1245 if (instr_is_lcall_syscall((caddr_t)rp->r_pc)) { in trap()
1265 rp->r_pc += LCALLSIZE; in trap()
1266 lwp->lwp_regs = rp; in trap()
1292 ldt_rewrite_syscall(rp, p, X86FSET_SEP)) in trap()
1301 showregs(type, rp, (caddr_t)0); in trap()
1304 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1310 showregs(type, rp, (caddr_t)0); in trap()
1314 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1320 showregs(type, rp, (caddr_t)0); in trap()
1326 rp->r_ps &= ~PS_T; in trap()
1338 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1347 showregs(type, rp, (caddr_t)0); in trap()
1355 rp->r_pc--; in trap()
1358 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1391 showregs(type, rp, (caddr_t)0); in trap()
1395 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1435 profil_tick(rp->r_pc); in trap()
1452 deferred_singlestep_trap((caddr_t)rp->r_pc); in trap()
1508 rp->r_ps |= PS_T; in trap()
1512 rp->r_ps &= ~PS_T; in trap()
1670 showregs(uint_t type, struct regs *rp, caddr_t addr) in showregs() argument
1694 USERMODE(rp->r_cs) ? "user": "kernel", (uintptr_t)addr); in showregs()
1701 ttoproc(curthread)->p_pid : 0, rp->r_pc, rp->r_sp, rp->r_ps); in showregs()
1724 dumpregs(rp); in showregs()
1729 dumpregs(struct regs *rp) in dumpregs() argument
1734 printf(fmt, "rdi", rp->r_rdi, "rsi", rp->r_rsi, "rdx", rp->r_rdx); in dumpregs()
1735 printf(fmt, "rcx", rp->r_rcx, " r8", rp->r_r8, " r9", rp->r_r9); in dumpregs()
1736 printf(fmt, "rax", rp->r_rax, "rbx", rp->r_rbx, "rbp", rp->r_rbp); in dumpregs()
1737 printf(fmt, "r10", rp->r_r10, "r11", rp->r_r11, "r12", rp->r_r12); in dumpregs()
1738 printf(fmt, "r13", rp->r_r13, "r14", rp->r_r14, "r15", rp->r_r15); in dumpregs()
1741 " ds", rp->r_ds); in dumpregs()
1742 printf(fmt, " es", rp->r_es, " fs", rp->r_fs, " gs", rp->r_gs); in dumpregs()
1744 printf(fmt, "trp", rp->r_trapno, "err", rp->r_err, "rip", rp->r_rip); in dumpregs()
1745 printf(fmt, " cs", rp->r_cs, "rfl", rp->r_rfl, "rsp", rp->r_rsp); in dumpregs()
1747 printf("\t%3s: %16lx\n", " ss", rp->r_ss); in dumpregs()
1752 printf(fmt, " gs", rp->r_gs, " fs", rp->r_fs, in dumpregs()
1753 " es", rp->r_es, " ds", rp->r_ds); in dumpregs()
1754 printf(fmt, "edi", rp->r_edi, "esi", rp->r_esi, in dumpregs()
1755 "ebp", rp->r_ebp, "esp", rp->r_esp); in dumpregs()
1756 printf(fmt, "ebx", rp->r_ebx, "edx", rp->r_edx, in dumpregs()
1757 "ecx", rp->r_ecx, "eax", rp->r_eax); in dumpregs()
1758 printf(fmt, "trp", rp->r_trapno, "err", rp->r_err, in dumpregs()
1759 "eip", rp->r_eip, " cs", rp->r_cs); in dumpregs()
1761 "efl", rp->r_efl, "usp", rp->r_uesp, " ss", rp->r_ss); in dumpregs()
1865 kern_gpfault(struct regs *rp) in kern_gpfault() argument
1871 caddr_t pc = (caddr_t)rp->r_pc; in kern_gpfault()
1913 bcopy(rp, trp, offsetof(struct regs, r_pc)); in kern_gpfault()
1919 ASSERT(trp->r_err == rp->r_err); in kern_gpfault()
1941 ASSERT((caddr_t)trp == (caddr_t)rp->r_sp); in kern_gpfault()
1965 trp->r_trapno = rp->r_trapno; in kern_gpfault()
1966 trp->r_err = rp->r_err; in kern_gpfault()