[PATCH v3 03/17] riscv: kgdb: Use generated instruction headers
Nam Cao
namcao at linutronix.de
Thu Aug 6 00:09:50 PDT 2026
Charlie Jenkins <thecharlesjenkins at gmail.com> writes:
> +#define riscv_insn_branch(_insn, regs_ptr, _opcode, _pc, _comparison, type) \
> + ({ \
> + unsigned long _ret; \
> + if ((type)riscv_insn_reg_get_val( \
> + regs_ptr, \
> + riscv_insn_##_insn##_extract_xs1(_opcode)) \
> + _comparison(type) riscv_insn_reg_get_val( \
That _comparison(type) looks like _comparison is a function and type is
its argument.
Can we change to
_comparison (type)riscv_insn_reg_get_val(
to make it clearer?
> } else if (riscv_insn_is_c_beqz(op_code)) {
> - rs1_num = decode_register_index_short(op_code,
> - RVC_C1_RS1_OPOFF);
> - if (!rs1_num || regs_ptr[rs1_num] == 0)
> - *next_addr = RVC_EXTRACT_BTYPE_IMM(op_code) + pc;
> + rs1_num = riscv_insn_c_beqz_extract_xs1(op_code);
> + if (regs_ptr[8 + rs1_num] == 0)
> + *next_addr = riscv_insn_c_beqz_extract_imm(op_code) + pc;
Would it make sense to include the +8 part in riscv_insn_c_beqz_extract_xs1()?
Nam
More information about the kvm-riscv
mailing list