RV_REG_FP
return (1 << reg) & (BIT(RV_REG_FP) |
emit(rv_sw(RV_REG_SP, stack_adjust - 8, RV_REG_FP), ctx);
emit(rv_addi(RV_REG_FP, RV_REG_SP, stack_adjust), ctx);
emit(rv_lw(RV_REG_FP, stack_adjust - 8, RV_REG_SP), ctx);
emit(rv_lw(hi(tmp), hi(reg), RV_REG_FP), ctx);
emit(rv_lw(lo(tmp), lo(reg), RV_REG_FP), ctx);
emit(rv_sw(RV_REG_FP, hi(reg), hi(src)), ctx);
emit(rv_sw(RV_REG_FP, lo(reg), lo(src)), ctx);
emit(rv_lw(lo(tmp), lo(reg), RV_REG_FP), ctx);
emit(rv_sw(RV_REG_FP, lo(reg), lo(src)), ctx);
emit(rv_sw(RV_REG_FP, hi(reg), RV_REG_ZERO), ctx);
emit_sd(RV_REG_SP, 0, RV_REG_FP, ctx);
emit_addi(RV_REG_FP, RV_REG_SP, 16, ctx);
emit_sd(RV_REG_SP, stack_size - 16, RV_REG_FP, ctx);
emit_addi(RV_REG_FP, RV_REG_SP, stack_size, ctx);
emit_sd(RV_REG_SP, stack_size - 16, RV_REG_FP, ctx);
emit_addi(RV_REG_FP, RV_REG_SP, stack_size, ctx);
emit_sd(RV_REG_FP, -sreg_off, RV_REG_S1, ctx);
emit_sd(RV_REG_FP, -cookie_off + 8 * i, RV_REG_ZERO, ctx);
emit_sd(RV_REG_FP, -retval_off, RV_REG_ZERO, ctx);
emit_sd(RV_REG_FP, -retval_off, RV_REG_ZERO, ctx);
emit_ld(RV_REG_T1, -retval_off, RV_REG_FP, ctx);
emit_sd(RV_REG_FP, -retval_off, RV_REG_A0, ctx);
emit_sd(RV_REG_FP, -(retval_off - 8), regmap[BPF_REG_0], ctx);
emit_ld(regmap[BPF_REG_0], -(retval_off - 8), RV_REG_FP, ctx);
emit_ld(RV_REG_A0, -retval_off, RV_REG_FP, ctx);
emit_ld(RV_REG_S1, -sreg_off, RV_REG_FP, ctx);
emit_ld(RV_REG_FP, stack_size - 16, RV_REG_SP, ctx);
emit_ld(RV_REG_FP, 0, RV_REG_SP, ctx);
emit_ld(RV_REG_FP, stack_size - 16, RV_REG_SP, ctx);
emit_sd(RV_REG_SP, store_offset, RV_REG_FP, ctx);
emit_addi(RV_REG_FP, RV_REG_SP, stack_adjust, ctx);
emit_ld(RV_REG_FP, store_offset, RV_REG_SP, ctx);
emit_sd(RV_REG_FP, -args_off, RV_REG_A0 + i, ctx);
emit_ld(RV_REG_T1, 16 + (i - RV_MAX_REG_ARGS) * 8, RV_REG_FP, ctx);
emit_sd(RV_REG_FP, -args_off, RV_REG_T1, ctx);
emit_ld(RV_REG_A0 + i, -args_off, RV_REG_FP, ctx);
emit_ld(RV_REG_T1, -(args_off - RV_MAX_REG_ARGS * 8), RV_REG_FP, ctx);
emit_sd(RV_REG_FP, -stk_arg_off, RV_REG_T1, ctx);
emit_sd(RV_REG_FP, stack_off, reg, ctx);
emit_sd(RV_REG_FP, -run_ctx_off + cookie_off, RV_REG_ZERO, ctx);
emit_addi(RV_REG_A1, RV_REG_FP, -run_ctx_off, ctx);
emit_addi(RV_REG_A0, RV_REG_FP, -args_off, ctx);
emit_sd(RV_REG_FP, -retval_off, RV_REG_A0, ctx);
emit_sd(RV_REG_FP, -(retval_off - 8), regmap[BPF_REG_0], ctx);
emit_addi(RV_REG_A2, RV_REG_FP, -run_ctx_off, ctx);