Lines Matching refs:pc
15 static int ftrace_modify_code(unsigned long pc, u32 old, u32 new, bool validate)
20 if (larch_insn_read((void *)pc, &replaced))
27 if (larch_insn_patch_text((void *)pc, new))
34 static bool reachable_by_bl(unsigned long addr, unsigned long pc)
36 long offset = (long)addr - (long)pc;
65 unsigned long pc = rec->ip + LOONGARCH_INSN_SIZE;
73 if (*addr != FTRACE_ADDR && *addr != FTRACE_REGS_ADDR && !reachable_by_bl(*addr, pc))
80 if (reachable_by_bl(*addr, pc))
94 mod = __module_text_address(pc);
121 unsigned long pc;
123 pc = rec->ip + LOONGARCH_INSN_SIZE;
131 new = larch_insn_gen_bl(pc, addr);
132 old = larch_insn_gen_bl(pc, old_addr);
134 return ftrace_modify_code(pc, old, new, true);
141 unsigned long pc;
143 pc = (unsigned long)&ftrace_call;
144 new = larch_insn_gen_bl(pc, (unsigned long)func);
146 return ftrace_modify_code(pc, 0, new, false);
173 unsigned long pc;
175 pc = rec->ip;
179 return ftrace_modify_code(pc, old, new, true);
185 unsigned long pc;
187 pc = rec->ip + LOONGARCH_INSN_SIZE;
193 new = larch_insn_gen_bl(pc, addr);
195 return ftrace_modify_code(pc, old, new, true);
201 unsigned long pc;
203 pc = rec->ip + LOONGARCH_INSN_SIZE;
209 old = larch_insn_gen_bl(pc, addr);
211 return ftrace_modify_code(pc, old, new, true);
253 unsigned long pc, func;
256 pc = (unsigned long)&ftrace_graph_call;
260 branch = larch_insn_gen_b(pc, func);
263 return ftrace_modify_code(pc, nop, branch, true);
265 return ftrace_modify_code(pc, branch, nop, true);