RV_REG_RA
if (rvc_enabled() && rd == RV_REG_RA && rs && !imm)
emit(rv_sw(RV_REG_SP, stack_adjust - 4, RV_REG_RA), ctx);
emit(rv_lw(RV_REG_RA, stack_adjust - 4, RV_REG_SP), ctx);
emit(rv_jalr(RV_REG_ZERO, RV_REG_RA, 0), ctx);
emit(rv_jalr(RV_REG_RA, RV_REG_T1, lower), ctx);
emit_sd(RV_REG_SP, 8, RV_REG_RA, ctx);
emit_sd(RV_REG_SP, stack_size - 8, RV_REG_RA, ctx);
emit_ld(RV_REG_RA, 8, RV_REG_SP, ctx);
emit_jalr(RV_REG_ZERO, RV_REG_RA, 0, ctx);
emit_ld(RV_REG_RA, stack_size - 8, RV_REG_SP, ctx);
emit_jalr(RV_REG_ZERO, RV_REG_RA, 0, ctx);
if (seen_reg(RV_REG_RA, ctx))
if (seen_reg(RV_REG_RA, ctx)) {
emit_sd(RV_REG_SP, store_offset, RV_REG_RA, ctx);
if (seen_reg(RV_REG_RA, ctx)) {
emit_ld(RV_REG_RA, store_offset, RV_REG_SP, ctx);
emit_jalr(RV_REG_ZERO, is_tail_call ? RV_REG_T3 : RV_REG_RA,
return emit_jump_and_link(RV_REG_RA, off, fixed_addr, ctx);
RV_CTX_F_SEEN_CALL = RV_REG_RA,