Lines Matching full:rs

210 static void emit_bcc(u8 cond, u8 rd, u8 rs, int rvoff,  in emit_bcc()  argument
215 emit(rv_beq(rd, rs, rvoff >> 1), ctx); in emit_bcc()
218 emit(rv_bltu(rs, rd, rvoff >> 1), ctx); in emit_bcc()
221 emit(rv_bltu(rd, rs, rvoff >> 1), ctx); in emit_bcc()
224 emit(rv_bgeu(rd, rs, rvoff >> 1), ctx); in emit_bcc()
227 emit(rv_bgeu(rs, rd, rvoff >> 1), ctx); in emit_bcc()
230 emit(rv_bne(rd, rs, rvoff >> 1), ctx); in emit_bcc()
233 emit(rv_blt(rs, rd, rvoff >> 1), ctx); in emit_bcc()
236 emit(rv_blt(rd, rs, rvoff >> 1), ctx); in emit_bcc()
239 emit(rv_bge(rd, rs, rvoff >> 1), ctx); in emit_bcc()
242 emit(rv_bge(rs, rd, rvoff >> 1), ctx); in emit_bcc()
246 static void emit_branch(u8 cond, u8 rd, u8 rs, int rvoff, in emit_branch() argument
252 emit_bcc(cond, rd, rs, rvoff, ctx); in emit_branch()
260 * bne rd,rs,foo in emit_branch()
262 * beq rd,rs,<.L1> in emit_branch()
269 emit_bcc(cond, rd, rs, 8, ctx); in emit_branch()
280 emit_bcc(cond, rd, rs, 12, ctx); in emit_branch()
344 static void init_regs(u8 *rd, u8 *rs, const struct bpf_insn *insn, in init_regs() argument
362 *rs = bpf_to_rv_reg(insn->src_reg, ctx); in init_regs()
365 static void emit_zext_32_rd_rs(u8 *rd, u8 *rs, struct rv_jit_context *ctx) in emit_zext_32_rd_rs() argument
369 emit_mv(RV_REG_T1, *rs, ctx); in emit_zext_32_rd_rs()
372 *rs = RV_REG_T1; in emit_zext_32_rd_rs()
375 static void emit_sext_32_rd_rs(u8 *rd, u8 *rs, struct rv_jit_context *ctx) in emit_sext_32_rd_rs() argument
378 emit_addiw(RV_REG_T1, *rs, 0, ctx); in emit_sext_32_rd_rs()
380 *rs = RV_REG_T1; in emit_sext_32_rd_rs()
450 u8 rd = -1, rs = -1, code = insn->code; in bpf_jit_emit_insn() local
454 init_regs(&rd, &rs, insn, ctx); in bpf_jit_emit_insn()
465 emit_mv(rd, rs, ctx); in bpf_jit_emit_insn()
473 emit_add(rd, rd, rs, ctx); in bpf_jit_emit_insn()
480 emit_sub(rd, rd, rs, ctx); in bpf_jit_emit_insn()
482 emit_subw(rd, rd, rs, ctx); in bpf_jit_emit_insn()
489 emit_and(rd, rd, rs, ctx); in bpf_jit_emit_insn()
495 emit_or(rd, rd, rs, ctx); in bpf_jit_emit_insn()
501 emit_xor(rd, rd, rs, ctx); in bpf_jit_emit_insn()
507 emit(is64 ? rv_mul(rd, rd, rs) : rv_mulw(rd, rd, rs), ctx); in bpf_jit_emit_insn()
513 emit(is64 ? rv_divu(rd, rd, rs) : rv_divuw(rd, rd, rs), ctx); in bpf_jit_emit_insn()
519 emit(is64 ? rv_remu(rd, rd, rs) : rv_remuw(rd, rd, rs), ctx); in bpf_jit_emit_insn()
525 emit(is64 ? rv_sll(rd, rd, rs) : rv_sllw(rd, rd, rs), ctx); in bpf_jit_emit_insn()
531 emit(is64 ? rv_srl(rd, rd, rs) : rv_srlw(rd, rd, rs), ctx); in bpf_jit_emit_insn()
537 emit(is64 ? rv_sra(rd, rd, rs) : rv_sraw(rd, rd, rs), ctx); in bpf_jit_emit_insn()
766 emit_sext_32_rd_rs(&rd, &rs, ctx); in bpf_jit_emit_insn()
768 emit_zext_32_rd_rs(&rd, &rs, ctx); in bpf_jit_emit_insn()
778 emit_and(RV_REG_T1, rd, rs, ctx); in bpf_jit_emit_insn()
782 emit_branch(BPF_OP(code), rd, rs, rvoff, ctx); in bpf_jit_emit_insn()
811 rs = RV_REG_T1; in bpf_jit_emit_insn()
814 rs = RV_REG_ZERO; in bpf_jit_emit_insn()
826 emit_branch(BPF_OP(code), rd, rs, rvoff, ctx); in bpf_jit_emit_insn()
897 emit(rv_lbu(rd, off, rs), ctx); in bpf_jit_emit_insn()
902 emit_add(RV_REG_T1, RV_REG_T1, rs, ctx); in bpf_jit_emit_insn()
909 emit(rv_lhu(rd, off, rs), ctx); in bpf_jit_emit_insn()
914 emit_add(RV_REG_T1, RV_REG_T1, rs, ctx); in bpf_jit_emit_insn()
921 emit(rv_lwu(rd, off, rs), ctx); in bpf_jit_emit_insn()
926 emit_add(RV_REG_T1, RV_REG_T1, rs, ctx); in bpf_jit_emit_insn()
933 emit_ld(rd, off, rs, ctx); in bpf_jit_emit_insn()
938 emit_add(RV_REG_T1, RV_REG_T1, rs, ctx); in bpf_jit_emit_insn()
996 emit(rv_sb(rd, off, rs), ctx); in bpf_jit_emit_insn()
1002 emit(rv_sb(RV_REG_T1, 0, rs), ctx); in bpf_jit_emit_insn()
1006 emit(rv_sh(rd, off, rs), ctx); in bpf_jit_emit_insn()
1012 emit(rv_sh(RV_REG_T1, 0, rs), ctx); in bpf_jit_emit_insn()
1016 emit_sw(rd, off, rs, ctx); in bpf_jit_emit_insn()
1022 emit_sw(RV_REG_T1, 0, rs, ctx); in bpf_jit_emit_insn()
1026 emit_sd(rd, off, rs, ctx); in bpf_jit_emit_insn()
1032 emit_sd(RV_REG_T1, 0, rs, ctx); in bpf_jit_emit_insn()
1058 rv_amoadd_w(RV_REG_ZERO, rs, rd, 0, 0) : in bpf_jit_emit_insn()
1059 rv_amoadd_d(RV_REG_ZERO, rs, rd, 0, 0), ctx); in bpf_jit_emit_insn()