RV_REG_A0
BIT(RV_REG_A0) |
emit(rv_addi(lo(r1), RV_REG_A0, 0), ctx);
emit(rv_addi(RV_REG_A0, lo(r0), 0), ctx);
[BPF_REG_1] = {RV_REG_A1, RV_REG_A0},
emit(rv_addi(lo(r0), RV_REG_A0, 0), ctx);
emit_imm(RV_REG_A0, ctx->insns ? (const s64)im : RV_MAX_COUNT_IMM, ctx);
emit_sd(RV_REG_FP, -retval_off, RV_REG_A0, ctx);
emit_imm(RV_REG_A0, ctx->insns ? (const s64)im : RV_MAX_COUNT_IMM, ctx);
ret = sign_extend(RV_REG_A0, regmap[BPF_REG_0], m->ret_size,
emit_ld(RV_REG_A0, -retval_off, RV_REG_FP, ctx);
emit_mv(bpf_to_rv_reg(BPF_REG_0, ctx), RV_REG_A0, ctx);
emit_addiw(RV_REG_A0, RV_REG_A5, 0, ctx);
[BPF_REG_1] = RV_REG_A0,
[RV_REG_A0] = offsetof(struct pt_regs, a0),
emit_sd(RV_REG_FP, -args_off, RV_REG_A0 + i, ctx);
emit_ld(RV_REG_A0 + i, -args_off, RV_REG_FP, ctx);
emit_imm(RV_REG_A0, (const s64)p, ctx);
emit_mv(RV_REG_S1, RV_REG_A0, ctx);
emit_addi(RV_REG_A0, RV_REG_FP, -args_off, ctx);
emit_sd(RV_REG_FP, -retval_off, RV_REG_A0, ctx);
u32 insn = rv_beq(RV_REG_A0, RV_REG_ZERO, offset >> 1);
emit_imm(RV_REG_A0, (const s64)p, ctx);