Home
last modified time | relevance | path

Searched refs:imm (Results 1 – 25 of 131) sorted by relevance

123456

/linux/arch/arm/net/
H A Dbpf_jit_32.h167 #define _AL3_I(op, rd, rn, imm) ((op ## _I) | (rd) << 12 | (rn) << 16 | (imm)) argument
173 #define ARM_ADD_I(rd, rn, imm) _AL3_I(ARM_INST_ADD, rd, rn, imm) argument
174 #define ARM_ADDS_I(rd, rn, imm) _AL3_I(ARM_INST_ADDS, rd, rn, imm) argument
176 #define ARM_ADC_I(rd, rn, imm) _AL3_I(ARM_INST_ADC, rd, rn, imm) argument
180 #define ARM_AND_I(rd, rn, imm) _AL3_I(ARM_INST_AND, rd, rn, imm) argument
183 #define ARM_BIC_I(rd, rn, imm) _AL3_I(ARM_INST_BIC, rd, rn, imm) argument
190 #define ARM_CMP_I(rn, imm) _AL3_I(ARM_INST_CMP, 0, rn, imm) argument
193 #define ARM_EOR_I(rd, rn, imm) _AL3_I(ARM_INST_EOR, rd, rn, imm) argument
198 #define ARM_LDR_R_SI(rt, rn, rm, type, imm) \ argument
201 | (imm) << 7 | (type) << 5 | (rm))
[all …]
/linux/arch/loongarch/kernel/
H A Dinst.c19 unsigned int imm = insn.reg1i20_format.immediate; in simu_pc() local
28 regs->regs[rd] = pc + sign_extend64(imm << 2, 21); in simu_pc()
31 regs->regs[rd] = pc + sign_extend64(imm << 12, 31); in simu_pc()
34 regs->regs[rd] = pc + sign_extend64(imm << 18, 37); in simu_pc()
37 regs->regs[rd] = pc + sign_extend64(imm << 12, 31); in simu_pc()
50 unsigned int imm, imm_l, imm_h, rd, rj; in simu_branch() local
88 imm = insn.reg2i16_format.immediate; in simu_branch()
94 regs->csr_era = pc + sign_extend64(imm << 2, 17); in simu_branch()
100 regs->csr_era = pc + sign_extend64(imm << 2, 17); in simu_branch()
106 regs->csr_era = pc + sign_extend64(imm << 2, 17); in simu_branch()
[all …]
/linux/tools/include/linux/
H A Dfilter.h41 .imm = 0 })
49 .imm = 0 })
59 .imm = IMM })
67 .imm = IMM })
77 .imm = LEN })
87 .imm = 0 })
95 .imm = 0 })
105 .imm = IMM })
113 .imm = IMM })
123 .imm
[all...]
/linux/samples/bpf/
H A Dbpf_insn.h16 .imm = 0 })
24 .imm = 0 })
34 .imm = IMM })
42 .imm = IMM })
52 .imm = 0 })
60 .imm = 0 })
70 .imm = IMM })
78 .imm = IMM })
90 .imm = (__u32) (IMM) }), \
96 .imm = ((__u64) (IMM)) >> 32 })
[all …]
/linux/tools/testing/selftests/bpf/
H A Ddisasm.c23 insn->imm >= 0 && insn->imm < __BPF_FUNC_MAX_ID && in __func_get_name()
24 func_id_str[insn->imm]) in __func_get_name()
25 return func_id_str[insn->imm]; in __func_get_name()
36 snprintf(buff, len, "%+d", insn->imm); in __func_get_name()
145 insn->imm, insn->dst_reg); in print_bpf_end_insn()
154 insn->imm, insn->dst_reg); in print_bpf_bswap_insn()
207 insn->src_reg, ((u32)insn->imm) >> 16, (u16)insn->imm); in print_bpf_insn()
226 insn->imm); in print_bpf_insn()
312 u64 imm = ((u64)(insn + 1)->imm << 32) | (u32)insn->imm; print_bpf_insn() local
[all...]
/linux/kernel/bpf/
H A Ddisasm.c23 insn->imm >= 0 && insn->imm < __BPF_FUNC_MAX_ID && in __func_get_name()
24 func_id_str[insn->imm]) in __func_get_name()
25 return func_id_str[insn->imm]; in __func_get_name()
36 snprintf(buff, len, "%+d", insn->imm); in __func_get_name()
145 insn->imm, insn->dst_reg); in print_bpf_end_insn()
154 insn->imm, insn->dst_reg); in print_bpf_bswap_insn()
207 insn->src_reg, ((u32)insn->imm) >> 16, (u16)insn->imm); in print_bpf_insn()
226 insn->imm); in print_bpf_insn()
236 (insn->imm == BPF_ADD || insn->imm == BPF_AND || in print_bpf_insn()
237 insn->imm == BPF_OR || insn->imm == BPF_XOR)) { in print_bpf_insn()
[all …]
H A Dfixups.c20 insn->imm == BPF_CMPXCHG; in is_cmpxchg_insn()
32 if (insn->imm == 1) in is_addr_space_cast32()
36 if (insn->imm == 1 << 16) in is_addr_space_cast32()
72 if ((class == BPF_ALU || class == BPF_ALU64) && op == BPF_END && insn->imm != 64) in bpf_is_reg64()
119 if (d0->imm != d1->imm) in kfunc_desc_cmp_by_imm_off()
120 return d0->imm < d1->imm ? -1 : 1; in kfunc_desc_cmp_by_imm_off()
131 .imm = insn->imm, in bpf_jit_find_kfunc_model()
159 desc->imm = call_imm; in set_kfunc_desc_imm()
190 ret = bpf_add_kfunc_call(env, insn->imm, insn->off); in add_kfunc_in_insns()
202 int start = idx + insn->imm + 1, subprog; in get_callee_stack_depth()
[all …]
/linux/arch/riscv/net/
H A Dbpf_jit.h269 u32 imm; in rv_j_insn() local
271 imm = (imm20_1 & 0x80000) | ((imm20_1 & 0x3ff) << 9) | in rv_j_insn()
274 return (imm << 12) | (rd << 7) | opcode; in rv_j_insn()
294 u32 imm; in rv_ci_insn() local
296 imm = ((imm6 & 0x20) << 7) | ((imm6 & 0x1f) << 2); in rv_ci_insn()
297 return (funct3 << 13) | (rd << 7) | op | imm; in rv_ci_insn()
332 u32 imm; in rv_cb_insn() local
334 imm = ((imm6 & 0x20) << 7) | ((imm6 & 0x1f) << 2); in rv_cb_insn()
335 return (funct3 << 13) | (funct2 << 10) | ((rd & 0x7) << 7) | op | imm; in rv_cb_insn()
626 u32 imm; in rvc_addi4spn() local
[all …]
H A Dbpf_jit_comp32.c111 static void emit_imm(const s8 rd, s32 imm, struct rv_jit_context *ctx) in emit_imm() argument
113 u32 upper = (imm + (1 << 11)) >> 12; in emit_imm()
114 u32 lower = imm & 0xfff; in emit_imm()
124 static void emit_imm32(const s8 *rd, s32 imm, struct rv_jit_context *ctx) in emit_imm32() argument
127 emit_imm(lo(rd), imm, ctx); in emit_imm32()
130 if (imm >= 0) in emit_imm32()
243 static void emit_alu_i64(const s8 *dst, s32 imm, in emit_alu_i64() argument
251 emit_imm32(rd, imm, ctx); in emit_alu_i64()
254 if (is_12b_int(imm)) { in emit_alu_i64()
255 emit(rv_andi(lo(rd), lo(rd), imm), ctx); in emit_alu_i64()
[all …]
/linux/arch/mips/net/
H A Dbpf_jit_comp32.c174 static void emit_mov_se_i64(struct jit_context *ctx, const u8 dst[], s32 imm) in emit_mov_se_i64() argument
176 emit_mov_i(ctx, lo(dst), imm); in emit_mov_se_i64()
177 if (imm < 0) in emit_mov_se_i64()
202 const u8 dst[], s32 imm, u8 op) in emit_alu_i64() argument
210 if (imm > S32_MIN && imm < 0) in emit_alu_i64()
214 imm = -imm; in emit_alu_i64()
218 imm = -imm; in emit_alu_i64()
223 emit_mov_i(ctx, src, imm); in emit_alu_i64()
231 if (imm < 0) in emit_alu_i64()
239 if (imm < 0) in emit_alu_i64()
[all …]
H A Dbpf_jit_comp64.c158 static void emit_alu_i64(struct jit_context *ctx, u8 dst, s32 imm, u8 op) in emit_alu_i64() argument
163 emit(ctx, ori, dst, dst, (u16)imm); in emit_alu_i64()
167 emit(ctx, xori, dst, dst, (u16)imm); in emit_alu_i64()
175 emit(ctx, dsll_safe, dst, dst, imm); in emit_alu_i64()
179 emit(ctx, dsrl_safe, dst, dst, imm); in emit_alu_i64()
183 emit(ctx, dsra_safe, dst, dst, imm); in emit_alu_i64()
187 emit(ctx, daddiu, dst, dst, imm); in emit_alu_i64()
191 emit(ctx, daddiu, dst, dst, -imm); in emit_alu_i64()
195 emit_alu_i(ctx, dst, imm, op); in emit_alu_i64()
642 s32 imm = insn->imm; in build_insn() local
[all …]
H A Dbpf_jit_comp.h160 void emit_mov_i(struct jit_context *ctx, u8 dst, s32 imm);
166 bool valid_alu_i(u8 op, s32 imm);
169 bool rewrite_alu_i(u8 op, s32 imm, u8 *alu, s32 *val);
172 void emit_alu_i(struct jit_context *ctx, u8 dst, s32 imm, u8 op);
187 bool valid_jmp_i(u8 op, s32 imm);
190 void setup_jmp_i(struct jit_context *ctx, s32 imm, u8 width,
201 void emit_jmp_i(struct jit_context *ctx, u8 dst, s32 imm, s32 off, u8 op);
/linux/arch/arm64/net/
H A Dbpf_jit.h73 #define A64_LS_IMM(Rt, Rn, imm, size, type) \ argument
74 aarch64_insn_gen_load_store_imm(Rt, Rn, imm, \
77 #define A64_STRBI(Wt, Xn, imm) A64_LS_IMM(Wt, Xn, imm, 8, STORE) argument
78 #define A64_LDRBI(Wt, Xn, imm) A64_LS_IMM(Wt, Xn, imm, 8, LOAD) argument
79 #define A64_LDRSBI(Xt, Xn, imm) A64_LS_IMM(Xt, Xn, imm, 8, SIGNED_LOAD) argument
80 #define A64_STRHI(Wt, Xn, imm) A64_LS_IMM(Wt, Xn, imm, 16, STORE) argument
81 #define A64_LDRHI(Wt, Xn, imm) A64_LS_IMM(Wt, Xn, imm, 16, LOAD) argument
82 #define A64_LDRSHI(Xt, Xn, imm) A64_LS_IMM(Xt, Xn, imm, 16, SIGNED_LOAD) argument
83 #define A64_STR32I(Wt, Xn, imm) A64_LS_IMM(Wt, Xn, imm, 32, STORE) argument
84 #define A64_LDR32I(Wt, Xn, imm) A64_LS_IMM(Wt, Xn, imm, 32, LOAD) argument
[all …]
H A Dbpf_jit_comp.c36 #define check_imm(bits, imm) do { \ argument
37 if ((((imm) > 0) && ((imm) >> ((bits) - 1))) || \
38 (((imm) < 0) && (~(imm) >> ((bits) - 1)))) { \
40 i, imm, imm); \
44 #define check_imm19(imm) check_imm(19, imm) argument
45 #define check_imm26(imm) check_imm(26, imm) argument
289 static bool is_addsub_imm(u32 imm) in is_addsub_imm() argument
292 return !(imm & ~0xfff) || !(imm & ~0xfff000); in is_addsub_imm()
296 const int tmp, const s32 imm, struct jit_ctx *ctx) in emit_a64_add_i() argument
298 if (is_addsub_imm(imm)) { in emit_a64_add_i()
[all …]
/linux/arch/arm/probes/kprobes/
H A Dcheckers-common.c34 int imm = insn & 0xff; in checker_stack_use_imm_0xx() local
35 asi->stack_space = imm; in checker_stack_use_imm_0xx()
47 int imm = insn & 0xff; in checker_stack_use_t32strd() local
48 asi->stack_space = imm << 2; in checker_stack_use_t32strd()
56 int imm = ((insn & 0xf00) >> 4) + (insn & 0xf); in checker_stack_use_imm_x0x() local
57 asi->stack_space = imm; in checker_stack_use_imm_x0x()
66 int imm = insn & 0xfff; in checker_stack_use_imm_xxx() local
67 asi->stack_space = imm; in checker_stack_use_imm_xxx()
/linux/arch/riscv/kernel/
H A Dalternative.c81 s32 imm; in riscv_alternative_fix_auipc_jalr() local
84 imm = riscv_insn_extract_utype_itype_imm(auipc_insn, jalr_insn); in riscv_alternative_fix_auipc_jalr()
85 imm -= patch_offset; in riscv_alternative_fix_auipc_jalr()
88 riscv_insn_insert_utype_itype_imm(&call[0], &call[1], imm); in riscv_alternative_fix_auipc_jalr()
96 s32 imm; in riscv_alternative_fix_jal() local
99 imm = riscv_insn_extract_jtype_imm(jal_insn); in riscv_alternative_fix_jal()
100 imm -= patch_offset; in riscv_alternative_fix_jal()
103 riscv_insn_insert_jtype_imm(&jal_insn, imm); in riscv_alternative_fix_jal()
139 s32 imm = riscv_insn_extract_jtype_imm(insn); in riscv_alternative_fix_offsets() local
142 if ((alt_ptr + i * sizeof(u32) + imm) >= alt_ptr && in riscv_alternative_fix_offsets()
[all …]
/linux/arch/arm64/lib/
H A Dinsn.c114 u32 insn, u64 imm) in aarch64_insn_encode_immediate() argument
125 immlo = (imm & ADR_IMM_LOMASK) << ADR_IMM_LOSHIFT; in aarch64_insn_encode_immediate()
126 imm >>= ADR_IMM_HILOSPLIT; in aarch64_insn_encode_immediate()
127 immhi = (imm & ADR_IMM_HIMASK) << ADR_IMM_HISHIFT; in aarch64_insn_encode_immediate()
128 imm = immlo | immhi; in aarch64_insn_encode_immediate()
142 insn |= (imm & mask) << shift; in aarch64_insn_encode_immediate()
415 unsigned int imm, in aarch64_insn_gen_load_store_imm() argument
428 if (imm & ~(BIT(12 + shift) - BIT(shift))) { in aarch64_insn_gen_load_store_imm()
429 pr_err("%s: invalid imm: %d\n", __func__, imm); in aarch64_insn_gen_load_store_imm()
433 imm >>= shift; in aarch64_insn_gen_load_store_imm()
[all …]
/linux/arch/loongarch/net/
H A Dbpf_jit.h140 static inline void move_imm(struct jit_ctx *ctx, enum loongarch_gpr rd, long imm, bool is32) in move_imm() argument
145 if (imm == 0) { in move_imm()
151 if (is_signed_imm12(imm)) { in move_imm()
152 emit_insn(ctx, addiw, rd, LOONGARCH_GPR_ZERO, imm); in move_imm()
157 if (is_unsigned_imm12(imm)) { in move_imm()
158 emit_insn(ctx, ori, rd, LOONGARCH_GPR_ZERO, imm); in move_imm()
163 imm_63_52 = (imm >> 52) & 0xfff; in move_imm()
164 imm_51_0 = imm & 0xfffffffffffff; in move_imm()
171 imm_31_12 = (imm >> 12) & 0xfffff; in move_imm()
175 imm_11_0 = imm & 0xfff; in move_imm()
[all …]
/linux/arch/s390/net/
H A Dbpf_jit_comp.c199 #define EMIT4_IMM(op, b1, imm) \ argument
201 unsigned int __imm = (imm) & 0xffff; \
259 #define EMIT6_PCREL_RIEC(op1, op2, b1, imm, mask, target) \ argument
263 (rel & 0xffff), (op2) | ((imm) & 0xff) << 8); \
265 BUILD_BUG_ON(((unsigned long) (imm)) > 0xff); \
306 #define _EMIT6_IMM(op, imm) \ argument
308 unsigned int __imm = (imm); \
312 #define EMIT6_IMM(op, b1, imm) \ argument
314 _EMIT6_IMM((op) | reg_high(b1) << 16, imm); \
965 s32 imm = insn->imm; in bpf_jit_insn() local
[all …]
/linux/arch/parisc/net/
H A Dbpf_jit_comp64.c135 static void emit_imm32(u8 rd, s32 imm, struct hppa_jit_context *ctx) in emit_imm32() argument
137 u32 lower = im11(imm); in emit_imm32()
140 if (OPTIMIZE_HPPA && relative_bits_ok(imm, 14)) { in emit_imm32()
141 emit(hppa_ldi(imm, rd), ctx); in emit_imm32()
144 if (OPTIMIZE_HPPA && lower == imm) { in emit_imm32()
148 emit(hppa_ldil(imm, rd), ctx); in emit_imm32()
160 static void emit_imm(u8 rd, s64 imm, u8 tmpreg, struct hppa_jit_context *ctx) in emit_imm() argument
165 emit_imm32(rd, imm, ctx); in emit_imm()
168 if (OPTIMIZE_HPPA && is_32b_int(imm)) in emit_imm()
172 upper32 = imm >> 32; in emit_imm()
[all …]
H A Dbpf_jit_comp32.c141 static void emit_imm(const s8 rd, s32 imm, struct hppa_jit_context *ctx) in emit_imm() argument
143 u32 lower = im11(imm); in emit_imm()
146 if (OPTIMIZE_HPPA && relative_bits_ok(imm, 14)) { in emit_imm()
147 emit(hppa_ldi(imm, rd), ctx); in emit_imm()
150 emit(hppa_ldil(imm, rd), ctx); in emit_imm()
156 static void emit_imm32(const s8 *rd, s32 imm, struct hppa_jit_context *ctx) in emit_imm32() argument
160 emit_imm(lo(rd), imm, ctx); in emit_imm32()
164 if (imm >= 0) in emit_imm32()
421 static void emit_alu_i64(const s8 *dst, s32 imm, in emit_alu_i64() argument
435 emit_imm32(rd, imm, ctx); in emit_alu_i64()
[all …]
/linux/arch/loongarch/include/asm/
H A Dinst.h528 u32 larch_insn_gen_break(int imm);
533 u32 larch_insn_gen_lu12iw(enum loongarch_gpr rd, int imm);
534 u32 larch_insn_gen_lu32id(enum loongarch_gpr rd, int imm);
535 u32 larch_insn_gen_lu52id(enum loongarch_gpr rd, enum loongarch_gpr rj, int imm);
536 u32 larch_insn_gen_beq(enum loongarch_gpr rd, enum loongarch_gpr rj, int imm);
537 u32 larch_insn_gen_bne(enum loongarch_gpr rd, enum loongarch_gpr rj, int imm);
538 u32 larch_insn_gen_jirl(enum loongarch_gpr rd, enum loongarch_gpr rj, int imm);
552 int imm) \
555 insn->reg0i15_format.immediate = imm; \
562 #define __emit_break(imm) ((u32)((imm) | (break_op << 15))) in DEF_EMIT_REG0I15_FORMAT() argument
[all …]
/linux/include/linux/
H A Dfilter.h112 .imm = 0 })
123 .imm = 0 })
136 .imm = IMM })
146 .imm = IMM })
158 .imm = LEN })
168 .imm = LEN })
178 .imm = 0 })
186 .imm = 0 })
200 .imm = 0 })
215 .imm = IMM })
[all …]
/linux/arch/sh/kernel/
H A Ddisassemble.c300 int imm = 0; in print_sh_insn() local
317 imm = (nibs[2] << 4) | (nibs[3]); in print_sh_insn()
318 if (imm & 0x80) in print_sh_insn()
319 imm |= ~0xff; in print_sh_insn()
320 imm = ((char)imm) * 2 + 4 ; in print_sh_insn()
323 imm = ((nibs[1]) << 8) | (nibs[2] << 4) | (nibs[3]); in print_sh_insn()
324 if (imm & 0x800) in print_sh_insn()
325 imm |= ~0xfff; in print_sh_insn()
326 imm = imm * 2 + 4; in print_sh_insn()
329 imm = nibs[3]; in print_sh_insn()
[all …]
/linux/Documentation/bpf/standardization/
H A Dinstruction-set.rst166 | imm |
209 **imm**
212 Note that the contents of multi-byte fields ('offset' and 'imm') are
218 opcode offset imm assembly
240 | imm |
258 **imm**
308 K 0 use 32-bit 'imm' value as source operand
376 dst = (u32) dst ^ (u32) imm
380 dst = dst ^ imm
392 'imm' is interpreted as a 32-bit unsigned value. For ``ALU64``,
[all …]

123456