Lines Matching refs:regs

10 static inline bool rv_insn_reg_get_val(struct pt_regs *regs, u32 index,
16 *ptr = *((unsigned long *)regs + index);
23 static inline bool rv_insn_reg_set_val(struct pt_regs *regs, u32 index,
29 *((unsigned long *)regs + index) = val;
36 bool __kprobes simulate_jal(u32 opcode, unsigned long addr, struct pt_regs *regs)
47 ret = rv_insn_reg_set_val(regs, index, addr + 4);
56 instruction_pointer_set(regs, addr + sign_extend32((imm), 20));
61 bool __kprobes simulate_jalr(u32 opcode, unsigned long addr, struct pt_regs *regs)
74 ret = rv_insn_reg_get_val(regs, rs1_index, &base_addr);
78 ret = rv_insn_reg_set_val(regs, rd_index, addr + 4);
82 instruction_pointer_set(regs, (base_addr + sign_extend32((imm), 11))&~1);
101 bool __kprobes simulate_auipc(u32 opcode, unsigned long addr, struct pt_regs *regs)
113 if (!rv_insn_reg_set_val(regs, rd_idx, rd_val))
116 instruction_pointer_set(regs, addr + 4);
139 bool __kprobes simulate_branch(u32 opcode, unsigned long addr, struct pt_regs *regs)
159 if (!rv_insn_reg_get_val(regs, branch_rs1_idx(opcode), &rs1_val) ||
160 !rv_insn_reg_get_val(regs, branch_rs2_idx(opcode), &rs2_val))
187 instruction_pointer_set(regs, addr + offset);
192 bool __kprobes simulate_c_j(u32 opcode, unsigned long addr, struct pt_regs *regs)
211 instruction_pointer_set(regs, addr + sign_extend32(offset, 11));
216 static bool __kprobes simulate_c_jr_jalr(u32 opcode, unsigned long addr, struct pt_regs *regs,
232 if (!rv_insn_reg_get_val(regs, rs1, &jump_addr))
235 if (is_jalr && !rv_insn_reg_set_val(regs, 1, addr + 2))
238 instruction_pointer_set(regs, jump_addr);
243 bool __kprobes simulate_c_jr(u32 opcode, unsigned long addr, struct pt_regs *regs)
245 return simulate_c_jr_jalr(opcode, addr, regs, false);
248 bool __kprobes simulate_c_jalr(u32 opcode, unsigned long addr, struct pt_regs *regs)
250 return simulate_c_jr_jalr(opcode, addr, regs, true);
253 static bool __kprobes simulate_c_bnez_beqz(u32 opcode, unsigned long addr, struct pt_regs *regs,
268 if (!rv_insn_reg_get_val(regs, rs1, &rs1_val))
282 instruction_pointer_set(regs, addr + offset);
287 bool __kprobes simulate_c_bnez(u32 opcode, unsigned long addr, struct pt_regs *regs)
289 return simulate_c_bnez_beqz(opcode, addr, regs, true);
292 bool __kprobes simulate_c_beqz(u32 opcode, unsigned long addr, struct pt_regs *regs)
294 return simulate_c_bnez_beqz(opcode, addr, regs, false);