Lines Matching refs:rp
189 die(uint_t type, struct regs *rp, caddr_t addr, processorid_t cpuid) in die() argument
206 ti.trap_regs = rp; in die()
215 type, trap_mnemonic, trap_name, (void *)rp, (void *)addr, in die()
216 mod_containing_pc((caddr_t)rp->r_pc), in die()
222 type, trap_mnemonic, trap_name, (void *)rp, (void *)addr); in die()
298 ldt_rewrite_syscall(struct regs *rp, proc_t *p, int syscall_insn) in ldt_rewrite_syscall() argument
305 if (linear_pc(rp, p, &linearpc) == 0) { in ldt_rewrite_syscall()
400 emulate_lsahf(struct regs *rp, uchar_t instr) in emulate_lsahf() argument
404 rp->r_ps = (rp->r_ps & ~0xff) | in emulate_lsahf()
405 ((rp->r_rax >> 8) & PSL_LSAHFMASK) | PS_MB1; in emulate_lsahf()
408 rp->r_rax = (rp->r_rax & ~0xff00) | in emulate_lsahf()
409 (((rp->r_ps & PSL_LSAHFMASK) | PS_MB1) << 8); in emulate_lsahf()
411 rp->r_pc += LSAHFSIZE; in emulate_lsahf()
461 trap(struct regs *rp, caddr_t addr, processorid_t cpuid) in trap() argument
487 type = rp->r_trapno; in trap()
493 errcode = rp->r_err; in trap()
496 else if ((caddr_t)rp->r_pc == addr || in trap()
530 showregs(type, rp, addr); in trap()
532 if (USERMODE(rp->r_cs)) { in trap()
552 ASSERT(lwptoregs(lwp) == rp); in trap()
557 if ((caddr_t)rp->r_pc == addr) in trap()
583 (ulong_t)type, (ulong_t)rp); in trap()
595 showregs(type, rp, (caddr_t)0); in trap()
600 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
605 (void) die(type, rp, addr, cpuid); in trap()
618 rp->r_pc = ct->t_ontrap->ot_trampoline; in trap()
667 uintptr_t rip = rp->r_pc; in trap()
675 rp->r_pc = rip; in trap()
690 caddr_t pc = (caddr_t)rp->r_pc; in trap()
704 (void *)rp->r_pc); in trap()
709 (void) die(type, rp, addr, cpuid); in trap()
714 (void) die(type, rp, addr, cpuid); in trap()
720 showregs(type, rp, addr); in trap()
721 traceregs(rp); in trap()
727 rp->r_r0 = res; in trap()
728 rp->r_pc = ct->t_lofault; in trap()
774 if (rp->r_pc <= 0xffffffff) in trap()
794 if (watchpage && addr == (caddr_t)rp->r_sp && in trap()
795 rw == S_READ && instr_is_lcall_syscall((caddr_t)rp->r_pc)) { in trap()
798 rp->r_pc += LCALLSIZE; in trap()
804 if (!watchpage || (sz = instr_size(rp, &vaddr, rw)) <= 0) in trap()
810 watchcode, rp->r_pc); in trap()
818 siginfo.si_pc = (caddr_t)rp->r_pc; in trap()
824 if (rw != S_EXEC && pr_watch_emul(rp, vaddr, rw)) in trap()
862 addr != (caddr_t)rp->r_pc && in trap()
863 instr_is_prefetch((caddr_t)rp->r_pc)) { in trap()
867 (void *)rp->r_pc, p->p_pid); in trap()
874 showregs(type, rp, addr); in trap()
919 ldt_rewrite_syscall(rp, p, X86FSET_ASYSC)) in trap()
928 instr_is_lsahf((caddr_t)rp->r_pc, &instr)) { in trap()
929 emulate_lsahf(rp, instr); in trap()
937 showregs(type, rp, (caddr_t)0); in trap()
940 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
946 showregs(type, rp, (caddr_t)0); in trap()
949 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
955 showregs(type, rp, (caddr_t)0); in trap()
958 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
964 showregs(type, rp, addr); in trap()
965 if (fpnoextflt(rp)) { in trap()
968 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
977 if (rp->r_pc != (uintptr_t)ndptrap_frstor) { in trap()
979 (void) die(type, rp, addr, cpuid); in trap()
986 showregs(type, rp, addr); in trap()
987 if (fpextovrflt(rp)) { in trap()
990 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
999 if (rp->r_pc != (uintptr_t)ndptrap_frstor) { in trap()
1001 (void) die(type, rp, addr, cpuid); in trap()
1009 showregs(type, rp, addr); in trap()
1010 if (sicode = fpexterrflt(rp)) { in trap()
1013 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1020 showregs(type, rp, addr); in trap()
1030 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1033 } else if ((sicode = fpsimderrflt(rp)) != 0) { in trap()
1036 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1052 showregs(type, rp, (caddr_t)0); in trap()
1054 (void) die(type, rp, addr, cpuid); in trap()
1072 if (rp->r_pc == (uintptr_t)sys_sysenter || in trap()
1073 rp->r_pc == (uintptr_t)brand_sys_sysenter) { in trap()
1083 if (rp->r_pc == (uintptr_t)sys_sysenter) in trap()
1084 rp->r_pc = (uintptr_t) in trap()
1087 rp->r_pc = (uintptr_t) in trap()
1092 else if (rp->r_pc == (uintptr_t)sys_call || in trap()
1093 rp->r_pc == (uintptr_t)brand_sys_call) { in trap()
1100 showregs(type, rp, (caddr_t)0); in trap()
1103 rp->r_ps &= ~PS_T; /* turn off trace */ in trap()
1114 (void) die(type, rp, addr, cpuid); in trap()
1155 showregs(type, rp, (caddr_t)0); in trap()
1156 rp->r_pc = ct->t_ontrap->ot_trampoline; in trap()
1170 showregs(type, rp, addr); in trap()
1171 traceregs(rp); in trap()
1173 rp->r_r0 = EFAULT; in trap()
1174 rp->r_pc = ct->t_lofault; in trap()
1196 showregs(type, rp, (caddr_t)0); in trap()
1197 rp->r_pc = ct->t_ontrap->ot_trampoline; in trap()
1204 showregs(type, rp, (caddr_t)0); in trap()
1205 if (kern_gpfault(rp)) in trap()
1206 (void) die(type, rp, addr, cpuid); in trap()
1225 if (instr_is_lcall_syscall((caddr_t)rp->r_pc)) { in trap()
1245 rp->r_pc += LCALLSIZE; in trap()
1246 lwp->lwp_regs = rp; in trap()
1272 ldt_rewrite_syscall(rp, p, X86FSET_SEP)) in trap()
1281 showregs(type, rp, (caddr_t)0); in trap()
1284 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1290 showregs(type, rp, (caddr_t)0); in trap()
1294 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1300 showregs(type, rp, (caddr_t)0); in trap()
1306 rp->r_ps &= ~PS_T; in trap()
1318 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1327 showregs(type, rp, (caddr_t)0); in trap()
1335 rp->r_pc--; in trap()
1338 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1371 showregs(type, rp, (caddr_t)0); in trap()
1375 siginfo.si_addr = (caddr_t)rp->r_pc; in trap()
1415 profil_tick(rp->r_pc); in trap()
1432 deferred_singlestep_trap((caddr_t)rp->r_pc); in trap()
1488 rp->r_ps |= PS_T; in trap()
1492 rp->r_ps &= ~PS_T; in trap()
1650 showregs(uint_t type, struct regs *rp, caddr_t addr) in showregs() argument
1674 USERMODE(rp->r_cs) ? "user": "kernel", (uintptr_t)addr); in showregs()
1681 ttoproc(curthread)->p_pid : 0, rp->r_pc, rp->r_sp, rp->r_ps); in showregs()
1704 dumpregs(rp); in showregs()
1709 dumpregs(struct regs *rp) in dumpregs() argument
1714 printf(fmt, "rdi", rp->r_rdi, "rsi", rp->r_rsi, "rdx", rp->r_rdx); in dumpregs()
1715 printf(fmt, "rcx", rp->r_rcx, " r8", rp->r_r8, " r9", rp->r_r9); in dumpregs()
1716 printf(fmt, "rax", rp->r_rax, "rbx", rp->r_rbx, "rbp", rp->r_rbp); in dumpregs()
1717 printf(fmt, "r10", rp->r_r10, "r11", rp->r_r11, "r12", rp->r_r12); in dumpregs()
1718 printf(fmt, "r13", rp->r_r13, "r14", rp->r_r14, "r15", rp->r_r15); in dumpregs()
1721 " ds", rp->r_ds); in dumpregs()
1722 printf(fmt, " es", rp->r_es, " fs", rp->r_fs, " gs", rp->r_gs); in dumpregs()
1724 printf(fmt, "trp", rp->r_trapno, "err", rp->r_err, "rip", rp->r_rip); in dumpregs()
1725 printf(fmt, " cs", rp->r_cs, "rfl", rp->r_rfl, "rsp", rp->r_rsp); in dumpregs()
1727 printf("\t%3s: %16lx\n", " ss", rp->r_ss); in dumpregs()
1732 printf(fmt, " gs", rp->r_gs, " fs", rp->r_fs, in dumpregs()
1733 " es", rp->r_es, " ds", rp->r_ds); in dumpregs()
1734 printf(fmt, "edi", rp->r_edi, "esi", rp->r_esi, in dumpregs()
1735 "ebp", rp->r_ebp, "esp", rp->r_esp); in dumpregs()
1736 printf(fmt, "ebx", rp->r_ebx, "edx", rp->r_edx, in dumpregs()
1737 "ecx", rp->r_ecx, "eax", rp->r_eax); in dumpregs()
1738 printf(fmt, "trp", rp->r_trapno, "err", rp->r_err, in dumpregs()
1739 "eip", rp->r_eip, " cs", rp->r_cs); in dumpregs()
1741 "efl", rp->r_efl, "usp", rp->r_uesp, " ss", rp->r_ss); in dumpregs()
1845 kern_gpfault(struct regs *rp) in kern_gpfault() argument
1851 caddr_t pc = (caddr_t)rp->r_pc; in kern_gpfault()
1893 bcopy(rp, trp, offsetof(struct regs, r_pc)); in kern_gpfault()
1899 ASSERT(trp->r_err == rp->r_err); in kern_gpfault()
1921 ASSERT((caddr_t)trp == (caddr_t)rp->r_sp); in kern_gpfault()
1945 trp->r_trapno = rp->r_trapno; in kern_gpfault()
1946 trp->r_err = rp->r_err; in kern_gpfault()