Lines Matching refs:pc

262 fasttrap_tracepoint_init(proc_t *p, fasttrap_tracepoint_t *tp, user_addr_t pc,
268 size_t first = MIN(len, PAGE_SIZE - (pc & PAGE_MASK));
286 if (uread(p, &instr[0], first, pc) != 0)
289 uread(p, &instr[first], len - first, pc + first) != 0) {
397 tp->ftt_dest = pc + tp->ftt_size +
506 tp->ftt_dest = pc + tp->ftt_size +
515 tp->ftt_dest = pc + tp->ftt_size +
521 tp->ftt_dest = pc + tp->ftt_size +
527 tp->ftt_dest = pc + tp->ftt_size +
535 tp->ftt_dest = pc + tp->ftt_size +
541 tp->ftt_dest = pc + tp->ftt_size +
666 fasttrap_return_common(x86_saved_state_t *regs, user_addr_t pc, pid_t pid,
692 bucket = &fasttrap_tpoints.fth_table[FASTTRAP_TPOINTS_INDEX(pid, pc)];
695 if (pid == tp->ftt_pid && pc == tp->ftt_pc &&
724 * following pc to the top of the stack since it's missing
728 cpu_core[CPU->cpu_id].cpuc_missing_tos = pc;
734 pc - id->fti_probe->ftp_faddr,
738 pc - id->fti_probe->ftp_faddr,
948 user_addr_t pc = regs32->eip - 1;
968 fasttrap_sigtrap(p, uthread, pc);
996 bucket = &fasttrap_tpoints.fth_table[FASTTRAP_TPOINTS_INDEX(pid, pc)];
1002 if (pid == tp->ftt_pid && pc == tp->ftt_pc &&
1021 regs32->eip = pc;
1104 regs32->eip = pc + tp->ftt_size;
1149 new_pc = pc;
1229 new_pc = pc + tp->ftt_size;
1257 new_pc = pc + tp->ftt_size;
1268 new_pc = pc + tp->ftt_size;
1279 new_pc = pc;
1284 new_pc = pc + tp->ftt_size;
1289 new_pc = pc + tp->ftt_size;
1315 new_pc = pc;
1323 new_pc = pc;
1335 * a SIGSEGV and reset the pc to emulate what would happen if
1340 int ret = fasttrap_suword32(addr, (uint32_t)(pc + tp->ftt_size));
1344 new_pc = pc;
1368 * jmp <pc + tp->ftt_size> 5
1378 * <pc + tp->ftt_size> 8
1384 * The %pc is set to a, and curthread->t_dtrace_astpc is set
1386 * kernel, trap() will set %pc to curthread->t_dtrace_astpc
1400 fasttrap_sigtrap(p, uthread, pc); // Should be killing target proc
1401 new_pc = pc;
1417 *(uint32_t *)&scratch[i] = pc - addr - 5;
1429 fasttrap_sigtrap(p, uthread, pc);
1430 new_pc = pc;
1442 uthread->t_dtrace_pc = pc;
1443 uthread->t_dtrace_npc = pc + tp->ftt_size;
1478 fasttrap_return_common(regs, pc, pid, new_pc);
1481 ASSERT(uthread->t_dtrace_pc == pc);
1506 user_addr_t pc = regs64->isf.rip - 1;
1526 fasttrap_sigtrap(p, uthread, pc);
1555 bucket = &fasttrap_tpoints.fth_table[FASTTRAP_TPOINTS_INDEX(pid, pc)];
1561 if (pid == tp->ftt_pid && pc == tp->ftt_pc &&
1580 regs64->isf.rip = pc;
1648 regs64->isf.rip = pc + tp->ftt_size;
1691 new_pc = pc;
1771 new_pc = pc + tp->ftt_size;
1799 new_pc = pc + tp->ftt_size;
1810 new_pc = pc + tp->ftt_size;
1821 new_pc = pc;
1826 new_pc = pc + tp->ftt_size;
1831 new_pc = pc + tp->ftt_size;
1857 new_pc = pc;
1863 new_pc = pc;
1875 * a SIGSEGV and reset the pc to emulate what would happen if
1880 int ret = fasttrap_suword64(addr, pc + tp->ftt_size);
1884 new_pc = pc;
1908 * jmp <pc + tp->ftt_size> 5
1918 * <pc + tp->ftt_size> 8
1924 * The %pc is set to a, and curthread->t_dtrace_astpc is set
1926 * kernel, trap() will set %pc to curthread->t_dtrace_astpc
1971 * <pc + tp->ftt_size> 8
1984 fasttrap_sigtrap(p, uthread, pc); // Should be killing target proc
1985 new_pc = pc;
2045 *reg = pc + tp->ftt_size;
2053 * %rip-relative branch that loads the 64-bit pc value
2062 *(uint64_t *)&scratch[i] = pc + tp->ftt_size;
2074 fasttrap_sigtrap(p, uthread, pc);
2075 new_pc = pc;
2087 uthread->t_dtrace_pc = pc;
2088 uthread->t_dtrace_npc = pc + tp->ftt_size;
2124 fasttrap_return_common(regs, pc, pid, new_pc);
2127 ASSERT(uthread->t_dtrace_pc == pc);
2164 user_addr_t pc = uthread->t_dtrace_pc;
2187 * will correctly set %pc after we return.
2190 regs64->isf.rip = pc;
2192 regs32->eip = pc;
2194 fasttrap_return_common(regs, pc, p->p_pid, npc);