Commit debe28d0 authored by Heiko Stuebner's avatar Heiko Stuebner Committed by Palmer Dabbelt

RISC-V: kprobes: use central defined funct3 constants

Don't redefine values that are already available in the central header
asm/insn.h . Use the values from there instead.
Reviewed-by: default avatarConor Dooley <conor.dooley@microchip.com>
Reviewed-by: default avatarAndrew Jones <ajones@ventanamicro.com>
Reviewed-by: default avatarLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Signed-off-by: default avatarHeiko Stuebner <heiko.stuebner@vrull.eu>
Link: https://lore.kernel.org/r/20221223221332.4127602-9-heiko@sntech.deSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
parent c9c1af3f
...@@ -136,13 +136,6 @@ bool __kprobes simulate_auipc(u32 opcode, unsigned long addr, struct pt_regs *re ...@@ -136,13 +136,6 @@ bool __kprobes simulate_auipc(u32 opcode, unsigned long addr, struct pt_regs *re
#define branch_offset(opcode) \ #define branch_offset(opcode) \
sign_extend32((branch_imm(opcode)), 12) sign_extend32((branch_imm(opcode)), 12)
#define BRANCH_BEQ 0x0
#define BRANCH_BNE 0x1
#define BRANCH_BLT 0x4
#define BRANCH_BGE 0x5
#define BRANCH_BLTU 0x6
#define BRANCH_BGEU 0x7
bool __kprobes simulate_branch(u32 opcode, unsigned long addr, struct pt_regs *regs) bool __kprobes simulate_branch(u32 opcode, unsigned long addr, struct pt_regs *regs)
{ {
/* /*
...@@ -169,22 +162,22 @@ bool __kprobes simulate_branch(u32 opcode, unsigned long addr, struct pt_regs *r ...@@ -169,22 +162,22 @@ bool __kprobes simulate_branch(u32 opcode, unsigned long addr, struct pt_regs *r
offset_tmp = branch_offset(opcode); offset_tmp = branch_offset(opcode);
switch (branch_funct3(opcode)) { switch (branch_funct3(opcode)) {
case BRANCH_BEQ: case RVG_FUNCT3_BEQ:
offset = (rs1_val == rs2_val) ? offset_tmp : 4; offset = (rs1_val == rs2_val) ? offset_tmp : 4;
break; break;
case BRANCH_BNE: case RVG_FUNCT3_BNE:
offset = (rs1_val != rs2_val) ? offset_tmp : 4; offset = (rs1_val != rs2_val) ? offset_tmp : 4;
break; break;
case BRANCH_BLT: case RVG_FUNCT3_BLT:
offset = ((long)rs1_val < (long)rs2_val) ? offset_tmp : 4; offset = ((long)rs1_val < (long)rs2_val) ? offset_tmp : 4;
break; break;
case BRANCH_BGE: case RVG_FUNCT3_BGE:
offset = ((long)rs1_val >= (long)rs2_val) ? offset_tmp : 4; offset = ((long)rs1_val >= (long)rs2_val) ? offset_tmp : 4;
break; break;
case BRANCH_BLTU: case RVG_FUNCT3_BLTU:
offset = (rs1_val < rs2_val) ? offset_tmp : 4; offset = (rs1_val < rs2_val) ? offset_tmp : 4;
break; break;
case BRANCH_BGEU: case RVG_FUNCT3_BGEU:
offset = (rs1_val >= rs2_val) ? offset_tmp : 4; offset = (rs1_val >= rs2_val) ? offset_tmp : 4;
break; break;
default: default:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment