Lines Matching defs:pc

264 fasttrap_tracepoint_init(proc_t *p, fasttrap_tracepoint_t *tp, user_addr_t pc,
270 size_t first = MIN(len, PAGE_SIZE - (pc & PAGE_MASK));
288 if (uread(p, &instr[0], first, pc) != 0)
291 uread(p, &instr[first], len - first, pc + first) != 0) {
401 tp->ftt_dest = pc + tp->ftt_size +
512 tp->ftt_dest = pc + tp->ftt_size +
521 tp->ftt_dest = pc + tp->ftt_size +
527 tp->ftt_dest = pc + tp->ftt_size +
533 tp->ftt_dest = pc + tp->ftt_size +
541 tp->ftt_dest = pc + tp->ftt_size +
547 tp->ftt_dest = pc + tp->ftt_size +
676 fasttrap_return_common(x86_saved_state_t *regs, user_addr_t pc, pid_t pid,
702 bucket = &fasttrap_tpoints.fth_table[FASTTRAP_TPOINTS_INDEX(pid, pc)];
705 if (pid == tp->ftt_pid && pc == tp->ftt_pc &&
734 * following pc to the top of the stack since it's missing
738 cpu_core[CPU->cpu_id].cpuc_missing_tos = pc;
744 pc - id->fti_probe->ftp_faddr,
748 pc - id->fti_probe->ftp_faddr,
958 user_addr_t pc = regs32->eip - 1;
978 fasttrap_sigtrap(p, uthread, pc);
1006 bucket = &fasttrap_tpoints.fth_table[FASTTRAP_TPOINTS_INDEX(pid, pc)];
1012 if (pid == tp->ftt_pid && pc == tp->ftt_pc &&
1031 regs32->eip = pc;
1114 regs32->eip = pc + tp->ftt_size;
1159 new_pc = pc;
1239 new_pc = pc + tp->ftt_size;
1267 new_pc = pc + tp->ftt_size;
1278 new_pc = pc + tp->ftt_size;
1289 new_pc = pc;
1294 new_pc = pc + tp->ftt_size;
1299 new_pc = pc + tp->ftt_size;
1325 new_pc = pc;
1333 new_pc = pc;
1345 * a SIGSEGV and reset the pc to emulate what would happen if
1350 int ret = fasttrap_suword32(addr, (uint32_t)(pc + tp->ftt_size));
1354 new_pc = pc;
1378 * jmp <pc + tp->ftt_size> 5
1388 * <pc + tp->ftt_size> 8
1394 * The %pc is set to a, and curthread->t_dtrace_astpc is set
1396 * kernel, trap() will set %pc to curthread->t_dtrace_astpc
1410 fasttrap_sigtrap(p, uthread, pc); // Should be killing target proc
1411 new_pc = pc;
1427 *(uint32_t *)&scratch[i] = pc - addr - 5;
1439 fasttrap_sigtrap(p, uthread, pc);
1440 new_pc = pc;
1452 uthread->t_dtrace_pc = pc;
1453 uthread->t_dtrace_npc = pc + tp->ftt_size;
1488 fasttrap_return_common(regs, pc, pid, new_pc);
1491 ASSERT(uthread->t_dtrace_pc == pc);
1516 user_addr_t pc = regs64->isf.rip - 1;
1536 fasttrap_sigtrap(p, uthread, pc);
1565 bucket = &fasttrap_tpoints.fth_table[FASTTRAP_TPOINTS_INDEX(pid, pc)];
1571 if (pid == tp->ftt_pid && pc == tp->ftt_pc &&
1590 regs64->isf.rip = pc;
1658 regs64->isf.rip = pc + tp->ftt_size;
1701 new_pc = pc;
1781 new_pc = pc + tp->ftt_size;
1809 new_pc = pc + tp->ftt_size;
1820 new_pc = pc + tp->ftt_size;
1831 new_pc = pc;
1836 new_pc = pc + tp->ftt_size;
1841 new_pc = pc + tp->ftt_size;
1867 new_pc = pc;
1873 new_pc = pc;
1885 * a SIGSEGV and reset the pc to emulate what would happen if
1890 int ret = fasttrap_suword64(addr, pc + tp->ftt_size);
1894 new_pc = pc;
1918 * jmp <pc + tp->ftt_size> 5
1928 * <pc + tp->ftt_size> 8
1934 * The %pc is set to a, and curthread->t_dtrace_astpc is set
1936 * kernel, trap() will set %pc to curthread->t_dtrace_astpc
1981 * <pc + tp->ftt_size> 8
1994 fasttrap_sigtrap(p, uthread, pc); // Should be killing target proc
1995 new_pc = pc;
2055 *reg = pc + tp->ftt_size;
2063 * %rip-relative branch that loads the 64-bit pc value
2072 *(uint64_t *)&scratch[i] = pc + tp->ftt_size;
2084 fasttrap_sigtrap(p, uthread, pc);
2085 new_pc = pc;
2097 uthread->t_dtrace_pc = pc;
2098 uthread->t_dtrace_npc = pc + tp->ftt_size;
2134 fasttrap_return_common(regs, pc, pid, new_pc);
2137 ASSERT(uthread->t_dtrace_pc == pc);
2174 user_addr_t pc = uthread->t_dtrace_pc;
2200 * will correctly set %pc after we return.
2203 regs64->isf.rip = pc;
2205 regs32->eip = pc;
2207 fasttrap_return_common(regs, pc, p->p_pid, npc);