Lines Matching refs:off

168 	s64 off = addr - ip;
169 s64 upper = (off + (1 << 11)) >> 12;
170 s64 lower = off & 0xfff;
172 if (extra_pass && !in_auipc_jalr_range(off)) {
173 pr_err("bpf-jit: target offset 0x%llx is out of range\n", off);
351 int tc_ninsn, off, start_insn = ctx->ninsns;
365 off = offsetof(struct bpf_array, map.max_entries);
366 if (is_12b_check(off, insn))
368 emit(rv_lwu(RV_REG_T1, off, RV_REG_A1), ctx);
369 off = ninsns_rvoff(tc_ninsn - (ctx->ninsns - start_insn));
370 emit_branch(BPF_JGE, RV_REG_A2, RV_REG_T1, off, ctx);
376 off = ninsns_rvoff(tc_ninsn - (ctx->ninsns - start_insn));
377 emit_branch(BPF_JSLT, RV_REG_TCC, RV_REG_ZERO, off, ctx);
385 off = offsetof(struct bpf_array, ptrs);
386 if (is_12b_check(off, insn))
388 emit_ld(RV_REG_T2, off, RV_REG_T2, ctx);
389 off = ninsns_rvoff(tc_ninsn - (ctx->ninsns - start_insn));
390 emit_branch(BPF_JEQ, RV_REG_T2, RV_REG_ZERO, off, ctx);
393 off = offsetof(struct bpf_prog, bpf_func);
394 if (is_12b_check(off, insn))
396 emit_ld(RV_REG_T3, off, RV_REG_T2, ctx);
450 s64 off = 0;
459 off = addr - ip;
462 return emit_jump_and_link(RV_REG_RA, off, fixed_addr, ctx);
471 static void emit_atomic(u8 rd, u8 rs, s16 off, s32 imm, bool is64,
477 if (off) {
478 if (is_12b_int(off)) {
479 emit_addi(RV_REG_T1, rd, off, ctx);
481 emit_imm(RV_REG_T1, off, ctx);
1076 s16 off = insn->off;
1117 switch (insn->off) {
1178 if (off)
1187 if (off)
1316 if (off)
1328 if (off)
1365 /* JUMP off */
1369 rvoff = rv_offset(i, off, ctx);
1377 /* IF (dst COND src) JUMP off */
1400 rvoff = rv_offset(i, off, ctx);
1426 /* IF (dst COND imm) JUMP off */
1447 rvoff = rv_offset(i, off, ctx);
1471 rvoff = rv_offset(i, off, ctx);
1578 /* LDX: dst = *(unsigned size *)(src + off) */
1587 /* LDSX: dst = *(signed size *)(src + off) */
1594 /* LDX | PROBE_MEM32: dst = *(unsigned size *)(src + RV_REG_ARENA + off) */
1613 if (is_12b_int(off)) {
1616 emit(rv_lb(rd, off, rs), ctx);
1618 emit(rv_lbu(rd, off, rs), ctx);
1623 emit_imm(RV_REG_T1, off, ctx);
1633 if (is_12b_int(off)) {
1636 emit(rv_lh(rd, off, rs), ctx);
1638 emit(rv_lhu(rd, off, rs), ctx);
1643 emit_imm(RV_REG_T1, off, ctx);
1653 if (is_12b_int(off)) {
1656 emit(rv_lw(rd, off, rs), ctx);
1658 emit(rv_lwu(rd, off, rs), ctx);
1663 emit_imm(RV_REG_T1, off, ctx);
1673 if (is_12b_int(off)) {
1675 emit_ld(rd, off, rs, ctx);
1680 emit_imm(RV_REG_T1, off, ctx);
1700 /* ST: *(size *)(dst + off) = imm */
1703 if (is_12b_int(off)) {
1704 emit(rv_sb(rd, off, RV_REG_T1), ctx);
1708 emit_imm(RV_REG_T2, off, ctx);
1715 if (is_12b_int(off)) {
1716 emit(rv_sh(rd, off, RV_REG_T1), ctx);
1720 emit_imm(RV_REG_T2, off, ctx);
1726 if (is_12b_int(off)) {
1727 emit_sw(rd, off, RV_REG_T1, ctx);
1731 emit_imm(RV_REG_T2, off, ctx);
1737 if (is_12b_int(off)) {
1738 emit_sd(rd, off, RV_REG_T1, ctx);
1742 emit_imm(RV_REG_T2, off, ctx);
1762 if (is_12b_int(off)) {
1764 emit(rv_sb(rd, off, RV_REG_T1), ctx);
1769 emit_imm(RV_REG_T2, off, ctx);
1776 if (is_12b_int(off)) {
1778 emit(rv_sh(rd, off, RV_REG_T1), ctx);
1783 emit_imm(RV_REG_T2, off, ctx);
1790 if (is_12b_int(off)) {
1792 emit_sw(rd, off, RV_REG_T1, ctx);
1797 emit_imm(RV_REG_T2, off, ctx);
1804 if (is_12b_int(off)) {
1806 emit_sd(rd, off, RV_REG_T1, ctx);
1811 emit_imm(RV_REG_T2, off, ctx);
1827 /* STX: *(size *)(dst + off) = src */
1829 if (is_12b_int(off)) {
1830 emit(rv_sb(rd, off, rs), ctx);
1834 emit_imm(RV_REG_T1, off, ctx);
1839 if (is_12b_int(off)) {
1840 emit(rv_sh(rd, off, rs), ctx);
1844 emit_imm(RV_REG_T1, off, ctx);
1849 if (is_12b_int(off)) {
1850 emit_sw(rd, off, rs, ctx);
1854 emit_imm(RV_REG_T1, off, ctx);
1859 if (is_12b_int(off)) {
1860 emit_sd(rd, off, rs, ctx);
1864 emit_imm(RV_REG_T1, off, ctx);
1870 emit_atomic(rd, rs, off, imm,
1886 if (is_12b_int(off)) {
1888 emit(rv_sb(rd, off, rs), ctx);
1893 emit_imm(RV_REG_T1, off, ctx);
1900 if (is_12b_int(off)) {
1902 emit(rv_sh(rd, off, rs), ctx);
1907 emit_imm(RV_REG_T1, off, ctx);
1914 if (is_12b_int(off)) {
1916 emit_sw(rd, off, rs, ctx);
1921 emit_imm(RV_REG_T1, off, ctx);
1928 if (is_12b_int(off)) {
1930 emit_sd(rd, off, rs, ctx);
1935 emit_imm(RV_REG_T1, off, ctx);