swreg
data_st_host_order(struct nfp_prog *nfp_prog, u8 dst_gpr, swreg offset,
swreg lreg, swreg rreg, u8 size, enum cmd_ctx_swap ctx, bool indir)
swreg reg;
swreg reg;
swreg stack_off_reg;
swreg tmp_reg;
swreg lreg, swreg rreg, u8 size, enum cmd_ctx_swap ctx)
swreg lreg, swreg rreg, u8 size, enum cmd_ctx_swap ctx)
swreg tmp_reg;
static void wrp_end32(struct nfp_prog *nfp_prog, swreg reg_in, u8 gpr_out)
wrp_mul_u32(struct nfp_prog *nfp_prog, swreg dst_hi, swreg dst_lo, swreg lreg,
swreg rreg, bool gen_high_half)
wrp_mul_u16(struct nfp_prog *nfp_prog, swreg dst_hi, swreg dst_lo, swreg lreg,
swreg rreg)
swreg multiplier, multiplicand, dst_hi, dst_lo;
swreg dst_both = reg_both(dst), dst_a = reg_a(dst), dst_b = reg_a(dst);
swreg magic;
swreg tmp_b = ur_load_imm_any(nfp_prog, imm, imm_b(nfp_prog));
swreg tmp = imm_a(nfp_prog), tmp_len = imm_b(nfp_prog);
swreg plen, delta;
swreg ptr_type;
swreg stack_depth_reg;
emit_br_bit_relo(struct nfp_prog *nfp_prog, swreg src, u8 bit, u16 addr,
emit_br_bset(struct nfp_prog *nfp_prog, swreg src, u8 bit, u16 addr, u8 defer)
static void emit_rtn(struct nfp_prog *nfp_prog, swreg base, u8 defer)
swreg dst = reg_both(meta->insn.dst_reg * 2);
swreg dst = reg_both(meta->insn.dst_reg * 2);
swreg tmp_reg;
swreg tmp_reg;
swreg src_base, off;
swreg dst_lo, dst_hi, src_lo, src_mid;
swreg src_hi = reg_xfer(idx + 2);
swreg dst_lo, dst_hi, src_lo;
swreg src_hi = reg_xfer(idx + 1);
swreg off_reg;
emit_immed(struct nfp_prog *nfp_prog, swreg dst, u16 imm,
swreg off_reg;
swreg addra, addrb, off;
swreg max_imm = imm_a(nfp_prog);
swreg prev_alu = imm_a(nfp_prog);
swreg or1, or2, tmp_reg;
swreg tmp_reg;
swreg tmp_reg;
swreg tmp_reg;
swreg tmp_reg;
emit_shf(struct nfp_prog *nfp_prog, swreg dst,
swreg lreg, enum shf_op op, swreg rreg, enum shf_sc sc, u8 shift)
emit_shf_indir(struct nfp_prog *nfp_prog, swreg dst,
swreg lreg, enum shf_op op, swreg rreg, enum shf_sc sc)
emit_alu(struct nfp_prog *nfp_prog, swreg dst,
swreg lreg, enum alu_op op, swreg rreg)
emit_mul(struct nfp_prog *nfp_prog, swreg lreg, enum mul_type type,
enum mul_step step, swreg rreg)
emit_ld_field_any(struct nfp_prog *nfp_prog, swreg dst, u8 bmask, swreg src,
emit_ld_field(struct nfp_prog *nfp_prog, swreg dst, u8 bmask, swreg src,
static void emit_csr_wr(struct nfp_prog *nfp_prog, swreg src, u16 addr)
static void wrp_immed(struct nfp_prog *nfp_prog, swreg dst, u32 imm)
wrp_immed_relo(struct nfp_prog *nfp_prog, swreg dst, u32 imm,
static swreg ur_load_imm_any(struct nfp_prog *nfp_prog, u32 imm, swreg tmp_reg)
static swreg re_load_imm_any(struct nfp_prog *nfp_prog, u32 imm, swreg tmp_reg)
static void wrp_mov(struct nfp_prog *nfp_prog, swreg dst, swreg src)
wrp_reg_subpart(struct nfp_prog *nfp_prog, swreg dst, swreg src, u8 field_len,
wrp_reg_or_subpart(struct nfp_prog *nfp_prog, swreg dst, swreg src,
addr40_offset(struct nfp_prog *nfp_prog, u8 src_gpr, swreg offset,
swreg *rega, swreg *regb)
swreg src_base, off;
data_ld(struct nfp_prog *nfp_prog, struct nfp_insn_meta *meta, swreg offset,
u8 dst_gpr, swreg lreg, swreg rreg, int size,
u8 src_gpr, swreg offset, u8 dst_gpr, u8 size)
u8 src_gpr, swreg offset, u8 dst_gpr, u8 size)
swreg rega, regb;
swreg tmp_reg;
swreg tmp_reg;
data_stx_host_order(struct nfp_prog *nfp_prog, u8 dst_gpr, swreg offset,
static u16 nfp_swreg_to_unreg(swreg reg, bool is_dst)
int swreg_to_unrestricted(swreg dst, swreg lreg, swreg rreg,
static u16 nfp_swreg_to_rereg(swreg reg, bool is_dst, bool has_imm8, bool *i8)
int swreg_to_restricted(swreg dst, swreg lreg, swreg rreg,
static inline swreg __enc_swreg(u16 id, u8 type)
return (__force swreg)(id | FIELD_PREP(NN_REG_TYPE, type));
static inline swreg __enc_swreg_lm(u8 id, enum nfp_bpf_lm_mode mode, u8 off)
return (__force swreg)(FIELD_PREP(NN_REG_TYPE, NN_REG_LMEM) |
static inline u32 swreg_raw(swreg reg)
static inline enum nfp_bpf_reg_type swreg_type(swreg reg)
static inline u16 swreg_value(swreg reg)
static inline bool swreg_lm_idx(swreg reg)
static inline bool swreg_lmextn(swreg reg)
static inline enum nfp_bpf_lm_mode swreg_lm_mode(swreg reg)
int swreg_to_unrestricted(swreg dst, swreg lreg, swreg rreg,
int swreg_to_restricted(swreg dst, swreg lreg, swreg rreg,
.swreg = 0,
.swreg = 0,
.swreg = 0,
PR_EEP("SW Reg", le32_to_cpu(pBase->swreg));
reg_val = le32_to_cpu(pBase->swreg);
reg_val = le32_to_cpu(pBase->swreg);
.swreg = 0,
.swreg = 0,
__le32 swreg;