Symbol: insn
arch/alpha/include/asm/extable.h
27
signed int insn;
arch/alpha/include/asm/futex.h
12
#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
arch/alpha/include/asm/futex.h
16
insn \
arch/alpha/kernel/ptrace.c
182
unsigned int insn, op_code;
arch/alpha/kernel/ptrace.c
186
res = read_int(child, pc, (int *) &insn);
arch/alpha/kernel/ptrace.c
190
op_code = insn >> 26;
arch/alpha/kernel/ptrace.c
200
displ = ((s32)(insn << 11)) >> 9;
arch/alpha/kernel/ptrace.c
207
reg_b = (insn >> 16) & 0x1f;
arch/alpha/kernel/ptrace.c
218
(int *) &insn);
arch/alpha/kernel/ptrace.c
221
task_thread_info(child)->bpt_insn[i] = insn;
arch/alpha/kernel/traps.c
83
unsigned int insn;
arch/alpha/kernel/traps.c
84
if (__get_user(insn, (unsigned int __user *)pc + i))
arch/alpha/kernel/traps.c
86
printk("%c%08x%c", i ? ' ' : '<', insn, i ? ' ' : '>');
arch/alpha/lib/csum_partial_copy.c
43
#define __get_word(insn,x,ptr) \
arch/alpha/lib/csum_partial_copy.c
47
"1: "#insn" %0,%2\n" \
arch/alpha/math-emu/math.c
106
__u32 insn;
arch/alpha/math-emu/math.c
109
get_user(insn, (__u32 __user *)pc);
arch/alpha/math-emu/math.c
110
fc = (insn >> 0) & 0x1f; /* destination register */
arch/alpha/math-emu/math.c
111
fb = (insn >> 16) & 0x1f;
arch/alpha/math-emu/math.c
112
fa = (insn >> 21) & 0x1f;
arch/alpha/math-emu/math.c
113
func = (insn >> 5) & 0xf;
arch/alpha/math-emu/math.c
114
src = (insn >> 9) & 0x3;
arch/alpha/math-emu/math.c
115
mode = (insn >> 11) & 0x3;
arch/alpha/math-emu/math.c
220
if (insn & 0x2000) {
arch/alpha/math-emu/math.c
332
insn, pc);
arch/alpha/math-emu/math.c
340
unsigned long insn, opcode, rc, si_code = 0;
arch/alpha/math-emu/math.c
354
get_user(insn, (__u32 __user *)(trigger_pc));
arch/alpha/math-emu/math.c
355
opcode = insn >> 26;
arch/alpha/math-emu/math.c
356
rc = insn & 0x1f;
arch/alpha/math-emu/math.c
365
switch (insn & 0xffff) {
arch/alpha/mm/fault.c
100
__get_user(insn, (unsigned int __user *)regs->pc);
arch/alpha/mm/fault.c
101
if ((insn >> 21 & 0x1f) == 0x1f &&
arch/alpha/mm/fault.c
103
(1ul << (insn >> 26) & 0x30f00001400ul)) {
arch/alpha/mm/fault.c
99
unsigned int insn;
arch/arc/include/asm/futex.h
18
#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg)\
arch/arc/include/asm/futex.h
23
insn "\n" \
arch/arc/include/asm/futex.h
46
#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg)\
arch/arc/include/asm/futex.h
51
insn "\n" \
arch/arc/net/bpf_jit_arcv2.c
1006
const u32 insn = OPC_DIVU | OP_A(rd) | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
1009
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1016
const u32 insn = OPC_DIVUI | OP_A(rd) | OP_B(rd);
arch/arc/net/bpf_jit_arcv2.c
1019
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1028
const u32 insn = OPC_DIVS | OP_A(rd) | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
1031
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1038
const u32 insn = OPC_DIVSI | OP_A(rd) | OP_B(rd);
arch/arc/net/bpf_jit_arcv2.c
1041
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1050
const u32 insn = OPC_REMU | OP_A(rd) | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
1053
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1060
const u32 insn = OPC_REMUI | OP_A(rd) | OP_B(rd);
arch/arc/net/bpf_jit_arcv2.c
1063
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1072
const u32 insn = OPC_REMS | OP_A(rd) | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
1075
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1082
const u32 insn = OPC_REMSI | OP_A(rd) | OP_B(rd);
arch/arc/net/bpf_jit_arcv2.c
1085
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1094
const u32 insn = OPC_AND | OP_A(rd) | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
1097
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1104
const u32 insn = OPC_ANDI | OP_A(rd) | OP_B(rd);
arch/arc/net/bpf_jit_arcv2.c
1107
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1116
const u32 insn = OPC_TST | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
1119
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1131
const u32 insn = OPC_TST | OP_B(rd) | OP_C(rs) | CC_equal;
arch/arc/net/bpf_jit_arcv2.c
1134
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1140
const u32 insn = OPC_OR | OP_A(rd) | OP_B(rs1) | OP_C(rs2);
arch/arc/net/bpf_jit_arcv2.c
1143
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1149
const u32 insn = OPC_ORI | OP_A(rd) | OP_B(rd);
arch/arc/net/bpf_jit_arcv2.c
1152
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1160
const u32 insn = OPC_XOR | OP_A(rd) | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
1163
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1169
const u32 insn = OPC_XORI | OP_A(rd) | OP_B(rd);
arch/arc/net/bpf_jit_arcv2.c
1172
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1180
const u32 insn = OPC_NOT | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
1183
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1189
const u32 insn = OPC_BTSTU6 | OP_B(rs) | BTST_U6(imm);
arch/arc/net/bpf_jit_arcv2.c
1192
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1198
const u32 insn = OPC_ASL | OP_A(rd) | OP_B(rs1) | OP_C(rs2);
arch/arc/net/bpf_jit_arcv2.c
1201
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1207
const u32 insn = OPC_ASLI | OP_A(rd) | OP_B(rs) | ASLI_U6(imm);
arch/arc/net/bpf_jit_arcv2.c
1210
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1216
const u32 insn = OPC_ASR | OP_A(rd) | OP_B(rs1) | OP_C(rs2);
arch/arc/net/bpf_jit_arcv2.c
1219
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1225
const u32 insn = OPC_ASRI | OP_A(rd) | OP_B(rs) | ASRI_U6(imm);
arch/arc/net/bpf_jit_arcv2.c
1228
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1234
const u32 insn = OPC_LSR | OP_A(rd) | OP_B(rs1) | OP_C(rs2);
arch/arc/net/bpf_jit_arcv2.c
1237
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1243
const u32 insn = OPC_LSRI | OP_A(rd) | OP_B(rs) | LSRI_U6(imm);
arch/arc/net/bpf_jit_arcv2.c
1246
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1252
const u32 insn = OPC_SWAPE | OP_B(r) | OP_C(r);
arch/arc/net/bpf_jit_arcv2.c
1255
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1268
const u32 insn = OPC_JL | OP_C(reg);
arch/arc/net/bpf_jit_arcv2.c
1271
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1282
const u32 insn = OPC_BCC | BCC_S21(offset) | COND(cc);
arch/arc/net/bpf_jit_arcv2.c
1285
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
1296
const u32 insn = OPC_B | B_S25(offset);
arch/arc/net/bpf_jit_arcv2.c
1299
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
661
const u32 insn = OPC_MOVI | OP_B(reg) | MOVI_S12(imm);
arch/arc/net/bpf_jit_arcv2.c
664
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
671
const u32 insn = OPC_MOV | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
674
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
681
const u32 insn = OPC_MOV | OP_B(rd) | OP_IMM;
arch/arc/net/bpf_jit_arcv2.c
687
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
696
const u32 insn = OPC_MOV | OP_B(rd) | OP_IMM;
arch/arc/net/bpf_jit_arcv2.c
699
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
708
const u32 insn = OPC_MOV_CC | OP_B(rd) | OP_C(rs) | COND(cc);
arch/arc/net/bpf_jit_arcv2.c
711
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
718
const u32 insn = OPC_MOVU_CC | OP_B(rd) | OP_C(imm) | COND(cc);
arch/arc/net/bpf_jit_arcv2.c
721
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
728
const u32 insn = OPC_SEXB | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
731
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
738
const u32 insn = OPC_SEXH | OP_B(rd) | OP_C(rs);
arch/arc/net/bpf_jit_arcv2.c
741
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
748
const u32 insn = OPC_STORE | STORE_ZZ(zz) | OP_C(reg) |
arch/arc/net/bpf_jit_arcv2.c
752
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
759
const u32 insn = OPC_PUSH | OP_C(reg);
arch/arc/net/bpf_jit_arcv2.c
762
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
769
const u32 insn = OPC_LDU | LOAD_ZZ(zz) | LOAD_C(reg) |
arch/arc/net/bpf_jit_arcv2.c
773
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
780
const u32 insn = OPC_LDS | LOAD_ZZ(zz) | LOAD_C(reg) |
arch/arc/net/bpf_jit_arcv2.c
784
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
791
const u32 insn = OPC_POP | LOAD_C(reg);
arch/arc/net/bpf_jit_arcv2.c
794
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
801
const u32 insn = OPC_ADD | OP_A(ra) | OP_B(ra) | OP_C(rc);
arch/arc/net/bpf_jit_arcv2.c
804
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
811
const u32 insn = OPC_ADDF | OP_A(ra) | OP_B(ra) | OP_C(rc);
arch/arc/net/bpf_jit_arcv2.c
814
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
821
const u32 insn = OPC_ADDIF | OP_A(ra) | OP_B(ra) | ADDI_U6(u6);
arch/arc/net/bpf_jit_arcv2.c
824
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
831
const u32 insn = OPC_ADDI | OP_A(ra) | OP_B(ra) | ADDI_U6(u6);
arch/arc/net/bpf_jit_arcv2.c
834
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
841
const u32 insn = OPC_ADD_I | OP_A(ra) | OP_B(rb);
arch/arc/net/bpf_jit_arcv2.c
844
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
853
const u32 insn = OPC_ADC | OP_A(ra) | OP_B(ra) | OP_C(rc);
arch/arc/net/bpf_jit_arcv2.c
856
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
863
const u32 insn = OPC_ADCI | OP_A(ra) | OP_B(ra) | ADCI_U6(u6);
arch/arc/net/bpf_jit_arcv2.c
866
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
873
const u32 insn = OPC_SUB | OP_A(ra) | OP_B(ra) | OP_C(rc);
arch/arc/net/bpf_jit_arcv2.c
876
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
883
const u32 insn = OPC_SUBF | OP_A(ra) | OP_B(ra) | OP_C(rc);
arch/arc/net/bpf_jit_arcv2.c
886
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
893
const u32 insn = OPC_SUBI | OP_A(ra) | OP_B(ra) | SUBI_U6(u6);
arch/arc/net/bpf_jit_arcv2.c
896
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
903
const u32 insn = OPC_SUB_I | OP_A(ra) | OP_B(ra);
arch/arc/net/bpf_jit_arcv2.c
906
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
915
const u32 insn = OPC_SBC | OP_A(ra) | OP_B(ra) | OP_C(rc);
arch/arc/net/bpf_jit_arcv2.c
918
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
925
const u32 insn = OPC_CMP | OP_B(rb) | OP_C(rc);
arch/arc/net/bpf_jit_arcv2.c
928
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
942
const u32 insn = OPC_CMP | OP_B(rb) | OP_C(rc) | CC_equal;
arch/arc/net/bpf_jit_arcv2.c
945
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
952
const u32 insn = OPC_NEG | OP_A(ra) | OP_B(rb);
arch/arc/net/bpf_jit_arcv2.c
955
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
962
const u32 insn = OPC_MPY | OP_A(ra) | OP_B(rb) | OP_C(rc);
arch/arc/net/bpf_jit_arcv2.c
965
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
972
const u32 insn = OPC_MPYI | OP_A(ra) | OP_B(rb);
arch/arc/net/bpf_jit_arcv2.c
975
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
984
const u32 insn = OPC_MPYDU | OP_A(ra) | OP_B(ra) | OP_C(rc);
arch/arc/net/bpf_jit_arcv2.c
987
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_arcv2.c
994
const u32 insn = OPC_MPYDUI | OP_A(ra) | OP_B(ra);
arch/arc/net/bpf_jit_arcv2.c
997
emit_4_bytes(buf, insn);
arch/arc/net/bpf_jit_core.c
1019
CHECK_RET(handle_jumps(ctx, insn, &len));
arch/arc/net/bpf_jit_core.c
1022
CHECK_RET(handle_call(ctx, insn, &len));
arch/arc/net/bpf_jit_core.c
1029
CHECK_RET(handle_jmp_epilogue(ctx, insn, &len));
arch/arc/net/bpf_jit_core.c
1314
const struct bpf_insn *insn = &prog->insnsi[i];
arch/arc/net/bpf_jit_core.c
1322
if (insn->code == bpf_opc_call) {
arch/arc/net/bpf_jit_core.c
1323
CHECK_RET(handle_call(ctx, insn, &dummy));
arch/arc/net/bpf_jit_core.c
1324
} else if (insn->code == bpf_opc_ldi64) {
arch/arc/net/bpf_jit_core.c
1325
CHECK_RET(handle_ld_imm64(ctx, insn, &dummy));
arch/arc/net/bpf_jit_core.c
252
const struct bpf_insn *insn = ctx->prog->insnsi;
arch/arc/net/bpf_jit_core.c
258
bpf_reg = insn[i].dst_reg;
arch/arc/net/bpf_jit_core.c
259
call = (insn[i].code == (BPF_JMP | BPF_CALL)) ? true : false;
arch/arc/net/bpf_jit_core.c
331
const struct bpf_insn *insn)
arch/arc/net/bpf_jit_core.c
333
return (insn - ctx->prog->insnsi);
arch/arc/net/bpf_jit_core.c
342
static inline s32 get_offset(const struct bpf_insn *insn)
arch/arc/net/bpf_jit_core.c
344
if ((BPF_CLASS(insn->code) == BPF_JMP32) &&
arch/arc/net/bpf_jit_core.c
345
(BPF_OP(insn->code) == BPF_JA))
arch/arc/net/bpf_jit_core.c
346
return insn->imm;
arch/arc/net/bpf_jit_core.c
348
return insn->off;
arch/arc/net/bpf_jit_core.c
369
const struct bpf_insn *insn)
arch/arc/net/bpf_jit_core.c
371
return (get_index_for_insn(ctx, insn) + 1) + get_offset(insn);
arch/arc/net/bpf_jit_core.c
375
static inline bool has_imm(const struct bpf_insn *insn)
arch/arc/net/bpf_jit_core.c
377
return BPF_SRC(insn->code) == BPF_K;
arch/arc/net/bpf_jit_core.c
488
const struct bpf_insn *insn)
arch/arc/net/bpf_jit_core.c
490
const u8 class = BPF_CLASS(insn->code);
arch/arc/net/bpf_jit_core.c
491
const u8 op = BPF_OP(insn->code);
arch/arc/net/bpf_jit_core.c
500
if (!check_insn_idx_valid(ctx, get_index_for_insn(ctx, insn))) {
arch/arc/net/bpf_jit_core.c
505
if (!check_insn_idx_valid(ctx, get_target_index_for_insn(ctx, insn))) {
arch/arc/net/bpf_jit_core.c
518
const struct bpf_insn *insn)
arch/arc/net/bpf_jit_core.c
520
const s32 idx = get_index_for_insn(ctx, insn);
arch/arc/net/bpf_jit_core.c
535
const struct bpf_insn *insn)
arch/arc/net/bpf_jit_core.c
537
const s32 tidx = get_target_index_for_insn(ctx, insn);
arch/arc/net/bpf_jit_core.c
582
const struct bpf_insn *insn,
arch/arc/net/bpf_jit_core.c
588
const bool j32 = (BPF_CLASS(insn->code) == BPF_JMP32) ? true : false;
arch/arc/net/bpf_jit_core.c
589
const u8 rd = insn->dst_reg;
arch/arc/net/bpf_jit_core.c
590
u8 rs = insn->src_reg;
arch/arc/net/bpf_jit_core.c
596
CHECK_RET(bpf_cond_to_arc(BPF_OP(insn->code), &cond));
arch/arc/net/bpf_jit_core.c
599
CHECK_RET(check_bpf_jump(ctx, insn));
arch/arc/net/bpf_jit_core.c
610
if (has_imm(insn) && cond != ARC_CC_AL) {
arch/arc/net/bpf_jit_core.c
613
insn->imm);
arch/arc/net/bpf_jit_core.c
616
insn->imm);
arch/arc/net/bpf_jit_core.c
623
curr_off = get_curr_jit_off(ctx, insn) + *len;
arch/arc/net/bpf_jit_core.c
624
targ_off = get_targ_jit_off(ctx, insn);
arch/arc/net/bpf_jit_core.c
643
const struct bpf_insn *insn, u8 *len)
arch/arc/net/bpf_jit_core.c
650
curr_off = get_curr_jit_off(ctx, insn);
arch/arc/net/bpf_jit_core.c
667
const struct bpf_insn *insn,
arch/arc/net/bpf_jit_core.c
675
ret = bpf_jit_get_func_addr(ctx->prog, insn, ctx->is_extra_pass,
arch/arc/net/bpf_jit_core.c
689
if (insn->src_reg != BPF_PSEUDO_CALL) {
arch/arc/net/bpf_jit_core.c
704
const struct bpf_insn *insn,
arch/arc/net/bpf_jit_core.c
707
const s32 idx = get_index_for_insn(ctx, insn);
arch/arc/net/bpf_jit_core.c
716
*len = mov_r64_i64(buf, insn->dst_reg, insn->imm, (insn + 1)->imm);
arch/arc/net/bpf_jit_core.c
718
if (bpf_pseudo_func(insn))
arch/arc/net/bpf_jit_core.c
738
const struct bpf_insn *insn = &ctx->prog->insnsi[idx];
arch/arc/net/bpf_jit_core.c
739
const u8 code = insn->code;
arch/arc/net/bpf_jit_core.c
740
const u8 dst = insn->dst_reg;
arch/arc/net/bpf_jit_core.c
741
const u8 src = insn->src_reg;
arch/arc/net/bpf_jit_core.c
742
const s16 off = insn->off;
arch/arc/net/bpf_jit_core.c
743
const s32 imm = insn->imm;
arch/arc/net/bpf_jit_core.c
944
CHECK_RET(handle_ld_imm64(ctx, insn, &len));
arch/arm/include/asm/futex.h
25
#define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg) \
arch/arm/include/asm/futex.h
33
" " insn "\n" \
arch/arm/include/asm/futex.h
84
#define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg) \
arch/arm/include/asm/futex.h
89
" " insn "\n" \
arch/arm/include/asm/kprobes.h
69
kprobe_opcode_t *insn;
arch/arm/include/asm/probes.h
30
probes_opcode_t *insn;
arch/arm/include/asm/text-patching.h
10
__patch_text_real(addr, insn, true);
arch/arm/include/asm/text-patching.h
13
static inline void __patch_text_early(void *addr, unsigned int insn)
arch/arm/include/asm/text-patching.h
15
__patch_text_real(addr, insn, false);
arch/arm/include/asm/text-patching.h
5
void patch_text(void *addr, unsigned int insn);
arch/arm/include/asm/text-patching.h
6
void __patch_text_real(void *addr, unsigned int insn, bool remap);
arch/arm/include/asm/text-patching.h
8
static inline void __patch_text(void *addr, unsigned int insn)
arch/arm/include/asm/unwind.h
22
unsigned long insn;
arch/arm/include/asm/uprobes.h
28
u8 insn[MAX_UINSN_BYTES];
arch/arm/kernel/jump_label.c
12
unsigned int insn;
arch/arm/kernel/jump_label.c
15
insn = arm_gen_branch(entry->code, entry->target);
arch/arm/kernel/jump_label.c
17
insn = arm_gen_nop();
arch/arm/kernel/jump_label.c
20
__patch_text_early(addr, insn);
arch/arm/kernel/jump_label.c
22
patch_text(addr, insn);
arch/arm/kernel/patch.c
115
__patch_text(patch->addr, patch->insn);
arch/arm/kernel/patch.c
120
void __kprobes patch_text(void *addr, unsigned int insn)
arch/arm/kernel/patch.c
124
.insn = insn,
arch/arm/kernel/patch.c
16
unsigned int insn;
arch/arm/kernel/patch.c
58
void __kprobes __patch_text_real(void *addr, unsigned int insn, bool remap)
arch/arm/kernel/patch.c
70
if (thumb2 && __opcode_is_thumb16(insn)) {
arch/arm/kernel/patch.c
71
*(u16 *)waddr = __opcode_to_mem_thumb16(insn);
arch/arm/kernel/patch.c
74
u16 first = __opcode_thumb32_first(insn);
arch/arm/kernel/patch.c
75
u16 second = __opcode_thumb32_second(insn);
arch/arm/kernel/patch.c
94
insn = __opcode_to_mem_thumb32(insn);
arch/arm/kernel/patch.c
96
insn = __opcode_to_mem_arm(insn);
arch/arm/kernel/patch.c
98
*(u32 *)waddr = insn;
arch/arm/kernel/setup.c
380
u32 insn = __opcode_thumb32_compose(0xfb90, 0xf0f1);
arch/arm/kernel/setup.c
381
return __opcode_to_mem_thumb32(insn);
arch/arm/kernel/setup.c
392
u32 insn = __opcode_thumb32_compose(0xfbb0, 0xf0f1);
arch/arm/kernel/setup.c
393
return __opcode_to_mem_thumb32(insn);
arch/arm/kernel/setup.c
404
u32 insn = __opcode_thumb32_compose(0x4770, 0x46c0);
arch/arm/kernel/setup.c
405
return __opcode_to_mem_thumb32(insn);
arch/arm/kernel/traps.c
393
u16 insn = __opcode_to_mem_thumb16(BUG_INSTR_VALUE);
arch/arm/kernel/traps.c
396
u32 insn = __opcode_to_mem_arm(BUG_INSTR_VALUE);
arch/arm/kernel/traps.c
402
return bkpt == insn;
arch/arm/kernel/unwind.c
220
ret = (*ctrl->insn >> (ctrl->byte * 8)) & 0xff;
arch/arm/kernel/unwind.c
223
ctrl->insn++;
arch/arm/kernel/unwind.c
273
unsigned long insn)
arch/arm/kernel/unwind.c
279
for (reg = 4; reg <= 4 + (insn & 7); reg++)
arch/arm/kernel/unwind.c
283
if (insn & 0x8)
arch/arm/kernel/unwind.c
314
unsigned long insn;
arch/arm/kernel/unwind.c
326
insn = unwind_get_byte(ctrl);
arch/arm/kernel/unwind.c
327
result |= (insn & 0x7f) << (bytes * 7);
arch/arm/kernel/unwind.c
329
} while (!!(insn & 0x80) && (bytes != sizeof(result)));
arch/arm/kernel/unwind.c
339
unsigned long insn = unwind_get_byte(ctrl);
arch/arm/kernel/unwind.c
342
pr_debug("%s: insn = %08lx\n", __func__, insn);
arch/arm/kernel/unwind.c
344
if ((insn & 0xc0) == 0x00)
arch/arm/kernel/unwind.c
345
ctrl->vrs[SP] += ((insn & 0x3f) << 2) + 4;
arch/arm/kernel/unwind.c
346
else if ((insn & 0xc0) == 0x40) {
arch/arm/kernel/unwind.c
347
ctrl->vrs[SP] -= ((insn & 0x3f) << 2) + 4;
arch/arm/kernel/unwind.c
348
} else if ((insn & 0xf0) == 0x80) {
arch/arm/kernel/unwind.c
351
insn = (insn << 8) | unwind_get_byte(ctrl);
arch/arm/kernel/unwind.c
352
mask = insn & 0x0fff;
arch/arm/kernel/unwind.c
355
insn);
arch/arm/kernel/unwind.c
362
} else if ((insn & 0xf0) == 0x90 &&
arch/arm/kernel/unwind.c
363
(insn & 0x0d) != 0x0d) {
arch/arm/kernel/unwind.c
364
ctrl->vrs[SP] = ctrl->vrs[insn & 0x0f];
arch/arm/kernel/unwind.c
365
} else if ((insn & 0xf0) == 0xa0) {
arch/arm/kernel/unwind.c
366
ret = unwind_exec_pop_r4_to_rN(ctrl, insn);
arch/arm/kernel/unwind.c
369
} else if (insn == 0xb0) {
arch/arm/kernel/unwind.c
374
} else if (insn == 0xb1) {
arch/arm/kernel/unwind.c
379
(insn << 8) | mask);
arch/arm/kernel/unwind.c
386
} else if (insn == 0xb2) {
arch/arm/kernel/unwind.c
391
pr_warn("unwind: Unhandled instruction %02lx\n", insn);
arch/arm/kernel/unwind.c
442
if (idx->insn == 1)
arch/arm/kernel/unwind.c
458
} else if ((idx->insn & 0x80000000) == 0)
arch/arm/kernel/unwind.c
460
ctrl.insn = (unsigned long *)prel31_to_addr(&idx->insn);
arch/arm/kernel/unwind.c
461
else if ((idx->insn & 0xff000000) == 0x80000000)
arch/arm/kernel/unwind.c
463
ctrl.insn = &idx->insn;
arch/arm/kernel/unwind.c
466
idx->insn, idx);
arch/arm/kernel/unwind.c
471
if ((*ctrl.insn & 0xff000000) == 0x80000000) {
arch/arm/kernel/unwind.c
474
} else if ((*ctrl.insn & 0xff000000) == 0x81000000) {
arch/arm/kernel/unwind.c
476
ctrl.entries = 1 + ((*ctrl.insn & 0x00ff0000) >> 16);
arch/arm/kernel/unwind.c
479
*ctrl.insn, ctrl.insn);
arch/arm/kernel/unwind.c
57
const unsigned long *insn; /* pointer to the current instructions word */
arch/arm/net/bpf_jit_32.c
1589
static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx)
arch/arm/net/bpf_jit_32.c
1591
const u8 code = insn->code;
arch/arm/net/bpf_jit_32.c
1592
const s8 *dst = bpf2a32[insn->dst_reg];
arch/arm/net/bpf_jit_32.c
1593
const s8 *src = bpf2a32[insn->src_reg];
arch/arm/net/bpf_jit_32.c
1596
const s16 off = insn->off;
arch/arm/net/bpf_jit_32.c
1597
const s32 imm = insn->imm;
arch/arm/net/bpf_jit_32.c
1598
const int i = insn - ctx->prog->insnsi;
arch/arm/net/bpf_jit_32.c
1629
if (insn->off)
arch/arm/net/bpf_jit_32.c
1630
emit_a32_movsx_r64(is64, insn->off, dst, src, ctx);
arch/arm/net/bpf_jit_32.c
1853
u64 val = (u32)imm | (u64)insn[1].imm << 32;
arch/arm/net/bpf_jit_32.c
1869
if (BPF_MODE(insn->code) == BPF_MEMSX)
arch/arm/net/bpf_jit_32.c
2105
const struct bpf_insn *insn = &(prog->insnsi[i]);
arch/arm/net/bpf_jit_32.c
2108
ret = build_insn(insn, ctx);
arch/arm/probes/decode-arm.c
21
#define branch_displacement(insn) sign_extend(((insn) & 0xffffff) << 2, 25)
arch/arm/probes/decode-arm.c
53
void __kprobes simulate_bbl(probes_opcode_t insn,
arch/arm/probes/decode-arm.c
57
int disp = branch_displacement(insn);
arch/arm/probes/decode-arm.c
59
if (insn & (1 << 24))
arch/arm/probes/decode-arm.c
65
void __kprobes simulate_blx1(probes_opcode_t insn,
arch/arm/probes/decode-arm.c
69
int disp = branch_displacement(insn);
arch/arm/probes/decode-arm.c
700
static void __kprobes arm_singlestep(probes_opcode_t insn,
arch/arm/probes/decode-arm.c
704
asi->insn_handler(insn, asi, regs);
arch/arm/probes/decode-arm.c
72
regs->ARM_pc = iaddr + 8 + disp + ((insn >> 23) & 0x2);
arch/arm/probes/decode-arm.c
720
arm_probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/decode-arm.c
725
asi->insn_check_cc = probes_condition_checks[insn>>28];
arch/arm/probes/decode-arm.c
726
return probes_decode_insn(insn, asi, probes_decode_arm_table, false,
arch/arm/probes/decode-arm.c
76
void __kprobes simulate_blx2bx(probes_opcode_t insn,
arch/arm/probes/decode-arm.c
79
int rm = insn & 0xf;
arch/arm/probes/decode-arm.c
82
if (insn & (1 << 5))
arch/arm/probes/decode-arm.c
91
void __kprobes simulate_mrs(probes_opcode_t insn,
arch/arm/probes/decode-arm.c
94
int rd = (insn >> 12) & 0xf;
arch/arm/probes/decode-arm.c
99
void __kprobes simulate_mov_ipsp(probes_opcode_t insn,
arch/arm/probes/decode-thumb.c
862
thumb16_probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/decode-thumb.c
868
return probes_decode_insn(insn, asi, probes_decode_thumb16_table, true,
arch/arm/probes/decode-thumb.c
873
thumb32_probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/decode-thumb.c
879
return probes_decode_insn(insn, asi, probes_decode_thumb32_table, true,
arch/arm/probes/decode-thumb.h
87
thumb16_probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/decode-thumb.h
91
thumb32_probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/decode.c
196
prepare_emulated_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/decode.c
201
u16 *thumb_insn = (u16 *)asi->insn;
arch/arm/probes/decode.c
205
return insn;
arch/arm/probes/decode.c
207
asi->insn[1] = __opcode_to_mem_arm(0xe12fff1e); /* ARM bx lr */
arch/arm/probes/decode.c
209
asi->insn[1] = __opcode_to_mem_arm(0xe1a0f00e); /* mov pc, lr */
arch/arm/probes/decode.c
212
if (insn < 0xe0000000)
arch/arm/probes/decode.c
213
insn = (insn | 0xe0000000) & ~0x10000000;
arch/arm/probes/decode.c
214
return insn;
arch/arm/probes/decode.c
222
set_emulated_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/decode.c
227
u16 *ip = (u16 *)asi->insn;
arch/arm/probes/decode.c
228
if (is_wide_instruction(insn))
arch/arm/probes/decode.c
229
*ip++ = __opcode_to_mem_thumb16(insn >> 16);
arch/arm/probes/decode.c
230
*ip++ = __opcode_to_mem_thumb16(insn);
arch/arm/probes/decode.c
234
asi->insn[0] = __opcode_to_mem_arm(insn);
arch/arm/probes/decode.c
260
probes_opcode_t insn = *pinsn;
arch/arm/probes/decode.c
284
if ((insn ^ 0xdddddddd) & mask)
arch/arm/probes/decode.c
290
if ((insn ^ 0xffffffff) & mask)
arch/arm/probes/decode.c
296
if (((insn ^ 0xdddddddd) & mask) == 0)
arch/arm/probes/decode.c
303
if (((insn ^ 0xdddddddd) & 0xdddddddd & mask) == 0)
arch/arm/probes/decode.c
308
if (!is_writeback(insn))
arch/arm/probes/decode.c
314
if (((insn ^ 0xffffffff) & mask) == 0)
arch/arm/probes/decode.c
320
insn &= ~mask;
arch/arm/probes/decode.c
321
insn |= new_bits & mask;
arch/arm/probes/decode.c
325
*pinsn = insn;
arch/arm/probes/decode.c
343
int action, probes_opcode_t insn,
arch/arm/probes/decode.c
359
retval = checker_func(insn, asi, h);
arch/arm/probes/decode.c
411
probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/decode.c
423
probes_opcode_t origin_insn = insn;
arch/arm/probes/decode.c
443
insn = prepare_emulated_insn(insn, asi, thumb);
arch/arm/probes/decode.c
455
if (!matched && (insn & h->mask.bits) != h->value.bits)
arch/arm/probes/decode.c
458
if (!decode_regs(&insn, regs, emulate))
arch/arm/probes/decode.c
477
return actions[action].decoder(insn, asi, h);
arch/arm/probes/decode.c
502
return actions[action].decoder(insn, asi, h);
arch/arm/probes/decode.c
505
set_emulated_insn(insn, asi, thumb);
arch/arm/probes/decode.h
109
#define is_writeback(insn) ((insn ^ 0x01000000) & 0x01200000)
arch/arm/probes/kprobes/actions-arm.c
102
int rt = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
103
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
104
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-arm.c
123
if (is_writeback(insn))
arch/arm/probes/kprobes/actions-arm.c
128
emulate_str(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-arm.c
133
int rt = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
134
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
135
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-arm.c
150
if (is_writeback(insn))
arch/arm/probes/kprobes/actions-arm.c
155
emulate_rd12rn16rm0rs8_rwflags(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-arm.c
159
int rd = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
160
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
161
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-arm.c
162
int rs = (insn >> 8) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
190
emulate_rd12rn16rm0_rwflags_nopc(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-arm.c
193
int rd = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
194
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
195
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-arm.c
217
emulate_rd16rn12rm0rs8_rwflags_nopc(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-arm.c
221
int rd = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
222
int rn = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
223
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-arm.c
224
int rs = (insn >> 8) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
247
emulate_rd12rm0_noflags_nopc(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-arm.c
250
int rd = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
251
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-arm.c
267
emulate_rdlo12rdhi16rn0rm8_rwflags_nopc(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-arm.c
271
int rdlo = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
272
int rdhi = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
273
int rn = insn & 0xf;
arch/arm/probes/kprobes/actions-arm.c
274
int rm = (insn >> 8) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
69
emulate_ldrdstrd(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-arm.c
73
int rt = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
74
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-arm.c
75
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-arm.c
93
if (is_writeback(insn))
arch/arm/probes/kprobes/actions-arm.c
98
emulate_ldr(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-common.c
110
emulate_generic_r2_14_noflags(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-common.c
113
emulate_generic_r0_12_noflags(insn, asi,
arch/arm/probes/kprobes/actions-common.c
118
emulate_ldm_r3_15(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-common.c
121
emulate_generic_r0_12_noflags(insn, asi,
arch/arm/probes/kprobes/actions-common.c
127
kprobe_decode_ldmstm(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/kprobes/actions-common.c
131
unsigned reglist = insn & 0xffff;
arch/arm/probes/kprobes/actions-common.c
132
int is_ldm = insn & 0x100000;
arch/arm/probes/kprobes/actions-common.c
133
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-common.c
156
asi->insn[0] = __opcode_to_mem_arm((insn & 0xfff00000) |
arch/arm/probes/kprobes/actions-common.c
18
static void __kprobes simulate_ldm1stm1(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-common.c
22
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-common.c
23
int lbit = insn & (1 << 20);
arch/arm/probes/kprobes/actions-common.c
24
int wbit = insn & (1 << 21);
arch/arm/probes/kprobes/actions-common.c
25
int ubit = insn & (1 << 23);
arch/arm/probes/kprobes/actions-common.c
26
int pbit = insn & (1 << 24);
arch/arm/probes/kprobes/actions-common.c
32
reg_bit_vector = insn & 0xffff;
arch/arm/probes/kprobes/actions-common.c
42
reg_bit_vector = insn & 0xffff;
arch/arm/probes/kprobes/actions-common.c
60
static void __kprobes simulate_stm1_pc(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-common.c
67
simulate_ldm1stm1(insn, asi, regs);
arch/arm/probes/kprobes/actions-common.c
71
static void __kprobes simulate_ldm1_pc(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-common.c
75
simulate_ldm1stm1(insn, asi, regs);
arch/arm/probes/kprobes/actions-common.c
80
emulate_generic_r0_12_noflags(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
106
t32_simulate_ldr_literal(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
110
int rt = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
113
long offset = insn & 0xfff;
arch/arm/probes/kprobes/actions-thumb.c
114
if (insn & 0x00800000)
arch/arm/probes/kprobes/actions-thumb.c
119
if (insn & 0x00400000) {
arch/arm/probes/kprobes/actions-thumb.c
126
} else if (insn & 0x00200000) {
arch/arm/probes/kprobes/actions-thumb.c
128
if (insn & 0x01000000)
arch/arm/probes/kprobes/actions-thumb.c
134
if (insn & 0x01000000)
arch/arm/probes/kprobes/actions-thumb.c
144
t32_decode_ldmstm(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/kprobes/actions-thumb.c
147
enum probes_insn ret = kprobe_decode_ldmstm(insn, asi, d);
arch/arm/probes/kprobes/actions-thumb.c
150
insn = __mem_to_opcode_arm(asi->insn[0]);
arch/arm/probes/kprobes/actions-thumb.c
151
((u16 *)asi->insn)[0] = __opcode_to_mem_thumb16(insn >> 16);
arch/arm/probes/kprobes/actions-thumb.c
152
((u16 *)asi->insn)[1] = __opcode_to_mem_thumb16(insn & 0xffff);
arch/arm/probes/kprobes/actions-thumb.c
158
t32_emulate_ldrdstrd(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
162
int rt1 = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
163
int rt2 = (insn >> 8) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
164
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
185
t32_emulate_ldrstr(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
188
int rt = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
189
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
190
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
211
t32_emulate_rd8rn16rm0_rwflags(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
214
int rd = (insn >> 8) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
215
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
216
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
238
t32_emulate_rd8pc16_noflags(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
24
t32_simulate_table_branch(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
242
int rd = (insn >> 8) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
258
t32_emulate_rd8rn16_noflags(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
261
int rd = (insn >> 8) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
262
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
278
t32_emulate_rdlo12rdhi8rn16rm0_noflags(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
28
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
282
int rdlo = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
283
int rdhi = (insn >> 8) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
284
int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
285
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
29
int rm = insn & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
306
t16_simulate_bxblx(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
310
int rm = (insn >> 3) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
313
if (insn & (1 << 7)) /* BLX ? */
arch/arm/probes/kprobes/actions-thumb.c
320
t16_simulate_ldr_literal(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
324
long index = insn & 0xff;
arch/arm/probes/kprobes/actions-thumb.c
325
int rt = (insn >> 8) & 0x7;
arch/arm/probes/kprobes/actions-thumb.c
330
t16_simulate_ldrstr_sp_relative(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
334
long index = insn & 0xff;
arch/arm/probes/kprobes/actions-thumb.c
335
int rt = (insn >> 8) & 0x7;
arch/arm/probes/kprobes/actions-thumb.c
336
if (insn & 0x800) /* LDR */
arch/arm/probes/kprobes/actions-thumb.c
343
t16_simulate_reladr(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
346
unsigned long base = (insn & 0x800) ? regs->ARM_sp
arch/arm/probes/kprobes/actions-thumb.c
348
long offset = insn & 0xff;
arch/arm/probes/kprobes/actions-thumb.c
349
int rt = (insn >> 8) & 0x7;
arch/arm/probes/kprobes/actions-thumb.c
35
if (insn & 0x10) /* TBH */
arch/arm/probes/kprobes/actions-thumb.c
354
t16_simulate_add_sp_imm(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
357
long imm = insn & 0x7f;
arch/arm/probes/kprobes/actions-thumb.c
358
if (insn & 0x80) /* SUB */
arch/arm/probes/kprobes/actions-thumb.c
365
t16_simulate_cbz(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
368
int rn = insn & 0x7;
arch/arm/probes/kprobes/actions-thumb.c
369
probes_opcode_t nonzero = regs->uregs[rn] ? insn : ~insn;
arch/arm/probes/kprobes/actions-thumb.c
371
long i = insn & 0x200;
arch/arm/probes/kprobes/actions-thumb.c
372
long imm5 = insn & 0xf8;
arch/arm/probes/kprobes/actions-thumb.c
379
t16_simulate_it(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
390
cpsr |= (insn & 0xfc) << 8;
arch/arm/probes/kprobes/actions-thumb.c
391
cpsr |= (insn & 0x03) << 25;
arch/arm/probes/kprobes/actions-thumb.c
396
t16_singlestep_it(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
400
t16_simulate_it(insn, asi, regs);
arch/arm/probes/kprobes/actions-thumb.c
404
t16_decode_it(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/kprobes/actions-thumb.c
412
t16_simulate_cond_branch(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
416
long offset = insn & 0x7f;
arch/arm/probes/kprobes/actions-thumb.c
417
offset -= insn & 0x80; /* Apply sign bit */
arch/arm/probes/kprobes/actions-thumb.c
422
t16_decode_cond_branch(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/kprobes/actions-thumb.c
425
int cc = (insn >> 8) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
432
t16_simulate_branch(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
436
long offset = insn & 0x3ff;
arch/arm/probes/kprobes/actions-thumb.c
437
offset -= insn & 0x400; /* Apply sign bit */
arch/arm/probes/kprobes/actions-thumb.c
44
t32_simulate_mrs(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
442
t16_emulate_loregs(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
467
t16_emulate_loregs_rwflags(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
47
int rd = (insn >> 8) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
470
regs->ARM_cpsr = t16_emulate_loregs(insn, asi, regs);
arch/arm/probes/kprobes/actions-thumb.c
474
t16_emulate_loregs_noitrwflags(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
477
unsigned long cpsr = t16_emulate_loregs(insn, asi, regs);
arch/arm/probes/kprobes/actions-thumb.c
483
t16_emulate_hiregs(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
487
int rdn = (insn & 0x7) | ((insn & 0x80) >> 4);
arch/arm/probes/kprobes/actions-thumb.c
488
int rm = (insn >> 3) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
514
t16_decode_hiregs(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/kprobes/actions-thumb.c
517
insn &= ~0x00ff;
arch/arm/probes/kprobes/actions-thumb.c
518
insn |= 0x001; /* Set Rdn = R1 and Rm = R0 */
arch/arm/probes/kprobes/actions-thumb.c
519
((u16 *)asi->insn)[0] = __opcode_to_mem_thumb16(insn);
arch/arm/probes/kprobes/actions-thumb.c
525
t16_emulate_push(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
53
t32_simulate_cond_branch(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
544
t16_decode_push(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/kprobes/actions-thumb.c
553
((u16 *)asi->insn)[0] = __opcode_to_mem_thumb16(0xe929);
arch/arm/probes/kprobes/actions-thumb.c
555
((u16 *)asi->insn)[1] = __opcode_to_mem_thumb16(insn & 0x1ff);
arch/arm/probes/kprobes/actions-thumb.c
561
t16_emulate_pop_nopc(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
58
long offset = insn & 0x7ff; /* imm11 */
arch/arm/probes/kprobes/actions-thumb.c
580
t16_emulate_pop_pc(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
59
offset += (insn & 0x003f0000) >> 5; /* imm6 */
arch/arm/probes/kprobes/actions-thumb.c
60
offset += (insn & 0x00002000) << 4; /* J1 */
arch/arm/probes/kprobes/actions-thumb.c
603
t16_decode_pop(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/kprobes/actions-thumb.c
61
offset += (insn & 0x00000800) << 7; /* J2 */
arch/arm/probes/kprobes/actions-thumb.c
612
((u16 *)asi->insn)[0] = __opcode_to_mem_thumb16(0xe8b9);
arch/arm/probes/kprobes/actions-thumb.c
614
((u16 *)asi->insn)[1] = __opcode_to_mem_thumb16(insn & 0x1ff);
arch/arm/probes/kprobes/actions-thumb.c
615
asi->insn_handler = insn & 0x100 ? t16_emulate_pop_pc
arch/arm/probes/kprobes/actions-thumb.c
62
offset -= (insn & 0x04000000) >> 7; /* Apply sign bit */
arch/arm/probes/kprobes/actions-thumb.c
68
t32_decode_cond_branch(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/kprobes/actions-thumb.c
71
int cc = (insn >> 22) & 0xf;
arch/arm/probes/kprobes/actions-thumb.c
78
t32_simulate_branch(probes_opcode_t insn,
arch/arm/probes/kprobes/actions-thumb.c
83
long offset = insn & 0x7ff; /* imm11 */
arch/arm/probes/kprobes/actions-thumb.c
84
offset += (insn & 0x03ff0000) >> 5; /* imm10 */
arch/arm/probes/kprobes/actions-thumb.c
85
offset += (insn & 0x00002000) << 9; /* J1 */
arch/arm/probes/kprobes/actions-thumb.c
86
offset += (insn & 0x00000800) << 10; /* J2 */
arch/arm/probes/kprobes/actions-thumb.c
87
if (insn & 0x04000000)
arch/arm/probes/kprobes/actions-thumb.c
92
if (insn & (1 << 14)) {
arch/arm/probes/kprobes/actions-thumb.c
95
if (!(insn & (1 << 12))) {
arch/arm/probes/kprobes/checkers-arm.c
101
static enum probes_insn arm_check_regs_normal(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-arm.c
109
for (i = 0; i < 5; regs >>= 4, insn >>= 4, i++)
arch/arm/probes/kprobes/checkers-arm.c
111
asi->register_usage_flags |= 1 << (insn & 0xf);
arch/arm/probes/kprobes/checkers-arm.c
117
static enum probes_insn arm_check_regs_ldmstm(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-arm.c
121
unsigned int reglist = insn & 0xffff;
arch/arm/probes/kprobes/checkers-arm.c
122
unsigned int rn = (insn >> 16) & 0xf;
arch/arm/probes/kprobes/checkers-arm.c
127
static enum probes_insn arm_check_regs_mov_ip_sp(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-arm.c
13
static enum probes_insn __kprobes arm_check_stack(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-arm.c
148
static enum probes_insn arm_check_regs_ldrdstrd(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-arm.c
152
int rdt = (insn >> 12) & 0xf;
arch/arm/probes/kprobes/checkers-arm.c
153
arm_check_regs_normal(insn, asi, h);
arch/arm/probes/kprobes/checkers-arm.c
83
return probes_decode_insn(insn, asi, table, false, false, stack_check_actions, NULL);
arch/arm/probes/kprobes/checkers-arm.c
93
static enum probes_insn __kprobes arm_check_regs_nouse(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-common.c
13
enum probes_insn checker_stack_use_none(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-common.c
21
enum probes_insn checker_stack_use_unknown(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-common.c
30
enum probes_insn checker_stack_use_imm_0xx(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-common.c
34
int imm = insn & 0xff;
arch/arm/probes/kprobes/checkers-common.c
43
static enum probes_insn checker_stack_use_t32strd(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-common.c
47
int imm = insn & 0xff;
arch/arm/probes/kprobes/checkers-common.c
52
enum probes_insn checker_stack_use_imm_x0x(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-common.c
56
int imm = ((insn & 0xf00) >> 4) + (insn & 0xf);
arch/arm/probes/kprobes/checkers-common.c
62
enum probes_insn checker_stack_use_imm_xxx(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-common.c
66
int imm = insn & 0xfff;
arch/arm/probes/kprobes/checkers-common.c
71
enum probes_insn checker_stack_use_stmdx(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-common.c
75
unsigned int reglist = insn & 0xffff;
arch/arm/probes/kprobes/checkers-common.c
76
int pbit = insn & (1 << 24);
arch/arm/probes/kprobes/checkers-thumb.c
13
static enum probes_insn __kprobes t32_check_stack(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-thumb.c
75
return probes_decode_insn(insn, asi, table, false, false, stack_check_actions, NULL);
arch/arm/probes/kprobes/checkers-thumb.c
87
static enum probes_insn __kprobes t16_check_stack(probes_opcode_t insn,
arch/arm/probes/kprobes/checkers-thumb.c
91
unsigned int reglist = insn & 0x1ff;
arch/arm/probes/kprobes/core.c
100
((uintptr_t)p->ainsn.insn | thumb);
arch/arm/probes/kprobes/core.c
104
p->ainsn.insn = NULL;
arch/arm/probes/kprobes/core.c
134
kprobe_opcode_t insn = p->opcode;
arch/arm/probes/kprobes/core.c
139
if (insn >= 0xe0000000)
arch/arm/probes/kprobes/core.c
142
brkp |= insn & 0xf0000000; /* Copy condition from insn */
arch/arm/probes/kprobes/core.c
158
unsigned int insn;
arch/arm/probes/kprobes/core.c
164
__patch_text(p->addr, p->insn);
arch/arm/probes/kprobes/core.c
168
void __kprobes kprobes_remove_breakpoint(void *addr, unsigned int insn)
arch/arm/probes/kprobes/core.c
172
.insn = insn,
arch/arm/probes/kprobes/core.c
186
if (p->ainsn.insn) {
arch/arm/probes/kprobes/core.c
187
free_insn_slot(p->ainsn.insn, 0);
arch/arm/probes/kprobes/core.c
188
p->ainsn.insn = NULL;
arch/arm/probes/kprobes/core.c
50
kprobe_opcode_t insn;
arch/arm/probes/kprobes/core.c
62
insn = __mem_to_opcode_thumb16(((u16 *)addr)[0]);
arch/arm/probes/kprobes/core.c
63
if (is_wide_instruction(insn)) {
arch/arm/probes/kprobes/core.c
65
insn = __opcode_thumb32_compose(insn, inst2);
arch/arm/probes/kprobes/core.c
78
insn = __mem_to_opcode_arm(*p->addr);
arch/arm/probes/kprobes/core.c
84
p->opcode = insn;
arch/arm/probes/kprobes/core.c
85
p->ainsn.insn = tmp_insn;
arch/arm/probes/kprobes/core.c
87
switch ((*decode_insn)(insn, &p->ainsn, true, actions, checkers)) {
arch/arm/probes/kprobes/core.c
92
p->ainsn.insn = get_insn_slot();
arch/arm/probes/kprobes/core.c
93
if (!p->ainsn.insn)
arch/arm/probes/kprobes/core.c
96
p->ainsn.insn[is] = tmp_insn[is];
arch/arm/probes/kprobes/core.c
97
flush_insns(p->ainsn.insn,
arch/arm/probes/kprobes/core.c
98
sizeof(p->ainsn.insn[0]) * MAX_INSN_SIZE);
arch/arm/probes/kprobes/core.h
25
extern void kprobes_remove_breakpoint(void *addr, unsigned int insn);
arch/arm/probes/kprobes/core.h
28
kprobe_decode_ldmstm(kprobe_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/kprobes/opt-arm.c
111
return optinsn->insn != NULL;
arch/arm/probes/kprobes/opt-arm.c
142
if (op->optinsn.insn) {
arch/arm/probes/kprobes/opt-arm.c
143
free_optinsn_slot(op->optinsn.insn, dirty);
arch/arm/probes/kprobes/opt-arm.c
144
op->optinsn.insn = NULL;
arch/arm/probes/kprobes/opt-arm.c
285
op->optinsn.insn = code;
arch/arm/probes/kprobes/opt-arm.c
294
unsigned long insn;
arch/arm/probes/kprobes/opt-arm.c
304
insn = arm_gen_branch((unsigned long)op->kp.addr,
arch/arm/probes/kprobes/opt-arm.c
305
(unsigned long)op->optinsn.insn);
arch/arm/probes/kprobes/opt-arm.c
306
BUG_ON(insn == 0);
arch/arm/probes/kprobes/opt-arm.c
312
insn = (__mem_to_opcode_arm(
arch/arm/probes/kprobes/opt-arm.c
314
(insn & 0x0fffffff);
arch/arm/probes/kprobes/opt-arm.c
321
kprobes_remove_breakpoint(op->kp.addr, insn);
arch/arm/probes/kprobes/test-core.c
774
coverage_add_registers(struct coverage_entry *entry, kprobe_opcode_t insn)
arch/arm/probes/kprobes/test-core.c
780
int reg = (insn >> i) & 0xf;
arch/arm/probes/kprobes/test-core.c
823
if (!is_writeback(insn))
arch/arm/probes/kprobes/test-core.c
841
static void coverage_add(kprobe_opcode_t insn)
arch/arm/probes/kprobes/test-core.c
859
if ((insn & h->mask.bits) != h->value.bits)
arch/arm/probes/kprobes/test-core.c
873
coverage_add_registers(entry, insn);
arch/arm/probes/uprobes/actions-arm.c
105
decode_pc_ro(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/uprobes/actions-arm.c
129
decode_wb_pc(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/uprobes/actions-arm.c
134
enum probes_insn ret = decode_pc_ro(insn, asi, d);
arch/arm/probes/uprobes/actions-arm.c
136
if (((insn >> 12) & 0xf) == 15)
arch/arm/probes/uprobes/actions-arm.c
144
decode_rd12rn16rm0rs8_rwflags(probes_opcode_t insn,
arch/arm/probes/uprobes/actions-arm.c
148
return decode_wb_pc(insn, asi, d, true);
arch/arm/probes/uprobes/actions-arm.c
152
decode_ldr(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/uprobes/actions-arm.c
155
return decode_wb_pc(insn, asi, d, false);
arch/arm/probes/uprobes/actions-arm.c
159
uprobe_decode_ldmstm(probes_opcode_t insn,
arch/arm/probes/uprobes/actions-arm.c
165
unsigned reglist = insn & 0xffff;
arch/arm/probes/uprobes/actions-arm.c
166
int rn = (insn >> 16) & 0xf;
arch/arm/probes/uprobes/actions-arm.c
167
int lbit = insn & (1 << 20);
arch/arm/probes/uprobes/actions-arm.c
180
insn ^= 0xc000;
arch/arm/probes/uprobes/actions-arm.c
183
auprobe->ixol[0] = __opcode_to_mem_arm(insn);
arch/arm/probes/uprobes/actions-arm.c
19
probes_opcode_t insn = __mem_to_opcode_arm(*pinsn);
arch/arm/probes/uprobes/actions-arm.c
26
for (regs = oregs; regs; regs >>= 4, insn >>= 4) {
arch/arm/probes/uprobes/actions-arm.c
30
free &= ~(1 << (insn & 0xf));
arch/arm/probes/uprobes/actions-arm.c
47
insn = temp;
arch/arm/probes/uprobes/actions-arm.c
58
insn &= ~mask;
arch/arm/probes/uprobes/actions-arm.c
59
insn |= free & mask;
arch/arm/probes/uprobes/actions-arm.c
62
*pinsn = __opcode_to_mem_arm(insn);
arch/arm/probes/uprobes/core.c
103
if (insn >= 0xe0000000)
arch/arm/probes/uprobes/core.c
106
bpinsn |= insn & 0xf0000000; /* Copy condition from insn */
arch/arm/probes/uprobes/core.c
23
bool is_swbp_insn(uprobe_opcode_t *insn)
arch/arm/probes/uprobes/core.c
25
return (__mem_to_opcode_arm(*insn) & 0x0fffffff) ==
arch/arm/probes/uprobes/core.c
53
opcode = __mem_to_opcode_arm(*(unsigned int *) auprobe->insn);
arch/arm/probes/uprobes/core.c
75
unsigned int insn;
arch/arm/probes/uprobes/core.c
83
insn = __mem_to_opcode_arm(*(unsigned int *)auprobe->insn);
arch/arm/probes/uprobes/core.c
84
auprobe->ixol[0] = __opcode_to_mem_arm(insn);
arch/arm/probes/uprobes/core.c
87
ret = arm_probes_decode_insn(insn, &auprobe->asi, false,
arch/arm/probes/uprobes/core.h
13
enum probes_insn decode_ldr(probes_opcode_t insn,
arch/arm/probes/uprobes/core.h
18
decode_rd12rn16rm0rs8_rwflags(probes_opcode_t insn,
arch/arm/probes/uprobes/core.h
23
decode_wb_pc(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/uprobes/core.h
27
decode_pc_ro(probes_opcode_t insn, struct arch_probes_insn *asi,
arch/arm/probes/uprobes/core.h
9
enum probes_insn uprobe_decode_ldmstm(probes_opcode_t insn,
arch/arm64/include/asm/asm-extable.h
105
#define _ASM_EXTABLE_KACCESS_ERR_ZERO(insn, fixup, err, zero) \
arch/arm64/include/asm/asm-extable.h
107
__ASM_EXTABLE_RAW(#insn, #fixup, \
arch/arm64/include/asm/asm-extable.h
114
#define _ASM_EXTABLE_UACCESS_ERR(insn, fixup, err) \
arch/arm64/include/asm/asm-extable.h
115
_ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, wzr)
arch/arm64/include/asm/asm-extable.h
117
#define _ASM_EXTABLE_UACCESS(insn, fixup) \
arch/arm64/include/asm/asm-extable.h
118
_ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, wzr, wzr)
arch/arm64/include/asm/asm-extable.h
120
#define _ASM_EXTABLE_KACCESS_ERR(insn, fixup, err) \
arch/arm64/include/asm/asm-extable.h
121
_ASM_EXTABLE_KACCESS_ERR_ZERO(insn, fixup, err, wzr)
arch/arm64/include/asm/asm-extable.h
123
#define _ASM_EXTABLE_KACCESS(insn, fixup) \
arch/arm64/include/asm/asm-extable.h
124
_ASM_EXTABLE_KACCESS_ERR_ZERO(insn, fixup, wzr, wzr)
arch/arm64/include/asm/asm-extable.h
126
#define _ASM_EXTABLE_LOAD_UNALIGNED_ZEROPAD(insn, fixup, data, addr) \
arch/arm64/include/asm/asm-extable.h
128
__ASM_EXTABLE_RAW(#insn, #fixup, \
arch/arm64/include/asm/asm-extable.h
32
#define __ASM_EXTABLE_RAW(insn, fixup, type, data) \
arch/arm64/include/asm/asm-extable.h
35
.long ((insn) - .); \
arch/arm64/include/asm/asm-extable.h
44
#define _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, zero) \
arch/arm64/include/asm/asm-extable.h
45
__ASM_EXTABLE_RAW(insn, fixup, \
arch/arm64/include/asm/asm-extable.h
52
#define _ASM_EXTABLE_UACCESS_ERR(insn, fixup, err) \
arch/arm64/include/asm/asm-extable.h
53
_ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, wzr)
arch/arm64/include/asm/asm-extable.h
55
#define _ASM_EXTABLE_UACCESS(insn, fixup) \
arch/arm64/include/asm/asm-extable.h
56
_ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, wzr, wzr)
arch/arm64/include/asm/asm-extable.h
62
.macro _asm_extable_uaccess, insn, fixup
arch/arm64/include/asm/asm-extable.h
70
.macro _cond_uaccess_extable, insn, fixup
arch/arm64/include/asm/asm-extable.h
76
.macro _asm_extable_uaccess_cpy, insn, fixup, uaccess_is_write
arch/arm64/include/asm/asm-extable.h
84
#define __ASM_EXTABLE_RAW(insn, fixup, type, data) \
arch/arm64/include/asm/asm-extable.h
87
".long ((" insn ") - .)\n" \
arch/arm64/include/asm/asm-extable.h
96
#define _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, zero) \
arch/arm64/include/asm/asm-extable.h
98
__ASM_EXTABLE_RAW(#insn, #fixup, \
arch/arm64/include/asm/extable.h
20
int insn, fixup;
arch/arm64/include/asm/fpsimdmacros.h
254
.macro _for var:req, from:req, to:req, insn:vararg
arch/arm64/include/asm/futex.h
15
#define __futex_atomic_op(insn, ret, oldval, uaddr, tmp, oparg) \
arch/arm64/include/asm/futex.h
23
insn "\n" \
arch/arm64/include/asm/insn.h
442
static __always_inline bool aarch64_insn_is_steppable_hint(u32 insn)
arch/arm64/include/asm/insn.h
444
if (!aarch64_insn_is_hint(insn))
arch/arm64/include/asm/insn.h
447
switch (insn & 0xFE0) {
arch/arm64/include/asm/insn.h
466
static __always_inline bool aarch64_insn_is_branch(u32 insn)
arch/arm64/include/asm/insn.h
470
return aarch64_insn_is_b(insn) ||
arch/arm64/include/asm/insn.h
471
aarch64_insn_is_bl(insn) ||
arch/arm64/include/asm/insn.h
472
aarch64_insn_is_cbz(insn) ||
arch/arm64/include/asm/insn.h
473
aarch64_insn_is_cbnz(insn) ||
arch/arm64/include/asm/insn.h
474
aarch64_insn_is_tbz(insn) ||
arch/arm64/include/asm/insn.h
475
aarch64_insn_is_tbnz(insn) ||
arch/arm64/include/asm/insn.h
476
aarch64_insn_is_ret(insn) ||
arch/arm64/include/asm/insn.h
477
aarch64_insn_is_ret_auth(insn) ||
arch/arm64/include/asm/insn.h
478
aarch64_insn_is_br(insn) ||
arch/arm64/include/asm/insn.h
479
aarch64_insn_is_br_auth(insn) ||
arch/arm64/include/asm/insn.h
480
aarch64_insn_is_blr(insn) ||
arch/arm64/include/asm/insn.h
481
aarch64_insn_is_blr_auth(insn) ||
arch/arm64/include/asm/insn.h
482
aarch64_insn_is_bcond(insn);
arch/arm64/include/asm/insn.h
485
static __always_inline bool aarch64_insn_is_branch_imm(u32 insn)
arch/arm64/include/asm/insn.h
487
return aarch64_insn_is_b(insn) ||
arch/arm64/include/asm/insn.h
488
aarch64_insn_is_bl(insn) ||
arch/arm64/include/asm/insn.h
489
aarch64_insn_is_tbz(insn) ||
arch/arm64/include/asm/insn.h
490
aarch64_insn_is_tbnz(insn) ||
arch/arm64/include/asm/insn.h
491
aarch64_insn_is_cbz(insn) ||
arch/arm64/include/asm/insn.h
492
aarch64_insn_is_cbnz(insn) ||
arch/arm64/include/asm/insn.h
493
aarch64_insn_is_bcond(insn);
arch/arm64/include/asm/insn.h
496
static __always_inline bool aarch64_insn_is_adr_adrp(u32 insn)
arch/arm64/include/asm/insn.h
498
return aarch64_insn_is_adr(insn) ||
arch/arm64/include/asm/insn.h
499
aarch64_insn_is_adrp(insn);
arch/arm64/include/asm/insn.h
502
static __always_inline bool aarch64_insn_is_dsb(u32 insn)
arch/arm64/include/asm/insn.h
504
return aarch64_insn_is_dsb_base(insn) ||
arch/arm64/include/asm/insn.h
505
aarch64_insn_is_dsb_nxs(insn);
arch/arm64/include/asm/insn.h
508
static __always_inline bool aarch64_insn_is_barrier(u32 insn)
arch/arm64/include/asm/insn.h
510
return aarch64_insn_is_dmb(insn) ||
arch/arm64/include/asm/insn.h
511
aarch64_insn_is_dsb(insn) ||
arch/arm64/include/asm/insn.h
512
aarch64_insn_is_isb(insn) ||
arch/arm64/include/asm/insn.h
513
aarch64_insn_is_sb(insn) ||
arch/arm64/include/asm/insn.h
514
aarch64_insn_is_clrex(insn) ||
arch/arm64/include/asm/insn.h
515
aarch64_insn_is_ssbb(insn) ||
arch/arm64/include/asm/insn.h
516
aarch64_insn_is_pssbb(insn);
arch/arm64/include/asm/insn.h
519
static __always_inline bool aarch64_insn_is_store_single(u32 insn)
arch/arm64/include/asm/insn.h
521
return aarch64_insn_is_store_imm(insn) ||
arch/arm64/include/asm/insn.h
522
aarch64_insn_is_store_pre(insn) ||
arch/arm64/include/asm/insn.h
523
aarch64_insn_is_store_post(insn);
arch/arm64/include/asm/insn.h
526
static __always_inline bool aarch64_insn_is_store_pair(u32 insn)
arch/arm64/include/asm/insn.h
528
return aarch64_insn_is_stp(insn) ||
arch/arm64/include/asm/insn.h
529
aarch64_insn_is_stp_pre(insn) ||
arch/arm64/include/asm/insn.h
530
aarch64_insn_is_stp_post(insn);
arch/arm64/include/asm/insn.h
533
static __always_inline bool aarch64_insn_is_load_single(u32 insn)
arch/arm64/include/asm/insn.h
535
return aarch64_insn_is_load_imm(insn) ||
arch/arm64/include/asm/insn.h
536
aarch64_insn_is_load_pre(insn) ||
arch/arm64/include/asm/insn.h
537
aarch64_insn_is_load_post(insn);
arch/arm64/include/asm/insn.h
540
static __always_inline bool aarch64_insn_is_load_pair(u32 insn)
arch/arm64/include/asm/insn.h
542
return aarch64_insn_is_ldp(insn) ||
arch/arm64/include/asm/insn.h
543
aarch64_insn_is_ldp_pre(insn) ||
arch/arm64/include/asm/insn.h
544
aarch64_insn_is_ldp_post(insn);
arch/arm64/include/asm/insn.h
547
static __always_inline bool aarch64_insn_uses_literal(u32 insn)
arch/arm64/include/asm/insn.h
551
return aarch64_insn_is_ldr_lit(insn) ||
arch/arm64/include/asm/insn.h
552
aarch64_insn_is_ldrsw_lit(insn) ||
arch/arm64/include/asm/insn.h
553
aarch64_insn_is_adr_adrp(insn) ||
arch/arm64/include/asm/insn.h
554
aarch64_insn_is_prfm_lit(insn);
arch/arm64/include/asm/insn.h
557
enum aarch64_insn_encoding_class aarch64_get_insn_class(u32 insn);
arch/arm64/include/asm/insn.h
558
u64 aarch64_insn_decode_immediate(enum aarch64_insn_imm_type type, u32 insn);
arch/arm64/include/asm/insn.h
560
u32 insn, u64 imm);
arch/arm64/include/asm/insn.h
562
u32 insn);
arch/arm64/include/asm/insn.h
583
static __always_inline bool aarch64_insn_is_nop(u32 insn)
arch/arm64/include/asm/insn.h
585
return insn == aarch64_insn_gen_nop();
arch/arm64/include/asm/insn.h
690
s32 aarch64_get_branch_offset(u32 insn);
arch/arm64/include/asm/insn.h
691
u32 aarch64_set_branch_offset(u32 insn, s32 offset);
arch/arm64/include/asm/insn.h
693
s32 aarch64_insn_adrp_get_offset(u32 insn);
arch/arm64/include/asm/insn.h
694
u32 aarch64_insn_adrp_set_offset(u32 insn, s32 offset);
arch/arm64/include/asm/insn.h
696
bool aarch32_insn_is_wide(u32 insn);
arch/arm64/include/asm/insn.h
702
u32 aarch64_insn_extract_system_reg(u32 insn);
arch/arm64/include/asm/insn.h
703
u32 aarch32_insn_extract_reg_num(u32 insn, int offset);
arch/arm64/include/asm/insn.h
704
u32 aarch32_insn_mcr_extract_opc2(u32 insn);
arch/arm64/include/asm/insn.h
705
u32 aarch32_insn_mcr_extract_crm(u32 insn);
arch/arm64/include/asm/runtime-const.h
50
u32 insn = le32_to_cpu(*p);
arch/arm64/include/asm/runtime-const.h
51
insn &= 0xffe0001f;
arch/arm64/include/asm/runtime-const.h
52
insn |= (val & 0xffff) << 5;
arch/arm64/include/asm/runtime-const.h
53
*p = cpu_to_le32(insn);
arch/arm64/include/asm/runtime-const.h
76
u32 insn = le32_to_cpu(*p);
arch/arm64/include/asm/runtime-const.h
77
insn &= 0xffc0ffff;
arch/arm64/include/asm/runtime-const.h
78
insn |= (val & 63) << 16;
arch/arm64/include/asm/runtime-const.h
79
*p = cpu_to_le32(insn);
arch/arm64/include/asm/sysreg.h
1101
#define gicr_insn(insn) read_sysreg_s(GICV5_OP_GICR_##insn)
arch/arm64/include/asm/sysreg.h
1102
#define gic_insn(v, insn) write_sysreg_s(v, GICV5_OP_GIC_##insn)
arch/arm64/include/asm/text-patching.h
11
void *aarch64_insn_set(void *dst, u32 insn, size_t len);
arch/arm64/include/asm/text-patching.h
14
int aarch64_insn_patch_text_nosync(void *addr, u32 insn);
arch/arm64/include/asm/text-patching.h
8
int aarch64_insn_write(void *addr, u32 insn);
arch/arm64/include/asm/traps.h
16
bool try_emulate_armv8_deprecated(struct pt_regs *regs, u32 insn);
arch/arm64/include/asm/traps.h
19
try_emulate_armv8_deprecated(struct pt_regs *regs, u32 insn)
arch/arm64/include/asm/uprobes.h
24
__le32 insn;
arch/arm64/kernel/alternative.c
101
return insn;
arch/arm64/kernel/alternative.c
112
u32 insn;
arch/arm64/kernel/alternative.c
114
insn = get_alt_insn(alt, origptr + i, replptr + i);
arch/arm64/kernel/alternative.c
115
updptr[i] = cpu_to_le32(insn);
arch/arm64/kernel/alternative.c
61
u32 insn;
arch/arm64/kernel/alternative.c
63
insn = le32_to_cpu(*altinsnptr);
arch/arm64/kernel/alternative.c
65
if (aarch64_insn_is_branch_imm(insn)) {
arch/arm64/kernel/alternative.c
66
s32 offset = aarch64_get_branch_offset(insn);
arch/arm64/kernel/alternative.c
78
insn = aarch64_set_branch_offset(insn, offset);
arch/arm64/kernel/alternative.c
80
} else if (aarch64_insn_is_adrp(insn)) {
arch/arm64/kernel/alternative.c
89
orig_offset = aarch64_insn_adrp_get_offset(insn);
arch/arm64/kernel/alternative.c
92
insn = aarch64_insn_adrp_set_offset(insn, new_offset);
arch/arm64/kernel/alternative.c
93
} else if (aarch64_insn_uses_literal(insn)) {
arch/arm64/kernel/armv8_deprecated.c
231
static bool try_emulate_swp(struct pt_regs *regs, u32 insn)
arch/arm64/kernel/armv8_deprecated.c
237
if ((insn & 0x0fb00ff0) != 0x01000090)
arch/arm64/kernel/armv8_deprecated.c
240
return swp_handler(regs, insn) == 0;
arch/arm64/kernel/armv8_deprecated.c
314
static bool try_emulate_cp15_barrier(struct pt_regs *regs, u32 insn)
arch/arm64/kernel/armv8_deprecated.c
319
if ((insn & 0x0fff0fdf) == 0x0e070f9a)
arch/arm64/kernel/armv8_deprecated.c
320
return cp15barrier_handler(regs, insn) == 0;
arch/arm64/kernel/armv8_deprecated.c
322
if ((insn & 0x0fff0fff) == 0x0e070f95)
arch/arm64/kernel/armv8_deprecated.c
323
return cp15barrier_handler(regs, insn) == 0;
arch/arm64/kernel/armv8_deprecated.c
351
char *insn;
arch/arm64/kernel/armv8_deprecated.c
356
insn = "setend be";
arch/arm64/kernel/armv8_deprecated.c
359
insn = "setend le";
arch/arm64/kernel/armv8_deprecated.c
363
trace_instruction_emulation(insn, regs->pc);
arch/arm64/kernel/armv8_deprecated.c
384
static bool try_emulate_setend(struct pt_regs *regs, u32 insn)
arch/arm64/kernel/armv8_deprecated.c
387
(insn & 0xfffffff7) == 0x0000b650)
arch/arm64/kernel/armv8_deprecated.c
388
return t16_setend_handler(regs, insn) == 0;
arch/arm64/kernel/armv8_deprecated.c
391
(insn & 0xfffffdff) == 0xf1010000)
arch/arm64/kernel/armv8_deprecated.c
392
return a32_setend_handler(regs, insn) == 0;
arch/arm64/kernel/armv8_deprecated.c
421
struct insn_emulation *insn = data;
arch/arm64/kernel/armv8_deprecated.c
422
if (insn->set_hw_mode)
arch/arm64/kernel/armv8_deprecated.c
423
insn->set_hw_mode(true);
arch/arm64/kernel/armv8_deprecated.c
428
struct insn_emulation *insn = data;
arch/arm64/kernel/armv8_deprecated.c
429
if (insn->set_hw_mode)
arch/arm64/kernel/armv8_deprecated.c
430
insn->set_hw_mode(false);
arch/arm64/kernel/armv8_deprecated.c
434
static int run_all_cpu_set_hw_mode(struct insn_emulation *insn, bool enable)
arch/arm64/kernel/armv8_deprecated.c
436
if (!insn->set_hw_mode)
arch/arm64/kernel/armv8_deprecated.c
439
on_each_cpu(enable_insn_hw_mode, (void *)insn, true);
arch/arm64/kernel/armv8_deprecated.c
441
on_each_cpu(disable_insn_hw_mode, (void *)insn, true);
arch/arm64/kernel/armv8_deprecated.c
463
struct insn_emulation *insn = insn_emulations[i];
arch/arm64/kernel/armv8_deprecated.c
464
bool enable = READ_ONCE(insn->current_mode) == INSN_HW;
arch/arm64/kernel/armv8_deprecated.c
465
if (insn->status == INSN_UNAVAILABLE)
arch/arm64/kernel/armv8_deprecated.c
468
if (insn->set_hw_mode && insn->set_hw_mode(enable)) {
arch/arm64/kernel/armv8_deprecated.c
470
cpu, insn->name);
arch/arm64/kernel/armv8_deprecated.c
479
static int update_insn_emulation_mode(struct insn_emulation *insn,
arch/arm64/kernel/armv8_deprecated.c
48
u32 insn);
arch/arm64/kernel/armv8_deprecated.c
490
if (!run_all_cpu_set_hw_mode(insn, false))
arch/arm64/kernel/armv8_deprecated.c
491
pr_notice("Disabled %s support\n", insn->name);
arch/arm64/kernel/armv8_deprecated.c
495
switch (insn->current_mode) {
arch/arm64/kernel/armv8_deprecated.c
501
ret = run_all_cpu_set_hw_mode(insn, true);
arch/arm64/kernel/armv8_deprecated.c
503
pr_notice("Enabled %s support\n", insn->name);
arch/arm64/kernel/armv8_deprecated.c
515
struct insn_emulation *insn = container_of(table->data, struct insn_emulation, current_mode);
arch/arm64/kernel/armv8_deprecated.c
516
enum insn_emulation_mode prev_mode = insn->current_mode;
arch/arm64/kernel/armv8_deprecated.c
521
if (ret || !write || prev_mode == insn->current_mode)
arch/arm64/kernel/armv8_deprecated.c
524
ret = update_insn_emulation_mode(insn, prev_mode);
arch/arm64/kernel/armv8_deprecated.c
527
WRITE_ONCE(insn->current_mode, prev_mode);
arch/arm64/kernel/armv8_deprecated.c
528
update_insn_emulation_mode(insn, INSN_UNDEF);
arch/arm64/kernel/armv8_deprecated.c
535
static void __init register_insn_emulation(struct insn_emulation *insn)
arch/arm64/kernel/armv8_deprecated.c
539
insn->min = INSN_UNDEF;
arch/arm64/kernel/armv8_deprecated.c
541
switch (insn->status) {
arch/arm64/kernel/armv8_deprecated.c
543
insn->current_mode = INSN_EMULATE;
arch/arm64/kernel/armv8_deprecated.c
545
run_all_cpu_set_hw_mode(insn, false);
arch/arm64/kernel/armv8_deprecated.c
546
insn->max = INSN_HW;
arch/arm64/kernel/armv8_deprecated.c
549
insn->current_mode = INSN_UNDEF;
arch/arm64/kernel/armv8_deprecated.c
550
insn->max = INSN_EMULATE;
arch/arm64/kernel/armv8_deprecated.c
553
insn->current_mode = INSN_UNDEF;
arch/arm64/kernel/armv8_deprecated.c
554
insn->max = INSN_UNDEF;
arch/arm64/kernel/armv8_deprecated.c
559
update_insn_emulation_mode(insn, INSN_UNDEF);
arch/arm64/kernel/armv8_deprecated.c
561
if (insn->status != INSN_UNAVAILABLE) {
arch/arm64/kernel/armv8_deprecated.c
562
sysctl = &insn->sysctl;
arch/arm64/kernel/armv8_deprecated.c
567
sysctl->procname = insn->name;
arch/arm64/kernel/armv8_deprecated.c
568
sysctl->data = &insn->current_mode;
arch/arm64/kernel/armv8_deprecated.c
569
sysctl->extra1 = &insn->min;
arch/arm64/kernel/armv8_deprecated.c
570
sysctl->extra2 = &insn->max;
arch/arm64/kernel/armv8_deprecated.c
577
bool try_emulate_armv8_deprecated(struct pt_regs *regs, u32 insn)
arch/arm64/kernel/armv8_deprecated.c
593
if (ie->try_emulate(regs, insn))
arch/arm64/kernel/cpufeature.c
4146
bool try_emulate_mrs(struct pt_regs *regs, u32 insn)
arch/arm64/kernel/cpufeature.c
4150
if (compat_user_mode(regs) || !aarch64_insn_is_mrs(insn))
arch/arm64/kernel/cpufeature.c
4157
sys_reg = (u32)aarch64_insn_decode_immediate(AARCH64_INSN_IMM_16, insn) << 5;
arch/arm64/kernel/cpufeature.c
4158
rt = aarch64_insn_decode_register(AARCH64_INSN_REGTYPE_RT, insn);
arch/arm64/kernel/ftrace.c
130
u32 insn = le32_to_cpu(*(__le32 *)addr);
arch/arm64/kernel/ftrace.c
132
if (aarch64_insn_is_bti(insn)) {
arch/arm64/kernel/ftrace.c
134
} else if (insn != aarch64_insn_gen_nop()) {
arch/arm64/kernel/ftrace.c
136
(void *)addr, insn);
arch/arm64/kernel/ftrace.c
149
u32 insn;
arch/arm64/kernel/ftrace.c
197
if (get_kernel_nofault(insn, (u32 *)(fentry_ip - AARCH64_INSN_SIZE * 2)))
arch/arm64/kernel/ftrace.c
200
insn = *(u32 *)(fentry_ip - AARCH64_INSN_SIZE * 2);
arch/arm64/kernel/ftrace.c
203
if (aarch64_insn_is_bti(le32_to_cpu((__le32)insn)))
arch/arm64/kernel/jump_label.c
18
u32 insn;
arch/arm64/kernel/jump_label.c
21
insn = aarch64_insn_gen_branch_imm(jump_entry_code(entry),
arch/arm64/kernel/jump_label.c
25
insn = aarch64_insn_gen_nop();
arch/arm64/kernel/jump_label.c
28
aarch64_insn_patch_text_nosync(addr, insn);
arch/arm64/kernel/module.c
132
u32 insn = le32_to_cpu(*place);
arch/arm64/kernel/module.c
143
insn &= ~(3 << 29);
arch/arm64/kernel/module.c
146
insn |= 2 << 29;
arch/arm64/kernel/module.c
159
insn = aarch64_insn_encode_immediate(AARCH64_INSN_IMM_16, insn, imm);
arch/arm64/kernel/module.c
160
WRITE_PLACE(place, cpu_to_le32(insn), me);
arch/arm64/kernel/module.c
174
u32 insn = le32_to_cpu(*place);
arch/arm64/kernel/module.c
185
insn = aarch64_insn_encode_immediate(imm_type, insn, imm);
arch/arm64/kernel/module.c
186
WRITE_PLACE(place, cpu_to_le32(insn), me);
arch/arm64/kernel/module.c
207
u32 insn;
arch/arm64/kernel/module.c
216
insn = le32_to_cpu(*place);
arch/arm64/kernel/module.c
217
insn &= ~BIT(31);
arch/arm64/kernel/module.c
223
insn = aarch64_insn_gen_branch_imm((u64)place, val,
arch/arm64/kernel/module.c
227
WRITE_PLACE(place, cpu_to_le32(insn), me);
arch/arm64/kernel/patching.c
172
noinstr void *aarch64_insn_set(void *dst, u32 insn, size_t len)
arch/arm64/kernel/patching.c
177
return __text_poke(text_poke_memset, dst, &insn, len);
arch/arm64/kernel/patching.c
180
int __kprobes aarch64_insn_patch_text_nosync(void *addr, u32 insn)
arch/arm64/kernel/patching.c
189
ret = aarch64_insn_write(tp, insn);
arch/arm64/kernel/patching.c
66
static int __kprobes __aarch64_insn_write(void *addr, __le32 insn)
arch/arm64/kernel/patching.c
75
ret = copy_to_kernel_nofault(waddr, &insn, AARCH64_INSN_SIZE);
arch/arm64/kernel/patching.c
83
int __kprobes aarch64_insn_write(void *addr, u32 insn)
arch/arm64/kernel/patching.c
85
return __aarch64_insn_write(addr, cpu_to_le32(insn));
arch/arm64/kernel/pi/patch-scs.c
66
u32 insn = le32_to_cpup((void *)loc);
arch/arm64/kernel/pi/patch-scs.c
68
switch (insn) {
arch/arm64/kernel/probes/decode-insn.c
100
aarch64_insn_is_cbnz(insn)) {
arch/arm64/kernel/probes/decode-insn.c
102
} else if (aarch64_insn_is_tbz(insn) ||
arch/arm64/kernel/probes/decode-insn.c
103
aarch64_insn_is_tbnz(insn)) {
arch/arm64/kernel/probes/decode-insn.c
105
} else if (aarch64_insn_is_adr_adrp(insn)) {
arch/arm64/kernel/probes/decode-insn.c
107
} else if (aarch64_insn_is_b(insn) ||
arch/arm64/kernel/probes/decode-insn.c
108
aarch64_insn_is_bl(insn)) {
arch/arm64/kernel/probes/decode-insn.c
110
} else if (aarch64_insn_is_br(insn) ||
arch/arm64/kernel/probes/decode-insn.c
111
aarch64_insn_is_blr(insn)) {
arch/arm64/kernel/probes/decode-insn.c
113
} else if (aarch64_insn_is_ret(insn)) {
arch/arm64/kernel/probes/decode-insn.c
149
u32 insn = le32_to_cpu(*addr);
arch/arm64/kernel/probes/decode-insn.c
154
if (aarch64_insn_is_ldr_lit(insn)) {
arch/arm64/kernel/probes/decode-insn.c
157
} else if (aarch64_insn_is_ldrsw_lit(insn)) {
arch/arm64/kernel/probes/decode-insn.c
161
decoded = arm_probe_decode_insn(insn, &asi->api);
arch/arm64/kernel/probes/decode-insn.c
18
static bool __kprobes aarch64_insn_is_steppable(u32 insn)
arch/arm64/kernel/probes/decode-insn.c
27
if (aarch64_insn_is_class_branch_sys(insn)) {
arch/arm64/kernel/probes/decode-insn.c
28
if (aarch64_insn_is_branch(insn) ||
arch/arm64/kernel/probes/decode-insn.c
29
aarch64_insn_is_msr_imm(insn) ||
arch/arm64/kernel/probes/decode-insn.c
30
aarch64_insn_is_msr_reg(insn) ||
arch/arm64/kernel/probes/decode-insn.c
31
aarch64_insn_is_exception(insn) ||
arch/arm64/kernel/probes/decode-insn.c
32
aarch64_insn_is_eret(insn) ||
arch/arm64/kernel/probes/decode-insn.c
33
aarch64_insn_is_eret_auth(insn))
arch/arm64/kernel/probes/decode-insn.c
41
if (aarch64_insn_is_mrs(insn))
arch/arm64/kernel/probes/decode-insn.c
42
return aarch64_insn_extract_system_reg(insn)
arch/arm64/kernel/probes/decode-insn.c
51
if (aarch64_insn_is_hint(insn))
arch/arm64/kernel/probes/decode-insn.c
52
return aarch64_insn_is_steppable_hint(insn);
arch/arm64/kernel/probes/decode-insn.c
65
if (aarch64_insn_uses_literal(insn) ||
arch/arm64/kernel/probes/decode-insn.c
66
aarch64_insn_is_exclusive(insn) ||
arch/arm64/kernel/probes/decode-insn.c
67
aarch64_insn_is_mops(insn))
arch/arm64/kernel/probes/decode-insn.c
79
arm_probe_decode_insn(u32 insn, struct arch_probe_insn *api)
arch/arm64/kernel/probes/decode-insn.c
85
if (aarch64_insn_is_nop(insn)) {
arch/arm64/kernel/probes/decode-insn.c
94
if (aarch64_insn_is_steppable(insn))
arch/arm64/kernel/probes/decode-insn.c
97
if (aarch64_insn_is_bcond(insn)) {
arch/arm64/kernel/probes/decode-insn.c
99
} else if (aarch64_insn_is_cbz(insn) ||
arch/arm64/kernel/probes/decode-insn.h
31
arm_probe_decode_insn(u32 insn, struct arch_probe_insn *asi);
arch/arm64/kernel/probes/kprobes.c
151
u32 insn = BRK64_OPCODE_KPROBES;
arch/arm64/kernel/probes/kprobes.c
153
aarch64_insn_patch_text(&addr, &insn, 1);
arch/arm64/kernel/probes/kprobes.c
160
u32 insn = le32_to_cpu(p->opcode);
arch/arm64/kernel/probes/kprobes.c
162
aarch64_insn_patch_text(&addr, &insn, 1);
arch/arm64/kernel/probes/simulate-insn.c
18
#define bbl_displacement(insn) \
arch/arm64/kernel/probes/simulate-insn.c
19
sign_extend32(((insn) & 0x3ffffff) << 2, 27)
arch/arm64/kernel/probes/simulate-insn.c
21
#define bcond_displacement(insn) \
arch/arm64/kernel/probes/simulate-insn.c
22
sign_extend32(((insn >> 5) & 0x7ffff) << 2, 20)
arch/arm64/kernel/probes/simulate-insn.c
24
#define cbz_displacement(insn) \
arch/arm64/kernel/probes/simulate-insn.c
25
sign_extend32(((insn >> 5) & 0x7ffff) << 2, 20)
arch/arm64/kernel/probes/simulate-insn.c
27
#define tbz_displacement(insn) \
arch/arm64/kernel/probes/simulate-insn.c
28
sign_extend32(((insn >> 5) & 0x3fff) << 2, 15)
arch/arm64/kernel/probes/simulate-insn.c
30
#define ldr_displacement(insn) \
arch/arm64/kernel/probes/simulate-insn.c
31
sign_extend32(((insn >> 5) & 0x7ffff) << 2, 20)
arch/arm64/kernel/probes/uprobes.c
111
u32 insn;
arch/arm64/kernel/probes/uprobes.c
117
insn = le32_to_cpu(auprobe->insn);
arch/arm64/kernel/probes/uprobes.c
121
auprobe->api.handler(insn, addr, regs);
arch/arm64/kernel/probes/uprobes.c
46
u32 insn;
arch/arm64/kernel/probes/uprobes.c
54
insn = le32_to_cpu(auprobe->insn);
arch/arm64/kernel/probes/uprobes.c
56
switch (arm_probe_decode_insn(insn, &auprobe->api)) {
arch/arm64/kernel/proton-pack.c
1125
u32 insn;
arch/arm64/kernel/proton-pack.c
1132
insn = le32_to_cpu(*origptr);
arch/arm64/kernel/proton-pack.c
1133
rd = aarch64_insn_decode_register(AARCH64_INSN_REGTYPE_RD, insn);
arch/arm64/kernel/proton-pack.c
1134
insn = aarch64_insn_gen_movewide(rd, max_bhb_k, 0,
arch/arm64/kernel/proton-pack.c
1137
*updptr++ = cpu_to_le32(insn);
arch/arm64/kernel/proton-pack.c
1145
u32 insn;
arch/arm64/kernel/proton-pack.c
1153
insn = le32_to_cpu(*origptr);
arch/arm64/kernel/proton-pack.c
1154
rd = aarch64_insn_decode_register(AARCH64_INSN_REGTYPE_RD, insn);
arch/arm64/kernel/proton-pack.c
1156
insn = aarch64_insn_gen_logical_immediate(AARCH64_INSN_LOGIC_ORR,
arch/arm64/kernel/proton-pack.c
1160
if (WARN_ON_ONCE(insn == AARCH64_BREAK_FAULT))
arch/arm64/kernel/proton-pack.c
1163
*updptr++ = cpu_to_le32(insn);
arch/arm64/kernel/proton-pack.c
594
u32 insn;
arch/arm64/kernel/proton-pack.c
600
insn = aarch64_insn_get_hvc_value();
arch/arm64/kernel/proton-pack.c
603
insn = aarch64_insn_get_smc_value();
arch/arm64/kernel/proton-pack.c
609
*updptr = cpu_to_le32(insn);
arch/arm64/kernel/traps.c
457
u32 insn;
arch/arm64/kernel/traps.c
463
if (user_insn_read(regs, &insn))
arch/arm64/kernel/traps.c
466
if (try_emulate_mrs(regs, insn))
arch/arm64/kernel/traps.c
469
if (try_emulate_armv8_deprecated(regs, insn))
arch/arm64/kernel/traps.c
478
u32 insn;
arch/arm64/kernel/traps.c
480
if (aarch64_insn_read((void *)regs->pc, &insn))
arch/arm64/kernel/traps.c
483
if (try_emulate_el1_ssbs(regs, insn))
arch/arm64/kernel/traps.c
546
#define __user_cache_maint(insn, address, res) \
arch/arm64/kernel/traps.c
552
"1: " insn ", %1\n" \
arch/arm64/kvm/hyp/include/hyp/switch.h
36
int insn, fixup;
arch/arm64/kvm/hyp/include/hyp/switch.h
933
addr = (unsigned long)&entry->insn + entry->insn;
arch/arm64/kvm/sys_regs.c
4097
#define SYS_INSN(insn, access_fn) \
arch/arm64/kvm/sys_regs.c
4099
SYS_DESC(OP_##insn), \
arch/arm64/kvm/va_layout.c
137
u32 insn = AARCH64_BREAK_FAULT;
arch/arm64/kvm/va_layout.c
141
insn = aarch64_insn_gen_logical_immediate(AARCH64_INSN_LOGIC_AND,
arch/arm64/kvm/va_layout.c
148
insn = aarch64_insn_gen_extr(AARCH64_INSN_VARIANT_64BIT,
arch/arm64/kvm/va_layout.c
154
insn = aarch64_insn_gen_add_sub_imm(rd, rn,
arch/arm64/kvm/va_layout.c
161
insn = aarch64_insn_gen_add_sub_imm(rd, rn,
arch/arm64/kvm/va_layout.c
169
insn = aarch64_insn_gen_extr(AARCH64_INSN_VARIANT_64BIT,
arch/arm64/kvm/va_layout.c
174
return insn;
arch/arm64/kvm/va_layout.c
185
u32 rd, rn, insn, oinsn;
arch/arm64/kvm/va_layout.c
204
insn = compute_instruction(i, rd, rn);
arch/arm64/kvm/va_layout.c
205
BUG_ON(insn == AARCH64_BREAK_FAULT);
arch/arm64/kvm/va_layout.c
207
updptr[i] = cpu_to_le32(insn);
arch/arm64/kvm/va_layout.c
215
u32 insn;
arch/arm64/kvm/va_layout.c
238
insn = aarch64_insn_gen_movewide(AARCH64_INSN_REG_0,
arch/arm64/kvm/va_layout.c
243
*updptr++ = cpu_to_le32(insn);
arch/arm64/kvm/va_layout.c
246
insn = aarch64_insn_gen_movewide(AARCH64_INSN_REG_0,
arch/arm64/kvm/va_layout.c
251
*updptr++ = cpu_to_le32(insn);
arch/arm64/kvm/va_layout.c
254
insn = aarch64_insn_gen_movewide(AARCH64_INSN_REG_0,
arch/arm64/kvm/va_layout.c
259
*updptr++ = cpu_to_le32(insn);
arch/arm64/kvm/va_layout.c
262
insn = aarch64_insn_gen_branch_reg(AARCH64_INSN_REG_0,
arch/arm64/kvm/va_layout.c
264
*updptr++ = cpu_to_le32(insn);
arch/arm64/kvm/va_layout.c
269
u32 insn, oinsn, rd;
arch/arm64/kvm/va_layout.c
278
insn = aarch64_insn_gen_movewide(rd,
arch/arm64/kvm/va_layout.c
283
*updptr++ = cpu_to_le32(insn);
arch/arm64/kvm/va_layout.c
286
insn = aarch64_insn_gen_movewide(rd,
arch/arm64/kvm/va_layout.c
291
*updptr++ = cpu_to_le32(insn);
arch/arm64/kvm/va_layout.c
294
insn = aarch64_insn_gen_movewide(rd,
arch/arm64/kvm/va_layout.c
299
*updptr++ = cpu_to_le32(insn);
arch/arm64/kvm/va_layout.c
302
insn = aarch64_insn_gen_movewide(rd,
arch/arm64/kvm/va_layout.c
307
*updptr++ = cpu_to_le32(insn);
arch/arm64/kvm/vgic/vgic-v3.c
839
u32 insn, oinsn, rd;
arch/arm64/kvm/vgic/vgic-v3.c
871
insn = aarch64_insn_gen_movewide(rd,
arch/arm64/kvm/vgic/vgic-v3.c
876
*updptr = cpu_to_le32(insn);
arch/arm64/lib/insn.c
1007
insn = aarch64_insn_get_rev64_value();
arch/arm64/lib/insn.c
1018
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
1025
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, dst);
arch/arm64/lib/insn.c
1027
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, src);
arch/arm64/lib/insn.c
1036
u32 insn;
arch/arm64/lib/insn.c
1040
insn = aarch64_insn_get_udiv_value();
arch/arm64/lib/insn.c
1043
insn = aarch64_insn_get_sdiv_value();
arch/arm64/lib/insn.c
1046
insn = aarch64_insn_get_lslv_value();
arch/arm64/lib/insn.c
1049
insn = aarch64_insn_get_lsrv_value();
arch/arm64/lib/insn.c
1052
insn = aarch64_insn_get_asrv_value();
arch/arm64/lib/insn.c
1055
insn = aarch64_insn_get_rorv_value();
arch/arm64/lib/insn.c
1066
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
1073
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, dst);
arch/arm64/lib/insn.c
1075
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, src);
arch/arm64/lib/insn.c
1077
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RM, insn, reg);
arch/arm64/lib/insn.c
1087
u32 insn;
arch/arm64/lib/insn.c
1091
insn = aarch64_insn_get_madd_value();
arch/arm64/lib/insn.c
1094
insn = aarch64_insn_get_msub_value();
arch/arm64/lib/insn.c
110
return (insn >> shift) & mask;
arch/arm64/lib/insn.c
1105
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
1112
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, dst);
arch/arm64/lib/insn.c
1114
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RA, insn, src);
arch/arm64/lib/insn.c
1116
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn,
arch/arm64/lib/insn.c
1119
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RM, insn,
arch/arm64/lib/insn.c
1130
u32 insn;
arch/arm64/lib/insn.c
1134
insn = aarch64_insn_get_and_value();
arch/arm64/lib/insn.c
1137
insn = aarch64_insn_get_bic_value();
arch/arm64/lib/insn.c
114
u32 insn, u64 imm)
arch/arm64/lib/insn.c
1140
insn = aarch64_insn_get_orr_value();
arch/arm64/lib/insn.c
1143
insn = aarch64_insn_get_orn_value();
arch/arm64/lib/insn.c
1146
insn = aarch64_insn_get_eor_value();
arch/arm64/lib/insn.c
1149
insn = aarch64_insn_get_eon_value();
arch/arm64/lib/insn.c
1152
insn = aarch64_insn_get_ands_value();
arch/arm64/lib/insn.c
1155
insn = aarch64_insn_get_bics_value();
arch/arm64/lib/insn.c
1171
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
1184
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, dst);
arch/arm64/lib/insn.c
1186
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, src);
arch/arm64/lib/insn.c
1188
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RM, insn, reg);
arch/arm64/lib/insn.c
119
if (insn == AARCH64_BREAK_FAULT)
arch/arm64/lib/insn.c
1190
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_6, insn, shift);
arch/arm64/lib/insn.c
1210
u32 insn;
arch/arm64/lib/insn.c
1215
insn = aarch64_insn_get_adr_value();
arch/arm64/lib/insn.c
1219
insn = aarch64_insn_get_adrp_value();
arch/arm64/lib/insn.c
1230
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, reg);
arch/arm64/lib/insn.c
1232
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_ADR, insn, offset);
arch/arm64/lib/insn.c
1240
s32 aarch64_get_branch_offset(u32 insn)
arch/arm64/lib/insn.c
1244
if (aarch64_insn_is_b(insn) || aarch64_insn_is_bl(insn)) {
arch/arm64/lib/insn.c
1245
imm = aarch64_insn_decode_immediate(AARCH64_INSN_IMM_26, insn);
arch/arm64/lib/insn.c
1249
if (aarch64_insn_is_cbz(insn) || aarch64_insn_is_cbnz(insn) ||
arch/arm64/lib/insn.c
1250
aarch64_insn_is_bcond(insn)) {
arch/arm64/lib/insn.c
1251
imm = aarch64_insn_decode_immediate(AARCH64_INSN_IMM_19, insn);
arch/arm64/lib/insn.c
1255
if (aarch64_insn_is_tbz(insn) || aarch64_insn_is_tbnz(insn)) {
arch/arm64/lib/insn.c
1256
imm = aarch64_insn_decode_immediate(AARCH64_INSN_IMM_14, insn);
arch/arm64/lib/insn.c
1268
u32 aarch64_set_branch_offset(u32 insn, s32 offset)
arch/arm64/lib/insn.c
1270
if (aarch64_insn_is_b(insn) || aarch64_insn_is_bl(insn))
arch/arm64/lib/insn.c
1271
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_26, insn,
arch/arm64/lib/insn.c
1274
if (aarch64_insn_is_cbz(insn) || aarch64_insn_is_cbnz(insn) ||
arch/arm64/lib/insn.c
1275
aarch64_insn_is_bcond(insn))
arch/arm64/lib/insn.c
1276
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_19, insn,
arch/arm64/lib/insn.c
1279
if (aarch64_insn_is_tbz(insn) || aarch64_insn_is_tbnz(insn))
arch/arm64/lib/insn.c
1280
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_14, insn,
arch/arm64/lib/insn.c
1287
s32 aarch64_insn_adrp_get_offset(u32 insn)
arch/arm64/lib/insn.c
1289
BUG_ON(!aarch64_insn_is_adrp(insn));
arch/arm64/lib/insn.c
1290
return aarch64_insn_decode_immediate(AARCH64_INSN_IMM_ADR, insn) << 12;
arch/arm64/lib/insn.c
1293
u32 aarch64_insn_adrp_set_offset(u32 insn, s32 offset)
arch/arm64/lib/insn.c
1295
BUG_ON(!aarch64_insn_is_adrp(insn));
arch/arm64/lib/insn.c
1296
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_ADR, insn,
arch/arm64/lib/insn.c
1303
u32 aarch64_insn_extract_system_reg(u32 insn)
arch/arm64/lib/insn.c
1305
return (insn & 0x1FFFE0) >> 5;
arch/arm64/lib/insn.c
1308
bool aarch32_insn_is_wide(u32 insn)
arch/arm64/lib/insn.c
1310
return insn >= 0xe800;
arch/arm64/lib/insn.c
1316
u32 aarch32_insn_extract_reg_num(u32 insn, int offset)
arch/arm64/lib/insn.c
1318
return (insn & (0xf << offset)) >> offset;
arch/arm64/lib/insn.c
1323
u32 aarch32_insn_mcr_extract_opc2(u32 insn)
arch/arm64/lib/insn.c
1325
return (insn & (OPC2_MASK << OPC2_OFFSET)) >> OPC2_OFFSET;
arch/arm64/lib/insn.c
1329
u32 aarch32_insn_mcr_extract_crm(u32 insn)
arch/arm64/lib/insn.c
1331
return insn & CRM_MASK;
arch/arm64/lib/insn.c
1345
u32 insn)
arch/arm64/lib/insn.c
1355
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
141
insn &= ~(mask << shift);
arch/arm64/lib/insn.c
142
insn |= (imm & mask) << shift;
arch/arm64/lib/insn.c
1434
insn = aarch64_insn_encode_immediate(AARCH64_INSN_IMM_N, insn, n);
arch/arm64/lib/insn.c
1435
insn = aarch64_insn_encode_immediate(AARCH64_INSN_IMM_R, insn, immr);
arch/arm64/lib/insn.c
1436
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_S, insn, imms);
arch/arm64/lib/insn.c
144
return insn;
arch/arm64/lib/insn.c
1445
u32 insn;
arch/arm64/lib/insn.c
1449
insn = aarch64_insn_get_and_imm_value();
arch/arm64/lib/insn.c
1452
insn = aarch64_insn_get_orr_imm_value();
arch/arm64/lib/insn.c
1455
insn = aarch64_insn_get_eor_imm_value();
arch/arm64/lib/insn.c
1458
insn = aarch64_insn_get_ands_imm_value();
arch/arm64/lib/insn.c
1465
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, Rd);
arch/arm64/lib/insn.c
1466
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, Rn);
arch/arm64/lib/insn.c
1467
return aarch64_encode_immediate(imm, variant, insn);
arch/arm64/lib/insn.c
1476
u32 insn;
arch/arm64/lib/insn.c
1478
insn = aarch64_insn_get_extr_value();
arch/arm64/lib/insn.c
148
u32 insn)
arch/arm64/lib/insn.c
1488
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
1489
insn = aarch64_insn_encode_immediate(AARCH64_INSN_IMM_N, insn, 1);
arch/arm64/lib/insn.c
1496
insn = aarch64_insn_encode_immediate(AARCH64_INSN_IMM_S, insn, lsb);
arch/arm64/lib/insn.c
1497
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, Rd);
arch/arm64/lib/insn.c
1498
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, Rn);
arch/arm64/lib/insn.c
1499
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RM, insn, Rm);
arch/arm64/lib/insn.c
1532
u32 insn;
arch/arm64/lib/insn.c
1538
insn = aarch64_insn_get_dmb_value();
arch/arm64/lib/insn.c
1539
insn &= ~GENMASK(11, 8);
arch/arm64/lib/insn.c
1540
insn |= (opt << 8);
arch/arm64/lib/insn.c
1542
return insn;
arch/arm64/lib/insn.c
1547
u32 opt, insn;
arch/arm64/lib/insn.c
1553
insn = aarch64_insn_get_dsb_base_value();
arch/arm64/lib/insn.c
1554
insn &= ~GENMASK(11, 8);
arch/arm64/lib/insn.c
1555
insn |= (opt << 8);
arch/arm64/lib/insn.c
1557
return insn;
arch/arm64/lib/insn.c
1563
u32 insn = aarch64_insn_get_mrs_value();
arch/arm64/lib/insn.c
1565
insn &= ~GENMASK(19, 0);
arch/arm64/lib/insn.c
1566
insn |= sysreg << 5;
arch/arm64/lib/insn.c
1568
insn, result);
arch/arm64/lib/insn.c
173
return (insn >> shift) & GENMASK(4, 0);
arch/arm64/lib/insn.c
177
u32 insn,
arch/arm64/lib/insn.c
182
if (insn == AARCH64_BREAK_FAULT)
arch/arm64/lib/insn.c
212
insn &= ~(GENMASK(4, 0) << shift);
arch/arm64/lib/insn.c
213
insn |= reg << shift;
arch/arm64/lib/insn.c
215
return insn;
arch/arm64/lib/insn.c
226
u32 insn)
arch/arm64/lib/insn.c
236
insn &= ~GENMASK(31, 30);
arch/arm64/lib/insn.c
237
insn |= size << 30;
arch/arm64/lib/insn.c
239
return insn;
arch/arm64/lib/insn.c
265
u32 insn;
arch/arm64/lib/insn.c
279
insn = aarch64_insn_get_bl_value();
arch/arm64/lib/insn.c
282
insn = aarch64_insn_get_b_value();
arch/arm64/lib/insn.c
289
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_26, insn,
arch/arm64/lib/insn.c
298
u32 insn;
arch/arm64/lib/insn.c
307
insn = aarch64_insn_get_cbz_value();
arch/arm64/lib/insn.c
310
insn = aarch64_insn_get_cbnz_value();
arch/arm64/lib/insn.c
321
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
328
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT, insn, reg);
arch/arm64/lib/insn.c
330
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_19, insn,
arch/arm64/lib/insn.c
337
u32 insn;
arch/arm64/lib/insn.c
342
insn = aarch64_insn_get_bcond_value();
arch/arm64/lib/insn.c
348
insn |= cond;
arch/arm64/lib/insn.c
350
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_19, insn,
arch/arm64/lib/insn.c
357
u32 insn;
arch/arm64/lib/insn.c
361
insn = aarch64_insn_get_br_value();
arch/arm64/lib/insn.c
364
insn = aarch64_insn_get_blr_value();
arch/arm64/lib/insn.c
367
insn = aarch64_insn_get_ret_value();
arch/arm64/lib/insn.c
374
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, reg);
arch/arm64/lib/insn.c
383
u32 insn;
arch/arm64/lib/insn.c
387
insn = aarch64_insn_get_ldr_reg_value();
arch/arm64/lib/insn.c
390
insn = aarch64_insn_get_signed_ldr_reg_value();
arch/arm64/lib/insn.c
393
insn = aarch64_insn_get_str_reg_value();
arch/arm64/lib/insn.c
400
insn = aarch64_insn_encode_ldst_size(size, insn);
arch/arm64/lib/insn.c
402
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT, insn, reg);
arch/arm64/lib/insn.c
404
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn,
arch/arm64/lib/insn.c
407
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RM, insn,
arch/arm64/lib/insn.c
417
u32 insn;
arch/arm64/lib/insn.c
435
insn = aarch64_insn_get_ldr_imm_value();
arch/arm64/lib/insn.c
438
insn = aarch64_insn_get_signed_load_imm_value();
arch/arm64/lib/insn.c
441
insn = aarch64_insn_get_str_imm_value();
arch/arm64/lib/insn.c
448
insn = aarch64_insn_encode_ldst_size(size, insn);
arch/arm64/lib/insn.c
450
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT, insn, reg);
arch/arm64/lib/insn.c
452
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn,
arch/arm64/lib/insn.c
455
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_12, insn, imm);
arch/arm64/lib/insn.c
462
u32 insn;
arch/arm64/lib/insn.c
469
insn = aarch64_insn_get_ldr_lit_value();
arch/arm64/lib/insn.c
472
insn |= BIT(30);
arch/arm64/lib/insn.c
474
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT, insn, reg);
arch/arm64/lib/insn.c
476
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_19, insn,
arch/arm64/lib/insn.c
487
u32 insn;
arch/arm64/lib/insn.c
492
insn = aarch64_insn_get_ldp_pre_value();
arch/arm64/lib/insn.c
495
insn = aarch64_insn_get_stp_pre_value();
arch/arm64/lib/insn.c
498
insn = aarch64_insn_get_ldp_post_value();
arch/arm64/lib/insn.c
501
insn = aarch64_insn_get_stp_post_value();
arch/arm64/lib/insn.c
524
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
531
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT, insn,
arch/arm64/lib/insn.c
534
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT2, insn,
arch/arm64/lib/insn.c
537
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn,
arch/arm64/lib/insn.c
540
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_7, insn,
arch/arm64/lib/insn.c
549
u32 insn;
arch/arm64/lib/insn.c
553
insn = aarch64_insn_get_load_acq_value();
arch/arm64/lib/insn.c
556
insn = aarch64_insn_get_store_rel_value();
arch/arm64/lib/insn.c
564
insn = aarch64_insn_encode_ldst_size(size, insn);
arch/arm64/lib/insn.c
566
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT, insn,
arch/arm64/lib/insn.c
569
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn,
arch/arm64/lib/insn.c
579
u32 insn;
arch/arm64/lib/insn.c
584
insn = aarch64_insn_get_load_ex_value();
arch/arm64/lib/insn.c
586
insn |= BIT(15);
arch/arm64/lib/insn.c
590
insn = aarch64_insn_get_store_ex_value();
arch/arm64/lib/insn.c
592
insn |= BIT(15);
arch/arm64/lib/insn.c
599
insn = aarch64_insn_encode_ldst_size(size, insn);
arch/arm64/lib/insn.c
601
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT, insn,
arch/arm64/lib/insn.c
604
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn,
arch/arm64/lib/insn.c
607
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT2, insn,
arch/arm64/lib/insn.c
610
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RS, insn,
arch/arm64/lib/insn.c
615
u32 insn)
arch/arm64/lib/insn.c
637
insn &= ~GENMASK(23, 22);
arch/arm64/lib/insn.c
638
insn |= order << 22;
arch/arm64/lib/insn.c
640
return insn;
arch/arm64/lib/insn.c
650
u32 insn;
arch/arm64/lib/insn.c
654
insn = aarch64_insn_get_ldadd_value();
arch/arm64/lib/insn.c
657
insn = aarch64_insn_get_ldclr_value();
arch/arm64/lib/insn.c
660
insn = aarch64_insn_get_ldeor_value();
arch/arm64/lib/insn.c
663
insn = aarch64_insn_get_ldset_value();
arch/arm64/lib/insn.c
666
insn = aarch64_insn_get_swp_value();
arch/arm64/lib/insn.c
682
insn = aarch64_insn_encode_ldst_size(size, insn);
arch/arm64/lib/insn.c
684
insn = aarch64_insn_encode_ldst_order(order, insn);
arch/arm64/lib/insn.c
686
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT, insn,
arch/arm64/lib/insn.c
689
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn,
arch/arm64/lib/insn.c
692
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RS, insn,
arch/arm64/lib/insn.c
697
u32 insn)
arch/arm64/lib/insn.c
719
insn &= ~(BIT(15) | BIT(22));
arch/arm64/lib/insn.c
720
insn |= order;
arch/arm64/lib/insn.c
722
return insn;
arch/arm64/lib/insn.c
731
u32 insn;
arch/arm64/lib/insn.c
742
insn = aarch64_insn_get_cas_value();
arch/arm64/lib/insn.c
744
insn = aarch64_insn_encode_ldst_size(size, insn);
arch/arm64/lib/insn.c
746
insn = aarch64_insn_encode_cas_order(order, insn);
arch/arm64/lib/insn.c
748
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RT, insn,
arch/arm64/lib/insn.c
751
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn,
arch/arm64/lib/insn.c
754
return aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RS, insn,
arch/arm64/lib/insn.c
763
u32 insn;
arch/arm64/lib/insn.c
767
insn = aarch64_insn_get_add_imm_value();
arch/arm64/lib/insn.c
770
insn = aarch64_insn_get_sub_imm_value();
arch/arm64/lib/insn.c
773
insn = aarch64_insn_get_adds_imm_value();
arch/arm64/lib/insn.c
776
insn = aarch64_insn_get_subs_imm_value();
arch/arm64/lib/insn.c
787
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
805
insn |= AARCH64_INSN_LSL_12;
arch/arm64/lib/insn.c
808
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, dst);
arch/arm64/lib/insn.c
810
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, src);
arch/arm64/lib/insn.c
812
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_12, insn, imm);
arch/arm64/lib/insn.c
825
u32 insn;
arch/arm64/lib/insn.c
830
insn = aarch64_insn_get_bfm_value();
arch/arm64/lib/insn.c
833
insn = aarch64_insn_get_ubfm_value();
arch/arm64/lib/insn.c
836
insn = aarch64_insn_get_sbfm_value();
arch/arm64/lib/insn.c
848
insn |= AARCH64_INSN_SF_BIT | AARCH64_INSN_N_BIT;
arch/arm64/lib/insn.c
865
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, dst);
arch/arm64/lib/insn.c
867
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, src);
arch/arm64/lib/insn.c
869
insn = aarch64_insn_encode_immediate(AARCH64_INSN_IMM_R, insn, immr);
arch/arm64/lib/insn.c
871
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_S, insn, imms);
arch/arm64/lib/insn.c
879
u32 insn;
arch/arm64/lib/insn.c
883
insn = aarch64_insn_get_movz_value();
arch/arm64/lib/insn.c
886
insn = aarch64_insn_get_movk_value();
arch/arm64/lib/insn.c
889
insn = aarch64_insn_get_movn_value();
arch/arm64/lib/insn.c
89
u64 aarch64_insn_decode_immediate(enum aarch64_insn_imm_type type, u32 insn)
arch/arm64/lib/insn.c
910
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
922
insn |= (shift >> 4) << 21;
arch/arm64/lib/insn.c
924
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, dst);
arch/arm64/lib/insn.c
926
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_16, insn, imm);
arch/arm64/lib/insn.c
936
u32 insn;
arch/arm64/lib/insn.c
940
insn = aarch64_insn_get_add_value();
arch/arm64/lib/insn.c
943
insn = aarch64_insn_get_sub_value();
arch/arm64/lib/insn.c
946
insn = aarch64_insn_get_adds_value();
arch/arm64/lib/insn.c
949
insn = aarch64_insn_get_subs_value();
arch/arm64/lib/insn.c
965
insn |= AARCH64_INSN_SF_BIT;
arch/arm64/lib/insn.c
97
immlo = (insn >> ADR_IMM_LOSHIFT) & ADR_IMM_LOMASK;
arch/arm64/lib/insn.c
978
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RD, insn, dst);
arch/arm64/lib/insn.c
98
immhi = (insn >> ADR_IMM_HISHIFT) & ADR_IMM_HIMASK;
arch/arm64/lib/insn.c
980
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn, src);
arch/arm64/lib/insn.c
982
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RM, insn, reg);
arch/arm64/lib/insn.c
984
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_6, insn, shift);
arch/arm64/lib/insn.c
99
insn = (immhi << ADR_IMM_HILOSPLIT) | immlo;
arch/arm64/lib/insn.c
992
u32 insn;
arch/arm64/lib/insn.c
996
insn = aarch64_insn_get_rev16_value();
arch/arm64/lib/insn.c
999
insn = aarch64_insn_get_rev32_value();
arch/arm64/net/bpf_jit_comp.c
110
static inline void emit(const u32 insn, struct jit_ctx *ctx)
arch/arm64/net/bpf_jit_comp.c
1113
static int add_exception_handler(const struct bpf_insn *insn,
arch/arm64/net/bpf_jit_comp.c
1118
s16 off = insn->off;
arch/arm64/net/bpf_jit_comp.c
1128
if (BPF_MODE(insn->code) != BPF_PROBE_MEM &&
arch/arm64/net/bpf_jit_comp.c
1129
BPF_MODE(insn->code) != BPF_PROBE_MEMSX &&
arch/arm64/net/bpf_jit_comp.c
113
ctx->image[ctx->idx] = cpu_to_le32(insn);
arch/arm64/net/bpf_jit_comp.c
1130
BPF_MODE(insn->code) != BPF_PROBE_MEM32 &&
arch/arm64/net/bpf_jit_comp.c
1131
BPF_MODE(insn->code) != BPF_PROBE_MEM32SX &&
arch/arm64/net/bpf_jit_comp.c
1132
BPF_MODE(insn->code) != BPF_PROBE_ATOMIC)
arch/arm64/net/bpf_jit_comp.c
1135
is_arena = (BPF_MODE(insn->code) == BPF_PROBE_MEM32) ||
arch/arm64/net/bpf_jit_comp.c
1136
(BPF_MODE(insn->code) == BPF_PROBE_MEM32SX) ||
arch/arm64/net/bpf_jit_comp.c
1137
(BPF_MODE(insn->code) == BPF_PROBE_ATOMIC);
arch/arm64/net/bpf_jit_comp.c
1152
ins_offset = pc - (long)&ex->insn;
arch/arm64/net/bpf_jit_comp.c
1163
ex->insn = ins_offset;
arch/arm64/net/bpf_jit_comp.c
1165
if (BPF_CLASS(insn->code) != BPF_LDX)
arch/arm64/net/bpf_jit_comp.c
1180
if (BPF_CLASS(insn->code) == BPF_LDX)
arch/arm64/net/bpf_jit_comp.c
1181
arena_reg = bpf2a64[insn->src_reg];
arch/arm64/net/bpf_jit_comp.c
1183
arena_reg = bpf2a64[insn->dst_reg];
arch/arm64/net/bpf_jit_comp.c
1201
static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx,
arch/arm64/net/bpf_jit_comp.c
1204
const u8 code = insn->code;
arch/arm64/net/bpf_jit_comp.c
1205
u8 dst = bpf2a64[insn->dst_reg];
arch/arm64/net/bpf_jit_comp.c
1206
u8 src = bpf2a64[insn->src_reg];
arch/arm64/net/bpf_jit_comp.c
1213
const s16 off = insn->off;
arch/arm64/net/bpf_jit_comp.c
1214
const s32 imm = insn->imm;
arch/arm64/net/bpf_jit_comp.c
1215
const int i = insn - ctx->prog->insnsi;
arch/arm64/net/bpf_jit_comp.c
1231
if (insn_is_cast_user(insn)) {
arch/arm64/net/bpf_jit_comp.c
1239
} else if (insn_is_mov_percpu_addr(insn)) {
arch/arm64/net/bpf_jit_comp.c
1249
switch (insn->off) {
arch/arm64/net/bpf_jit_comp.c
1577
if (insn->src_reg == 0 && insn->imm == BPF_FUNC_get_smp_processor_id) {
arch/arm64/net/bpf_jit_comp.c
1591
if (insn->src_reg == 0 && (insn->imm == BPF_FUNC_get_current_task ||
arch/arm64/net/bpf_jit_comp.c
1592
insn->imm == BPF_FUNC_get_current_task_btf)) {
arch/arm64/net/bpf_jit_comp.c
1597
ret = bpf_jit_get_func_addr(ctx->prog, insn, extra_pass,
arch/arm64/net/bpf_jit_comp.c
1630
const struct bpf_insn insn1 = insn[1];
arch/arm64/net/bpf_jit_comp.c
1634
if (bpf_pseudo_func(insn))
arch/arm64/net/bpf_jit_comp.c
1665
if (BPF_MODE(insn->code) == BPF_PROBE_MEM32 ||
arch/arm64/net/bpf_jit_comp.c
1666
BPF_MODE(insn->code) == BPF_PROBE_MEM32SX) {
arch/arm64/net/bpf_jit_comp.c
1677
sign_extend = (BPF_MODE(insn->code) == BPF_MEMSX ||
arch/arm64/net/bpf_jit_comp.c
1678
BPF_MODE(insn->code) == BPF_PROBE_MEMSX ||
arch/arm64/net/bpf_jit_comp.c
1679
BPF_MODE(insn->code) == BPF_PROBE_MEM32SX);
arch/arm64/net/bpf_jit_comp.c
1733
ret = add_exception_handler(insn, ctx, dst);
arch/arm64/net/bpf_jit_comp.c
1757
if (BPF_MODE(insn->code) == BPF_PROBE_MEM32) {
arch/arm64/net/bpf_jit_comp.c
180
static inline void emit_bti(u32 insn, struct jit_ctx *ctx)
arch/arm64/net/bpf_jit_comp.c
1805
ret = add_exception_handler(insn, ctx, dst);
arch/arm64/net/bpf_jit_comp.c
1819
if (BPF_MODE(insn->code) == BPF_PROBE_MEM32) {
arch/arm64/net/bpf_jit_comp.c
183
emit(insn, ctx);
arch/arm64/net/bpf_jit_comp.c
1865
ret = add_exception_handler(insn, ctx, dst);
arch/arm64/net/bpf_jit_comp.c
1878
if (bpf_atomic_is_load_store(insn))
arch/arm64/net/bpf_jit_comp.c
1879
ret = emit_atomic_ld_st(insn, ctx);
arch/arm64/net/bpf_jit_comp.c
1881
ret = emit_lse_atomic(insn, ctx);
arch/arm64/net/bpf_jit_comp.c
1883
ret = emit_ll_sc_atomic(insn, ctx);
arch/arm64/net/bpf_jit_comp.c
1887
if (BPF_MODE(insn->code) == BPF_PROBE_ATOMIC) {
arch/arm64/net/bpf_jit_comp.c
1888
ret = add_exception_handler(insn, ctx, dst);
arch/arm64/net/bpf_jit_comp.c
1917
const struct bpf_insn *insn = &prog->insnsi[i];
arch/arm64/net/bpf_jit_comp.c
1921
ret = build_insn(insn, ctx, extra_pass);
arch/arm64/net/bpf_jit_comp.c
227
u32 insn;
arch/arm64/net/bpf_jit_comp.c
231
insn = aarch64_insn_gen_branch_imm(pc, target, AARCH64_INSN_BRANCH_LINK);
arch/arm64/net/bpf_jit_comp.c
232
emit(insn, ctx);
arch/arm64/net/bpf_jit_comp.c
2902
void *addr, void *plt, u32 *insn)
arch/arm64/net/bpf_jit_comp.c
2907
*insn = aarch64_insn_gen_nop();
arch/arm64/net/bpf_jit_comp.c
2916
*insn = aarch64_insn_gen_branch_imm((unsigned long)ip,
arch/arm64/net/bpf_jit_comp.c
2920
return *insn != AARCH64_BREAK_FAULT ? 0 : -EFAULT;
arch/arm64/net/bpf_jit_comp.c
3124
bool bpf_jit_supports_insn(struct bpf_insn *insn, bool in_arena)
arch/arm64/net/bpf_jit_comp.c
3128
switch (insn->code) {
arch/arm64/net/bpf_jit_comp.c
3131
if (!bpf_atomic_is_load_store(insn) &&
arch/arm64/net/bpf_jit_comp.c
378
const struct bpf_insn *insn = &prog->insnsi[0];
arch/arm64/net/bpf_jit_comp.c
381
for (i = 0; i < prog->len; i++, insn++) {
arch/arm64/net/bpf_jit_comp.c
382
if (insn->dst_reg == BPF_REG_6 || insn->src_reg == BPF_REG_6)
arch/arm64/net/bpf_jit_comp.c
385
if (insn->dst_reg == BPF_REG_7 || insn->src_reg == BPF_REG_7)
arch/arm64/net/bpf_jit_comp.c
388
if (insn->dst_reg == BPF_REG_8 || insn->src_reg == BPF_REG_8)
arch/arm64/net/bpf_jit_comp.c
391
if (insn->dst_reg == BPF_REG_9 || insn->src_reg == BPF_REG_9)
arch/arm64/net/bpf_jit_comp.c
394
if (insn->dst_reg == BPF_REG_FP || insn->src_reg == BPF_REG_FP) {
arch/arm64/net/bpf_jit_comp.c
704
static int emit_atomic_ld_st(const struct bpf_insn *insn, struct jit_ctx *ctx)
arch/arm64/net/bpf_jit_comp.c
706
const s32 imm = insn->imm;
arch/arm64/net/bpf_jit_comp.c
707
const s16 off = insn->off;
arch/arm64/net/bpf_jit_comp.c
708
const u8 code = insn->code;
arch/arm64/net/bpf_jit_comp.c
711
const u8 dst = bpf2a64[insn->dst_reg];
arch/arm64/net/bpf_jit_comp.c
712
const u8 src = bpf2a64[insn->src_reg];
arch/arm64/net/bpf_jit_comp.c
779
static int emit_lse_atomic(const struct bpf_insn *insn, struct jit_ctx *ctx)
arch/arm64/net/bpf_jit_comp.c
781
const u8 code = insn->code;
arch/arm64/net/bpf_jit_comp.c
783
const u8 dst = bpf2a64[insn->dst_reg];
arch/arm64/net/bpf_jit_comp.c
784
const u8 src = bpf2a64[insn->src_reg];
arch/arm64/net/bpf_jit_comp.c
789
const s16 off = insn->off;
arch/arm64/net/bpf_jit_comp.c
801
switch (insn->imm) {
arch/arm64/net/bpf_jit_comp.c
839
pr_err_once("unknown atomic op code %02x\n", insn->imm);
arch/arm64/net/bpf_jit_comp.c
846
static int emit_ll_sc_atomic(const struct bpf_insn *insn, struct jit_ctx *ctx)
arch/arm64/net/bpf_jit_comp.c
848
const u8 code = insn->code;
arch/arm64/net/bpf_jit_comp.c
849
const u8 dst = bpf2a64[insn->dst_reg];
arch/arm64/net/bpf_jit_comp.c
850
const u8 src = bpf2a64[insn->src_reg];
arch/arm64/net/bpf_jit_comp.c
854
const int i = insn - ctx->prog->insnsi;
arch/arm64/net/bpf_jit_comp.c
855
const s32 imm = insn->imm;
arch/arm64/net/bpf_jit_comp.c
856
const s16 off = insn->off;
arch/csky/include/asm/futex.h
14
#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
arch/csky/include/asm/futex.h
22
" "insn" \n" \
arch/csky/include/asm/probes.h
11
probe_opcode_t *insn;
arch/csky/include/asm/uprobes.h
22
u8 insn[MAX_UINSN_BYTES];
arch/csky/kernel/jump_label.c
18
u16 insn[2];
arch/csky/kernel/jump_label.c
29
insn[0] = BSR_LINK |
arch/csky/kernel/jump_label.c
31
insn[1] = (uint16_t)((unsigned long) offset & 0xffff);
arch/csky/kernel/jump_label.c
33
insn[0] = NOP32_HI;
arch/csky/kernel/jump_label.c
34
insn[1] = NOP32_LO;
arch/csky/kernel/jump_label.c
37
ret = copy_to_kernel_nofault((void *)addr, insn, 4);
arch/csky/kernel/probes/decode-insn.c
19
probe_opcode_t insn = le32_to_cpu(*addr);
arch/csky/kernel/probes/decode-insn.c
21
CSKY_INSN_SET_SIMULATE(br16, insn);
arch/csky/kernel/probes/decode-insn.c
22
CSKY_INSN_SET_SIMULATE(bt16, insn);
arch/csky/kernel/probes/decode-insn.c
23
CSKY_INSN_SET_SIMULATE(bf16, insn);
arch/csky/kernel/probes/decode-insn.c
24
CSKY_INSN_SET_SIMULATE(jmp16, insn);
arch/csky/kernel/probes/decode-insn.c
25
CSKY_INSN_SET_SIMULATE(jsr16, insn);
arch/csky/kernel/probes/decode-insn.c
26
CSKY_INSN_SET_SIMULATE(lrw16, insn);
arch/csky/kernel/probes/decode-insn.c
27
CSKY_INSN_SET_SIMULATE(pop16, insn);
arch/csky/kernel/probes/decode-insn.c
29
CSKY_INSN_SET_SIMULATE(br32, insn);
arch/csky/kernel/probes/decode-insn.c
30
CSKY_INSN_SET_SIMULATE(bt32, insn);
arch/csky/kernel/probes/decode-insn.c
31
CSKY_INSN_SET_SIMULATE(bf32, insn);
arch/csky/kernel/probes/decode-insn.c
32
CSKY_INSN_SET_SIMULATE(jmp32, insn);
arch/csky/kernel/probes/decode-insn.c
33
CSKY_INSN_SET_SIMULATE(jsr32, insn);
arch/csky/kernel/probes/decode-insn.c
34
CSKY_INSN_SET_SIMULATE(lrw32, insn);
arch/csky/kernel/probes/decode-insn.c
35
CSKY_INSN_SET_SIMULATE(pop32, insn);
arch/csky/kernel/probes/decode-insn.c
37
CSKY_INSN_SET_SIMULATE(bez32, insn);
arch/csky/kernel/probes/decode-insn.c
38
CSKY_INSN_SET_SIMULATE(bnez32, insn);
arch/csky/kernel/probes/decode-insn.c
39
CSKY_INSN_SET_SIMULATE(bnezad32, insn);
arch/csky/kernel/probes/decode-insn.c
40
CSKY_INSN_SET_SIMULATE(bhsz32, insn);
arch/csky/kernel/probes/decode-insn.c
41
CSKY_INSN_SET_SIMULATE(bhz32, insn);
arch/csky/kernel/probes/decode-insn.c
42
CSKY_INSN_SET_SIMULATE(blsz32, insn);
arch/csky/kernel/probes/decode-insn.c
43
CSKY_INSN_SET_SIMULATE(blz32, insn);
arch/csky/kernel/probes/decode-insn.c
44
CSKY_INSN_SET_SIMULATE(bsr32, insn);
arch/csky/kernel/probes/decode-insn.c
45
CSKY_INSN_SET_SIMULATE(jmpi32, insn);
arch/csky/kernel/probes/decode-insn.c
46
CSKY_INSN_SET_SIMULATE(jsri32, insn);
arch/csky/kernel/probes/decode-insn.h
15
#define is_insn32(insn) ((insn & 0xc000) == 0xc000)
arch/csky/kernel/probes/ftrace.c
68
p->ainsn.api.insn = NULL;
arch/csky/kernel/probes/kprobes.c
105
if (p->ainsn.api.insn)
arch/csky/kernel/probes/kprobes.c
127
if (p->ainsn.api.insn) {
arch/csky/kernel/probes/kprobes.c
128
free_insn_slot(p->ainsn.api.insn, 0);
arch/csky/kernel/probes/kprobes.c
129
p->ainsn.api.insn = NULL;
arch/csky/kernel/probes/kprobes.c
204
if (p->ainsn.api.insn) {
arch/csky/kernel/probes/kprobes.c
206
slot = (unsigned long)p->ainsn.api.insn;
arch/csky/kernel/probes/kprobes.c
60
patch_text(p->ainsn.api.insn, p->opcode);
arch/csky/kernel/probes/kprobes.c
94
p->ainsn.api.insn = NULL;
arch/csky/kernel/probes/kprobes.c
98
p->ainsn.api.insn = get_insn_slot();
arch/csky/kernel/probes/kprobes.c
99
if (!p->ainsn.api.insn)
arch/csky/kernel/probes/uprobes.c
14
bool is_swbp_insn(uprobe_opcode_t *insn)
arch/csky/kernel/probes/uprobes.c
16
return (*insn & 0xffff) == UPROBE_SWBP_INSN;
arch/csky/kernel/probes/uprobes.c
27
probe_opcode_t insn;
arch/csky/kernel/probes/uprobes.c
29
insn = *(probe_opcode_t *)(&auprobe->insn[0]);
arch/csky/kernel/probes/uprobes.c
31
auprobe->insn_size = is_insn32(insn) ? 4 : 2;
arch/csky/kernel/probes/uprobes.c
33
switch (csky_probe_decode_insn(&insn, &auprobe->api)) {
arch/csky/kernel/probes/uprobes.c
86
probe_opcode_t insn;
arch/csky/kernel/probes/uprobes.c
92
insn = *(probe_opcode_t *)(&auprobe->insn[0]);
arch/csky/kernel/probes/uprobes.c
96
auprobe->api.handler(insn, addr, regs);
arch/hexagon/include/asm/futex.h
13
#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
arch/hexagon/include/asm/futex.h
17
insn \
arch/loongarch/include/asm/asm-extable.h
12
#define __ASM_EXTABLE_RAW(insn, fixup, type, data) \
arch/loongarch/include/asm/asm-extable.h
15
.long ((insn) - .); \
arch/loongarch/include/asm/asm-extable.h
21
.macro _asm_extable, insn, fixup
arch/loongarch/include/asm/asm-extable.h
31
#define __ASM_EXTABLE_RAW(insn, fixup, type, data) \
arch/loongarch/include/asm/asm-extable.h
34
".long ((" insn ") - .)\n" \
arch/loongarch/include/asm/asm-extable.h
40
#define _ASM_EXTABLE(insn, fixup) \
arch/loongarch/include/asm/asm-extable.h
41
__ASM_EXTABLE_RAW(#insn, #fixup, __stringify(EX_TYPE_FIXUP), "0")
arch/loongarch/include/asm/asm-extable.h
51
#define _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, zero) \
arch/loongarch/include/asm/asm-extable.h
53
__ASM_EXTABLE_RAW(#insn, #fixup, \
arch/loongarch/include/asm/asm-extable.h
60
#define _ASM_EXTABLE_UACCESS_ERR(insn, fixup, err) \
arch/loongarch/include/asm/asm-extable.h
61
_ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, zero)
arch/loongarch/include/asm/extable.h
19
int insn, fixup;
arch/loongarch/include/asm/futex.h
14
#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
arch/loongarch/include/asm/futex.h
18
" " insn " \n" \
arch/loongarch/include/asm/inst.h
499
void simu_pc(struct pt_regs *regs, union loongarch_instruction insn);
arch/loongarch/include/asm/inst.h
500
void simu_branch(struct pt_regs *regs, union loongarch_instruction insn);
arch/loongarch/include/asm/inst.h
502
bool insns_not_supported(union loongarch_instruction insn);
arch/loongarch/include/asm/inst.h
503
bool insns_need_simulation(union loongarch_instruction insn);
arch/loongarch/include/asm/inst.h
504
void arch_simulate_insn(union loongarch_instruction insn, struct pt_regs *regs);
arch/loongarch/include/asm/inst.h
507
int larch_insn_write(void *addr, u32 insn);
arch/loongarch/include/asm/inst.h
508
int larch_insn_patch_text(void *addr, u32 insn);
arch/loongarch/include/asm/inst.h
538
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
541
insn->reg0i15_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
542
insn->reg0i15_format.immediate = imm; \
arch/loongarch/include/asm/inst.h
551
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
560
insn->reg0i26_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
561
insn->reg0i26_format.immediate_l = immediate_l; \
arch/loongarch/include/asm/inst.h
562
insn->reg0i26_format.immediate_h = immediate_h; \
arch/loongarch/include/asm/inst.h
569
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
572
insn->reg1i20_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
573
insn->reg1i20_format.immediate = imm; \
arch/loongarch/include/asm/inst.h
574
insn->reg1i20_format.rd = rd; \
arch/loongarch/include/asm/inst.h
582
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
586
insn->reg2_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
587
insn->reg2_format.rd = rd; \
arch/loongarch/include/asm/inst.h
588
insn->reg2_format.rj = rj; \
arch/loongarch/include/asm/inst.h
598
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
603
insn->reg2i5_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
604
insn->reg2i5_format.immediate = imm; \
arch/loongarch/include/asm/inst.h
605
insn->reg2i5_format.rd = rd; \
arch/loongarch/include/asm/inst.h
606
insn->reg2i5_format.rj = rj; \
arch/loongarch/include/asm/inst.h
614
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
619
insn->reg2i6_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
620
insn->reg2i6_format.immediate = imm; \
arch/loongarch/include/asm/inst.h
621
insn->reg2i6_format.rd = rd; \
arch/loongarch/include/asm/inst.h
622
insn->reg2i6_format.rj = rj; \
arch/loongarch/include/asm/inst.h
630
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
635
insn->reg2i12_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
636
insn->reg2i12_format.immediate = imm; \
arch/loongarch/include/asm/inst.h
637
insn->reg2i12_format.rd = rd; \
arch/loongarch/include/asm/inst.h
638
insn->reg2i12_format.rj = rj; \
arch/loongarch/include/asm/inst.h
660
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
665
insn->reg2i14_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
666
insn->reg2i14_format.immediate = imm; \
arch/loongarch/include/asm/inst.h
667
insn->reg2i14_format.rd = rd; \
arch/loongarch/include/asm/inst.h
668
insn->reg2i14_format.rj = rj; \
arch/loongarch/include/asm/inst.h
681
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
686
insn->reg2i16_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
687
insn->reg2i16_format.immediate = offset; \
arch/loongarch/include/asm/inst.h
688
insn->reg2i16_format.rj = rj; \
arch/loongarch/include/asm/inst.h
689
insn->reg2i16_format.rd = rd; \
arch/loongarch/include/asm/inst.h
699
static inline void emit_jirl(union loongarch_instruction *insn,
arch/loongarch/include/asm/inst.h
704
insn->reg2i16_format.opcode = jirl_op;
arch/loongarch/include/asm/inst.h
705
insn->reg2i16_format.immediate = offset;
arch/loongarch/include/asm/inst.h
706
insn->reg2i16_format.rd = rd;
arch/loongarch/include/asm/inst.h
707
insn->reg2i16_format.rj = rj;
arch/loongarch/include/asm/inst.h
711
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
717
insn->reg2bstrd_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
718
insn->reg2bstrd_format.msbd = msbd; \
arch/loongarch/include/asm/inst.h
719
insn->reg2bstrd_format.lsbd = lsbd; \
arch/loongarch/include/asm/inst.h
720
insn->reg2bstrd_format.rj = rj; \
arch/loongarch/include/asm/inst.h
721
insn->reg2bstrd_format.rd = rd; \
arch/loongarch/include/asm/inst.h
727
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
732
insn->reg3_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
733
insn->reg3_format.rd = rd; \
arch/loongarch/include/asm/inst.h
734
insn->reg3_format.rj = rj; \
arch/loongarch/include/asm/inst.h
735
insn->reg3_format.rk = rk; \
arch/loongarch/include/asm/inst.h
778
static inline void emit_##NAME(union loongarch_instruction *insn, \
arch/loongarch/include/asm/inst.h
784
insn->reg3sa2_format.opcode = OP; \
arch/loongarch/include/asm/inst.h
785
insn->reg3sa2_format.immediate = imm; \
arch/loongarch/include/asm/inst.h
786
insn->reg3sa2_format.rd = rd; \
arch/loongarch/include/asm/inst.h
787
insn->reg3sa2_format.rj = rj; \
arch/loongarch/include/asm/inst.h
788
insn->reg3sa2_format.rk = rk; \
arch/loongarch/include/asm/kprobes.h
30
kprobe_opcode_t *insn;
arch/loongarch/include/asm/uaccess.h
163
#define __get_data_asm(val, insn, ptr) \
arch/loongarch/include/asm/uaccess.h
168
"1: " insn " %1, %2 \n" \
arch/loongarch/include/asm/uaccess.h
216
#define __put_data_asm(insn, ptr) \
arch/loongarch/include/asm/uaccess.h
219
"1: " insn " %z2, %1 # __put_user_asm\n" \
arch/loongarch/include/asm/uprobes.h
18
u32 insn[2];
arch/loongarch/kernel/alternative.c
158
static void *__init_or_module text_poke_early(union loongarch_instruction *insn,
arch/loongarch/kernel/alternative.c
167
insn[i].word = buf[i].word;
arch/loongarch/kernel/alternative.c
172
flush_icache_range((unsigned long)insn, (unsigned long)(insn + nr));
arch/loongarch/kernel/alternative.c
174
return insn;
arch/loongarch/kernel/alternative.c
48
static void __init_or_module add_nops(union loongarch_instruction *insn, int count)
arch/loongarch/kernel/alternative.c
51
insn->word = INSN_NOP;
arch/loongarch/kernel/alternative.c
52
insn++;
arch/loongarch/kernel/ftrace.c
30
union loongarch_instruction *insn;
arch/loongarch/kernel/ftrace.c
32
insn = (union loongarch_instruction *)insn_addr;
arch/loongarch/kernel/ftrace.c
35
insn--;
arch/loongarch/kernel/ftrace.c
38
if (is_ra_save_ins(insn))
arch/loongarch/kernel/ftrace.c
39
*ra_off = -((1 << 12) - insn->reg2i12_format.immediate);
arch/loongarch/kernel/ftrace.c
41
} while (!is_stack_alloc_ins(insn) && limit);
arch/loongarch/kernel/ftrace_dyn.c
348
p->ainsn.insn = NULL;
arch/loongarch/kernel/inst.c
138
bool insns_not_supported(union loongarch_instruction insn)
arch/loongarch/kernel/inst.c
140
switch (insn.reg3_format.opcode) {
arch/loongarch/kernel/inst.c
149
switch (insn.reg2i14_format.opcode) {
arch/loongarch/kernel/inst.c
15
void simu_pc(struct pt_regs *regs, union loongarch_instruction insn)
arch/loongarch/kernel/inst.c
158
switch (insn.reg2_format.opcode) {
arch/loongarch/kernel/inst.c
167
switch (insn.reg1i21_format.opcode) {
arch/loongarch/kernel/inst.c
176
bool insns_need_simulation(union loongarch_instruction insn)
arch/loongarch/kernel/inst.c
178
if (is_pc_ins(&insn))
arch/loongarch/kernel/inst.c
18
unsigned int rd = insn.reg1i20_format.rd;
arch/loongarch/kernel/inst.c
181
if (is_branch_ins(&insn))
arch/loongarch/kernel/inst.c
187
void arch_simulate_insn(union loongarch_instruction insn, struct pt_regs *regs)
arch/loongarch/kernel/inst.c
189
if (is_pc_ins(&insn))
arch/loongarch/kernel/inst.c
19
unsigned int imm = insn.reg1i20_format.immediate;
arch/loongarch/kernel/inst.c
190
simu_pc(regs, insn);
arch/loongarch/kernel/inst.c
191
else if (is_branch_ins(&insn))
arch/loongarch/kernel/inst.c
192
simu_branch(regs, insn);
arch/loongarch/kernel/inst.c
207
int larch_insn_write(void *addr, u32 insn)
arch/loongarch/kernel/inst.c
213
ret = copy_to_kernel_nofault(addr, &insn, LOONGARCH_INSN_SIZE);
arch/loongarch/kernel/inst.c
219
int larch_insn_patch_text(void *addr, u32 insn)
arch/loongarch/kernel/inst.c
227
ret = larch_insn_write(tp, insn);
arch/loongarch/kernel/inst.c
26
switch (insn.reg1i20_format.opcode) {
arch/loongarch/kernel/inst.c
306
union loongarch_instruction insn;
arch/loongarch/kernel/inst.c
313
emit_b(&insn, offset >> 2);
arch/loongarch/kernel/inst.c
315
return insn.word;
arch/loongarch/kernel/inst.c
321
union loongarch_instruction insn;
arch/loongarch/kernel/inst.c
328
emit_bl(&insn, offset >> 2);
arch/loongarch/kernel/inst.c
330
return insn.word;
arch/loongarch/kernel/inst.c
335
union loongarch_instruction insn;
arch/loongarch/kernel/inst.c
342
emit_break(&insn, imm);
arch/loongarch/kernel/inst.c
344
return insn.word;
arch/loongarch/kernel/inst.c
349
union loongarch_instruction insn;
arch/loongarch/kernel/inst.c
351
emit_or(&insn, rd, rj, rk);
arch/loongarch/kernel/inst.c
353
return insn.word;
arch/loongarch/kernel/inst.c
363
union loongarch_instruction insn;
arch/loongarch/kernel/inst.c
370
emit_lu12iw(&insn, rd, imm);
arch/loongarch/kernel/inst.c
372
return insn.word;
arch/loongarch/kernel/inst.c
377
union loongarch_instruction insn;
arch/loongarch/kernel/inst.c
384
emit_lu32id(&insn, rd, imm);
arch/loongarch/kernel/inst.c
386
return insn.word;
arch/loongarch/kernel/inst.c
391
union loongarch_instruction insn;
arch/loongarch/kernel/inst.c
398
emit_lu52id(&insn, rd, rj, imm);
arch/loongarch/kernel/inst.c
400
return insn.word;
arch/loongarch/kernel/inst.c
405
union loongarch_instruction insn;
arch/loongarch/kernel/inst.c
412
emit_beq(&insn, rj, rd, imm >> 2);
arch/loongarch/kernel/inst.c
414
return insn.word;
arch/loongarch/kernel/inst.c
419
union loongarch_instruction insn;
arch/loongarch/kernel/inst.c
426
emit_bne(&insn, rj, rd, imm >> 2);
arch/loongarch/kernel/inst.c
428
return insn.word;
arch/loongarch/kernel/inst.c
433
union loongarch_instruction insn;
arch/loongarch/kernel/inst.c
440
emit_jirl(&insn, rd, rj, imm >> 2);
arch/loongarch/kernel/inst.c
442
return insn.word;
arch/loongarch/kernel/inst.c
48
void simu_branch(struct pt_regs *regs, union loongarch_instruction insn)
arch/loongarch/kernel/inst.c
58
imm_l = insn.reg0i26_format.immediate_l;
arch/loongarch/kernel/inst.c
59
imm_h = insn.reg0i26_format.immediate_h;
arch/loongarch/kernel/inst.c
60
switch (insn.reg0i26_format.opcode) {
arch/loongarch/kernel/inst.c
70
imm_l = insn.reg1i21_format.immediate_l;
arch/loongarch/kernel/inst.c
71
imm_h = insn.reg1i21_format.immediate_h;
arch/loongarch/kernel/inst.c
72
rj = insn.reg1i21_format.rj;
arch/loongarch/kernel/inst.c
73
switch (insn.reg1i21_format.opcode) {
arch/loongarch/kernel/inst.c
88
imm = insn.reg2i16_format.immediate;
arch/loongarch/kernel/inst.c
89
rj = insn.reg2i16_format.rj;
arch/loongarch/kernel/inst.c
90
rd = insn.reg2i16_format.rd;
arch/loongarch/kernel/inst.c
91
switch (insn.reg2i16_format.opcode) {
arch/loongarch/kernel/jump_label.c
13
u32 insn;
arch/loongarch/kernel/jump_label.c
17
insn = larch_insn_gen_b(jump_entry_code(entry), jump_entry_target(entry));
arch/loongarch/kernel/jump_label.c
19
insn = larch_insn_gen_nop();
arch/loongarch/kernel/jump_label.c
21
larch_insn_patch_text(addr, insn);
arch/loongarch/kernel/kprobes.c
15
p->ainsn.insn[0] = *p->addr;
arch/loongarch/kernel/kprobes.c
158
union loongarch_instruction insn;
arch/loongarch/kernel/kprobes.c
16
p->ainsn.insn[1] = KPROBE_SSTEPBP_INSN;
arch/loongarch/kernel/kprobes.c
168
if (p->ainsn.insn) {
arch/loongarch/kernel/kprobes.c
172
regs->csr_era = (unsigned long)p->ainsn.insn;
arch/loongarch/kernel/kprobes.c
175
insn.word = p->opcode;
arch/loongarch/kernel/kprobes.c
176
arch_simulate_insn(insn, regs);
arch/loongarch/kernel/kprobes.c
277
((unsigned long)&cur->ainsn.insn[1] == addr)) {
arch/loongarch/kernel/kprobes.c
29
union loongarch_instruction insn;
arch/loongarch/kernel/kprobes.c
36
insn.word = p->opcode;
arch/loongarch/kernel/kprobes.c
39
if (insns_not_supported(insn))
arch/loongarch/kernel/kprobes.c
42
if (insns_need_simulation(insn)) {
arch/loongarch/kernel/kprobes.c
43
p->ainsn.insn = NULL;
arch/loongarch/kernel/kprobes.c
45
p->ainsn.insn = get_insn_slot();
arch/loongarch/kernel/kprobes.c
46
if (!p->ainsn.insn)
arch/loongarch/kernel/kprobes.c
51
if (p->ainsn.insn)
arch/loongarch/kernel/kprobes.c
78
if (p->ainsn.insn) {
arch/loongarch/kernel/kprobes.c
79
free_insn_slot(p->ainsn.insn, 0);
arch/loongarch/kernel/kprobes.c
80
p->ainsn.insn = NULL;
arch/loongarch/kernel/module.c
188
union loongarch_instruction *insn = (union loongarch_instruction *)location;
arch/loongarch/kernel/module.c
200
insn->reg2i12_format.immediate = opr1 & 0xfff;
arch/loongarch/kernel/module.c
206
insn->reg2i12_format.immediate = opr1 & 0xfff;
arch/loongarch/kernel/module.c
212
insn->reg2i16_format.immediate = opr1 & 0xffff;
arch/loongarch/kernel/module.c
221
insn->reg2i16_format.immediate = (opr1 >> 2) & 0xffff;
arch/loongarch/kernel/module.c
227
insn->reg1i20_format.immediate = (opr1) & 0xfffff;
arch/loongarch/kernel/module.c
237
insn->reg1i21_format.immediate_l = opr1 & 0xffff;
arch/loongarch/kernel/module.c
238
insn->reg1i21_format.immediate_h = (opr1 >> 16) & 0x1f;
arch/loongarch/kernel/module.c
248
insn->reg0i26_format.immediate_l = opr1 & 0xffff;
arch/loongarch/kernel/module.c
249
insn->reg0i26_format.immediate_h = (opr1 >> 16) & 0x3ff;
arch/loongarch/kernel/module.c
303
union loongarch_instruction *insn = (union loongarch_instruction *)location;
arch/loongarch/kernel/module.c
326
insn->reg0i26_format.immediate_l = offset & 0xffff;
arch/loongarch/kernel/module.c
327
insn->reg0i26_format.immediate_h = (offset >> 16) & 0x3ff;
arch/loongarch/kernel/module.c
335
union loongarch_instruction *insn = (union loongarch_instruction *)location;
arch/loongarch/kernel/module.c
341
insn->reg2i12_format.immediate = v & 0xfff;
arch/loongarch/kernel/module.c
345
insn->reg1i20_format.immediate = v & 0xfffff;
arch/loongarch/kernel/module.c
358
union loongarch_instruction *insn = (union loongarch_instruction *)location;
arch/loongarch/kernel/module.c
369
insn->reg2i12_format.immediate = v & 0xfff;
arch/loongarch/kernel/module.c
373
insn->reg1i20_format.immediate = v & 0xfffff;
arch/loongarch/kernel/module.c
378
insn->reg1i20_format.immediate = v & 0xfffff;
arch/loongarch/kernel/module.c
382
insn->reg2i12_format.immediate = v & 0xfff;
arch/loongarch/kernel/relocate.c
75
union loongarch_instruction *insn = (void *)p->pc;
arch/loongarch/kernel/relocate.c
84
insn[0].reg1i20_format.immediate = lu12iw;
arch/loongarch/kernel/relocate.c
85
insn[1].reg2i12_format.immediate = ori;
arch/loongarch/kernel/relocate.c
87
insn[2].reg1i20_format.immediate = lu32id;
arch/loongarch/kernel/relocate.c
88
insn[3].reg2i12_format.immediate = lu52id;
arch/loongarch/kernel/traps.c
160
unsigned int insn;
arch/loongarch/kernel/traps.c
165
if (__get_inst(&insn, pc + i, user)) {
arch/loongarch/kernel/traps.c
169
pr_cont("%c%08x%c", (i?' ':'<'), insn, (i?' ':'>'));
arch/loongarch/kernel/traps.c
634
union loongarch_instruction insn;
arch/loongarch/kernel/traps.c
649
if (__get_inst(&insn.word, (u32 *)era, user))
arch/loongarch/kernel/traps.c
652
switch (insn.reg3_format.opcode) {
arch/loongarch/kernel/traps.c
654
if (insn.reg3_format.rd != 0)
arch/loongarch/kernel/traps.c
656
badv = regs->regs[insn.reg3_format.rj];
arch/loongarch/kernel/traps.c
657
upper = regs->regs[insn.reg3_format.rk];
arch/loongarch/kernel/traps.c
661
if (insn.reg3_format.rd != 0)
arch/loongarch/kernel/traps.c
663
badv = regs->regs[insn.reg3_format.rj];
arch/loongarch/kernel/traps.c
664
lower = regs->regs[insn.reg3_format.rk];
arch/loongarch/kernel/traps.c
679
badv = regs->regs[insn.reg3_format.rj];
arch/loongarch/kernel/traps.c
680
upper = regs->regs[insn.reg3_format.rk];
arch/loongarch/kernel/traps.c
695
badv = regs->regs[insn.reg3_format.rj];
arch/loongarch/kernel/traps.c
696
lower = regs->regs[insn.reg3_format.rk];
arch/loongarch/kernel/unaligned.c
274
union loongarch_instruction insn;
arch/loongarch/kernel/unaligned.c
278
__get_inst(&insn.word, pc, user);
arch/loongarch/kernel/unaligned.c
280
switch (insn.reg2i12_format.opcode) {
arch/loongarch/kernel/unaligned.c
347
switch (insn.reg2i14_format.opcode) {
arch/loongarch/kernel/unaligned.c
370
switch (insn.reg3_format.opcode) {
arch/loongarch/kernel/unaligned.c
449
regs->regs[insn.reg3_format.rd] = value;
arch/loongarch/kernel/unaligned.c
452
write_fpr(insn.reg3_format.rd, value);
arch/loongarch/kernel/unaligned.c
454
set_fpr64(&current->thread.fpu.fpr[insn.reg3_format.rd], 0, value);
arch/loongarch/kernel/unaligned.c
459
value = regs->regs[insn.reg3_format.rd];
arch/loongarch/kernel/unaligned.c
462
value = read_fpr(insn.reg3_format.rd);
arch/loongarch/kernel/unaligned.c
464
value = get_fpr64(&current->thread.fpu.fpr[insn.reg3_format.rd], 0);
arch/loongarch/kernel/uprobes.c
14
union loongarch_instruction insn;
arch/loongarch/kernel/uprobes.c
19
for (idx = ARRAY_SIZE(auprobe->insn) - 1; idx >= 0; idx--) {
arch/loongarch/kernel/uprobes.c
20
insn.word = auprobe->insn[idx];
arch/loongarch/kernel/uprobes.c
21
if (insns_not_supported(insn))
arch/loongarch/kernel/uprobes.c
25
if (insns_need_simulation(insn)) {
arch/loongarch/kernel/uprobes.c
29
auprobe->ixol[0] = auprobe->insn[0];
arch/loongarch/kernel/uprobes.c
78
union loongarch_instruction insn;
arch/loongarch/kernel/uprobes.c
83
insn.word = auprobe->insn[0];
arch/loongarch/kernel/uprobes.c
84
arch_simulate_insn(insn, regs);
arch/loongarch/net/bpf_jit.c
1000
if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL) {
arch/loongarch/net/bpf_jit.c
1004
m = bpf_jit_find_kfunc_model(ctx->prog, insn);
arch/loongarch/net/bpf_jit.c
1019
if (insn->src_reg != BPF_PSEUDO_CALL)
arch/loongarch/net/bpf_jit.c
1043
const u64 imm64 = (u64)(insn + 1)->imm << 32 | (u32)insn->imm;
arch/loongarch/net/bpf_jit.c
1045
if (bpf_pseudo_func(insn))
arch/loongarch/net/bpf_jit.c
1130
ret = add_exception_handler(insn, ctx, dst);
arch/loongarch/net/bpf_jit.c
1193
ret = add_exception_handler(insn, ctx, REG_DONT_CLEAR_MARKER);
arch/loongarch/net/bpf_jit.c
1252
ret = add_exception_handler(insn, ctx, REG_DONT_CLEAR_MARKER);
arch/loongarch/net/bpf_jit.c
1259
emit_atomic(insn, ctx);
arch/loongarch/net/bpf_jit.c
1284
const struct bpf_insn *insn = &prog->insnsi[i];
arch/loongarch/net/bpf_jit.c
1290
ret = build_insn(insn, ctx, extra_pass);
arch/loongarch/net/bpf_jit.c
1320
union loongarch_instruction insn;
arch/loongarch/net/bpf_jit.c
1323
insn = ctx->image[i];
arch/loongarch/net/bpf_jit.c
1325
if (insn.word == INSN_BREAK)
arch/loongarch/net/bpf_jit.c
278
static int emit_bpf_tail_call(struct jit_ctx *ctx, int insn)
arch/loongarch/net/bpf_jit.c
300
tc_ninsn = insn ? ctx->offset[insn+1] - ctx->offset[insn] : ctx->offset[0];
arch/loongarch/net/bpf_jit.c
347
static void emit_atomic(const struct bpf_insn *insn, struct jit_ctx *ctx)
arch/loongarch/net/bpf_jit.c
353
const u8 src = regmap[insn->src_reg];
arch/loongarch/net/bpf_jit.c
354
const u8 dst = regmap[insn->dst_reg];
arch/loongarch/net/bpf_jit.c
355
const s16 off = insn->off;
arch/loongarch/net/bpf_jit.c
356
const s32 imm = insn->imm;
arch/loongarch/net/bpf_jit.c
357
const bool isdw = BPF_SIZE(insn->code) == BPF_DW;
arch/loongarch/net/bpf_jit.c
478
static int add_exception_handler(const struct bpf_insn *insn,
arch/loongarch/net/bpf_jit.c
489
if (BPF_MODE(insn->code) != BPF_PROBE_MEM &&
arch/loongarch/net/bpf_jit.c
490
BPF_MODE(insn->code) != BPF_PROBE_MEMSX &&
arch/loongarch/net/bpf_jit.c
491
BPF_MODE(insn->code) != BPF_PROBE_MEM32)
arch/loongarch/net/bpf_jit.c
506
ins_offset = pc - (long)&ex->insn;
arch/loongarch/net/bpf_jit.c
530
ex->insn = ins_offset;
arch/loongarch/net/bpf_jit.c
540
static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool extra_pass)
arch/loongarch/net/bpf_jit.c
545
int i = insn - ctx->prog->insnsi;
arch/loongarch/net/bpf_jit.c
547
const u8 code = insn->code;
arch/loongarch/net/bpf_jit.c
552
u8 src = regmap[insn->src_reg];
arch/loongarch/net/bpf_jit.c
553
u8 dst = regmap[insn->dst_reg];
arch/loongarch/net/bpf_jit.c
554
const s16 off = insn->off;
arch/loongarch/net/bpf_jit.c
555
const s32 imm = insn->imm;
arch/loongarch/net/bpf_jit.c
556
const bool is32 = BPF_CLASS(insn->code) == BPF_ALU || BPF_CLASS(insn->code) == BPF_JMP32;
arch/loongarch/net/bpf_jit.c
562
if (insn_is_cast_user(insn)) {
arch/loongarch/net/bpf_jit.c
990
ret = bpf_jit_get_func_addr(ctx->prog, insn, extra_pass,
arch/loongarch/net/bpf_jit.c
995
if (insn->src_reg == BPF_PSEUDO_CALL) {
arch/loongarch/net/bpf_jit.h
33
static inline void emit_nop(union loongarch_instruction *insn)
arch/loongarch/net/bpf_jit.h
35
insn->word = INSN_NOP;
arch/loongarch/net/bpf_jit.h
41
union loongarch_instruction *insn = &ctx->image[ctx->idx]; \
arch/loongarch/net/bpf_jit.h
42
emit_##func(insn, ##__VA_ARGS__); \
arch/microblaze/include/asm/futex.h
11
#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
arch/microblaze/include/asm/futex.h
15
insn \
arch/microblaze/include/asm/uaccess.h
128
#define __put_user_asm(insn, __gu_ptr, __gu_val, __gu_err) \
arch/microblaze/include/asm/uaccess.h
131
"1:" insn " %1, %2, r0;" \
arch/microblaze/include/asm/uaccess.h
59
#define __get_user_asm(insn, __gu_ptr, __gu_val, __gu_err) \
arch/microblaze/include/asm/uaccess.h
62
"1:" insn " %1, %2, r0;" \
arch/mips/cavium-octeon/setup.c
1114
u32 insn;
arch/mips/cavium-octeon/setup.c
1117
foo = &insn;
arch/mips/cavium-octeon/setup.c
1128
: "=r" (insn) : : "$31", "memory");
arch/mips/cavium-octeon/setup.c
1130
if ((insn >> 26) != 0x33)
arch/mips/cavium-octeon/setup.c
1133
if (((insn >> 16) & 0x1f) != 28)
arch/mips/cavium-octeon/setup.c
1136
insn);
arch/mips/dec/kn01-berr.c
100
__get_user(insn.word, pc);
arch/mips/dec/kn01-berr.c
101
vaddr = regs->regs[insn.i_format.rs] +
arch/mips/dec/kn01-berr.c
102
insn.i_format.simmediate;
arch/mips/dec/kn01-berr.c
77
union mips_instruction insn;
arch/mips/include/asm/asm-eva.h
134
#define __BUILD_EVA_INSN(insn, reg, addr) \
arch/mips/include/asm/asm-eva.h
138
insn reg, addr; \
arch/mips/include/asm/asm-eva.h
47
#define __BUILD_EVA_INSN(insn, reg, addr) \
arch/mips/include/asm/asm-eva.h
51
" "insn" "reg", "addr "\n" \
arch/mips/include/asm/asm.h
52
.insn
arch/mips/include/asm/asm.h
65
.insn
arch/mips/include/asm/asm.h
88
symbol: .insn
arch/mips/include/asm/asmmacro.h
30
.insn
arch/mips/include/asm/asmmacro.h
42
.insn
arch/mips/include/asm/bitops.h
26
#define __bit_op(mem, insn, inputs...) do { \
arch/mips/include/asm/bitops.h
34
" " insn " \n" \
arch/mips/include/asm/bitops.h
43
#define __test_bit_op(mem, ll_dst, insn, inputs...) ({ \
arch/mips/include/asm/bitops.h
51
" " insn " \n" \
arch/mips/include/asm/branch.h
19
union mips_instruction insn);
arch/mips/include/asm/extable.h
7
unsigned long insn;
arch/mips/include/asm/futex.h
25
#define __futex_atomic_op(op, insn, ret, oldval, uaddr, oparg) \
arch/mips/include/asm/futex.h
35
" " insn " \n" \
arch/mips/include/asm/futex.h
65
" " insn " \n" \
arch/mips/include/asm/inst.h
78
mips_instruction insn;
arch/mips/include/asm/kprobes.h
49
kprobe_opcode_t *insn;
arch/mips/include/asm/mipsregs.h
1369
static inline int mm_insn_16bit(u16 insn)
arch/mips/include/asm/mipsregs.h
1371
u16 opcode = (insn >> 10) & 0x7;
arch/mips/include/asm/paccess.h
53
#define __get_dbe_asm(insn) \
arch/mips/include/asm/paccess.h
56
"1:\t" insn "\t%1,%2\n\t" \
arch/mips/include/asm/paccess.h
92
#define __put_dbe_asm(insn) \
arch/mips/include/asm/paccess.h
95
"1:\t" insn "\t%1,%2\n\t" \
arch/mips/include/asm/r4kcache.h
195
#define cache_unroll(times, insn, op, addr, lsize) do { \
arch/mips/include/asm/r4kcache.h
197
unroll(times, _cache_op, insn, op, (addr) + (i++ * (lsize))); \
arch/mips/include/asm/r4kcache.h
47
#define _cache_op(insn, op, addr) \
arch/mips/include/asm/r4kcache.h
52
" " insn("%0", "%1") " \n" \
arch/mips/include/asm/uaccess.h
199
#define __GET_DW(val, insn, ptr) __get_data_asm_ll32(val, insn, ptr)
arch/mips/include/asm/uaccess.h
202
#define __GET_DW(val, insn, ptr) __get_data_asm(val, insn, ptr)
arch/mips/include/asm/uaccess.h
205
#define __get_data_asm(val, insn, addr) \
arch/mips/include/asm/uaccess.h
210
"1: "insn("%1", "%3")" \n" \
arch/mips/include/asm/uaccess.h
230
#define __get_data_asm_ll32(val, insn, addr) \
arch/mips/include/asm/uaccess.h
238
"1: " insn("%1", "(%3)")" \n" \
arch/mips/include/asm/uaccess.h
239
"2: " insn("%D1", "4(%3)")" \n" \
arch/mips/include/asm/uaccess.h
292
#define __PUT_DW(insn, ptr) __put_data_asm_ll32(insn, ptr)
arch/mips/include/asm/uaccess.h
295
#define __PUT_DW(insn, ptr) __put_data_asm(insn, ptr)
arch/mips/include/asm/uaccess.h
298
#define __put_data_asm(insn, ptr) \
arch/mips/include/asm/uaccess.h
301
"1: "insn("%z2", "%3")" # __put_data_asm \n" \
arch/mips/include/asm/uaccess.h
316
#define __put_data_asm_ll32(insn, ptr) \
arch/mips/include/asm/uaccess.h
319
"1: "insn("%2", "(%3)")" # __put_data_asm_ll32 \n" \
arch/mips/include/asm/uaccess.h
320
"2: "insn("%D2", "4(%3)")" \n" \
arch/mips/include/asm/uprobes.h
37
u32 insn[2];
arch/mips/kernel/branch.c
100
(insn.mm_i_format.simmediate << 1);
arch/mips/kernel/branch.c
113
if ((long)regs->regs[insn.mm_i_format.rs] >= 0)
arch/mips/kernel/branch.c
116
(insn.mm_i_format.simmediate << 1);
arch/mips/kernel/branch.c
123
if ((long)regs->regs[insn.mm_i_format.rs] <= 0)
arch/mips/kernel/branch.c
126
(insn.mm_i_format.simmediate << 1);
arch/mips/kernel/branch.c
133
if ((long)regs->regs[insn.mm_i_format.rs] <= 0)
arch/mips/kernel/branch.c
136
(insn.mm_i_format.simmediate << 1);
arch/mips/kernel/branch.c
162
bit = (insn.mm_i_format.rs >> 2);
arch/mips/kernel/branch.c
168
(insn.mm_i_format.simmediate << 1);
arch/mips/kernel/branch.c
178
switch (insn.mm_i_format.rt) {
arch/mips/kernel/branch.c
185
*contpc = regs->regs[insn.mm_i_format.rs];
arch/mips/kernel/branch.c
190
if ((long)regs->regs[reg16to32map[insn.mm_b1_format.rs]] == 0)
arch/mips/kernel/branch.c
193
(insn.mm_b1_format.simmediate << 1);
arch/mips/kernel/branch.c
199
if ((long)regs->regs[reg16to32map[insn.mm_b1_format.rs]] != 0)
arch/mips/kernel/branch.c
202
(insn.mm_b1_format.simmediate << 1);
arch/mips/kernel/branch.c
209
(insn.mm_b0_format.simmediate << 1);
arch/mips/kernel/branch.c
212
if (regs->regs[insn.mm_i_format.rs] ==
arch/mips/kernel/branch.c
213
regs->regs[insn.mm_i_format.rt])
arch/mips/kernel/branch.c
216
(insn.mm_i_format.simmediate << 1);
arch/mips/kernel/branch.c
223
if (regs->regs[insn.mm_i_format.rs] !=
arch/mips/kernel/branch.c
224
regs->regs[insn.mm_i_format.rt])
arch/mips/kernel/branch.c
227
(insn.mm_i_format.simmediate << 1);
arch/mips/kernel/branch.c
238
*contpc |= (insn.j_format.target << 2);
arch/mips/kernel/branch.c
249
*contpc |= (insn.j_format.target << 1);
arch/mips/kernel/branch.c
287
mminsn.insn = word;
arch/mips/kernel/branch.c
423
union mips_instruction insn)
arch/mips/kernel/branch.c
429
switch (insn.i_format.opcode) {
arch/mips/kernel/branch.c
434
switch (insn.r_format.func) {
arch/mips/kernel/branch.c
436
regs->regs[insn.r_format.rd] = epc + 8;
arch/mips/kernel/branch.c
439
if (NO_R6EMU && insn.r_format.func == jr_op)
arch/mips/kernel/branch.c
441
regs->cp0_epc = regs->regs[insn.r_format.rs];
arch/mips/kernel/branch.c
452
switch (insn.i_format.rt) {
arch/mips/kernel/branch.c
458
if ((long)regs->regs[insn.i_format.rs] < 0) {
arch/mips/kernel/branch.c
459
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
460
if (insn.i_format.rt == bltzl_op)
arch/mips/kernel/branch.c
472
if ((long)regs->regs[insn.i_format.rs] >= 0) {
arch/mips/kernel/branch.c
473
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
474
if (insn.i_format.rt == bgezl_op)
arch/mips/kernel/branch.c
483
if (NO_R6EMU && (insn.i_format.rs ||
arch/mips/kernel/branch.c
484
insn.i_format.rt == bltzall_op))
arch/mips/kernel/branch.c
493
if (!insn.i_format.rs) {
arch/mips/kernel/branch.c
500
(insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
504
if ((long)regs->regs[insn.i_format.rs] < 0) {
arch/mips/kernel/branch.c
505
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
506
if (insn.i_format.rt == bltzall_op)
arch/mips/kernel/branch.c
515
if (NO_R6EMU && (insn.i_format.rs ||
arch/mips/kernel/branch.c
516
insn.i_format.rt == bgezall_op))
arch/mips/kernel/branch.c
525
if (!insn.i_format.rs) {
arch/mips/kernel/branch.c
532
(insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
536
if ((long)regs->regs[insn.i_format.rs] >= 0) {
arch/mips/kernel/branch.c
537
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
538
if (insn.i_format.rt == bgezall_op)
arch/mips/kernel/branch.c
552
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
571
epc |= (insn.j_format.target << 2);
arch/mips/kernel/branch.c
573
if (insn.i_format.opcode == jalx_op)
arch/mips/kernel/branch.c
585
if (regs->regs[insn.i_format.rs] ==
arch/mips/kernel/branch.c
586
regs->regs[insn.i_format.rt]) {
arch/mips/kernel/branch.c
587
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
588
if (insn.i_format.opcode == beql_op)
arch/mips/kernel/branch.c
600
if (regs->regs[insn.i_format.rs] !=
arch/mips/kernel/branch.c
601
regs->regs[insn.i_format.rt]) {
arch/mips/kernel/branch.c
602
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
603
if (insn.i_format.opcode == bnel_op)
arch/mips/kernel/branch.c
611
if (!insn.i_format.rt && NO_R6EMU)
arch/mips/kernel/branch.c
62
union mips_instruction insn = (union mips_instruction)dec_insn.insn;
arch/mips/kernel/branch.c
628
if (cpu_has_mips_r6 && insn.i_format.rt) {
arch/mips/kernel/branch.c
629
if ((insn.i_format.opcode == blez_op) &&
arch/mips/kernel/branch.c
630
((!insn.i_format.rs && insn.i_format.rt) ||
arch/mips/kernel/branch.c
631
(insn.i_format.rs == insn.i_format.rt)))
arch/mips/kernel/branch.c
637
if ((long)regs->regs[insn.i_format.rs] <= 0) {
arch/mips/kernel/branch.c
638
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
639
if (insn.i_format.opcode == blezl_op)
arch/mips/kernel/branch.c
647
if (!insn.i_format.rt && NO_R6EMU)
arch/mips/kernel/branch.c
664
if (cpu_has_mips_r6 && insn.i_format.rt) {
arch/mips/kernel/branch.c
665
if ((insn.i_format.opcode == blez_op) &&
arch/mips/kernel/branch.c
666
((!insn.i_format.rs && insn.i_format.rt) ||
arch/mips/kernel/branch.c
667
(insn.i_format.rs == insn.i_format.rt)))
arch/mips/kernel/branch.c
674
if ((long)regs->regs[insn.i_format.rs] > 0) {
arch/mips/kernel/branch.c
675
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
676
if (insn.i_format.opcode == bgtzl_op)
arch/mips/kernel/branch.c
68
switch (insn.mm_i_format.opcode) {
arch/mips/kernel/branch.c
691
((insn.i_format.rs == bc1eqz_op) ||
arch/mips/kernel/branch.c
692
(insn.i_format.rs == bc1nez_op))) {
arch/mips/kernel/branch.c
695
reg = insn.i_format.rt;
arch/mips/kernel/branch.c
697
if (insn.i_format.rs == bc1eqz_op)
arch/mips/kernel/branch.c
70
if ((insn.mm_i_format.simmediate & MM_POOL32A_MINOR_MASK) ==
arch/mips/kernel/branch.c
702
(insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
717
bit = (insn.i_format.rt >> 2);
arch/mips/kernel/branch.c
72
switch (insn.mm_i_format.simmediate >>
arch/mips/kernel/branch.c
720
switch (insn.i_format.rt & 3) {
arch/mips/kernel/branch.c
725
(insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
726
if (insn.i_format.rt == 2)
arch/mips/kernel/branch.c
737
(insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
738
if (insn.i_format.rt == 3)
arch/mips/kernel/branch.c
752
if ((regs->regs[insn.i_format.rs] & (1ull<<insn.i_format.rt))
arch/mips/kernel/branch.c
754
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
760
if ((regs->regs[insn.i_format.rs] &
arch/mips/kernel/branch.c
761
(1ull<<(insn.i_format.rt+32))) == 0)
arch/mips/kernel/branch.c
762
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
768
if (regs->regs[insn.i_format.rs] & (1ull<<insn.i_format.rt))
arch/mips/kernel/branch.c
769
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
775
if (regs->regs[insn.i_format.rs] &
arch/mips/kernel/branch.c
776
(1ull<<(insn.i_format.rt+32)))
arch/mips/kernel/branch.c
777
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
78
if (insn.mm_i_format.rt != 0) /* Not mm_jr */
arch/mips/kernel/branch.c
79
regs->regs[insn.mm_i_format.rt] =
arch/mips/kernel/branch.c
794
epc += 4 + (insn.i_format.simmediate << 2);
arch/mips/kernel/branch.c
807
if (!insn.i_format.rs) {
arch/mips/kernel/branch.c
823
if (insn.i_format.rt && !insn.i_format.rs)
arch/mips/kernel/branch.c
83
*contpc = regs->regs[insn.mm_i_format.rs];
arch/mips/kernel/branch.c
853
union mips_instruction insn;
arch/mips/kernel/branch.c
863
if (__get_user(insn.word, addr)) {
arch/mips/kernel/branch.c
868
return __compute_return_epc_for_insn(regs, insn);
arch/mips/kernel/branch.c
878
int __insn_is_compact_branch(union mips_instruction insn)
arch/mips/kernel/branch.c
883
switch (insn.i_format.opcode) {
arch/mips/kernel/branch.c
89
switch (insn.mm_i_format.rt) {
arch/mips/kernel/branch.c
892
if (insn.i_format.rt)
arch/mips/kernel/branch.c
97
if ((long)regs->regs[insn.mm_i_format.rs] < 0)
arch/mips/kernel/jump_label.c
42
union mips_instruction insn;
arch/mips/kernel/jump_label.c
62
insn.j_format.opcode = bc6_op;
arch/mips/kernel/jump_label.c
63
insn.j_format.target = offset;
arch/mips/kernel/jump_label.c
72
insn.j_format.opcode = J_ISA_BIT ? mm_j32_op : j_op;
arch/mips/kernel/jump_label.c
73
insn.j_format.target = e->target >> J_RANGE_SHIFT;
arch/mips/kernel/jump_label.c
76
insn.word = 0; /* nop */
arch/mips/kernel/jump_label.c
81
insn_p->halfword[0] = insn.word >> 16;
arch/mips/kernel/jump_label.c
82
insn_p->halfword[1] = insn.word;
arch/mips/kernel/jump_label.c
84
*insn_p = insn;
arch/mips/kernel/kprobes.c
100
if (__insn_is_compact_branch(insn)) {
arch/mips/kernel/kprobes.c
107
p->ainsn.insn = get_insn_slot();
arch/mips/kernel/kprobes.c
108
if (!p->ainsn.insn) {
arch/mips/kernel/kprobes.c
126
if (insn_has_delayslot(insn))
arch/mips/kernel/kprobes.c
127
memcpy(&p->ainsn.insn[0], p->addr + 1, sizeof(kprobe_opcode_t));
arch/mips/kernel/kprobes.c
129
memcpy(&p->ainsn.insn[0], p->addr, sizeof(kprobe_opcode_t));
arch/mips/kernel/kprobes.c
131
p->ainsn.insn[1] = breakpoint2_insn;
arch/mips/kernel/kprobes.c
155
if (p->ainsn.insn) {
arch/mips/kernel/kprobes.c
156
free_insn_slot(p->ainsn.insn, 0);
arch/mips/kernel/kprobes.c
157
p->ainsn.insn = NULL;
arch/mips/kernel/kprobes.c
204
union mips_instruction insn = p->opcode;
arch/mips/kernel/kprobes.c
212
if (p->ainsn.insn->word == 0)
arch/mips/kernel/kprobes.c
217
ret = __compute_return_epc_for_insn(regs, insn);
arch/mips/kernel/kprobes.c
251
regs->cp0_epc = (unsigned long)&p->ainsn.insn[0];
arch/mips/kernel/kprobes.c
300
p->ainsn.insn->word == breakpoint_insn.word) {
arch/mips/kernel/kprobes.c
47
static int insn_has_delayslot(union mips_instruction insn)
arch/mips/kernel/kprobes.c
49
return __insn_has_delay_slot(insn);
arch/mips/kernel/kprobes.c
60
static int insn_has_ll_or_sc(union mips_instruction insn)
arch/mips/kernel/kprobes.c
64
switch (insn.i_format.opcode) {
arch/mips/kernel/kprobes.c
80
union mips_instruction insn;
arch/mips/kernel/kprobes.c
84
insn = p->addr[0];
arch/mips/kernel/kprobes.c
86
if (insn_has_ll_or_sc(insn)) {
arch/mips/kernel/module.c
117
unsigned long insn;
arch/mips/kernel/module.c
131
insn = *l->addr;
arch/mips/kernel/module.c
132
val = ((insn & 0xffff) << 16) + vallo;
arch/mips/kernel/module.c
141
insn = (insn & ~0xffff) | val;
arch/mips/kernel/module.c
142
*l->addr = insn;
arch/mips/kernel/probes-common.h
12
int __insn_is_compact_branch(union mips_instruction insn);
arch/mips/kernel/probes-common.h
14
static inline int __insn_has_delay_slot(const union mips_instruction insn)
arch/mips/kernel/probes-common.h
16
switch (insn.i_format.opcode) {
arch/mips/kernel/probes-common.h
21
switch (insn.r_format.func) {
arch/mips/kernel/probes-common.h
34
switch (insn.i_format.rt) {
arch/mips/kernel/process.c
408
union mips_instruction insn, *ip, *ip_end;
arch/mips/kernel/process.c
425
insn.word = ip->halfword[0] << 16;
arch/mips/kernel/process.c
428
insn.word = ip->halfword[0] << 16 | ip->halfword[1];
arch/mips/kernel/process.c
431
insn.word = ip->word;
arch/mips/kernel/process.c
438
is_sp_move_ins(&insn, &info->frame_size);
arch/mips/kernel/process.c
458
is_ra_save_ins(&insn, &info->pc_offset))
arch/mips/kernel/relocate.c
117
unsigned long insn = *loc_orig;
arch/mips/kernel/relocate.c
118
unsigned long target = (insn & 0xffff) << 16; /* high 16bits of target */
arch/mips/kernel/relocate.c
122
*loc_new = (insn & ~0xffff) | ((target >> 16) & 0xffff);
arch/mips/kernel/unaligned.c
1002
reg = insn.mm_i_format.rt;
arch/mips/kernel/unaligned.c
1006
reg = insn.mm_i_format.rt;
arch/mips/kernel/unaligned.c
1010
switch (insn.mm16_m_format.func) {
arch/mips/kernel/unaligned.c
1012
reg = insn.mm16_m_format.rlist;
arch/mips/kernel/unaligned.c
1032
reg = insn.mm16_m_format.rlist;
arch/mips/kernel/unaligned.c
1056
reg = reg16to32[insn.mm16_rb_format.rt];
arch/mips/kernel/unaligned.c
1060
reg = reg16to32[insn.mm16_rb_format.rt];
arch/mips/kernel/unaligned.c
1064
reg = reg16to32st[insn.mm16_rb_format.rt];
arch/mips/kernel/unaligned.c
1068
reg = reg16to32st[insn.mm16_rb_format.rt];
arch/mips/kernel/unaligned.c
1072
reg = insn.mm16_r5_format.rt;
arch/mips/kernel/unaligned.c
1076
reg = insn.mm16_r5_format.rt;
arch/mips/kernel/unaligned.c
1080
reg = reg16to32[insn.mm16_r3_format.rt];
arch/mips/kernel/unaligned.c
116
union mips_instruction insn;
arch/mips/kernel/unaligned.c
128
__get_inst32(&insn.word, pc, user);
arch/mips/kernel/unaligned.c
130
switch (insn.i_format.opcode) {
arch/mips/kernel/unaligned.c
166
if (insn.mxu_lx_format.func != mxu_lx_op)
arch/mips/kernel/unaligned.c
169
switch (insn.mxu_lx_format.op) {
arch/mips/kernel/unaligned.c
177
regs->regs[insn.mxu_lx_format.rd] = value;
arch/mips/kernel/unaligned.c
186
regs->regs[insn.dsp_format.rd] = value;
arch/mips/kernel/unaligned.c
195
regs->regs[insn.dsp_format.rd] = value;
arch/mips/kernel/unaligned.c
206
if (insn.dsp_format.func == lx_op) {
arch/mips/kernel/unaligned.c
207
switch (insn.dsp_format.op) {
arch/mips/kernel/unaligned.c
215
regs->regs[insn.dsp_format.rd] = value;
arch/mips/kernel/unaligned.c
224
regs->regs[insn.dsp_format.rd] = value;
arch/mips/kernel/unaligned.c
237
switch (insn.spec3_format.func) {
arch/mips/kernel/unaligned.c
245
regs->regs[insn.spec3_format.rt] = value;
arch/mips/kernel/unaligned.c
254
regs->regs[insn.spec3_format.rt] = value;
arch/mips/kernel/unaligned.c
263
regs->regs[insn.spec3_format.rt] = value;
arch/mips/kernel/unaligned.c
269
value = regs->regs[insn.spec3_format.rt];
arch/mips/kernel/unaligned.c
278
value = regs->regs[insn.spec3_format.rt];
arch/mips/kernel/unaligned.c
301
regs->regs[insn.i_format.rt] = value;
arch/mips/kernel/unaligned.c
316
regs->regs[insn.i_format.rt] = value;
arch/mips/kernel/unaligned.c
331
regs->regs[insn.i_format.rt] = value;
arch/mips/kernel/unaligned.c
350
regs->regs[insn.i_format.rt] = value;
arch/mips/kernel/unaligned.c
373
regs->regs[insn.i_format.rt] = value;
arch/mips/kernel/unaligned.c
385
value = regs->regs[insn.i_format.rt];
arch/mips/kernel/unaligned.c
401
value = regs->regs[insn.i_format.rt];
arch/mips/kernel/unaligned.c
425
value = regs->regs[insn.i_format.rt];
arch/mips/kernel/unaligned.c
477
df = insn.msa_mi10_format.df;
arch/mips/kernel/unaligned.c
478
wd = insn.msa_mi10_format.wd;
arch/mips/kernel/unaligned.c
481
switch (insn.msa_mi10_format.func) {
arch/mips/kernel/unaligned.c
627
union mips_instruction insn;
arch/mips/kernel/unaligned.c
653
mminsn.insn = word;
arch/mips/kernel/unaligned.c
669
insn = (union mips_instruction)(mminsn.insn);
arch/mips/kernel/unaligned.c
671
insn = (union mips_instruction)(mminsn.next_insn);
arch/mips/kernel/unaligned.c
675
switch (insn.mm_i_format.opcode) {
arch/mips/kernel/unaligned.c
678
switch (insn.mm_x_format.func) {
arch/mips/kernel/unaligned.c
680
reg = insn.mm_x_format.rd;
arch/mips/kernel/unaligned.c
687
switch (insn.mm_m_format.func) {
arch/mips/kernel/unaligned.c
689
reg = insn.mm_m_format.rd;
arch/mips/kernel/unaligned.c
708
reg = insn.mm_m_format.rd;
arch/mips/kernel/unaligned.c
728
reg = insn.mm_m_format.rd;
arch/mips/kernel/unaligned.c
751
reg = insn.mm_m_format.rd;
arch/mips/kernel/unaligned.c
773
reg = insn.mm_m_format.rd;
arch/mips/kernel/unaligned.c
809
reg = insn.mm_m_format.rd;
arch/mips/kernel/unaligned.c
846
reg = insn.mm_m_format.rd;
arch/mips/kernel/unaligned.c
887
reg = insn.mm_m_format.rd;
arch/mips/kernel/unaligned.c
932
switch (insn.mm_m_format.func) {
arch/mips/kernel/unaligned.c
934
reg = insn.mm_m_format.rd;
arch/mips/kernel/unaligned.c
943
switch (insn.mm_x_format.func) {
arch/mips/kernel/unaligned.c
982
reg = insn.mm_i_format.rt;
arch/mips/kernel/unaligned.c
986
reg = insn.mm_i_format.rt;
arch/mips/kernel/unaligned.c
990
reg = insn.mm_i_format.rt;
arch/mips/kernel/unaligned.c
994
reg = insn.mm_i_format.rt;
arch/mips/kernel/unaligned.c
998
reg = insn.mm_i_format.rt;
arch/mips/kernel/uprobes.c
114
if (insn_has_delay_slot((union mips_instruction) aup->insn[0])) {
arch/mips/kernel/uprobes.c
116
(union mips_instruction) aup->insn[0]);
arch/mips/kernel/uprobes.c
15
static inline int insn_has_delay_slot(const union mips_instruction insn)
arch/mips/kernel/uprobes.c
17
return __insn_has_delay_slot(insn);
arch/mips/kernel/uprobes.c
39
inst.word = aup->insn[0];
arch/mips/kernel/uprobes.c
46
aup->ixol[0] = aup->insn[insn_has_delay_slot(inst)];
arch/mips/kernel/uprobes.c
62
bool is_trap_insn(uprobe_opcode_t *insn)
arch/mips/kernel/uprobes.c
66
inst.word = *insn;
arch/mips/kernel/vpe.c
347
unsigned long insn;
arch/mips/kernel/vpe.c
363
insn = *l->addr;
arch/mips/kernel/vpe.c
364
val = ((insn & 0xffff) << 16) + vallo;
arch/mips/kernel/vpe.c
373
insn = (insn & ~0xffff) | val;
arch/mips/kernel/vpe.c
374
*l->addr = insn;
arch/mips/kvm/emulate.c
103
if ((long)arch->gprs[insn.i_format.rs] < 0)
arch/mips/kvm/emulate.c
104
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kvm/emulate.c
113
if ((long)arch->gprs[insn.i_format.rs] >= 0)
arch/mips/kvm/emulate.c
114
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kvm/emulate.c
129
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kvm/emulate.c
147
epc |= (insn.j_format.target << 2);
arch/mips/kvm/emulate.c
154
if (arch->gprs[insn.i_format.rs] ==
arch/mips/kvm/emulate.c
155
arch->gprs[insn.i_format.rt])
arch/mips/kvm/emulate.c
156
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kvm/emulate.c
164
if (arch->gprs[insn.i_format.rs] !=
arch/mips/kvm/emulate.c
165
arch->gprs[insn.i_format.rt])
arch/mips/kvm/emulate.c
166
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kvm/emulate.c
176
if (insn.i_format.rt != 0)
arch/mips/kvm/emulate.c
178
if ((long)arch->gprs[insn.i_format.rs] <= 0)
arch/mips/kvm/emulate.c
179
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kvm/emulate.c
189
if (insn.i_format.rt != 0)
arch/mips/kvm/emulate.c
191
if ((long)arch->gprs[insn.i_format.rs] > 0)
arch/mips/kvm/emulate.c
192
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kvm/emulate.c
208
if (insn.i_format.rt != 0)
arch/mips/kvm/emulate.c
214
if (insn.i_format.rs != 0 || insn.i_format.rt != 0)
arch/mips/kvm/emulate.c
220
if (insn.i_format.rs != 0)
arch/mips/kvm/emulate.c
44
union mips_instruction insn;
arch/mips/kvm/emulate.c
56
err = kvm_get_badinstrp((u32 *)epc, vcpu, &insn.word);
arch/mips/kvm/emulate.c
60
switch (insn.i_format.opcode) {
arch/mips/kvm/emulate.c
63
switch (insn.r_format.func) {
arch/mips/kvm/emulate.c
65
arch->gprs[insn.r_format.rd] = epc + 8;
arch/mips/kvm/emulate.c
68
nextpc = arch->gprs[insn.r_format.rs];
arch/mips/kvm/emulate.c
81
switch (insn.i_format.rt) {
arch/mips/kvm/emulate.c
84
if ((long)arch->gprs[insn.i_format.rs] < 0)
arch/mips/kvm/emulate.c
85
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/kvm/emulate.c
93
if ((long)arch->gprs[insn.i_format.rs] >= 0)
arch/mips/kvm/emulate.c
94
epc = epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/loongson64/cop2-ex.c
106
if (insn.loongson3_lswc2_format.ls == 0)
arch/mips/loongson64/cop2-ex.c
109
if (insn.loongson3_lswc2_format.fr == 0) { /* gssq */
arch/mips/loongson64/cop2-ex.c
114
value_next = regs->regs[insn.loongson3_lswc2_format.rq];
arch/mips/loongson64/cop2-ex.c
119
value = regs->regs[insn.loongson3_lswc2_format.rt];
arch/mips/loongson64/cop2-ex.c
131
value_next = get_fpr64(&current->thread.fpu.fpr[insn.loongson3_lswc2_format.rq], 0);
arch/mips/loongson64/cop2-ex.c
137
value = get_fpr64(&current->thread.fpu.fpr[insn.loongson3_lswc2_format.rt], 0);
arch/mips/loongson64/cop2-ex.c
149
switch (insn.loongson3_lsdc2_format.opcode1) {
arch/mips/loongson64/cop2-ex.c
168
regs->regs[insn.loongson3_lsdc2_format.rt] = value;
arch/mips/loongson64/cop2-ex.c
179
regs->regs[insn.loongson3_lsdc2_format.rt] = value;
arch/mips/loongson64/cop2-ex.c
190
regs->regs[insn.loongson3_lsdc2_format.rt] = value;
arch/mips/loongson64/cop2-ex.c
203
set_fpr64(&current->thread.fpu.fpr[insn.loongson3_lsdc2_format.rt], 0, value);
arch/mips/loongson64/cop2-ex.c
219
set_fpr64(&current->thread.fpu.fpr[insn.loongson3_lsdc2_format.rt], 0, value);
arch/mips/loongson64/cop2-ex.c
228
switch (insn.loongson3_lsdc2_format.opcode1) {
arch/mips/loongson64/cop2-ex.c
243
value = regs->regs[insn.loongson3_lsdc2_format.rt];
arch/mips/loongson64/cop2-ex.c
255
value = regs->regs[insn.loongson3_lsdc2_format.rt];
arch/mips/loongson64/cop2-ex.c
267
value = regs->regs[insn.loongson3_lsdc2_format.rt];
arch/mips/loongson64/cop2-ex.c
283
value = get_fpr64(&current->thread.fpu.fpr[insn.loongson3_lsdc2_format.rt], 0);
arch/mips/loongson64/cop2-ex.c
301
value = get_fpr64(&current->thread.fpu.fpr[insn.loongson3_lsdc2_format.rt], 0);
arch/mips/loongson64/cop2-ex.c
33
union mips_instruction insn;
arch/mips/loongson64/cop2-ex.c
40
__get_user(insn.word, pc);
arch/mips/loongson64/cop2-ex.c
67
if (insn.loongson3_lswc2_format.ls == 0)
arch/mips/loongson64/cop2-ex.c
70
if (insn.loongson3_lswc2_format.fr == 0) { /* gslq */
arch/mips/loongson64/cop2-ex.c
82
regs->regs[insn.loongson3_lswc2_format.rt] = value;
arch/mips/loongson64/cop2-ex.c
83
regs->regs[insn.loongson3_lswc2_format.rq] = value_next;
arch/mips/loongson64/cop2-ex.c
98
set_fpr64(&current->thread.fpu.fpr[insn.loongson3_lswc2_format.rt], 0, value);
arch/mips/loongson64/cop2-ex.c
99
set_fpr64(&current->thread.fpu.fpr[insn.loongson3_lswc2_format.rq], 0, value_next);
arch/mips/math-emu/cp1emu.c
101
mips32_insn.mm_i_format.rt = insn.mm_i_format.rs;
arch/mips/math-emu/cp1emu.c
1019
ir = dec_insn.insn; /* process current instr */
arch/mips/math-emu/cp1emu.c
102
mips32_insn.mm_i_format.rs = insn.mm_i_format.rt;
arch/mips/math-emu/cp1emu.c
106
mips32_insn.mm_i_format.rt = insn.mm_i_format.rs;
arch/mips/math-emu/cp1emu.c
107
mips32_insn.mm_i_format.rs = insn.mm_i_format.rt;
arch/mips/math-emu/cp1emu.c
111
if ((insn.mm_i_format.rt == mm_bc1f_op) ||
arch/mips/math-emu/cp1emu.c
112
(insn.mm_i_format.rt == mm_bc1t_op)) {
arch/mips/math-emu/cp1emu.c
116
(insn.mm_i_format.rt == mm_bc1t_op) ? 1 : 0;
arch/mips/math-emu/cp1emu.c
121
switch (insn.mm_fp0_format.func) {
arch/mips/math-emu/cp1emu.c
130
op = insn.mm_fp0_format.func;
arch/mips/math-emu/cp1emu.c
148
mips32_insn.fp6_format.fr = insn.mm_fp6_format.fr;
arch/mips/math-emu/cp1emu.c
149
mips32_insn.fp6_format.ft = insn.mm_fp6_format.ft;
arch/mips/math-emu/cp1emu.c
150
mips32_insn.fp6_format.fs = insn.mm_fp6_format.fs;
arch/mips/math-emu/cp1emu.c
151
mips32_insn.fp6_format.fd = insn.mm_fp6_format.fd;
arch/mips/math-emu/cp1emu.c
156
op = insn.mm_fp5_format.op & 0x7;
arch/mips/math-emu/cp1emu.c
169
insn.mm_fp5_format.base;
arch/mips/math-emu/cp1emu.c
171
insn.mm_fp5_format.index;
arch/mips/math-emu/cp1emu.c
173
mips32_insn.r_format.re = insn.mm_fp5_format.fd;
arch/mips/math-emu/cp1emu.c
180
if (insn.mm_fp2_format.op == mm_fmovt_op)
arch/mips/math-emu/cp1emu.c
182
else if (insn.mm_fp2_format.op == mm_fmovf_op)
arch/mips/math-emu/cp1emu.c
187
sdps_format[insn.mm_fp2_format.fmt];
arch/mips/math-emu/cp1emu.c
189
(insn.mm_fp2_format.cc<<2) + op;
arch/mips/math-emu/cp1emu.c
191
insn.mm_fp2_format.fs;
arch/mips/math-emu/cp1emu.c
193
insn.mm_fp2_format.fd;
arch/mips/math-emu/cp1emu.c
200
if (insn.mm_fp0_format.op == mm_fadd_op)
arch/mips/math-emu/cp1emu.c
202
else if (insn.mm_fp0_format.op == mm_fsub_op)
arch/mips/math-emu/cp1emu.c
204
else if (insn.mm_fp0_format.op == mm_fmul_op)
arch/mips/math-emu/cp1emu.c
206
else if (insn.mm_fp0_format.op == mm_fdiv_op)
arch/mips/math-emu/cp1emu.c
211
sdps_format[insn.mm_fp0_format.fmt];
arch/mips/math-emu/cp1emu.c
213
insn.mm_fp0_format.ft;
arch/mips/math-emu/cp1emu.c
215
insn.mm_fp0_format.fs;
arch/mips/math-emu/cp1emu.c
217
insn.mm_fp0_format.fd;
arch/mips/math-emu/cp1emu.c
224
if (insn.mm_fp0_format.op == mm_fmovn_op)
arch/mips/math-emu/cp1emu.c
226
else if (insn.mm_fp0_format.op == mm_fmovz_op)
arch/mips/math-emu/cp1emu.c
231
sdps_format[insn.mm_fp0_format.fmt];
arch/mips/math-emu/cp1emu.c
233
insn.mm_fp0_format.ft;
arch/mips/math-emu/cp1emu.c
235
insn.mm_fp0_format.fs;
arch/mips/math-emu/cp1emu.c
237
insn.mm_fp0_format.fd;
arch/mips/math-emu/cp1emu.c
243
switch (insn.mm_fp1_format.op) {
arch/mips/math-emu/cp1emu.c
248
if ((insn.mm_fp1_format.op & 0x7f) ==
arch/mips/math-emu/cp1emu.c
254
mips32_insn.r_format.rs = insn.mm_fp4_format.fs;
arch/mips/math-emu/cp1emu.c
256
(insn.mm_fp4_format.cc << 2) + op;
arch/mips/math-emu/cp1emu.c
257
mips32_insn.r_format.rd = insn.mm_fp4_format.rt;
arch/mips/math-emu/cp1emu.c
265
if ((insn.mm_fp1_format.op & 0x7f) ==
arch/mips/math-emu/cp1emu.c
268
fmt = swl_format[insn.mm_fp3_format.fmt];
arch/mips/math-emu/cp1emu.c
271
fmt = dwl_format[insn.mm_fp3_format.fmt];
arch/mips/math-emu/cp1emu.c
277
insn.mm_fp3_format.fs;
arch/mips/math-emu/cp1emu.c
279
insn.mm_fp3_format.rt;
arch/mips/math-emu/cp1emu.c
2874
dec_insn.insn = (*instr_ptr << 16) |
arch/mips/math-emu/cp1emu.c
288
if ((insn.mm_fp1_format.op & 0x7f) ==
arch/mips/math-emu/cp1emu.c
2880
dec_insn.insn = (*instr_ptr << 16) |
arch/mips/math-emu/cp1emu.c
2901
if ((get_user(dec_insn.insn,
arch/mips/math-emu/cp1emu.c
291
else if ((insn.mm_fp1_format.op & 0x7f) ==
arch/mips/math-emu/cp1emu.c
2913
if ((dec_insn.insn == 0) ||
arch/mips/math-emu/cp1emu.c
2915
((dec_insn.insn & 0xffff) == MM_NOP16)))
arch/mips/math-emu/cp1emu.c
298
sdps_format[insn.mm_fp3_format.fmt];
arch/mips/math-emu/cp1emu.c
301
insn.mm_fp3_format.fs;
arch/mips/math-emu/cp1emu.c
303
insn.mm_fp3_format.rt;
arch/mips/math-emu/cp1emu.c
316
if (insn.mm_fp1_format.op == mm_ffloorl_op)
arch/mips/math-emu/cp1emu.c
318
else if (insn.mm_fp1_format.op == mm_ffloorw_op)
arch/mips/math-emu/cp1emu.c
320
else if (insn.mm_fp1_format.op == mm_fceill_op)
arch/mips/math-emu/cp1emu.c
322
else if (insn.mm_fp1_format.op == mm_fceilw_op)
arch/mips/math-emu/cp1emu.c
324
else if (insn.mm_fp1_format.op == mm_ftruncl_op)
arch/mips/math-emu/cp1emu.c
326
else if (insn.mm_fp1_format.op == mm_ftruncw_op)
arch/mips/math-emu/cp1emu.c
328
else if (insn.mm_fp1_format.op == mm_froundl_op)
arch/mips/math-emu/cp1emu.c
330
else if (insn.mm_fp1_format.op == mm_froundw_op)
arch/mips/math-emu/cp1emu.c
332
else if (insn.mm_fp1_format.op == mm_fcvtl_op)
arch/mips/math-emu/cp1emu.c
338
sd_format[insn.mm_fp1_format.fmt];
arch/mips/math-emu/cp1emu.c
341
insn.mm_fp1_format.fs;
arch/mips/math-emu/cp1emu.c
343
insn.mm_fp1_format.rt;
arch/mips/math-emu/cp1emu.c
349
if (insn.mm_fp1_format.op == mm_frsqrt_op)
arch/mips/math-emu/cp1emu.c
351
else if (insn.mm_fp1_format.op == mm_fsqrt_op)
arch/mips/math-emu/cp1emu.c
357
sdps_format[insn.mm_fp1_format.fmt];
arch/mips/math-emu/cp1emu.c
360
insn.mm_fp1_format.fs;
arch/mips/math-emu/cp1emu.c
362
insn.mm_fp1_format.rt;
arch/mips/math-emu/cp1emu.c
371
if (insn.mm_fp1_format.op == mm_mfc1_op)
arch/mips/math-emu/cp1emu.c
373
else if (insn.mm_fp1_format.op == mm_mtc1_op)
arch/mips/math-emu/cp1emu.c
375
else if (insn.mm_fp1_format.op == mm_cfc1_op)
arch/mips/math-emu/cp1emu.c
377
else if (insn.mm_fp1_format.op == mm_ctc1_op)
arch/mips/math-emu/cp1emu.c
379
else if (insn.mm_fp1_format.op == mm_mfhc1_op)
arch/mips/math-emu/cp1emu.c
386
insn.mm_fp1_format.rt;
arch/mips/math-emu/cp1emu.c
388
insn.mm_fp1_format.fs;
arch/mips/math-emu/cp1emu.c
399
sdps_format[insn.mm_fp4_format.fmt];
arch/mips/math-emu/cp1emu.c
400
mips32_insn.fp0_format.ft = insn.mm_fp4_format.rt;
arch/mips/math-emu/cp1emu.c
401
mips32_insn.fp0_format.fs = insn.mm_fp4_format.fs;
arch/mips/math-emu/cp1emu.c
402
mips32_insn.fp0_format.fd = insn.mm_fp4_format.cc << 2;
arch/mips/math-emu/cp1emu.c
404
insn.mm_fp4_format.cond | MM_MIPS32_COND_FC;
arch/mips/math-emu/cp1emu.c
427
union mips_instruction insn = (union mips_instruction)dec_insn.insn;
arch/mips/math-emu/cp1emu.c
433
switch (insn.i_format.opcode) {
arch/mips/math-emu/cp1emu.c
435
switch (insn.r_format.func) {
arch/mips/math-emu/cp1emu.c
437
if (insn.r_format.rd != 0) {
arch/mips/math-emu/cp1emu.c
438
regs->regs[insn.r_format.rd] =
arch/mips/math-emu/cp1emu.c
445
if (NO_R6EMU && insn.r_format.func == jr_op)
arch/mips/math-emu/cp1emu.c
447
*contpc = regs->regs[insn.r_format.rs];
arch/mips/math-emu/cp1emu.c
452
switch (insn.i_format.rt) {
arch/mips/math-emu/cp1emu.c
455
if (NO_R6EMU && (insn.i_format.rs ||
arch/mips/math-emu/cp1emu.c
456
insn.i_format.rt == bltzall_op))
arch/mips/math-emu/cp1emu.c
468
if ((long)regs->regs[insn.i_format.rs] < 0)
arch/mips/math-emu/cp1emu.c
471
(insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
479
if (NO_R6EMU && (insn.i_format.rs ||
arch/mips/math-emu/cp1emu.c
480
insn.i_format.rt == bgezall_op))
arch/mips/math-emu/cp1emu.c
492
if ((long)regs->regs[insn.i_format.rs] >= 0)
arch/mips/math-emu/cp1emu.c
495
(insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
515
*contpc |= (insn.j_format.target << 2);
arch/mips/math-emu/cp1emu.c
524
if (regs->regs[insn.i_format.rs] ==
arch/mips/math-emu/cp1emu.c
525
regs->regs[insn.i_format.rt])
arch/mips/math-emu/cp1emu.c
528
(insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
539
if (regs->regs[insn.i_format.rs] !=
arch/mips/math-emu/cp1emu.c
540
regs->regs[insn.i_format.rt])
arch/mips/math-emu/cp1emu.c
543
(insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
550
if (!insn.i_format.rt && NO_R6EMU)
arch/mips/math-emu/cp1emu.c
567
if (cpu_has_mips_r6 && insn.i_format.rt) {
arch/mips/math-emu/cp1emu.c
568
if ((insn.i_format.opcode == blez_op) &&
arch/mips/math-emu/cp1emu.c
569
((!insn.i_format.rs && insn.i_format.rt) ||
arch/mips/math-emu/cp1emu.c
570
(insn.i_format.rs == insn.i_format.rt)))
arch/mips/math-emu/cp1emu.c
578
if ((long)regs->regs[insn.i_format.rs] <= 0)
arch/mips/math-emu/cp1emu.c
581
(insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
588
if (!insn.i_format.rt && NO_R6EMU)
arch/mips/math-emu/cp1emu.c
605
if (cpu_has_mips_r6 && insn.i_format.rt) {
arch/mips/math-emu/cp1emu.c
606
if ((insn.i_format.opcode == blez_op) &&
arch/mips/math-emu/cp1emu.c
607
((!insn.i_format.rs && insn.i_format.rt) ||
arch/mips/math-emu/cp1emu.c
608
(insn.i_format.rs == insn.i_format.rt)))
arch/mips/math-emu/cp1emu.c
617
if ((long)regs->regs[insn.i_format.rs] > 0)
arch/mips/math-emu/cp1emu.c
620
(insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
630
if (insn.i_format.rt && !insn.i_format.rs)
arch/mips/math-emu/cp1emu.c
638
if ((regs->regs[insn.i_format.rs] & (1ull<<insn.i_format.rt)) == 0)
arch/mips/math-emu/cp1emu.c
639
*contpc = regs->cp0_epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
644
if ((regs->regs[insn.i_format.rs] & (1ull<<(insn.i_format.rt + 32))) == 0)
arch/mips/math-emu/cp1emu.c
645
*contpc = regs->cp0_epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
650
if (regs->regs[insn.i_format.rs] & (1ull<<insn.i_format.rt))
arch/mips/math-emu/cp1emu.c
651
*contpc = regs->cp0_epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
656
if (regs->regs[insn.i_format.rs] & (1ull<<(insn.i_format.rt + 32)))
arch/mips/math-emu/cp1emu.c
657
*contpc = regs->cp0_epc + 4 + (insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
692
if (!insn.i_format.rs)
arch/mips/math-emu/cp1emu.c
703
((insn.i_format.rs == bc1eqz_op) ||
arch/mips/math-emu/cp1emu.c
704
(insn.i_format.rs == bc1nez_op))) {
arch/mips/math-emu/cp1emu.c
706
fpr = &current->thread.fpu.fpr[insn.i_format.rt];
arch/mips/math-emu/cp1emu.c
708
switch (insn.i_format.rs) {
arch/mips/math-emu/cp1emu.c
719
(insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
731
if (insn.i_format.rs == bc_op) {
arch/mips/math-emu/cp1emu.c
739
bit = (insn.i_format.rt >> 2);
arch/mips/math-emu/cp1emu.c
742
switch (insn.i_format.rt & 3) {
arch/mips/math-emu/cp1emu.c
748
(insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
759
(insn.i_format.simmediate << 2);
arch/mips/math-emu/cp1emu.c
84
union mips_instruction insn = *insn_ptr;
arch/mips/math-emu/cp1emu.c
85
union mips_instruction mips32_insn = insn;
arch/mips/math-emu/cp1emu.c
88
switch (insn.mm_i_format.opcode) {
arch/mips/math-emu/cp1emu.c
91
mips32_insn.mm_i_format.rt = insn.mm_i_format.rs;
arch/mips/math-emu/cp1emu.c
92
mips32_insn.mm_i_format.rs = insn.mm_i_format.rt;
arch/mips/math-emu/cp1emu.c
96
mips32_insn.mm_i_format.rt = insn.mm_i_format.rs;
arch/mips/math-emu/cp1emu.c
97
mips32_insn.mm_i_format.rs = insn.mm_i_format.rt;
arch/mips/math-emu/dsemul.c
224
union mips_instruction insn = { .word = ir };
arch/mips/math-emu/dsemul.c
231
if (insn.mm_a_format.opcode == mm_addiupc_op) {
arch/mips/math-emu/dsemul.c
235
rs = (((insn.mm_a_format.rs + 0xe) & 0xf) + 2);
arch/mips/math-emu/dsemul.c
237
v += insn.mm_a_format.simmediate << 2;
arch/mips/mm/uasm-micromips.c
158
const struct insn *ip;
arch/mips/mm/uasm-micromips.c
42
static const struct insn insn_table_MM[insn_invalid] = {
arch/mips/mm/uasm-mips.c
234
const struct insn *ip;
arch/mips/mm/uasm-mips.c
50
static const struct insn insn_table[insn_invalid] = {
arch/mips/mm/uasm.c
155
build_insn(buf, insn##op, a, b, c); \
arch/mips/mm/uasm.c
162
build_insn(buf, insn##op, b, c, a); \
arch/mips/mm/uasm.c
169
build_insn(buf, insn##op, b, a, c); \
arch/mips/mm/uasm.c
176
build_insn(buf, insn##op, c, b, a); \
arch/mips/mm/uasm.c
183
build_insn(buf, insn##op, b, c, a); \
arch/mips/mm/uasm.c
190
build_insn(buf, insn##op, a, b, c); \
arch/mips/mm/uasm.c
197
build_insn(buf, insn##op, c, a, b); \
arch/mips/mm/uasm.c
204
build_insn(buf, insn##op, b, a, c); \
arch/mips/mm/uasm.c
211
build_insn(buf, insn##op, b, a, c+d-1, c); \
arch/mips/mm/uasm.c
218
build_insn(buf, insn##op, b, a, c+d-33, c); \
arch/mips/mm/uasm.c
225
build_insn(buf, insn##op, b, a, c+d-33, c-32); \
arch/mips/mm/uasm.c
232
build_insn(buf, insn##op, b, a, d-1, c); \
arch/mips/mm/uasm.c
239
build_insn(buf, insn##op, a, b); \
arch/mips/mm/uasm.c
246
build_insn(buf, insn##op, b, a); \
arch/mips/mm/uasm.c
253
build_insn(buf, insn##op, a, b); \
arch/mips/mm/uasm.c
260
build_insn(buf, insn##op, a); \
arch/mips/mm/uasm.c
267
build_insn(buf, insn##op); \
arch/mips/net/bpf_jit_comp.c
857
const struct bpf_insn *insn = &prog->insnsi[i];
arch/mips/net/bpf_jit_comp.c
861
access_reg(ctx, insn->src_reg);
arch/mips/net/bpf_jit_comp.c
862
access_reg(ctx, insn->dst_reg);
arch/mips/net/bpf_jit_comp.c
871
ret = build_insn(insn, ctx);
arch/mips/net/bpf_jit_comp.h
233
int build_insn(const struct bpf_insn *insn, struct jit_context *ctx);
arch/mips/net/bpf_jit_comp32.c
1263
static int emit_call(struct jit_context *ctx, const struct bpf_insn *insn)
arch/mips/net/bpf_jit_comp32.c
1269
if (bpf_jit_get_func_addr(ctx->program, insn, false,
arch/mips/net/bpf_jit_comp32.c
1463
int build_insn(const struct bpf_insn *insn, struct jit_context *ctx)
arch/mips/net/bpf_jit_comp32.c
1465
const u8 *dst = bpf2mips32[insn->dst_reg];
arch/mips/net/bpf_jit_comp32.c
1466
const u8 *src = bpf2mips32[insn->src_reg];
arch/mips/net/bpf_jit_comp32.c
1469
u8 code = insn->code;
arch/mips/net/bpf_jit_comp32.c
1470
s16 off = insn->off;
arch/mips/net/bpf_jit_comp32.c
1471
s32 imm = insn->imm;
arch/mips/net/bpf_jit_comp32.c
1652
emit_mov_i(ctx, hi(dst), insn[1].imm);
arch/mips/net/bpf_jit_comp32.c
1878
if (emit_call(ctx, insn) < 0)
arch/mips/net/bpf_jit_comp64.c
1043
if (emit_call(ctx, insn) < 0)
arch/mips/net/bpf_jit_comp64.c
439
static int emit_call(struct jit_context *ctx, const struct bpf_insn *insn)
arch/mips/net/bpf_jit_comp64.c
447
if (bpf_jit_get_func_addr(ctx->program, insn, false,
arch/mips/net/bpf_jit_comp64.c
635
int build_insn(const struct bpf_insn *insn, struct jit_context *ctx)
arch/mips/net/bpf_jit_comp64.c
637
u8 dst = bpf2mips64[insn->dst_reg];
arch/mips/net/bpf_jit_comp64.c
638
u8 src = bpf2mips64[insn->src_reg];
arch/mips/net/bpf_jit_comp64.c
640
u8 code = insn->code;
arch/mips/net/bpf_jit_comp64.c
641
s16 off = insn->off;
arch/mips/net/bpf_jit_comp64.c
642
s32 imm = insn->imm;
arch/mips/net/bpf_jit_comp64.c
821
emit_mov_i64(ctx, dst, (u32)imm | ((u64)insn[1].imm << 32));
arch/mips/tools/loongson3-llsc-check.c
105
static bool is_branch(uint32_t insn, int *off)
arch/mips/tools/loongson3-llsc-check.c
107
switch (insn >> 26) {
arch/mips/tools/loongson3-llsc-check.c
116
*off = se16(insn) + 1;
arch/mips/tools/loongson3-llsc-check.c
120
switch ((insn >> 16) & 0x1f) {
arch/mips/tools/loongson3-llsc-check.c
129
*off = se16(insn) + 1;
arch/mips/tools/loongson3-llsc-check.c
68
static bool is_ll(uint32_t insn)
arch/mips/tools/loongson3-llsc-check.c
70
switch (insn >> 26) {
arch/mips/tools/loongson3-llsc-check.c
80
static bool is_sc(uint32_t insn)
arch/mips/tools/loongson3-llsc-check.c
82
switch (insn >> 26) {
arch/mips/tools/loongson3-llsc-check.c
92
static bool is_sync(uint32_t insn)
arch/mips/tools/loongson3-llsc-check.c
95
if (insn >> 11)
arch/mips/tools/loongson3-llsc-check.c
99
if ((insn & 0x3f) != SPECIAL_SYNC)
arch/nios2/include/asm/uaccess.h
135
#define __put_user_asm(val, insn, ptr, err) \
arch/nios2/include/asm/uaccess.h
139
"1: " insn " %1, 0(%2)\n" \
arch/nios2/include/asm/uaccess.h
68
#define __get_user_asm(val, insn, addr, err) \
arch/nios2/include/asm/uaccess.h
73
"1: " insn " %1, 0(%2)\n" \
arch/openrisc/include/asm/futex.h
11
#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
arch/openrisc/include/asm/futex.h
15
insn "\n" \
arch/openrisc/include/asm/text-patching.h
11
int patch_insn_write(void *addr, u32 insn);
arch/openrisc/kernel/jump_label.c
18
u32 insn;
arch/openrisc/kernel/jump_label.c
35
insn = offset;
arch/openrisc/kernel/jump_label.c
37
insn = OPENRISC_INSN_NOP;
arch/openrisc/kernel/jump_label.c
41
copy_to_kernel_nofault(addr, &insn, sizeof(insn));
arch/openrisc/kernel/jump_label.c
43
patch_insn_write(addr, insn);
arch/openrisc/kernel/patching.c
41
static int __patch_insn_write(void *addr, u32 insn)
arch/openrisc/kernel/patching.c
51
ret = copy_to_kernel_nofault(waddr, &insn, OPENRISC_INSN_SIZE);
arch/openrisc/kernel/patching.c
68
int patch_insn_write(void *addr, u32 insn)
arch/openrisc/kernel/patching.c
76
ret = __patch_insn_write(tp, insn);
arch/openrisc/kernel/traps.c
250
unsigned int op, insn;
arch/openrisc/kernel/traps.c
252
insn = *((unsigned int *)regs->pc);
arch/openrisc/kernel/traps.c
253
op = insn >> 26;
arch/openrisc/kernel/traps.c
319
unsigned int insn)
arch/openrisc/kernel/traps.c
331
ra = (insn >> 16) & 0x1f;
arch/openrisc/kernel/traps.c
332
rd = (insn >> 21) & 0x1f;
arch/openrisc/kernel/traps.c
333
imm = (short)insn;
arch/openrisc/kernel/traps.c
361
unsigned int insn)
arch/openrisc/kernel/traps.c
373
ra = (insn >> 16) & 0x1f;
arch/openrisc/kernel/traps.c
374
rb = (insn >> 11) & 0x1f;
arch/openrisc/kernel/traps.c
375
imm = (short)(((insn & 0x2200000) >> 10) | (insn & 0x7ff));
arch/openrisc/kernel/traps.c
414
unsigned int insn = *((unsigned int *)address);
arch/openrisc/kernel/traps.c
416
op = insn >> 26;
arch/openrisc/kernel/traps.c
420
simulate_lwa(regs, address, insn);
arch/openrisc/kernel/traps.c
424
simulate_swa(regs, address, insn);
arch/parisc/include/asm/extable.h
29
int insn; /* relative address of insn that is allowed to fault. */
arch/parisc/include/asm/kprobes.h
32
flush_icache_range((unsigned long)&(p)->ainsn.insn[0], \
arch/parisc/include/asm/kprobes.h
33
(unsigned long)&(p)->ainsn.insn[0] + \
arch/parisc/include/asm/kprobes.h
39
kprobe_opcode_t *insn;
arch/parisc/include/asm/text-patching.h
10
void __patch_text(void *addr, u32 insn);
arch/parisc/include/asm/text-patching.h
11
void __patch_text_multiple(void *addr, u32 *insn, unsigned int len);
arch/parisc/include/asm/text-patching.h
6
void patch_text(void *addr, unsigned int insn);
arch/parisc/include/asm/text-patching.h
7
void patch_text_multiple(void *addr, u32 *insn, unsigned int len);
arch/parisc/kernel/ftrace.c
115
u32 insn[FTRACE_PATCHABLE_FUNCTION_SIZE];
arch/parisc/kernel/ftrace.c
171
ret = copy_from_kernel_nofault(insn, ip, size);
arch/parisc/kernel/ftrace.c
176
if (insn[i] != INSN_NOP)
arch/parisc/kernel/ftrace.c
187
u32 insn[FTRACE_PATCHABLE_FUNCTION_SIZE];
arch/parisc/kernel/ftrace.c
190
for (i = 0; i < ARRAY_SIZE(insn); i++)
arch/parisc/kernel/ftrace.c
191
insn[i] = INSN_NOP;
arch/parisc/kernel/ftrace.c
194
__patch_text_multiple((void *)rec->ip + 4 - sizeof(insn),
arch/parisc/kernel/ftrace.c
195
insn, sizeof(insn)-4);
arch/parisc/kernel/ftrace.c
251
p->ainsn.insn = NULL;
arch/parisc/kernel/jump_label.c
25
u32 insn;
arch/parisc/kernel/jump_label.c
38
insn = 0xe8000002 | reassemble_17(distance >> 2);
arch/parisc/kernel/jump_label.c
40
insn = INSN_NOP;
arch/parisc/kernel/jump_label.c
43
patch_text(addr, insn);
arch/parisc/kernel/kprobes.c
143
if (regs->iaoq[0] != (unsigned long)p->ainsn.insn+4)
arch/parisc/kernel/kprobes.c
25
p->ainsn.insn = get_insn_slot();
arch/parisc/kernel/kprobes.c
26
if (!p->ainsn.insn)
arch/parisc/kernel/kprobes.c
34
p->ainsn.insn[0] = p->opcode;
arch/parisc/kernel/kprobes.c
35
p->ainsn.insn[1] = PARISC_KPROBES_BREAK_INSN2;
arch/parisc/kernel/kprobes.c
43
if (!p->ainsn.insn)
arch/parisc/kernel/kprobes.c
46
free_insn_slot(p->ainsn.insn, 0);
arch/parisc/kernel/kprobes.c
47
p->ainsn.insn = NULL;
arch/parisc/kernel/kprobes.c
82
instruction_pointer_set(regs, (unsigned long)p->ainsn.insn);
arch/parisc/kernel/patch.c
105
__patch_text_multiple(patch->addr, patch->insn, patch->len);
arch/parisc/kernel/patch.c
109
void __kprobes patch_text(void *addr, unsigned int insn)
arch/parisc/kernel/patch.c
113
.insn = &insn,
arch/parisc/kernel/patch.c
114
.len = sizeof(insn),
arch/parisc/kernel/patch.c
120
void __kprobes patch_text_multiple(void *addr, u32 *insn, unsigned int len)
arch/parisc/kernel/patch.c
125
.insn = insn,
arch/parisc/kernel/patch.c
20
u32 *insn;
arch/parisc/kernel/patch.c
55
void __kprobes __patch_text_multiple(void *addr, u32 *insn, unsigned int len)
arch/parisc/kernel/patch.c
71
*p++ = *insn++;
arch/parisc/kernel/patch.c
96
void __kprobes __patch_text(void *addr, u32 insn)
arch/parisc/kernel/patch.c
98
__patch_text_multiple(addr, &insn, sizeof(insn));
arch/parisc/kernel/unwind.c
283
unsigned int insn;
arch/parisc/kernel/unwind.c
341
insn = *(unsigned int *)npc;
arch/parisc/kernel/unwind.c
343
if ((insn & 0xffffc001) == 0x37de0000 ||
arch/parisc/kernel/unwind.c
344
(insn & 0xffe00001) == 0x6fc00000) {
arch/parisc/kernel/unwind.c
346
frame_size += (insn & 0x3fff) >> 1;
arch/parisc/kernel/unwind.c
349
insn, npc, frame_size);
arch/parisc/kernel/unwind.c
350
} else if ((insn & 0xffe00009) == 0x73c00008) {
arch/parisc/kernel/unwind.c
352
frame_size += ((insn >> 4) & 0x3ff) << 3;
arch/parisc/kernel/unwind.c
355
insn, npc, frame_size);
arch/parisc/kernel/unwind.c
356
} else if (insn == 0x6bc23fd9) {
arch/parisc/kernel/unwind.c
362
} else if (insn == 0x0fc212c1) {
arch/parisc/mm/fault.c
459
unsigned long insn = regs->iir;
arch/parisc/mm/fault.c
467
switch (insn & 0x380) {
arch/parisc/mm/fault.c
477
if (insn & 0x20) {
arch/parisc/mm/fault.c
479
breg = (insn >> 21) & 0x1f;
arch/parisc/mm/fault.c
480
xreg = (insn >> 16) & 0x1f;
arch/parisc/mm/fault.c
489
treg = insn & 0x1f;
arch/parisc/mm/fault.c
504
acc_type = (insn & 0x40) ? VM_WRITE : VM_READ;
arch/parisc/mm/fault.c
517
if (insn & 0x20) {
arch/parisc/mm/fault.c
519
breg = (insn >> 21) & 0x1f;
arch/parisc/mm/fault.c
520
xreg = (insn >> 16) & 0x1f;
arch/parisc/mm/fault.c
524
treg = insn & 0x1f;
arch/parisc/net/bpf_jit.h
259
static inline void emit(const u32 insn, struct hppa_jit_context *ctx)
arch/parisc/net/bpf_jit.h
262
ctx->insns[ctx->ninsns] = insn;
arch/parisc/net/bpf_jit.h
304
static inline signed long hppa_offset(int insn, int off, struct hppa_jit_context *ctx)
arch/parisc/net/bpf_jit.h
309
from = (insn > 0) ? ctx->offset[insn - 1] : 0;
arch/parisc/net/bpf_jit.h
310
to = (insn + off > 0) ? ctx->offset[insn + off - 1] : 0;
arch/parisc/net/bpf_jit.h
476
int bpf_jit_emit_insn(const struct bpf_insn *insn, struct hppa_jit_context *ctx,
arch/parisc/net/bpf_jit_comp32.c
1116
int bpf_jit_emit_insn(const struct bpf_insn *insn, struct hppa_jit_context *ctx,
arch/parisc/net/bpf_jit_comp32.c
1119
bool is64 = BPF_CLASS(insn->code) == BPF_ALU64 ||
arch/parisc/net/bpf_jit_comp32.c
1120
BPF_CLASS(insn->code) == BPF_JMP;
arch/parisc/net/bpf_jit_comp32.c
1121
int s, e, paoff, i = insn - ctx->prog->insnsi;
arch/parisc/net/bpf_jit_comp32.c
1122
u8 code = insn->code;
arch/parisc/net/bpf_jit_comp32.c
1123
s16 off = insn->off;
arch/parisc/net/bpf_jit_comp32.c
1124
s32 imm = insn->imm;
arch/parisc/net/bpf_jit_comp32.c
1126
const s8 *dst = regmap[insn->dst_reg];
arch/parisc/net/bpf_jit_comp32.c
1127
const s8 *src = regmap[insn->src_reg];
arch/parisc/net/bpf_jit_comp32.c
1134
BPF_OP(code), insn->src_reg, insn->dst_reg);
arch/parisc/net/bpf_jit_comp32.c
1310
ret = bpf_jit_get_func_addr(ctx->prog, insn, extra_pass, &addr,
arch/parisc/net/bpf_jit_comp32.c
1403
struct bpf_insn insn1 = insn[1];
arch/parisc/net/bpf_jit_comp32.c
1408
if (0 && bpf_pseudo_func(insn)) {
arch/parisc/net/bpf_jit_comp32.c
1456
insn->imm);
arch/parisc/net/bpf_jit_comp32.c
943
static int emit_bpf_tail_call(int insn, struct hppa_jit_context *ctx)
arch/parisc/net/bpf_jit_comp64.c
1001
struct bpf_insn insn1 = insn[1];
arch/parisc/net/bpf_jit_comp64.c
1003
if (bpf_pseudo_func(insn))
arch/parisc/net/bpf_jit_comp64.c
1037
if (insn_is_zext(&insn[1]))
arch/parisc/net/bpf_jit_comp64.c
1042
if (insn_is_zext(&insn[1]))
arch/parisc/net/bpf_jit_comp64.c
1047
if (insn_is_zext(&insn[1]))
arch/parisc/net/bpf_jit_comp64.c
1089
insn->imm);
arch/parisc/net/bpf_jit_comp64.c
342
static void emit_bpf_tail_call(int insn, struct hppa_jit_context *ctx)
arch/parisc/net/bpf_jit_comp64.c
407
static void init_regs(u8 *rd, u8 *rs, const struct bpf_insn *insn,
arch/parisc/net/bpf_jit_comp64.c
410
u8 code = insn->code;
arch/parisc/net/bpf_jit_comp64.c
419
*rd = bpf_to_hppa_reg(insn->dst_reg, ctx);
arch/parisc/net/bpf_jit_comp64.c
425
*rs = bpf_to_hppa_reg(insn->src_reg, ctx);
arch/parisc/net/bpf_jit_comp64.c
592
int bpf_jit_emit_insn(const struct bpf_insn *insn, struct hppa_jit_context *ctx,
arch/parisc/net/bpf_jit_comp64.c
595
bool is64 = BPF_CLASS(insn->code) == BPF_ALU64 ||
arch/parisc/net/bpf_jit_comp64.c
596
BPF_CLASS(insn->code) == BPF_JMP;
arch/parisc/net/bpf_jit_comp64.c
597
int s, e, ret, i = insn - ctx->prog->insnsi;
arch/parisc/net/bpf_jit_comp64.c
600
u8 rd = -1, rs = -1, code = insn->code;
arch/parisc/net/bpf_jit_comp64.c
601
s16 off = insn->off;
arch/parisc/net/bpf_jit_comp64.c
602
s32 imm = insn->imm;
arch/parisc/net/bpf_jit_comp64.c
604
init_regs(&rd, &rs, insn, ctx);
arch/parisc/net/bpf_jit_comp64.c
973
ret = bpf_jit_get_func_addr(ctx->prog, insn, extra_pass,
arch/parisc/net/bpf_jit_core.c
23
const struct bpf_insn *insn = &prog->insnsi[i];
arch/parisc/net/bpf_jit_core.c
26
ret = bpf_jit_emit_insn(insn, ctx, extra_pass);
arch/powerpc/include/asm/bug.h
54
#define BUG_ENTRY(cond_str, insn, flags, ...) \
arch/powerpc/include/asm/bug.h
56
"1: " insn "\n" \
arch/powerpc/include/asm/extable.h
23
int insn;
arch/powerpc/include/asm/ftrace.h
149
u32 insn[4];
arch/powerpc/include/asm/futex.h
12
#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
arch/powerpc/include/asm/futex.h
16
insn \
arch/powerpc/include/asm/io.h
102
#define DEF_MMIO_OUT_X(name, size, insn) \
arch/powerpc/include/asm/io.h
105
__asm__ __volatile__("sync;"#insn" %1,0,%0" \
arch/powerpc/include/asm/io.h
110
#define DEF_MMIO_IN_D(name, size, insn) \
arch/powerpc/include/asm/io.h
114
__asm__ __volatile__("sync;"#insn" %0,0(%1);twi 0,%0,0;isync"\
arch/powerpc/include/asm/io.h
119
#define DEF_MMIO_OUT_D(name, size, insn) \
arch/powerpc/include/asm/io.h
122
__asm__ __volatile__("sync;"#insn" %1,0(%0)" \
arch/powerpc/include/asm/io.h
127
#define DEF_MMIO_IN_X(name, size, insn) \
arch/powerpc/include/asm/io.h
131
__asm__ __volatile__("sync;"#insn" %0,%y1;twi 0,%0,0;isync" \
arch/powerpc/include/asm/io.h
136
#define DEF_MMIO_OUT_X(name, size, insn) \
arch/powerpc/include/asm/io.h
139
__asm__ __volatile__("sync;"#insn" %1,%y0" \
arch/powerpc/include/asm/io.h
144
#define DEF_MMIO_IN_D(name, size, insn) \
arch/powerpc/include/asm/io.h
148
__asm__ __volatile__("sync;"#insn"%U1%X1 %0,%1;twi 0,%0,0;isync"\
arch/powerpc/include/asm/io.h
153
#define DEF_MMIO_OUT_D(name, size, insn) \
arch/powerpc/include/asm/io.h
156
__asm__ __volatile__("sync;"#insn"%U0%X0 %1,%0" \
arch/powerpc/include/asm/io.h
93
#define DEF_MMIO_IN_X(name, size, insn) \
arch/powerpc/include/asm/io.h
97
__asm__ __volatile__("sync;"#insn" %0,0,%1;twi 0,%0,0;isync" \
arch/powerpc/include/asm/kprobes.h
60
kprobe_opcode_t *insn;
arch/powerpc/include/asm/kprobes.h
84
kprobe_opcode_t *insn;
arch/powerpc/include/asm/text-patching.h
172
u32 *insn = func;
arch/powerpc/include/asm/text-patching.h
190
if ((((*insn & OP_RT_RA_MASK) == ADDIS_R2_R12) ||
arch/powerpc/include/asm/text-patching.h
191
((*insn & OP_RT_RA_MASK) == LIS_R2)) &&
arch/powerpc/include/asm/text-patching.h
192
((*(insn+1) & OP_RT_RA_MASK) == ADDI_R2_R2))
arch/powerpc/include/asm/text-patching.h
193
return (unsigned long)(insn + 2);
arch/powerpc/include/asm/uprobes.h
26
u32 insn[2];
arch/powerpc/kernel/kprobes-ftrace.c
72
p->ainsn.insn = NULL;
arch/powerpc/kernel/kprobes.c
131
ppc_inst_t insn = ppc_inst_read(p->addr);
arch/powerpc/kernel/kprobes.c
136
} else if (!can_single_step(ppc_inst_val(insn))) {
arch/powerpc/kernel/kprobes.c
151
ppc_inst_prefixed(ppc_inst_read(prev->ainsn.insn))) {
arch/powerpc/kernel/kprobes.c
159
p->ainsn.insn = get_insn_slot();
arch/powerpc/kernel/kprobes.c
160
if (!p->ainsn.insn)
arch/powerpc/kernel/kprobes.c
165
patch_instruction(p->ainsn.insn, insn);
arch/powerpc/kernel/kprobes.c
166
p->opcode = ppc_inst_val(insn);
arch/powerpc/kernel/kprobes.c
188
if (p->ainsn.insn) {
arch/powerpc/kernel/kprobes.c
189
free_insn_slot(p->ainsn.insn, 0);
arch/powerpc/kernel/kprobes.c
190
p->ainsn.insn = NULL;
arch/powerpc/kernel/kprobes.c
205
regs_set_return_ip(regs, (unsigned long)p->ainsn.insn);
arch/powerpc/kernel/kprobes.c
232
ppc_inst_t insn = ppc_inst_read(p->ainsn.insn);
arch/powerpc/kernel/kprobes.c
235
ret = emulate_step(regs, insn);
arch/powerpc/kernel/kprobes.c
249
printk("Can't step on instruction %08lx\n", ppc_inst_as_ulong(insn));
arch/powerpc/kernel/kprobes.c
321
kprobe_opcode_t insn = *p->ainsn.insn;
arch/powerpc/kernel/kprobes.c
322
if (kcb->kprobe_status == KPROBE_HIT_SS && is_trap(insn)) {
arch/powerpc/kernel/kprobes.c
402
len = ppc_inst_len(ppc_inst_read(cur->ainsn.insn));
arch/powerpc/kernel/kprobes.c
404
if (((unsigned long)cur->ainsn.insn + len) != regs->nip)
arch/powerpc/kernel/optprobes.c
121
if (op->optinsn.insn) {
arch/powerpc/kernel/optprobes.c
122
free_optinsn_slot(op->optinsn.insn, 1);
arch/powerpc/kernel/optprobes.c
123
op->optinsn.insn = NULL;
arch/powerpc/kernel/optprobes.c
231
temp = ppc_inst_read(p->ainsn.insn);
arch/powerpc/kernel/optprobes.c
241
op->optinsn.insn = buff;
arch/powerpc/kernel/optprobes.c
253
return optinsn->insn != NULL;
arch/powerpc/kernel/optprobes.c
278
create_branch(&instr, op->kp.addr, (unsigned long)op->optinsn.insn, 0);
arch/powerpc/kernel/optprobes.c
87
if (!is_conditional_branch(ppc_inst_read(p->ainsn.insn)) &&
arch/powerpc/kernel/optprobes.c
88
analyse_instr(&op, &regs, ppc_inst_read(p->ainsn.insn)) == 1) {
arch/powerpc/kernel/setup_32.c
79
ppc_inst_t insn;
arch/powerpc/kernel/setup_32.c
91
create_cond_branch(&insn, addr, branch_target(addr), 0x820000);
arch/powerpc/kernel/setup_32.c
92
patch_instruction(addr, insn); /* replace b by bne cr0 */
arch/powerpc/kernel/trace/ftrace.c
209
.insn = {
arch/powerpc/kernel/trace/ftrace.c
255
if (!is_offset_in_branch_range((long)rec->ip - (long)&ool_stub->insn[0]) ||
arch/powerpc/kernel/trace/ftrace.c
257
(long)&ool_stub->insn[3])) {
arch/powerpc/kernel/trace/ftrace.c
259
__func__, (void *)rec->ip, (void *)&ool_stub->insn[0]);
arch/powerpc/kernel/trace/ftrace.c
263
rec->arch.ool_stub = (unsigned long)&ool_stub->insn[0];
arch/powerpc/kernel/trace/ftrace.c
280
ool_stub_template.insn[1] = ppc_inst_val(inst);
arch/powerpc/kernel/trace/ftrace.c
283
if (!ret && create_branch(&inst, &ool_stub->insn[3], rec->ip + MCOUNT_INSN_SIZE, 0))
arch/powerpc/kernel/trace/ftrace.c
285
ool_stub_template.insn[3] = ppc_inst_val(inst);
arch/powerpc/kernel/traps.c
1575
ppc_inst_t insn;
arch/powerpc/kernel/traps.c
1577
if (get_user_instr(insn, (void __user *)regs->nip)) {
arch/powerpc/kernel/traps.c
1582
if (ppc_inst_primary_opcode(insn) == 31 &&
arch/powerpc/kernel/traps.c
1583
get_xop(ppc_inst_val(insn)) == OP_31_XOP_HASHCHK) {
arch/powerpc/kernel/uprobes.c
127
regs_set_return_ip(regs, (unsigned long)ppc_inst_next((void *)utask->vaddr, auprobe->insn));
arch/powerpc/kernel/uprobes.c
190
ret = emulate_step(regs, ppc_inst_read(auprobe->insn));
arch/powerpc/kernel/uprobes.c
26
bool is_trap_insn(uprobe_opcode_t *insn)
arch/powerpc/kernel/uprobes.c
28
return (is_trap(*insn));
arch/powerpc/kernel/uprobes.c
45
ppc_inst_prefixed(ppc_inst_read(auprobe->insn)) &&
arch/powerpc/kernel/uprobes.c
51
if (!can_single_step(ppc_inst_val(ppc_inst_read(auprobe->insn)))) {
arch/powerpc/math-emu/math.c
231
u32 insn = 0;
arch/powerpc/math-emu/math.c
237
if (get_user(insn, (u32 __user *)pc))
arch/powerpc/math-emu/math.c
240
switch (insn >> 26) {
arch/powerpc/math-emu/math.c
251
switch ((insn >> 1) & 0x3ff) {
arch/powerpc/math-emu/math.c
267
switch ((insn >> 1) & 0x1f) {
arch/powerpc/math-emu/math.c
285
if (insn & 0x20) {
arch/powerpc/math-emu/math.c
286
switch ((insn >> 1) & 0x1f) {
arch/powerpc/math-emu/math.c
305
switch ((insn >> 1) & 0x3ff) {
arch/powerpc/math-emu/math.c
332
op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
333
op1 = (void *)&current->thread.TS_FPR((insn >> 16) & 0x1f);
arch/powerpc/math-emu/math.c
334
op2 = (void *)&current->thread.TS_FPR((insn >> 11) & 0x1f);
arch/powerpc/math-emu/math.c
338
op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
339
op1 = (void *)&current->thread.TS_FPR((insn >> 16) & 0x1f);
arch/powerpc/math-emu/math.c
340
op2 = (void *)&current->thread.TS_FPR((insn >> 6) & 0x1f);
arch/powerpc/math-emu/math.c
344
op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
345
op1 = (void *)&current->thread.TS_FPR((insn >> 16) & 0x1f);
arch/powerpc/math-emu/math.c
346
op2 = (void *)&current->thread.TS_FPR((insn >> 11) & 0x1f);
arch/powerpc/math-emu/math.c
347
op3 = (void *)&current->thread.TS_FPR((insn >> 6) & 0x1f);
arch/powerpc/math-emu/math.c
351
idx = (insn >> 16) & 0x1f;
arch/powerpc/math-emu/math.c
352
sdisp = (insn & 0xffff);
arch/powerpc/math-emu/math.c
353
op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
358
idx = (insn >> 16) & 0x1f;
arch/powerpc/math-emu/math.c
362
sdisp = (insn & 0xffff);
arch/powerpc/math-emu/math.c
363
op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
368
op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
372
op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
373
op1 = (void *)&current->thread.TS_FPR((insn >> 16) & 0x1f);
arch/powerpc/math-emu/math.c
377
op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
378
op1 = (void *)&current->thread.TS_FPR((insn >> 11) & 0x1f);
arch/powerpc/math-emu/math.c
382
idx = (insn >> 16) & 0x1f;
arch/powerpc/math-emu/math.c
383
op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
385
+ regs->gpr[(insn >> 11) & 0x1f]);
arch/powerpc/math-emu/math.c
389
idx = (insn >> 16) & 0x1f;
arch/powerpc/math-emu/math.c
392
op0 = (void *)&current->thread.TS_FPR((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
394
+ regs->gpr[(insn >> 11) & 0x1f]);
arch/powerpc/math-emu/math.c
399
op1 = (void *)(long)((insn >> 23) & 0x7);
arch/powerpc/math-emu/math.c
400
op2 = (void *)&current->thread.TS_FPR((insn >> 16) & 0x1f);
arch/powerpc/math-emu/math.c
401
op3 = (void *)&current->thread.TS_FPR((insn >> 11) & 0x1f);
arch/powerpc/math-emu/math.c
406
op1 = (void *)(long)((insn >> 23) & 0x7);
arch/powerpc/math-emu/math.c
407
op2 = (void *)(long)((insn >> 18) & 0x7);
arch/powerpc/math-emu/math.c
411
op0 = (void *)(long)((insn >> 21) & 0x1f);
arch/powerpc/math-emu/math.c
415
op0 = (void *)(long)((insn >> 23) & 0x7);
arch/powerpc/math-emu/math.c
416
op1 = (void *)(long)((insn >> 12) & 0xf);
arch/powerpc/math-emu/math.c
420
op0 = (void *)(long)((insn >> 17) & 0xff);
arch/powerpc/math-emu/math.c
421
op1 = (void *)&current->thread.TS_FPR((insn >> 11) & 0x1f);
arch/powerpc/math-emu/math.c
437
if (insn & 1) {
arch/powerpc/net/bpf_jit_comp.c
374
offset = pc - (long)&ex_entry->insn;
arch/powerpc/net/bpf_jit_comp.c
377
ex_entry->insn = offset;
arch/powerpc/net/bpf_jit_comp.c
404
u32 insn = BREAKPOINT_INSTRUCTION;
arch/powerpc/net/bpf_jit_comp.c
411
ret = patch_instructions(dst, &insn, len, true);
arch/powerpc/net/bpf_jit_comp.c
466
bool bpf_jit_supports_insn(struct bpf_insn *insn, bool in_arena)
arch/powerpc/net/bpf_jit_comp.c
470
switch (insn->code) {
arch/powerpc/net/bpf_jit_comp.c
475
if (bpf_atomic_is_load_store(insn))
arch/powerpc/net/bpf_jit_comp32.c
1101
PPC_LI32(dst_reg_h, (u32)insn[i + 1].imm);
arch/powerpc/net/bpf_jit_comp32.c
1102
PPC_LI32(dst_reg, (u32)insn[i].imm);
arch/powerpc/net/bpf_jit_comp32.c
1130
ret = bpf_jit_get_func_addr(fp, &insn[i], extra_pass,
arch/powerpc/net/bpf_jit_comp32.c
1380
!insn_is_zext(&insn[i + 1]) && !(BPF_OP(code) == BPF_END && imm == 64))
arch/powerpc/net/bpf_jit_comp32.c
290
const struct bpf_insn *insn = fp->insnsi;
arch/powerpc/net/bpf_jit_comp32.c
298
u32 code = insn[i].code;
arch/powerpc/net/bpf_jit_comp32.c
299
u32 prevcode = i ? insn[i - 1].code : 0;
arch/powerpc/net/bpf_jit_comp32.c
300
u32 dst_reg = bpf_to_ppc(insn[i].dst_reg);
arch/powerpc/net/bpf_jit_comp32.c
302
u32 src_reg = bpf_to_ppc(insn[i].src_reg);
arch/powerpc/net/bpf_jit_comp32.c
310
s16 off = insn[i].off;
arch/powerpc/net/bpf_jit_comp32.c
311
s32 imm = insn[i].imm;
arch/powerpc/net/bpf_jit_comp32.c
320
insn[i - 1].dst_reg == insn[i].dst_reg && insn[i - 1].imm != 1) {
arch/powerpc/net/bpf_jit_comp32.c
321
src2_reg = bpf_to_ppc(insn[i - 1].src_reg);
arch/powerpc/net/bpf_jit_comp64.c
1147
if (insn_is_zext(&insn[i + 1]))
arch/powerpc/net/bpf_jit_comp64.c
1156
if (insn_is_zext(&insn[i + 1]))
arch/powerpc/net/bpf_jit_comp64.c
1165
if (insn_is_zext(&insn[i + 1]))
arch/powerpc/net/bpf_jit_comp64.c
1173
if (insn_is_zext(&insn[i + 1]))
arch/powerpc/net/bpf_jit_comp64.c
1200
if (insn_is_mov_percpu_addr(&insn[i])) {
arch/powerpc/net/bpf_jit_comp64.c
1210
if (insn_is_cast_user(&insn[i])) {
arch/powerpc/net/bpf_jit_comp64.c
1239
else if (insn_is_zext(&insn[i + 1]))
arch/powerpc/net/bpf_jit_comp64.c
1309
if (insn_is_zext(&insn[i + 1]))
arch/powerpc/net/bpf_jit_comp64.c
1463
ret = bpf_jit_emit_atomic_ops(image, ctx, &insn[i],
arch/powerpc/net/bpf_jit_comp64.c
1490
if (bpf_atomic_is_load_store(&insn[i])) {
arch/powerpc/net/bpf_jit_comp64.c
1491
ret = emit_atomic_ld_st(insn[i], ctx, image);
arch/powerpc/net/bpf_jit_comp64.c
1495
if (size != BPF_DW && insn_is_zext(&insn[i + 1]))
arch/powerpc/net/bpf_jit_comp64.c
1505
ret = bpf_jit_emit_atomic_ops(image, ctx, &insn[i],
arch/powerpc/net/bpf_jit_comp64.c
1601
if (size != BPF_DW && insn_is_zext(&insn[i + 1]))
arch/powerpc/net/bpf_jit_comp64.c
1640
if (size != BPF_DW && insn_is_zext(&insn[i + 1]))
arch/powerpc/net/bpf_jit_comp64.c
1654
imm64 = ((u64)(u32) insn[i].imm) |
arch/powerpc/net/bpf_jit_comp64.c
1655
(((u64)(u32) insn[i+1].imm) << 32);
arch/powerpc/net/bpf_jit_comp64.c
1695
ret = bpf_jit_get_func_addr(fp, &insn[i], extra_pass,
arch/powerpc/net/bpf_jit_comp64.c
1701
if (insn[i].src_reg == BPF_PSEUDO_KFUNC_CALL) {
arch/powerpc/net/bpf_jit_comp64.c
1702
if (prepare_for_kfunc_call(fp, image, ctx, &insn[i]))
arch/powerpc/net/bpf_jit_comp64.c
555
const struct bpf_insn *insn)
arch/powerpc/net/bpf_jit_comp64.c
557
const struct btf_func_model *m = bpf_jit_find_kfunc_model(fp, insn);
arch/powerpc/net/bpf_jit_comp64.c
706
const struct bpf_insn *insn, u32 *jmp_off,
arch/powerpc/net/bpf_jit_comp64.c
711
u32 size = BPF_SIZE(insn->code);
arch/powerpc/net/bpf_jit_comp64.c
712
u32 src_reg = bpf_to_ppc(insn->src_reg);
arch/powerpc/net/bpf_jit_comp64.c
713
u32 dst_reg = bpf_to_ppc(insn->dst_reg);
arch/powerpc/net/bpf_jit_comp64.c
714
s32 imm = insn->imm;
arch/powerpc/net/bpf_jit_comp64.c
721
EMIT(PPC_RAW_LI(tmp1_reg, insn->off));
arch/powerpc/net/bpf_jit_comp64.c
801
insn_is_zext(insn + 1))
arch/powerpc/net/bpf_jit_comp64.c
840
static int emit_atomic_ld_st(const struct bpf_insn insn, struct codegen_context *ctx, u32 *image)
arch/powerpc/net/bpf_jit_comp64.c
842
u32 code = insn.code;
arch/powerpc/net/bpf_jit_comp64.c
843
u32 dst_reg = bpf_to_ppc(insn.dst_reg);
arch/powerpc/net/bpf_jit_comp64.c
844
u32 src_reg = bpf_to_ppc(insn.src_reg);
arch/powerpc/net/bpf_jit_comp64.c
848
s16 off = insn.off;
arch/powerpc/net/bpf_jit_comp64.c
849
s32 imm = insn.imm;
arch/powerpc/net/bpf_jit_comp64.c
911
const struct bpf_insn *insn = fp->insnsi;
arch/powerpc/net/bpf_jit_comp64.c
919
u32 code = insn[i].code;
arch/powerpc/net/bpf_jit_comp64.c
920
u32 dst_reg = bpf_to_ppc(insn[i].dst_reg);
arch/powerpc/net/bpf_jit_comp64.c
921
u32 src_reg = bpf_to_ppc(insn[i].src_reg);
arch/powerpc/net/bpf_jit_comp64.c
925
s16 off = insn[i].off;
arch/powerpc/net/bpf_jit_comp64.c
926
s32 imm = insn[i].imm;
arch/powerpc/perf/8xx-pmu.c
156
ppc_inst_t insn = ppc_inst(PPC_RAW_MFSPR(10, SPRN_SPRG_SCRATCH2));
arch/powerpc/perf/8xx-pmu.c
170
patch_instruction_site(&patch__itlbmiss_exit_1, insn);
arch/powerpc/perf/8xx-pmu.c
174
patch_instruction_site(&patch__dtlbmiss_exit_1, insn);
arch/powerpc/xmon/dis-asm.h
11
extern int print_insn_powerpc(unsigned long insn, unsigned long memaddr);
arch/powerpc/xmon/dis-asm.h
12
extern int print_insn_spu(unsigned long insn, unsigned long memaddr);
arch/powerpc/xmon/dis-asm.h
14
static inline int print_insn_powerpc(unsigned long insn, unsigned long memaddr)
arch/powerpc/xmon/dis-asm.h
16
printf("%.8lx", insn);
arch/powerpc/xmon/dis-asm.h
20
static inline int print_insn_spu(unsigned long insn, unsigned long memaddr)
arch/powerpc/xmon/dis-asm.h
22
printf("%.8lx", insn);
arch/powerpc/xmon/ppc-dis.c
106
(*operand->extract) (insn, dialect, &invalid);
arch/powerpc/xmon/ppc-dis.c
119
int print_insn_powerpc (unsigned long insn, unsigned long memaddr)
arch/powerpc/xmon/ppc-dis.c
146
opcode = lookup_powerpc (insn, dialect);
arch/powerpc/xmon/ppc-dis.c
148
opcode = lookup_powerpc (insn, (ppc_cpu_t) -1);
arch/powerpc/xmon/ppc-dis.c
165
insn >>= 16;
arch/powerpc/xmon/ppc-dis.c
188
skip_optional = skip_optional_operands (opindex, insn,
arch/powerpc/xmon/ppc-dis.c
194
value = operand_value_powerpc (operand, insn, dialect);
arch/powerpc/xmon/ppc-dis.c
27
unsigned long insn, ppc_cpu_t dialect)
arch/powerpc/xmon/ppc-dis.c
271
printf(".long 0x%lx", insn);
arch/powerpc/xmon/ppc-dis.c
33
value = (*operand->extract) (insn, dialect, &invalid);
arch/powerpc/xmon/ppc-dis.c
37
value = (insn >> operand->shift) & operand->bitm;
arch/powerpc/xmon/ppc-dis.c
39
value = (insn << -operand->shift) & operand->bitm;
arch/powerpc/xmon/ppc-dis.c
60
unsigned long insn, ppc_cpu_t dialect)
arch/powerpc/xmon/ppc-dis.c
69
&& operand_value_powerpc (operand, insn, dialect) !=
arch/powerpc/xmon/ppc-dis.c
81
lookup_powerpc (unsigned long insn, ppc_cpu_t dialect)
arch/powerpc/xmon/ppc-dis.c
94
if ((insn & opcode->mask) != opcode->opcode
arch/powerpc/xmon/ppc-opc.c
1002
extract_ary (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1006
return ((insn >> 4) & 0xf) + 8;
arch/powerpc/xmon/ppc-opc.c
1010
insert_rx (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1016
return insn | value;
arch/powerpc/xmon/ppc-opc.c
1018
return insn | (value - 16);
arch/powerpc/xmon/ppc-opc.c
1027
extract_rx (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1031
int value = insn & 0xf;
arch/powerpc/xmon/ppc-opc.c
1039
insert_ry (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1045
return insn | (value << 4);
arch/powerpc/xmon/ppc-opc.c
1047
return insn | ((value - 16) << 4);
arch/powerpc/xmon/ppc-opc.c
1056
extract_ry (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1060
int value = (insn >> 4) & 0xf;
arch/powerpc/xmon/ppc-opc.c
1074
insert_bat (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1079
return insn | (((insn >> 21) & 0x1f) << 16);
arch/powerpc/xmon/ppc-opc.c
1083
extract_bat (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1087
if (((insn >> 21) & 0x1f) != ((insn >> 16) & 0x1f))
arch/powerpc/xmon/ppc-opc.c
1099
insert_bba (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1104
return insn | (((insn >> 16) & 0x1f) << 11);
arch/powerpc/xmon/ppc-opc.c
1108
extract_bba (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1112
if (((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f))
arch/powerpc/xmon/ppc-opc.c
1137
insert_bdm (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1145
insn |= 1 << 21;
arch/powerpc/xmon/ppc-opc.c
1149
if ((insn & (0x14 << 21)) == (0x04 << 21))
arch/powerpc/xmon/ppc-opc.c
1150
insn |= 0x02 << 21;
arch/powerpc/xmon/ppc-opc.c
1151
else if ((insn & (0x14 << 21)) == (0x10 << 21))
arch/powerpc/xmon/ppc-opc.c
1152
insn |= 0x08 << 21;
arch/powerpc/xmon/ppc-opc.c
1154
return insn | (value & 0xfffc);
arch/powerpc/xmon/ppc-opc.c
1158
extract_bdm (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1164
if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
arch/powerpc/xmon/ppc-opc.c
1169
if ((insn & (0x17 << 21)) != (0x06 << 21)
arch/powerpc/xmon/ppc-opc.c
1170
&& (insn & (0x1d << 21)) != (0x18 << 21))
arch/powerpc/xmon/ppc-opc.c
1174
return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
arch/powerpc/xmon/ppc-opc.c
1182
insert_bdp (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1190
insn |= 1 << 21;
arch/powerpc/xmon/ppc-opc.c
1194
if ((insn & (0x14 << 21)) == (0x04 << 21))
arch/powerpc/xmon/ppc-opc.c
1195
insn |= 0x03 << 21;
arch/powerpc/xmon/ppc-opc.c
1196
else if ((insn & (0x14 << 21)) == (0x10 << 21))
arch/powerpc/xmon/ppc-opc.c
1197
insn |= 0x09 << 21;
arch/powerpc/xmon/ppc-opc.c
1199
return insn | (value & 0xfffc);
arch/powerpc/xmon/ppc-opc.c
1203
extract_bdp (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1209
if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
arch/powerpc/xmon/ppc-opc.c
1214
if ((insn & (0x17 << 21)) != (0x07 << 21)
arch/powerpc/xmon/ppc-opc.c
1215
&& (insn & (0x1d << 21)) != (0x19 << 21))
arch/powerpc/xmon/ppc-opc.c
1219
return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
arch/powerpc/xmon/ppc-opc.c
1292
insert_bo (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1299
else if (PPC_OP (insn) == 19 && (insn & 0x400) && ! (value & 4))
arch/powerpc/xmon/ppc-opc.c
1301
return insn | ((value & 0x1f) << 21);
arch/powerpc/xmon/ppc-opc.c
1305
extract_bo (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1311
value = (insn >> 21) & 0x1f;
arch/powerpc/xmon/ppc-opc.c
1322
insert_boe (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1329
else if (PPC_OP (insn) == 19 && (insn & 0x400) && ! (value & 4))
arch/powerpc/xmon/ppc-opc.c
1334
return insn | ((value & 0x1f) << 21);
arch/powerpc/xmon/ppc-opc.c
1338
extract_boe (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1344
value = (insn >> 21) & 0x1f;
arch/powerpc/xmon/ppc-opc.c
1354
insert_dcmxs (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1359
return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3) | (value & 0x40);
arch/powerpc/xmon/ppc-opc.c
1363
extract_dcmxs (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1367
return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
arch/powerpc/xmon/ppc-opc.c
1374
insert_dxd (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1379
return insn | (value & 0xffc1) | ((value & 0x3e) << 15);
arch/powerpc/xmon/ppc-opc.c
1383
extract_dxd (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1387
unsigned long dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e);
arch/powerpc/xmon/ppc-opc.c
1392
insert_dxdn (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1397
return insert_dxd (insn, -value, dialect, errmsg);
arch/powerpc/xmon/ppc-opc.c
1401
extract_dxdn (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1405
return -extract_dxd (insn, dialect, invalid);
arch/powerpc/xmon/ppc-opc.c
1411
insert_fxm (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1418
if ((insn & (1 << 20)) != 0)
arch/powerpc/xmon/ppc-opc.c
1436
&& (insn & (0x3ff << 1)) == 19 << 1)))
arch/powerpc/xmon/ppc-opc.c
1437
insn |= 1 << 20;
arch/powerpc/xmon/ppc-opc.c
1440
else if ((insn & (0x3ff << 1)) == 19 << 1)
arch/powerpc/xmon/ppc-opc.c
1449
return insn | ((value & 0xff) << 12);
arch/powerpc/xmon/ppc-opc.c
1453
extract_fxm (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1457
long mask = (insn >> 12) & 0xff;
arch/powerpc/xmon/ppc-opc.c
1460
if ((insn & (1 << 20)) != 0)
arch/powerpc/xmon/ppc-opc.c
1468
else if ((insn & (0x3ff << 1)) == 19 << 1)
arch/powerpc/xmon/ppc-opc.c
1480
insert_li20 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1485
return insn | ((value & 0xf0000) >> 5) | ((value & 0x0f800) << 5) | (value & 0x7ff);
arch/powerpc/xmon/ppc-opc.c
1489
extract_li20 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1493
long ext = ((insn & 0x4000) == 0x4000) ? 0xfff00000 : 0x00000000;
arch/powerpc/xmon/ppc-opc.c
1496
| (((insn >> 11) & 0xf) << 16)
arch/powerpc/xmon/ppc-opc.c
1497
| (((insn >> 17) & 0xf) << 12)
arch/powerpc/xmon/ppc-opc.c
1498
| (((insn >> 16) & 0x1) << 11)
arch/powerpc/xmon/ppc-opc.c
1499
| (insn & 0x7ff);
arch/powerpc/xmon/ppc-opc.c
1508
insert_ls (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1514
if (((insn >> 1) & 0x3ff) == 598)
arch/powerpc/xmon/ppc-opc.c
1520
return insn;
arch/powerpc/xmon/ppc-opc.c
1524
return insn | ((value & 0x3) << 21);
arch/powerpc/xmon/ppc-opc.c
1532
insert_esync (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1537
unsigned long ls = (insn >> 21) & 0x03;
arch/powerpc/xmon/ppc-opc.c
1544
return insn;
arch/powerpc/xmon/ppc-opc.c
1551
return insn | ((value & 0xf) << 16);
arch/powerpc/xmon/ppc-opc.c
1560
insert_mbe (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1573
return insn;
arch/powerpc/xmon/ppc-opc.c
1609
return insn | (mb << 6) | ((me - 1) << 1);
arch/powerpc/xmon/ppc-opc.c
1613
extract_mbe (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1623
mb = (insn >> 6) & 0x1f;
arch/powerpc/xmon/ppc-opc.c
1624
me = (insn >> 1) & 0x1f;
arch/powerpc/xmon/ppc-opc.c
1646
insert_mb6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1651
return insn | ((value & 0x1f) << 6) | (value & 0x20);
arch/powerpc/xmon/ppc-opc.c
1655
extract_mb6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1659
return ((insn >> 6) & 0x1f) | (insn & 0x20);
arch/powerpc/xmon/ppc-opc.c
1666
extract_nb (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1672
ret = (insn >> 11) & 0x1f;
arch/powerpc/xmon/ppc-opc.c
1682
insert_nbi (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1687
long rtvalue = (insn & RT_MASK) >> 21;
arch/powerpc/xmon/ppc-opc.c
1688
long ravalue = (insn & RA_MASK) >> 16;
arch/powerpc/xmon/ppc-opc.c
1695
return insn | ((value & 0x1f) << 11);
arch/powerpc/xmon/ppc-opc.c
1704
insert_nsi (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1709
return insn | (-value & 0xffff);
arch/powerpc/xmon/ppc-opc.c
1713
extract_nsi (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1718
return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
arch/powerpc/xmon/ppc-opc.c
1726
insert_ral (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1732
|| (unsigned long) value == ((insn >> 21) & 0x1f))
arch/powerpc/xmon/ppc-opc.c
1734
return insn | ((value & 0x1f) << 16);
arch/powerpc/xmon/ppc-opc.c
1741
insert_ram (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1746
if ((unsigned long) value >= ((insn >> 21) & 0x1f))
arch/powerpc/xmon/ppc-opc.c
1748
return insn | ((value & 0x1f) << 16);
arch/powerpc/xmon/ppc-opc.c
1755
insert_raq (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1760
long rtvalue = (insn & RT_MASK) >> 21;
arch/powerpc/xmon/ppc-opc.c
1764
return insn | ((value & 0x1f) << 16);
arch/powerpc/xmon/ppc-opc.c
1772
insert_ras (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1779
return insn | ((value & 0x1f) << 16);
arch/powerpc/xmon/ppc-opc.c
1789
insert_rbs (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1794
return insn | (((insn >> 21) & 0x1f) << 11);
arch/powerpc/xmon/ppc-opc.c
1798
extract_rbs (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1802
if (((insn >> 21) & 0x1f) != ((insn >> 11) & 0x1f))
arch/powerpc/xmon/ppc-opc.c
1811
insert_rbx (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1816
long rtvalue = (insn & RT_MASK) >> 21;
arch/powerpc/xmon/ppc-opc.c
1820
return insn | ((value & 0x1f) << 11);
arch/powerpc/xmon/ppc-opc.c
1825
insert_sci8 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1873
return insn | fill_scale | (ui8 & 0xff);
arch/powerpc/xmon/ppc-opc.c
1877
extract_sci8 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1881
int fill = insn & 0x400;
arch/powerpc/xmon/ppc-opc.c
1882
int scale_factor = (insn & 0x300) >> 5;
arch/powerpc/xmon/ppc-opc.c
1883
long value = (insn & 0xff) << scale_factor;
arch/powerpc/xmon/ppc-opc.c
1891
insert_sci8n (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1896
return insert_sci8 (insn, -value, dialect, errmsg);
arch/powerpc/xmon/ppc-opc.c
1900
extract_sci8n (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1904
return -extract_sci8 (insn, dialect, invalid);
arch/powerpc/xmon/ppc-opc.c
1908
insert_sd4h (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1913
return insn | ((value & 0x1e) << 7);
arch/powerpc/xmon/ppc-opc.c
1917
extract_sd4h (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1921
return ((insn >> 8) & 0xf) << 1;
arch/powerpc/xmon/ppc-opc.c
1925
insert_sd4w (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1930
return insn | ((value & 0x3c) << 6);
arch/powerpc/xmon/ppc-opc.c
1934
extract_sd4w (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1938
return ((insn >> 8) & 0xf) << 2;
arch/powerpc/xmon/ppc-opc.c
1942
insert_oimm (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1947
return insn | (((value - 1) & 0x1f) << 4);
arch/powerpc/xmon/ppc-opc.c
1951
extract_oimm (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1955
return ((insn >> 4) & 0x1f) + 1;
arch/powerpc/xmon/ppc-opc.c
1961
insert_sh6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1967
if (PPC_OP (insn) == 4)
arch/powerpc/xmon/ppc-opc.c
1968
return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 5);
arch/powerpc/xmon/ppc-opc.c
1970
return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
arch/powerpc/xmon/ppc-opc.c
1974
extract_sh6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1979
if (PPC_OP (insn) == 4)
arch/powerpc/xmon/ppc-opc.c
1980
return ((insn >> 6) & 0x1f) | ((insn << 5) & 0x20);
arch/powerpc/xmon/ppc-opc.c
1982
return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);
arch/powerpc/xmon/ppc-opc.c
1989
insert_spr (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
1994
return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
arch/powerpc/xmon/ppc-opc.c
1998
extract_spr (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2002
return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
arch/powerpc/xmon/ppc-opc.c
2009
insert_sprg (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2020
if (value <= 3 || (insn & 0x100) != 0)
arch/powerpc/xmon/ppc-opc.c
2023
return insn | ((value & 0x17) << 16);
arch/powerpc/xmon/ppc-opc.c
2027
extract_sprg (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2031
unsigned long val = (insn >> 16) & 0x1f;
arch/powerpc/xmon/ppc-opc.c
2036
|| (val - 0x10 > 7 && (insn & 0x100) != 0)
arch/powerpc/xmon/ppc-opc.c
2047
insert_tbr (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2054
return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
arch/powerpc/xmon/ppc-opc.c
2058
extract_tbr (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2064
ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
arch/powerpc/xmon/ppc-opc.c
2073
insert_xt6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2078
return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5);
arch/powerpc/xmon/ppc-opc.c
2082
extract_xt6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2086
return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f);
arch/powerpc/xmon/ppc-opc.c
2091
insert_xtq6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2096
return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2);
arch/powerpc/xmon/ppc-opc.c
2100
extract_xtq6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2104
return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f);
arch/powerpc/xmon/ppc-opc.c
2110
insert_xa6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2115
return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3);
arch/powerpc/xmon/ppc-opc.c
2119
extract_xa6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2123
return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
arch/powerpc/xmon/ppc-opc.c
2129
insert_xb6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2134
return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
arch/powerpc/xmon/ppc-opc.c
2138
extract_xb6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2142
return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f);
arch/powerpc/xmon/ppc-opc.c
2152
insert_xb6s (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2157
return insn | (((insn >> 16) & 0x1f) << 11) | (((insn >> 2) & 0x1) << 1);
arch/powerpc/xmon/ppc-opc.c
2161
extract_xb6s (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2165
if ((((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f))
arch/powerpc/xmon/ppc-opc.c
2166
|| (((insn >> 2) & 0x1) != ((insn >> 1) & 0x1)))
arch/powerpc/xmon/ppc-opc.c
2174
insert_xc6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2179
return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2);
arch/powerpc/xmon/ppc-opc.c
2183
extract_xc6 (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2187
return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f);
arch/powerpc/xmon/ppc-opc.c
2191
insert_dm (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2198
return insn | (((value) ? 3 : 0) << 8);
arch/powerpc/xmon/ppc-opc.c
2202
extract_dm (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2208
value = (insn >> 8) & 3;
arch/powerpc/xmon/ppc-opc.c
2217
insert_vlesi (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2222
return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
arch/powerpc/xmon/ppc-opc.c
2226
extract_vlesi (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2230
long value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
arch/powerpc/xmon/ppc-opc.c
2236
insert_vlensi (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2242
return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
arch/powerpc/xmon/ppc-opc.c
2245
extract_vlensi (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2249
long value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
arch/powerpc/xmon/ppc-opc.c
2259
insert_vleui (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2264
return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
arch/powerpc/xmon/ppc-opc.c
2268
extract_vleui (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2272
return ((insn >> 10) & 0xf800) | (insn & 0x7ff);
arch/powerpc/xmon/ppc-opc.c
2278
insert_vleil (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2283
return insn | ((value & 0xf800) << 5) | (value & 0x7ff);
arch/powerpc/xmon/ppc-opc.c
2287
extract_vleil (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
2291
return ((insn >> 5) & 0xf800) | (insn & 0x7ff);
arch/powerpc/xmon/ppc-opc.c
964
insert_arx (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
970
return insn | ((value - 8) & 0xf);
arch/powerpc/xmon/ppc-opc.c
979
extract_arx (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
983
return (insn & 0xf) + 8;
arch/powerpc/xmon/ppc-opc.c
987
insert_ary (unsigned long insn,
arch/powerpc/xmon/ppc-opc.c
993
return insn | (((value - 8) & 0xf) << 4);
arch/riscv/include/asm/asm-extable.h
15
#define __ASM_EXTABLE_RAW(insn, fixup, type, data) \
arch/riscv/include/asm/asm-extable.h
18
.long ((insn) - .); \
arch/riscv/include/asm/asm-extable.h
24
.macro _asm_extable, insn, fixup
arch/riscv/include/asm/asm-extable.h
34
#define __ASM_EXTABLE_RAW(insn, fixup, type, data) \
arch/riscv/include/asm/asm-extable.h
37
".long ((" insn ") - .)\n" \
arch/riscv/include/asm/asm-extable.h
43
#define _ASM_EXTABLE(insn, fixup) \
arch/riscv/include/asm/asm-extable.h
44
__ASM_EXTABLE_RAW(#insn, #fixup, __stringify(EX_TYPE_FIXUP), "0")
arch/riscv/include/asm/asm-extable.h
59
#define _ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, zero) \
arch/riscv/include/asm/asm-extable.h
61
__ASM_EXTABLE_RAW(#insn, #fixup, \
arch/riscv/include/asm/asm-extable.h
68
#define _ASM_EXTABLE_UACCESS_ERR(insn, fixup, err) \
arch/riscv/include/asm/asm-extable.h
69
_ASM_EXTABLE_UACCESS_ERR_ZERO(insn, fixup, err, zero)
arch/riscv/include/asm/asm-extable.h
71
#define _ASM_EXTABLE_LOAD_UNALIGNED_ZEROPAD(insn, fixup, data, addr) \
arch/riscv/include/asm/asm-extable.h
73
__ASM_EXTABLE_RAW(#insn, #fixup, \
arch/riscv/include/asm/asm-extable.h
83
#define _ASM_EXTABLE_UACCESS_ERR(insn, fixup, err)
arch/riscv/include/asm/bug.h
22
#define GET_INSN_LENGTH(insn) \
arch/riscv/include/asm/bug.h
25
__len = ((insn & __INSN_LENGTH_MASK) == __INSN_LENGTH_32) ? \
arch/riscv/include/asm/extable.h
19
int insn, fixup;
arch/riscv/include/asm/futex.h
22
#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
arch/riscv/include/asm/futex.h
26
"1: " insn " \n" \
arch/riscv/include/asm/insn-def.h
33
.insn r \opcode, \func3, \func7, \rd, \rs1, \rs2
arch/riscv/include/asm/insn-def.h
37
.insn i \opcode, \func3, \rd, \rs1, \simm12
arch/riscv/include/asm/insn-def.h
41
.insn s \opcode, \func3, \rs2, \simm12(\rs1)
arch/riscv/include/asm/insn.h
391
#define INSN_IS_16BIT(insn) (((insn) & INSN_16BIT_MASK) != INSN_16BIT_MASK)
arch/riscv/include/asm/insn.h
392
#define INSN_LEN(insn) (INSN_IS_16BIT(insn) ? 2 : 4)
arch/riscv/include/asm/insn.h
400
#define REG_OFFSET(insn, pos) \
arch/riscv/include/asm/insn.h
401
(SHIFT_RIGHT((insn), (pos) - LOG_REGBYTES) & REG_MASK)
arch/riscv/include/asm/insn.h
403
#define REG_PTR(insn, pos, regs) \
arch/riscv/include/asm/insn.h
404
((ulong *)((ulong)(regs) + REG_OFFSET(insn, pos)))
arch/riscv/include/asm/insn.h
406
#define GET_RS1(insn, regs) (*REG_PTR(insn, SH_RS1, regs))
arch/riscv/include/asm/insn.h
407
#define GET_RS2(insn, regs) (*REG_PTR(insn, SH_RS2, regs))
arch/riscv/include/asm/insn.h
408
#define GET_RS1S(insn, regs) (*REG_PTR(RVC_RS1S(insn), 0, regs))
arch/riscv/include/asm/insn.h
409
#define GET_RS2S(insn, regs) (*REG_PTR(RVC_RS2S(insn), 0, regs))
arch/riscv/include/asm/insn.h
410
#define GET_RS2C(insn, regs) (*REG_PTR(insn, SH_RS2C, regs))
arch/riscv/include/asm/insn.h
412
#define SET_RD(insn, regs, val) (*REG_PTR(insn, SH_RD, regs) = (val))
arch/riscv/include/asm/insn.h
413
#define IMM_I(insn) ((s32)(insn) >> 20)
arch/riscv/include/asm/insn.h
414
#define IMM_S(insn) (((s32)(insn) >> 25 << 5) | \
arch/riscv/include/asm/insn.h
415
(s32)(((insn) >> 7) & 0x1f))
arch/riscv/include/asm/insn.h
431
#define GET_FUNCT3(insn) (((insn) >> 12) & 7)
arch/riscv/include/asm/insn.h
452
#define RVC_RS1S(insn) (8 + RV_X(insn, SH_RD, 3))
arch/riscv/include/asm/insn.h
453
#define RVC_RS2S(insn) (8 + RV_X(insn, SH_RS2C, 3))
arch/riscv/include/asm/insn.h
454
#define RVC_RS2(insn) RV_X(insn, SH_RS2C, 5)
arch/riscv/include/asm/insn.h
535
static inline s32 riscv_insn_extract_jtype_imm(u32 insn)
arch/riscv/include/asm/insn.h
537
return RV_EXTRACT_JTYPE_IMM(insn);
arch/riscv/include/asm/insn.h
546
static inline void riscv_insn_insert_jtype_imm(u32 *insn, s32 imm)
arch/riscv/include/asm/insn.h
549
*insn &= ~GENMASK(31, 12);
arch/riscv/include/asm/insn.h
550
*insn |= (RV_X_MASK(imm, RV_J_IMM_10_1_OFF, RV_J_IMM_10_1_MASK) << RV_J_IMM_10_1_OPOFF) |
arch/riscv/include/asm/kvm_vcpu_insn.h
14
unsigned long insn;
arch/riscv/include/asm/kvm_vcpu_insn.h
22
unsigned long insn;
arch/riscv/include/asm/probes.h
11
probe_opcode_t *insn;
arch/riscv/include/asm/runtime-const.h
250
u32 insn;
arch/riscv/include/asm/runtime-const.h
252
insn = (u32)le16_to_cpu(parcel[0]) | (u32)le16_to_cpu(parcel[1]) << 16;
arch/riscv/include/asm/runtime-const.h
254
insn &= 0xfe0fffff;
arch/riscv/include/asm/runtime-const.h
255
insn |= (val & 0b11111) << 20;
arch/riscv/include/asm/runtime-const.h
257
res = cpu_to_le32(insn);
arch/riscv/include/asm/runtime-const.h
259
patch_text_nosync(where, &res, sizeof(insn));
arch/riscv/include/asm/text-patching.h
9
int patch_insn_write(void *addr, const void *insn, size_t len);
arch/riscv/include/asm/uaccess.h
106
#define __get_user_asm(insn, x, ptr, label) \
arch/riscv/include/asm/uaccess.h
111
" " insn " %0, %1\n" \
arch/riscv/include/asm/uaccess.h
118
#define __get_user_asm(insn, x, ptr, label) \
arch/riscv/include/asm/uaccess.h
123
" " insn " %1, %2\n" \
arch/riscv/include/asm/uaccess.h
289
#define __put_user_asm(insn, x, ptr, label) \
arch/riscv/include/asm/uaccess.h
294
" " insn " %z0, %1\n" \
arch/riscv/include/asm/uprobes.h
29
u8 insn[MAX_UINSN_BYTES];
arch/riscv/kernel/alternative.c
116
u32 insn = riscv_instruction_at(alt_ptr + i * sizeof(u32));
arch/riscv/kernel/alternative.c
123
if (riscv_insn_is_auipc(insn) && i < num_insn - 1) {
arch/riscv/kernel/alternative.c
130
if (RV_EXTRACT_RD_REG(insn) != 1)
arch/riscv/kernel/alternative.c
134
insn, insn2, patch_offset);
arch/riscv/kernel/alternative.c
138
if (riscv_insn_is_jal(insn)) {
arch/riscv/kernel/alternative.c
139
s32 imm = riscv_insn_extract_jtype_imm(insn);
arch/riscv/kernel/alternative.c
147
insn, patch_offset);
arch/riscv/kernel/cfi.c
19
u32 insn;
arch/riscv/kernel/cfi.c
38
if (get_kernel_nofault(insn, (void *)regs->epc - 4))
arch/riscv/kernel/cfi.c
40
if (!riscv_insn_is_beq(insn))
arch/riscv/kernel/cfi.c
43
*type = (u32)regs_ptr[RV_EXTRACT_RS1_REG(insn)];
arch/riscv/kernel/cfi.c
45
if (get_kernel_nofault(insn, (void *)regs->epc) ||
arch/riscv/kernel/cfi.c
46
get_kernel_nofault(insn, (void *)regs->epc + GET_INSN_LENGTH(insn)))
arch/riscv/kernel/cfi.c
49
if (riscv_insn_is_jalr(insn))
arch/riscv/kernel/cfi.c
50
rs1_num = RV_EXTRACT_RS1_REG(insn);
arch/riscv/kernel/cfi.c
51
else if (riscv_insn_is_c_jalr(insn))
arch/riscv/kernel/cfi.c
52
rs1_num = RVC_EXTRACT_C2_RS1_REG(insn);
arch/riscv/kernel/jump_label.c
22
u32 insn;
arch/riscv/kernel/jump_label.c
30
insn = RISCV_INSN_JAL |
arch/riscv/kernel/jump_label.c
36
insn = RISCV_INSN_NOP4;
arch/riscv/kernel/jump_label.c
41
patch_insn_write(addr, &insn, sizeof(insn));
arch/riscv/kernel/jump_label.c
45
patch_insn_write(addr, &insn, sizeof(insn));
arch/riscv/kernel/module.c
58
u32 insn = (u32)le16_to_cpu(parcel[0]) | (u32)le16_to_cpu(parcel[1]) << 16;
arch/riscv/kernel/module.c
60
insn &= keep;
arch/riscv/kernel/module.c
61
insn |= set;
arch/riscv/kernel/module.c
63
parcel[0] = cpu_to_le16(insn);
arch/riscv/kernel/module.c
64
parcel[1] = cpu_to_le16(insn >> 16);
arch/riscv/kernel/module.c
71
u16 insn = le16_to_cpu(*parcel);
arch/riscv/kernel/module.c
73
insn &= keep;
arch/riscv/kernel/module.c
74
insn |= set;
arch/riscv/kernel/module.c
76
*parcel = cpu_to_le16(insn);
arch/riscv/kernel/patch.c
112
static int __patch_insn_write(void *addr, const void *insn, size_t len)
arch/riscv/kernel/patch.c
145
ret = copy_to_kernel_nofault(waddr, insn, len);
arch/riscv/kernel/patch.c
174
static int __patch_insn_write(void *addr, const void *insn, size_t len)
arch/riscv/kernel/patch.c
176
return copy_to_kernel_nofault(addr, insn, len);
arch/riscv/kernel/patch.c
216
int patch_insn_write(void *addr, const void *insn, size_t len)
arch/riscv/kernel/patch.c
227
ret = __patch_insn_write(addr, insn, size);
arch/riscv/kernel/patch.c
232
insn += size;
arch/riscv/kernel/probes/decode-insn.c
19
probe_opcode_t insn = *addr;
arch/riscv/kernel/probes/decode-insn.c
24
RISCV_INSN_REJECTED(system, insn);
arch/riscv/kernel/probes/decode-insn.c
25
RISCV_INSN_REJECTED(fence, insn);
arch/riscv/kernel/probes/decode-insn.c
32
RISCV_INSN_REJECTED(c_jal, insn);
arch/riscv/kernel/probes/decode-insn.c
33
RISCV_INSN_REJECTED(c_ebreak, insn);
arch/riscv/kernel/probes/decode-insn.c
35
RISCV_INSN_SET_SIMULATE(c_j, insn);
arch/riscv/kernel/probes/decode-insn.c
36
RISCV_INSN_SET_SIMULATE(c_jr, insn);
arch/riscv/kernel/probes/decode-insn.c
37
RISCV_INSN_SET_SIMULATE(c_jalr, insn);
arch/riscv/kernel/probes/decode-insn.c
38
RISCV_INSN_SET_SIMULATE(c_beqz, insn);
arch/riscv/kernel/probes/decode-insn.c
39
RISCV_INSN_SET_SIMULATE(c_bnez, insn);
arch/riscv/kernel/probes/decode-insn.c
42
RISCV_INSN_SET_SIMULATE(jal, insn);
arch/riscv/kernel/probes/decode-insn.c
43
RISCV_INSN_SET_SIMULATE(jalr, insn);
arch/riscv/kernel/probes/decode-insn.c
44
RISCV_INSN_SET_SIMULATE(auipc, insn);
arch/riscv/kernel/probes/decode-insn.c
45
RISCV_INSN_SET_SIMULATE(branch, insn);
arch/riscv/kernel/probes/kprobes.c
104
if (p->ainsn.api.insn)
arch/riscv/kernel/probes/kprobes.c
116
u32 insn = len == 4 ? __BUG_INSN_32 : __BUG_INSN_16;
arch/riscv/kernel/probes/kprobes.c
118
patch_text(p->addr, &insn, len);
arch/riscv/kernel/probes/kprobes.c
185
if (p->ainsn.api.insn) {
arch/riscv/kernel/probes/kprobes.c
187
slot = (unsigned long)p->ainsn.api.insn;
arch/riscv/kernel/probes/kprobes.c
28
u32 insn = __BUG_INSN_32;
arch/riscv/kernel/probes/kprobes.c
32
patch_text_nosync(p->ainsn.api.insn, &p->opcode, len);
arch/riscv/kernel/probes/kprobes.c
33
patch_text_nosync((void *)p->ainsn.api.insn + len, &insn, GET_INSN_LENGTH(insn));
arch/riscv/kernel/probes/kprobes.c
344
((unsigned long)&cur->ainsn.api.insn[0] + GET_INSN_LENGTH(cur->opcode) == addr)) {
arch/riscv/kernel/probes/kprobes.c
74
u16 *insn = (u16 *)p->addr;
arch/riscv/kernel/probes/kprobes.c
76
if ((unsigned long)insn & 0x1)
arch/riscv/kernel/probes/kprobes.c
83
p->opcode = (kprobe_opcode_t)(*insn++);
arch/riscv/kernel/probes/kprobes.c
85
p->opcode |= (kprobe_opcode_t)(*insn) << 16;
arch/riscv/kernel/probes/kprobes.c
93
p->ainsn.api.insn = NULL;
arch/riscv/kernel/probes/kprobes.c
97
p->ainsn.api.insn = get_insn_slot();
arch/riscv/kernel/probes/kprobes.c
98
if (!p->ainsn.api.insn)
arch/riscv/kernel/probes/uprobes.c
103
auprobe->api.handler(insn, addr, regs);
arch/riscv/kernel/probes/uprobes.c
12
bool is_swbp_insn(uprobe_opcode_t *insn)
arch/riscv/kernel/probes/uprobes.c
15
return (*insn & 0xffff) == UPROBE_SWBP_INSN;
arch/riscv/kernel/probes/uprobes.c
17
return *insn == UPROBE_SWBP_INSN;
arch/riscv/kernel/probes/uprobes.c
21
bool is_trap_insn(uprobe_opcode_t *insn)
arch/riscv/kernel/probes/uprobes.c
23
return riscv_insn_is_ebreak(*insn) || riscv_insn_is_c_ebreak(*insn);
arch/riscv/kernel/probes/uprobes.c
36
opcode = *(probe_opcode_t *)(&auprobe->insn[0]);
arch/riscv/kernel/probes/uprobes.c
93
probe_opcode_t insn;
arch/riscv/kernel/probes/uprobes.c
99
insn = *(probe_opcode_t *)(&auprobe->insn[0]);
arch/riscv/kernel/traps.c
261
bug_insn_t insn;
arch/riscv/kernel/traps.c
263
if (get_kernel_nofault(insn, (bug_insn_t *)pc))
arch/riscv/kernel/traps.c
266
return GET_INSN_LENGTH(insn);
arch/riscv/kernel/traps.c
464
bug_insn_t insn;
arch/riscv/kernel/traps.c
468
if (get_kernel_nofault(insn, (bug_insn_t *)pc))
arch/riscv/kernel/traps.c
470
if ((insn & __INSN_LENGTH_MASK) == __INSN_LENGTH_32)
arch/riscv/kernel/traps.c
471
return (insn == __BUG_INSN_32);
arch/riscv/kernel/traps.c
473
return ((insn & __COMPRESSED_INSN_MASK) == __BUG_INSN_16);
arch/riscv/kernel/traps_misaligned.c
105
static void set_f32_rd(unsigned long insn, struct pt_regs *regs,
arch/riscv/kernel/traps_misaligned.c
108
static void set_f64_rd(unsigned long insn, struct pt_regs *regs, u64 val) {}
arch/riscv/kernel/traps_misaligned.c
110
static unsigned long get_f64_rs(unsigned long insn, u8 fp_reg_offset,
arch/riscv/kernel/traps_misaligned.c
116
static unsigned long get_f32_rs(unsigned long insn, u8 fp_reg_offset,
arch/riscv/kernel/traps_misaligned.c
124
#define GET_F64_RS2(insn, regs) (get_f64_rs(insn, 20, regs))
arch/riscv/kernel/traps_misaligned.c
125
#define GET_F64_RS2C(insn, regs) (get_f64_rs(insn, 2, regs))
arch/riscv/kernel/traps_misaligned.c
126
#define GET_F64_RS2S(insn, regs) (get_f64_rs(RVC_RS2S(insn), 0, regs))
arch/riscv/kernel/traps_misaligned.c
128
#define GET_F32_RS2(insn, regs) (get_f32_rs(insn, 20, regs))
arch/riscv/kernel/traps_misaligned.c
129
#define GET_F32_RS2C(insn, regs) (get_f32_rs(insn, 2, regs))
arch/riscv/kernel/traps_misaligned.c
130
#define GET_F32_RS2S(insn, regs) (get_f32_rs(RVC_RS2S(insn), 0, regs))
arch/riscv/kernel/traps_misaligned.c
132
#define __read_insn(regs, insn, insn_addr, type) \
arch/riscv/kernel/traps_misaligned.c
137
__ret = get_user(insn, (type __user *) insn_addr); \
arch/riscv/kernel/traps_misaligned.c
139
insn = *(type *)insn_addr; \
arch/riscv/kernel/traps_misaligned.c
148
ulong insn = 0;
arch/riscv/kernel/traps_misaligned.c
153
if (__read_insn(regs, insn, epc, u16))
arch/riscv/kernel/traps_misaligned.c
159
insn &= GENMASK(15, 0);
arch/riscv/kernel/traps_misaligned.c
160
if ((insn & __INSN_LENGTH_MASK) != __INSN_LENGTH_32) {
arch/riscv/kernel/traps_misaligned.c
161
*r_insn = insn;
arch/riscv/kernel/traps_misaligned.c
167
*r_insn = (tmp << 16) | insn;
arch/riscv/kernel/traps_misaligned.c
171
if (__read_insn(regs, insn, epc, u32))
arch/riscv/kernel/traps_misaligned.c
173
if ((insn & __INSN_LENGTH_MASK) == __INSN_LENGTH_32) {
arch/riscv/kernel/traps_misaligned.c
174
*r_insn = insn;
arch/riscv/kernel/traps_misaligned.c
177
insn &= GENMASK(15, 0);
arch/riscv/kernel/traps_misaligned.c
178
*r_insn = insn;
arch/riscv/kernel/traps_misaligned.c
197
unsigned long insn;
arch/riscv/kernel/traps_misaligned.c
199
if (get_insn(regs, epc, &insn))
arch/riscv/kernel/traps_misaligned.c
205
regs->epc = epc + INSN_LEN(insn);
arch/riscv/kernel/traps_misaligned.c
224
unsigned long insn;
arch/riscv/kernel/traps_misaligned.c
238
if (get_insn(regs, epc, &insn))
arch/riscv/kernel/traps_misaligned.c
243
if ((insn & INSN_MASK_LW) == INSN_MATCH_LW) {
arch/riscv/kernel/traps_misaligned.c
247
} else if ((insn & INSN_MASK_LD) == INSN_MATCH_LD) {
arch/riscv/kernel/traps_misaligned.c
25
#define FP_GET_RD(insn) (insn >> 7 & 0x1F)
arch/riscv/kernel/traps_misaligned.c
250
} else if ((insn & INSN_MASK_LWU) == INSN_MATCH_LWU) {
arch/riscv/kernel/traps_misaligned.c
253
} else if ((insn & INSN_MASK_FLD) == INSN_MATCH_FLD) {
arch/riscv/kernel/traps_misaligned.c
256
} else if ((insn & INSN_MASK_FLW) == INSN_MATCH_FLW) {
arch/riscv/kernel/traps_misaligned.c
259
} else if ((insn & INSN_MASK_LH) == INSN_MATCH_LH) {
arch/riscv/kernel/traps_misaligned.c
262
} else if ((insn & INSN_MASK_LHU) == INSN_MATCH_LHU) {
arch/riscv/kernel/traps_misaligned.c
265
} else if ((insn & INSN_MASK_C_LD) == INSN_MATCH_C_LD) {
arch/riscv/kernel/traps_misaligned.c
268
insn = RVC_RS2S(insn) << SH_RD;
arch/riscv/kernel/traps_misaligned.c
269
} else if ((insn & INSN_MASK_C_LDSP) == INSN_MATCH_C_LDSP &&
arch/riscv/kernel/traps_misaligned.c
270
((insn >> SH_RD) & 0x1f)) {
arch/riscv/kernel/traps_misaligned.c
274
} else if ((insn & INSN_MASK_C_LW) == INSN_MATCH_C_LW) {
arch/riscv/kernel/traps_misaligned.c
277
insn = RVC_RS2S(insn) << SH_RD;
arch/riscv/kernel/traps_misaligned.c
278
} else if ((insn & INSN_MASK_C_LWSP) == INSN_MATCH_C_LWSP &&
arch/riscv/kernel/traps_misaligned.c
279
((insn >> SH_RD) & 0x1f)) {
arch/riscv/kernel/traps_misaligned.c
282
} else if ((insn & INSN_MASK_C_FLD) == INSN_MATCH_C_FLD) {
arch/riscv/kernel/traps_misaligned.c
285
insn = RVC_RS2S(insn) << SH_RD;
arch/riscv/kernel/traps_misaligned.c
286
} else if ((insn & INSN_MASK_C_FLDSP) == INSN_MATCH_C_FLDSP) {
arch/riscv/kernel/traps_misaligned.c
29
static int set_f32_rd(unsigned long insn, struct pt_regs *regs,
arch/riscv/kernel/traps_misaligned.c
290
} else if ((insn & INSN_MASK_C_FLW) == INSN_MATCH_C_FLW) {
arch/riscv/kernel/traps_misaligned.c
293
insn = RVC_RS2S(insn) << SH_RD;
arch/riscv/kernel/traps_misaligned.c
294
} else if ((insn & INSN_MASK_C_FLWSP) == INSN_MATCH_C_FLWSP) {
arch/riscv/kernel/traps_misaligned.c
298
} else if ((insn & INSN_MASK_C_LHU) == INSN_MATCH_C_LHU) {
arch/riscv/kernel/traps_misaligned.c
300
insn = RVC_RS2S(insn) << SH_RD;
arch/riscv/kernel/traps_misaligned.c
301
} else if ((insn & INSN_MASK_C_LH) == INSN_MATCH_C_LH) {
arch/riscv/kernel/traps_misaligned.c
304
insn = RVC_RS2S(insn) << SH_RD;
arch/riscv/kernel/traps_misaligned.c
32
unsigned long fp_reg = FP_GET_RD(insn);
arch/riscv/kernel/traps_misaligned.c
322
SET_RD(insn, regs, (long)(val.data_ulong << shift) >> shift);
arch/riscv/kernel/traps_misaligned.c
324
set_f64_rd(insn, regs, val.data_u64);
arch/riscv/kernel/traps_misaligned.c
326
set_f32_rd(insn, regs, val.data_ulong);
arch/riscv/kernel/traps_misaligned.c
328
regs->epc = epc + INSN_LEN(insn);
arch/riscv/kernel/traps_misaligned.c
337
unsigned long insn;
arch/riscv/kernel/traps_misaligned.c
349
if (get_insn(regs, epc, &insn))
arch/riscv/kernel/traps_misaligned.c
354
val.data_ulong = GET_RS2(insn, regs);
arch/riscv/kernel/traps_misaligned.c
356
if ((insn & INSN_MASK_SW) == INSN_MATCH_SW) {
arch/riscv/kernel/traps_misaligned.c
359
} else if ((insn & INSN_MASK_SD) == INSN_MATCH_SD) {
arch/riscv/kernel/traps_misaligned.c
362
} else if ((insn & INSN_MASK_FSD) == INSN_MATCH_FSD) {
arch/riscv/kernel/traps_misaligned.c
365
val.data_u64 = GET_F64_RS2(insn, regs);
arch/riscv/kernel/traps_misaligned.c
366
} else if ((insn & INSN_MASK_FSW) == INSN_MATCH_FSW) {
arch/riscv/kernel/traps_misaligned.c
369
val.data_ulong = GET_F32_RS2(insn, regs);
arch/riscv/kernel/traps_misaligned.c
370
} else if ((insn & INSN_MASK_SH) == INSN_MATCH_SH) {
arch/riscv/kernel/traps_misaligned.c
373
} else if ((insn & INSN_MASK_C_SD) == INSN_MATCH_C_SD) {
arch/riscv/kernel/traps_misaligned.c
375
val.data_ulong = GET_RS2S(insn, regs);
arch/riscv/kernel/traps_misaligned.c
376
} else if ((insn & INSN_MASK_C_SDSP) == INSN_MATCH_C_SDSP) {
arch/riscv/kernel/traps_misaligned.c
378
val.data_ulong = GET_RS2C(insn, regs);
arch/riscv/kernel/traps_misaligned.c
380
} else if ((insn & INSN_MASK_C_SW) == INSN_MATCH_C_SW) {
arch/riscv/kernel/traps_misaligned.c
382
val.data_ulong = GET_RS2S(insn, regs);
arch/riscv/kernel/traps_misaligned.c
383
} else if ((insn & INSN_MASK_C_SWSP) == INSN_MATCH_C_SWSP) {
arch/riscv/kernel/traps_misaligned.c
385
val.data_ulong = GET_RS2C(insn, regs);
arch/riscv/kernel/traps_misaligned.c
386
} else if ((insn & INSN_MASK_C_FSD) == INSN_MATCH_C_FSD) {
arch/riscv/kernel/traps_misaligned.c
389
val.data_u64 = GET_F64_RS2S(insn, regs);
arch/riscv/kernel/traps_misaligned.c
390
} else if ((insn & INSN_MASK_C_FSDSP) == INSN_MATCH_C_FSDSP) {
arch/riscv/kernel/traps_misaligned.c
393
val.data_u64 = GET_F64_RS2C(insn, regs);
arch/riscv/kernel/traps_misaligned.c
395
} else if ((insn & INSN_MASK_C_FSW) == INSN_MATCH_C_FSW) {
arch/riscv/kernel/traps_misaligned.c
398
val.data_ulong = GET_F32_RS2S(insn, regs);
arch/riscv/kernel/traps_misaligned.c
399
} else if ((insn & INSN_MASK_C_FSWSP) == INSN_MATCH_C_FSWSP) {
arch/riscv/kernel/traps_misaligned.c
402
val.data_ulong = GET_F32_RS2C(insn, regs);
arch/riscv/kernel/traps_misaligned.c
404
} else if ((insn & INSN_MASK_C_SH) == INSN_MATCH_C_SH) {
arch/riscv/kernel/traps_misaligned.c
406
val.data_ulong = GET_RS2S(insn, regs);
arch/riscv/kernel/traps_misaligned.c
42
static int set_f64_rd(unsigned long insn, struct pt_regs *regs, u64 val)
arch/riscv/kernel/traps_misaligned.c
422
regs->epc = epc + INSN_LEN(insn);
arch/riscv/kernel/traps_misaligned.c
430
unsigned long insn;
arch/riscv/kernel/traps_misaligned.c
433
if (get_insn(regs, epc, &insn))
arch/riscv/kernel/traps_misaligned.c
436
if (insn_is_vector(insn))
arch/riscv/kernel/traps_misaligned.c
44
unsigned long fp_reg = FP_GET_RD(insn);
arch/riscv/kernel/traps_misaligned.c
61
static u64 get_f64_rs(unsigned long insn, u8 fp_reg_offset,
arch/riscv/kernel/traps_misaligned.c
64
unsigned long fp_reg = (insn >> fp_reg_offset) & 0x1F;
arch/riscv/kernel/traps_misaligned.c
76
static unsigned long get_f64_rs(unsigned long insn, u8 fp_reg_offset,
arch/riscv/kernel/traps_misaligned.c
79
unsigned long fp_reg = (insn >> fp_reg_offset) & 0x1F;
arch/riscv/kernel/traps_misaligned.c
92
static unsigned long get_f32_rs(unsigned long insn, u8 fp_reg_offset,
arch/riscv/kernel/traps_misaligned.c
95
unsigned long fp_reg = (insn >> fp_reg_offset) & 0x1F;
arch/riscv/kernel/vector.c
188
u32 insn = (u32)regs->badaddr;
arch/riscv/kernel/vector.c
202
if (!insn) {
arch/riscv/kernel/vector.c
203
if (__get_user(insn, epc))
arch/riscv/kernel/vector.c
208
if (!insn_is_vector(insn))
arch/riscv/kvm/vcpu_insn.c
129
ulong insn;
arch/riscv/kvm/vcpu_insn.c
136
insn = vcpu->arch.csr_decode.insn;
arch/riscv/kvm/vcpu_insn.c
137
if ((insn >> SH_RD) & MASK_RX)
arch/riscv/kvm/vcpu_insn.c
138
SET_RD(insn, &vcpu->arch.guest_context,
arch/riscv/kvm/vcpu_insn.c
142
vcpu->arch.guest_context.sepc += INSN_LEN(insn);
arch/riscv/kvm/vcpu_insn.c
147
static int csr_insn(struct kvm_vcpu *vcpu, struct kvm_run *run, ulong insn)
arch/riscv/kvm/vcpu_insn.c
150
unsigned int csr_num = insn >> SH_RS2;
arch/riscv/kvm/vcpu_insn.c
151
unsigned int rs1_num = (insn >> SH_RS1) & MASK_RX;
arch/riscv/kvm/vcpu_insn.c
152
ulong rs1_val = GET_RS1(insn, &vcpu->arch.guest_context);
arch/riscv/kvm/vcpu_insn.c
157
switch (GET_FUNCT3(insn)) {
arch/riscv/kvm/vcpu_insn.c
187
vcpu->arch.csr_decode.insn = insn;
arch/riscv/kvm/vcpu_insn.c
27
int (*func)(struct kvm_vcpu *vcpu, struct kvm_run *run, ulong insn);
arch/riscv/kvm/vcpu_insn.c
273
ulong insn)
arch/riscv/kvm/vcpu_insn.c
280
if ((insn & ifn->mask) == ifn->match) {
arch/riscv/kvm/vcpu_insn.c
281
rc = ifn->func(vcpu, run, insn);
arch/riscv/kvm/vcpu_insn.c
288
return truly_illegal_insn(vcpu, run, insn);
arch/riscv/kvm/vcpu_insn.c
290
return truly_virtual_insn(vcpu, run, insn);
arch/riscv/kvm/vcpu_insn.c
292
vcpu->arch.guest_context.sepc += INSN_LEN(insn);
arch/riscv/kvm/vcpu_insn.c
31
ulong insn)
arch/riscv/kvm/vcpu_insn.c
331
unsigned long insn = trap->stval;
arch/riscv/kvm/vcpu_insn.c
335
if (unlikely(INSN_IS_16BIT(insn))) {
arch/riscv/kvm/vcpu_insn.c
336
if (insn == 0) {
arch/riscv/kvm/vcpu_insn.c
338
insn = kvm_riscv_vcpu_unpriv_read(vcpu, true,
arch/riscv/kvm/vcpu_insn.c
349
if (INSN_IS_16BIT(insn))
arch/riscv/kvm/vcpu_insn.c
350
return truly_illegal_insn(vcpu, run, insn);
arch/riscv/kvm/vcpu_insn.c
353
switch ((insn & INSN_OPCODE_MASK) >> INSN_OPCODE_SHIFT) {
arch/riscv/kvm/vcpu_insn.c
355
return system_opcode_insn(vcpu, run, insn);
arch/riscv/kvm/vcpu_insn.c
357
return truly_illegal_insn(vcpu, run, insn);
arch/riscv/kvm/vcpu_insn.c
378
unsigned long insn;
arch/riscv/kvm/vcpu_insn.c
38
utrap.stval = insn;
arch/riscv/kvm/vcpu_insn.c
389
insn = htinst | INSN_16BIT_MASK;
arch/riscv/kvm/vcpu_insn.c
390
insn_len = (htinst & BIT(1)) ? INSN_LEN(insn) : 2;
arch/riscv/kvm/vcpu_insn.c
396
insn = kvm_riscv_vcpu_unpriv_read(vcpu, true, ct->sepc,
arch/riscv/kvm/vcpu_insn.c
406
insn_len = INSN_LEN(insn);
arch/riscv/kvm/vcpu_insn.c
410
if ((insn & INSN_MASK_LW) == INSN_MATCH_LW) {
arch/riscv/kvm/vcpu_insn.c
413
} else if ((insn & INSN_MASK_LB) == INSN_MATCH_LB) {
arch/riscv/kvm/vcpu_insn.c
416
} else if ((insn & INSN_MASK_LBU) == INSN_MATCH_LBU) {
arch/riscv/kvm/vcpu_insn.c
420
} else if ((insn & INSN_MASK_LD) == INSN_MATCH_LD) {
arch/riscv/kvm/vcpu_insn.c
423
} else if ((insn & INSN_MASK_LWU) == INSN_MATCH_LWU) {
arch/riscv/kvm/vcpu_insn.c
426
} else if ((insn & INSN_MASK_LH) == INSN_MATCH_LH) {
arch/riscv/kvm/vcpu_insn.c
429
} else if ((insn & INSN_MASK_LHU) == INSN_MATCH_LHU) {
arch/riscv/kvm/vcpu_insn.c
432
} else if ((insn & INSN_MASK_C_LD) == INSN_MATCH_C_LD) {
arch/riscv/kvm/vcpu_insn.c
435
insn = RVC_RS2S(insn) << SH_RD;
arch/riscv/kvm/vcpu_insn.c
436
} else if ((insn & INSN_MASK_C_LDSP) == INSN_MATCH_C_LDSP &&
arch/riscv/kvm/vcpu_insn.c
437
((insn >> SH_RD) & 0x1f)) {
arch/riscv/kvm/vcpu_insn.c
441
} else if ((insn & INSN_MASK_C_LW) == INSN_MATCH_C_LW) {
arch/riscv/kvm/vcpu_insn.c
444
insn = RVC_RS2S(insn) << SH_RD;
arch/riscv/kvm/vcpu_insn.c
445
} else if ((insn & INSN_MASK_C_LWSP) == INSN_MATCH_C_LWSP &&
arch/riscv/kvm/vcpu_insn.c
446
((insn >> SH_RD) & 0x1f)) {
arch/riscv/kvm/vcpu_insn.c
458
vcpu->arch.mmio_decode.insn = insn;
arch/riscv/kvm/vcpu_insn.c
47
ulong insn)
arch/riscv/kvm/vcpu_insn.c
506
unsigned long insn;
arch/riscv/kvm/vcpu_insn.c
517
insn = htinst | INSN_16BIT_MASK;
arch/riscv/kvm/vcpu_insn.c
518
insn_len = (htinst & BIT(1)) ? INSN_LEN(insn) : 2;
arch/riscv/kvm/vcpu_insn.c
524
insn = kvm_riscv_vcpu_unpriv_read(vcpu, true, ct->sepc,
arch/riscv/kvm/vcpu_insn.c
534
insn_len = INSN_LEN(insn);
arch/riscv/kvm/vcpu_insn.c
537
data = GET_RS2(insn, &vcpu->arch.guest_context);
arch/riscv/kvm/vcpu_insn.c
54
utrap.stval = insn;
arch/riscv/kvm/vcpu_insn.c
540
if ((insn & INSN_MASK_SW) == INSN_MATCH_SW) {
arch/riscv/kvm/vcpu_insn.c
542
} else if ((insn & INSN_MASK_SB) == INSN_MATCH_SB) {
arch/riscv/kvm/vcpu_insn.c
545
} else if ((insn & INSN_MASK_SD) == INSN_MATCH_SD) {
arch/riscv/kvm/vcpu_insn.c
548
} else if ((insn & INSN_MASK_SH) == INSN_MATCH_SH) {
arch/riscv/kvm/vcpu_insn.c
551
} else if ((insn & INSN_MASK_C_SD) == INSN_MATCH_C_SD) {
arch/riscv/kvm/vcpu_insn.c
553
data64 = GET_RS2S(insn, &vcpu->arch.guest_context);
arch/riscv/kvm/vcpu_insn.c
554
} else if ((insn & INSN_MASK_C_SDSP) == INSN_MATCH_C_SDSP &&
arch/riscv/kvm/vcpu_insn.c
555
((insn >> SH_RD) & 0x1f)) {
arch/riscv/kvm/vcpu_insn.c
557
data64 = GET_RS2C(insn, &vcpu->arch.guest_context);
arch/riscv/kvm/vcpu_insn.c
559
} else if ((insn & INSN_MASK_C_SW) == INSN_MATCH_C_SW) {
arch/riscv/kvm/vcpu_insn.c
561
data32 = GET_RS2S(insn, &vcpu->arch.guest_context);
arch/riscv/kvm/vcpu_insn.c
562
} else if ((insn & INSN_MASK_C_SWSP) == INSN_MATCH_C_SWSP &&
arch/riscv/kvm/vcpu_insn.c
563
((insn >> SH_RD) & 0x1f)) {
arch/riscv/kvm/vcpu_insn.c
565
data32 = GET_RS2C(insn, &vcpu->arch.guest_context);
arch/riscv/kvm/vcpu_insn.c
575
vcpu->arch.mmio_decode.insn = insn;
arch/riscv/kvm/vcpu_insn.c
633
ulong insn;
arch/riscv/kvm/vcpu_insn.c
640
insn = vcpu->arch.mmio_decode.insn;
arch/riscv/kvm/vcpu_insn.c
651
SET_RD(insn, &vcpu->arch.guest_context,
arch/riscv/kvm/vcpu_insn.c
656
SET_RD(insn, &vcpu->arch.guest_context,
arch/riscv/kvm/vcpu_insn.c
661
SET_RD(insn, &vcpu->arch.guest_context,
arch/riscv/kvm/vcpu_insn.c
666
SET_RD(insn, &vcpu->arch.guest_context,
arch/riscv/kvm/vcpu_insn.c
76
static int wfi_insn(struct kvm_vcpu *vcpu, struct kvm_run *run, ulong insn)
arch/riscv/kvm/vcpu_insn.c
83
static int wrs_insn(struct kvm_vcpu *vcpu, struct kvm_run *run, ulong insn)
arch/riscv/net/bpf_jit.h
114
static inline void emit(const u32 insn, struct rv_jit_context *ctx)
arch/riscv/net/bpf_jit.h
117
ctx->insns[ctx->ninsns] = insn;
arch/riscv/net/bpf_jit.h
118
ctx->insns[ctx->ninsns + 1] = (insn >> 16);
arch/riscv/net/bpf_jit.h
125
static inline void emitc(const u16 insn, struct rv_jit_context *ctx)
arch/riscv/net/bpf_jit.h
130
ctx->insns[ctx->ninsns] = insn;
arch/riscv/net/bpf_jit.h
1333
int bpf_jit_emit_insn(const struct bpf_insn *insn, struct rv_jit_context *ctx,
arch/riscv/net/bpf_jit.h
205
static inline int is_12b_check(int off, int insn)
arch/riscv/net/bpf_jit.h
209
insn, (int)off);
arch/riscv/net/bpf_jit.h
225
static inline int rv_offset(int insn, int off, struct rv_jit_context *ctx)
arch/riscv/net/bpf_jit.h
230
from = (insn > 0) ? ctx->offset[insn - 1] : ctx->prologue_len;
arch/riscv/net/bpf_jit.h
231
to = (insn + off > 0) ? ctx->offset[insn + off - 1] : ctx->prologue_len;
arch/riscv/net/bpf_jit_comp32.c
1141
ret = bpf_jit_get_func_addr(ctx->prog, insn, extra_pass, &addr,
arch/riscv/net/bpf_jit_comp32.c
1233
struct bpf_insn insn1 = insn[1];
arch/riscv/net/bpf_jit_comp32.c
1275
if (insn->imm != BPF_ADD) {
arch/riscv/net/bpf_jit_comp32.c
1278
insn->imm);
arch/riscv/net/bpf_jit_comp32.c
774
static int emit_bpf_tail_call(int insn, struct rv_jit_context *ctx)
arch/riscv/net/bpf_jit_comp32.c
785
tc_ninsn = insn ? ctx->offset[insn] - ctx->offset[insn - 1] :
arch/riscv/net/bpf_jit_comp32.c
790
if (is_12b_check(off, insn))
arch/riscv/net/bpf_jit_comp32.c
816
if (is_12b_check(off, insn))
arch/riscv/net/bpf_jit_comp32.c
827
if (is_12b_check(off, insn))
arch/riscv/net/bpf_jit_comp32.c
953
int bpf_jit_emit_insn(const struct bpf_insn *insn, struct rv_jit_context *ctx,
arch/riscv/net/bpf_jit_comp32.c
956
bool is64 = BPF_CLASS(insn->code) == BPF_ALU64 ||
arch/riscv/net/bpf_jit_comp32.c
957
BPF_CLASS(insn->code) == BPF_JMP;
arch/riscv/net/bpf_jit_comp32.c
958
int s, e, rvoff, i = insn - ctx->prog->insnsi;
arch/riscv/net/bpf_jit_comp32.c
959
u8 code = insn->code;
arch/riscv/net/bpf_jit_comp32.c
960
s16 off = insn->off;
arch/riscv/net/bpf_jit_comp32.c
961
s32 imm = insn->imm;
arch/riscv/net/bpf_jit_comp32.c
963
const s8 *dst = bpf2rv32[insn->dst_reg];
arch/riscv/net/bpf_jit_comp32.c
964
const s8 *src = bpf2rv32[insn->src_reg];
arch/riscv/net/bpf_jit_comp64.c
1040
u32 insn;
arch/riscv/net/bpf_jit_comp64.c
1235
insn = rv_bne(RV_REG_T1, RV_REG_ZERO, offset >> 1);
arch/riscv/net/bpf_jit_comp64.c
1236
*(u32 *)(ctx->insns + branches_off[i]) = insn;
arch/riscv/net/bpf_jit_comp64.c
1369
int bpf_jit_emit_insn(const struct bpf_insn *insn, struct rv_jit_context *ctx,
arch/riscv/net/bpf_jit_comp64.c
1372
bool is64 = BPF_CLASS(insn->code) == BPF_ALU64 ||
arch/riscv/net/bpf_jit_comp64.c
1373
BPF_CLASS(insn->code) == BPF_JMP;
arch/riscv/net/bpf_jit_comp64.c
1374
int s, e, rvoff, ret, i = insn - ctx->prog->insnsi;
arch/riscv/net/bpf_jit_comp64.c
1376
u8 rd = -1, rs = -1, code = insn->code;
arch/riscv/net/bpf_jit_comp64.c
1377
s16 off = insn->off;
arch/riscv/net/bpf_jit_comp64.c
1378
s32 imm = insn->imm;
arch/riscv/net/bpf_jit_comp64.c
1380
init_regs(&rd, &rs, insn, ctx);
arch/riscv/net/bpf_jit_comp64.c
1386
if (insn_is_cast_user(insn)) {
arch/riscv/net/bpf_jit_comp64.c
1394
} else if (insn_is_mov_percpu_addr(insn)) {
arch/riscv/net/bpf_jit_comp64.c
1416
switch (insn->off) {
arch/riscv/net/bpf_jit_comp64.c
1804
if (insn->src_reg == 0 && insn->imm == BPF_FUNC_get_smp_processor_id) {
arch/riscv/net/bpf_jit_comp64.c
1812
ret = bpf_jit_get_func_addr(ctx->prog, insn, extra_pass,
arch/riscv/net/bpf_jit_comp64.c
1817
if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL) {
arch/riscv/net/bpf_jit_comp64.c
1821
fm = bpf_jit_find_kfunc_model(ctx->prog, insn);
arch/riscv/net/bpf_jit_comp64.c
1837
if (insn->src_reg != BPF_PSEUDO_CALL)
arch/riscv/net/bpf_jit_comp64.c
1861
struct bpf_insn insn1 = insn[1];
arch/riscv/net/bpf_jit_comp64.c
1865
if (bpf_pseudo_func(insn)) {
arch/riscv/net/bpf_jit_comp64.c
1901
sign_ext = BPF_MODE(insn->code) == BPF_MEMSX ||
arch/riscv/net/bpf_jit_comp64.c
1902
BPF_MODE(insn->code) == BPF_PROBE_MEMSX;
arch/riscv/net/bpf_jit_comp64.c
1904
if (BPF_MODE(insn->code) == BPF_PROBE_MEM32) {
arch/riscv/net/bpf_jit_comp64.c
1911
ret = add_exception_handler(insn, rd, ctx);
arch/riscv/net/bpf_jit_comp64.c
1915
if (BPF_SIZE(code) != BPF_DW && insn_is_zext(&insn[1]))
arch/riscv/net/bpf_jit_comp64.c
1934
if (BPF_MODE(insn->code) == BPF_PROBE_MEM32) {
arch/riscv/net/bpf_jit_comp64.c
1941
ret = add_exception_handler(insn, REG_DONT_CLEAR_MARKER, ctx);
arch/riscv/net/bpf_jit_comp64.c
1956
if (BPF_MODE(insn->code) == BPF_PROBE_MEM32) {
arch/riscv/net/bpf_jit_comp64.c
1963
ret = add_exception_handler(insn, REG_DONT_CLEAR_MARKER, ctx);
arch/riscv/net/bpf_jit_comp64.c
1977
if (bpf_atomic_is_load_store(insn))
arch/riscv/net/bpf_jit_comp64.c
1978
ret = emit_atomic_ld_st(rd, rs, insn, ctx);
arch/riscv/net/bpf_jit_comp64.c
1980
ret = emit_atomic_rmw(rd, rs, insn, ctx);
arch/riscv/net/bpf_jit_comp64.c
1982
ret = ret ?: add_exception_handler(insn, REG_DONT_CLEAR_MARKER, ctx);
arch/riscv/net/bpf_jit_comp64.c
2113
bool bpf_jit_supports_insn(struct bpf_insn *insn, bool in_arena)
arch/riscv/net/bpf_jit_comp64.c
2116
switch (insn->code) {
arch/riscv/net/bpf_jit_comp64.c
2119
if (insn->imm == BPF_CMPXCHG)
arch/riscv/net/bpf_jit_comp64.c
355
static int emit_bpf_tail_call(int insn, struct rv_jit_context *ctx)
arch/riscv/net/bpf_jit_comp64.c
367
tc_ninsn = insn ? ctx->offset[insn] - ctx->offset[insn - 1] :
arch/riscv/net/bpf_jit_comp64.c
372
if (is_12b_check(off, insn))
arch/riscv/net/bpf_jit_comp64.c
391
if (is_12b_check(off, insn))
arch/riscv/net/bpf_jit_comp64.c
399
if (is_12b_check(off, insn))
arch/riscv/net/bpf_jit_comp64.c
406
static void init_regs(u8 *rd, u8 *rs, const struct bpf_insn *insn,
arch/riscv/net/bpf_jit_comp64.c
409
u8 code = insn->code;
arch/riscv/net/bpf_jit_comp64.c
418
*rd = bpf_to_rv_reg(insn->dst_reg, ctx);
arch/riscv/net/bpf_jit_comp64.c
424
*rs = bpf_to_rv_reg(insn->src_reg, ctx);
arch/riscv/net/bpf_jit_comp64.c
564
static int emit_atomic_ld_st(u8 rd, u8 rs, const struct bpf_insn *insn,
arch/riscv/net/bpf_jit_comp64.c
567
u8 code = insn->code;
arch/riscv/net/bpf_jit_comp64.c
568
s32 imm = insn->imm;
arch/riscv/net/bpf_jit_comp64.c
569
s16 off = insn->off;
arch/riscv/net/bpf_jit_comp64.c
585
if (BPF_SIZE(code) != BPF_DW && insn_is_zext(&insn[1]))
arch/riscv/net/bpf_jit_comp64.c
606
static int emit_atomic_rmw(u8 rd, u8 rs, const struct bpf_insn *insn,
arch/riscv/net/bpf_jit_comp64.c
609
u8 code = insn->code;
arch/riscv/net/bpf_jit_comp64.c
610
s16 off = insn->off;
arch/riscv/net/bpf_jit_comp64.c
611
s32 imm = insn->imm;
arch/riscv/net/bpf_jit_comp64.c
765
static int add_exception_handler(const struct bpf_insn *insn, int dst_reg,
arch/riscv/net/bpf_jit_comp64.c
777
if (BPF_MODE(insn->code) != BPF_PROBE_MEM &&
arch/riscv/net/bpf_jit_comp64.c
778
BPF_MODE(insn->code) != BPF_PROBE_MEMSX &&
arch/riscv/net/bpf_jit_comp64.c
779
BPF_MODE(insn->code) != BPF_PROBE_MEM32 &&
arch/riscv/net/bpf_jit_comp64.c
780
BPF_MODE(insn->code) != BPF_PROBE_ATOMIC)
arch/riscv/net/bpf_jit_comp64.c
798
ins_offset = pc - (long)&ex->insn;
arch/riscv/net/bpf_jit_comp64.c
825
ex->insn = ins_offset;
arch/riscv/net/bpf_jit_comp64.c
984
u32 insn = rv_beq(RV_REG_A0, RV_REG_ZERO, offset >> 1);
arch/riscv/net/bpf_jit_comp64.c
985
*(u32 *)(ctx->insns + branch_off) = insn;
arch/riscv/net/bpf_jit_core.c
25
const struct bpf_insn *insn = &prog->insnsi[i];
arch/riscv/net/bpf_jit_core.c
28
ret = bpf_jit_emit_insn(insn, ctx, extra_pass);
arch/s390/boot/pgm_check.c
40
return (unsigned long)&x->insn + x->insn;
arch/s390/include/asm/cpu_mf-insn.h
17
.insn rsy,0xeb0000000017,\r1,\m3 & 0xf,\db2
arch/s390/include/asm/extable.h
27
int insn, fixup;
arch/s390/include/asm/futex.h
12
#define FUTEX_OP_FUNC(name, insn) \
arch/s390/include/asm/futex.h
24
"1:"insn \
arch/s390/include/asm/kprobes.h
28
int probe_is_prohibited_opcode(u16 *insn);
arch/s390/include/asm/kprobes.h
29
int probe_get_fixup_type(u16 *insn);
arch/s390/include/asm/kprobes.h
30
int probe_is_insn_relative_long(u16 *insn);
arch/s390/include/asm/kprobes.h
57
kprobe_opcode_t *insn;
arch/s390/include/asm/runtime-const.h
61
u32 insn = *(u32 *)where;
arch/s390/include/asm/runtime-const.h
63
insn &= 0xfffff000;
arch/s390/include/asm/runtime-const.h
64
insn |= (val & 63);
arch/s390/include/asm/runtime-const.h
65
s390_kernel_write(where, &insn, sizeof(insn));
arch/s390/include/asm/uprobes.h
23
uprobe_opcode_t insn[3];
arch/s390/include/uapi/asm/sie.h
230
#define INSN_DECODE_IPA0(ipa0, insn, rshift, mask) \
arch/s390/include/uapi/asm/sie.h
231
(insn >> 56) == (ipa0) ? \
arch/s390/include/uapi/asm/sie.h
232
((ipa0 << 8) | ((insn >> rshift) & mask)) :
arch/s390/include/uapi/asm/sie.h
234
#define INSN_DECODE(insn) (insn >> 56)
arch/s390/include/uapi/asm/sie.h
241
#define icpt_insn_decoder(insn) ( \
arch/s390/include/uapi/asm/sie.h
242
INSN_DECODE_IPA0(0x01, insn, 48, 0xff) \
arch/s390/include/uapi/asm/sie.h
243
INSN_DECODE_IPA0(0xaa, insn, 48, 0x0f) \
arch/s390/include/uapi/asm/sie.h
244
INSN_DECODE_IPA0(0xb2, insn, 48, 0xff) \
arch/s390/include/uapi/asm/sie.h
245
INSN_DECODE_IPA0(0xb9, insn, 48, 0xff) \
arch/s390/include/uapi/asm/sie.h
246
INSN_DECODE_IPA0(0xe3, insn, 48, 0xff) \
arch/s390/include/uapi/asm/sie.h
247
INSN_DECODE_IPA0(0xe5, insn, 48, 0xff) \
arch/s390/include/uapi/asm/sie.h
248
INSN_DECODE_IPA0(0xeb, insn, 16, 0xff) \
arch/s390/include/uapi/asm/sie.h
249
INSN_DECODE_IPA0(0xc8, insn, 48, 0x0f) \
arch/s390/include/uapi/asm/sie.h
250
INSN_DECODE(insn))
arch/s390/kernel/dis.c
401
struct s390_insn *insn;
arch/s390/kernel/dis.c
418
insn = &opcode[entry->offset];
arch/s390/kernel/dis.c
420
if (insn->opfrag == opfrag)
arch/s390/kernel/dis.c
421
return insn;
arch/s390/kernel/dis.c
422
insn++;
arch/s390/kernel/dis.c
429
struct s390_insn *insn;
arch/s390/kernel/dis.c
438
insn = find_insn(code);
arch/s390/kernel/dis.c
439
if (insn) {
arch/s390/kernel/dis.c
440
if (insn->zero == 0)
arch/s390/kernel/dis.c
442
long_insn_name[insn->offset]);
arch/s390/kernel/dis.c
444
ptr += sprintf(ptr, "%.5s\t", insn->name);
arch/s390/kernel/dis.c
447
for (ops = formats[insn->format], i = 0;
arch/s390/kernel/ftrace.c
122
insn = (struct ftrace_insn *)rec->ip;
arch/s390/kernel/ftrace.c
123
s390_kernel_write(&insn->disp, &disp, sizeof(disp));
arch/s390/kernel/ftrace.c
131
struct ftrace_insn insn;
arch/s390/kernel/ftrace.c
135
if (copy_from_kernel_nofault(&insn, (void *)rec->ip, sizeof(insn)))
arch/s390/kernel/ftrace.c
137
disp = (s64)insn.disp * 2;
arch/s390/kernel/ftrace.c
333
p->ainsn.insn = NULL;
arch/s390/kernel/ftrace.c
85
struct ftrace_insn *insn;
arch/s390/kernel/jump_label.c
19
static void jump_label_make_nop(struct jump_entry *entry, struct insn *insn)
arch/s390/kernel/jump_label.c
22
insn->opcode = 0xc004;
arch/s390/kernel/jump_label.c
23
insn->offset = (jump_entry_target(entry) - jump_entry_code(entry)) >> 1;
arch/s390/kernel/jump_label.c
26
static void jump_label_make_branch(struct jump_entry *entry, struct insn *insn)
arch/s390/kernel/jump_label.c
29
insn->opcode = 0xc0f4;
arch/s390/kernel/jump_label.c
30
insn->offset = (jump_entry_target(entry) - jump_entry_code(entry)) >> 1;
arch/s390/kernel/jump_label.c
33
static void jump_label_bug(struct jump_entry *entry, struct insn *expected,
arch/s390/kernel/jump_label.c
34
struct insn *new)
arch/s390/kernel/jump_label.c
51
struct insn old, new;
arch/s390/kernel/kprobes.c
114
insn = kp->opcode;
arch/s390/kernel/kprobes.c
116
addr += insn_length(insn >> 8);
arch/s390/kernel/kprobes.c
128
p->ainsn.insn = get_insn_slot();
arch/s390/kernel/kprobes.c
129
if (!p->ainsn.insn)
arch/s390/kernel/kprobes.c
181
if (!p->ainsn.insn)
arch/s390/kernel/kprobes.c
183
free_insn_slot(p->ainsn.insn, 0);
arch/s390/kernel/kprobes.c
184
p->ainsn.insn = NULL;
arch/s390/kernel/kprobes.c
324
enable_singlestep(kcb, regs, (unsigned long) p->ainsn.insn);
arch/s390/kernel/kprobes.c
349
int fixup = probe_get_fixup_type(p->ainsn.insn);
arch/s390/kernel/kprobes.c
352
ip += (unsigned long) p->addr - (unsigned long) p->ainsn.insn;
arch/s390/kernel/kprobes.c
355
int ilen = insn_length(p->ainsn.insn[0] >> 8);
arch/s390/kernel/kprobes.c
356
if (ip - (unsigned long) p->ainsn.insn == ilen)
arch/s390/kernel/kprobes.c
361
int reg = (p->ainsn.insn[0] & 0xf0) >> 4;
arch/s390/kernel/kprobes.c
363
(unsigned long) p->ainsn.insn;
arch/s390/kernel/kprobes.c
49
kprobe_opcode_t insn[MAX_INSN_SIZE];
arch/s390/kernel/kprobes.c
55
memcpy(&insn, p->addr, len);
arch/s390/kernel/kprobes.c
56
p->opcode = insn[0];
arch/s390/kernel/kprobes.c
57
if (probe_is_insn_relative_long(&insn[0])) {
arch/s390/kernel/kprobes.c
65
disp = *(s32 *)&insn[1];
arch/s390/kernel/kprobes.c
67
new_addr = (u64)(unsigned long)p->ainsn.insn;
arch/s390/kernel/kprobes.c
69
*(s32 *)&insn[1] = new_disp;
arch/s390/kernel/kprobes.c
71
s390_kernel_write(p->ainsn.insn, &insn, len);
arch/s390/kernel/kprobes.c
79
kprobe_opcode_t insn;
arch/s390/kernel/kprobes.c
91
if (copy_from_kernel_nofault(&insn, (void *)addr, sizeof(insn)))
arch/s390/kernel/kprobes.c
94
if (insn >> 8 == 0) {
arch/s390/kernel/kprobes.c
95
if (insn != BREAKPOINT_INSTRUCTION) {
arch/s390/kernel/module.c
334
unsigned char insn[PLT_ENTRY_SIZE];
arch/s390/kernel/module.c
340
*(int *)insn = 0x0d10e310; /* basr 1,0 */
arch/s390/kernel/module.c
341
*(int *)&insn[4] = 0x100c0004; /* lg 1,12(1) */
arch/s390/kernel/module.c
348
*(short *)&insn[8] = 0xc0f4;
arch/s390/kernel/module.c
349
*(int *)&insn[10] = (jump_r1 - (ip + 8)) / 2;
arch/s390/kernel/module.c
351
*(int *)&insn[8] = 0x07f10000; /* br %r1 */
arch/s390/kernel/module.c
353
*(long *)&insn[14] = val;
arch/s390/kernel/module.c
355
write(ip, insn, sizeof(insn));
arch/s390/kernel/stackprotector.c
100
if (insn->opc1 == 0xc0 && insn->opc2 == 0x0)
arch/s390/kernel/stackprotector.c
103
if (insn->opc1 == 0xc4 && insn->opc2 == 0x8)
arch/s390/kernel/stackprotector.c
105
insn_ril_to_string(istr, insn);
arch/s390/kernel/stackprotector.c
106
vaddress = insn_to_vaddress(insn);
arch/s390/kernel/stackprotector.c
108
offset = (unsigned long)insn - kernel_start + TEXT_OFFSET;
arch/s390/kernel/stackprotector.c
120
struct insn_ril *insn, new;
arch/s390/kernel/stackprotector.c
133
insn = vaddress_to_insn(*loc);
arch/s390/kernel/stackprotector.c
134
rc = stack_protector_verify(insn, kernel_start);
arch/s390/kernel/stackprotector.c
137
new = *insn;
arch/s390/kernel/stackprotector.c
142
stack_protector_dump(insn, &new);
arch/s390/kernel/stackprotector.c
143
s390_kernel_write(insn, &new, sizeof(*insn));
arch/s390/kernel/stackprotector.c
63
static unsigned long insn_to_vaddress(struct insn_ril *insn)
arch/s390/kernel/stackprotector.c
66
return (unsigned long)__kernel_va(insn);
arch/s390/kernel/stackprotector.c
68
return (unsigned long)insn;
arch/s390/kernel/stackprotector.c
74
static void insn_ril_to_string(char *str, struct insn_ril *insn)
arch/s390/kernel/stackprotector.c
76
u8 *ptr = (u8 *)insn;
arch/s390/kernel/stackprotector.c
79
for (i = 0; i < sizeof(*insn); i++)
arch/s390/kernel/stackprotector.c
94
static int stack_protector_verify(struct insn_ril *insn, unsigned long kernel_start)
arch/s390/kernel/uprobes.c
24
return probe_is_prohibited_opcode(auprobe->insn);
arch/s390/kernel/uprobes.c
260
struct insn_ril *insn;
arch/s390/kernel/uprobes.c
265
insn = (struct insn_ril *) &auprobe->insn;
arch/s390/kernel/uprobes.c
266
rx = (union split_register *) &regs->gprs[insn->reg];
arch/s390/kernel/uprobes.c
267
uptr = (void *)(regs->psw.addr + (insn->disp * 2));
arch/s390/kernel/uprobes.c
268
ilen = insn_length(insn->opc0);
arch/s390/kernel/uprobes.c
270
switch (insn->opc0) {
arch/s390/kernel/uprobes.c
272
switch (insn->opc1) {
arch/s390/kernel/uprobes.c
279
switch (insn->opc1) {
arch/s390/kernel/uprobes.c
316
switch (insn->opc1) {
arch/s390/kernel/uprobes.c
375
if (probe_is_insn_relative_long(auprobe->insn)) {
arch/s390/kernel/uprobes.c
78
int fixup = probe_get_fixup_type(auprobe->insn);
arch/s390/kernel/uprobes.c
89
int reg = (auprobe->insn[0] & 0xf0) >> 4;
arch/s390/kernel/uprobes.c
94
int ilen = insn_length(auprobe->insn[0] >> 8);
arch/s390/lib/probes.c
101
switch (insn[2] & 0xff) {
arch/s390/lib/probes.c
118
int probe_is_insn_relative_long(u16 *insn)
arch/s390/lib/probes.c
12
int probe_is_prohibited_opcode(u16 *insn)
arch/s390/lib/probes.c
122
switch (insn[0] >> 8) {
arch/s390/lib/probes.c
124
if ((insn[0] & 0x0f) == 0x00) /* larl */
arch/s390/lib/probes.c
128
switch (insn[0] & 0x0f) {
arch/s390/lib/probes.c
14
if (!is_known_insn((unsigned char *)insn))
arch/s390/lib/probes.c
144
switch (insn[0] & 0x0f) {
arch/s390/lib/probes.c
16
switch (insn[0] >> 8) {
arch/s390/lib/probes.c
25
switch (insn[0] & 0x0f) {
arch/s390/lib/probes.c
30
switch (insn[0]) {
arch/s390/lib/probes.c
46
int probe_get_fixup_type(u16 *insn)
arch/s390/lib/probes.c
51
switch (insn[0] >> 8) {
arch/s390/lib/probes.c
56
if ((insn[0] & 0x0f) == 0)
arch/s390/lib/probes.c
77
if ((insn[0] & 0xff) == 0xb2)
arch/s390/lib/probes.c
81
if ((insn[0] & 0x0f) == 0x05)
arch/s390/lib/probes.c
85
if ((insn[0] & 0x0f) == 0x05) /* brasl */
arch/s390/lib/probes.c
89
switch (insn[2] & 0xff) {
arch/s390/lib/probes.c
97
if ((insn[2] & 0xff) == 0x46)
arch/s390/mm/extable.c
107
insn = (struct insn_ssf *)regs->psw.addr;
arch/s390/mm/extable.c
109
uaddr = regs->gprs[insn->b2] + insn->d2;
arch/s390/mm/extable.c
111
uaddr = regs->gprs[insn->b1] + insn->d1;
arch/s390/mm/extable.c
113
if (regs->gprs[insn->r3] <= remainder)
arch/s390/mm/extable.c
115
regs->gprs[insn->r3] = remainder;
arch/s390/mm/extable.c
90
struct insn_ssf *insn;
arch/s390/net/bpf_jit_comp.c
1055
int rc_reg = BPF_OP(insn->code) == BPF_DIV ? REG_W1 : REG_W0;
arch/s390/net/bpf_jit_comp.c
1075
if (insn_is_zext(&insn[1]))
arch/s390/net/bpf_jit_comp.c
1082
int rc_reg = BPF_OP(insn->code) == BPF_DIV ? REG_W1 : REG_W0;
arch/s390/net/bpf_jit_comp.c
1107
int rc_reg = BPF_OP(insn->code) == BPF_DIV ? REG_W1 : REG_W0;
arch/s390/net/bpf_jit_comp.c
1110
if (BPF_OP(insn->code) == BPF_MOD)
arch/s390/net/bpf_jit_comp.c
1164
if (insn_is_zext(&insn[1]))
arch/s390/net/bpf_jit_comp.c
1171
int rc_reg = BPF_OP(insn->code) == BPF_DIV ? REG_W1 : REG_W0;
arch/s390/net/bpf_jit_comp.c
1174
if (BPF_OP(insn->code) == BPF_MOD)
arch/s390/net/bpf_jit_comp.c
1422
if (insn_is_zext(&insn[1]))
arch/s390/net/bpf_jit_comp.c
1444
if (insn_is_zext(&insn[1]))
arch/s390/net/bpf_jit_comp.c
1470
bpf_jit_probe_store_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1481
bpf_jit_probe_store_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1492
bpf_jit_probe_store_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1503
bpf_jit_probe_store_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1516
bpf_jit_probe_store_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1529
bpf_jit_probe_store_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1542
bpf_jit_probe_store_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1555
bpf_jit_probe_store_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1572
bool is32 = BPF_SIZE(insn->code) == BPF_W;
arch/s390/net/bpf_jit_comp.c
1583
switch (insn->imm) {
arch/s390/net/bpf_jit_comp.c
1585
bpf_jit_probe_atomic_pre(jit, insn, &probe); \
arch/s390/net/bpf_jit_comp.c
1588
(insn->imm & BPF_FETCH) ? src_reg : REG_W0, \
arch/s390/net/bpf_jit_comp.c
1593
if (insn->imm & BPF_FETCH) { \
arch/s390/net/bpf_jit_comp.c
1625
bpf_jit_probe_atomic_pre(jit, insn, &load_probe);
arch/s390/net/bpf_jit_comp.c
1652
if (is32 && insn_is_zext(&insn[1]))
arch/s390/net/bpf_jit_comp.c
1657
bpf_jit_probe_atomic_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1667
pr_err("Unknown atomic operation %02x\n", insn->imm);
arch/s390/net/bpf_jit_comp.c
1680
bpf_jit_probe_load_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1688
if (insn_is_zext(&insn[1]))
arch/s390/net/bpf_jit_comp.c
1693
bpf_jit_probe_load_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1704
bpf_jit_probe_load_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1712
if (insn_is_zext(&insn[1]))
arch/s390/net/bpf_jit_comp.c
1717
bpf_jit_probe_load_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1728
bpf_jit_probe_load_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1736
if (insn_is_zext(&insn[1]))
arch/s390/net/bpf_jit_comp.c
1741
bpf_jit_probe_load_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1752
bpf_jit_probe_load_pre(jit, insn, &probe);
arch/s390/net/bpf_jit_comp.c
1771
ret = bpf_jit_get_func_addr(fp, insn, extra_pass,
arch/s390/net/bpf_jit_comp.c
1783
if (insn->src_reg == BPF_PSEUDO_CALL)
arch/s390/net/bpf_jit_comp.c
1795
if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL) {
arch/s390/net/bpf_jit_comp.c
1796
m = bpf_jit_find_kfunc_model(fp, insn);
arch/s390/net/bpf_jit_comp.c
1829
if (insn->src_reg == BPF_PSEUDO_CALL)
arch/s390/net/bpf_jit_comp.c
2011
if (BPF_CLASS(insn->code) == BPF_JMP32) {
arch/s390/net/bpf_jit_comp.c
2067
bool is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32;
arch/s390/net/bpf_jit_comp.c
2075
is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32;
arch/s390/net/bpf_jit_comp.c
2096
is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32;
arch/s390/net/bpf_jit_comp.c
2114
is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32;
arch/s390/net/bpf_jit_comp.c
2147
pr_err("Unknown opcode %02x\n", insn->code);
arch/s390/net/bpf_jit_comp.c
2261
struct bpf_insn *insn;
arch/s390/net/bpf_jit_comp.c
2267
insn = &fp->insnsi[i];
arch/s390/net/bpf_jit_comp.c
2269
if (BPF_CLASS(insn->code) == BPF_STX &&
arch/s390/net/bpf_jit_comp.c
2270
BPF_MODE(insn->code) == BPF_PROBE_ATOMIC &&
arch/s390/net/bpf_jit_comp.c
2271
(BPF_SIZE(insn->code) == BPF_DW ||
arch/s390/net/bpf_jit_comp.c
2272
BPF_SIZE(insn->code) == BPF_W) &&
arch/s390/net/bpf_jit_comp.c
2273
insn->imm == BPF_XCHG)
arch/s390/net/bpf_jit_comp.c
2423
} __packed insn;
arch/s390/net/bpf_jit_comp.c
2428
err = copy_from_kernel_nofault(&insn, ip, sizeof(insn));
arch/s390/net/bpf_jit_comp.c
2431
if (insn.opc != (0xc004 | (old_addr ? 0xf0 : 0)))
arch/s390/net/bpf_jit_comp.c
2435
insn.disp == ((char *)new_addr - (char *)ip) >> 1) {
arch/s390/net/bpf_jit_comp.c
2442
plt = ip + (insn.disp << 1);
arch/s390/net/bpf_jit_comp.c
2458
insn.opc = 0xc004 | (new_addr ? 0xf0 : 0);
arch/s390/net/bpf_jit_comp.c
2459
s390_kernel_write((char *)ip + 1, (char *)&insn.opc + 1, 1);
arch/s390/net/bpf_jit_comp.c
2959
bool bpf_jit_supports_insn(struct bpf_insn *insn, bool in_arena)
arch/s390/net/bpf_jit_comp.c
2963
switch (insn->code) {
arch/s390/net/bpf_jit_comp.c
2968
if (bpf_atomic_is_load_store(insn))
arch/s390/net/bpf_jit_comp.c
740
static void bpf_jit_probe_load_pre(struct bpf_jit *jit, struct bpf_insn *insn,
arch/s390/net/bpf_jit_comp.c
743
if (BPF_MODE(insn->code) != BPF_PROBE_MEM &&
arch/s390/net/bpf_jit_comp.c
744
BPF_MODE(insn->code) != BPF_PROBE_MEMSX &&
arch/s390/net/bpf_jit_comp.c
745
BPF_MODE(insn->code) != BPF_PROBE_MEM32)
arch/s390/net/bpf_jit_comp.c
748
if (BPF_MODE(insn->code) == BPF_PROBE_MEM32) {
arch/s390/net/bpf_jit_comp.c
754
probe->reg = reg2hex[insn->dst_reg];
arch/s390/net/bpf_jit_comp.c
757
static void bpf_jit_probe_store_pre(struct bpf_jit *jit, struct bpf_insn *insn,
arch/s390/net/bpf_jit_comp.c
760
if (BPF_MODE(insn->code) != BPF_PROBE_MEM32)
arch/s390/net/bpf_jit_comp.c
770
struct bpf_insn *insn,
arch/s390/net/bpf_jit_comp.c
773
if (BPF_MODE(insn->code) != BPF_PROBE_ATOMIC)
arch/s390/net/bpf_jit_comp.c
779
EMIT4(0xb9080000, REG_W1, insn->dst_reg);
arch/s390/net/bpf_jit_comp.c
790
u8 *insn;
arch/s390/net/bpf_jit_comp.c
799
insn = jit->prg_buf + probe->prg;
arch/s390/net/bpf_jit_comp.c
800
if (WARN_ON_ONCE(probe->prg + insn_length(*insn) != probe->nop_prg))
arch/s390/net/bpf_jit_comp.c
810
delta = jit->prg_buf + prg - (u8 *)&ex->insn;
arch/s390/net/bpf_jit_comp.c
814
ex->insn = delta;
arch/s390/net/bpf_jit_comp.c
869
struct bpf_insn *insn = &fp->insnsi[i];
arch/s390/net/bpf_jit_comp.c
870
s32 branch_oc_off = insn->off;
arch/s390/net/bpf_jit_comp.c
871
u32 dst_reg = insn->dst_reg;
arch/s390/net/bpf_jit_comp.c
872
u32 src_reg = insn->src_reg;
arch/s390/net/bpf_jit_comp.c
876
s32 imm = insn->imm;
arch/s390/net/bpf_jit_comp.c
877
s16 off = insn->off;
arch/s390/net/bpf_jit_comp.c
883
switch (insn->code) {
arch/s390/net/bpf_jit_comp.c
888
switch (insn->off) {
arch/s390/net/bpf_jit_comp.c
892
if (insn_is_zext(&insn[1]))
arch/s390/net/bpf_jit_comp.c
910
if (insn_is_cast_user(insn)) {
arch/s390/net/bpf_jit_comp.c
926
switch (insn->off) {
arch/s390/net/bpf_jit_comp.c
948
if (insn_is_zext(&insn[1]))
arch/s390/net/bpf_jit_comp.c
963
imm64 = (u64)(u32) insn[0].imm | ((u64)(u32) insn[1].imm) << 32;
arch/s390/pci/pci_insn.c
23
u8 insn;
arch/s390/pci/pci_insn.c
38
static inline void zpci_err_insn_req(int lvl, u8 insn, u8 cc, u8 status,
arch/s390/pci/pci_insn.c
42
.insn = insn, .cc = cc, .status = status,
arch/s390/pci/pci_insn.c
48
static inline void zpci_err_insn_addr(int lvl, u8 insn, u8 cc, u8 status,
arch/s390/pci/pci_insn.c
52
.insn = insn, .cc = cc, .status = status,
arch/s390/tools/gen_opcode_table.c
154
struct insn insn;
arch/s390/tools/gen_opcode_table.c
158
rc = scanf("%s %s %s", insn.opcode, insn.name, insn.format);
arch/s390/tools/gen_opcode_table.c
163
insn.type = insn_format_to_type(insn.format);
arch/s390/tools/gen_opcode_table.c
164
insn.name_len = strlen(insn.name);
arch/s390/tools/gen_opcode_table.c
165
for (i = 0; i <= insn.name_len; i++)
arch/s390/tools/gen_opcode_table.c
166
insn.upper[i] = toupper((unsigned char)insn.name[i]);
arch/s390/tools/gen_opcode_table.c
168
desc->insn = realloc(desc->insn, desc->nr * sizeof(*desc->insn));
arch/s390/tools/gen_opcode_table.c
169
if (!desc->insn)
arch/s390/tools/gen_opcode_table.c
171
desc->insn[desc->nr - 1] = insn;
arch/s390/tools/gen_opcode_table.c
177
return strcmp(((struct insn *)a)->format, ((struct insn *)b)->format);
arch/s390/tools/gen_opcode_table.c
185
qsort(desc->insn, desc->nr, sizeof(*desc->insn), cmpformat);
arch/s390/tools/gen_opcode_table.c
190
if (!strcmp(format, desc->insn[i].format))
arch/s390/tools/gen_opcode_table.c
193
format = desc->insn[i].format;
arch/s390/tools/gen_opcode_table.c
201
return strcmp(((struct insn *)a)->name, ((struct insn *)b)->name);
arch/s390/tools/gen_opcode_table.c
217
struct insn *insn;
arch/s390/tools/gen_opcode_table.c
220
qsort(desc->insn, desc->nr, sizeof(*desc->insn), cmp_long_insn);
arch/s390/tools/gen_opcode_table.c
224
insn = &desc->insn[i];
arch/s390/tools/gen_opcode_table.c
225
if (insn->name_len < 6)
arch/s390/tools/gen_opcode_table.c
227
printf("\tLONG_INSN_%s,\n", insn->upper);
arch/s390/tools/gen_opcode_table.c
234
insn = &desc->insn[i];
arch/s390/tools/gen_opcode_table.c
235
if (insn->name_len < 6)
arch/s390/tools/gen_opcode_table.c
237
printf("\t[LONG_INSN_%s] = ", insn->upper);
arch/s390/tools/gen_opcode_table.c
238
print_insn_name(insn->name);
arch/s390/tools/gen_opcode_table.c
244
static void print_opcode(struct insn *insn, int nr)
arch/s390/tools/gen_opcode_table.c
248
opcode = insn->opcode;
arch/s390/tools/gen_opcode_table.c
249
if (insn->type->byte != 0)
arch/s390/tools/gen_opcode_table.c
251
printf("\t[%4d] = { .opfrag = 0x%s, .format = INSTR_%s, ", nr, opcode, insn->format);
arch/s390/tools/gen_opcode_table.c
252
if (insn->name_len < 6) {
arch/s390/tools/gen_opcode_table.c
254
print_insn_name(insn->name);
arch/s390/tools/gen_opcode_table.c
256
printf(".offset = LONG_INSN_%s", insn->upper);
arch/s390/tools/gen_opcode_table.c
261
static void add_to_group(struct gen_opcode *desc, struct insn *insn, int offset)
arch/s390/tools/gen_opcode_table.c
266
if (group && (!strncmp(group->opcode, insn->opcode, 2) || group->type->byte == 0)) {
arch/s390/tools/gen_opcode_table.c
275
memcpy(group->opcode, insn->opcode, 2);
arch/s390/tools/gen_opcode_table.c
276
group->type = insn->type;
arch/s390/tools/gen_opcode_table.c
283
return strcmp(((struct insn *)a)->opcode, ((struct insn *)b)->opcode);
arch/s390/tools/gen_opcode_table.c
289
struct insn *insn;
arch/s390/tools/gen_opcode_table.c
292
qsort(desc->insn, desc->nr, sizeof(*desc->insn), cmpopcode);
arch/s390/tools/gen_opcode_table.c
296
insn = &desc->insn[i];
arch/s390/tools/gen_opcode_table.c
297
if (insn->type->byte == 0)
arch/s390/tools/gen_opcode_table.c
299
add_to_group(desc, insn, offset);
arch/s390/tools/gen_opcode_table.c
300
if (strncmp(opcode, insn->opcode, 2)) {
arch/s390/tools/gen_opcode_table.c
301
memcpy(opcode, insn->opcode, 2);
arch/s390/tools/gen_opcode_table.c
304
print_opcode(insn, offset);
arch/s390/tools/gen_opcode_table.c
309
insn = &desc->insn[i];
arch/s390/tools/gen_opcode_table.c
310
if (insn->type->byte != 0)
arch/s390/tools/gen_opcode_table.c
312
add_to_group(desc, insn, offset);
arch/s390/tools/gen_opcode_table.c
313
print_opcode(insn, offset);
arch/s390/tools/gen_opcode_table.c
44
struct insn *insn;
arch/sh/include/asm/dwarf.h
353
static inline unsigned int DW_CFA_opcode(unsigned long insn)
arch/sh/include/asm/dwarf.h
355
return (insn & 0xc0);
arch/sh/include/asm/dwarf.h
358
static inline unsigned int DW_CFA_operand(unsigned long insn)
arch/sh/include/asm/dwarf.h
360
return (insn & 0x3f);
arch/sh/include/asm/kprobes.h
34
kprobe_opcode_t insn[MAX_INSN_SIZE];
arch/sh/include/asm/processor.h
164
extern unsigned int instruction_size(unsigned int insn);
arch/sh/include/asm/processor.h
166
#define instruction_size(insn) (2)
arch/sh/include/asm/uaccess_32.h
144
#define __put_user_asm(x, addr, err, insn) \
arch/sh/include/asm/uaccess_32.h
148
"mov." insn " %1, %2\n\t" \
arch/sh/include/asm/uaccess_32.h
168
#define __put_user_asm(x, addr, err, insn) \
arch/sh/include/asm/uaccess_32.h
171
"mov." insn " %0, %1\n\t" \
arch/sh/include/asm/uaccess_32.h
39
#define __get_user_asm(x, addr, err, insn) \
arch/sh/include/asm/uaccess_32.h
43
"mov." insn " %2, %1\n\t" \
arch/sh/include/asm/uaccess_32.h
60
#define __get_user_asm(x, addr, err, insn) \
arch/sh/include/asm/uaccess_32.h
63
"mov." insn " %1, %0\n\t" \
arch/sh/kernel/cpu/sh2a/fpu.c
408
unsigned short insn = *(unsigned short *) regs->pc;
arch/sh/kernel/cpu/sh2a/fpu.c
412
(insn >> 12) & 0xf,
arch/sh/kernel/cpu/sh2a/fpu.c
413
(insn >> 8) & 0xf,
arch/sh/kernel/cpu/sh2a/fpu.c
414
(insn >> 4) & 0xf,
arch/sh/kernel/cpu/sh2a/fpu.c
415
insn & 0xf};
arch/sh/kernel/cpu/sh2a/fpu.c
421
nextpc = regs->pc + 4 + ((short) ((insn & 0xfff) << 4) >> 3);
arch/sh/kernel/cpu/sh2a/fpu.c
425
nextpc = regs->pc + 4 + ((char) (insn & 0xff) << 1);
arch/sh/kernel/cpu/sh2a/fpu.c
433
nextpc = regs->pc + 4 + ((char) (insn & 0xff) << 1);
arch/sh/kernel/cpu/sh2a/fpu.c
443
} else if (insn == 0x000b) { /* rts */
arch/sh/kernel/cpu/sh2a/fpu.c
448
finsn = insn;
arch/sh/kernel/cpu/sh2a/opcode_helper.c
36
unsigned int instruction_size(unsigned int insn)
arch/sh/kernel/cpu/sh2a/opcode_helper.c
39
switch ((insn & 0xf00f)) {
arch/sh/kernel/cpu/sh2a/opcode_helper.c
47
switch ((insn & 0xf08f)) {
arch/sh/kernel/cpu/sh4/fpu.c
176
unsigned short insn = *(unsigned short *)regs->pc;
arch/sh/kernel/cpu/sh4/fpu.c
180
(insn >> 12) & 0xf,
arch/sh/kernel/cpu/sh4/fpu.c
181
(insn >> 8) & 0xf,
arch/sh/kernel/cpu/sh4/fpu.c
182
(insn >> 4) & 0xf,
arch/sh/kernel/cpu/sh4/fpu.c
183
insn & 0xf
arch/sh/kernel/cpu/sh4/fpu.c
191
nextpc = regs->pc + 4 + ((short)((insn & 0xfff) << 4) >> 3);
arch/sh/kernel/cpu/sh4/fpu.c
196
nextpc = regs->pc + 4 + ((char)(insn & 0xff) << 1);
arch/sh/kernel/cpu/sh4/fpu.c
205
nextpc = regs->pc + 4 + ((char)(insn & 0xff) << 1);
arch/sh/kernel/cpu/sh4/fpu.c
217
} else if (insn == 0x000b) {
arch/sh/kernel/cpu/sh4/fpu.c
222
nextpc = regs->pc + instruction_size(insn);
arch/sh/kernel/cpu/sh4/fpu.c
223
finsn = insn;
arch/sh/kernel/disassemble.c
291
static void print_sh_insn(u32 memaddr, u16 insn)
arch/sh/kernel/disassemble.c
294
int nibs[4] = { (insn >> 12) & 0xf, (insn >> 8) & 0xf, (insn >> 4) & 0xf, insn & 0xf};
arch/sh/kernel/disassemble.c
558
unsigned short insn;
arch/sh/kernel/disassemble.c
560
if (__get_user(insn, pc + i)) {
arch/sh/kernel/disassemble.c
567
print_sh_insn((unsigned long)(pc + i), insn);
arch/sh/kernel/dwarf.c
403
unsigned char insn;
arch/sh/kernel/dwarf.c
411
insn = __raw_readb(current_insn++);
arch/sh/kernel/dwarf.c
417
switch (DW_CFA_opcode(insn)) {
arch/sh/kernel/dwarf.c
419
delta = DW_CFA_operand(insn);
arch/sh/kernel/dwarf.c
425
reg = DW_CFA_operand(insn);
arch/sh/kernel/dwarf.c
435
reg = DW_CFA_operand(insn);
arch/sh/kernel/dwarf.c
444
switch (insn) {
arch/sh/kernel/dwarf.c
543
pr_debug("unhandled DWARF instruction 0x%x\n", insn);
arch/sh/kernel/kprobes.c
229
*p->ainsn.insn == BREAKPOINT_INSTRUCTION) {
arch/sh/kernel/kprobes.c
47
memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
arch/sh/kernel/traps.c
165
insn_size_t insn = *(insn_size_t *)instruction_pointer(regs);
arch/sh/kernel/traps.c
166
if (insn == TRAPA_BUG_OPCODE)
arch/sh/mm/alignment.c
103
(void *)instruction_pointer(regs), insn);
arch/sh/mm/alignment.c
108
(void *)instruction_pointer(regs), insn);
arch/sh/mm/alignment.c
96
void unaligned_fixups_notify(struct task_struct *tsk, insn_size_t insn,
arch/sparc/include/asm/extable.h
18
unsigned int insn, fixup;
arch/sparc/include/asm/futex_64.h
12
" " insn "\n" \
arch/sparc/include/asm/futex_64.h
9
#define __futex_cas_op(insn, ret, oldval, uaddr, oparg) \
arch/sparc/include/asm/hugetlb.h
10
unsigned int insn;
arch/sparc/include/asm/kprobes.h
23
do { flushi(&(p)->ainsn.insn[0]); \
arch/sparc/include/asm/kprobes.h
24
flushi(&(p)->ainsn.insn[1]); \
arch/sparc/include/asm/kprobes.h
32
kprobe_opcode_t insn[MAX_INSN_SIZE];
arch/sparc/include/asm/processor_32.h
31
unsigned long insn;
arch/sparc/include/asm/setup.h
55
int handle_ldf_stq(u32 insn, struct pt_regs *regs);
arch/sparc/include/asm/setup.h
56
void handle_ld_nf(u32 insn, struct pt_regs *regs);
arch/sparc/include/asm/sigcontext.h
101
unsigned long insn;
arch/sparc/include/asm/trap_block.h
75
unsigned int insn;
arch/sparc/include/asm/tsb.h
73
unsigned int insn;
arch/sparc/include/asm/uaccess_64.h
249
unsigned int insn,
arch/sparc/include/asm/uprobes.h
27
u8 insn[MAX_UINSN_BYTES];
arch/sparc/kernel/jump_label.c
15
u32 *insn = (u32 *) (unsigned long) entry->code;
arch/sparc/kernel/jump_label.c
44
*insn = val;
arch/sparc/kernel/jump_label.c
45
flushi(insn);
arch/sparc/kernel/kernel.h
178
asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn);
arch/sparc/kernel/kernel.h
179
asmlinkage void user_unaligned_trap(struct pt_regs *regs, unsigned int insn);
arch/sparc/kernel/kernel.h
39
asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn);
arch/sparc/kernel/kernel.h
40
int handle_popc(u32 insn, struct pt_regs *regs);
arch/sparc/kernel/kprobes.c
111
regs->tpc = (unsigned long) &p->ainsn.insn[0];
arch/sparc/kernel/kprobes.c
112
regs->tnpc = (unsigned long) &p->ainsn.insn[1];
arch/sparc/kernel/kprobes.c
201
static unsigned long __kprobes relbranch_fixup(u32 insn, struct kprobe *p,
arch/sparc/kernel/kprobes.c
213
if ((insn & 0xc0000000) == 0x40000000 ||
arch/sparc/kernel/kprobes.c
214
(insn & 0xc1c00000) == 0x00400000 ||
arch/sparc/kernel/kprobes.c
215
(insn & 0xc1c00000) == 0x00800000) {
arch/sparc/kernel/kprobes.c
218
ainsn_addr = (unsigned long) &p->ainsn.insn[0];
arch/sparc/kernel/kprobes.c
236
static void __kprobes retpc_fixup(struct pt_regs *regs, u32 insn,
arch/sparc/kernel/kprobes.c
242
if ((insn & 0xc0000000) == 0x40000000) {
arch/sparc/kernel/kprobes.c
247
if ((insn & 0xc1f80000) == 0x81c00000) {
arch/sparc/kernel/kprobes.c
248
unsigned long rd = ((insn >> 25) & 0x1f);
arch/sparc/kernel/kprobes.c
280
u32 insn = p->ainsn.insn[0];
arch/sparc/kernel/kprobes.c
282
regs->tnpc = relbranch_fixup(insn, p, regs);
arch/sparc/kernel/kprobes.c
287
retpc_fixup(regs, insn, (unsigned long) p->addr);
arch/sparc/kernel/kprobes.c
55
p->ainsn.insn[0] = *p->addr;
arch/sparc/kernel/kprobes.c
56
flushi(&p->ainsn.insn[0]);
arch/sparc/kernel/kprobes.c
58
p->ainsn.insn[1] = BREAKPOINT_INSTRUCTION_2;
arch/sparc/kernel/kprobes.c
59
flushi(&p->ainsn.insn[1]);
arch/sparc/kernel/ptrace_32.c
356
unsigned long insn;
arch/sparc/kernel/ptrace_64.c
923
unsigned int insn;
arch/sparc/kernel/setup_32.c
230
unsigned int insn;
arch/sparc/kernel/setup_32.c
248
*(unsigned int *)(addr) = start->insn;
arch/sparc/kernel/setup_64.c
221
*(unsigned int *) (addr + 0) = start->insn;
arch/sparc/kernel/traps_64.c
1951
unsigned int insn;
arch/sparc/kernel/traps_64.c
1957
insn = *(unsigned int *) regs->tpc;
arch/sparc/kernel/traps_64.c
1959
addr = compute_effective_address(regs, insn, 0);
arch/sparc/kernel/traps_64.c
2141
unsigned int insn;
arch/sparc/kernel/traps_64.c
2143
if (!copy_from_user(&insn, (void __user *)regs->tpc, 4)) {
arch/sparc/kernel/traps_64.c
2144
return compute_effective_address(regs, insn,
arch/sparc/kernel/traps_64.c
2145
(insn >> 25) & 0x1f);
arch/sparc/kernel/traps_64.c
256
u32 insn;
arch/sparc/kernel/traps_64.c
2575
u32 insn;
arch/sparc/kernel/traps_64.c
258
if (get_user(insn, (u32 __user *)regs->tpc) == -EFAULT)
arch/sparc/kernel/traps_64.c
2585
if (get_user(insn, (u32 __user *) pc) != -EFAULT) {
arch/sparc/kernel/traps_64.c
2586
if ((insn & 0xc1ffc000) == 0x81700000) /* POPC */ {
arch/sparc/kernel/traps_64.c
2587
if (handle_popc(insn, regs))
arch/sparc/kernel/traps_64.c
2589
} else if ((insn & 0xc1580000) == 0xc1100000) /* LDQ/STQ */ {
arch/sparc/kernel/traps_64.c
2590
if (handle_ldf_stq(insn, regs))
arch/sparc/kernel/traps_64.c
2593
if ((insn & VIS_OPCODE_MASK) == VIS_OPCODE_VAL) {
arch/sparc/kernel/traps_64.c
2594
if (!vis_emul(regs, insn))
arch/sparc/kernel/traps_64.c
273
if ((insn & 0xc0800000) == 0xc0800000) { /* op=3, op3[4]=1 */
arch/sparc/kernel/traps_64.c
274
if (insn & 0x2000) /* immediate offset */
arch/sparc/kernel/traps_64.c
277
asi = (insn >> 5); /* immediate asi */
arch/sparc/kernel/traps_64.c
279
if (insn & 0x200000) /* op3[2], stores */
arch/sparc/kernel/traps_64.c
281
if (insn & 0x1000000) /* op3[5:4]=3 (fp) */
arch/sparc/kernel/traps_64.c
282
handle_ldf_stq(insn, regs);
arch/sparc/kernel/traps_64.c
284
handle_ld_nf(insn, regs);
arch/sparc/kernel/unaligned_32.c
137
unsigned int insn)
arch/sparc/kernel/unaligned_32.c
139
unsigned int rs1 = (insn >> 14) & 0x1f;
arch/sparc/kernel/unaligned_32.c
140
unsigned int rs2 = insn & 0x1f;
arch/sparc/kernel/unaligned_32.c
141
unsigned int rd = (insn >> 25) & 0x1f;
arch/sparc/kernel/unaligned_32.c
143
if(insn & 0x2000) {
arch/sparc/kernel/unaligned_32.c
145
return (fetch_reg(rs1, regs) + sign_extend_imm13(insn));
arch/sparc/kernel/unaligned_32.c
153
unsigned int insn)
arch/sparc/kernel/unaligned_32.c
155
unsigned int rs1 = (insn >> 14) & 0x1f;
arch/sparc/kernel/unaligned_32.c
156
unsigned int rs2 = insn & 0x1f;
arch/sparc/kernel/unaligned_32.c
157
unsigned int rd = (insn >> 25) & 0x1f;
arch/sparc/kernel/unaligned_32.c
159
if(insn & 0x2000) {
arch/sparc/kernel/unaligned_32.c
161
return (safe_fetch_reg(rs1, regs) + sign_extend_imm13(insn));
arch/sparc/kernel/unaligned_32.c
205
static inline int floating_point_load_or_store_p(unsigned int insn)
arch/sparc/kernel/unaligned_32.c
207
return (insn >> 24) & 1;
arch/sparc/kernel/unaligned_32.c
210
static inline int ok_for_kernel(unsigned int insn)
arch/sparc/kernel/unaligned_32.c
212
return !floating_point_load_or_store_p(insn);
arch/sparc/kernel/unaligned_32.c
215
static void kernel_mna_trap_fault(struct pt_regs *regs, unsigned int insn)
arch/sparc/kernel/unaligned_32.c
221
unsigned long address = compute_effective_address(regs, insn);
arch/sparc/kernel/unaligned_32.c
240
asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn)
arch/sparc/kernel/unaligned_32.c
242
enum direction dir = decode_direction(insn);
arch/sparc/kernel/unaligned_32.c
243
int size = decode_access_size(insn);
arch/sparc/kernel/unaligned_32.c
245
if(!ok_for_kernel(insn) || dir == both) {
arch/sparc/kernel/unaligned_32.c
250
unsigned long addr = compute_effective_address(regs, insn);
arch/sparc/kernel/unaligned_32.c
256
err = do_int_load(fetch_reg_addr(((insn>>25)&0x1f),
arch/sparc/kernel/unaligned_32.c
259
decode_signedness(insn));
arch/sparc/kernel/unaligned_32.c
263
err = do_int_store(((insn>>25)&0x1f), size,
arch/sparc/kernel/unaligned_32.c
271
kernel_mna_trap_fault(regs, insn);
arch/sparc/kernel/unaligned_32.c
277
asmlinkage void user_unaligned_trap(struct pt_regs *regs, unsigned int insn)
arch/sparc/kernel/unaligned_32.c
280
(void __user *)safe_compute_effective_address(regs, insn),
arch/sparc/kernel/unaligned_32.c
34
static inline enum direction decode_direction(unsigned int insn)
arch/sparc/kernel/unaligned_32.c
36
unsigned long tmp = (insn >> 21) & 1;
arch/sparc/kernel/unaligned_32.c
41
if(((insn>>19)&0x3f) == 15)
arch/sparc/kernel/unaligned_32.c
49
static inline int decode_access_size(unsigned int insn)
arch/sparc/kernel/unaligned_32.c
51
insn = (insn >> 19) & 3;
arch/sparc/kernel/unaligned_32.c
53
if(!insn)
arch/sparc/kernel/unaligned_32.c
55
else if(insn == 3)
arch/sparc/kernel/unaligned_32.c
57
else if(insn == 2)
arch/sparc/kernel/unaligned_32.c
60
printk("Impossible unaligned trap. insn=%08x\n", insn);
arch/sparc/kernel/unaligned_32.c
67
static inline int decode_signedness(unsigned int insn)
arch/sparc/kernel/unaligned_32.c
69
return (insn & 0x400000);
arch/sparc/kernel/unaligned_64.c
101
return (insn & 0x400000);
arch/sparc/kernel/unaligned_64.c
170
unsigned int insn, unsigned int rd)
arch/sparc/kernel/unaligned_64.c
173
unsigned int rs1 = (insn >> 14) & 0x1f;
arch/sparc/kernel/unaligned_64.c
174
unsigned int rs2 = insn & 0x1f;
arch/sparc/kernel/unaligned_64.c
177
if (insn & 0x2000) {
arch/sparc/kernel/unaligned_64.c
179
addr = (fetch_reg(rs1, regs) + sign_extend_imm13(insn));
arch/sparc/kernel/unaligned_64.c
249
static inline int floating_point_load_or_store_p(unsigned int insn)
arch/sparc/kernel/unaligned_64.c
251
return (insn >> 24) & 1;
arch/sparc/kernel/unaligned_64.c
254
static inline int ok_for_kernel(unsigned int insn)
arch/sparc/kernel/unaligned_64.c
256
return !floating_point_load_or_store_p(insn);
arch/sparc/kernel/unaligned_64.c
262
unsigned int insn = current_thread_info()->kern_una_insn;
arch/sparc/kernel/unaligned_64.c
269
address = compute_effective_address(regs, insn,
arch/sparc/kernel/unaligned_64.c
270
((insn >> 25) & 0x1f));
arch/sparc/kernel/unaligned_64.c
306
asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn)
arch/sparc/kernel/unaligned_64.c
308
enum direction dir = decode_direction(insn);
arch/sparc/kernel/unaligned_64.c
309
int size = decode_access_size(regs, insn);
arch/sparc/kernel/unaligned_64.c
313
current_thread_info()->kern_una_insn = insn;
arch/sparc/kernel/unaligned_64.c
315
orig_asi = asi = decode_asi(insn, regs);
arch/sparc/kernel/unaligned_64.c
327
if (!ok_for_kernel(insn) || dir == both) {
arch/sparc/kernel/unaligned_64.c
338
addr = compute_effective_address(regs, insn,
arch/sparc/kernel/unaligned_64.c
339
((insn >> 25) & 0x1f));
arch/sparc/kernel/unaligned_64.c
354
reg_addr = fetch_reg_addr(((insn>>25)&0x1f), regs);
arch/sparc/kernel/unaligned_64.c
357
decode_signedness(insn), asi);
arch/sparc/kernel/unaligned_64.c
380
err = do_int_store(((insn>>25)&0x1f), size,
arch/sparc/kernel/unaligned_64.c
396
int handle_popc(u32 insn, struct pt_regs *regs)
arch/sparc/kernel/unaligned_64.c
399
int ret, rd = ((insn >> 25) & 0x1f);
arch/sparc/kernel/unaligned_64.c
403
if (insn & 0x2000) {
arch/sparc/kernel/unaligned_64.c
405
value = sign_extend_imm13(insn);
arch/sparc/kernel/unaligned_64.c
407
maybe_flush_windows(0, insn & 0x1f, rd, from_kernel);
arch/sparc/kernel/unaligned_64.c
408
value = fetch_reg(insn & 0x1f, regs);
arch/sparc/kernel/unaligned_64.c
42
static inline enum direction decode_direction(unsigned int insn)
arch/sparc/kernel/unaligned_64.c
437
int handle_ldf_stq(u32 insn, struct pt_regs *regs)
arch/sparc/kernel/unaligned_64.c
439
unsigned long addr = compute_effective_address(regs, insn, 0);
arch/sparc/kernel/unaligned_64.c
44
unsigned long tmp = (insn >> 21) & 1;
arch/sparc/kernel/unaligned_64.c
442
int asi = decode_asi(insn, regs);
arch/sparc/kernel/unaligned_64.c
449
if (insn & 0x200000) {
arch/sparc/kernel/unaligned_64.c
453
freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20);
arch/sparc/kernel/unaligned_64.c
49
switch ((insn>>19)&0xf) {
arch/sparc/kernel/unaligned_64.c
514
switch (insn & 0x180000) {
arch/sparc/kernel/unaligned_64.c
520
freg = (insn >> 25) & 0x1f;
arch/sparc/kernel/unaligned_64.c
522
freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20);
arch/sparc/kernel/unaligned_64.c
570
void handle_ld_nf(u32 insn, struct pt_regs *regs)
arch/sparc/kernel/unaligned_64.c
572
int rd = ((insn >> 25) & 0x1f);
arch/sparc/kernel/unaligned_64.c
582
if ((insn & 0x780000) == 0x180000)
arch/sparc/kernel/unaligned_64.c
586
if ((insn & 0x780000) == 0x180000)
arch/sparc/kernel/unaligned_64.c
59
static inline int decode_access_size(struct pt_regs *regs, unsigned int insn)
arch/sparc/kernel/unaligned_64.c
590
if ((insn & 0x780000) == 0x180000)
arch/sparc/kernel/unaligned_64.c
601
u32 insn;
arch/sparc/kernel/unaligned_64.c
612
if (get_user(insn, (u32 __user *) pc) != -EFAULT) {
arch/sparc/kernel/unaligned_64.c
613
int asi = decode_asi(insn, regs);
arch/sparc/kernel/unaligned_64.c
63
tmp = ((insn >> 19) & 0xf);
arch/sparc/kernel/unaligned_64.c
630
freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20);
arch/sparc/kernel/unaligned_64.c
665
u32 insn;
arch/sparc/kernel/unaligned_64.c
676
if (get_user(insn, (u32 __user *) pc) != -EFAULT) {
arch/sparc/kernel/unaligned_64.c
677
int asi = decode_asi(insn, regs);
arch/sparc/kernel/unaligned_64.c
678
freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20);
arch/sparc/kernel/unaligned_64.c
74
printk("Impossible unaligned trap. insn=%08x\n", insn);
arch/sparc/kernel/unaligned_64.c
87
static inline int decode_asi(unsigned int insn, struct pt_regs *regs)
arch/sparc/kernel/unaligned_64.c
89
if (insn & 0x800000) {
arch/sparc/kernel/unaligned_64.c
90
if (insn & 0x2000)
arch/sparc/kernel/unaligned_64.c
93
return (unsigned char)(insn >> 5); /* imm_asi */
arch/sparc/kernel/unaligned_64.c
99
static inline int decode_signedness(unsigned int insn)
arch/sparc/kernel/uprobes.c
103
if ((insn & 0xc0000000) == 0x40000000 ||
arch/sparc/kernel/uprobes.c
104
(insn & 0xc1c00000) == 0x00400000 ||
arch/sparc/kernel/uprobes.c
105
(insn & 0xc1c00000) == 0x00800000) {
arch/sparc/kernel/uprobes.c
125
static int retpc_fixup(struct pt_regs *regs, u32 insn,
arch/sparc/kernel/uprobes.c
132
if ((insn & 0xc0000000) == 0x40000000)
arch/sparc/kernel/uprobes.c
136
if ((insn & 0xc1f80000) == 0x81c00000) {
arch/sparc/kernel/uprobes.c
137
unsigned long rd = ((insn >> 25) & 0x1f);
arch/sparc/kernel/uprobes.c
222
u32 insn = auprobe->ixol;
arch/sparc/kernel/uprobes.c
226
regs->tnpc = relbranch_fixup(insn, utask, regs);
arch/sparc/kernel/uprobes.c
228
rc = retpc_fixup(regs, insn, (unsigned long) utask->vaddr);
arch/sparc/kernel/uprobes.c
53
u32 insn = *(u32 *) src;
arch/sparc/kernel/uprobes.c
61
u32 op = (insn >> 30) & 0x3;
arch/sparc/kernel/uprobes.c
62
u32 op2 = (insn >> 22) & 0x7;
arch/sparc/kernel/uprobes.c
66
(insn & ANNUL_BIT) == ANNUL_BIT)
arch/sparc/kernel/uprobes.c
67
insn &= ~ANNUL_BIT;
arch/sparc/kernel/uprobes.c
69
copy_to_page(page, vaddr, &insn, len);
arch/sparc/kernel/uprobes.c
93
static unsigned long relbranch_fixup(u32 insn, struct uprobe_task *utask,
arch/sparc/kernel/visemul.c
294
static void edge(struct pt_regs *regs, unsigned int insn, unsigned int opf)
arch/sparc/kernel/visemul.c
299
maybe_flush_windows(RS1(insn), RS2(insn), RD(insn), 0);
arch/sparc/kernel/visemul.c
300
orig_rs1 = rs1 = fetch_reg(RS1(insn), regs);
arch/sparc/kernel/visemul.c
301
orig_rs2 = rs2 = fetch_reg(RS2(insn), regs);
arch/sparc/kernel/visemul.c
350
store_reg(regs, rd_val, RD(insn));
arch/sparc/kernel/visemul.c
372
static void array(struct pt_regs *regs, unsigned int insn, unsigned int opf)
arch/sparc/kernel/visemul.c
377
maybe_flush_windows(RS1(insn), RS2(insn), RD(insn), 0);
arch/sparc/kernel/visemul.c
378
rs1 = fetch_reg(RS1(insn), regs);
arch/sparc/kernel/visemul.c
379
rs2 = fetch_reg(RS2(insn), regs);
arch/sparc/kernel/visemul.c
403
store_reg(regs, rd_val, RD(insn));
arch/sparc/kernel/visemul.c
406
static void bmask(struct pt_regs *regs, unsigned int insn)
arch/sparc/kernel/visemul.c
410
maybe_flush_windows(RS1(insn), RS2(insn), RD(insn), 0);
arch/sparc/kernel/visemul.c
411
rs1 = fetch_reg(RS1(insn), regs);
arch/sparc/kernel/visemul.c
412
rs2 = fetch_reg(RS2(insn), regs);
arch/sparc/kernel/visemul.c
415
store_reg(regs, rd_val, RD(insn));
arch/sparc/kernel/visemul.c
422
static void bshuffle(struct pt_regs *regs, unsigned int insn)
arch/sparc/kernel/visemul.c
430
rs1 = fpd_regval(f, RS1(insn));
arch/sparc/kernel/visemul.c
431
rs2 = fpd_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
445
*fpd_regaddr(f, RD(insn)) = rd_val;
arch/sparc/kernel/visemul.c
448
static void pdist(struct pt_regs *regs, unsigned int insn)
arch/sparc/kernel/visemul.c
454
rs1 = fpd_regval(f, RS1(insn));
arch/sparc/kernel/visemul.c
455
rs2 = fpd_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
456
rd = fpd_regaddr(f, RD(insn));
arch/sparc/kernel/visemul.c
477
static void pformat(struct pt_regs *regs, unsigned int insn, unsigned int opf)
arch/sparc/kernel/visemul.c
488
rs2 = fpd_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
503
*fps_regaddr(f, RD(insn)) = rd_val;
arch/sparc/kernel/visemul.c
510
rs1 = fpd_regval(f, RS1(insn));
arch/sparc/kernel/visemul.c
511
rs2 = fpd_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
526
*fpd_regaddr(f, RD(insn)) = rd_val;
arch/sparc/kernel/visemul.c
533
rs2 = fpd_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
549
*fps_regaddr(f, RD(insn)) = rd_val;
arch/sparc/kernel/visemul.c
556
rs2 = fps_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
567
*fpd_regaddr(f, RD(insn)) = rd_val;
arch/sparc/kernel/visemul.c
572
rs1 = fps_regval(f, RS1(insn));
arch/sparc/kernel/visemul.c
573
rs2 = fps_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
583
*fpd_regaddr(f, RD(insn)) = rd_val;
arch/sparc/kernel/visemul.c
589
static void pmul(struct pt_regs *regs, unsigned int insn, unsigned int opf)
arch/sparc/kernel/visemul.c
598
rs1 = fps_regval(f, RS1(insn));
arch/sparc/kernel/visemul.c
599
rs2 = fpd_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
614
*fpd_regaddr(f, RD(insn)) = rd_val;
arch/sparc/kernel/visemul.c
623
rs1 = fps_regval(f, RS1(insn));
arch/sparc/kernel/visemul.c
624
rs2 = fps_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
639
*fpd_regaddr(f, RD(insn)) = rd_val;
arch/sparc/kernel/visemul.c
647
rs1 = fpd_regval(f, RS1(insn));
arch/sparc/kernel/visemul.c
648
rs2 = fpd_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
669
*fpd_regaddr(f, RD(insn)) = rd_val;
arch/sparc/kernel/visemul.c
677
rs1 = fps_regval(f, RS1(insn));
arch/sparc/kernel/visemul.c
678
rs2 = fps_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
699
*fpd_regaddr(f, RD(insn)) = rd_val;
arch/sparc/kernel/visemul.c
705
static void pcmp(struct pt_regs *regs, unsigned int insn, unsigned int opf)
arch/sparc/kernel/visemul.c
710
rs1 = fpd_regval(f, RS1(insn));
arch/sparc/kernel/visemul.c
711
rs2 = fpd_regval(f, RS2(insn));
arch/sparc/kernel/visemul.c
797
maybe_flush_windows(0, 0, RD(insn), 0);
arch/sparc/kernel/visemul.c
798
store_reg(regs, rd_val, RD(insn));
arch/sparc/kernel/visemul.c
804
int vis_emul(struct pt_regs *regs, unsigned int insn)
arch/sparc/kernel/visemul.c
816
if (get_user(insn, (u32 __user *) pc))
arch/sparc/kernel/visemul.c
821
opf = (insn & VIS_OPF_MASK) >> VIS_OPF_SHIFT;
arch/sparc/kernel/visemul.c
832
pformat(regs, insn, opf);
arch/sparc/kernel/visemul.c
843
pmul(regs, insn, opf);
arch/sparc/kernel/visemul.c
855
pcmp(regs, insn, opf);
arch/sparc/kernel/visemul.c
871
edge(regs, insn, opf);
arch/sparc/kernel/visemul.c
876
pdist(regs, insn);
arch/sparc/kernel/visemul.c
883
array(regs, insn, opf);
arch/sparc/kernel/visemul.c
888
bmask(regs, insn);
arch/sparc/kernel/visemul.c
892
bshuffle(regs, insn);
arch/sparc/math-emu/math_32.c
133
static int do_one_mathemu(u32 insn, unsigned long *fsr, unsigned long *fregs);
arch/sparc/math-emu/math_32.c
166
unsigned long insn;
arch/sparc/math-emu/math_32.c
174
printk("%d: %08lx at %08lx\n", i, fpt->thread.fpqueue[i].insn,
arch/sparc/math-emu/math_32.c
182
if (!get_user(insn, (u32 __user *) regs->pc)) {
arch/sparc/math-emu/math_32.c
183
retcode = do_one_mathemu(insn, &fpt->thread.fsr, fpt->thread.float_regs);
arch/sparc/math-emu/math_32.c
195
retcode = do_one_mathemu(fpt->thread.fpqueue[i].insn, &(fpt->thread.fsr), fpt->thread.float_regs);
arch/sparc/math-emu/math_32.c
275
static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs)
arch/sparc/math-emu/math_32.c
293
printk("In do_mathemu(), emulating %08lx\n", insn);
arch/sparc/math-emu/math_32.c
296
if ((insn & 0xc1f80000) == 0x81a00000) /* FPOP1 */ {
arch/sparc/math-emu/math_32.c
297
switch ((insn >> 5) & 0x1ff) {
arch/sparc/math-emu/math_32.c
331
} else if ((insn & 0xc1f80000) == 0x81a80000) /* FPOP2 */ {
arch/sparc/math-emu/math_32.c
332
switch ((insn >> 5) & 0x1ff) {
arch/sparc/math-emu/math_32.c
354
freg = ((insn >> 14) & 0x1f);
arch/sparc/math-emu/math_32.c
375
freg = (insn & 0x1f);
arch/sparc/math-emu/math_32.c
396
freg = ((insn >> 25) & 0x1f);
arch/sparc/math-emu/math_32.c
426
switch ((insn >> 5) & 0x1ff) {
arch/sparc/math-emu/math_32.c
475
(((insn >> 5) & 0x1ff) == FCMPES ||
arch/sparc/math-emu/math_32.c
484
(((insn >> 5) & 0x1ff) == FCMPED ||
arch/sparc/math-emu/math_32.c
493
(((insn >> 5) & 0x1ff) == FCMPEQ ||
arch/sparc/math-emu/math_64.c
171
u32 insn = 0;
arch/sparc/math-emu/math_64.c
192
if (get_user(insn, (u32 __user *) pc) != -EFAULT) {
arch/sparc/math-emu/math_64.c
193
if ((insn & 0xc1f80000) == 0x81a00000) /* FPOP1 */ {
arch/sparc/math-emu/math_64.c
194
switch ((insn >> 5) & 0x1ff) {
arch/sparc/math-emu/math_64.c
261
else if ((insn & 0xc1f80000) == 0x81a80000) /* FPOP2 */ {
arch/sparc/math-emu/math_64.c
263
switch ((insn >> 5) & 0x1ff) {
arch/sparc/math-emu/math_64.c
272
if (!((insn >> 11) & 3))
arch/sparc/math-emu/math_64.c
275
XR = current_thread_info()->xfsr[0] >> (30 + ((insn >> 10) & 0x6));
arch/sparc/math-emu/math_64.c
278
switch ((insn >> 14) & 0x7) {
arch/sparc/math-emu/math_64.c
288
if ((insn >> 14) & 8)
arch/sparc/math-emu/math_64.c
295
if ((insn >> 5) & 0x80)
arch/sparc/math-emu/math_64.c
300
switch ((insn >> 14) & 0x7) {
arch/sparc/math-emu/math_64.c
310
if ((insn >> 14) & 8)
arch/sparc/math-emu/math_64.c
319
freg = (insn >> 14) & 0x1f;
arch/sparc/math-emu/math_64.c
336
switch ((insn >> 10) & 3) {
arch/sparc/math-emu/math_64.c
341
if ((insn >> 10) & 4)
arch/sparc/math-emu/math_64.c
353
insn = (insn & 0x3e00001f) | 0x81a00060;
arch/sparc/math-emu/math_64.c
373
freg = ((insn >> 14) & 0x1f);
arch/sparc/math-emu/math_64.c
391
freg = (insn & 0x1f);
arch/sparc/math-emu/math_64.c
409
freg = ((insn >> 25) & 0x1f);
arch/sparc/math-emu/math_64.c
431
switch ((insn >> 5) & 0x1ff) {
arch/sparc/math-emu/math_64.c
489
(((insn >> 5) & 0x1ff) == FCMPEQ ||
arch/sparc/mm/fault_32.c
101
return safe_compute_effective_address(regs, insn);
arch/sparc/mm/fault_32.c
91
unsigned int insn;
arch/sparc/mm/fault_32.c
97
insn = *(unsigned int *) regs->pc;
arch/sparc/mm/fault_32.c
99
__get_user(insn, (unsigned int *) regs->pc);
arch/sparc/mm/fault_64.c
113
: "=r" (insn)
arch/sparc/mm/fault_64.c
128
: "=r" (insn)
arch/sparc/mm/fault_64.c
136
return insn;
arch/sparc/mm/fault_64.c
161
unsigned long fault_addr, unsigned int insn,
arch/sparc/mm/fault_64.c
173
if (insn)
arch/sparc/mm/fault_64.c
174
addr = compute_effective_address(regs, insn, 0);
arch/sparc/mm/fault_64.c
185
static unsigned int get_fault_insn(struct pt_regs *regs, unsigned int insn)
arch/sparc/mm/fault_64.c
187
if (!insn) {
arch/sparc/mm/fault_64.c
191
insn = *(unsigned int *) regs->tpc;
arch/sparc/mm/fault_64.c
193
insn = get_user_insn(regs->tpc);
arch/sparc/mm/fault_64.c
196
return insn;
arch/sparc/mm/fault_64.c
200
int fault_code, unsigned int insn,
arch/sparc/mm/fault_64.c
205
if ((!insn) && (regs->tstate & TSTATE_PRIV))
arch/sparc/mm/fault_64.c
214
(insn & 0xc0800000) == 0xc0800000) {
arch/sparc/mm/fault_64.c
215
if (insn & 0x2000)
arch/sparc/mm/fault_64.c
218
asi = (insn >> 5);
arch/sparc/mm/fault_64.c
220
if (insn & 0x1000000) {
arch/sparc/mm/fault_64.c
221
handle_ldf_stq(insn, regs);
arch/sparc/mm/fault_64.c
227
handle_ld_nf(insn, regs);
arch/sparc/mm/fault_64.c
247
do_fault_siginfo(si_code, SIGSEGV, regs, address, insn, fault_code);
arch/sparc/mm/fault_64.c
272
unsigned int insn = 0;
arch/sparc/mm/fault_64.c
327
insn = get_fault_insn(regs, insn);
arch/sparc/mm/fault_64.c
353
insn = get_fault_insn(regs, 0);
arch/sparc/mm/fault_64.c
354
if (!insn)
arch/sparc/mm/fault_64.c
360
if ((insn & 0xc0200000) == 0xc0200000 &&
arch/sparc/mm/fault_64.c
361
(insn & 0x01780000) != 0x01680000) {
arch/sparc/mm/fault_64.c
377
insn = get_fault_insn(regs, insn);
arch/sparc/mm/fault_64.c
378
if ((insn & 0xc0800000) == 0xc0800000) {
arch/sparc/mm/fault_64.c
381
if (insn & 0x2000)
arch/sparc/mm/fault_64.c
384
asi = (insn >> 5);
arch/sparc/mm/fault_64.c
433
insn = get_fault_insn(regs, insn);
arch/sparc/mm/fault_64.c
496
insn = get_fault_insn(regs, insn);
arch/sparc/mm/fault_64.c
499
do_kernel_fault(regs, si_code, fault_code, insn, address);
arch/sparc/mm/fault_64.c
507
insn = get_fault_insn(regs, insn);
arch/sparc/mm/fault_64.c
516
insn = get_fault_insn(regs, 0);
arch/sparc/mm/fault_64.c
520
insn = get_fault_insn(regs, insn);
arch/sparc/mm/fault_64.c
527
do_fault_siginfo(BUS_ADRERR, SIGBUS, regs, address, insn, fault_code);
arch/sparc/mm/fault_64.c
87
u32 insn = 0;
arch/sparc/mm/init_64.c
2047
*(unsigned int *) addr = p->insn;
arch/sparc/mm/init_64.c
353
*(unsigned int *)addr = p->insn;
arch/sparc/net/bpf_jit_comp_64.c
1006
if (insn_is_zext(&insn[1]))
arch/sparc/net/bpf_jit_comp_64.c
1033
if (insn_is_zext(&insn[1]))
arch/sparc/net/bpf_jit_comp_64.c
1051
if (insn_is_zext(&insn[1]))
arch/sparc/net/bpf_jit_comp_64.c
1066
if (insn_is_zext(&insn[1]))
arch/sparc/net/bpf_jit_comp_64.c
1150
if (insn_is_zext(&insn[1]))
arch/sparc/net/bpf_jit_comp_64.c
1245
const struct bpf_insn insn1 = insn[1];
arch/sparc/net/bpf_jit_comp_64.c
1286
if (opcode != LD64 && insn_is_zext(&insn[1]))
arch/sparc/net/bpf_jit_comp_64.c
1302
if (insn->dst_reg == BPF_REG_FP)
arch/sparc/net/bpf_jit_comp_64.c
1343
if (insn->dst_reg == BPF_REG_FP)
arch/sparc/net/bpf_jit_comp_64.c
1377
if (insn->imm != BPF_ADD) {
arch/sparc/net/bpf_jit_comp_64.c
1378
pr_err_once("unknown atomic op %02x\n", insn->imm);
arch/sparc/net/bpf_jit_comp_64.c
1384
if (insn->dst_reg == BPF_REG_FP)
arch/sparc/net/bpf_jit_comp_64.c
1407
if (insn->imm != BPF_ADD) {
arch/sparc/net/bpf_jit_comp_64.c
1408
pr_err_once("unknown atomic op %02x\n", insn->imm);
arch/sparc/net/bpf_jit_comp_64.c
1412
if (insn->dst_reg == BPF_REG_FP)
arch/sparc/net/bpf_jit_comp_64.c
1444
const struct bpf_insn *insn = &prog->insnsi[i];
arch/sparc/net/bpf_jit_comp_64.c
1447
ret = build_insn(insn, ctx);
arch/sparc/net/bpf_jit_comp_64.c
236
static void emit(const u32 insn, struct jit_ctx *ctx)
arch/sparc/net/bpf_jit_comp_64.c
239
ctx->image[ctx->idx] = insn;
arch/sparc/net/bpf_jit_comp_64.c
302
unsigned int insn = opcode;
arch/sparc/net/bpf_jit_comp_64.c
304
insn |= RS1(dst) | RD(dst);
arch/sparc/net/bpf_jit_comp_64.c
306
emit(insn | IMMED | S13(imm), ctx);
arch/sparc/net/bpf_jit_comp_64.c
313
emit(insn | RS2(tmp), ctx);
arch/sparc/net/bpf_jit_comp_64.c
321
unsigned int insn = opcode;
arch/sparc/net/bpf_jit_comp_64.c
323
insn |= RS1(src) | RD(dst);
arch/sparc/net/bpf_jit_comp_64.c
325
emit(insn | IMMED | S13(imm), ctx);
arch/sparc/net/bpf_jit_comp_64.c
332
emit(insn | RS2(tmp), ctx);
arch/sparc/net/bpf_jit_comp_64.c
895
static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx)
arch/sparc/net/bpf_jit_comp_64.c
897
const u8 code = insn->code;
arch/sparc/net/bpf_jit_comp_64.c
898
const u8 dst = bpf2sparc[insn->dst_reg];
arch/sparc/net/bpf_jit_comp_64.c
899
const u8 src = bpf2sparc[insn->src_reg];
arch/sparc/net/bpf_jit_comp_64.c
900
const int i = insn - ctx->prog->insnsi;
arch/sparc/net/bpf_jit_comp_64.c
901
const s16 off = insn->off;
arch/sparc/net/bpf_jit_comp_64.c
902
const s32 imm = insn->imm;
arch/sparc/net/bpf_jit_comp_64.c
904
if (insn->src_reg == BPF_REG_FP)
arch/sparc/net/bpf_jit_comp_64.c
911
if (insn_is_zext(&insn[1]))
arch/sparc/net/bpf_jit_comp_64.c
947
if (insn_is_zext(&insn[1]))
arch/sparc/net/bpf_jit_comp_64.c
982
if (insn_is_zext(&insn[1]))
arch/x86/boot/compressed/misc.h
141
struct insn;
arch/x86/boot/compressed/misc.h
152
bool insn_has_rep_prefix(struct insn *insn);
arch/x86/boot/compressed/sev-handle-vc.c
29
bool insn_has_rep_prefix(struct insn *insn)
arch/x86/boot/compressed/sev-handle-vc.c
33
insn_get_prefixes(insn);
arch/x86/boot/compressed/sev-handle-vc.c
35
for_each_insn_prefix(insn, p) {
arch/x86/boot/compressed/sev-handle-vc.c
50
ret = insn_decode(&ctxt->insn, buffer, MAX_INSN_SIZE, INSN_MODE_64);
arch/x86/coco/sev/vc-handle.c
154
if (!insn_decode_from_regs(&ctxt->insn, ctxt->regs, buffer, insn_bytes))
arch/x86/coco/sev/vc-handle.c
157
if (ctxt->insn.immediate.got)
arch/x86/coco/sev/vc-handle.c
176
ret = insn_decode(&ctxt->insn, buffer, MAX_INSN_SIZE, INSN_MODE_64);
arch/x86/coco/sev/vc-handle.c
451
return __vc_handle_msr(ghcb, ctxt, ctxt->insn.opcode.bytes[1] == 0x30);
arch/x86/coco/sev/vc-handle.c
471
offset = insn_get_modrm_rm_off(&ctxt->insn, ctxt->regs);
arch/x86/coco/sev/vc-handle.c
489
ref = insn_get_addr_ref(&ctxt->insn, ctxt->regs);
arch/x86/coco/sev/vc-handle.c
569
rep = insn_has_rep_prefix(&ctxt->insn);
arch/x86/coco/sev/vc-handle.c
581
struct insn *insn = &ctxt->insn;
arch/x86/coco/sev/vc-handle.c
588
mmio = insn_decode_mmio(insn, &bytes);
arch/x86/coco/sev/vc-handle.c
593
reg_data = insn_get_modrm_reg_ptr(insn, ctxt->regs);
arch/x86/coco/sev/vc-handle.c
607
memcpy(ghcb->shared_buffer, insn->immediate1.bytes, bytes);
arch/x86/coco/sev/vc-handle.c
627
memset(reg_data, 0, insn->opnd_bytes);
arch/x86/coco/sev/vc-handle.c
646
memset(reg_data, sign_byte, insn->opnd_bytes);
arch/x86/coco/sev/vc-shared.c
10
unsigned int opcode = (unsigned int)ctxt->insn.opcode.value;
arch/x86/coco/sev/vc-shared.c
11
u8 modrm = ctxt->insn.modrm.value;
arch/x86/coco/sev/vc-shared.c
122
ctxt->regs->ip += ctxt->insn.length;
arch/x86/coco/sev/vc-shared.c
215
struct insn *insn = &ctxt->insn;
arch/x86/coco/sev/vc-shared.c
221
switch (insn->opcode.bytes[0]) {
arch/x86/coco/sev/vc-shared.c
242
port = (u8)insn->immediate.value & 0xffff;
arch/x86/coco/sev/vc-shared.c
249
port = (u8)insn->immediate.value & 0xffff;
arch/x86/coco/sev/vc-shared.c
272
switch (insn->opcode.bytes[0]) {
arch/x86/coco/sev/vc-shared.c
285
*exitinfo |= (insn->opnd_bytes == 2) ? IOIO_DATA_16
arch/x86/coco/sev/vc-shared.c
287
size = (insn->opnd_bytes == 2) ? 2 : 4;
arch/x86/coco/sev/vc-shared.c
290
switch (insn->addr_bytes) {
arch/x86/coco/sev/vc-shared.c
302
if (insn_has_rep_prefix(insn))
arch/x86/coco/sev/vc-shared.c
67
X86_MODRM_REG(ctxt->insn.modrm.value) == 7)
arch/x86/coco/sev/vc-shared.c
79
X86_MODRM_REG(ctxt->insn.modrm.value) == 7)
arch/x86/coco/tdx/tdx.c
582
struct insn insn = {};
arch/x86/coco/tdx/tdx.c
593
if (insn_decode(&insn, buffer, MAX_INSN_SIZE, INSN_MODE_64))
arch/x86/coco/tdx/tdx.c
596
mmio = insn_decode_mmio(&insn, &size);
arch/x86/coco/tdx/tdx.c
601
reg = insn_get_modrm_reg_ptr(&insn, regs);
arch/x86/coco/tdx/tdx.c
620
vaddr = (unsigned long)insn_get_addr_ref(&insn, regs);
arch/x86/coco/tdx/tdx.c
630
return insn.length;
arch/x86/coco/tdx/tdx.c
632
val = insn.immediate.value;
arch/x86/coco/tdx/tdx.c
635
return insn.length;
arch/x86/coco/tdx/tdx.c
665
extend_size = insn.opnd_bytes;
arch/x86/coco/tdx/tdx.c
669
extend_size = insn.opnd_bytes;
arch/x86/coco/tdx/tdx.c
684
return insn.length;
arch/x86/entry/vdso/extable.c
36
if (regs->ip == base + extable[i].insn) {
arch/x86/entry/vdso/extable.c
9
int insn, fixup;
arch/x86/events/intel/ds.c
2059
struct insn insn;
arch/x86/events/intel/ds.c
2066
insn_init(&insn, kaddr, size, is_64bit);
arch/x86/events/intel/ds.c
2073
if (insn_get_length(&insn))
arch/x86/events/intel/ds.c
2076
to += insn.length;
arch/x86/events/intel/ds.c
2077
kaddr += insn.length;
arch/x86/events/intel/ds.c
2078
size -= insn.length;
arch/x86/events/utils.c
12
if (insn_get_opcode(insn))
arch/x86/events/utils.c
15
switch (insn->opcode.bytes[0]) {
arch/x86/events/utils.c
161
insn_init(&insn, addr, bytes_read, is64);
arch/x86/events/utils.c
162
ret = decode_branch_type(&insn);
arch/x86/events/utils.c
168
if (insn_get_length(&insn) || !insn.length)
arch/x86/events/utils.c
17
switch (insn->opcode.bytes[1]) {
arch/x86/events/utils.c
171
insn_offset += insn.length;
arch/x86/events/utils.c
172
bytes_read -= insn.length;
arch/x86/events/utils.c
176
insn_init(&insn, addr + insn_offset, bytes_read, is64);
arch/x86/events/utils.c
177
ret = decode_branch_type(&insn);
arch/x86/events/utils.c
40
if (insn_get_immediate(insn) || insn->immediate1.value == 0) {
arch/x86/events/utils.c
52
if (insn_get_modrm(insn))
arch/x86/events/utils.c
55
ext = (insn->modrm.bytes[0] >> 3) & 0x7;
arch/x86/events/utils.c
8
static int decode_branch_type(struct insn *insn)
arch/x86/events/utils.c
91
struct insn insn;
arch/x86/include/asm/extable.h
24
int insn, fixup, data;
arch/x86/include/asm/futex.h
15
#define unsafe_atomic_op1(insn, oval, uaddr, oparg, label) \
arch/x86/include/asm/futex.h
18
asm volatile("1:\t" insn "\n" \
arch/x86/include/asm/futex.h
29
#define unsafe_atomic_op2(insn, oval, uaddr, oparg, label) \
arch/x86/include/asm/futex.h
34
"\t" insn "\n" \
arch/x86/include/asm/insn-eval.h
20
bool insn_has_rep_prefix(struct insn *insn);
arch/x86/include/asm/insn-eval.h
21
void __user *insn_get_addr_ref(struct insn *insn, struct pt_regs *regs);
arch/x86/include/asm/insn-eval.h
22
int insn_get_modrm_rm_off(struct insn *insn, struct pt_regs *regs);
arch/x86/include/asm/insn-eval.h
23
int insn_get_modrm_reg_off(struct insn *insn, struct pt_regs *regs);
arch/x86/include/asm/insn-eval.h
24
unsigned long *insn_get_modrm_reg_ptr(struct insn *insn, struct pt_regs *regs);
arch/x86/include/asm/insn-eval.h
32
bool insn_decode_from_regs(struct insn *insn, struct pt_regs *regs,
arch/x86/include/asm/insn-eval.h
45
enum insn_mmio_type insn_decode_mmio(struct insn *insn, int *bytes);
arch/x86/include/asm/insn-eval.h
47
bool insn_is_nop(struct insn *insn);
arch/x86/include/asm/insn.h
153
extern void insn_init(struct insn *insn, const void *kaddr, int buf_len, int x86_64);
arch/x86/include/asm/insn.h
154
extern int insn_get_prefixes(struct insn *insn);
arch/x86/include/asm/insn.h
155
extern int insn_get_opcode(struct insn *insn);
arch/x86/include/asm/insn.h
156
extern int insn_get_modrm(struct insn *insn);
arch/x86/include/asm/insn.h
157
extern int insn_get_sib(struct insn *insn);
arch/x86/include/asm/insn.h
158
extern int insn_get_displacement(struct insn *insn);
arch/x86/include/asm/insn.h
159
extern int insn_get_immediate(struct insn *insn);
arch/x86/include/asm/insn.h
160
extern int insn_get_length(struct insn *insn);
arch/x86/include/asm/insn.h
170
extern int insn_decode(struct insn *insn, const void *kaddr, int buf_len, enum insn_mode m);
arch/x86/include/asm/insn.h
175
static inline void insn_get_attribute(struct insn *insn)
arch/x86/include/asm/insn.h
177
insn_get_modrm(insn);
arch/x86/include/asm/insn.h
181
extern int insn_rip_relative(struct insn *insn);
arch/x86/include/asm/insn.h
183
static inline int insn_is_rex2(struct insn *insn)
arch/x86/include/asm/insn.h
185
if (!insn->prefixes.got)
arch/x86/include/asm/insn.h
186
insn_get_prefixes(insn);
arch/x86/include/asm/insn.h
187
return insn->rex_prefix.nbytes == 2;
arch/x86/include/asm/insn.h
190
static inline insn_byte_t insn_rex2_m_bit(struct insn *insn)
arch/x86/include/asm/insn.h
192
return X86_REX2_M(insn->rex_prefix.bytes[1]);
arch/x86/include/asm/insn.h
195
static inline int insn_is_avx_or_xop(struct insn *insn)
arch/x86/include/asm/insn.h
197
if (!insn->prefixes.got)
arch/x86/include/asm/insn.h
198
insn_get_prefixes(insn);
arch/x86/include/asm/insn.h
199
return (insn->vex_prefix.value != 0);
arch/x86/include/asm/insn.h
202
static inline int insn_is_evex(struct insn *insn)
arch/x86/include/asm/insn.h
204
if (!insn->prefixes.got)
arch/x86/include/asm/insn.h
205
insn_get_prefixes(insn);
arch/x86/include/asm/insn.h
206
return (insn->vex_prefix.nbytes == 4);
arch/x86/include/asm/insn.h
210
static inline int avx_insn_is_xop(struct insn *insn)
arch/x86/include/asm/insn.h
212
insn_attr_t attr = inat_get_opcode_attribute(insn->vex_prefix.bytes[0]);
arch/x86/include/asm/insn.h
217
static inline int insn_is_xop(struct insn *insn)
arch/x86/include/asm/insn.h
219
if (!insn_is_avx_or_xop(insn))
arch/x86/include/asm/insn.h
222
return avx_insn_is_xop(insn);
arch/x86/include/asm/insn.h
225
static inline int insn_has_emulate_prefix(struct insn *insn)
arch/x86/include/asm/insn.h
227
return !!insn->emulate_prefix_size;
arch/x86/include/asm/insn.h
230
static inline insn_byte_t insn_vex_m_bits(struct insn *insn)
arch/x86/include/asm/insn.h
232
if (insn->vex_prefix.nbytes == 2) /* 2 bytes VEX */
arch/x86/include/asm/insn.h
234
else if (insn->vex_prefix.nbytes == 3) /* 3 bytes VEX */
arch/x86/include/asm/insn.h
235
return X86_VEX3_M(insn->vex_prefix.bytes[1]);
arch/x86/include/asm/insn.h
237
return X86_EVEX_M(insn->vex_prefix.bytes[1]);
arch/x86/include/asm/insn.h
240
static inline insn_byte_t insn_vex_p_bits(struct insn *insn)
arch/x86/include/asm/insn.h
242
if (insn->vex_prefix.nbytes == 2) /* 2 bytes VEX */
arch/x86/include/asm/insn.h
243
return X86_VEX_P(insn->vex_prefix.bytes[1]);
arch/x86/include/asm/insn.h
245
return X86_VEX_P(insn->vex_prefix.bytes[2]);
arch/x86/include/asm/insn.h
248
static inline insn_byte_t insn_vex_w_bit(struct insn *insn)
arch/x86/include/asm/insn.h
250
if (insn->vex_prefix.nbytes < 3)
arch/x86/include/asm/insn.h
252
return X86_VEX_W(insn->vex_prefix.bytes[2]);
arch/x86/include/asm/insn.h
255
static inline insn_byte_t insn_xop_map_bits(struct insn *insn)
arch/x86/include/asm/insn.h
257
if (insn->xop_prefix.nbytes < 3) /* XOP is 3 bytes */
arch/x86/include/asm/insn.h
259
return X86_XOP_M(insn->xop_prefix.bytes[1]);
arch/x86/include/asm/insn.h
262
static inline insn_byte_t insn_xop_p_bits(struct insn *insn)
arch/x86/include/asm/insn.h
264
return X86_XOP_P(insn->vex_prefix.bytes[2]);
arch/x86/include/asm/insn.h
268
static inline int insn_last_prefix_id(struct insn *insn)
arch/x86/include/asm/insn.h
270
if (insn_is_avx_or_xop(insn)) {
arch/x86/include/asm/insn.h
271
if (avx_insn_is_xop(insn))
arch/x86/include/asm/insn.h
272
return insn_xop_p_bits(insn);
arch/x86/include/asm/insn.h
273
return insn_vex_p_bits(insn); /* VEX_p is a SIMD prefix id */
arch/x86/include/asm/insn.h
276
if (insn->prefixes.bytes[3])
arch/x86/include/asm/insn.h
277
return inat_get_last_prefix_id(insn->prefixes.bytes[3]);
arch/x86/include/asm/insn.h
283
static inline int insn_offset_rex_prefix(struct insn *insn)
arch/x86/include/asm/insn.h
285
return insn->prefixes.nbytes;
arch/x86/include/asm/insn.h
287
static inline int insn_offset_vex_prefix(struct insn *insn)
arch/x86/include/asm/insn.h
289
return insn_offset_rex_prefix(insn) + insn->rex_prefix.nbytes;
arch/x86/include/asm/insn.h
291
static inline int insn_offset_opcode(struct insn *insn)
arch/x86/include/asm/insn.h
293
return insn_offset_vex_prefix(insn) + insn->vex_prefix.nbytes;
arch/x86/include/asm/insn.h
295
static inline int insn_offset_modrm(struct insn *insn)
arch/x86/include/asm/insn.h
297
return insn_offset_opcode(insn) + insn->opcode.nbytes;
arch/x86/include/asm/insn.h
299
static inline int insn_offset_sib(struct insn *insn)
arch/x86/include/asm/insn.h
301
return insn_offset_modrm(insn) + insn->modrm.nbytes;
arch/x86/include/asm/insn.h
303
static inline int insn_offset_displacement(struct insn *insn)
arch/x86/include/asm/insn.h
305
return insn_offset_sib(insn) + insn->sib.nbytes;
arch/x86/include/asm/insn.h
307
static inline int insn_offset_immediate(struct insn *insn)
arch/x86/include/asm/insn.h
309
return insn_offset_displacement(insn) + insn->displacement.nbytes;
arch/x86/include/asm/insn.h
323
#define for_each_insn_prefix(insn, prefix) \
arch/x86/include/asm/insn.h
324
for (int idx = 0; idx < ARRAY_SIZE(insn->prefixes.bytes) && (prefix = insn->prefixes.bytes[idx]) != 0; idx++)
arch/x86/include/asm/insn.h
337
static inline int insn_masking_exception(struct insn *insn)
arch/x86/include/asm/insn.h
339
return insn->opcode.bytes[0] == POP_SS_OPCODE ||
arch/x86/include/asm/insn.h
340
(insn->opcode.bytes[0] == MOV_SREG_OPCODE &&
arch/x86/include/asm/insn.h
341
X86_MODRM_REG(insn->modrm.bytes[0]) == 2);
arch/x86/include/asm/kprobes.h
56
kprobe_opcode_t *insn;
arch/x86/include/asm/kprobes.h
89
kprobe_opcode_t *insn;
arch/x86/include/asm/kvm_host.h
1944
void *insn, int insn_len);
arch/x86/include/asm/kvm_host.h
2191
void *insn, int insn_len);
arch/x86/include/asm/kvm_host.h
2320
void *insn, int insn_len);
arch/x86/include/asm/sev.h
48
struct insn insn;
arch/x86/include/asm/text-patching.h
104
OPTIMIZER_HIDE_VAR(insn);
arch/x86/include/asm/text-patching.h
108
insn->opcode = opcode;
arch/x86/include/asm/text-patching.h
111
insn->disp = (long)dest - (long)(addr + size);
arch/x86/include/asm/text-patching.h
117
BUG_ON((insn->disp >> 31) != (insn->disp >> 7));
arch/x86/include/asm/text-patching.h
125
static union text_poke_insn insn; /* per instance */
arch/x86/include/asm/text-patching.h
126
__text_gen_insn(&insn, opcode, addr, dest, text_opcode_size(opcode));
arch/x86/include/asm/text-patching.h
127
return &insn.text;
arch/x86/include/asm/text-patching.h
68
#define __CASE(insn) \
arch/x86/include/asm/text-patching.h
69
case insn##_INSN_OPCODE: size = insn##_INSN_SIZE; break
arch/x86/include/asm/text-patching.h
95
union text_poke_insn *insn = buf;
arch/x86/include/asm/uprobes.h
32
u8 insn[MAX_UINSN_BYTES];
arch/x86/kernel/alternative.c
1013
addr, addr, insn.length,
arch/x86/kernel/alternative.c
1014
addr + insn.length + insn.immediate.value);
arch/x86/kernel/alternative.c
1016
len = patch_retpoline(addr, &insn, bytes);
arch/x86/kernel/alternative.c
1017
if (len == insn.length) {
arch/x86/kernel/alternative.c
1054
static int patch_return(void *addr, struct insn *insn, u8 *bytes)
arch/x86/kernel/alternative.c
1067
for (; i < insn->length;)
arch/x86/kernel/alternative.c
1081
struct insn insn;
arch/x86/kernel/alternative.c
1086
ret = insn_decode_kernel(&insn, addr);
arch/x86/kernel/alternative.c
1090
op = insn.opcode.bytes[0];
arch/x86/kernel/alternative.c
1092
dest = addr + insn.length + insn.immediate.value;
arch/x86/kernel/alternative.c
1101
addr, addr, insn.length,
arch/x86/kernel/alternative.c
1102
addr + insn.length + insn.immediate.value);
arch/x86/kernel/alternative.c
1104
len = patch_return(addr, &insn, bytes);
arch/x86/kernel/alternative.c
1105
if (len == insn.length) {
arch/x86/kernel/alternative.c
1705
static int emit_paranoid_trampoline(void *addr, struct insn *insn, int reg, u8 *bytes)
arch/x86/kernel/alternative.c
1715
return __emit_trampoline(addr, insn, bytes, thunk, thunk);
arch/x86/kernel/alternative.c
1724
struct insn insn;
arch/x86/kernel/alternative.c
1744
ret = insn_decode_kernel(&insn, addr + fineibt_caller_size);
arch/x86/kernel/alternative.c
1748
op = insn.opcode.bytes[0];
arch/x86/kernel/alternative.c
1759
&insn, 11, bytes + fineibt_caller_size);
arch/x86/kernel/alternative.c
3080
struct insn insn;
arch/x86/kernel/alternative.c
3091
ret = insn_decode_kernel(&insn, emulate);
arch/x86/kernel/alternative.c
3096
tpl->opcode = insn.opcode.bytes[0];
arch/x86/kernel/alternative.c
3098
if (is_jcc32(&insn)) {
arch/x86/kernel/alternative.c
3102
tpl->opcode = insn.opcode.bytes[1] - 0x10;
arch/x86/kernel/alternative.c
3113
for (i = insn.length; i < len; i++)
arch/x86/kernel/alternative.c
3118
BUG_ON(len != insn.length);
arch/x86/kernel/alternative.c
3130
tpl->disp = insn.immediate.value;
arch/x86/kernel/alternative.c
355
struct insn insn;
arch/x86/kernel/alternative.c
357
for (; offset < len; offset += insn.length) {
arch/x86/kernel/alternative.c
358
if (insn_decode_kernel(&insn, &buf[offset]))
arch/x86/kernel/alternative.c
361
if (!insn_is_nop(&insn))
arch/x86/kernel/alternative.c
375
struct insn insn;
arch/x86/kernel/alternative.c
377
if (insn_decode_kernel(&insn, &buf[i]))
arch/x86/kernel/alternative.c
380
next = i + insn.length;
arch/x86/kernel/alternative.c
382
if (insn_is_nop(&insn)) {
arch/x86/kernel/alternative.c
386
if (i + insn.length == len)
arch/x86/kernel/alternative.c
470
struct insn insn;
arch/x86/kernel/alternative.c
472
if (WARN_ON_ONCE(insn_decode_kernel(&insn, &buf[i])))
arch/x86/kernel/alternative.c
475
next = i + insn.length;
arch/x86/kernel/alternative.c
477
switch (insn.opcode.bytes[0]) {
arch/x86/kernel/alternative.c
479
if (insn.opcode.bytes[1] < 0x80 ||
arch/x86/kernel/alternative.c
480
insn.opcode.bytes[1] > 0x8f)
arch/x86/kernel/alternative.c
488
if (need_reloc(next + insn.immediate.value, repl, repl_len)) {
arch/x86/kernel/alternative.c
489
apply_reloc(insn.immediate.nbytes,
arch/x86/kernel/alternative.c
490
buf + i + insn_offset_immediate(&insn),
arch/x86/kernel/alternative.c
497
if (insn.opcode.bytes[0] == JMP32_INSN_OPCODE) {
arch/x86/kernel/alternative.c
498
s32 imm = insn.immediate.value;
arch/x86/kernel/alternative.c
505
memset(&buf[i+2], INT3_INSN_OPCODE, insn.length - 2);
arch/x86/kernel/alternative.c
511
if (insn_rip_relative(&insn)) {
arch/x86/kernel/alternative.c
512
if (need_reloc(next + insn.displacement.value, repl, repl_len)) {
arch/x86/kernel/alternative.c
513
apply_reloc(insn.displacement.nbytes,
arch/x86/kernel/alternative.c
514
buf + i + insn_offset_displacement(&insn),
arch/x86/kernel/alternative.c
721
static inline bool is_jcc32(struct insn *insn)
arch/x86/kernel/alternative.c
724
return insn->opcode.bytes[0] == 0x0f && (insn->opcode.bytes[1] & 0xf0) == 0x80;
arch/x86/kernel/alternative.c
784
static int __emit_trampoline(void *addr, struct insn *insn, u8 *bytes,
arch/x86/kernel/alternative.c
787
u8 op = insn->opcode.bytes[0];
arch/x86/kernel/alternative.c
794
if (is_jcc32(insn)) {
arch/x86/kernel/alternative.c
796
op = insn->opcode.bytes[1];
arch/x86/kernel/alternative.c
800
if (insn->length == 6)
arch/x86/kernel/alternative.c
824
WARN_ON_ONCE(i != insn->length);
arch/x86/kernel/alternative.c
829
static int emit_call_track_retpoline(void *addr, struct insn *insn, int reg, u8 *bytes)
arch/x86/kernel/alternative.c
831
return __emit_trampoline(addr, insn, bytes,
arch/x86/kernel/alternative.c
837
static int emit_its_trampoline(void *addr, struct insn *insn, int reg, u8 *bytes)
arch/x86/kernel/alternative.c
845
return __emit_trampoline(addr, insn, bytes, thunk, thunk);
arch/x86/kernel/alternative.c
887
static int patch_retpoline(void *addr, struct insn *insn, u8 *bytes)
arch/x86/kernel/alternative.c
893
target = addr + insn->length + insn->immediate.value;
arch/x86/kernel/alternative.c
905
return emit_call_track_retpoline(addr, insn, reg, bytes);
arch/x86/kernel/alternative.c
910
op = insn->opcode.bytes[0];
arch/x86/kernel/alternative.c
925
if (is_jcc32(insn)) {
arch/x86/kernel/alternative.c
926
cc = insn->opcode.bytes[1] & 0xf;
arch/x86/kernel/alternative.c
930
bytes[i++] = insn->length - 2; /* sizeof(Jcc.d8) == 2 */
arch/x86/kernel/alternative.c
951
return emit_its_trampoline(addr, insn, reg, bytes);
arch/x86/kernel/alternative.c
954
ret = emit_indirect(op, reg, bytes + i, insn->length - i);
arch/x86/kernel/alternative.c
959
for (; i < insn->length;)
arch/x86/kernel/alternative.c
974
struct insn insn;
arch/x86/kernel/alternative.c
980
ret = insn_decode_kernel(&insn, addr);
arch/x86/kernel/alternative.c
984
op1 = insn.opcode.bytes[0];
arch/x86/kernel/alternative.c
985
op2 = insn.opcode.bytes[1];
arch/x86/kernel/alternative.c
996
dest = addr + insn.length + insn.immediate.value;
arch/x86/kernel/callthunks.c
155
struct insn insn;
arch/x86/kernel/callthunks.c
159
ret = insn_decode_kernel(&insn, addr);
arch/x86/kernel/callthunks.c
164
if (insn.opcode.bytes[0] != CALL_INSN_OPCODE)
arch/x86/kernel/callthunks.c
167
dest = addr + insn.length + insn.immediate.value;
arch/x86/kernel/cfi.c
20
struct insn insn;
arch/x86/kernel/cfi.c
40
if (insn_decode_kernel(&insn, &buffer[offset]))
arch/x86/kernel/cfi.c
42
if (insn.opcode.value != 0xBA)
arch/x86/kernel/cfi.c
45
*type = -(u32)insn.immediate.value;
arch/x86/kernel/cfi.c
49
if (insn_decode_kernel(&insn, &buffer[offset]))
arch/x86/kernel/cfi.c
51
if (insn.opcode.value != 0x3)
arch/x86/kernel/cfi.c
55
offset = insn_get_modrm_rm_off(&insn, regs);
arch/x86/kernel/cpu/mce/severity.c
239
struct insn insn;
arch/x86/kernel/cpu/mce/severity.c
248
ret = insn_decode_kernel(&insn, insn_buf);
arch/x86/kernel/cpu/mce/severity.c
252
switch (insn.opcode.value) {
arch/x86/kernel/cpu/mce/severity.c
257
addr = (unsigned long)insn_get_addr_ref(&insn, regs);
arch/x86/kernel/fpu/legacy.h
18
#define user_insn(insn, output, input...) \
arch/x86/kernel/fpu/legacy.h
25
"1: " #insn "\n" \
arch/x86/kernel/fpu/legacy.h
33
#define kernel_insn_err(insn, output, input...) \
arch/x86/kernel/fpu/legacy.h
36
asm volatile("1:" #insn "\n\t" \
arch/x86/kernel/fpu/legacy.h
44
#define kernel_insn(insn, output, input...) \
arch/x86/kernel/fpu/legacy.h
45
asm volatile("1:" #insn "\n\t" \
arch/x86/kernel/jump_label.c
22
struct insn insn = {};
arch/x86/kernel/jump_label.c
24
insn_decode_kernel(&insn, (void *)jump_entry_code(entry));
arch/x86/kernel/jump_label.c
25
BUG_ON(insn.length != 2 && insn.length != 5);
arch/x86/kernel/jump_label.c
27
return insn.length;
arch/x86/kernel/kprobes/common.h
81
extern bool can_boost(struct insn *insn, void *orig_addr);
arch/x86/kernel/kprobes/common.h
89
extern int __copy_instruction(u8 *dest, u8 *src, u8 *real, struct insn *insn);
arch/x86/kernel/kprobes/core.c
1020
if ((unsigned long)p->ainsn.insn < regs->ip &&
arch/x86/kernel/kprobes/core.c
1021
(unsigned long)p->ainsn.insn + MAX_INSN_SIZE > regs->ip) {
arch/x86/kernel/kprobes/core.c
1038
if (unlikely(regs->ip == (unsigned long)cur->ainsn.insn)) {
arch/x86/kernel/kprobes/core.c
115
} __packed *insn;
arch/x86/kernel/kprobes/core.c
117
insn = (struct __arch_relative_insn *)dest;
arch/x86/kernel/kprobes/core.c
118
insn->raddr = (s32)((long)(to) - ((long)(from) + 5));
arch/x86/kernel/kprobes/core.c
119
insn->op = op;
arch/x86/kernel/kprobes/core.c
140
bool can_boost(struct insn *insn, void *addr)
arch/x86/kernel/kprobes/core.c
149
if (insn->opcode.nbytes == 2)
arch/x86/kernel/kprobes/core.c
150
return test_bit(insn->opcode.bytes[1],
arch/x86/kernel/kprobes/core.c
153
if (insn->opcode.nbytes != 1)
arch/x86/kernel/kprobes/core.c
156
for_each_insn_prefix(insn, prefix) {
arch/x86/kernel/kprobes/core.c
165
opcode = insn->opcode.bytes[0];
arch/x86/kernel/kprobes/core.c
185
return X86_MODRM_REG(insn->modrm.bytes[0]) != 0b110;
arch/x86/kernel/kprobes/core.c
188
return X86_MODRM_REG(insn->modrm.bytes[0]) != 0b001;
arch/x86/kernel/kprobes/core.c
191
return X86_MODRM_REG(insn->modrm.bytes[0]) == 0b000 ||
arch/x86/kernel/kprobes/core.c
192
X86_MODRM_REG(insn->modrm.bytes[0]) == 0b001;
arch/x86/kernel/kprobes/core.c
195
return X86_MODRM_REG(insn->modrm.bytes[0]) == 0b000 ||
arch/x86/kernel/kprobes/core.c
196
X86_MODRM_REG(insn->modrm.bytes[0]) == 0b001 ||
arch/x86/kernel/kprobes/core.c
197
X86_MODRM_REG(insn->modrm.bytes[0]) == 0b100;
arch/x86/kernel/kprobes/core.c
266
static inline bool is_exception_insn(struct insn *insn)
arch/x86/kernel/kprobes/core.c
269
if (insn->opcode.bytes[0] == 0x0f) {
arch/x86/kernel/kprobes/core.c
271
return insn->opcode.bytes[1] == 0xff ||
arch/x86/kernel/kprobes/core.c
272
insn->opcode.bytes[1] == 0xb9 ||
arch/x86/kernel/kprobes/core.c
273
insn->opcode.bytes[1] == 0x0b;
arch/x86/kernel/kprobes/core.c
277
return insn->opcode.bytes[0] == 0xcc ||
arch/x86/kernel/kprobes/core.c
278
insn->opcode.bytes[0] == 0xcd ||
arch/x86/kernel/kprobes/core.c
279
insn->opcode.bytes[0] == 0xce ||
arch/x86/kernel/kprobes/core.c
280
insn->opcode.bytes[0] == 0xf1;
arch/x86/kernel/kprobes/core.c
290
struct insn insn;
arch/x86/kernel/kprobes/core.c
311
if (insn_decode_kernel(&insn, (void *)__addr) < 0)
arch/x86/kernel/kprobes/core.c
319
if (insn.opcode.bytes[0] == INT3_INSN_OPCODE &&
arch/x86/kernel/kprobes/core.c
323
addr += insn.length;
arch/x86/kernel/kprobes/core.c
334
if (insn_decode_kernel(&insn, (void *)__addr) < 0)
arch/x86/kernel/kprobes/core.c
338
if (is_exception_insn(&insn))
arch/x86/kernel/kprobes/core.c
355
if (insn.opcode.value == 0xBA)
arch/x86/kernel/kprobes/core.c
357
else if (insn.opcode.value == 0x3)
arch/x86/kernel/kprobes/core.c
394
int __copy_instruction(u8 *dest, u8 *src, u8 *real, struct insn *insn)
arch/x86/kernel/kprobes/core.c
400
if (!recovered_insn || !insn)
arch/x86/kernel/kprobes/core.c
408
ret = insn_decode_kernel(insn, dest);
arch/x86/kernel/kprobes/core.c
413
if (insn_has_emulate_prefix(insn))
arch/x86/kernel/kprobes/core.c
417
if (insn->opcode.bytes[0] == INT3_INSN_OPCODE)
arch/x86/kernel/kprobes/core.c
421
if (insn_masking_exception(insn))
arch/x86/kernel/kprobes/core.c
426
if (insn_rip_relative(insn)) {
arch/x86/kernel/kprobes/core.c
441
newdisp = (u8 *) src + (s64) insn->displacement.value
arch/x86/kernel/kprobes/core.c
447
disp = (u8 *) dest + insn_offset_displacement(insn);
arch/x86/kernel/kprobes/core.c
451
return insn->length;
arch/x86/kernel/kprobes/core.c
456
struct insn *insn)
arch/x86/kernel/kprobes/core.c
458
int len = insn->length;
arch/x86/kernel/kprobes/core.c
461
!p->post_handler && can_boost(insn, p->addr) &&
arch/x86/kernel/kprobes/core.c
467
synthesize_reljump(buf + len, p->ainsn.insn + len,
arch/x86/kernel/kprobes/core.c
468
p->addr + insn->length);
arch/x86/kernel/kprobes/core.c
611
static int prepare_emulation(struct kprobe *p, struct insn *insn)
arch/x86/kernel/kprobes/core.c
613
insn_byte_t opcode = insn->opcode.bytes[0];
arch/x86/kernel/kprobes/core.c
641
if (insn->immediate.nbytes == 2)
arch/x86/kernel/kprobes/core.c
642
p->ainsn.rel32 = *(s16 *)&insn->immediate.value;
arch/x86/kernel/kprobes/core.c
644
p->ainsn.rel32 = *(s32 *)&insn->immediate.value;
arch/x86/kernel/kprobes/core.c
649
if (insn->immediate.nbytes == 1)
arch/x86/kernel/kprobes/core.c
650
p->ainsn.rel32 = *(s8 *)&insn->immediate.value;
arch/x86/kernel/kprobes/core.c
651
else if (insn->immediate.nbytes == 2)
arch/x86/kernel/kprobes/core.c
652
p->ainsn.rel32 = *(s16 *)&insn->immediate.value;
arch/x86/kernel/kprobes/core.c
654
p->ainsn.rel32 = *(s32 *)&insn->immediate.value;
arch/x86/kernel/kprobes/core.c
660
p->ainsn.rel32 = insn->immediate.value;
arch/x86/kernel/kprobes/core.c
663
opcode = insn->opcode.bytes[1];
arch/x86/kernel/kprobes/core.c
668
if (insn->immediate.nbytes == 2)
arch/x86/kernel/kprobes/core.c
669
p->ainsn.rel32 = *(s16 *)&insn->immediate.value;
arch/x86/kernel/kprobes/core.c
671
p->ainsn.rel32 = *(s32 *)&insn->immediate.value;
arch/x86/kernel/kprobes/core.c
673
X86_MODRM_REG(insn->modrm.bytes[0]) == 0 &&
arch/x86/kernel/kprobes/core.c
674
X86_MODRM_MOD(insn->modrm.bytes[0]) == 3) {
arch/x86/kernel/kprobes/core.c
685
p->ainsn.loop.asize = insn->addr_bytes * 8;
arch/x86/kernel/kprobes/core.c
686
p->ainsn.rel32 = *(s8 *)&insn->immediate.value;
arch/x86/kernel/kprobes/core.c
693
opcode = insn->modrm.bytes[0];
arch/x86/kernel/kprobes/core.c
709
if (insn->addr_bytes != sizeof(unsigned long))
arch/x86/kernel/kprobes/core.c
716
if (X86_REX_B(insn->rex_prefix.value))
arch/x86/kernel/kprobes/core.c
723
p->ainsn.size = insn->length;
arch/x86/kernel/kprobes/core.c
730
struct insn insn;
arch/x86/kernel/kprobes/core.c
735
len = __copy_instruction(buf, p->addr, p->ainsn.insn, &insn);
arch/x86/kernel/kprobes/core.c
740
ret = prepare_emulation(p, &insn);
arch/x86/kernel/kprobes/core.c
745
len = prepare_singlestep(buf, p, &insn);
arch/x86/kernel/kprobes/core.c
753
perf_event_text_poke(p->ainsn.insn, NULL, 0, buf, len);
arch/x86/kernel/kprobes/core.c
756
text_poke(p->ainsn.insn, buf, len);
arch/x86/kernel/kprobes/core.c
774
p->ainsn.insn = get_insn_slot();
arch/x86/kernel/kprobes/core.c
775
if (!p->ainsn.insn)
arch/x86/kernel/kprobes/core.c
780
free_insn_slot(p->ainsn.insn, 0);
arch/x86/kernel/kprobes/core.c
781
p->ainsn.insn = NULL;
arch/x86/kernel/kprobes/core.c
807
if (p->ainsn.insn) {
arch/x86/kernel/kprobes/core.c
809
perf_event_text_poke(p->ainsn.insn, p->ainsn.insn,
arch/x86/kernel/kprobes/core.c
811
free_insn_slot(p->ainsn.insn, p->ainsn.boostable);
arch/x86/kernel/kprobes/core.c
812
p->ainsn.insn = NULL;
arch/x86/kernel/kprobes/core.c
879
regs->ip = (unsigned long)p->ainsn.insn;
arch/x86/kernel/kprobes/core.c
898
regs->ip = (unsigned long)p->ainsn.insn;
arch/x86/kernel/kprobes/core.c
923
unsigned long copy_ip = (unsigned long)p->ainsn.insn;
arch/x86/kernel/kprobes/ftrace.c
73
p->ainsn.insn = NULL;
arch/x86/kernel/kprobes/opt.c
205
struct insn insn;
arch/x86/kernel/kprobes/opt.c
209
ret = __copy_instruction(dest + len, src + len, real + len, &insn);
arch/x86/kernel/kprobes/opt.c
210
if (!ret || !can_boost(&insn, src + len))
arch/x86/kernel/kprobes/opt.c
225
static int insn_is_indirect_jump(struct insn *insn)
arch/x86/kernel/kprobes/opt.c
227
return ((insn->opcode.bytes[0] == 0xff &&
arch/x86/kernel/kprobes/opt.c
228
(X86_MODRM_REG(insn->modrm.value) & 6) == 4) || /* Jump */
arch/x86/kernel/kprobes/opt.c
229
insn->opcode.bytes[0] == 0xea); /* Segment based jump */
arch/x86/kernel/kprobes/opt.c
233
static int insn_jump_into_range(struct insn *insn, unsigned long start, int len)
arch/x86/kernel/kprobes/opt.c
237
switch (insn->opcode.bytes[0]) {
arch/x86/kernel/kprobes/opt.c
246
if ((insn->opcode.bytes[1] & 0xf0) == 0x80) /* jcc near */
arch/x86/kernel/kprobes/opt.c
250
if ((insn->opcode.bytes[0] & 0xf0) == 0x70) /* jcc short */
arch/x86/kernel/kprobes/opt.c
254
target = (unsigned long)insn->next_byte + insn->immediate.value;
arch/x86/kernel/kprobes/opt.c
263
struct insn insn;
arch/x86/kernel/kprobes/opt.c
298
ret = insn_decode_kernel(&insn, (void *)recovered_insn);
arch/x86/kernel/kprobes/opt.c
306
if (insn.opcode.bytes[0] == INT3_INSN_OPCODE &&
arch/x86/kernel/kprobes/opt.c
311
insn.kaddr = (void *)addr;
arch/x86/kernel/kprobes/opt.c
312
insn.next_byte = (void *)(addr + insn.length);
arch/x86/kernel/kprobes/opt.c
325
insn_is_indirect_jump(&insn))
arch/x86/kernel/kprobes/opt.c
327
if (insn_jump_into_range(&insn, paddr + INT3_INSN_SIZE,
arch/x86/kernel/kprobes/opt.c
330
addr += insn.length;
arch/x86/kernel/kprobes/opt.c
363
u8 *slot = op->optinsn.insn;
arch/x86/kernel/kprobes/opt.c
372
op->optinsn.insn = NULL;
arch/x86/kernel/kprobes/opt.c
401
op->optinsn.insn = slot = get_optinsn_slot();
arch/x86/kernel/kprobes/opt.c
475
s32 rel = (s32)((long)op->optinsn.insn -
arch/x86/kernel/kprobes/opt.c
544
regs->ip = (unsigned long)op->optinsn.insn + TMPL_END_IDX;
arch/x86/kernel/static_call.c
106
__text_gen_insn(buf+1, op, insn+1, func, 5);
arch/x86/kernel/static_call.c
113
if (memcmp(insn, code, size) == 0)
arch/x86/kernel/static_call.c
117
return text_poke_early(insn, code, size);
arch/x86/kernel/static_call.c
119
smp_text_poke_single(insn, code, size, emulate);
arch/x86/kernel/static_call.c
122
static void __static_call_validate(u8 *insn, bool tail, bool tramp)
arch/x86/kernel/static_call.c
124
u8 opcode = insn[0];
arch/x86/kernel/static_call.c
126
if (tramp && memcmp(insn+5, tramp_ud, 3)) {
arch/x86/kernel/static_call.c
134
__is_Jcc(insn))
arch/x86/kernel/static_call.c
138
!memcmp(insn, x86_nops[5], 5) ||
arch/x86/kernel/static_call.c
139
!memcmp(insn, xor5rax, 5) ||
arch/x86/kernel/static_call.c
140
!memcmp(insn, warninsn, 5))
arch/x86/kernel/static_call.c
147
pr_err("unexpected static_call insn opcode 0x%x at %pS\n", opcode, insn);
arch/x86/kernel/static_call.c
34
static u8 __is_Jcc(u8 *insn) /* Jcc.d32 */
arch/x86/kernel/static_call.c
38
if (insn[0] == 0x0f) {
arch/x86/kernel/static_call.c
39
u8 tmp = insn[1];
arch/x86/kernel/static_call.c
58
static void __ref __static_call_transform(void *insn, enum insn_type type,
arch/x86/kernel/static_call.c
66
if ((type == JMP || type == RET) && (op = __is_Jcc(insn)))
arch/x86/kernel/static_call.c
72
code = text_gen_insn(CALL_INSN_OPCODE, insn, func);
arch/x86/kernel/static_call.c
88
code = text_gen_insn(JMP32_INSN_OPCODE, insn, func);
arch/x86/kernel/static_call.c
92
if (cpu_wants_rethunk_at(insn))
arch/x86/kernel/static_call.c
93
code = text_gen_insn(JMP32_INSN_OPCODE, insn, x86_return_thunk);
arch/x86/kernel/traps.c
757
struct insn insn;
arch/x86/kernel/traps.c
764
ret = insn_decode_kernel(&insn, insn_buf);
arch/x86/kernel/traps.c
768
*addr = (unsigned long)insn_get_addr_ref(&insn, regs);
arch/x86/kernel/traps.c
778
if (*addr + insn.opnd_bytes - 1 > __VIRTUAL_MASK)
arch/x86/kernel/umip.c
151
static int identify_insn(struct insn *insn)
arch/x86/kernel/umip.c
154
insn_get_modrm(insn);
arch/x86/kernel/umip.c
156
if (!insn->modrm.nbytes)
arch/x86/kernel/umip.c
160
if (insn->opcode.nbytes < 2 || insn->opcode.bytes[0] != 0xf)
arch/x86/kernel/umip.c
163
if (insn->opcode.bytes[1] == 0x1) {
arch/x86/kernel/umip.c
164
switch (X86_MODRM_REG(insn->modrm.value)) {
arch/x86/kernel/umip.c
167
if (X86_MODRM_MOD(insn->modrm.value) == 3)
arch/x86/kernel/umip.c
176
if (X86_MODRM_MOD(insn->modrm.value) == 3)
arch/x86/kernel/umip.c
185
} else if (insn->opcode.bytes[1] == 0x0) {
arch/x86/kernel/umip.c
186
if (X86_MODRM_REG(insn->modrm.value) == 0)
arch/x86/kernel/umip.c
188
else if (X86_MODRM_REG(insn->modrm.value) == 1)
arch/x86/kernel/umip.c
216
static int emulate_umip_insn(struct insn *insn, int umip_inst,
arch/x86/kernel/umip.c
219
if (!data || !data_size || !insn)
arch/x86/kernel/umip.c
235
if (X86_MODRM_MOD(insn->modrm.value) == 3)
arch/x86/kernel/umip.c
288
if (X86_MODRM_MOD(insn->modrm.value) == 3)
arch/x86/kernel/umip.c
289
*data_size = insn->opnd_bytes;
arch/x86/kernel/umip.c
355
struct insn insn;
arch/x86/kernel/umip.c
368
if (!insn_decode_from_regs(&insn, regs, buf, nr_copied))
arch/x86/kernel/umip.c
371
umip_inst = identify_insn(&insn);
arch/x86/kernel/umip.c
380
if (emulate_umip_insn(&insn, umip_inst, dummy_data, &dummy_data_size,
arch/x86/kernel/umip.c
390
if (X86_MODRM_MOD(insn.modrm.value) == 3) {
arch/x86/kernel/umip.c
391
reg_offset = insn_get_modrm_rm_off(&insn, regs);
arch/x86/kernel/umip.c
404
uaddr = insn_get_addr_ref(&insn, regs);
arch/x86/kernel/umip.c
420
regs->ip += insn.length;
arch/x86/kernel/uprobes.c
1007
err = uprobe_write(auprobe, vma, vaddr, insn, 1, verify_insn,
arch/x86/kernel/uprobes.c
1030
return int3_update(auprobe, vma, vaddr, auprobe->insn, false /* optimize */);
arch/x86/kernel/uprobes.c
1047
static bool __is_optimized(uprobe_opcode_t *insn, unsigned long vaddr)
arch/x86/kernel/uprobes.c
1052
} *call = (struct __arch_relative_insn *) insn;
arch/x86/kernel/uprobes.c
1054
if (!is_call_insn(insn))
arch/x86/kernel/uprobes.c
1061
uprobe_opcode_t insn[5];
arch/x86/kernel/uprobes.c
1064
err = copy_from_vaddr(mm, vaddr, &insn, 5);
arch/x86/kernel/uprobes.c
1067
return __is_optimized((uprobe_opcode_t *)&insn, vaddr);
arch/x86/kernel/uprobes.c
1107
return uprobe_write_opcode(auprobe, vma, vaddr, *(uprobe_opcode_t *)&auprobe->insn,
arch/x86/kernel/uprobes.c
1134
uprobe_opcode_t insn[5];
arch/x86/kernel/uprobes.c
1145
if (copy_from_vaddr(mm, vaddr, &insn, 5))
arch/x86/kernel/uprobes.c
1147
if (!is_swbp_insn((uprobe_opcode_t*) &insn))
arch/x86/kernel/uprobes.c
1161
static bool can_optimize(struct insn *insn, unsigned long vaddr)
arch/x86/kernel/uprobes.c
1163
if (!insn->x86_64 || insn->length != 5)
arch/x86/kernel/uprobes.c
1166
if (!insn_is_nop(insn))
arch/x86/kernel/uprobes.c
1176
static void riprel_analyze(struct arch_uprobe *auprobe, struct insn *insn)
arch/x86/kernel/uprobes.c
1185
static bool can_optimize(struct insn *insn, unsigned long vaddr)
arch/x86/kernel/uprobes.c
1372
static void branch_clear_offset(struct arch_uprobe *auprobe, struct insn *insn)
arch/x86/kernel/uprobes.c
1388
memset(auprobe->insn + insn_offset_immediate(insn),
arch/x86/kernel/uprobes.c
1389
0, insn->immediate.nbytes);
arch/x86/kernel/uprobes.c
1402
static int branch_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn)
arch/x86/kernel/uprobes.c
1404
u8 opc1 = OPCODE1(insn);
arch/x86/kernel/uprobes.c
1407
if (insn_is_nop(insn))
arch/x86/kernel/uprobes.c
1416
branch_clear_offset(auprobe, insn);
arch/x86/kernel/uprobes.c
1420
if (insn->opcode.nbytes != 2)
arch/x86/kernel/uprobes.c
1426
opc1 = OPCODE2(insn) - 0x10;
arch/x86/kernel/uprobes.c
1438
for_each_insn_prefix(insn, p) {
arch/x86/kernel/uprobes.c
1445
auprobe->branch.ilen = insn->length;
arch/x86/kernel/uprobes.c
1446
auprobe->branch.offs = insn->immediate.value;
arch/x86/kernel/uprobes.c
1453
static int push_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn)
arch/x86/kernel/uprobes.c
1455
u8 opc1 = OPCODE1(insn), reg_offset = 0;
arch/x86/kernel/uprobes.c
1460
if (insn->length > 2)
arch/x86/kernel/uprobes.c
1462
if (insn->length == 2) {
arch/x86/kernel/uprobes.c
1465
if (insn->rex_prefix.nbytes != 1 ||
arch/x86/kernel/uprobes.c
1466
insn->rex_prefix.bytes[0] != 0x41)
arch/x86/kernel/uprobes.c
1528
auprobe->push.ilen = insn->length;
arch/x86/kernel/uprobes.c
1543
struct insn insn;
arch/x86/kernel/uprobes.c
1546
ret = uprobe_init_insn(auprobe, &insn, is_64bit_mm(mm));
arch/x86/kernel/uprobes.c
1550
if (can_optimize(&insn, addr))
arch/x86/kernel/uprobes.c
1553
ret = branch_setup_xol_ops(auprobe, &insn);
arch/x86/kernel/uprobes.c
1557
ret = push_setup_xol_ops(auprobe, &insn);
arch/x86/kernel/uprobes.c
1565
switch (OPCODE1(&insn)) {
arch/x86/kernel/uprobes.c
1580
switch (MODRM_REG(&insn)) {
arch/x86/kernel/uprobes.c
1590
riprel_analyze(auprobe, &insn);
arch/x86/kernel/uprobes.c
1593
auprobe->defparam.ilen = insn.length;
arch/x86/kernel/uprobes.c
1817
if (auprobe->insn[0] == 0x55)
arch/x86/kernel/uprobes.c
1821
if (user_64bit_mode(regs) && is_endbr((u32 *)auprobe->insn))
arch/x86/kernel/uprobes.c
259
static bool is_prefix_bad(struct insn *insn)
arch/x86/kernel/uprobes.c
263
for_each_insn_prefix(insn, p) {
arch/x86/kernel/uprobes.c
279
static int uprobe_init_insn(struct arch_uprobe *auprobe, struct insn *insn, bool x86_64)
arch/x86/kernel/uprobes.c
285
ret = insn_decode(insn, auprobe->insn, sizeof(auprobe->insn), m);
arch/x86/kernel/uprobes.c
289
if (is_prefix_bad(insn))
arch/x86/kernel/uprobes.c
293
if (insn_masking_exception(insn))
arch/x86/kernel/uprobes.c
301
if (test_bit(OPCODE1(insn), (unsigned long *)good_insns))
arch/x86/kernel/uprobes.c
304
if (insn->opcode.nbytes == 2) {
arch/x86/kernel/uprobes.c
305
if (test_bit(OPCODE2(insn), (unsigned long *)good_2byte_insns))
arch/x86/kernel/uprobes.c
351
static uprobe_opcode_t insn = UPROBE_SWBP_INSN;
arch/x86/kernel/uprobes.c
365
return &insn;
arch/x86/kernel/uprobes.c
44
#define OPCODE1(insn) ((insn)->opcode.bytes[0])
arch/x86/kernel/uprobes.c
45
#define OPCODE2(insn) ((insn)->opcode.bytes[1])
arch/x86/kernel/uprobes.c
46
#define OPCODE3(insn) ((insn)->opcode.bytes[2])
arch/x86/kernel/uprobes.c
465
static void riprel_analyze(struct arch_uprobe *auprobe, struct insn *insn)
arch/x86/kernel/uprobes.c
47
#define MODRM_REG(insn) X86_MODRM_REG((insn)->modrm.value)
arch/x86/kernel/uprobes.c
471
if (!insn_rip_relative(insn))
arch/x86/kernel/uprobes.c
479
if (insn->rex_prefix.nbytes) {
arch/x86/kernel/uprobes.c
480
cursor = auprobe->insn + insn_offset_rex_prefix(insn);
arch/x86/kernel/uprobes.c
488
if (insn->vex_prefix.nbytes >= 3) {
arch/x86/kernel/uprobes.c
499
cursor = auprobe->insn + insn_offset_vex_prefix(insn) + 1;
arch/x86/kernel/uprobes.c
543
reg = MODRM_REG(insn); /* Fetch modrm.reg */
arch/x86/kernel/uprobes.c
545
if (insn->vex_prefix.nbytes)
arch/x86/kernel/uprobes.c
546
reg2 = insn->vex_prefix.bytes[2];
arch/x86/kernel/uprobes.c
577
cursor = auprobe->insn + insn_offset_modrm(insn);
arch/x86/kernel/uprobes.c
920
static int is_call_insn(uprobe_opcode_t *insn)
arch/x86/kernel/uprobes.c
922
return *insn == CALL_INSN_OPCODE;
arch/x86/kernel/uprobes.c
966
unsigned long vaddr, char *insn, bool optimize)
arch/x86/kernel/uprobes.c
993
err = uprobe_write(auprobe, vma, vaddr + 1, insn + 1, 4, verify_insn,
arch/x86/kvm/emulate.c
401
#define asm_safe(insn, inoutclob...) \
arch/x86/kvm/emulate.c
405
asm volatile("1:" insn "\n" \
arch/x86/kvm/emulate.c
4842
int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len, int emulation_type)
arch/x86/kvm/emulate.c
4861
memcpy(ctxt->fetch.data, insn, insn_len);
arch/x86/kvm/kvm_emulate.h
528
int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len, int emulation_type);
arch/x86/kvm/mmu.h
94
u64 fault_address, char *insn, int insn_len);
arch/x86/kvm/mmu/mmu.c
4844
u64 fault_address, char *insn, int insn_len)
arch/x86/kvm/mmu/mmu.c
4872
r = kvm_mmu_page_fault(vcpu, fault_address, error_code, insn,
arch/x86/kvm/mmu/mmu.c
6399
void *insn, int insn_len)
arch/x86/kvm/mmu/mmu.c
6466
return x86_emulate_instruction(vcpu, cr2_or_gpa, emulation_type, insn,
arch/x86/kvm/svm/svm.c
1916
void *insn, int insn_len);
arch/x86/kvm/svm/svm.c
4916
void *insn, int insn_len)
arch/x86/kvm/svm/svm.c
4973
if (unlikely(!insn)) {
arch/x86/kvm/svm/svm_ops.h
11
asm goto("1: " __stringify(insn) "\n\t" \
arch/x86/kvm/svm/svm_ops.h
19
#define svm_asm1(insn, op1, clobber...) \
arch/x86/kvm/svm/svm_ops.h
21
asm goto("1: " __stringify(insn) " %0\n\t" \
arch/x86/kvm/svm/svm_ops.h
29
#define svm_asm2(insn, op1, op2, clobber...) \
arch/x86/kvm/svm/svm_ops.h
31
asm goto("1: " __stringify(insn) " %1, %0\n\t" \
arch/x86/kvm/svm/svm_ops.h
9
#define svm_asm(insn, clobber...) \
arch/x86/kvm/trace.h
924
__array( __u8, insn, X86_MAX_INSTRUCTION_LENGTH )
arch/x86/kvm/trace.h
935
memcpy(__entry->insn,
arch/x86/kvm/trace.h
944
__print_hex(__entry->insn, __entry->len),
arch/x86/kvm/vmx/main.c
249
void *insn, int insn_len)
arch/x86/kvm/vmx/main.c
261
return vmx_check_emulate_instruction(vcpu, emul_type, insn, insn_len);
arch/x86/kvm/vmx/vmx.c
1798
void *insn, int insn_len)
arch/x86/kvm/vmx/vmx_ops.h
191
#define vmx_asm1(insn, op1, error_args...) \
arch/x86/kvm/vmx/vmx_ops.h
193
asm goto("1: " __stringify(insn) " %0\n\t" \
arch/x86/kvm/vmx/vmx_ops.h
201
insn##_error(error_args); \
arch/x86/kvm/vmx/vmx_ops.h
208
#define vmx_asm2(insn, op1, op2, error_args...) \
arch/x86/kvm/vmx/vmx_ops.h
210
asm goto("1: " __stringify(insn) " %1, %0\n\t" \
arch/x86/kvm/vmx/vmx_ops.h
218
insn##_error(error_args); \
arch/x86/kvm/vmx/x86_ops.h
41
void *insn, int insn_len);
arch/x86/kvm/x86.c
2238
static int kvm_emulate_monitor_mwait(struct kvm_vcpu *vcpu, const char *insn)
arch/x86/kvm/x86.c
2254
pr_warn_once("%s instruction emulated as NOP!\n", insn);
arch/x86/kvm/x86.c
8020
void *insn, int insn_len)
arch/x86/kvm/x86.c
8023
insn, insn_len);
arch/x86/kvm/x86.c
9400
void *insn, int insn_len)
arch/x86/kvm/x86.c
9407
r = x86_decode_insn(ctxt, insn, insn_len, emulation_type);
arch/x86/kvm/x86.c
9417
int emulation_type, void *insn, int insn_len)
arch/x86/kvm/x86.c
9428
r = kvm_check_emulate_insn(vcpu, emulation_type, insn, insn_len);
arch/x86/kvm/x86.c
9460
insn, insn_len);
arch/x86/kvm/x86.c
9645
void *insn, int insn_len)
arch/x86/kvm/x86.c
9647
return x86_emulate_instruction(vcpu, 0, 0, insn, insn_len);
arch/x86/kvm/x86.h
472
void *insn, int insn_len);
arch/x86/kvm/x86.h
474
int emulation_type, void *insn, int insn_len);
arch/x86/lib/insn-eval.c
100
for_each_insn_prefix(insn, p) {
arch/x86/lib/insn-eval.c
1022
static int get_eff_addr_modrm(struct insn *insn, struct pt_regs *regs,
arch/x86/lib/insn-eval.c
1028
if (insn->addr_bytes != 8 && insn->addr_bytes != 4)
arch/x86/lib/insn-eval.c
1031
ret = insn_get_modrm(insn);
arch/x86/lib/insn-eval.c
1035
if (X86_MODRM_MOD(insn->modrm.value) > 2)
arch/x86/lib/insn-eval.c
1038
*regoff = get_reg_offset(insn, regs, REG_TYPE_RM);
arch/x86/lib/insn-eval.c
1047
tmp = regs->ip + insn->length;
arch/x86/lib/insn-eval.c
1056
if (insn->addr_bytes == 4) {
arch/x86/lib/insn-eval.c
1057
int addr32 = (int)(tmp & 0xffffffff) + insn->displacement.value;
arch/x86/lib/insn-eval.c
1061
*eff_addr = tmp + insn->displacement.value;
arch/x86/lib/insn-eval.c
1089
static int get_eff_addr_modrm_16(struct insn *insn, struct pt_regs *regs,
arch/x86/lib/insn-eval.c
1095
if (insn->addr_bytes != 2)
arch/x86/lib/insn-eval.c
1098
insn_get_modrm(insn);
arch/x86/lib/insn-eval.c
1100
if (!insn->modrm.nbytes)
arch/x86/lib/insn-eval.c
1103
if (X86_MODRM_MOD(insn->modrm.value) > 2)
arch/x86/lib/insn-eval.c
1106
ret = get_reg_offset_16(insn, regs, &addr_offset1, &addr_offset2);
arch/x86/lib/insn-eval.c
1121
displacement = insn->displacement.value & 0xffff;
arch/x86/lib/insn-eval.c
1157
static int get_eff_addr_sib(struct insn *insn, struct pt_regs *regs,
arch/x86/lib/insn-eval.c
1164
if (insn->addr_bytes != 8 && insn->addr_bytes != 4)
arch/x86/lib/insn-eval.c
1167
ret = insn_get_modrm(insn);
arch/x86/lib/insn-eval.c
1171
if (!insn->modrm.nbytes)
arch/x86/lib/insn-eval.c
1174
if (X86_MODRM_MOD(insn->modrm.value) > 2)
arch/x86/lib/insn-eval.c
1177
ret = insn_get_sib(insn);
arch/x86/lib/insn-eval.c
1181
if (!insn->sib.nbytes)
arch/x86/lib/insn-eval.c
1184
*base_offset = get_reg_offset(insn, regs, REG_TYPE_BASE);
arch/x86/lib/insn-eval.c
1185
indx_offset = get_reg_offset(insn, regs, REG_TYPE_INDEX);
arch/x86/lib/insn-eval.c
1206
if (insn->addr_bytes == 4) {
arch/x86/lib/insn-eval.c
1212
addr32 = base32 + idx32 * (1 << X86_SIB_SCALE(insn->sib.value));
arch/x86/lib/insn-eval.c
1213
addr32 += insn->displacement.value;
arch/x86/lib/insn-eval.c
1217
*eff_addr = base + indx * (1 << X86_SIB_SCALE(insn->sib.value));
arch/x86/lib/insn-eval.c
1218
*eff_addr += insn->displacement.value;
arch/x86/lib/insn-eval.c
1241
static void __user *get_addr_ref_16(struct insn *insn, struct pt_regs *regs)
arch/x86/lib/insn-eval.c
1248
if (insn_get_displacement(insn))
arch/x86/lib/insn-eval.c
1251
if (insn->addr_bytes != 2)
arch/x86/lib/insn-eval.c
1254
if (X86_MODRM_MOD(insn->modrm.value) == 3) {
arch/x86/lib/insn-eval.c
1255
ret = get_eff_addr_reg(insn, regs, &regoff, &tmp);
arch/x86/lib/insn-eval.c
1261
ret = get_eff_addr_modrm_16(insn, regs, &regoff, &eff_addr);
arch/x86/lib/insn-eval.c
1266
ret = get_seg_base_limit(insn, regs, regoff, &seg_base, &seg_limit);
arch/x86/lib/insn-eval.c
1305
static void __user *get_addr_ref_32(struct insn *insn, struct pt_regs *regs)
arch/x86/lib/insn-eval.c
1312
if (insn->addr_bytes != 4)
arch/x86/lib/insn-eval.c
1315
if (X86_MODRM_MOD(insn->modrm.value) == 3) {
arch/x86/lib/insn-eval.c
1316
ret = get_eff_addr_reg(insn, regs, &regoff, &tmp);
arch/x86/lib/insn-eval.c
1323
if (insn->sib.nbytes) {
arch/x86/lib/insn-eval.c
1324
ret = get_eff_addr_sib(insn, regs, &regoff, &tmp);
arch/x86/lib/insn-eval.c
1330
ret = get_eff_addr_modrm(insn, regs, &regoff, &tmp);
arch/x86/lib/insn-eval.c
1338
ret = get_seg_base_limit(insn, regs, regoff, &seg_base, &seg_limit);
arch/x86/lib/insn-eval.c
1394
static void __user *get_addr_ref_64(struct insn *insn, struct pt_regs *regs)
arch/x86/lib/insn-eval.c
1399
static void __user *get_addr_ref_64(struct insn *insn, struct pt_regs *regs)
arch/x86/lib/insn-eval.c
1405
if (insn->addr_bytes != 8)
arch/x86/lib/insn-eval.c
1408
if (X86_MODRM_MOD(insn->modrm.value) == 3) {
arch/x86/lib/insn-eval.c
1409
ret = get_eff_addr_reg(insn, regs, &regoff, &eff_addr);
arch/x86/lib/insn-eval.c
1414
if (insn->sib.nbytes) {
arch/x86/lib/insn-eval.c
1415
ret = get_eff_addr_sib(insn, regs, &regoff, &eff_addr);
arch/x86/lib/insn-eval.c
1419
ret = get_eff_addr_modrm(insn, regs, &regoff, &eff_addr);
arch/x86/lib/insn-eval.c
1426
ret = get_seg_base_limit(insn, regs, regoff, &seg_base, NULL);
arch/x86/lib/insn-eval.c
1452
void __user *insn_get_addr_ref(struct insn *insn, struct pt_regs *regs)
arch/x86/lib/insn-eval.c
1454
if (!insn || !regs)
arch/x86/lib/insn-eval.c
1457
if (insn_get_opcode(insn))
arch/x86/lib/insn-eval.c
1460
switch (insn->addr_bytes) {
arch/x86/lib/insn-eval.c
1462
return get_addr_ref_16(insn, regs);
arch/x86/lib/insn-eval.c
1464
return get_addr_ref_32(insn, regs);
arch/x86/lib/insn-eval.c
1466
return get_addr_ref_64(insn, regs);
arch/x86/lib/insn-eval.c
154
static bool check_seg_overrides(struct insn *insn, int regoff)
arch/x86/lib/insn-eval.c
156
if (regoff == offsetof(struct pt_regs, di) && is_string_insn(insn))
arch/x86/lib/insn-eval.c
1562
bool insn_decode_from_regs(struct insn *insn, struct pt_regs *regs,
arch/x86/lib/insn-eval.c
1567
insn_init(insn, buf, buf_size, user_64bit_mode(regs));
arch/x86/lib/insn-eval.c
1583
insn->addr_bytes = INSN_CODE_SEG_ADDR_SZ(seg_defs);
arch/x86/lib/insn-eval.c
1584
insn->opnd_bytes = INSN_CODE_SEG_OPND_SZ(seg_defs);
arch/x86/lib/insn-eval.c
1586
if (insn_get_length(insn))
arch/x86/lib/insn-eval.c
1589
if (buf_size < insn->length)
arch/x86/lib/insn-eval.c
1607
enum insn_mmio_type insn_decode_mmio(struct insn *insn, int *bytes)
arch/x86/lib/insn-eval.c
1613
if (insn_get_opcode(insn))
arch/x86/lib/insn-eval.c
1616
switch (insn->opcode.bytes[0]) {
arch/x86/lib/insn-eval.c
1622
*bytes = insn->opnd_bytes;
arch/x86/lib/insn-eval.c
1631
*bytes = insn->opnd_bytes;
arch/x86/lib/insn-eval.c
1640
*bytes = insn->opnd_bytes;
arch/x86/lib/insn-eval.c
1649
*bytes = insn->opnd_bytes;
arch/x86/lib/insn-eval.c
1654
switch (insn->opcode.bytes[1]) {
arch/x86/lib/insn-eval.c
1695
bool insn_is_nop(struct insn *insn)
arch/x86/lib/insn-eval.c
1704
if ((nrex = insn->rex_prefix.nbytes)) {
arch/x86/lib/insn-eval.c
1705
rex = insn->rex_prefix.bytes[nrex-1];
arch/x86/lib/insn-eval.c
1717
} else if (insn->vex_prefix.nbytes) {
arch/x86/lib/insn-eval.c
1724
if (insn->modrm.nbytes) {
arch/x86/lib/insn-eval.c
1725
modrm = insn->modrm.bytes[0];
arch/x86/lib/insn-eval.c
1732
if (insn->sib.nbytes) {
arch/x86/lib/insn-eval.c
1733
sib = insn->sib.bytes[0];
arch/x86/lib/insn-eval.c
1742
for_each_insn_prefix(insn, p) {
arch/x86/lib/insn-eval.c
1755
case 1: insn->opcode.value <<= 8;
arch/x86/lib/insn-eval.c
1756
insn->opcode.value |= 0x0f;
arch/x86/lib/insn-eval.c
1762
switch (insn->opcode.bytes[0]) {
arch/x86/lib/insn-eval.c
1771
if (insn->opnd_bytes != 4 * (1 + insn->x86_64))
arch/x86/lib/insn-eval.c
1781
if (insn->opnd_bytes != 4 * (1 + insn->x86_64))
arch/x86/lib/insn-eval.c
1784
if (insn->displacement.value != 0)
arch/x86/lib/insn-eval.c
179
static int resolve_default_seg(struct insn *insn, struct pt_regs *regs, int off)
arch/x86/lib/insn-eval.c
1790
for_each_insn_prefix(insn, p) {
arch/x86/lib/insn-eval.c
1808
return insn->immediate.value == 0; /* JMP +0 */
arch/x86/lib/insn-eval.c
1814
switch (insn->opcode.bytes[1]) {
arch/x86/lib/insn-eval.c
202
if (insn->addr_bytes == 2)
arch/x86/lib/insn-eval.c
213
if (is_string_insn(insn))
arch/x86/lib/insn-eval.c
281
static int resolve_seg_reg(struct insn *insn, struct pt_regs *regs, int regoff)
arch/x86/lib/insn-eval.c
298
if (!insn)
arch/x86/lib/insn-eval.c
301
if (!check_seg_overrides(insn, regoff))
arch/x86/lib/insn-eval.c
302
return resolve_default_seg(insn, regs, regoff);
arch/x86/lib/insn-eval.c
304
idx = get_seg_reg_override_idx(insn);
arch/x86/lib/insn-eval.c
309
return resolve_default_seg(insn, regs, regoff);
arch/x86/lib/insn-eval.c
39
static bool is_string_insn(struct insn *insn)
arch/x86/lib/insn-eval.c
42
if (insn->opcode.nbytes != 1)
arch/x86/lib/insn-eval.c
447
static int get_regno(struct insn *insn, enum reg_type type)
arch/x86/lib/insn-eval.c
45
switch (insn->opcode.bytes[0]) {
arch/x86/lib/insn-eval.c
456
if (IS_ENABLED(CONFIG_X86_64) && !insn->x86_64)
arch/x86/lib/insn-eval.c
461
regno = X86_MODRM_RM(insn->modrm.value);
arch/x86/lib/insn-eval.c
467
if (!X86_MODRM_MOD(insn->modrm.value) && regno == 5)
arch/x86/lib/insn-eval.c
470
if (X86_REX_B(insn->rex_prefix.value))
arch/x86/lib/insn-eval.c
475
regno = X86_MODRM_REG(insn->modrm.value);
arch/x86/lib/insn-eval.c
477
if (X86_REX_R(insn->rex_prefix.value))
arch/x86/lib/insn-eval.c
482
regno = X86_SIB_INDEX(insn->sib.value);
arch/x86/lib/insn-eval.c
483
if (X86_REX_X(insn->rex_prefix.value))
arch/x86/lib/insn-eval.c
492
if (X86_MODRM_MOD(insn->modrm.value) != 3 && regno == 4)
arch/x86/lib/insn-eval.c
497
regno = X86_SIB_BASE(insn->sib.value);
arch/x86/lib/insn-eval.c
503
if (!X86_MODRM_MOD(insn->modrm.value) && regno == 5)
arch/x86/lib/insn-eval.c
506
if (X86_REX_B(insn->rex_prefix.value))
arch/x86/lib/insn-eval.c
522
static int get_reg_offset(struct insn *insn, struct pt_regs *regs,
arch/x86/lib/insn-eval.c
525
int regno = get_regno(insn, type);
arch/x86/lib/insn-eval.c
550
static int get_reg_offset_16(struct insn *insn, struct pt_regs *regs,
arch/x86/lib/insn-eval.c
584
if (X86_MODRM_MOD(insn->modrm.value) == 3) {
arch/x86/lib/insn-eval.c
585
*offs1 = insn_get_modrm_rm_off(insn, regs);
arch/x86/lib/insn-eval.c
590
*offs1 = regoff1[X86_MODRM_RM(insn->modrm.value)];
arch/x86/lib/insn-eval.c
591
*offs2 = regoff2[X86_MODRM_RM(insn->modrm.value)];
arch/x86/lib/insn-eval.c
600
if ((X86_MODRM_MOD(insn->modrm.value) == 0) &&
arch/x86/lib/insn-eval.c
601
(X86_MODRM_RM(insn->modrm.value) == 6))
arch/x86/lib/insn-eval.c
63
bool insn_has_rep_prefix(struct insn *insn)
arch/x86/lib/insn-eval.c
67
insn_get_prefixes(insn);
arch/x86/lib/insn-eval.c
69
for_each_insn_prefix(insn, p) {
arch/x86/lib/insn-eval.c
862
int insn_get_modrm_rm_off(struct insn *insn, struct pt_regs *regs)
arch/x86/lib/insn-eval.c
864
return get_reg_offset(insn, regs, REG_TYPE_RM);
arch/x86/lib/insn-eval.c
877
int insn_get_modrm_reg_off(struct insn *insn, struct pt_regs *regs)
arch/x86/lib/insn-eval.c
879
return get_reg_offset(insn, regs, REG_TYPE_REG);
arch/x86/lib/insn-eval.c
892
unsigned long *insn_get_modrm_reg_ptr(struct insn *insn, struct pt_regs *regs)
arch/x86/lib/insn-eval.c
896
offset = insn_get_modrm_reg_off(insn, regs);
arch/x86/lib/insn-eval.c
91
static int get_seg_reg_override_idx(struct insn *insn)
arch/x86/lib/insn-eval.c
923
static int get_seg_base_limit(struct insn *insn, struct pt_regs *regs,
arch/x86/lib/insn-eval.c
932
seg_reg_idx = resolve_seg_reg(insn, regs, regoff);
arch/x86/lib/insn-eval.c
97
insn_get_prefixes(insn);
arch/x86/lib/insn-eval.c
973
static int get_eff_addr_reg(struct insn *insn, struct pt_regs *regs,
arch/x86/lib/insn-eval.c
978
ret = insn_get_modrm(insn);
arch/x86/lib/insn-eval.c
982
if (X86_MODRM_MOD(insn->modrm.value) != 3)
arch/x86/lib/insn-eval.c
985
*regoff = get_reg_offset(insn, regs, REG_TYPE_RM);
arch/x86/lib/insn-eval.c
990
if (insn->addr_bytes == 2)
arch/x86/lib/insn-eval.c
992
else if (insn->addr_bytes == 4)
arch/x86/lib/insn.c
104
static void insn_get_emulate_prefix(struct insn *insn)
arch/x86/lib/insn.c
106
if (__insn_get_emulate_prefix(insn, xen_prefix, sizeof(xen_prefix)))
arch/x86/lib/insn.c
109
__insn_get_emulate_prefix(insn, kvm_prefix, sizeof(kvm_prefix));
arch/x86/lib/insn.c
124
int insn_get_prefixes(struct insn *insn)
arch/x86/lib/insn.c
126
struct insn_field *prefixes = &insn->prefixes;
arch/x86/lib/insn.c
134
insn_get_emulate_prefix(insn);
arch/x86/lib/insn.c
138
b = peek_next(insn_byte_t, insn);
arch/x86/lib/insn.c
151
if (insn->x86_64)
arch/x86/lib/insn.c
152
insn->addr_bytes ^= 12;
arch/x86/lib/insn.c
154
insn->addr_bytes ^= 6;
arch/x86/lib/insn.c
157
insn->opnd_bytes ^= 6;
arch/x86/lib/insn.c
161
insn->next_byte++;
arch/x86/lib/insn.c
163
b = peek_next(insn_byte_t, insn);
arch/x86/lib/insn.c
167
if (lb && lb != insn->prefixes.bytes[3]) {
arch/x86/lib/insn.c
168
if (unlikely(insn->prefixes.bytes[3])) {
arch/x86/lib/insn.c
170
b = insn->prefixes.bytes[3];
arch/x86/lib/insn.c
175
insn_set_byte(&insn->prefixes, 3, lb);
arch/x86/lib/insn.c
179
if (insn->x86_64) {
arch/x86/lib/insn.c
180
b = peek_next(insn_byte_t, insn);
arch/x86/lib/insn.c
183
insn_field_set(&insn->rex_prefix, b, 1);
arch/x86/lib/insn.c
184
insn->next_byte++;
arch/x86/lib/insn.c
187
insn->opnd_bytes = 8;
arch/x86/lib/insn.c
189
insn_set_byte(&insn->rex_prefix, 0, b);
arch/x86/lib/insn.c
190
b = peek_nbyte_next(insn_byte_t, insn, 1);
arch/x86/lib/insn.c
191
insn_set_byte(&insn->rex_prefix, 1, b);
arch/x86/lib/insn.c
192
insn->rex_prefix.nbytes = 2;
arch/x86/lib/insn.c
193
insn->next_byte += 2;
arch/x86/lib/insn.c
196
insn->opnd_bytes = 8;
arch/x86/lib/insn.c
197
insn->rex_prefix.got = 1;
arch/x86/lib/insn.c
201
insn->rex_prefix.got = 1;
arch/x86/lib/insn.c
204
b = peek_next(insn_byte_t, insn);
arch/x86/lib/insn.c
206
insn_byte_t b2 = peek_nbyte_next(insn_byte_t, insn, 1);
arch/x86/lib/insn.c
211
} else if (!insn->x86_64) {
arch/x86/lib/insn.c
220
insn_set_byte(&insn->vex_prefix, 0, b);
arch/x86/lib/insn.c
221
insn_set_byte(&insn->vex_prefix, 1, b2);
arch/x86/lib/insn.c
223
b2 = peek_nbyte_next(insn_byte_t, insn, 2);
arch/x86/lib/insn.c
224
insn_set_byte(&insn->vex_prefix, 2, b2);
arch/x86/lib/insn.c
225
b2 = peek_nbyte_next(insn_byte_t, insn, 3);
arch/x86/lib/insn.c
226
insn_set_byte(&insn->vex_prefix, 3, b2);
arch/x86/lib/insn.c
227
insn->vex_prefix.nbytes = 4;
arch/x86/lib/insn.c
228
insn->next_byte += 4;
arch/x86/lib/insn.c
229
if (insn->x86_64 && X86_VEX_W(b2))
arch/x86/lib/insn.c
231
insn->opnd_bytes = 8;
arch/x86/lib/insn.c
233
b2 = peek_nbyte_next(insn_byte_t, insn, 2);
arch/x86/lib/insn.c
234
insn_set_byte(&insn->vex_prefix, 2, b2);
arch/x86/lib/insn.c
235
insn->vex_prefix.nbytes = 3;
arch/x86/lib/insn.c
236
insn->next_byte += 3;
arch/x86/lib/insn.c
237
if (insn->x86_64 && X86_VEX_W(b2))
arch/x86/lib/insn.c
239
insn->opnd_bytes = 8;
arch/x86/lib/insn.c
246
insn_set_byte(&insn->vex_prefix, 2, b2 & 0x7f);
arch/x86/lib/insn.c
247
insn->vex_prefix.nbytes = 2;
arch/x86/lib/insn.c
248
insn->next_byte += 2;
arch/x86/lib/insn.c
252
insn->vex_prefix.got = 1;
arch/x86/lib/insn.c
276
int insn_get_opcode(struct insn *insn)
arch/x86/lib/insn.c
278
struct insn_field *opcode = &insn->opcode;
arch/x86/lib/insn.c
285
ret = insn_get_prefixes(insn);
arch/x86/lib/insn.c
290
op = get_next(insn_byte_t, insn);
arch/x86/lib/insn.c
295
if (insn_is_avx_or_xop(insn)) {
arch/x86/lib/insn.c
299
if (unlikely(avx_insn_is_xop(insn))) {
arch/x86/lib/insn.c
300
m = insn_xop_map_bits(insn);
arch/x86/lib/insn.c
301
insn->attr = inat_get_xop_attribute(op, m);
arch/x86/lib/insn.c
302
if (!inat_accept_xop(insn->attr)) {
arch/x86/lib/insn.c
303
insn->attr = 0;
arch/x86/lib/insn.c
310
m = insn_vex_m_bits(insn);
arch/x86/lib/insn.c
311
p = insn_vex_p_bits(insn);
arch/x86/lib/insn.c
312
insn->attr = inat_get_avx_attribute(op, m, p);
arch/x86/lib/insn.c
314
if (inat_evex_scalable(insn->attr) && !insn_vex_w_bit(insn) &&
arch/x86/lib/insn.c
316
insn->opnd_bytes = 2;
arch/x86/lib/insn.c
317
if ((inat_must_evex(insn->attr) && !insn_is_evex(insn)) ||
arch/x86/lib/insn.c
318
(!inat_accept_vex(insn->attr) &&
arch/x86/lib/insn.c
319
!inat_is_group(insn->attr))) {
arch/x86/lib/insn.c
321
insn->attr = 0;
arch/x86/lib/insn.c
329
if (insn_is_rex2(insn)) {
arch/x86/lib/insn.c
330
if (insn_rex2_m_bit(insn)) {
arch/x86/lib/insn.c
334
pfx_id = insn_last_prefix_id(insn);
arch/x86/lib/insn.c
335
insn->attr = inat_get_escape_attribute(op, pfx_id, esc_attr);
arch/x86/lib/insn.c
337
insn->attr = inat_get_opcode_attribute(op);
arch/x86/lib/insn.c
342
insn->attr = inat_get_opcode_attribute(op);
arch/x86/lib/insn.c
343
if (insn->x86_64 && inat_is_invalid64(insn->attr)) {
arch/x86/lib/insn.c
345
insn->attr &= INAT_INV64;
arch/x86/lib/insn.c
348
while (inat_is_escape(insn->attr)) {
arch/x86/lib/insn.c
350
op = get_next(insn_byte_t, insn);
arch/x86/lib/insn.c
352
pfx_id = insn_last_prefix_id(insn);
arch/x86/lib/insn.c
353
insn->attr = inat_get_escape_attribute(op, pfx_id, insn->attr);
arch/x86/lib/insn.c
356
if (inat_must_vex(insn->attr)) {
arch/x86/lib/insn.c
358
insn->attr = 0;
arch/x86/lib/insn.c
37
#define validate_next(t, insn, n) \
arch/x86/lib/insn.c
38
((insn)->next_byte + sizeof(t) + n <= (insn)->end_kaddr)
arch/x86/lib/insn.c
382
int insn_get_modrm(struct insn *insn)
arch/x86/lib/insn.c
384
struct insn_field *modrm = &insn->modrm;
arch/x86/lib/insn.c
391
ret = insn_get_opcode(insn);
arch/x86/lib/insn.c
395
if (inat_has_modrm(insn->attr)) {
arch/x86/lib/insn.c
396
mod = get_next(insn_byte_t, insn);
arch/x86/lib/insn.c
398
if (inat_is_group(insn->attr)) {
arch/x86/lib/insn.c
399
pfx_id = insn_last_prefix_id(insn);
arch/x86/lib/insn.c
40
#define __get_next(t, insn) \
arch/x86/lib/insn.c
400
insn->attr = inat_get_group_attribute(mod, pfx_id,
arch/x86/lib/insn.c
401
insn->attr);
arch/x86/lib/insn.c
402
if (insn_is_avx_or_xop(insn) && !inat_accept_vex(insn->attr) &&
arch/x86/lib/insn.c
403
!inat_accept_xop(insn->attr)) {
arch/x86/lib/insn.c
405
insn->attr = 0;
arch/x86/lib/insn.c
41
({ t r = get_unaligned((t *)(insn)->next_byte); (insn)->next_byte += sizeof(t); leXX_to_cpu(t, r); })
arch/x86/lib/insn.c
411
if (insn->x86_64 && inat_is_force64(insn->attr))
arch/x86/lib/insn.c
412
insn->opnd_bytes = 8;
arch/x86/lib/insn.c
429
int insn_rip_relative(struct insn *insn)
arch/x86/lib/insn.c
43
#define __peek_nbyte_next(t, insn, n) \
arch/x86/lib/insn.c
431
struct insn_field *modrm = &insn->modrm;
arch/x86/lib/insn.c
434
if (!insn->x86_64)
arch/x86/lib/insn.c
437
ret = insn_get_modrm(insn);
arch/x86/lib/insn.c
44
({ t r = get_unaligned((t *)(insn)->next_byte + n); leXX_to_cpu(t, r); })
arch/x86/lib/insn.c
458
int insn_get_sib(struct insn *insn)
arch/x86/lib/insn.c
46
#define get_next(t, insn) \
arch/x86/lib/insn.c
463
if (insn->sib.got)
arch/x86/lib/insn.c
466
ret = insn_get_modrm(insn);
arch/x86/lib/insn.c
47
({ if (unlikely(!validate_next(t, insn, 0))) goto err_out; __get_next(t, insn); })
arch/x86/lib/insn.c
470
if (insn->modrm.nbytes) {
arch/x86/lib/insn.c
471
modrm = insn->modrm.bytes[0];
arch/x86/lib/insn.c
472
if (insn->addr_bytes != 2 &&
arch/x86/lib/insn.c
474
insn_field_set(&insn->sib,
arch/x86/lib/insn.c
475
get_next(insn_byte_t, insn), 1);
arch/x86/lib/insn.c
478
insn->sib.got = 1;
arch/x86/lib/insn.c
49
#define peek_nbyte_next(t, insn, n) \
arch/x86/lib/insn.c
499
int insn_get_displacement(struct insn *insn)
arch/x86/lib/insn.c
50
({ if (unlikely(!validate_next(t, insn, n))) goto err_out; __peek_nbyte_next(t, insn, n); })
arch/x86/lib/insn.c
504
if (insn->displacement.got)
arch/x86/lib/insn.c
507
ret = insn_get_sib(insn);
arch/x86/lib/insn.c
511
if (insn->modrm.nbytes) {
arch/x86/lib/insn.c
52
#define peek_next(t, insn) peek_nbyte_next(t, insn, 0)
arch/x86/lib/insn.c
529
mod = X86_MODRM_MOD(insn->modrm.value);
arch/x86/lib/insn.c
530
rm = X86_MODRM_RM(insn->modrm.value);
arch/x86/lib/insn.c
531
base = X86_SIB_BASE(insn->sib.value);
arch/x86/lib/insn.c
535
insn_field_set(&insn->displacement,
arch/x86/lib/insn.c
536
get_next(signed char, insn), 1);
arch/x86/lib/insn.c
537
} else if (insn->addr_bytes == 2) {
arch/x86/lib/insn.c
539
insn_field_set(&insn->displacement,
arch/x86/lib/insn.c
540
get_next(short, insn), 2);
arch/x86/lib/insn.c
545
insn_field_set(&insn->displacement,
arch/x86/lib/insn.c
546
get_next(int, insn), 4);
arch/x86/lib/insn.c
551
insn->displacement.got = 1;
arch/x86/lib/insn.c
559
static int __get_moffset(struct insn *insn)
arch/x86/lib/insn.c
561
switch (insn->addr_bytes) {
arch/x86/lib/insn.c
563
insn_field_set(&insn->moffset1, get_next(short, insn), 2);
arch/x86/lib/insn.c
566
insn_field_set(&insn->moffset1, get_next(int, insn), 4);
arch/x86/lib/insn.c
569
insn_field_set(&insn->moffset1, get_next(int, insn), 4);
arch/x86/lib/insn.c
570
insn_field_set(&insn->moffset2, get_next(int, insn), 4);
arch/x86/lib/insn.c
575
insn->moffset1.got = insn->moffset2.got = 1;
arch/x86/lib/insn.c
584
static int __get_immv32(struct insn *insn)
arch/x86/lib/insn.c
586
switch (insn->opnd_bytes) {
arch/x86/lib/insn.c
588
insn_field_set(&insn->immediate, get_next(short, insn), 2);
arch/x86/lib/insn.c
592
insn_field_set(&insn->immediate, get_next(int, insn), 4);
arch/x86/lib/insn.c
605
static int __get_immv(struct insn *insn)
arch/x86/lib/insn.c
607
switch (insn->opnd_bytes) {
arch/x86/lib/insn.c
609
insn_field_set(&insn->immediate1, get_next(short, insn), 2);
arch/x86/lib/insn.c
61
void insn_init(struct insn *insn, const void *kaddr, int buf_len, int x86_64)
arch/x86/lib/insn.c
612
insn_field_set(&insn->immediate1, get_next(int, insn), 4);
arch/x86/lib/insn.c
613
insn->immediate1.nbytes = 4;
arch/x86/lib/insn.c
616
insn_field_set(&insn->immediate1, get_next(int, insn), 4);
arch/x86/lib/insn.c
617
insn_field_set(&insn->immediate2, get_next(int, insn), 4);
arch/x86/lib/insn.c
622
insn->immediate1.got = insn->immediate2.got = 1;
arch/x86/lib/insn.c
630
static int __get_immptr(struct insn *insn)
arch/x86/lib/insn.c
632
switch (insn->opnd_bytes) {
arch/x86/lib/insn.c
634
insn_field_set(&insn->immediate1, get_next(short, insn), 2);
arch/x86/lib/insn.c
637
insn_field_set(&insn->immediate1, get_next(int, insn), 4);
arch/x86/lib/insn.c
645
insn_field_set(&insn->immediate2, get_next(unsigned short, insn), 2);
arch/x86/lib/insn.c
646
insn->immediate1.got = insn->immediate2.got = 1;
arch/x86/lib/insn.c
666
int insn_get_immediate(struct insn *insn)
arch/x86/lib/insn.c
670
if (insn->immediate.got)
arch/x86/lib/insn.c
673
ret = insn_get_displacement(insn);
arch/x86/lib/insn.c
677
if (inat_has_moffset(insn->attr)) {
arch/x86/lib/insn.c
678
if (!__get_moffset(insn))
arch/x86/lib/insn.c
683
if (!inat_has_immediate(insn->attr))
arch/x86/lib/insn.c
686
switch (inat_immediate_size(insn->attr)) {
arch/x86/lib/insn.c
688
insn_field_set(&insn->immediate, get_next(signed char, insn), 1);
arch/x86/lib/insn.c
691
insn_field_set(&insn->immediate, get_next(short, insn), 2);
arch/x86/lib/insn.c
694
insn_field_set(&insn->immediate, get_next(int, insn), 4);
arch/x86/lib/insn.c
697
insn_field_set(&insn->immediate1, get_next(int, insn), 4);
arch/x86/lib/insn.c
698
insn_field_set(&insn->immediate2, get_next(int, insn), 4);
arch/x86/lib/insn.c
70
memset(insn, 0, sizeof(*insn));
arch/x86/lib/insn.c
701
if (!__get_immptr(insn))
arch/x86/lib/insn.c
705
if (!__get_immv32(insn))
arch/x86/lib/insn.c
709
if (!__get_immv(insn))
arch/x86/lib/insn.c
71
insn->kaddr = kaddr;
arch/x86/lib/insn.c
716
if (inat_has_second_immediate(insn->attr)) {
arch/x86/lib/insn.c
717
insn_field_set(&insn->immediate2, get_next(signed char, insn), 1);
arch/x86/lib/insn.c
72
insn->end_kaddr = kaddr + buf_len;
arch/x86/lib/insn.c
720
insn->immediate.got = 1;
arch/x86/lib/insn.c
73
insn->next_byte = kaddr;
arch/x86/lib/insn.c
738
int insn_get_length(struct insn *insn)
arch/x86/lib/insn.c
74
insn->x86_64 = x86_64;
arch/x86/lib/insn.c
742
if (insn->length)
arch/x86/lib/insn.c
745
ret = insn_get_immediate(insn);
arch/x86/lib/insn.c
749
insn->length = (unsigned char)((unsigned long)insn->next_byte
arch/x86/lib/insn.c
75
insn->opnd_bytes = 4;
arch/x86/lib/insn.c
750
- (unsigned long)insn->kaddr);
arch/x86/lib/insn.c
756
static inline int insn_complete(struct insn *insn)
arch/x86/lib/insn.c
758
return insn->opcode.got && insn->modrm.got && insn->sib.got &&
arch/x86/lib/insn.c
759
insn->displacement.got && insn->immediate.got;
arch/x86/lib/insn.c
77
insn->addr_bytes = 8;
arch/x86/lib/insn.c
773
int insn_decode(struct insn *insn, const void *kaddr, int buf_len, enum insn_mode m)
arch/x86/lib/insn.c
780
insn_init(insn, kaddr, buf_len, IS_ENABLED(CONFIG_X86_64));
arch/x86/lib/insn.c
782
insn_init(insn, kaddr, buf_len, m == INSN_MODE_64);
arch/x86/lib/insn.c
784
ret = insn_get_length(insn);
arch/x86/lib/insn.c
788
if (insn_complete(insn))
arch/x86/lib/insn.c
79
insn->addr_bytes = 4;
arch/x86/lib/insn.c
85
static int __insn_get_emulate_prefix(struct insn *insn,
arch/x86/lib/insn.c
91
if (peek_nbyte_next(insn_byte_t, insn, i) != prefix[i])
arch/x86/lib/insn.c
95
insn->emulate_prefix_size = len;
arch/x86/lib/insn.c
96
insn->next_byte += len;
arch/x86/mm/extable.c
61
struct insn insn;
arch/x86/mm/extable.c
71
if (insn_decode(&insn, (void *) regs->ip, len, INSN_MODE_KERN))
arch/x86/mm/extable.c
73
if (insn.length != len)
arch/x86/mm/extable.c
76
if (insn.opcode.bytes[0] != 0x8b)
arch/x86/mm/extable.c
78
if (insn.opnd_bytes != sizeof(long))
arch/x86/mm/extable.c
81
addr = (unsigned long) insn_get_addr_ref(&insn, regs);
arch/x86/mm/extable.c
90
reg = insn_get_modrm_reg_ptr(&insn, regs);
arch/x86/net/bpf_jit_comp.c
1504
static void detect_reg_usage(struct bpf_insn *insn, int insn_cnt,
arch/x86/net/bpf_jit_comp.c
1509
for (i = 1; i <= insn_cnt; i++, insn++) {
arch/x86/net/bpf_jit_comp.c
1510
if (insn->dst_reg == BPF_REG_6 || insn->src_reg == BPF_REG_6)
arch/x86/net/bpf_jit_comp.c
1512
if (insn->dst_reg == BPF_REG_7 || insn->src_reg == BPF_REG_7)
arch/x86/net/bpf_jit_comp.c
1514
if (insn->dst_reg == BPF_REG_8 || insn->src_reg == BPF_REG_8)
arch/x86/net/bpf_jit_comp.c
1516
if (insn->dst_reg == BPF_REG_9 || insn->src_reg == BPF_REG_9)
arch/x86/net/bpf_jit_comp.c
1656
struct bpf_insn *insn = bpf_prog->insnsi;
arch/x86/net/bpf_jit_comp.c
1680
detect_reg_usage(insn, insn_cnt, callee_regs_used);
arch/x86/net/bpf_jit_comp.c
1717
for (i = 1; i <= insn_cnt; i++, insn++) {
arch/x86/net/bpf_jit_comp.c
1718
const s32 imm32 = insn->imm;
arch/x86/net/bpf_jit_comp.c
1719
u32 dst_reg = insn->dst_reg;
arch/x86/net/bpf_jit_comp.c
1720
u32 src_reg = insn->src_reg;
arch/x86/net/bpf_jit_comp.c
1737
switch (insn->code) {
arch/x86/net/bpf_jit_comp.c
1750
BPF_CLASS(insn->code) == BPF_ALU64);
arch/x86/net/bpf_jit_comp.c
1751
b2 = simple_alu_opcodes[BPF_OP(insn->code)];
arch/x86/net/bpf_jit_comp.c
1756
if (insn_is_cast_user(insn)) {
arch/x86/net/bpf_jit_comp.c
1787
} else if (insn_is_mov_percpu_addr(insn)) {
arch/x86/net/bpf_jit_comp.c
1800
if (insn->off == 0)
arch/x86/net/bpf_jit_comp.c
1802
BPF_CLASS(insn->code) == BPF_ALU64,
arch/x86/net/bpf_jit_comp.c
1805
emit_movsx_reg(&prog, insn->off,
arch/x86/net/bpf_jit_comp.c
1806
BPF_CLASS(insn->code) == BPF_ALU64,
arch/x86/net/bpf_jit_comp.c
1814
BPF_CLASS(insn->code) == BPF_ALU64);
arch/x86/net/bpf_jit_comp.c
1829
BPF_CLASS(insn->code) == BPF_ALU64);
arch/x86/net/bpf_jit_comp.c
1835
switch (BPF_OP(insn->code)) {
arch/x86/net/bpf_jit_comp.c
1868
emit_mov_imm32(&prog, BPF_CLASS(insn->code) == BPF_ALU64,
arch/x86/net/bpf_jit_comp.c
1873
emit_mov_imm64(&prog, dst_reg, insn[1].imm, insn[0].imm);
arch/x86/net/bpf_jit_comp.c
1874
insn++;
arch/x86/net/bpf_jit_comp.c
1887
bool is64 = BPF_CLASS(insn->code) == BPF_ALU64;
arch/x86/net/bpf_jit_comp.c
1894
if (BPF_SRC(insn->code) == BPF_X) {
arch/x86/net/bpf_jit_comp.c
1911
if (insn->off == 0) {
arch/x86/net/bpf_jit_comp.c
1922
if (BPF_CLASS(insn->code) == BPF_ALU)
arch/x86/net/bpf_jit_comp.c
1932
if (BPF_OP(insn->code) == BPF_MOD &&
arch/x86/net/bpf_jit_comp.c
1936
else if (BPF_OP(insn->code) == BPF_DIV &&
arch/x86/net/bpf_jit_comp.c
1951
BPF_CLASS(insn->code) == BPF_ALU64);
arch/x86/net/bpf_jit_comp.c
1967
BPF_CLASS(insn->code) == BPF_ALU64);
arch/x86/net/bpf_jit_comp.c
1981
BPF_CLASS(insn->code) == BPF_ALU64);
arch/x86/net/bpf_jit_comp.c
1983
b3 = simple_alu_opcodes[BPF_OP(insn->code)];
arch/x86/net/bpf_jit_comp.c
1999
bool w = (BPF_CLASS(insn->code) == BPF_ALU64);
arch/x86/net/bpf_jit_comp.c
2002
switch (BPF_OP(insn->code)) {
arch/x86/net/bpf_jit_comp.c
2034
BPF_CLASS(insn->code) == BPF_ALU64);
arch/x86/net/bpf_jit_comp.c
2036
b3 = simple_alu_opcodes[BPF_OP(insn->code)];
arch/x86/net/bpf_jit_comp.c
2040
if (insn->dst_reg == BPF_REG_4)
arch/x86/net/bpf_jit_comp.c
2042
EMIT_mov(insn->dst_reg, AUX_REG);
arch/x86/net/bpf_jit_comp.c
2134
st: if (is_imm8(insn->off))
arch/x86/net/bpf_jit_comp.c
2135
EMIT2(add_1reg(0x40, dst_reg), insn->off);
arch/x86/net/bpf_jit_comp.c
2137
EMIT1_off32(add_1reg(0x80, dst_reg), insn->off);
arch/x86/net/bpf_jit_comp.c
2139
EMIT(imm32, bpf_size_to_x86_bytes(BPF_SIZE(insn->code)));
arch/x86/net/bpf_jit_comp.c
2147
emit_stx(&prog, BPF_SIZE(insn->code), dst_reg, src_reg, insn->off);
arch/x86/net/bpf_jit_comp.c
2155
emit_st_r12(&prog, BPF_SIZE(insn->code), dst_reg, insn->off, insn->imm);
arch/x86/net/bpf_jit_comp.c
2171
if (BPF_CLASS(insn->code) == BPF_LDX) {
arch/x86/net/bpf_jit_comp.c
2172
if (BPF_MODE(insn->code) == BPF_PROBE_MEM32SX)
arch/x86/net/bpf_jit_comp.c
2173
emit_ldsx_r12(&prog, BPF_SIZE(insn->code), dst_reg, src_reg, insn->off);
arch/x86/net/bpf_jit_comp.c
2175
emit_ldx_r12(&prog, BPF_SIZE(insn->code), dst_reg, src_reg, insn->off);
arch/x86/net/bpf_jit_comp.c
2177
emit_stx_r12(&prog, BPF_SIZE(insn->code), dst_reg, src_reg, insn->off);
arch/x86/net/bpf_jit_comp.c
2195
delta = _insn - (u8 *)&ex->insn;
arch/x86/net/bpf_jit_comp.c
2199
ex->insn = delta;
arch/x86/net/bpf_jit_comp.c
2212
if (BPF_CLASS(insn->code) == BPF_LDX) {
arch/x86/net/bpf_jit_comp.c
2225
ex->data |= FIELD_PREP(DATA_ARENA_OFFSET_MASK, insn->off);
arch/x86/net/bpf_jit_comp.c
2245
insn_off = insn->off;
arch/x86/net/bpf_jit_comp.c
2247
if (BPF_MODE(insn->code) == BPF_PROBE_MEM ||
arch/x86/net/bpf_jit_comp.c
2248
BPF_MODE(insn->code) == BPF_PROBE_MEMSX) {
arch/x86/net/bpf_jit_comp.c
2265
if (insn->off) {
arch/x86/net/bpf_jit_comp.c
2268
EMIT2_off32(0x81, add_1reg(0xC0, AUX_REG), insn->off);
arch/x86/net/bpf_jit_comp.c
2296
if (BPF_MODE(insn->code) == BPF_PROBE_MEMSX ||
arch/x86/net/bpf_jit_comp.c
2297
BPF_MODE(insn->code) == BPF_MEMSX)
arch/x86/net/bpf_jit_comp.c
2298
emit_ldsx(&prog, BPF_SIZE(insn->code), dst_reg, src_reg, insn_off);
arch/x86/net/bpf_jit_comp.c
2300
emit_ldx(&prog, BPF_SIZE(insn->code), dst_reg, src_reg, insn_off);
arch/x86/net/bpf_jit_comp.c
2301
if (BPF_MODE(insn->code) == BPF_PROBE_MEM ||
arch/x86/net/bpf_jit_comp.c
2302
BPF_MODE(insn->code) == BPF_PROBE_MEMSX) {
arch/x86/net/bpf_jit_comp.c
2319
delta = _insn - (u8 *)&ex->insn;
arch/x86/net/bpf_jit_comp.c
2327
ex->insn = delta;
arch/x86/net/bpf_jit_comp.c
2350
if (!bpf_atomic_is_load_store(insn)) {
arch/x86/net/bpf_jit_comp.c
2357
if (insn->imm == (BPF_AND | BPF_FETCH) ||
arch/x86/net/bpf_jit_comp.c
2358
insn->imm == (BPF_OR | BPF_FETCH) ||
arch/x86/net/bpf_jit_comp.c
2359
insn->imm == (BPF_XOR | BPF_FETCH)) {
arch/x86/net/bpf_jit_comp.c
2360
bool is64 = BPF_SIZE(insn->code) == BPF_DW;
arch/x86/net/bpf_jit_comp.c
2379
emit_ldx(&prog, BPF_SIZE(insn->code),
arch/x86/net/bpf_jit_comp.c
2380
BPF_REG_0, real_dst_reg, insn->off);
arch/x86/net/bpf_jit_comp.c
2387
EMIT2(simple_alu_opcodes[BPF_OP(insn->imm)],
arch/x86/net/bpf_jit_comp.c
2392
insn->off,
arch/x86/net/bpf_jit_comp.c
2393
BPF_SIZE(insn->code));
arch/x86/net/bpf_jit_comp.c
2408
if (bpf_atomic_is_load_store(insn))
arch/x86/net/bpf_jit_comp.c
2409
err = emit_atomic_ld_st(&prog, insn->imm, dst_reg, src_reg,
arch/x86/net/bpf_jit_comp.c
2410
insn->off, BPF_SIZE(insn->code));
arch/x86/net/bpf_jit_comp.c
2412
err = emit_atomic_rmw(&prog, insn->imm, dst_reg, src_reg,
arch/x86/net/bpf_jit_comp.c
2413
insn->off, BPF_SIZE(insn->code));
arch/x86/net/bpf_jit_comp.c
2420
if (!bpf_atomic_is_load_store(insn)) {
arch/x86/net/bpf_jit_comp.c
2429
if (bpf_atomic_is_load_store(insn))
arch/x86/net/bpf_jit_comp.c
2430
err = emit_atomic_ld_st_index(&prog, insn->imm,
arch/x86/net/bpf_jit_comp.c
2431
BPF_SIZE(insn->code), dst_reg,
arch/x86/net/bpf_jit_comp.c
2432
src_reg, X86_REG_R12, insn->off);
arch/x86/net/bpf_jit_comp.c
2434
err = emit_atomic_rmw_index(&prog, insn->imm, BPF_SIZE(insn->code),
arch/x86/net/bpf_jit_comp.c
2436
insn->off);
arch/x86/net/bpf_jit_comp.c
2504
BPF_CLASS(insn->code) == BPF_JMP);
arch/x86/net/bpf_jit_comp.c
2512
BPF_CLASS(insn->code) == BPF_JMP);
arch/x86/net/bpf_jit_comp.c
2520
BPF_CLASS(insn->code) == BPF_JMP);
arch/x86/net/bpf_jit_comp.c
2547
BPF_CLASS(insn->code) == BPF_JMP);
arch/x86/net/bpf_jit_comp.c
2554
BPF_CLASS(insn->code) == BPF_JMP);
arch/x86/net/bpf_jit_comp.c
2562
switch (BPF_OP(insn->code)) {
arch/x86/net/bpf_jit_comp.c
2605
jmp_offset = addrs[i + insn->off] - addrs[i];
arch/x86/net/bpf_jit_comp.c
2642
emit_indirect_jump(&prog, insn->dst_reg, image + addrs[i - 1]);
arch/x86/net/bpf_jit_comp.c
2646
if (BPF_CLASS(insn->code) == BPF_JMP) {
arch/x86/net/bpf_jit_comp.c
2647
if (insn->off == -1)
arch/x86/net/bpf_jit_comp.c
2656
jmp_offset = addrs[i + insn->off] - addrs[i];
arch/x86/net/bpf_jit_comp.c
2658
if (insn->imm == -1)
arch/x86/net/bpf_jit_comp.c
2661
jmp_offset = addrs[i + insn->imm] - addrs[i];
arch/x86/net/bpf_jit_comp.c
2758
pr_err("bpf_jit: unknown opcode %02x\n", insn->code);
arch/x86/net/bpf_jit_comp.c
4076
bool bpf_jit_supports_insn(struct bpf_insn *insn, bool in_arena)
arch/x86/net/bpf_jit_comp.c
4080
switch (insn->code) {
arch/x86/net/bpf_jit_comp.c
4083
if (insn->imm == (BPF_AND | BPF_FETCH) ||
arch/x86/net/bpf_jit_comp.c
4084
insn->imm == (BPF_OR | BPF_FETCH) ||
arch/x86/net/bpf_jit_comp.c
4085
insn->imm == (BPF_XOR | BPF_FETCH))
arch/x86/net/bpf_jit_comp32.c
1570
const struct bpf_insn *insn, u8 **pprog)
arch/x86/net/bpf_jit_comp32.c
1581
fm = bpf_jit_find_kfunc_model(bpf_prog, insn);
arch/x86/net/bpf_jit_comp32.c
1631
jmp_offset = (u8 *)__bpf_call_base + insn->imm - end_addr;
arch/x86/net/bpf_jit_comp32.c
1662
struct bpf_insn *insn = bpf_prog->insnsi;
arch/x86/net/bpf_jit_comp32.c
1672
for (i = 0; i < insn_cnt; i++, insn++) {
arch/x86/net/bpf_jit_comp32.c
1673
const s32 imm32 = insn->imm;
arch/x86/net/bpf_jit_comp32.c
1674
const bool is64 = BPF_CLASS(insn->code) == BPF_ALU64;
arch/x86/net/bpf_jit_comp32.c
1675
const bool dstk = insn->dst_reg != BPF_REG_AX;
arch/x86/net/bpf_jit_comp32.c
1676
const bool sstk = insn->src_reg != BPF_REG_AX;
arch/x86/net/bpf_jit_comp32.c
1677
const u8 code = insn->code;
arch/x86/net/bpf_jit_comp32.c
1678
const u8 *dst = bpf2ia32[insn->dst_reg];
arch/x86/net/bpf_jit_comp32.c
1679
const u8 *src = bpf2ia32[insn->src_reg];
arch/x86/net/bpf_jit_comp32.c
1898
hi = insn[1].imm;
arch/x86/net/bpf_jit_comp32.c
1901
insn++;
arch/x86/net/bpf_jit_comp32.c
1934
if (is_imm8(insn->off))
arch/x86/net/bpf_jit_comp32.c
1935
EMIT2(add_1reg(0x40, IA32_EAX), insn->off);
arch/x86/net/bpf_jit_comp32.c
1938
insn->off);
arch/x86/net/bpf_jit_comp32.c
1946
insn->off + 4);
arch/x86/net/bpf_jit_comp32.c
1982
if (is_imm8(insn->off))
arch/x86/net/bpf_jit_comp32.c
1984
insn->off);
arch/x86/net/bpf_jit_comp32.c
1987
insn->off);
arch/x86/net/bpf_jit_comp32.c
2000
if (is_imm8(insn->off + 4)) {
arch/x86/net/bpf_jit_comp32.c
2003
insn->off + 4);
arch/x86/net/bpf_jit_comp32.c
2007
EMIT(insn->off + 4, 4);
arch/x86/net/bpf_jit_comp32.c
2035
if (is_imm8(insn->off))
arch/x86/net/bpf_jit_comp32.c
2037
insn->off);
arch/x86/net/bpf_jit_comp32.c
2040
insn->off);
arch/x86/net/bpf_jit_comp32.c
2068
insn->off + 4);
arch/x86/net/bpf_jit_comp32.c
2091
if (insn->src_reg == BPF_PSEUDO_CALL)
arch/x86/net/bpf_jit_comp32.c
2094
if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL) {
arch/x86/net/bpf_jit_comp32.c
2099
insn, &prog);
arch/x86/net/bpf_jit_comp32.c
2161
bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
arch/x86/net/bpf_jit_comp32.c
2232
bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
arch/x86/net/bpf_jit_comp32.c
2276
bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
arch/x86/net/bpf_jit_comp32.c
2332
bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
arch/x86/net/bpf_jit_comp32.c
2365
jmp_offset = addrs[i + insn->off] - addrs[i];
arch/x86/net/bpf_jit_comp32.c
2414
jmp_offset = addrs[i + insn->off] - addrs[i] + 8;
arch/x86/net/bpf_jit_comp32.c
2427
jmp_offset = addrs[i + insn->off] - addrs[i];
arch/x86/net/bpf_jit_comp32.c
2437
if (insn->off == -1)
arch/x86/net/bpf_jit_comp32.c
2446
jmp_offset = addrs[i + insn->off] - addrs[i];
arch/x86/tools/insn_decoder_test.c
114
struct insn insn;
arch/x86/tools/insn_decoder_test.c
152
ret = insn_decode(&insn, insn_buff, sizeof(insn_buff),
arch/x86/tools/insn_decoder_test.c
155
if (ret < 0 || insn.length != nb) {
arch/x86/tools/insn_decoder_test.c
161
"says %d\n", nb, insn.length);
arch/x86/tools/insn_decoder_test.c
163
dump_insn(stderr, &insn);
arch/x86/tools/insn_decoder_test.c
69
static void dump_insn(FILE *fp, struct insn *insn)
arch/x86/tools/insn_decoder_test.c
72
dump_field(fp, "prefixes", "\t", &insn->prefixes);
arch/x86/tools/insn_decoder_test.c
73
dump_field(fp, "rex_prefix", "\t", &insn->rex_prefix);
arch/x86/tools/insn_decoder_test.c
74
dump_field(fp, "vex_prefix", "\t", &insn->vex_prefix);
arch/x86/tools/insn_decoder_test.c
75
dump_field(fp, "opcode", "\t", &insn->opcode);
arch/x86/tools/insn_decoder_test.c
76
dump_field(fp, "modrm", "\t", &insn->modrm);
arch/x86/tools/insn_decoder_test.c
77
dump_field(fp, "sib", "\t", &insn->sib);
arch/x86/tools/insn_decoder_test.c
78
dump_field(fp, "displacement", "\t", &insn->displacement);
arch/x86/tools/insn_decoder_test.c
79
dump_field(fp, "immediate1", "\t", &insn->immediate1);
arch/x86/tools/insn_decoder_test.c
80
dump_field(fp, "immediate2", "\t", &insn->immediate2);
arch/x86/tools/insn_decoder_test.c
82
insn->attr, insn->opnd_bytes, insn->addr_bytes);
arch/x86/tools/insn_decoder_test.c
84
insn->length, insn->x86_64, insn->kaddr);
arch/x86/tools/insn_sanity.c
222
struct insn insn;
arch/x86/tools/insn_sanity.c
240
ret = insn_decode(&insn, insn_buff, sizeof(insn_buff),
arch/x86/tools/insn_sanity.c
243
if (insn.next_byte <= insn.kaddr ||
arch/x86/tools/insn_sanity.c
244
insn.kaddr + MAX_INSN_SIZE < insn.next_byte) {
arch/x86/tools/insn_sanity.c
246
dump_stream(stderr, "Error: Found an access violation", i, insn_buff, &insn);
arch/x86/tools/insn_sanity.c
249
dump_stream(stdout, "Info: Found an undecodable input", i, insn_buff, &insn);
arch/x86/tools/insn_sanity.c
251
dump_insn(stdout, &insn);
arch/x86/tools/insn_sanity.c
63
static void dump_insn(FILE *fp, struct insn *insn)
arch/x86/tools/insn_sanity.c
66
dump_field(fp, "prefixes", "\t", &insn->prefixes);
arch/x86/tools/insn_sanity.c
67
dump_field(fp, "rex_prefix", "\t", &insn->rex_prefix);
arch/x86/tools/insn_sanity.c
68
dump_field(fp, "vex_prefix", "\t", &insn->vex_prefix);
arch/x86/tools/insn_sanity.c
69
dump_field(fp, "opcode", "\t", &insn->opcode);
arch/x86/tools/insn_sanity.c
70
dump_field(fp, "modrm", "\t", &insn->modrm);
arch/x86/tools/insn_sanity.c
71
dump_field(fp, "sib", "\t", &insn->sib);
arch/x86/tools/insn_sanity.c
72
dump_field(fp, "displacement", "\t", &insn->displacement);
arch/x86/tools/insn_sanity.c
73
dump_field(fp, "immediate1", "\t", &insn->immediate1);
arch/x86/tools/insn_sanity.c
74
dump_field(fp, "immediate2", "\t", &insn->immediate2);
arch/x86/tools/insn_sanity.c
76
insn->attr, insn->opnd_bytes, insn->addr_bytes);
arch/x86/tools/insn_sanity.c
78
insn->length, insn->x86_64, insn->kaddr);
arch/x86/tools/insn_sanity.c
82
unsigned char *insn_buff, struct insn *insn)
arch/x86/tools/insn_sanity.c
88
dump_insn(fp, insn);
arch/x86/um/fault.c
12
unsigned long insn;
arch/xtensa/include/asm/bitops.h
101
#define BIT_OP(op, insn, inv) \
arch/xtensa/include/asm/bitops.h
111
" "insn" %[tmp], %[tmp], %[mask]\n" \
arch/xtensa/include/asm/bitops.h
120
#define TEST_AND_BIT_OP(op, insn, inv) \
arch/xtensa/include/asm/bitops.h
131
" "insn" %[tmp], %[value], %[mask]\n" \
arch/xtensa/include/asm/bitops.h
144
#define BIT_OP(op, insn, inv) \
arch/xtensa/include/asm/bitops.h
155
" "insn" %[tmp], %[value], %[mask]\n" \
arch/xtensa/include/asm/bitops.h
164
#define TEST_AND_BIT_OP(op, insn, inv) \
arch/xtensa/include/asm/bitops.h
176
" "insn" %[tmp], %[value], %[mask]\n" \
arch/xtensa/include/asm/bitops.h
189
#define BIT_OP(op, insn, inv)
arch/xtensa/include/asm/bitops.h
190
#define TEST_AND_BIT_OP(op, insn, inv)
arch/xtensa/include/asm/bitops.h
196
#define BIT_OPS(op, insn, inv) \
arch/xtensa/include/asm/bitops.h
197
BIT_OP(op, insn, inv) \
arch/xtensa/include/asm/bitops.h
198
TEST_AND_BIT_OP(op, insn, inv)
arch/xtensa/include/asm/cacheasm.h
35
.macro __loop_cache_unroll ar at insn size line_width max_immed
arch/xtensa/include/asm/cacheasm.h
56
.macro __loop_cache_all ar at insn size line_width max_immed
arch/xtensa/include/asm/cacheasm.h
64
.macro __loop_cache_range ar as at insn line_width
arch/xtensa/include/asm/cacheasm.h
76
.macro __loop_cache_page ar at insn line_width max_immed
arch/xtensa/include/asm/futex.h
24
#define __futex_atomic_op(insn, ret, old, uaddr, arg) \
arch/xtensa/include/asm/futex.h
27
insn "\n" \
arch/xtensa/include/asm/futex.h
48
#define __futex_atomic_op(insn, ret, old, uaddr, arg) \
arch/xtensa/include/asm/futex.h
51
insn "\n" \
arch/xtensa/include/asm/uaccess.h
130
#define __put_user_asm(x_, addr_, err_, align, insn, cb)\
arch/xtensa/include/asm/uaccess.h
133
"1: "insn" %[x], %[mem] \n" \
arch/xtensa/include/asm/uaccess.h
198
#define __get_user_asm(x_, addr_, err_, align, insn, cb) \
arch/xtensa/include/asm/uaccess.h
203
"1: "insn" %[x], %[mem] \n" \
arch/xtensa/kernel/jump_label.c
78
u32 insn;
arch/xtensa/kernel/jump_label.c
86
insn = ((d & J_OFFSET_MASK) << 6) | J_INSN;
arch/xtensa/kernel/jump_label.c
88
insn = ((d & J_OFFSET_MASK) << 8) | J_INSN;
arch/xtensa/kernel/jump_label.c
91
insn = NOP_INSN;
arch/xtensa/kernel/jump_label.c
94
patch_text(jump_entry_code(e), &insn, JUMP_LABEL_NOP_SIZE);
drivers/comedi/comedi_fops.c
1313
static int check_insn_config_length(struct comedi_insn *insn,
drivers/comedi/comedi_fops.c
1316
if (insn->n < 1)
drivers/comedi/comedi_fops.c
1324
if (insn->n == 1)
drivers/comedi/comedi_fops.c
1341
if (insn->n == 2)
drivers/comedi/comedi_fops.c
1354
if (insn->n == 3)
drivers/comedi/comedi_fops.c
1360
if (insn->n == 5)
drivers/comedi/comedi_fops.c
1364
if (insn->n == 6)
drivers/comedi/comedi_fops.c
1368
if (insn->n >= 4)
drivers/comedi/comedi_fops.c
1379
pr_warn("Assuming n=%i is correct\n", insn->n);
drivers/comedi/comedi_fops.c
1385
static int check_insn_device_config_length(struct comedi_insn *insn,
drivers/comedi/comedi_fops.c
1388
if (insn->n < 1)
drivers/comedi/comedi_fops.c
1395
if (insn->n == 3)
drivers/comedi/comedi_fops.c
1404
if (insn->n >= 2)
drivers/comedi/comedi_fops.c
1437
static int parse_insn(struct comedi_device *dev, struct comedi_insn *insn,
drivers/comedi/comedi_fops.c
1445
if (insn->insn & INSN_MASK_SPECIAL) {
drivers/comedi/comedi_fops.c
1448
switch (insn->insn) {
drivers/comedi/comedi_fops.c
1453
if (insn->n != 2) {
drivers/comedi/comedi_fops.c
1467
if (insn->n != 1 || data[0] >= 100000) {
drivers/comedi/comedi_fops.c
1475
if (insn->n != 1) {
drivers/comedi/comedi_fops.c
1479
if (insn->subdev >= dev->n_subdevices) {
drivers/comedi/comedi_fops.c
1482
insn->subdev);
drivers/comedi/comedi_fops.c
1486
s = &dev->subdevices[insn->subdev];
drivers/comedi/comedi_fops.c
1502
ret = check_insn_device_config_length(insn, data);
drivers/comedi/comedi_fops.c
1511
data[1] = (insn->n - 2) / 2;
drivers/comedi/comedi_fops.c
1517
ret = dev->insn_device_config(dev, insn, data);
drivers/comedi/comedi_fops.c
1528
if (insn->subdev >= dev->n_subdevices) {
drivers/comedi/comedi_fops.c
1530
insn->subdev);
drivers/comedi/comedi_fops.c
1534
s = &dev->subdevices[insn->subdev];
drivers/comedi/comedi_fops.c
1538
insn->subdev);
drivers/comedi/comedi_fops.c
1550
ret = comedi_check_chanlist(s, 1, &insn->chanspec);
drivers/comedi/comedi_fops.c
1563
switch (insn->insn) {
drivers/comedi/comedi_fops.c
1565
ret = s->insn_read(dev, s, insn, data);
drivers/comedi/comedi_fops.c
1574
? s->maxdata_list[CR_CHAN(insn->chanspec)]
drivers/comedi/comedi_fops.c
1576
for (i = 0; i < insn->n; ++i) {
drivers/comedi/comedi_fops.c
1585
ret = s->insn_write(dev, s, insn, data);
drivers/comedi/comedi_fops.c
1594
if (insn->n != 2) {
drivers/comedi/comedi_fops.c
1606
shift = CR_CHAN(insn->chanspec);
drivers/comedi/comedi_fops.c
1608
insn->chanspec = 0;
drivers/comedi/comedi_fops.c
1613
ret = s->insn_bits(dev, s, insn, data);
drivers/comedi/comedi_fops.c
1620
ret = check_insn_config_length(insn, data);
drivers/comedi/comedi_fops.c
1623
ret = s->insn_config(dev, s, insn, data);
drivers/comedi/comedi_fops.c
1689
if (insns[i].insn & INSN_MASK_WRITE) {
drivers/comedi/comedi_fops.c
1708
if (insns[i].insn & INSN_MASK_READ) {
drivers/comedi/comedi_fops.c
1754
struct comedi_insn *insn, void *file)
drivers/comedi/comedi_fops.c
1762
n_data = max(n_data, insn->n);
drivers/comedi/comedi_fops.c
1765
if (insn->n > MAX_SAMPLES) {
drivers/comedi/comedi_fops.c
1766
insn->n = MAX_SAMPLES;
drivers/comedi/comedi_fops.c
1776
if (insn->insn & INSN_MASK_WRITE) {
drivers/comedi/comedi_fops.c
1778
insn->data,
drivers/comedi/comedi_fops.c
1779
insn->n * sizeof(unsigned int))) {
drivers/comedi/comedi_fops.c
1783
if (insn->n < MIN_SAMPLES) {
drivers/comedi/comedi_fops.c
1784
memset(&data[insn->n], 0,
drivers/comedi/comedi_fops.c
1785
(MIN_SAMPLES - insn->n) * sizeof(unsigned int));
drivers/comedi/comedi_fops.c
1790
ret = parse_insn(dev, insn, data, file);
drivers/comedi/comedi_fops.c
1793
if (insn->insn & INSN_MASK_READ) {
drivers/comedi/comedi_fops.c
1794
if (copy_to_user(insn->data,
drivers/comedi/comedi_fops.c
1796
insn->n * sizeof(unsigned int))) {
drivers/comedi/comedi_fops.c
1801
ret = insn->n;
drivers/comedi/comedi_fops.c
2417
struct comedi_insn insn;
drivers/comedi/comedi_fops.c
2419
if (copy_from_user(&insn, (void __user *)arg, sizeof(insn)))
drivers/comedi/comedi_fops.c
2422
rc = do_insn_ioctl(dev, &insn, file);
drivers/comedi/comedi_fops.c
3108
unsigned int insn;
drivers/comedi/comedi_fops.c
3293
static int get_compat_insn(struct comedi_insn *insn,
drivers/comedi/comedi_fops.c
3301
memset(insn, 0, sizeof(*insn));
drivers/comedi/comedi_fops.c
3302
insn->insn = v32.insn;
drivers/comedi/comedi_fops.c
3303
insn->n = v32.n;
drivers/comedi/comedi_fops.c
3304
insn->data = compat_ptr(v32.data);
drivers/comedi/comedi_fops.c
3305
insn->subdev = v32.subdev;
drivers/comedi/comedi_fops.c
3306
insn->chanspec = v32.chanspec;
drivers/comedi/comedi_fops.c
3358
struct comedi_insn insn;
drivers/comedi/comedi_fops.c
3361
rc = get_compat_insn(&insn, (void __user *)arg);
drivers/comedi/comedi_fops.c
3370
rc = do_insn_ioctl(dev, &insn, file);
drivers/comedi/comedi_internal.h
63
struct comedi_insn *insn, unsigned int *data);
drivers/comedi/drivers.c
225
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers.c
238
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers.c
262
struct comedi_insn *insn,
drivers/comedi/drivers.c
265
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers.c
271
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers.c
274
return insn->n;
drivers/comedi/drivers.c
297
struct comedi_insn *insn,
drivers/comedi/drivers.c
300
struct comedi_insn *insn,
drivers/comedi/drivers.c
308
ret = cb(dev, s, insn, context);
drivers/comedi/drivers.c
345
struct comedi_insn *insn,
drivers/comedi/drivers.c
349
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers.c
365
return insn->n;
drivers/comedi/drivers.c
677
struct comedi_insn *insn,
drivers/comedi/drivers.c
681
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers.c
689
_insn.insn = INSN_BITS;
drivers/comedi/drivers.c
692
_insn.subdev = insn->subdev;
drivers/comedi/drivers.c
694
if (insn->insn == INSN_WRITE) {
drivers/comedi/drivers.c
699
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers.c
700
if (insn->insn == INSN_WRITE)
drivers/comedi/drivers.c
707
if (insn->insn == INSN_READ)
drivers/comedi/drivers.c
711
return insn->n;
drivers/comedi/drivers/addi_apci_1032.c
105
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1032.c
176
return insn->n;
drivers/comedi/drivers/addi_apci_1032.c
181
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1032.c
291
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1032.c
296
return insn->n;
drivers/comedi/drivers/addi_apci_1500.c
449
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1500.c
543
return insn->n;
drivers/comedi/drivers/addi_apci_1500.c
548
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1500.c
553
return apci1500_di_cfg_trig(dev, s, insn, data);
drivers/comedi/drivers/addi_apci_1500.c
561
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1500.c
568
return insn->n;
drivers/comedi/drivers/addi_apci_1500.c
573
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1500.c
583
return insn->n;
drivers/comedi/drivers/addi_apci_1500.c
588
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1500.c
592
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1500.c
714
return insn->n;
drivers/comedi/drivers/addi_apci_1500.c
719
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1500.c
722
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1500.c
730
if (insn->n)
drivers/comedi/drivers/addi_apci_1500.c
733
return insn->n;
drivers/comedi/drivers/addi_apci_1500.c
738
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1500.c
741
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1500.c
750
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/addi_apci_1500.c
759
return insn->n;
drivers/comedi/drivers/addi_apci_1516.c
69
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1516.c
74
return insn->n;
drivers/comedi/drivers/addi_apci_1516.c
79
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1516.c
89
return insn->n;
drivers/comedi/drivers/addi_apci_1564.c
265
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
270
return insn->n;
drivers/comedi/drivers/addi_apci_1564.c
275
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
285
return insn->n;
drivers/comedi/drivers/addi_apci_1564.c
290
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
295
return insn->n;
drivers/comedi/drivers/addi_apci_1564.c
330
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
405
return insn->n;
drivers/comedi/drivers/addi_apci_1564.c
410
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
493
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
537
return insn->n;
drivers/comedi/drivers/addi_apci_1564.c
542
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
548
if (insn->n) {
drivers/comedi/drivers/addi_apci_1564.c
549
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/addi_apci_1564.c
554
return insn->n;
drivers/comedi/drivers/addi_apci_1564.c
559
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
566
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/addi_apci_1564.c
569
return insn->n;
drivers/comedi/drivers/addi_apci_1564.c
574
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
578
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1564.c
619
return insn->n;
drivers/comedi/drivers/addi_apci_1564.c
624
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
628
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1564.c
632
if (insn->n) {
drivers/comedi/drivers/addi_apci_1564.c
633
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/addi_apci_1564.c
638
return insn->n;
drivers/comedi/drivers/addi_apci_1564.c
643
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_1564.c
647
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1564.c
652
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/addi_apci_1564.c
655
return insn->n;
drivers/comedi/drivers/addi_apci_16xx.c
49
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_16xx.c
52
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_16xx.c
65
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/addi_apci_16xx.c
71
return insn->n;
drivers/comedi/drivers/addi_apci_16xx.c
76
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_16xx.c
84
return insn->n;
drivers/comedi/drivers/addi_apci_2032.c
45
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_2032.c
55
return insn->n;
drivers/comedi/drivers/addi_apci_2032.c
60
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_2032.c
64
return insn->n;
drivers/comedi/drivers/addi_apci_2200.c
30
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_2200.c
35
return insn->n;
drivers/comedi/drivers/addi_apci_2200.c
40
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_2200.c
50
return insn->n;
drivers/comedi/drivers/addi_apci_3120.c
692
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3120.c
705
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3120.c
719
apci3120_set_chanlist(dev, s, 1, &insn->chanspec);
drivers/comedi/drivers/addi_apci_3120.c
733
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/addi_apci_3120.c
737
ret = comedi_timeout(dev, s, insn, apci3120_ai_eoc, 0);
drivers/comedi/drivers/addi_apci_3120.c
744
return insn->n;
drivers/comedi/drivers/addi_apci_3120.c
749
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3120.c
762
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3120.c
765
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_3120.c
768
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/addi_apci_3120.c
772
ret = comedi_timeout(dev, s, insn, apci3120_ao_ready, 0);
drivers/comedi/drivers/addi_apci_3120.c
782
return insn->n;
drivers/comedi/drivers/addi_apci_3120.c
787
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3120.c
795
return insn->n;
drivers/comedi/drivers/addi_apci_3120.c
800
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3120.c
813
return insn->n;
drivers/comedi/drivers/addi_apci_3120.c
818
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3120.c
890
return insn->n;
drivers/comedi/drivers/addi_apci_3120.c
895
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3120.c
900
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/addi_apci_3120.c
903
return insn->n;
drivers/comedi/drivers/addi_apci_3501.c
108
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3501.c
111
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_3501.c
112
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/addi_apci_3501.c
131
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/addi_apci_3501.c
152
return insn->n;
drivers/comedi/drivers/addi_apci_3501.c
157
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3501.c
162
return insn->n;
drivers/comedi/drivers/addi_apci_3501.c
167
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3501.c
177
return insn->n;
drivers/comedi/drivers/addi_apci_3501.c
256
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3501.c
260
unsigned short addr = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_3501.c
264
if (insn->n) {
drivers/comedi/drivers/addi_apci_3501.c
267
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/addi_apci_3501.c
271
return insn->n;
drivers/comedi/drivers/addi_apci_3xxx.c
420
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3xxx.c
433
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3xxx.c
439
ret = apci3xxx_ai_setup(dev, insn->chanspec);
drivers/comedi/drivers/addi_apci_3xxx.c
443
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/addi_apci_3xxx.c
448
ret = comedi_timeout(dev, s, insn, apci3xxx_ai_eoc, 0);
drivers/comedi/drivers/addi_apci_3xxx.c
456
return insn->n;
drivers/comedi/drivers/addi_apci_3xxx.c
597
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3xxx.c
610
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3xxx.c
613
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_3xxx.c
614
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/addi_apci_3xxx.c
618
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/addi_apci_3xxx.c
628
ret = comedi_timeout(dev, s, insn, apci3xxx_ao_eoc, 0);
drivers/comedi/drivers/addi_apci_3xxx.c
635
return insn->n;
drivers/comedi/drivers/addi_apci_3xxx.c
640
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3xxx.c
645
return insn->n;
drivers/comedi/drivers/addi_apci_3xxx.c
650
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3xxx.c
660
return insn->n;
drivers/comedi/drivers/addi_apci_3xxx.c
665
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3xxx.c
668
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_3xxx.c
686
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/addi_apci_3xxx.c
693
return insn->n;
drivers/comedi/drivers/addi_apci_3xxx.c
698
struct comedi_insn *insn,
drivers/comedi/drivers/addi_apci_3xxx.c
721
return insn->n;
drivers/comedi/drivers/addi_watchdog.c
34
struct comedi_insn *insn,
drivers/comedi/drivers/addi_watchdog.c
59
return insn->n;
drivers/comedi/drivers/addi_watchdog.c
64
struct comedi_insn *insn,
drivers/comedi/drivers/addi_watchdog.c
70
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/addi_watchdog.c
73
return insn->n;
drivers/comedi/drivers/addi_watchdog.c
78
struct comedi_insn *insn,
drivers/comedi/drivers/addi_watchdog.c
90
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/addi_watchdog.c
95
return insn->n;
drivers/comedi/drivers/adl_pci6208.c
106
return insn->n;
drivers/comedi/drivers/adl_pci6208.c
43
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci6208.c
56
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci6208.c
59
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci6208.c
63
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/adl_pci6208.c
67
ret = comedi_timeout(dev, s, insn, pci6208_ao_eoc, 0);
drivers/comedi/drivers/adl_pci6208.c
78
return insn->n;
drivers/comedi/drivers/adl_pci6208.c
83
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci6208.c
93
return insn->n;
drivers/comedi/drivers/adl_pci6208.c
98
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci7250.c
58
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci7250.c
84
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci7x3x.c
280
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci7x3x.c
288
return insn->n;
drivers/comedi/drivers/adl_pci7x3x.c
293
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci7x3x.c
315
return insn->n;
drivers/comedi/drivers/adl_pci7x3x.c
320
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci7x3x.c
327
return insn->n;
drivers/comedi/drivers/adl_pci8164.c
32
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci8164.c
36
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci8164.c
39
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/adl_pci8164.c
42
return insn->n;
drivers/comedi/drivers/adl_pci8164.c
47
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci8164.c
51
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci8164.c
54
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/adl_pci8164.c
57
return insn->n;
drivers/comedi/drivers/adl_pci9111.c
517
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci9111.c
530
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/adl_pci9111.c
532
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci9111.c
533
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/adl_pci9111.c
551
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/adl_pci9111.c
555
ret = comedi_timeout(dev, s, insn, pci9111_ai_eoc, 0);
drivers/comedi/drivers/adl_pci9111.c
570
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci9111.c
573
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci9111.c
577
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/adl_pci9111.c
583
return insn->n;
drivers/comedi/drivers/adl_pci9111.c
588
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci9111.c
593
return insn->n;
drivers/comedi/drivers/adl_pci9111.c
598
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci9111.c
606
return insn->n;
drivers/comedi/drivers/adl_pci9118.c
1303
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci9118.c
1322
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci9118.c
1334
pci9118_set_chanlist(dev, s, 1, &insn->chanspec, 0, 0);
drivers/comedi/drivers/adl_pci9118.c
1342
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/adl_pci9118.c
1345
ret = comedi_timeout(dev, s, insn, pci9118_ai_eoc, 0);
drivers/comedi/drivers/adl_pci9118.c
1356
return insn->n;
drivers/comedi/drivers/adl_pci9118.c
1361
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci9118.c
1364
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci9118.c
1368
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/adl_pci9118.c
1374
return insn->n;
drivers/comedi/drivers/adl_pci9118.c
1379
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci9118.c
1389
return insn->n;
drivers/comedi/drivers/adl_pci9118.c
1394
struct comedi_insn *insn,
drivers/comedi/drivers/adl_pci9118.c
1408
return insn->n;
drivers/comedi/drivers/adq12b.c
107
struct comedi_insn *insn,
drivers/comedi/drivers/adq12b.c
111
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adq12b.c
112
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/adq12b.c
127
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/adq12b.c
128
ret = comedi_timeout(dev, s, insn, adq12b_ai_eoc, 0);
drivers/comedi/drivers/adq12b.c
138
return insn->n;
drivers/comedi/drivers/adq12b.c
143
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/adq12b.c
148
return insn->n;
drivers/comedi/drivers/adq12b.c
153
struct comedi_insn *insn,
drivers/comedi/drivers/adq12b.c
173
return insn->n;
drivers/comedi/drivers/adq12b.c
94
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1710.c
288
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1710.c
330
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1710.c
344
pci1710_ai_setup_chanlist(dev, s, &insn->chanspec, 1, 1);
drivers/comedi/drivers/adv_pci1710.c
346
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/adv_pci1710.c
352
ret = comedi_timeout(dev, s, insn, pci1710_ai_eoc, 0);
drivers/comedi/drivers/adv_pci1710.c
370
return ret ? ret : insn->n;
drivers/comedi/drivers/adv_pci1710.c
636
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1710.c
640
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1710.c
641
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/adv_pci1710.c
649
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/adv_pci1710.c
656
return insn->n;
drivers/comedi/drivers/adv_pci1710.c
661
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1710.c
666
return insn->n;
drivers/comedi/drivers/adv_pci1710.c
671
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1710.c
679
return insn->n;
drivers/comedi/drivers/adv_pci1710.c
684
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1710.c
716
return insn->n;
drivers/comedi/drivers/adv_pci1720.c
103
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1720.c
108
return insn->n;
drivers/comedi/drivers/adv_pci1720.c
71
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1720.c
74
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1720.c
75
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/adv_pci1720.c
86
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/adv_pci1720.c
98
return insn->n;
drivers/comedi/drivers/adv_pci1723.c
100
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1723.c
105
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/adv_pci1723.c
115
return insn->n;
drivers/comedi/drivers/adv_pci1723.c
120
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1723.c
128
return insn->n;
drivers/comedi/drivers/adv_pci1723.c
79
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1723.c
82
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1723.c
85
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/adv_pci1723.c
92
return insn->n;
drivers/comedi/drivers/adv_pci1723.c
97
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1724.c
101
for (i = 0; i < insn->n; ++i) {
drivers/comedi/drivers/adv_pci1724.c
104
ret = comedi_timeout(dev, s, insn, adv_pci1724_dac_idle, 0);
drivers/comedi/drivers/adv_pci1724.c
114
return insn->n;
drivers/comedi/drivers/adv_pci1724.c
74
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1724.c
87
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1724.c
91
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1760.c
150
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1760.c
155
return insn->n;
drivers/comedi/drivers/adv_pci1760.c
160
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1760.c
173
return insn->n;
drivers/comedi/drivers/adv_pci1760.c
221
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci1760.c
224
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1760.c
295
return insn->n;
drivers/comedi/drivers/adv_pci_dio.c
394
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci_dio.c
403
return insn->n;
drivers/comedi/drivers/adv_pci_dio.c
408
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci_dio.c
422
return insn->n;
drivers/comedi/drivers/adv_pci_dio.c
427
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci_dio.c
437
return insn->n;
drivers/comedi/drivers/adv_pci_dio.c
442
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci_dio.c
460
return insn->n;
drivers/comedi/drivers/adv_pci_dio.c
465
struct comedi_insn *insn,
drivers/comedi/drivers/adv_pci_dio.c
479
return insn->n;
drivers/comedi/drivers/aio_aio12_8.c
100
struct comedi_insn *insn,
drivers/comedi/drivers/aio_aio12_8.c
113
struct comedi_insn *insn,
drivers/comedi/drivers/aio_aio12_8.c
116
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/aio_aio12_8.c
117
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/aio_aio12_8.c
133
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/aio_aio12_8.c
138
ret = comedi_timeout(dev, s, insn, aio_aio12_8_ai_eoc, 0);
drivers/comedi/drivers/aio_aio12_8.c
151
return insn->n;
drivers/comedi/drivers/aio_aio12_8.c
156
struct comedi_insn *insn,
drivers/comedi/drivers/aio_aio12_8.c
159
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/aio_aio12_8.c
166
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/aio_aio12_8.c
172
return insn->n;
drivers/comedi/drivers/aio_aio12_8.c
177
struct comedi_insn *insn,
drivers/comedi/drivers/aio_aio12_8.c
180
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/aio_aio12_8.c
195
return insn->n;
drivers/comedi/drivers/aio_iiro_16.c
140
struct comedi_insn *insn,
drivers/comedi/drivers/aio_iiro_16.c
151
return insn->n;
drivers/comedi/drivers/aio_iiro_16.c
156
struct comedi_insn *insn,
drivers/comedi/drivers/aio_iiro_16.c
161
return insn->n;
drivers/comedi/drivers/amplc_dio200_common.c
220
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_dio200_common.c
234
return insn->n;
drivers/comedi/drivers/amplc_dio200_common.c
549
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_dio200_common.c
554
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/amplc_dio200_common.c
589
return insn->n;
drivers/comedi/drivers/amplc_dio200_common.c
669
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_dio200_common.c
698
return insn->n;
drivers/comedi/drivers/amplc_dio200_common.c
703
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_dio200_common.c
706
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/amplc_dio200_common.c
719
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/amplc_dio200_common.c
725
return insn->n;
drivers/comedi/drivers/amplc_dio200_common.c
753
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_dio200_common.c
758
for (n = 0; n < insn->n; n++)
drivers/comedi/drivers/amplc_dio200_common.c
798
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_dio200_common.c
819
return ret < 0 ? ret : insn->n;
drivers/comedi/drivers/amplc_pc236_common.c
59
struct comedi_subdevice *s, struct comedi_insn *insn,
drivers/comedi/drivers/amplc_pc236_common.c
63
return insn->n;
drivers/comedi/drivers/amplc_pc263.c
46
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_pc263.c
56
return insn->n;
drivers/comedi/drivers/amplc_pci224.c
418
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_pci224.c
421
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/amplc_pci224.c
422
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/amplc_pci224.c
426
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/amplc_pci224.c
432
return insn->n;
drivers/comedi/drivers/amplc_pci230.c
708
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_pci230.c
722
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/amplc_pci230.c
732
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/amplc_pci230.c
733
range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/amplc_pci230.c
734
aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/amplc_pci230.c
799
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/amplc_pci230.c
808
ret = comedi_timeout(dev, s, insn, pci230_ai_eoc, 0);
drivers/comedi/drivers/amplc_pci230.c
822
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_pci230.c
826
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/amplc_pci230.c
827
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/amplc_pci230.c
838
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/amplc_pci230.c
844
return insn->n;
drivers/comedi/drivers/amplc_pci263.c
35
struct comedi_insn *insn,
drivers/comedi/drivers/amplc_pci263.c
45
return insn->n;
drivers/comedi/drivers/c6xdigio.c
150
struct comedi_insn *insn,
drivers/comedi/drivers/c6xdigio.c
153
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/c6xdigio.c
157
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/c6xdigio.c
171
return insn->n;
drivers/comedi/drivers/c6xdigio.c
176
struct comedi_insn *insn,
drivers/comedi/drivers/c6xdigio.c
179
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/c6xdigio.c
185
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/c6xdigio.c
188
return insn->n;
drivers/comedi/drivers/c6xdigio.c
193
struct comedi_insn *insn,
drivers/comedi/drivers/c6xdigio.c
196
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/c6xdigio.c
200
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/c6xdigio.c
207
return insn->n;
drivers/comedi/drivers/cb_das16_cs.c
126
struct comedi_insn *insn,
drivers/comedi/drivers/cb_das16_cs.c
139
struct comedi_insn *insn,
drivers/comedi/drivers/cb_das16_cs.c
143
int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_das16_cs.c
144
int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/cb_das16_cs.c
145
int aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/cb_das16_cs.c
178
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/cb_das16_cs.c
181
ret = comedi_timeout(dev, s, insn, das16cs_ai_eoc, 0);
drivers/comedi/drivers/cb_das16_cs.c
193
struct comedi_insn *insn,
drivers/comedi/drivers/cb_das16_cs.c
197
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_das16_cs.c
203
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/cb_das16_cs.c
239
return insn->n;
drivers/comedi/drivers/cb_das16_cs.c
244
struct comedi_insn *insn,
drivers/comedi/drivers/cb_das16_cs.c
252
return insn->n;
drivers/comedi/drivers/cb_das16_cs.c
257
struct comedi_insn *insn,
drivers/comedi/drivers/cb_das16_cs.c
261
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_das16_cs.c
270
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/cb_das16_cs.c
284
return insn->n;
drivers/comedi/drivers/cb_das16_cs.c
289
struct comedi_insn *insn,
drivers/comedi/drivers/cb_das16_cs.c
321
return insn->n;
drivers/comedi/drivers/cb_pcidas.c
311
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas.c
325
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas.c
329
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
330
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
331
unsigned int aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
337
if (insn->chanspec & CR_ALT_SOURCE) {
drivers/comedi/drivers/cb_pcidas.c
359
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/cb_pcidas.c
364
ret = comedi_timeout(dev, s, insn, cb_pcidas_ai_eoc, 0);
drivers/comedi/drivers/cb_pcidas.c
378
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas.c
398
return insn->n;
drivers/comedi/drivers/cb_pcidas.c
404
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas.c
408
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
409
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
422
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/cb_pcidas.c
429
return insn->n;
drivers/comedi/drivers/cb_pcidas.c
435
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas.c
439
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
440
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
457
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/cb_pcidas.c
464
return insn->n;
drivers/comedi/drivers/cb_pcidas.c
469
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas.c
483
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas.c
487
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
491
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/cb_pcidas.c
493
ret = comedi_timeout(dev, s, insn, cb_pcidas_eeprom_ready, 0);
drivers/comedi/drivers/cb_pcidas.c
509
ret = comedi_timeout(dev, s, insn, cb_pcidas_eeprom_ready, 0);
drivers/comedi/drivers/cb_pcidas.c
516
return insn->n;
drivers/comedi/drivers/cb_pcidas.c
560
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas.c
563
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
565
if (insn->n) {
drivers/comedi/drivers/cb_pcidas.c
566
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/cb_pcidas.c
576
return insn->n;
drivers/comedi/drivers/cb_pcidas.c
597
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas.c
600
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
602
if (insn->n) {
drivers/comedi/drivers/cb_pcidas.c
603
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/cb_pcidas.c
611
return insn->n;
drivers/comedi/drivers/cb_pcidas.c
630
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas.c
633
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
635
if (insn->n) {
drivers/comedi/drivers/cb_pcidas.c
636
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/cb_pcidas.c
644
return insn->n;
drivers/comedi/drivers/cb_pcidas64.c
1722
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas64.c
1742
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/cb_pcidas64.c
1751
channel = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas64.c
1752
range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/cb_pcidas64.c
1753
aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/cb_pcidas64.c
1760
if (insn->chanspec & CR_ALT_FILTER)
drivers/comedi/drivers/cb_pcidas64.c
1775
if (insn->chanspec & CR_ALT_SOURCE) {
drivers/comedi/drivers/cb_pcidas64.c
1799
bits |= ai_range_bits_6xxx(dev, CR_RANGE(insn->chanspec));
drivers/comedi/drivers/cb_pcidas64.c
1814
if (insn->chanspec & CR_ALT_SOURCE) {
drivers/comedi/drivers/cb_pcidas64.c
1846
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/cb_pcidas64.c
1851
writew(adc_convert_chan_4020_bits(CR_CHAN(insn->chanspec)),
drivers/comedi/drivers/cb_pcidas64.c
1855
ret = comedi_timeout(dev, s, insn, cb_pcidas64_ai_eoc, 0);
drivers/comedi/drivers/cb_pcidas64.c
1959
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/cb_pcidas64.c
3085
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/cb_pcidas64.c
3089
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas64.c
3090
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/cb_pcidas64.c
3102
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/cb_pcidas64.c
3119
return insn->n;
drivers/comedi/drivers/cb_pcidas64.c
3430
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/cb_pcidas64.c
3439
return insn->n;
drivers/comedi/drivers/cb_pcidas64.c
3444
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas64.c
3452
return insn->n;
drivers/comedi/drivers/cb_pcidas64.c
3457
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas64.c
3462
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/cb_pcidas64.c
3468
return insn->n;
drivers/comedi/drivers/cb_pcidas64.c
3473
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas64.c
3481
return insn->n;
drivers/comedi/drivers/cb_pcidas64.c
3619
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas64.c
3622
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas64.c
3628
if (insn->n) {
drivers/comedi/drivers/cb_pcidas64.c
3629
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/cb_pcidas64.c
3637
return insn->n;
drivers/comedi/drivers/cb_pcidas64.c
3672
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidas64.c
3675
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas64.c
3681
if (insn->n) {
drivers/comedi/drivers/cb_pcidas64.c
3682
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/cb_pcidas64.c
3690
return insn->n;
drivers/comedi/drivers/cb_pcidas64.c
3758
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/cb_pcidas64.c
3763
if (insn->n) {
drivers/comedi/drivers/cb_pcidas64.c
3765
val = read_eeprom(dev, CR_CHAN(insn->chanspec));
drivers/comedi/drivers/cb_pcidas64.c
3766
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/cb_pcidas64.c
3770
return insn->n;
drivers/comedi/drivers/cb_pcidda.c
285
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcidda.c
289
unsigned int channel = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidda.c
290
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/cb_pcidda.c
319
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/cb_pcidda.c
322
return insn->n;
drivers/comedi/drivers/cb_pcimdas.c
158
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcimdas.c
172
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcimdas.c
176
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcimdas.c
177
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/cb_pcimdas.c
202
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/cb_pcimdas.c
207
ret = comedi_timeout(dev, s, insn, cb_pcimdas_ai_eoc, 0);
drivers/comedi/drivers/cb_pcimdas.c
221
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcimdas.c
225
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcimdas.c
229
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/cb_pcimdas.c
235
return insn->n;
drivers/comedi/drivers/cb_pcimdas.c
240
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcimdas.c
250
return insn->n;
drivers/comedi/drivers/cb_pcimdas.c
255
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcimdas.c
265
return insn->n;
drivers/comedi/drivers/cb_pcimdas.c
270
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcimdas.c
304
return insn->n;
drivers/comedi/drivers/cb_pcimdda.c
109
return insn->n;
drivers/comedi/drivers/cb_pcimdda.c
114
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcimdda.c
117
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcimdda.c
122
return comedi_readback_insn_read(dev, s, insn, data);
drivers/comedi/drivers/cb_pcimdda.c
84
struct comedi_insn *insn,
drivers/comedi/drivers/cb_pcimdda.c
87
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcimdda.c
92
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/comedi_8254.c
524
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_8254.c
528
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_8254.c
534
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/comedi_8254.c
537
return insn->n;
drivers/comedi/drivers/comedi_8254.c
542
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_8254.c
546
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_8254.c
551
if (insn->n)
drivers/comedi/drivers/comedi_8254.c
552
comedi_8254_write(i8254, chan, data[insn->n - 1]);
drivers/comedi/drivers/comedi_8254.c
554
return insn->n;
drivers/comedi/drivers/comedi_8254.c
559
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_8254.c
563
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_8254.c
590
return i8254->insn_config(dev, s, insn, data);
drivers/comedi/drivers/comedi_8254.c
595
return insn->n;
drivers/comedi/drivers/comedi_8255.c
120
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_8255.c
123
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_8255.c
136
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/comedi_8255.c
142
return insn->n;
drivers/comedi/drivers/comedi_8255.c
67
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_8255.c
94
return insn->n;
drivers/comedi/drivers/comedi_bond.c
121
return insn->n;
drivers/comedi/drivers/comedi_bond.c
126
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/comedi_bond.c
129
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_bond.c
165
ret = insn->n;
drivers/comedi/drivers/comedi_bond.c
63
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/comedi_bond.c
72
base_chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_parport.c
103
return insn->n;
drivers/comedi/drivers/comedi_parport.c
108
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_parport.c
113
return insn->n;
drivers/comedi/drivers/comedi_parport.c
118
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_parport.c
132
return insn->n;
drivers/comedi/drivers/comedi_parport.c
137
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_parport.c
141
return insn->n;
drivers/comedi/drivers/comedi_parport.c
73
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_parport.c
81
return insn->n;
drivers/comedi/drivers/comedi_parport.c
86
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_parport.c
92
ret = comedi_dio_insn_config(dev, s, insn, data, 0xff);
drivers/comedi/drivers/comedi_test.c
431
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/comedi_test.c
434
int i, chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_test.c
436
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/comedi_test.c
439
return insn->n;
drivers/comedi/drivers/comedi_test.c
642
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/comedi_test.c
645
int i, chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_test.c
647
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/comedi_test.c
650
return insn->n;
drivers/comedi/drivers/comedi_test.c
655
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_test.c
682
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_test.c
697
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_test.c
721
return insn->n;
drivers/comedi/drivers/comedi_test.c
726
struct comedi_insn *insn,
drivers/comedi/drivers/comedi_test.c
730
return comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/contec_pci_dio.c
31
struct comedi_insn *insn,
drivers/comedi/drivers/contec_pci_dio.c
39
return insn->n;
drivers/comedi/drivers/contec_pci_dio.c
44
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/contec_pci_dio.c
48
return insn->n;
drivers/comedi/drivers/dac02.c
69
struct comedi_insn *insn,
drivers/comedi/drivers/dac02.c
72
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dac02.c
73
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/dac02.c
77
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dac02.c
98
return insn->n;
drivers/comedi/drivers/daqboard2000.c
307
struct comedi_insn *insn, unsigned long context)
drivers/comedi/drivers/daqboard2000.c
319
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/daqboard2000.c
338
gain = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/daqboard2000.c
339
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/daqboard2000.c
347
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/daqboard2000.c
353
ret = comedi_timeout(dev, s, insn, db2k_ai_status,
drivers/comedi/drivers/daqboard2000.c
361
ret = comedi_timeout(dev, s, insn, db2k_ai_status,
drivers/comedi/drivers/daqboard2000.c
367
comedi_timeout(dev, s, insn, db2k_ai_status,
drivers/comedi/drivers/daqboard2000.c
383
struct comedi_insn *insn, unsigned long context)
drivers/comedi/drivers/daqboard2000.c
385
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/daqboard2000.c
396
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/daqboard2000.c
398
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/daqboard2000.c
401
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/daqboard2000.c
407
ret = comedi_timeout(dev, s, insn, db2k_ao_eoc, 0);
drivers/comedi/drivers/daqboard2000.c
414
return insn->n;
drivers/comedi/drivers/das08.c
156
struct comedi_insn *insn,
drivers/comedi/drivers/das08.c
169
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/das08.c
179
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das08.c
195
range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/das08.c
200
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/das08.c
209
ret = comedi_timeout(dev, s, insn, das08_ai_eoc, 0);
drivers/comedi/drivers/das08.c
251
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/das08.c
256
return insn->n;
drivers/comedi/drivers/das08.c
261
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/das08.c
276
return insn->n;
drivers/comedi/drivers/das08.c
281
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/das08.c
286
return insn->n;
drivers/comedi/drivers/das08.c
291
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/das08.c
298
return insn->n;
drivers/comedi/drivers/das08.c
325
struct comedi_insn *insn,
drivers/comedi/drivers/das08.c
328
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das08.c
332
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/das08.c
338
return insn->n;
drivers/comedi/drivers/das16.c
810
struct comedi_insn *insn,
drivers/comedi/drivers/das16.c
823
struct comedi_insn *insn,
drivers/comedi/drivers/das16.c
826
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das16.c
827
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/das16.c
835
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/das16.c
839
ret = comedi_timeout(dev, s, insn, das16_ai_eoc, 0);
drivers/comedi/drivers/das16.c
852
return insn->n;
drivers/comedi/drivers/das16.c
857
struct comedi_insn *insn,
drivers/comedi/drivers/das16.c
860
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das16.c
863
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/das16.c
874
return insn->n;
drivers/comedi/drivers/das16.c
879
struct comedi_insn *insn,
drivers/comedi/drivers/das16.c
884
return insn->n;
drivers/comedi/drivers/das16.c
889
struct comedi_insn *insn,
drivers/comedi/drivers/das16.c
897
return insn->n;
drivers/comedi/drivers/das16m1.c
310
struct comedi_insn *insn,
drivers/comedi/drivers/das16m1.c
323
struct comedi_insn *insn,
drivers/comedi/drivers/das16m1.c
329
das16m1_ai_set_queue(dev, &insn->chanspec, 1);
drivers/comedi/drivers/das16m1.c
331
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/das16m1.c
339
ret = comedi_timeout(dev, s, insn, das16m1_ai_eoc, 0);
drivers/comedi/drivers/das16m1.c
347
return insn->n;
drivers/comedi/drivers/das16m1.c
352
struct comedi_insn *insn,
drivers/comedi/drivers/das16m1.c
357
return insn->n;
drivers/comedi/drivers/das16m1.c
362
struct comedi_insn *insn,
drivers/comedi/drivers/das16m1.c
370
return insn->n;
drivers/comedi/drivers/das1800.c
1016
return insn->n;
drivers/comedi/drivers/das1800.c
1021
struct comedi_insn *insn,
drivers/comedi/drivers/das1800.c
1027
return insn->n;
drivers/comedi/drivers/das1800.c
1032
struct comedi_insn *insn,
drivers/comedi/drivers/das1800.c
1040
return insn->n;
drivers/comedi/drivers/das1800.c
927
struct comedi_insn *insn,
drivers/comedi/drivers/das1800.c
940
struct comedi_insn *insn,
drivers/comedi/drivers/das1800.c
943
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/das1800.c
950
outb(das1800_ai_chanspec_bits(s, insn->chanspec),
drivers/comedi/drivers/das1800.c
956
das1800_ai_set_chanlist(dev, &insn->chanspec, 1);
drivers/comedi/drivers/das1800.c
964
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/das1800.c
968
ret = comedi_timeout(dev, s, insn, das1800_ai_eoc, 0);
drivers/comedi/drivers/das1800.c
979
return ret ? ret : insn->n;
drivers/comedi/drivers/das1800.c
984
struct comedi_insn *insn,
drivers/comedi/drivers/das1800.c
987
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das1800.c
995
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/das6402.c
365
struct comedi_insn *insn,
drivers/comedi/drivers/das6402.c
378
struct comedi_insn *insn,
drivers/comedi/drivers/das6402.c
381
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das6402.c
382
unsigned int aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/das6402.c
392
das6402_ai_set_mode(dev, s, insn->chanspec, DAS6402_MODE_POLLED);
drivers/comedi/drivers/das6402.c
398
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/das6402.c
402
ret = comedi_timeout(dev, s, insn, das6402_ai_eoc, 0);
drivers/comedi/drivers/das6402.c
411
return insn->n;
drivers/comedi/drivers/das6402.c
416
struct comedi_insn *insn,
drivers/comedi/drivers/das6402.c
420
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das6402.c
421
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/das6402.c
446
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/das6402.c
471
return insn->n;
drivers/comedi/drivers/das6402.c
476
struct comedi_insn *insn,
drivers/comedi/drivers/das6402.c
479
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das6402.c
487
return comedi_readback_insn_read(dev, s, insn, data);
drivers/comedi/drivers/das6402.c
492
struct comedi_insn *insn,
drivers/comedi/drivers/das6402.c
497
return insn->n;
drivers/comedi/drivers/das6402.c
502
struct comedi_insn *insn,
drivers/comedi/drivers/das6402.c
510
return insn->n;
drivers/comedi/drivers/das800.c
508
struct comedi_insn *insn,
drivers/comedi/drivers/das800.c
521
struct comedi_insn *insn,
drivers/comedi/drivers/das800.c
525
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das800.c
526
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/das800.c
547
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/das800.c
551
ret = comedi_timeout(dev, s, insn, das800_ai_eoc, 0);
drivers/comedi/drivers/das800.c
561
return insn->n;
drivers/comedi/drivers/das800.c
566
struct comedi_insn *insn,
drivers/comedi/drivers/das800.c
571
return insn->n;
drivers/comedi/drivers/das800.c
576
struct comedi_insn *insn,
drivers/comedi/drivers/das800.c
593
return insn->n;
drivers/comedi/drivers/dmm32at.c
191
struct comedi_insn *insn,
drivers/comedi/drivers/dmm32at.c
204
struct comedi_insn *insn,
drivers/comedi/drivers/dmm32at.c
210
dmm32at_ai_set_chanspec(dev, s, insn->chanspec, 1);
drivers/comedi/drivers/dmm32at.c
213
ret = comedi_timeout(dev, s, insn, dmm32at_ai_status,
drivers/comedi/drivers/dmm32at.c
218
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dmm32at.c
221
ret = comedi_timeout(dev, s, insn, dmm32at_ai_status,
drivers/comedi/drivers/dmm32at.c
229
return insn->n;
drivers/comedi/drivers/dmm32at.c
456
struct comedi_insn *insn,
drivers/comedi/drivers/dmm32at.c
469
struct comedi_insn *insn,
drivers/comedi/drivers/dmm32at.c
472
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dmm32at.c
475
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dmm32at.c
485
ret = comedi_timeout(dev, s, insn, dmm32at_ao_eoc, 0);
drivers/comedi/drivers/dmm32at.c
495
return insn->n;
drivers/comedi/drivers/dt2801.c
448
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/dt2801.c
454
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dt2801.c
456
dt2801_writedata(dev, CR_RANGE(insn->chanspec));
drivers/comedi/drivers/dt2801.c
457
dt2801_writedata(dev, CR_CHAN(insn->chanspec));
drivers/comedi/drivers/dt2801.c
471
struct comedi_insn *insn,
drivers/comedi/drivers/dt2801.c
474
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2801.c
487
struct comedi_insn *insn,
drivers/comedi/drivers/dt2801.c
505
return insn->n;
drivers/comedi/drivers/dt2801.c
510
struct comedi_insn *insn,
drivers/comedi/drivers/dt2801.c
515
ret = comedi_dio_insn_config(dev, s, insn, data, 0xff);
drivers/comedi/drivers/dt2801.c
522
return insn->n;
drivers/comedi/drivers/dt2811.c
460
struct comedi_insn *insn,
drivers/comedi/drivers/dt2811.c
473
struct comedi_insn *insn,
drivers/comedi/drivers/dt2811.c
480
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dt2811.c
482
dt2811_ai_set_chanspec(dev, insn->chanspec);
drivers/comedi/drivers/dt2811.c
484
ret = comedi_timeout(dev, s, insn, dt2811_ai_eoc, 0);
drivers/comedi/drivers/dt2811.c
491
return insn->n;
drivers/comedi/drivers/dt2811.c
496
struct comedi_insn *insn,
drivers/comedi/drivers/dt2811.c
499
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2811.c
503
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dt2811.c
511
return insn->n;
drivers/comedi/drivers/dt2811.c
516
struct comedi_insn *insn,
drivers/comedi/drivers/dt2811.c
521
return insn->n;
drivers/comedi/drivers/dt2811.c
526
struct comedi_insn *insn,
drivers/comedi/drivers/dt2811.c
534
return insn->n;
drivers/comedi/drivers/dt2814.c
101
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/dt2814.c
108
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/dt2814.c
109
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2814.c
113
ret = comedi_timeout(dev, s, insn, dt2814_ai_eoc, 0);
drivers/comedi/drivers/dt2814.c
51
struct comedi_insn *insn,
drivers/comedi/drivers/dt2814.c
88
struct comedi_insn *insn,
drivers/comedi/drivers/dt2815.c
104
ret = comedi_timeout(dev, s, insn, dt2815_ao_status, 0x10);
drivers/comedi/drivers/dt2815.c
59
struct comedi_insn *insn,
drivers/comedi/drivers/dt2815.c
72
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/dt2815.c
76
int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2815.c
78
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/dt2815.c
85
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/dt2815.c
89
int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2815.c
93
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dt2815.c
98
ret = comedi_timeout(dev, s, insn, dt2815_ao_status, 0x00);
drivers/comedi/drivers/dt2817.c
35
struct comedi_insn *insn,
drivers/comedi/drivers/dt2817.c
38
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2817.c
52
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/dt2817.c
67
return insn->n;
drivers/comedi/drivers/dt2817.c
72
struct comedi_insn *insn,
drivers/comedi/drivers/dt2817.c
98
return insn->n;
drivers/comedi/drivers/dt282x.c
558
struct comedi_insn *insn,
drivers/comedi/drivers/dt282x.c
587
struct comedi_insn *insn,
drivers/comedi/drivers/dt282x.c
599
dt282x_load_changain(dev, 1, &insn->chanspec);
drivers/comedi/drivers/dt282x.c
603
ret = comedi_timeout(dev, s, insn,
drivers/comedi/drivers/dt282x.c
608
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dt282x.c
612
ret = comedi_timeout(dev, s, insn,
drivers/comedi/drivers/dt282x.c
766
struct comedi_insn *insn,
drivers/comedi/drivers/dt282x.c
770
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt282x.c
771
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/dt282x.c
776
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dt282x.c
792
return insn->n;
drivers/comedi/drivers/dt282x.c
933
struct comedi_insn *insn,
drivers/comedi/drivers/dt282x.c
941
return insn->n;
drivers/comedi/drivers/dt282x.c
946
struct comedi_insn *insn,
drivers/comedi/drivers/dt282x.c
950
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt282x.c
959
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/dt282x.c
971
return insn->n;
drivers/comedi/drivers/dt3000.c
505
struct comedi_insn *insn,
drivers/comedi/drivers/dt3000.c
511
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt3000.c
512
gain = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/dt3000.c
515
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/dt3000.c
523
struct comedi_insn *insn,
drivers/comedi/drivers/dt3000.c
526
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt3000.c
530
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dt3000.c
536
return insn->n;
drivers/comedi/drivers/dt3000.c
553
struct comedi_insn *insn,
drivers/comedi/drivers/dt3000.c
556
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt3000.c
565
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/dt3000.c
571
return insn->n;
drivers/comedi/drivers/dt3000.c
576
struct comedi_insn *insn,
drivers/comedi/drivers/dt3000.c
584
return insn->n;
drivers/comedi/drivers/dt3000.c
589
struct comedi_insn *insn,
drivers/comedi/drivers/dt3000.c
592
unsigned int addr = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt3000.c
595
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dt9812.c
600
struct comedi_insn *insn,
drivers/comedi/drivers/dt9812.c
612
return insn->n;
drivers/comedi/drivers/dt9812.c
617
struct comedi_insn *insn,
drivers/comedi/drivers/dt9812.c
625
return insn->n;
drivers/comedi/drivers/dt9812.c
630
struct comedi_insn *insn,
drivers/comedi/drivers/dt9812.c
633
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt9812.c
638
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dt9812.c
645
return insn->n;
drivers/comedi/drivers/dt9812.c
650
struct comedi_insn *insn,
drivers/comedi/drivers/dt9812.c
657
ret = comedi_readback_insn_read(dev, s, insn, data);
drivers/comedi/drivers/dt9812.c
665
struct comedi_insn *insn,
drivers/comedi/drivers/dt9812.c
668
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt9812.c
671
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/dt9812.c
682
return insn->n;
drivers/comedi/drivers/dyna_pci10xx.c
103
struct comedi_insn *insn,
drivers/comedi/drivers/dyna_pci10xx.c
110
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/dyna_pci10xx.c
123
struct comedi_insn *insn,
drivers/comedi/drivers/dyna_pci10xx.c
138
return insn->n;
drivers/comedi/drivers/dyna_pci10xx.c
143
struct comedi_insn *insn,
drivers/comedi/drivers/dyna_pci10xx.c
158
return insn->n;
drivers/comedi/drivers/dyna_pci10xx.c
50
struct comedi_insn *insn,
drivers/comedi/drivers/dyna_pci10xx.c
63
struct comedi_insn *insn,
drivers/comedi/drivers/dyna_pci10xx.c
73
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dyna_pci10xx.c
74
range = range_codes_pci1050_ai[CR_RANGE((insn->chanspec))];
drivers/comedi/drivers/dyna_pci10xx.c
78
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/dyna_pci10xx.c
84
ret = comedi_timeout(dev, s, insn, dyna_pci10xx_ai_eoc, 0);
drivers/comedi/drivers/fl512.c
51
struct comedi_insn *insn,
drivers/comedi/drivers/fl512.c
54
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/fl512.c
60
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/fl512.c
73
return insn->n;
drivers/comedi/drivers/fl512.c
78
struct comedi_insn *insn,
drivers/comedi/drivers/fl512.c
81
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/fl512.c
85
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/fl512.c
95
return insn->n;
drivers/comedi/drivers/gsc_hpdi.c
455
struct comedi_insn *insn,
drivers/comedi/drivers/gsc_hpdi.c
469
ret = comedi_dio_insn_config(dev, s, insn, data, 0xffffffff);
drivers/comedi/drivers/gsc_hpdi.c
475
return insn->n;
drivers/comedi/drivers/icp_multi.c
102
struct comedi_insn *insn,
drivers/comedi/drivers/icp_multi.c
105
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/icp_multi.c
106
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/icp_multi.c
107
unsigned int aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/icp_multi.c
122
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/icp_multi.c
130
ret = comedi_timeout(dev, s, insn, icp_multi_ai_eoc, 0);
drivers/comedi/drivers/icp_multi.c
142
struct comedi_insn *insn,
drivers/comedi/drivers/icp_multi.c
155
struct comedi_insn *insn,
drivers/comedi/drivers/icp_multi.c
158
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/icp_multi.c
159
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/icp_multi.c
168
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/icp_multi.c
173
ret = comedi_timeout(dev, s, insn, icp_multi_ao_ready, 0);
drivers/comedi/drivers/icp_multi.c
186
return insn->n;
drivers/comedi/drivers/icp_multi.c
191
struct comedi_insn *insn,
drivers/comedi/drivers/icp_multi.c
196
return insn->n;
drivers/comedi/drivers/icp_multi.c
201
struct comedi_insn *insn,
drivers/comedi/drivers/icp_multi.c
209
return insn->n;
drivers/comedi/drivers/icp_multi.c
89
struct comedi_insn *insn,
drivers/comedi/drivers/ii_pci20kc.c
145
struct comedi_insn *insn,
drivers/comedi/drivers/ii_pci20kc.c
149
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ii_pci20kc.c
152
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ii_pci20kc.c
165
return insn->n;
drivers/comedi/drivers/ii_pci20kc.c
170
struct comedi_insn *insn,
drivers/comedi/drivers/ii_pci20kc.c
224
struct comedi_insn *insn,
drivers/comedi/drivers/ii_pci20kc.c
231
ii20k_ai_setup(dev, s, insn->chanspec);
drivers/comedi/drivers/ii_pci20kc.c
233
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ii_pci20kc.c
239
ret = comedi_timeout(dev, s, insn, ii20k_ai_eoc, 0);
drivers/comedi/drivers/ii_pci20kc.c
250
return insn->n;
drivers/comedi/drivers/ii_pci20kc.c
319
struct comedi_insn *insn,
drivers/comedi/drivers/ii_pci20kc.c
322
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ii_pci20kc.c
335
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/ii_pci20kc.c
341
return insn->n;
drivers/comedi/drivers/ii_pci20kc.c
346
struct comedi_insn *insn,
drivers/comedi/drivers/ii_pci20kc.c
372
return insn->n;
drivers/comedi/drivers/jr3_pci.c
254
struct comedi_insn *insn,
drivers/comedi/drivers/jr3_pci.c
258
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/jr3_pci.c
273
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/jr3_pci.c
276
return insn->n;
drivers/comedi/drivers/ke_counter.c
144
return insn->n;
drivers/comedi/drivers/ke_counter.c
149
struct comedi_insn *insn,
drivers/comedi/drivers/ke_counter.c
157
return insn->n;
drivers/comedi/drivers/ke_counter.c
42
struct comedi_insn *insn,
drivers/comedi/drivers/ke_counter.c
45
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ke_counter.c
49
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ke_counter.c
59
return insn->n;
drivers/comedi/drivers/ke_counter.c
64
struct comedi_insn *insn,
drivers/comedi/drivers/ke_counter.c
67
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ke_counter.c
71
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ke_counter.c
83
return insn->n;
drivers/comedi/drivers/ke_counter.c
96
struct comedi_insn *insn,
drivers/comedi/drivers/me4000.c
1001
struct comedi_insn *insn,
drivers/comedi/drivers/me4000.c
1004
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me4000.c
1026
struct comedi_insn *insn,
drivers/comedi/drivers/me4000.c
1045
return insn->n;
drivers/comedi/drivers/me4000.c
1050
struct comedi_insn *insn,
drivers/comedi/drivers/me4000.c
1053
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me4000.c
1067
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/me4000.c
1099
return insn->n;
drivers/comedi/drivers/me4000.c
456
struct comedi_insn *insn,
drivers/comedi/drivers/me4000.c
469
struct comedi_insn *insn,
drivers/comedi/drivers/me4000.c
472
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me4000.c
473
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/me4000.c
474
unsigned int aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/me4000.c
514
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/me4000.c
520
ret = comedi_timeout(dev, s, insn, me4000_ai_eoc, 0);
drivers/comedi/drivers/me4000.c
530
return ret ? ret : insn->n;
drivers/comedi/drivers/me_daq.c
150
struct comedi_insn *insn,
drivers/comedi/drivers/me_daq.c
154
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me_daq.c
163
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/me_daq.c
178
return insn->n;
drivers/comedi/drivers/me_daq.c
183
struct comedi_insn *insn,
drivers/comedi/drivers/me_daq.c
211
return insn->n;
drivers/comedi/drivers/me_daq.c
216
struct comedi_insn *insn,
drivers/comedi/drivers/me_daq.c
229
struct comedi_insn *insn,
drivers/comedi/drivers/me_daq.c
233
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me_daq.c
234
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/me_daq.c
235
unsigned int aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/me_daq.c
271
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/me_daq.c
276
ret = comedi_timeout(dev, s, insn, me_ai_eoc, 0);
drivers/comedi/drivers/me_daq.c
291
return ret ? ret : insn->n;
drivers/comedi/drivers/me_daq.c
296
struct comedi_insn *insn,
drivers/comedi/drivers/me_daq.c
300
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me_daq.c
301
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/me_daq.c
325
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/me_daq.c
335
return insn->n;
drivers/comedi/drivers/mf6x4.c
103
return insn->n;
drivers/comedi/drivers/mf6x4.c
108
struct comedi_insn *insn,
drivers/comedi/drivers/mf6x4.c
123
struct comedi_insn *insn,
drivers/comedi/drivers/mf6x4.c
126
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/mf6x4.c
134
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/mf6x4.c
138
ret = comedi_timeout(dev, s, insn, mf6x4_ai_eoc, 0);
drivers/comedi/drivers/mf6x4.c
151
return insn->n;
drivers/comedi/drivers/mf6x4.c
156
struct comedi_insn *insn,
drivers/comedi/drivers/mf6x4.c
160
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/mf6x4.c
170
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/mf6x4.c
176
return insn->n;
drivers/comedi/drivers/mf6x4.c
85
struct comedi_insn *insn,
drivers/comedi/drivers/mf6x4.c
90
return insn->n;
drivers/comedi/drivers/mf6x4.c
95
struct comedi_insn *insn,
drivers/comedi/drivers/mpc624.c
189
struct comedi_insn *insn,
drivers/comedi/drivers/mpc624.c
202
struct comedi_insn *insn,
drivers/comedi/drivers/mpc624.c
212
outb(insn->chanspec, dev->iobase + MPC624_GNMUXCH);
drivers/comedi/drivers/mpc624.c
214
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/mpc624.c
224
ret = comedi_timeout(dev, s, insn, mpc624_ai_eoc, 0);
drivers/comedi/drivers/mpc624.c
231
return insn->n;
drivers/comedi/drivers/multiq3.c
100
struct comedi_insn *insn,
drivers/comedi/drivers/multiq3.c
103
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/multiq3.c
110
ret = comedi_timeout(dev, s, insn, multiq3_ai_status,
drivers/comedi/drivers/multiq3.c
115
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/multiq3.c
118
ret = comedi_timeout(dev, s, insn, multiq3_ai_status,
drivers/comedi/drivers/multiq3.c
132
return insn->n;
drivers/comedi/drivers/multiq3.c
137
struct comedi_insn *insn,
drivers/comedi/drivers/multiq3.c
140
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/multiq3.c
144
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/multiq3.c
153
return insn->n;
drivers/comedi/drivers/multiq3.c
158
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/multiq3.c
162
return insn->n;
drivers/comedi/drivers/multiq3.c
167
struct comedi_insn *insn,
drivers/comedi/drivers/multiq3.c
175
return insn->n;
drivers/comedi/drivers/multiq3.c
180
struct comedi_insn *insn,
drivers/comedi/drivers/multiq3.c
183
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/multiq3.c
187
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/multiq3.c
221
return insn->n;
drivers/comedi/drivers/multiq3.c
239
struct comedi_insn *insn,
drivers/comedi/drivers/multiq3.c
242
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/multiq3.c
252
return insn->n;
drivers/comedi/drivers/multiq3.c
87
struct comedi_insn *insn,
drivers/comedi/drivers/ni_6527.c
111
struct comedi_insn *insn,
drivers/comedi/drivers/ni_6527.c
115
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_6527.c
140
return insn->n;
drivers/comedi/drivers/ni_6527.c
145
struct comedi_insn *insn,
drivers/comedi/drivers/ni_6527.c
156
return insn->n;
drivers/comedi/drivers/ni_6527.c
161
struct comedi_insn *insn,
drivers/comedi/drivers/ni_6527.c
183
return insn->n;
drivers/comedi/drivers/ni_6527.c
266
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/ni_6527.c
269
return insn->n;
drivers/comedi/drivers/ni_6527.c
308
struct comedi_insn *insn,
drivers/comedi/drivers/ni_6527.c
317
if (insn->n != 3)
drivers/comedi/drivers/ni_6527.c
355
return insn->n;
drivers/comedi/drivers/ni_65xx.c
347
struct comedi_insn *insn,
drivers/comedi/drivers/ni_65xx.c
351
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_65xx.c
410
return insn->n;
drivers/comedi/drivers/ni_65xx.c
415
struct comedi_insn *insn,
drivers/comedi/drivers/ni_65xx.c
419
unsigned int base_chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_65xx.c
466
return insn->n;
drivers/comedi/drivers/ni_65xx.c
552
struct comedi_insn *insn,
drivers/comedi/drivers/ni_65xx.c
556
return insn->n;
drivers/comedi/drivers/ni_65xx.c
561
struct comedi_insn *insn,
drivers/comedi/drivers/ni_65xx.c
567
if (insn->n != 3)
drivers/comedi/drivers/ni_65xx.c
602
return insn->n;
drivers/comedi/drivers/ni_660x.c
532
struct comedi_insn *insn,
drivers/comedi/drivers/ni_660x.c
535
unsigned int shift = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_660x.c
557
return insn->n;
drivers/comedi/drivers/ni_660x.c
695
struct comedi_insn *insn,
drivers/comedi/drivers/ni_660x.c
698
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_660x.c
732
return insn->n;
drivers/comedi/drivers/ni_660x.c
948
struct comedi_insn *insn,
drivers/comedi/drivers/ni_670x.c
100
return insn->n;
drivers/comedi/drivers/ni_670x.c
105
struct comedi_insn *insn,
drivers/comedi/drivers/ni_670x.c
113
return insn->n;
drivers/comedi/drivers/ni_670x.c
118
struct comedi_insn *insn,
drivers/comedi/drivers/ni_670x.c
123
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/ni_670x.c
129
return insn->n;
drivers/comedi/drivers/ni_670x.c
73
struct comedi_insn *insn,
drivers/comedi/drivers/ni_670x.c
76
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_670x.c
90
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ni_at_a2150.c
565
struct comedi_insn *insn,
drivers/comedi/drivers/ni_at_a2150.c
577
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/ni_at_a2150.c
587
if (a2150_set_chanlist(dev, CR_CHAN(insn->chanspec), 1) < 0)
drivers/comedi/drivers/ni_at_a2150.c
612
ret = comedi_timeout(dev, s, insn, a2150_ai_eoc, 0);
drivers/comedi/drivers/ni_at_a2150.c
620
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/ni_at_a2150.c
621
ret = comedi_timeout(dev, s, insn, a2150_ai_eoc, 0);
drivers/comedi/drivers/ni_at_ao.c
126
struct comedi_insn *insn,
drivers/comedi/drivers/ni_at_ao.c
129
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_at_ao.c
136
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ni_at_ao.c
148
return insn->n;
drivers/comedi/drivers/ni_at_ao.c
153
struct comedi_insn *insn,
drivers/comedi/drivers/ni_at_ao.c
161
return insn->n;
drivers/comedi/drivers/ni_at_ao.c
166
struct comedi_insn *insn,
drivers/comedi/drivers/ni_at_ao.c
170
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_at_ao.c
179
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/ni_at_ao.c
194
return insn->n;
drivers/comedi/drivers/ni_at_ao.c
232
struct comedi_insn *insn,
drivers/comedi/drivers/ni_at_ao.c
235
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_at_ao.c
237
if (insn->n) {
drivers/comedi/drivers/ni_at_ao.c
238
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/ni_at_ao.c
260
return insn->n;
drivers/comedi/drivers/ni_atmio16d.c
442
struct comedi_insn *insn,
drivers/comedi/drivers/ni_atmio16d.c
459
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/ni_atmio16d.c
467
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_atmio16d.c
468
gain = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/ni_atmio16d.c
478
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ni_atmio16d.c
483
ret = comedi_timeout(dev, s, insn, atmio16d_ai_eoc, 0);
drivers/comedi/drivers/ni_atmio16d.c
499
struct comedi_insn *insn,
drivers/comedi/drivers/ni_atmio16d.c
503
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_atmio16d.c
513
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ni_atmio16d.c
524
return insn->n;
drivers/comedi/drivers/ni_atmio16d.c
529
struct comedi_insn *insn,
drivers/comedi/drivers/ni_atmio16d.c
537
return insn->n;
drivers/comedi/drivers/ni_atmio16d.c
542
struct comedi_insn *insn,
drivers/comedi/drivers/ni_atmio16d.c
546
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_atmio16d.c
555
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/ni_atmio16d.c
566
return insn->n;
drivers/comedi/drivers/ni_daq_700.c
102
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/ni_daq_700.c
109
return insn->n;
drivers/comedi/drivers/ni_daq_700.c
114
struct comedi_insn *insn,
drivers/comedi/drivers/ni_daq_700.c
132
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/ni_daq_700.c
137
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_daq_700.c
138
unsigned int aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/ni_daq_700.c
139
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/ni_daq_700.c
157
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/ni_daq_700.c
168
ret = comedi_timeout(dev, s, insn, daq700_ai_eoc, 0);
drivers/comedi/drivers/ni_daq_700.c
75
struct comedi_insn *insn,
drivers/comedi/drivers/ni_daq_700.c
92
return insn->n;
drivers/comedi/drivers/ni_daq_700.c
97
struct comedi_insn *insn,
drivers/comedi/drivers/ni_labpc_common.c
1126
struct comedi_insn *insn,
drivers/comedi/drivers/ni_labpc_common.c
1129
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_labpc_common.c
1135
if (insn->n > 0) {
drivers/comedi/drivers/ni_labpc_common.c
1136
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/ni_labpc_common.c
1144
return insn->n;
drivers/comedi/drivers/ni_labpc_common.c
1149
struct comedi_insn *insn,
drivers/comedi/drivers/ni_labpc_common.c
1163
struct comedi_insn *insn,
drivers/comedi/drivers/ni_labpc_common.c
1166
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_labpc_common.c
1177
if (insn->n > 0) {
drivers/comedi/drivers/ni_labpc_common.c
1178
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/ni_labpc_common.c
1180
ret = comedi_timeout(dev, s, insn, labpc_eeprom_ready, 0);
drivers/comedi/drivers/ni_labpc_common.c
1188
return insn->n;
drivers/comedi/drivers/ni_labpc_common.c
218
struct comedi_insn *insn,
drivers/comedi/drivers/ni_labpc_common.c
231
struct comedi_insn *insn,
drivers/comedi/drivers/ni_labpc_common.c
235
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_labpc_common.c
236
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/ni_labpc_common.c
237
unsigned int aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/ni_labpc_common.c
262
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ni_labpc_common.c
266
ret = comedi_timeout(dev, s, insn, labpc_ai_eoc, 0);
drivers/comedi/drivers/ni_labpc_common.c
273
return insn->n;
drivers/comedi/drivers/ni_labpc_common.c
907
struct comedi_insn *insn,
drivers/comedi/drivers/ni_labpc_common.c
917
channel = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_labpc_common.c
931
range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/ni_labpc_common.c
940
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/ni_labpc_common.c
943
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
1838
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
1847
ni_load_channelgain_list(dev, s, 1, &insn->chanspec);
drivers/comedi/drivers/ni_mio_common.c
1858
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/ni_mio_common.c
1887
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/ni_mio_common.c
1915
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/ni_mio_common.c
1938
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
2481
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/ni_mio_common.c
2486
if (insn->n < 1)
drivers/comedi/drivers/ni_mio_common.c
2697
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
2701
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_mio_common.c
2702
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/ni_mio_common.c
2716
ni_ao_config_chanlist(dev, s, &insn->chanspec, 1, 0);
drivers/comedi/drivers/ni_mio_common.c
2718
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ni_mio_common.c
2749
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
2838
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/ni_mio_common.c
3469
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
3475
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/ni_mio_common.c
3483
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
3488
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
3506
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
3512
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
3526
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/ni_mio_common.c
3532
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
3537
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
3545
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
3868
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
3873
int err = insn->n;
drivers/comedi/drivers/ni_mio_common.c
3876
if (insn->n != 2)
drivers/comedi/drivers/ni_mio_common.c
3951
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
4101
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4108
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/ni_mio_common.c
4111
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
4116
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4121
if (insn->n) {
drivers/comedi/drivers/ni_mio_common.c
4122
unsigned int val = data[insn->n - 1];
drivers/comedi/drivers/ni_mio_common.c
4134
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
4139
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4170
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
4195
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4255
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4419
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4422
if (insn->n) {
drivers/comedi/drivers/ni_mio_common.c
4424
ni_write_caldac(dev, CR_CHAN(insn->chanspec),
drivers/comedi/drivers/ni_mio_common.c
4425
data[insn->n - 1]);
drivers/comedi/drivers/ni_mio_common.c
4428
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
4433
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4439
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/ni_mio_common.c
4440
data[0] = devpriv->caldacs[CR_CHAN(insn->chanspec)];
drivers/comedi/drivers/ni_mio_common.c
4442
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
4532
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4538
if (insn->n) {
drivers/comedi/drivers/ni_mio_common.c
4539
val = ni_read_eeprom(dev, CR_CHAN(insn->chanspec));
drivers/comedi/drivers/ni_mio_common.c
4540
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/ni_mio_common.c
4543
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
4548
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4554
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/ni_mio_common.c
4555
data[i] = devpriv->eeprom_buffer[CR_CHAN(insn->chanspec)];
drivers/comedi/drivers/ni_mio_common.c
4557
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
4705
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4710
if (insn->n < 1)
drivers/comedi/drivers/ni_mio_common.c
4713
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_mio_common.c
4738
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4751
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
4829
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
4843
if (insn->chanspec & CR_ALT_SOURCE)
drivers/comedi/drivers/ni_mio_common.c
4846
channel_select = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_mio_common.c
4849
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/ni_mio_common.c
4855
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
5216
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
5220
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_mio_common.c
5259
struct comedi_insn *insn,
drivers/comedi/drivers/ni_mio_common.c
5264
return insn->n;
drivers/comedi/drivers/ni_mio_common.c
5851
struct comedi_insn *insn,
drivers/comedi/drivers/ni_pcidio.c
468
struct comedi_insn *insn,
drivers/comedi/drivers/ni_pcidio.c
482
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/ni_pcidio.c
488
return insn->n;
drivers/comedi/drivers/ni_pcidio.c
493
struct comedi_insn *insn,
drivers/comedi/drivers/ni_pcidio.c
501
return insn->n;
drivers/comedi/drivers/ni_tio.c
1451
struct comedi_insn *insn,
drivers/comedi/drivers/ni_tio.c
1500
return ret ? ret : insn->n;
drivers/comedi/drivers/ni_tio.c
1634
struct comedi_insn *insn,
drivers/comedi/drivers/ni_tio.c
1639
unsigned int channel = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_tio.c
1644
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ni_tio.c
1659
return insn->n;
drivers/comedi/drivers/ni_tio.c
1675
struct comedi_insn *insn,
drivers/comedi/drivers/ni_tio.c
1680
unsigned int channel = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_tio.c
1686
if (insn->n < 1)
drivers/comedi/drivers/ni_tio.c
1688
load_val = data[insn->n - 1];
drivers/comedi/drivers/ni_tio.c
1719
return insn->n;
drivers/comedi/drivers/ni_tio.h
130
struct comedi_insn *insn, unsigned int *data);
drivers/comedi/drivers/ni_tio.h
132
struct comedi_insn *insn, unsigned int *data);
drivers/comedi/drivers/ni_tio.h
134
struct comedi_insn *insn, unsigned int *data);
drivers/comedi/drivers/ni_usb6501.c
342
struct comedi_insn *insn,
drivers/comedi/drivers/ni_usb6501.c
347
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/ni_usb6501.c
355
return insn->n;
drivers/comedi/drivers/ni_usb6501.c
360
struct comedi_insn *insn,
drivers/comedi/drivers/ni_usb6501.c
389
return insn->n;
drivers/comedi/drivers/ni_usb6501.c
394
struct comedi_insn *insn,
drivers/comedi/drivers/ni_usb6501.c
417
return ret ? ret : insn->n;
drivers/comedi/drivers/ni_usb6501.c
422
struct comedi_insn *insn,
drivers/comedi/drivers/ni_usb6501.c
429
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/ni_usb6501.c
436
return insn->n;
drivers/comedi/drivers/ni_usb6501.c
441
struct comedi_insn *insn,
drivers/comedi/drivers/ni_usb6501.c
446
if (insn->n) {
drivers/comedi/drivers/ni_usb6501.c
447
u32 val = data[insn->n - 1];
drivers/comedi/drivers/ni_usb6501.c
454
return insn->n;
drivers/comedi/drivers/pcl711.c
235
struct comedi_insn *insn,
drivers/comedi/drivers/pcl711.c
248
struct comedi_insn *insn,
drivers/comedi/drivers/pcl711.c
254
pcl711_set_changain(dev, s, insn->chanspec);
drivers/comedi/drivers/pcl711.c
258
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcl711.c
261
ret = comedi_timeout(dev, s, insn, pcl711_ai_eoc, 0);
drivers/comedi/drivers/pcl711.c
268
return insn->n;
drivers/comedi/drivers/pcl711.c
364
struct comedi_insn *insn,
drivers/comedi/drivers/pcl711.c
367
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl711.c
371
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcl711.c
377
return insn->n;
drivers/comedi/drivers/pcl711.c
382
struct comedi_insn *insn,
drivers/comedi/drivers/pcl711.c
392
return insn->n;
drivers/comedi/drivers/pcl711.c
397
struct comedi_insn *insn,
drivers/comedi/drivers/pcl711.c
412
return insn->n;
drivers/comedi/drivers/pcl726.c
149
struct comedi_insn *insn,
drivers/comedi/drivers/pcl726.c
153
return insn->n;
drivers/comedi/drivers/pcl726.c
235
struct comedi_insn *insn,
drivers/comedi/drivers/pcl726.c
238
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl726.c
239
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/pcl726.c
242
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcl726.c
256
return insn->n;
drivers/comedi/drivers/pcl726.c
261
struct comedi_insn *insn,
drivers/comedi/drivers/pcl726.c
277
return insn->n;
drivers/comedi/drivers/pcl726.c
282
struct comedi_insn *insn,
drivers/comedi/drivers/pcl726.c
306
return insn->n;
drivers/comedi/drivers/pcl730.c
214
struct comedi_insn *insn,
drivers/comedi/drivers/pcl730.c
234
return insn->n;
drivers/comedi/drivers/pcl730.c
256
struct comedi_insn *insn,
drivers/comedi/drivers/pcl730.c
261
return insn->n;
drivers/comedi/drivers/pcl812.c
612
struct comedi_insn *insn,
drivers/comedi/drivers/pcl812.c
909
struct comedi_insn *insn,
drivers/comedi/drivers/pcl812.c
919
pcl812_ai_set_chan_range(dev, insn->chanspec, 1);
drivers/comedi/drivers/pcl812.c
921
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcl812.c
925
ret = comedi_timeout(dev, s, insn, pcl812_ai_eoc, 0);
drivers/comedi/drivers/pcl812.c
935
return ret ? ret : insn->n;
drivers/comedi/drivers/pcl812.c
940
struct comedi_insn *insn,
drivers/comedi/drivers/pcl812.c
943
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl812.c
947
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcl812.c
954
return insn->n;
drivers/comedi/drivers/pcl812.c
959
struct comedi_insn *insn,
drivers/comedi/drivers/pcl812.c
965
return insn->n;
drivers/comedi/drivers/pcl812.c
970
struct comedi_insn *insn,
drivers/comedi/drivers/pcl812.c
980
return insn->n;
drivers/comedi/drivers/pcl816.c
197
struct comedi_insn *insn,
drivers/comedi/drivers/pcl816.c
502
struct comedi_insn *insn,
drivers/comedi/drivers/pcl816.c
505
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl816.c
506
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/pcl816.c
515
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcl816.c
519
ret = comedi_timeout(dev, s, insn, pcl816_ai_eoc, 0);
drivers/comedi/drivers/pcl816.c
528
return ret ? ret : insn->n;
drivers/comedi/drivers/pcl816.c
533
struct comedi_insn *insn,
drivers/comedi/drivers/pcl816.c
539
return insn->n;
drivers/comedi/drivers/pcl816.c
544
struct comedi_insn *insn,
drivers/comedi/drivers/pcl816.c
554
return insn->n;
drivers/comedi/drivers/pcl818.c
411
struct comedi_insn *insn,
drivers/comedi/drivers/pcl818.c
800
struct comedi_insn *insn,
drivers/comedi/drivers/pcl818.c
803
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl818.c
804
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/pcl818.c
813
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcl818.c
817
ret = comedi_timeout(dev, s, insn, pcl818_ai_eoc, 0);
drivers/comedi/drivers/pcl818.c
825
return ret ? ret : insn->n;
drivers/comedi/drivers/pcl818.c
830
struct comedi_insn *insn,
drivers/comedi/drivers/pcl818.c
833
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl818.c
837
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcl818.c
846
return insn->n;
drivers/comedi/drivers/pcl818.c
851
struct comedi_insn *insn,
drivers/comedi/drivers/pcl818.c
857
return insn->n;
drivers/comedi/drivers/pcl818.c
862
struct comedi_insn *insn,
drivers/comedi/drivers/pcl818.c
872
return insn->n;
drivers/comedi/drivers/pcm3724.c
160
struct comedi_insn *insn,
drivers/comedi/drivers/pcm3724.c
163
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcm3724.c
176
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/pcm3724.c
180
do_3724_config(dev, s, insn->chanspec);
drivers/comedi/drivers/pcm3724.c
181
enable_chan(dev, s, insn->chanspec);
drivers/comedi/drivers/pcm3724.c
183
return insn->n;
drivers/comedi/drivers/pcmad.c
100
return insn->n;
drivers/comedi/drivers/pcmad.c
56
struct comedi_insn *insn,
drivers/comedi/drivers/pcmad.c
69
struct comedi_insn *insn,
drivers/comedi/drivers/pcmad.c
72
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcmad.c
73
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/pcmad.c
78
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcmad.c
81
ret = comedi_timeout(dev, s, insn, pcmad_ai_eoc, 0);
drivers/comedi/drivers/pcmda12.c
100
return comedi_readback_insn_read(dev, s, insn, data);
drivers/comedi/drivers/pcmda12.c
60
struct comedi_insn *insn,
drivers/comedi/drivers/pcmda12.c
64
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcmda12.c
69
for (i = 0; i < insn->n; ++i) {
drivers/comedi/drivers/pcmda12.c
83
return insn->n;
drivers/comedi/drivers/pcmda12.c
88
struct comedi_insn *insn,
drivers/comedi/drivers/pcmmio.c
243
struct comedi_insn *insn,
drivers/comedi/drivers/pcmmio.c
273
return insn->n;
drivers/comedi/drivers/pcmmio.c
278
struct comedi_insn *insn,
drivers/comedi/drivers/pcmmio.c
285
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/pcmmio.c
292
return insn->n;
drivers/comedi/drivers/pcmmio.c
518
struct comedi_insn *insn,
drivers/comedi/drivers/pcmmio.c
531
struct comedi_insn *insn,
drivers/comedi/drivers/pcmmio.c
535
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcmmio.c
536
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/pcmmio.c
537
unsigned int aref = CR_AREF(insn->chanspec);
drivers/comedi/drivers/pcmmio.c
572
ret = comedi_timeout(dev, s, insn, pcmmio_ai_eoc, 0);
drivers/comedi/drivers/pcmmio.c
579
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcmmio.c
582
ret = comedi_timeout(dev, s, insn, pcmmio_ai_eoc, 0);
drivers/comedi/drivers/pcmmio.c
596
return insn->n;
drivers/comedi/drivers/pcmmio.c
601
struct comedi_insn *insn,
drivers/comedi/drivers/pcmmio.c
614
struct comedi_insn *insn,
drivers/comedi/drivers/pcmmio.c
618
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcmmio.c
619
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/pcmmio.c
641
ret = comedi_timeout(dev, s, insn, pcmmio_ao_eoc, 0);
drivers/comedi/drivers/pcmmio.c
645
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/pcmmio.c
654
ret = comedi_timeout(dev, s, insn, pcmmio_ao_eoc, 0);
drivers/comedi/drivers/pcmmio.c
661
return insn->n;
drivers/comedi/drivers/pcmuio.c
213
struct comedi_insn *insn,
drivers/comedi/drivers/pcmuio.c
243
return insn->n;
drivers/comedi/drivers/pcmuio.c
248
struct comedi_insn *insn,
drivers/comedi/drivers/pcmuio.c
255
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/pcmuio.c
262
return insn->n;
drivers/comedi/drivers/quatech_daqp_cs.c
283
struct comedi_insn *insn,
drivers/comedi/drivers/quatech_daqp_cs.c
296
struct comedi_insn *insn,
drivers/comedi/drivers/quatech_daqp_cs.c
312
daqp_ai_set_one_scanlist_entry(dev, insn->chanspec, 1);
drivers/comedi/drivers/quatech_daqp_cs.c
324
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/quatech_daqp_cs.c
329
ret = comedi_timeout(dev, s, insn, daqp_ai_eos, 0);
drivers/comedi/drivers/quatech_daqp_cs.c
343
return ret ? ret : insn->n;
drivers/comedi/drivers/quatech_daqp_cs.c
619
struct comedi_insn *insn,
drivers/comedi/drivers/quatech_daqp_cs.c
632
struct comedi_insn *insn,
drivers/comedi/drivers/quatech_daqp_cs.c
636
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/quatech_daqp_cs.c
645
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/quatech_daqp_cs.c
650
ret = comedi_timeout(dev, s, insn, daqp_ao_empty, 0);
drivers/comedi/drivers/quatech_daqp_cs.c
661
return insn->n;
drivers/comedi/drivers/quatech_daqp_cs.c
666
struct comedi_insn *insn,
drivers/comedi/drivers/quatech_daqp_cs.c
676
return insn->n;
drivers/comedi/drivers/quatech_daqp_cs.c
681
struct comedi_insn *insn,
drivers/comedi/drivers/quatech_daqp_cs.c
694
return insn->n;
drivers/comedi/drivers/rtd520.c
1009
struct comedi_insn *insn,
drivers/comedi/drivers/rtd520.c
1013
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rtd520.c
1014
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/rtd520.c
1021
for (i = 0; i < insn->n; ++i) {
drivers/comedi/drivers/rtd520.c
1036
ret = comedi_timeout(dev, s, insn, rtd_ao_eoc, 0);
drivers/comedi/drivers/rtd520.c
1043
return insn->n;
drivers/comedi/drivers/rtd520.c
1048
struct comedi_insn *insn,
drivers/comedi/drivers/rtd520.c
1056
return insn->n;
drivers/comedi/drivers/rtd520.c
1061
struct comedi_insn *insn,
drivers/comedi/drivers/rtd520.c
1066
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/rtd520.c
1083
return insn->n;
drivers/comedi/drivers/rtd520.c
1088
struct comedi_insn *insn,
drivers/comedi/drivers/rtd520.c
1092
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rtd520.c
1158
return insn->n;
drivers/comedi/drivers/rtd520.c
520
struct comedi_insn *insn,
drivers/comedi/drivers/rtd520.c
532
struct comedi_subdevice *s, struct comedi_insn *insn,
drivers/comedi/drivers/rtd520.c
536
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/rtd520.c
544
rtd_load_channelgain_list(dev, 1, &insn->chanspec);
drivers/comedi/drivers/rtd520.c
550
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/rtd520.c
555
ret = comedi_timeout(dev, s, insn, rtd_ai_eoc, 0);
drivers/comedi/drivers/rtd520.c
994
struct comedi_insn *insn,
drivers/comedi/drivers/rtd520.c
997
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rti800.c
135
struct comedi_insn *insn,
drivers/comedi/drivers/rti800.c
152
struct comedi_insn *insn,
drivers/comedi/drivers/rti800.c
156
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rti800.c
157
unsigned int gain = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/rti800.c
173
if (insn->n > 0) {
drivers/comedi/drivers/rti800.c
182
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/rti800.c
187
ret = comedi_timeout(dev, s, insn, rti800_ai_eoc, 0);
drivers/comedi/drivers/rti800.c
200
return insn->n;
drivers/comedi/drivers/rti800.c
205
struct comedi_insn *insn,
drivers/comedi/drivers/rti800.c
209
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rti800.c
214
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/rti800.c
226
return insn->n;
drivers/comedi/drivers/rti800.c
231
struct comedi_insn *insn,
drivers/comedi/drivers/rti800.c
235
return insn->n;
drivers/comedi/drivers/rti800.c
240
struct comedi_insn *insn,
drivers/comedi/drivers/rti800.c
250
return insn->n;
drivers/comedi/drivers/rti802.c
43
struct comedi_insn *insn,
drivers/comedi/drivers/rti802.c
47
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rti802.c
52
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/rti802.c
65
return insn->n;
drivers/comedi/drivers/s526.c
197
struct comedi_insn *insn,
drivers/comedi/drivers/s526.c
200
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
203
for (i = 0; i < insn->n; i++)
drivers/comedi/drivers/s526.c
206
return insn->n;
drivers/comedi/drivers/s526.c
211
struct comedi_insn *insn,
drivers/comedi/drivers/s526.c
215
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
377
return insn->n;
drivers/comedi/drivers/s526.c
382
struct comedi_insn *insn,
drivers/comedi/drivers/s526.c
386
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
413
return insn->n;
drivers/comedi/drivers/s526.c
418
struct comedi_insn *insn,
drivers/comedi/drivers/s526.c
434
struct comedi_insn *insn,
drivers/comedi/drivers/s526.c
438
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
455
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/s526.c
461
ret = comedi_timeout(dev, s, insn, s526_eoc, S526_INT_AI);
drivers/comedi/drivers/s526.c
469
return insn->n;
drivers/comedi/drivers/s526.c
474
struct comedi_insn *insn,
drivers/comedi/drivers/s526.c
477
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
486
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/s526.c
492
ret = comedi_timeout(dev, s, insn, s526_eoc, S526_INT_AO);
drivers/comedi/drivers/s526.c
498
return insn->n;
drivers/comedi/drivers/s526.c
503
struct comedi_insn *insn,
drivers/comedi/drivers/s526.c
511
return insn->n;
drivers/comedi/drivers/s526.c
516
struct comedi_insn *insn,
drivers/comedi/drivers/s526.c
519
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
532
ret = comedi_dio_insn_config(dev, s, insn, data, mask);
drivers/comedi/drivers/s526.c
547
return insn->n;
drivers/comedi/drivers/s626.c
1473
struct comedi_insn *insn,
drivers/comedi/drivers/s626.c
1486
struct comedi_insn *insn,
drivers/comedi/drivers/s626.c
1489
u16 chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s626.c
1490
u16 range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/s626.c
1512
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/s626.c
1533
ret = comedi_timeout(dev, s, insn, s626_ai_eoc, 0);
drivers/comedi/drivers/s626.c
1571
ret = comedi_timeout(dev, s, insn, s626_ai_eoc, 0);
drivers/comedi/drivers/s626.c
1921
struct comedi_insn *insn,
drivers/comedi/drivers/s626.c
1924
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s626.c
1927
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/s626.c
1940
return insn->n;
drivers/comedi/drivers/s626.c
1973
struct comedi_insn *insn,
drivers/comedi/drivers/s626.c
1983
return insn->n;
drivers/comedi/drivers/s626.c
1988
struct comedi_insn *insn,
drivers/comedi/drivers/s626.c
1994
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/s626.c
2000
return insn->n;
drivers/comedi/drivers/s626.c
2014
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/s626.c
2016
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s626.c
2043
return insn->n;
drivers/comedi/drivers/s626.c
2048
struct comedi_insn *insn,
drivers/comedi/drivers/s626.c
2051
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s626.c
2055
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/s626.c
2067
return insn->n;
drivers/comedi/drivers/s626.c
2072
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/s626.c
2074
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s626.c
229
struct comedi_insn *insn,
drivers/comedi/drivers/s626.c
319
struct comedi_insn *insn,
drivers/comedi/drivers/ssv_dnp.c
121
return insn->n;
drivers/comedi/drivers/ssv_dnp.c
43
struct comedi_insn *insn,
drivers/comedi/drivers/ssv_dnp.c
77
return insn->n;
drivers/comedi/drivers/ssv_dnp.c
82
struct comedi_insn *insn,
drivers/comedi/drivers/ssv_dnp.c
85
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ssv_dnp.c
90
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/usbdux.c
1001
struct comedi_insn *insn,
drivers/comedi/drivers/usbdux.c
1006
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/usbdux.c
1014
return insn->n;
drivers/comedi/drivers/usbdux.c
1019
struct comedi_insn *insn,
drivers/comedi/drivers/usbdux.c
1049
return ret ? ret : insn->n;
drivers/comedi/drivers/usbdux.c
1054
struct comedi_insn *insn,
drivers/comedi/drivers/usbdux.c
1058
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
1064
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/usbdux.c
1078
return ret ? ret : insn->n;
drivers/comedi/drivers/usbdux.c
1083
struct comedi_insn *insn,
drivers/comedi/drivers/usbdux.c
1087
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
1096
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/usbdux.c
1106
return ret ? ret : insn->n;
drivers/comedi/drivers/usbdux.c
1111
struct comedi_insn *insn, unsigned int *data)
drivers/comedi/drivers/usbdux.c
1302
struct comedi_insn *insn,
drivers/comedi/drivers/usbdux.c
1305
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
1311
if (insn->n != 1)
drivers/comedi/drivers/usbdux.c
1320
return insn->n;
drivers/comedi/drivers/usbdux.c
1325
struct comedi_insn *insn,
drivers/comedi/drivers/usbdux.c
1329
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
737
struct comedi_insn *insn,
drivers/comedi/drivers/usbdux.c
741
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
742
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/usbdux.c
760
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/usbdux.c
777
return ret ? ret : insn->n;
drivers/comedi/drivers/usbdux.c
782
struct comedi_insn *insn,
drivers/comedi/drivers/usbdux.c
789
ret = comedi_readback_insn_read(dev, s, insn, data);
drivers/comedi/drivers/usbdux.c
797
struct comedi_insn *insn,
drivers/comedi/drivers/usbdux.c
801
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
816
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/usbdux.c
832
return ret ? ret : insn->n;
drivers/comedi/drivers/usbduxfast.c
762
struct comedi_insn *insn,
drivers/comedi/drivers/usbduxfast.c
767
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbduxfast.c
768
unsigned int range = CR_RANGE(insn->chanspec);
drivers/comedi/drivers/usbduxfast.c
815
for (i = 0; i < insn->n;) {
drivers/comedi/drivers/usbduxfast.c
830
for (j = chan; (j < n) && (i < insn->n); j = j + 16) {
drivers/comedi/drivers/usbduxfast.c
838
return insn->n;
drivers/comedi/drivers/usbduxsigma.c
1145
struct comedi_insn *insn,
drivers/comedi/drivers/usbduxsigma.c
1148
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbduxsigma.c
1154
if (insn->n != 1)
drivers/comedi/drivers/usbduxsigma.c
1163
return insn->n;
drivers/comedi/drivers/usbduxsigma.c
1168
struct comedi_insn *insn,
drivers/comedi/drivers/usbduxsigma.c
1172
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbduxsigma.c
694
struct comedi_insn *insn,
drivers/comedi/drivers/usbduxsigma.c
698
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbduxsigma.c
728
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/usbduxsigma.c
745
return insn->n;
drivers/comedi/drivers/usbduxsigma.c
750
struct comedi_insn *insn,
drivers/comedi/drivers/usbduxsigma.c
757
ret = comedi_readback_insn_read(dev, s, insn, data);
drivers/comedi/drivers/usbduxsigma.c
765
struct comedi_insn *insn,
drivers/comedi/drivers/usbduxsigma.c
769
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbduxsigma.c
779
for (i = 0; i < insn->n; i++) {
drivers/comedi/drivers/usbduxsigma.c
792
return insn->n;
drivers/comedi/drivers/usbduxsigma.c
932
struct comedi_insn *insn,
drivers/comedi/drivers/usbduxsigma.c
937
ret = comedi_dio_insn_config(dev, s, insn, data, 0);
drivers/comedi/drivers/usbduxsigma.c
945
return insn->n;
drivers/comedi/drivers/usbduxsigma.c
950
struct comedi_insn *insn,
drivers/comedi/drivers/usbduxsigma.c
980
ret = insn->n;
drivers/comedi/drivers/vmk80xx.c
236
struct comedi_insn *insn,
drivers/comedi/drivers/vmk80xx.c
245
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
263
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/vmk80xx.c
284
struct comedi_insn *insn,
drivers/comedi/drivers/vmk80xx.c
294
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
311
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/vmk80xx.c
325
struct comedi_insn *insn,
drivers/comedi/drivers/vmk80xx.c
334
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
340
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/vmk80xx.c
354
struct comedi_insn *insn,
drivers/comedi/drivers/vmk80xx.c
393
struct comedi_insn *insn,
drivers/comedi/drivers/vmk80xx.c
432
return ret ? ret : insn->n;
drivers/comedi/drivers/vmk80xx.c
437
struct comedi_insn *insn,
drivers/comedi/drivers/vmk80xx.c
446
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
463
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/vmk80xx.c
481
struct comedi_insn *insn,
drivers/comedi/drivers/vmk80xx.c
485
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
513
return ret ? ret : insn->n;
drivers/comedi/drivers/vmk80xx.c
518
struct comedi_insn *insn,
drivers/comedi/drivers/vmk80xx.c
529
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
536
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/vmk80xx.c
562
struct comedi_insn *insn,
drivers/comedi/drivers/vmk80xx.c
581
for (n = 0; n < insn->n; n++) {
drivers/comedi/drivers/vmk80xx.c
595
struct comedi_insn *insn,
drivers/comedi/drivers/vmk80xx.c
626
for (n = 0; n < insn->n; n++) {
drivers/comedi/kcomedilib/kcomedilib_main.c
177
struct comedi_insn *insn,
drivers/comedi/kcomedilib/kcomedilib_main.c
191
if (insn->subdev >= dev->n_subdevices) {
drivers/comedi/kcomedilib/kcomedilib_main.c
195
s = &dev->subdevices[insn->subdev];
drivers/comedi/kcomedilib/kcomedilib_main.c
199
"%d not usable subdevice\n", insn->subdev);
drivers/comedi/kcomedilib/kcomedilib_main.c
206
ret = comedi_check_chanlist(s, 1, &insn->chanspec);
drivers/comedi/kcomedilib/kcomedilib_main.c
219
switch (insn->insn) {
drivers/comedi/kcomedilib/kcomedilib_main.c
221
ret = s->insn_bits(dev, s, insn, data);
drivers/comedi/kcomedilib/kcomedilib_main.c
225
ret = s->insn_config(dev, s, insn, data);
drivers/comedi/kcomedilib/kcomedilib_main.c
242
struct comedi_insn insn;
drivers/comedi/kcomedilib/kcomedilib_main.c
246
memset(&insn, 0, sizeof(insn));
drivers/comedi/kcomedilib/kcomedilib_main.c
247
insn.insn = INSN_CONFIG;
drivers/comedi/kcomedilib/kcomedilib_main.c
248
insn.n = 2;
drivers/comedi/kcomedilib/kcomedilib_main.c
249
insn.subdev = subdev;
drivers/comedi/kcomedilib/kcomedilib_main.c
250
insn.chanspec = CR_PACK(chan, 0, 0);
drivers/comedi/kcomedilib/kcomedilib_main.c
253
ret = comedi_do_insn(dev, &insn, data);
drivers/comedi/kcomedilib/kcomedilib_main.c
263
struct comedi_insn insn;
drivers/comedi/kcomedilib/kcomedilib_main.c
265
memset(&insn, 0, sizeof(insn));
drivers/comedi/kcomedilib/kcomedilib_main.c
266
insn.insn = INSN_CONFIG;
drivers/comedi/kcomedilib/kcomedilib_main.c
267
insn.n = 1;
drivers/comedi/kcomedilib/kcomedilib_main.c
268
insn.subdev = subdev;
drivers/comedi/kcomedilib/kcomedilib_main.c
269
insn.chanspec = CR_PACK(chan, 0, 0);
drivers/comedi/kcomedilib/kcomedilib_main.c
271
return comedi_do_insn(dev, &insn, &io);
drivers/comedi/kcomedilib/kcomedilib_main.c
279
struct comedi_insn insn;
drivers/comedi/kcomedilib/kcomedilib_main.c
290
memset(&insn, 0, sizeof(insn));
drivers/comedi/kcomedilib/kcomedilib_main.c
291
insn.insn = INSN_BITS;
drivers/comedi/kcomedilib/kcomedilib_main.c
292
insn.chanspec = base_channel;
drivers/comedi/kcomedilib/kcomedilib_main.c
293
insn.n = 2;
drivers/comedi/kcomedilib/kcomedilib_main.c
294
insn.subdev = subdev;
drivers/comedi/kcomedilib/kcomedilib_main.c
306
insn.chanspec = 0;
drivers/comedi/kcomedilib/kcomedilib_main.c
314
ret = comedi_do_insn(dev, &insn, data);
drivers/dma/pl330.c
1008
u8 insn[6] = {0, 0, 0, 0, 0, 0};
drivers/dma/pl330.c
1046
_emit_GO(0, insn, &go);
drivers/dma/pl330.c
1052
_execute_DBGINSN(thrd, insn, true);
drivers/dma/pl330.c
891
u8 insn[], bool as_manager)
drivers/dma/pl330.c
902
val = (insn[0] << 16) | (insn[1] << 24);
drivers/dma/pl330.c
909
val = le32_to_cpu(*((__le32 *)&insn[2]));
drivers/dma/pl330.c
977
u8 insn[6] = {0, 0, 0, 0, 0, 0};
drivers/dma/pl330.c
989
_emit_KILL(0, insn);
drivers/dma/pl330.c
991
_execute_DBGINSN(thrd, insn, is_manager(thrd));
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
113
u32 insn = nvkm_rd32(device, 0x400308);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
114
nvkm_warn(subdev, "ctxprog timeout %08x\n", insn);
drivers/misc/lkdtm/bugs.c
681
unsigned char *insn;
drivers/misc/lkdtm/bugs.c
710
insn = (unsigned char *)native_write_cr4;
drivers/misc/lkdtm/bugs.c
711
OPTIMIZER_HIDE_VAR(insn);
drivers/misc/lkdtm/bugs.c
714
if (insn[i] == 0x0f && insn[i+1] == 0x22 && insn[i+2] == 0xe7)
drivers/misc/lkdtm/bugs.c
717
if (insn[i] == 0x48 && insn[i+1] == 0x89 &&
drivers/misc/lkdtm/bugs.c
718
insn[i+2] == 0xf8 && insn[i+3] == 0x0f &&
drivers/misc/lkdtm/bugs.c
719
insn[i+4] == 0x22 && insn[i+5] == 0xe0)
drivers/misc/lkdtm/bugs.c
726
direct_write_cr4 = (void *)(insn + i);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1165
s32 off = nfp_prog->stack_frame_depth + meta->insn.off + ptr_off;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1180
stack_off_reg = ur_load_imm_any(nfp_prog, meta->insn.off,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1297
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1298
u64 imm = insn->imm; /* sign extend */
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1305
wrp_alu_imm(nfp_prog, insn->dst_reg * 2, alu_op, imm & ~0U);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1306
wrp_alu_imm(nfp_prog, insn->dst_reg * 2 + 1, alu_op, imm >> 32);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1315
u8 dst = meta->insn.dst_reg * 2, src = meta->insn.src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1328
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1329
u8 dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1331
wrp_alu_imm(nfp_prog, dst, alu_op, insn->imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1341
u8 dst = meta->insn.dst_reg * 2, src = meta->insn.src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1361
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1363
wrp_test_reg_one(nfp_prog, insn->dst_reg * 2, alu_op,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1364
insn->src_reg * 2, br_mask, insn->off);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1366
wrp_test_reg_one(nfp_prog, insn->dst_reg * 2 + 1, alu_op,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1367
insn->src_reg * 2 + 1, br_mask, insn->off);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1390
op = BPF_OP(meta->insn.code) >> 4;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1402
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1403
u64 imm = insn->imm; /* sign extend */
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1406
u8 reg = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1432
emit_br(nfp_prog, code->br_mask, insn->off, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1439
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1447
areg = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1448
breg = insn->src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
145
u64 insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1460
emit_br(nfp_prog, code->br_mask, insn->off, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
150
insn = OP_BR_BASE |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1505
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1509
dst_reg = insn->dst_reg;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1515
multiplier = reg_b(insn->src_reg * 2);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1518
u32 imm = insn->imm;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
158
nfp_prog_push(nfp_prog, insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1811
emit_alu(nfp_prog, reg_none(), reg_a(meta->insn.src_reg * 2),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1820
pv_qsel_val(nfp_prog), 0x1, reg_b(meta->insn.src_reg * 2),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1838
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1839
u8 dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1840
u8 src = insn->src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1842
if (insn->src_reg == BPF_REG_10) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1861
u64 imm = meta->insn.imm; /* sign extend */
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1863
wrp_immed(nfp_prog, reg_both(meta->insn.dst_reg * 2), imm & ~0U);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1864
wrp_immed(nfp_prog, reg_both(meta->insn.dst_reg * 2 + 1), imm >> 32);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1876
return wrp_alu64_imm(nfp_prog, meta, ALU_OP_XOR, !meta->insn.imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1886
return wrp_alu64_imm(nfp_prog, meta, ALU_OP_AND, !~meta->insn.imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1896
return wrp_alu64_imm(nfp_prog, meta, ALU_OP_OR, !meta->insn.imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
190
u64 insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1901
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1903
emit_alu(nfp_prog, reg_both(insn->dst_reg * 2),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1904
reg_a(insn->dst_reg * 2), ALU_OP_ADD,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1905
reg_b(insn->src_reg * 2));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1906
emit_alu(nfp_prog, reg_both(insn->dst_reg * 2 + 1),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1907
reg_a(insn->dst_reg * 2 + 1), ALU_OP_ADD_C,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1908
reg_b(insn->src_reg * 2 + 1));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1915
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1916
u64 imm = insn->imm; /* sign extend */
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1918
wrp_alu_imm(nfp_prog, insn->dst_reg * 2, ALU_OP_ADD, imm & ~0U);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1919
wrp_alu_imm(nfp_prog, insn->dst_reg * 2 + 1, ALU_OP_ADD_C, imm >> 32);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1926
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1928
emit_alu(nfp_prog, reg_both(insn->dst_reg * 2),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1929
reg_a(insn->dst_reg * 2), ALU_OP_SUB,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1930
reg_b(insn->src_reg * 2));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1931
emit_alu(nfp_prog, reg_both(insn->dst_reg * 2 + 1),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1932
reg_a(insn->dst_reg * 2 + 1), ALU_OP_SUB_C,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1933
reg_b(insn->src_reg * 2 + 1));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1940
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1941
u64 imm = insn->imm; /* sign extend */
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1943
wrp_alu_imm(nfp_prog, insn->dst_reg * 2, ALU_OP_SUB, imm & ~0U);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1944
wrp_alu_imm(nfp_prog, insn->dst_reg * 2 + 1, ALU_OP_SUB_C, imm >> 32);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
195
insn = OP_BR_BIT_BASE |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1961
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1963
return wrp_div_imm(nfp_prog, insn->dst_reg * 2, insn->imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1971
return wrp_div_imm(nfp_prog, meta->insn.dst_reg * 2, meta->umin_src);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1976
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1978
emit_alu(nfp_prog, reg_both(insn->dst_reg * 2), reg_imm(0),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1979
ALU_OP_SUB, reg_b(insn->dst_reg * 2));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1980
emit_alu(nfp_prog, reg_both(insn->dst_reg * 2 + 1), reg_imm(0),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
1981
ALU_OP_SUB_C, reg_b(insn->dst_reg * 2 + 1));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2021
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2022
u8 dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2024
return __shl_imm64(nfp_prog, dst, insn->imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
204
nfp_prog_push(nfp_prog, insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2060
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2064
dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2070
src = insn->src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2135
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2136
u8 dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2138
return __shr_imm64(nfp_prog, dst, insn->imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2172
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2176
dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2182
src = insn->src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2247
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2248
u8 dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2250
return __ashr_imm64(nfp_prog, dst, insn->imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2289
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2293
dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2299
src = insn->src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2328
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2330
wrp_reg_mov(nfp_prog, insn->dst_reg * 2, insn->src_reg * 2);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2331
wrp_immed(nfp_prog, reg_both(insn->dst_reg * 2 + 1), 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2338
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2340
wrp_immed(nfp_prog, reg_both(insn->dst_reg * 2), insn->imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2341
wrp_immed(nfp_prog, reg_both(insn->dst_reg * 2 + 1), 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2418
u8 dst = meta->insn.dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
243
u64 insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2444
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2448
dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
245
insn = OP_BR_ALU_BASE |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2454
src = insn->src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2468
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2469
u8 dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2471
return __ashr_imm(nfp_prog, meta, dst, insn->imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2487
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2488
u8 dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2490
return __shr_imm(nfp_prog, meta, dst, insn->imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2495
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2499
dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2505
src = insn->src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2526
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2527
u8 dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2529
return __shl_imm(nfp_prog, meta, dst, insn->imm);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
253
nfp_prog_push(nfp_prog, insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2534
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2538
dst = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2544
src = insn->src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2552
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2553
u8 gpr = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2555
switch (insn->imm) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2585
dst = prev->insn.dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2586
imm_lo = prev->insn.imm;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2587
imm_hi = meta->insn.imm;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2608
return construct_data_ld(nfp_prog, meta, meta->insn.imm, 1);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2613
return construct_data_ld(nfp_prog, meta, meta->insn.imm, 2);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2618
return construct_data_ld(nfp_prog, meta, meta->insn.imm, 4);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2623
return construct_data_ind_ld(nfp_prog, meta, meta->insn.imm,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2624
meta->insn.src_reg * 2, 1);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2629
return construct_data_ind_ld(nfp_prog, meta, meta->insn.imm,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2630
meta->insn.src_reg * 2, 2);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2635
return construct_data_ind_ld(nfp_prog, meta, meta->insn.imm,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2636
meta->insn.src_reg * 2, 4);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2644
meta->insn.dst_reg * 2, meta->insn.src_reg * 2,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2651
swreg dst = reg_both(meta->insn.dst_reg * 2);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2653
switch (meta->insn.off) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2674
wrp_immed(nfp_prog, reg_both(meta->insn.dst_reg * 2 + 1), 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2682
swreg dst = reg_both(meta->insn.dst_reg * 2);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2684
switch (meta->insn.off) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2700
wrp_immed(nfp_prog, reg_both(meta->insn.dst_reg * 2 + 1), 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2711
tmp_reg = re_load_imm_any(nfp_prog, meta->insn.off, imm_b(nfp_prog));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2713
return data_ld_host_order_addr32(nfp_prog, meta, meta->insn.src_reg * 2,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2714
tmp_reg, meta->insn.dst_reg * 2, size);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2723
tmp_reg = re_load_imm_any(nfp_prog, meta->insn.off, imm_b(nfp_prog));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2725
return data_ld_host_order_addr40(nfp_prog, meta, meta->insn.src_reg * 2,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2726
tmp_reg, meta->insn.dst_reg * 2, size);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2740
src_base = reg_a(meta->insn.src_reg * 2);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2761
s16 insn_off = meta->insn.off - range_start;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2763
u8 dst_gpr = meta->insn.dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
277
u64 insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
279
insn = OP_IMMED_BASE |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2817
idx = (meta->insn.off - meta->pkt_cache.range_start) / REG_WIDTH;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2818
dst_gpr = meta->insn.dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2843
u8 off = meta->insn.off - meta->pkt_cache.range_start;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
290
nfp_prog_push(nfp_prog, insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2910
u64 imm = meta->insn.imm; /* sign extend */
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2913
off_reg = re_load_imm_any(nfp_prog, meta->insn.off, imm_b(nfp_prog));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2915
return data_st_host_order(nfp_prog, meta->insn.dst_reg * 2, off_reg,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2954
off_reg = re_load_imm_any(nfp_prog, meta->insn.off, imm_b(nfp_prog));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2956
return data_stx_host_order(nfp_prog, meta->insn.dst_reg * 2, off_reg,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2957
meta->insn.src_reg * 2, size);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2965
meta->insn.src_reg * 2, meta->insn.dst_reg * 2,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
2971
switch (meta->insn.off) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3020
u8 dst_gpr = meta->insn.dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3021
u8 src_gpr = meta->insn.src_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3025
off = ur_load_imm_any(nfp_prog, meta->insn.off, imm_b(nfp_prog));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3035
if (meta->insn.off) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3059
emit_br(nfp_prog, BR_BLO, full_add, meta->insn.off ? 2 : 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3064
if (!meta->insn.off) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3114
if (meta->insn.imm != BPF_ADD)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3122
if (meta->insn.imm != BPF_ADD)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3130
emit_br(nfp_prog, BR_UNC, meta->insn.off, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3137
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3138
u64 imm = insn->imm; /* sign extend */
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3141
or1 = reg_a(insn->dst_reg * 2);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3142
or2 = reg_b(insn->dst_reg * 2 + 1);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3147
reg_a(insn->dst_reg * 2), ALU_OP_XOR, tmp_reg);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3154
reg_a(insn->dst_reg * 2 + 1), ALU_OP_XOR, tmp_reg);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3159
emit_br(nfp_prog, BR_BEQ, insn->off, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3166
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3169
tmp_reg = ur_load_imm_any(nfp_prog, insn->imm, imm_b(nfp_prog));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3171
reg_a(insn->dst_reg * 2), ALU_OP_XOR, tmp_reg);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3172
emit_br(nfp_prog, BR_BEQ, insn->off, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3179
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3180
u64 imm = insn->imm; /* sign extend */
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3181
u8 dst_gpr = insn->dst_reg * 2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3194
emit_br(nfp_prog, BR_BNE, insn->off, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3201
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3202
u64 imm = insn->imm; /* sign extend */
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3209
reg_b(insn->dst_reg * 2));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3211
emit_alu(nfp_prog, reg_none(), reg_a(insn->dst_reg * 2),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3212
ALU_OP_OR, reg_b(insn->dst_reg * 2 + 1));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3213
emit_br(nfp_prog, BR_BNE, insn->off, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3219
reg_a(insn->dst_reg * 2), ALU_OP_XOR, tmp_reg);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3220
emit_br(nfp_prog, BR_BNE, insn->off, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3227
reg_a(insn->dst_reg * 2 + 1), ALU_OP_XOR, tmp_reg);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3228
emit_br(nfp_prog, BR_BNE, insn->off, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3235
const struct bpf_insn *insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3237
emit_alu(nfp_prog, imm_a(nfp_prog), reg_a(insn->dst_reg * 2),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3238
ALU_OP_XOR, reg_b(insn->src_reg * 2));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
324
u64 insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3241
reg_a(insn->dst_reg * 2 + 1), ALU_OP_XOR,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3242
reg_b(insn->src_reg * 2 + 1));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3246
emit_br(nfp_prog, BR_BEQ, insn->off, 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3323
emit_br(nfp_prog, BR_UNC, meta->insn.imm, 1);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3349
switch (meta->insn.imm) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
345
insn = OP_SHF_BASE |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3565
if (meta->insn.code == (BPF_JMP | BPF_EXIT) &&
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3586
br_idx, meta->insn.code, nfp_prog->prog[br_idx]);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
359
nfp_prog_push(nfp_prog, insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3590
if (meta->insn.code == (BPF_JMP | BPF_EXIT))
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3845
instr_cb_t cb = instr_cb[meta->insn.code];
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3893
struct bpf_insn insn = meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3896
if (insn.code == (BPF_ALU64 | BPF_XOR | BPF_X) &&
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3897
insn.src_reg == insn.dst_reg)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3901
if (insn.code == (BPF_ALU64 | BPF_MOV | BPF_X) &&
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3902
insn.src_reg == 1 && insn.dst_reg == 6)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3919
struct bpf_insn insn = meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3926
if (BPF_SRC(insn.code) != BPF_K)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3928
if (insn.imm >= 0)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3932
switch (BPF_OP(insn.code)) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3943
if (BPF_OP(insn.code) == BPF_ADD)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3944
insn.code = BPF_CLASS(insn.code) | BPF_SUB;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3945
else if (BPF_OP(insn.code) == BPF_SUB)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3946
insn.code = BPF_CLASS(insn.code) | BPF_ADD;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3950
meta->insn.code = insn.code | BPF_K;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3953
meta->insn.imm = -insn.imm;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3968
struct bpf_insn insn, next;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3970
insn = meta1->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3971
next = meta2->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3973
if (BPF_CLASS(insn.code) != BPF_LD)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3975
if (BPF_MODE(insn.code) != BPF_ABS &&
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3976
BPF_MODE(insn.code) != BPF_IND)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
398
u64 insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3982
if (!exp_mask[BPF_SIZE(insn.code)])
drivers/net/ethernet/netronome/nfp/bpf/jit.c
3984
if (exp_mask[BPF_SIZE(insn.code)] != next.imm)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
400
insn = OP_ALU_BASE |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4002
struct bpf_insn insn, next1, next2;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4004
insn = meta1->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4005
next1 = meta2->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4006
next2 = meta3->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4008
if (BPF_CLASS(insn.code) != BPF_LD)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4010
if (BPF_MODE(insn.code) != BPF_ABS &&
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4011
BPF_MODE(insn.code) != BPF_IND)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4013
if (BPF_SIZE(insn.code) != BPF_W)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4052
struct bpf_insn *ld = &ld_meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4053
struct bpf_insn *st = &st_meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4092
struct bpf_insn *ld = &ld_meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4093
struct bpf_insn *st = &st_meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
411
nfp_prog_push(nfp_prog, insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4156
head_ld_off = head_ld_meta->insn.off + head_ld_meta->ptr.off;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4157
head_st_off = head_st_meta->insn.off + head_st_meta->ptr.off;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4196
struct bpf_insn *ld = &meta1->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4197
struct bpf_insn *st = &meta2->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4219
s16 head_ld_off = head_ld_meta->insn.off;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4222
head_ld_meta->insn.off = prev_ld_off;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4223
head_st_meta->insn.off = prev_st_off;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4228
head_ld_meta->paired_st = &head_st_meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4281
struct bpf_insn *insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4292
insn = &meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4295
insn->code == (BPF_JMP | BPF_CALL) ||
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4331
s16 end, off = insn->off;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4340
end = off + BPF_LDST_BYTES(insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4365
range_start = insn->off;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4366
range_end = insn->off + BPF_LDST_BYTES(insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
437
u64 insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
439
insn = OP_MUL_BASE |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4415
if (meta1->insn.code != (BPF_LD | BPF_IMM | BPF_DW) ||
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4416
meta1->insn.src_reg != BPF_PSEUDO_MAP_FD)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4419
map = (void *)(unsigned long)((u32)meta1->insn.imm |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4420
(u64)meta2->insn.imm << 32);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4428
meta1->insn.imm = id;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4429
meta2->insn.imm = 0;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4498
u64 code = meta->insn.code;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
450
nfp_prog_push(nfp_prog, insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4515
dst_idx = meta->n + 1 + meta->insn.imm;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
4517
dst_idx = meta->n + 1 + meta->insn.off;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
47
static void nfp_prog_push(struct nfp_prog *nfp_prog, u64 insn)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
492
u64 insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
494
insn = OP_LDF_BASE |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
507
nfp_prog_push(nfp_prog, insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
540
u64 insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
542
insn = OP_LCSR_BASE |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
550
nfp_prog_push(nfp_prog, insn);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
56
nfp_prog->prog[nfp_prog->prog_len] = insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
742
off = re_load_imm_any(nfp_prog, meta->insn.off, imm_b(nfp_prog));
drivers/net/ethernet/netronome/nfp/bpf/jit.c
744
src_base = reg_a(meta->insn.src_reg * 2);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
748
addr40_offset(nfp_prog, meta->insn.src_reg * 2, off, &src_base,
drivers/net/ethernet/netronome/nfp/bpf/jit.c
83
u64 insn;
drivers/net/ethernet/netronome/nfp/bpf/jit.c
834
else if (BPF_SIZE(meta->insn.code) != BPF_DW)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
839
switch (BPF_SIZE(meta->insn.code)) {
drivers/net/ethernet/netronome/nfp/bpf/jit.c
841
wrp_reg_subpart(nfp_prog, reg_both(meta->insn.dst_reg * 2),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
846
wrp_reg_subpart(nfp_prog, reg_both(meta->insn.dst_reg * 2),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
85
insn = FIELD_PREP(OP_CMD_A_SRC, areg) |
drivers/net/ethernet/netronome/nfp/bpf/jit.c
850
wrp_mov(nfp_prog, reg_both(meta->insn.dst_reg * 2),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
854
wrp_mov(nfp_prog, reg_both(meta->insn.dst_reg * 2),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
856
wrp_mov(nfp_prog, reg_both(meta->insn.dst_reg * 2 + 1),
drivers/net/ethernet/netronome/nfp/bpf/jit.c
861
if (BPF_SIZE(meta->insn.code) != BPF_DW)
drivers/net/ethernet/netronome/nfp/bpf/jit.c
862
wrp_immed(nfp_prog, reg_both(meta->insn.dst_reg * 2 + 1), 0);
drivers/net/ethernet/netronome/nfp/bpf/jit.c
96
nfp_prog_push(nfp_prog, insn);
drivers/net/ethernet/netronome/nfp/bpf/main.h
301
struct bpf_insn insn;
drivers/net/ethernet/netronome/nfp/bpf/main.h
353
return BPF_CLASS(meta->insn.code);
drivers/net/ethernet/netronome/nfp/bpf/main.h
358
return BPF_SRC(meta->insn.code);
drivers/net/ethernet/netronome/nfp/bpf/main.h
363
return BPF_OP(meta->insn.code);
drivers/net/ethernet/netronome/nfp/bpf/main.h
368
return BPF_MODE(meta->insn.code);
drivers/net/ethernet/netronome/nfp/bpf/main.h
378
return (meta->insn.code & ~BPF_SIZE_MASK) == (BPF_LDX | BPF_MEM);
drivers/net/ethernet/netronome/nfp/bpf/main.h
398
return (meta->insn.code & ~BPF_SIZE_MASK) == (BPF_STX | BPF_MEM);
drivers/net/ethernet/netronome/nfp/bpf/main.h
413
u8 code = meta->insn.code;
drivers/net/ethernet/netronome/nfp/bpf/main.h
421
u8 code = meta->insn.code;
drivers/net/ethernet/netronome/nfp/bpf/main.h
433
return (meta->insn.code & ~BPF_SIZE_MASK) == (BPF_STX | BPF_ATOMIC);
drivers/net/ethernet/netronome/nfp/bpf/main.h
462
struct bpf_insn insn = meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/main.h
464
return insn.code == (BPF_JMP | BPF_CALL) &&
drivers/net/ethernet/netronome/nfp/bpf/main.h
465
insn.src_reg != BPF_PSEUDO_CALL;
drivers/net/ethernet/netronome/nfp/bpf/main.h
470
struct bpf_insn insn = meta->insn;
drivers/net/ethernet/netronome/nfp/bpf/main.h
472
return insn.code == (BPF_JMP | BPF_CALL) &&
drivers/net/ethernet/netronome/nfp/bpf/main.h
473
insn.src_reg == BPF_PSEUDO_CALL;
drivers/net/ethernet/netronome/nfp/bpf/main.h
571
struct bpf_insn *insn);
drivers/net/ethernet/netronome/nfp/bpf/offload.c
160
meta->insn = prog[i];
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
178
u32 func_id = meta->insn.imm;
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
431
off = reg->var_off.value + meta->insn.off + reg->off;
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
432
size = BPF_LDST_BYTES(&meta->insn);
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
505
const struct bpf_reg_state *reg = cur_regs(env) + meta->insn.dst_reg;
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
510
switch (meta->insn.off) {
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
522
return nfp_bpf_check_ptr(nfp_prog, meta, env, meta->insn.dst_reg);
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
529
const struct bpf_reg_state *sreg = cur_regs(env) + meta->insn.src_reg;
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
530
const struct bpf_reg_state *dreg = cur_regs(env) + meta->insn.dst_reg;
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
532
if (meta->insn.imm != BPF_ADD) {
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
533
pr_vlog(env, "atomic op not implemented: %d\n", meta->insn.imm);
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
552
return nfp_bpf_check_ptr(nfp_prog, meta, env, meta->insn.dst_reg);
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
560
cur_regs(env) + meta->insn.src_reg;
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
562
cur_regs(env) + meta->insn.dst_reg;
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
591
mbpf_src(meta) == BPF_K && meta->insn.imm < 0) {
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
622
if (mbpf_src(meta) == BPF_K && meta->insn.imm < 0) {
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
640
if (!nfp_bpf_supported_opcode(meta->insn.code)) {
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
642
meta->insn.code);
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
646
if (meta->insn.src_reg >= MAX_BPF_REG ||
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
647
meta->insn.dst_reg >= MAX_BPF_REG) {
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
654
if (meta->insn.code == (BPF_JMP | BPF_EXIT))
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
659
meta->insn.src_reg);
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
684
if (meta->insn.dst_reg >= BPF_REG_6 &&
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
685
meta->insn.dst_reg <= BPF_REG_9)
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
733
meta->n + 1 + meta->insn.imm);
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
808
struct bpf_insn *insn)
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
819
insn->code == (BPF_JMP | BPF_JA | BPF_K)) {
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
822
tgt_off = off + insn->off + 1;
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
824
if (!insn->off) {
drivers/net/ethernet/netronome/nfp/bpf/verifier.c
837
meta->insn.code, insn->code);
drivers/net/ethernet/netronome/nfp/nfp_asm.c
303
int nfp_ustore_check_valid_no_ecc(u64 insn)
drivers/net/ethernet/netronome/nfp/nfp_asm.c
305
if (insn & ~GENMASK_ULL(NFP_USTORE_OP_BITS, 0))
drivers/net/ethernet/netronome/nfp/nfp_asm.c
311
u64 nfp_ustore_calc_ecc_insn(u64 insn)
drivers/net/ethernet/netronome/nfp/nfp_asm.c
317
ecc |= parity(nfp_ustore_ecc_polynomials[i] & insn) << i;
drivers/net/ethernet/netronome/nfp/nfp_asm.c
319
return insn | (u64)ecc << NFP_USTORE_OP_BITS;
drivers/net/ethernet/netronome/nfp/nfp_asm.h
397
int nfp_ustore_check_valid_no_ecc(u64 insn);
drivers/net/ethernet/netronome/nfp/nfp_asm.h
398
u64 nfp_ustore_calc_ecc_insn(u64 insn);
drivers/net/ethernet/netronome/nfp/nfp_asm.h
64
static inline bool nfp_is_br(u64 insn)
drivers/net/ethernet/netronome/nfp/nfp_asm.h
66
return (insn & OP_BR_BASE_MASK) == OP_BR_BASE ||
drivers/net/ethernet/netronome/nfp/nfp_asm.h
67
(insn & OP_BR_BIT_BASE_MASK) == OP_BR_BIT_BASE;
include/asm-generic/extable.h
20
unsigned long insn, fixup;
include/linux/bpf-cgroup.h
27
const struct bpf_insn *insn);
include/linux/bpf-cgroup.h
29
const struct bpf_insn *insn);
include/linux/bpf-cgroup.h
31
const struct bpf_insn *insn);
include/linux/bpf.h
1067
static bool bpf_is_ldimm64(const struct bpf_insn *insn)
include/linux/bpf.h
1069
return insn->code == (BPF_LD | BPF_IMM | BPF_DW);
include/linux/bpf.h
1072
static inline bool bpf_pseudo_func(const struct bpf_insn *insn)
include/linux/bpf.h
1074
return bpf_is_ldimm64(insn) && insn->src_reg == BPF_PSEUDO_FUNC;
include/linux/bpf.h
1110
int (*gen_prologue)(struct bpf_insn *insn, bool direct_write,
include/linux/bpf.h
1112
int (*gen_epilogue)(struct bpf_insn *insn, const struct bpf_prog *prog,
include/linux/bpf.h
1132
struct bpf_insn *insn);
include/linux/bpf.h
1804
const struct bpf_insn *insn);
include/linux/bpf.h
2923
void bpf_patch_call_args(struct bpf_insn *insn, u32 stack_depth);
include/linux/bpf.h
3042
const struct bpf_insn *insn);
include/linux/bpf.h
3060
int relo_idx, void *insn);
include/linux/bpf.h
3329
const struct bpf_insn *insn)
include/linux/bpf_verifier.h
1064
static inline bool insn_is_gotox(struct bpf_insn *insn)
include/linux/bpf_verifier.h
1066
return BPF_CLASS(insn->code) == BPF_JMP &&
include/linux/bpf_verifier.h
1067
BPF_OP(insn->code) == BPF_JA &&
include/linux/bpf_verifier.h
1068
BPF_SRC(insn->code) == BPF_X;
include/linux/bpf_verifier.h
1082
int bpf_jmp_offset(struct bpf_insn *insn);
include/linux/bpf_verifier.h
912
struct bpf_insn *insn);
include/linux/comedi/comedi_8254.h
112
struct comedi_insn *insn, unsigned int *data);
include/linux/comedi/comedidev.h
1000
struct comedi_insn *insn, unsigned int *data,
include/linux/comedi/comedidev.h
1020
struct comedi_insn *insn, unsigned int *data);
include/linux/comedi/comedidev.h
181
struct comedi_insn *insn, unsigned int *data);
include/linux/comedi/comedidev.h
183
struct comedi_insn *insn, unsigned int *data);
include/linux/comedi/comedidev.h
185
struct comedi_insn *insn, unsigned int *data);
include/linux/comedi/comedidev.h
188
struct comedi_insn *insn,
include/linux/comedi/comedidev.h
576
struct comedi_insn *insn, unsigned int *data);
include/linux/comedi/comedidev.h
989
struct comedi_insn *insn,
include/linux/comedi/comedidev.h
992
struct comedi_insn *insn, unsigned long context),
include/linux/filter.h
1167
bool bpf_jit_supports_insn(struct bpf_insn *insn, bool in_arena);
include/linux/filter.h
1308
const struct bpf_insn *insn, bool extra_pass,
include/linux/filter.h
201
static inline bool insn_is_mov_percpu_addr(const struct bpf_insn *insn)
include/linux/filter.h
203
return insn->code == (BPF_ALU64 | BPF_MOV | BPF_X) && insn->off == BPF_ADDR_PERCPU;
include/linux/filter.h
251
static inline bool insn_is_zext(const struct bpf_insn *insn)
include/linux/filter.h
253
return insn->code == (BPF_ALU | BPF_MOV | BPF_X) && insn->imm == 1;
include/linux/filter.h
259
static inline bool insn_is_cast_user(const struct bpf_insn *insn)
include/linux/filter.h
261
return insn->code == (BPF_ALU64 | BPF_MOV | BPF_X) &&
include/linux/filter.h
262
insn->off == BPF_ADDR_SPACE_CAST &&
include/linux/filter.h
263
insn->imm == 1U << 16;
include/linux/filter.h
571
#define BPF_LDST_BYTES(insn) \
include/linux/filter.h
573
const int __size = bpf_size_to_bytes(BPF_SIZE((insn)->code)); \
include/linux/kprobes.h
332
DEFINE_INSN_CACHE_OPS(insn);
include/linux/uprobes.h
195
uprobe_opcode_t *insn, int nbytes, void *data);
include/linux/uprobes.h
200
extern bool is_swbp_insn(uprobe_opcode_t *insn);
include/linux/uprobes.h
201
extern bool is_trap_insn(uprobe_opcode_t *insn);
include/linux/uprobes.h
207
uprobe_opcode_t *insn, int nbytes, uprobe_write_verify_t verify, bool is_register, bool do_update_ref_ctr,
include/uapi/linux/comedi.h
492
unsigned int insn;
kernel/bpf/arraymap.c
1418
struct bpf_insn *insn = insn_buf;
kernel/bpf/arraymap.c
1423
*insn++ = BPF_ALU64_IMM(BPF_ADD, map_ptr, offsetof(struct bpf_array, value));
kernel/bpf/arraymap.c
1424
*insn++ = BPF_LDX_MEM(BPF_W, ret, index, 0);
kernel/bpf/arraymap.c
1426
*insn++ = BPF_JMP_IMM(BPF_JGE, ret, map->max_entries, 6);
kernel/bpf/arraymap.c
1427
*insn++ = BPF_ALU32_IMM(BPF_AND, ret, array->index_mask);
kernel/bpf/arraymap.c
1429
*insn++ = BPF_JMP_IMM(BPF_JGE, ret, map->max_entries, 5);
kernel/bpf/arraymap.c
1432
*insn++ = BPF_ALU64_IMM(BPF_LSH, ret, ilog2(elem_size));
kernel/bpf/arraymap.c
1434
*insn++ = BPF_ALU64_IMM(BPF_MUL, ret, elem_size);
kernel/bpf/arraymap.c
1435
*insn++ = BPF_ALU64_REG(BPF_ADD, ret, map_ptr);
kernel/bpf/arraymap.c
1436
*insn++ = BPF_LDX_MEM(BPF_DW, ret, ret, 0);
kernel/bpf/arraymap.c
1437
*insn++ = BPF_JMP_IMM(BPF_JEQ, ret, 0, 1);
kernel/bpf/arraymap.c
1438
*insn++ = BPF_JMP_IMM(BPF_JA, 0, 0, 1);
kernel/bpf/arraymap.c
1439
*insn++ = BPF_MOV64_IMM(ret, 0);
kernel/bpf/arraymap.c
1441
return insn - insn_buf;
kernel/bpf/arraymap.c
223
struct bpf_insn *insn = insn_buf;
kernel/bpf/arraymap.c
232
*insn++ = BPF_ALU64_IMM(BPF_ADD, map_ptr, offsetof(struct bpf_array, value));
kernel/bpf/arraymap.c
233
*insn++ = BPF_LDX_MEM(BPF_W, ret, index, 0);
kernel/bpf/arraymap.c
235
*insn++ = BPF_JMP_IMM(BPF_JGE, ret, map->max_entries, 4);
kernel/bpf/arraymap.c
236
*insn++ = BPF_ALU32_IMM(BPF_AND, ret, array->index_mask);
kernel/bpf/arraymap.c
238
*insn++ = BPF_JMP_IMM(BPF_JGE, ret, map->max_entries, 3);
kernel/bpf/arraymap.c
242
*insn++ = BPF_ALU64_IMM(BPF_LSH, ret, ilog2(elem_size));
kernel/bpf/arraymap.c
244
*insn++ = BPF_ALU64_IMM(BPF_MUL, ret, elem_size);
kernel/bpf/arraymap.c
246
*insn++ = BPF_ALU64_REG(BPF_ADD, ret, map_ptr);
kernel/bpf/arraymap.c
247
*insn++ = BPF_JMP_IMM(BPF_JA, 0, 0, 1);
kernel/bpf/arraymap.c
248
*insn++ = BPF_MOV64_IMM(ret, 0);
kernel/bpf/arraymap.c
249
return insn - insn_buf;
kernel/bpf/arraymap.c
268
struct bpf_insn *insn = insn_buf;
kernel/bpf/arraymap.c
277
*insn++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, offsetof(struct bpf_array, pptrs));
kernel/bpf/arraymap.c
279
*insn++ = BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_2, 0);
kernel/bpf/arraymap.c
281
*insn++ = BPF_JMP_IMM(BPF_JGE, BPF_REG_0, map->max_entries, 6);
kernel/bpf/arraymap.c
282
*insn++ = BPF_ALU32_IMM(BPF_AND, BPF_REG_0, array->index_mask);
kernel/bpf/arraymap.c
284
*insn++ = BPF_JMP_IMM(BPF_JGE, BPF_REG_0, map->max_entries, 5);
kernel/bpf/arraymap.c
287
*insn++ = BPF_ALU64_IMM(BPF_LSH, BPF_REG_0, 3);
kernel/bpf/arraymap.c
288
*insn++ = BPF_ALU64_REG(BPF_ADD, BPF_REG_0, BPF_REG_1);
kernel/bpf/arraymap.c
289
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_0, 0);
kernel/bpf/arraymap.c
290
*insn++ = BPF_MOV64_PERCPU_REG(BPF_REG_0, BPF_REG_0);
kernel/bpf/arraymap.c
291
*insn++ = BPF_JMP_IMM(BPF_JA, 0, 0, 1);
kernel/bpf/arraymap.c
292
*insn++ = BPF_MOV64_IMM(BPF_REG_0, 0);
kernel/bpf/arraymap.c
293
return insn - insn_buf;
kernel/bpf/btf.c
9446
int relo_idx, void *insn)
kernel/bpf/btf.c
9510
err = bpf_core_patch_insn((void *)ctx->log, insn, relo->insn_off / 8, relo, relo_idx,
kernel/bpf/cgroup.c
107
shim_prog = (const struct bpf_prog *)((void *)insn - offsetof(struct bpf_prog, insnsi));
kernel/bpf/cgroup.c
118
const struct bpf_insn *insn)
kernel/bpf/cgroup.c
129
shim_prog = (const struct bpf_prog *)((void *)insn - offsetof(struct bpf_prog, insnsi));
kernel/bpf/cgroup.c
140
const struct bpf_insn *insn)
kernel/bpf/cgroup.c
147
shim_prog = (const struct bpf_prog *)((void *)insn - offsetof(struct bpf_prog, insnsi));
kernel/bpf/cgroup.c
2419
struct bpf_insn *insn = insn_buf;
kernel/bpf/cgroup.c
2424
*insn++ = BPF_LDX_MEM(
kernel/bpf/cgroup.c
2444
*insn++ = BPF_STX_MEM(
kernel/bpf/cgroup.c
2447
*insn++ = BPF_LDX_MEM(
kernel/bpf/cgroup.c
2451
*insn++ = BPF_RAW_INSN(
kernel/bpf/cgroup.c
2457
*insn++ = BPF_LDX_MEM(
kernel/bpf/cgroup.c
2461
*insn++ = BPF_LDX_MEM(
kernel/bpf/cgroup.c
2466
*insn++ = BPF_LDX_MEM(
kernel/bpf/cgroup.c
2475
return insn - insn_buf;
kernel/bpf/cgroup.c
2620
struct bpf_insn *insn = insn_buf;
kernel/bpf/cgroup.c
2624
*insn++ = CG_SOCKOPT_READ_FIELD(sk);
kernel/bpf/cgroup.c
2628
*insn++ = CG_SOCKOPT_WRITE_FIELD(level);
kernel/bpf/cgroup.c
2630
*insn++ = CG_SOCKOPT_READ_FIELD(level);
kernel/bpf/cgroup.c
2634
*insn++ = CG_SOCKOPT_WRITE_FIELD(optname);
kernel/bpf/cgroup.c
2636
*insn++ = CG_SOCKOPT_READ_FIELD(optname);
kernel/bpf/cgroup.c
2640
*insn++ = CG_SOCKOPT_WRITE_FIELD(optlen);
kernel/bpf/cgroup.c
2642
*insn++ = CG_SOCKOPT_READ_FIELD(optlen);
kernel/bpf/cgroup.c
2654
*insn++ = BPF_STX_MEM(BPF_DW, si->dst_reg, treg,
kernel/bpf/cgroup.c
2656
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_sockopt_kern, current_task),
kernel/bpf/cgroup.c
2659
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct task_struct, bpf_ctx),
kernel/bpf/cgroup.c
2662
*insn++ = BPF_RAW_INSN(BPF_CLASS(si->code) | BPF_MEM |
kernel/bpf/cgroup.c
2667
*insn++ = BPF_LDX_MEM(BPF_DW, treg, si->dst_reg,
kernel/bpf/cgroup.c
2670
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_sockopt_kern, current_task),
kernel/bpf/cgroup.c
2673
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct task_struct, bpf_ctx),
kernel/bpf/cgroup.c
2676
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_cg_run_ctx, retval),
kernel/bpf/cgroup.c
2682
*insn++ = CG_SOCKOPT_READ_FIELD(optval);
kernel/bpf/cgroup.c
2685
*insn++ = CG_SOCKOPT_READ_FIELD(optval_end);
kernel/bpf/cgroup.c
2689
return insn - insn_buf;
kernel/bpf/cgroup.c
96
const struct bpf_insn *insn)
kernel/bpf/core.c
1248
const struct bpf_insn *insn, bool extra_pass,
kernel/bpf/core.c
1251
s16 off = insn->off;
kernel/bpf/core.c
1252
s32 imm = insn->imm;
kernel/bpf/core.c
1256
*func_addr_fixed = insn->src_reg != BPF_PSEUDO_CALL;
kernel/bpf/core.c
1269
} else if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL &&
kernel/bpf/core.c
1271
err = bpf_get_kfunc_addr(prog, insn->imm, insn->off, &addr);
kernel/bpf/core.c
1515
struct bpf_insn *insn;
kernel/bpf/core.c
1526
insn = clone->insnsi;
kernel/bpf/core.c
1528
for (i = 0; i < insn_cnt; i++, insn++) {
kernel/bpf/core.c
1529
if (bpf_pseudo_func(insn)) {
kernel/bpf/core.c
1534
insn++;
kernel/bpf/core.c
1543
if (insn[0].code == (BPF_LD | BPF_IMM | BPF_DW) &&
kernel/bpf/core.c
1544
insn[1].code == 0)
kernel/bpf/core.c
1545
memcpy(aux, insn, sizeof(aux));
kernel/bpf/core.c
1547
rewritten = bpf_jit_blind_insn(insn, aux, insn_buff,
kernel/bpf/core.c
1569
insn = clone->insnsi + i + insn_delta;
kernel/bpf/core.c
1775
static u64 ___bpf_prog_run(u64 *regs, const struct bpf_insn *insn)
kernel/bpf/core.c
1799
#define CONT ({ insn++; goto select_insn; })
kernel/bpf/core.c
1800
#define CONT_JMP ({ insn++; goto select_insn; })
kernel/bpf/core.c
1803
goto *jumptable[insn->code];
kernel/bpf/core.c
1896
DST = (u64) (u32) insn[0].imm | ((u64) (u32) insn[1].imm) << 32;
kernel/bpf/core.c
1897
insn++;
kernel/bpf/core.c
2067
BPF_R0 = (__bpf_call_base + insn->imm)(BPF_R1, BPF_R2, BPF_R3,
kernel/bpf/core.c
2072
BPF_R0 = (__bpf_call_base_args + insn->imm)(BPF_R1, BPF_R2,
kernel/bpf/core.c
2075
insn + insn->off + 1);
kernel/bpf/core.c
2101
insn = prog->insnsi;
kernel/bpf/core.c
2107
insn += insn->off;
kernel/bpf/core.c
2110
insn += insn->imm;
kernel/bpf/core.c
2118
insn += insn->off; \
kernel/bpf/core.c
2124
insn += insn->off; \
kernel/bpf/core.c
2130
insn += insn->off; \
kernel/bpf/core.c
2136
insn += insn->off; \
kernel/bpf/core.c
2168
*(SIZE *)(unsigned long) (DST + insn->off) = SRC; \
kernel/bpf/core.c
2171
*(SIZE *)(unsigned long) (DST + insn->off) = IMM; \
kernel/bpf/core.c
2174
DST = *(SIZE *)(unsigned long) (SRC + insn->off); \
kernel/bpf/core.c
2178
(const void *)(long) (SRC + insn->off)); \
kernel/bpf/core.c
2190
DST = *(SIZE *)(unsigned long) (SRC + insn->off); \
kernel/bpf/core.c
2194
(const void *)(long) (SRC + insn->off)); \
kernel/bpf/core.c
2205
if (BPF_SIZE(insn->code) == BPF_W) \
kernel/bpf/core.c
2207
(DST + insn->off)); \
kernel/bpf/core.c
2208
else if (BPF_SIZE(insn->code) == BPF_DW) \
kernel/bpf/core.c
2210
(DST + insn->off)); \
kernel/bpf/core.c
2215
if (BPF_SIZE(insn->code) == BPF_W) \
kernel/bpf/core.c
2218
(atomic_t *)(unsigned long) (DST + insn->off)); \
kernel/bpf/core.c
2219
else if (BPF_SIZE(insn->code) == BPF_DW) \
kernel/bpf/core.c
2222
(atomic64_t *)(unsigned long) (DST + insn->off)); \
kernel/bpf/core.c
2242
if (BPF_SIZE(insn->code) == BPF_W)
kernel/bpf/core.c
2244
(atomic_t *)(unsigned long) (DST + insn->off),
kernel/bpf/core.c
2246
else if (BPF_SIZE(insn->code) == BPF_DW)
kernel/bpf/core.c
2248
(atomic64_t *)(unsigned long) (DST + insn->off),
kernel/bpf/core.c
2254
if (BPF_SIZE(insn->code) == BPF_W)
kernel/bpf/core.c
2256
(atomic_t *)(unsigned long) (DST + insn->off),
kernel/bpf/core.c
2258
else if (BPF_SIZE(insn->code) == BPF_DW)
kernel/bpf/core.c
2260
(atomic64_t *)(unsigned long) (DST + insn->off),
kernel/bpf/core.c
2269
switch (BPF_SIZE(insn->code)) {
kernel/bpf/core.c
2273
(SIZE *)(unsigned long)(SRC + insn->off)); \
kernel/bpf/core.c
2287
switch (BPF_SIZE(insn->code)) {
kernel/bpf/core.c
2291
(SIZE *)(unsigned long)(DST + insn->off), (SIZE)SRC); \
kernel/bpf/core.c
2318
insn->code, insn->imm);
kernel/bpf/core.c
2325
static unsigned int PROG_NAME(stack_size)(const void *ctx, const struct bpf_insn *insn) \
kernel/bpf/core.c
2333
return ___bpf_prog_run(regs, insn); \
kernel/bpf/core.c
2339
const struct bpf_insn *insn) \
kernel/bpf/core.c
2351
return ___bpf_prog_run(regs, insn); \
kernel/bpf/core.c
2372
const struct bpf_insn *insn) = {
kernel/bpf/core.c
2381
const struct bpf_insn *insn) = {
kernel/bpf/core.c
2389
void bpf_patch_call_args(struct bpf_insn *insn, u32 stack_depth)
kernel/bpf/core.c
2392
insn->off = (s16) insn->imm;
kernel/bpf/core.c
2393
insn->imm = interpreters_args[(round_up(stack_depth, 32) / 32) - 1] -
kernel/bpf/core.c
2395
insn->code = BPF_JMP | BPF_CALL_ARGS;
kernel/bpf/core.c
2401
const struct bpf_insn *insn)
kernel/bpf/core.c
2603
const struct bpf_insn *insn)
kernel/bpf/core.c
3169
bool __weak bpf_jit_supports_insn(struct bpf_insn *insn, bool in_arena)
kernel/bpf/core.c
339
static int bpf_adj_delta_to_imm(struct bpf_insn *insn, u32 pos, s32 end_old,
kernel/bpf/core.c
344
s64 imm = insn->imm;
kernel/bpf/core.c
353
insn->imm = imm;
kernel/bpf/core.c
357
static int bpf_adj_delta_to_off(struct bpf_insn *insn, u32 pos, s32 end_old,
kernel/bpf/core.c
363
if (insn->code == (BPF_JMP32 | BPF_JA)) {
kernel/bpf/core.c
364
off = insn->imm;
kernel/bpf/core.c
368
off = insn->off;
kernel/bpf/core.c
380
if (insn->code == (BPF_JMP32 | BPF_JA))
kernel/bpf/core.c
381
insn->imm = off;
kernel/bpf/core.c
383
insn->off = off;
kernel/bpf/core.c
392
struct bpf_insn *insn = prog->insnsi;
kernel/bpf/core.c
395
for (i = 0; i < insn_cnt; i++, insn++) {
kernel/bpf/core.c
404
insn = prog->insnsi + end_old;
kernel/bpf/core.c
406
if (bpf_pseudo_func(insn)) {
kernel/bpf/core.c
407
ret = bpf_adj_delta_to_imm(insn, pos, end_old,
kernel/bpf/core.c
413
code = insn->code;
kernel/bpf/core.c
420
if (insn->src_reg != BPF_PSEUDO_CALL)
kernel/bpf/core.c
422
ret = bpf_adj_delta_to_imm(insn, pos, end_old,
kernel/bpf/core.c
425
ret = bpf_adj_delta_to_off(insn, pos, end_old,
kernel/bpf/core.c
62
#define DST regs[insn->dst_reg]
kernel/bpf/core.c
63
#define SRC regs[insn->src_reg]
kernel/bpf/core.c
68
#define OFF insn->off
kernel/bpf/core.c
69
#define IMM insn->imm
kernel/bpf/disasm.c
140
const struct bpf_insn *insn)
kernel/bpf/disasm.c
143
insn->code, insn->dst_reg,
kernel/bpf/disasm.c
144
BPF_SRC(insn->code) == BPF_TO_BE ? "be" : "le",
kernel/bpf/disasm.c
145
insn->imm, insn->dst_reg);
kernel/bpf/disasm.c
150
const struct bpf_insn *insn)
kernel/bpf/disasm.c
153
insn->code, insn->dst_reg,
kernel/bpf/disasm.c
154
insn->imm, insn->dst_reg);
kernel/bpf/disasm.c
157
static bool is_sdiv_smod(const struct bpf_insn *insn)
kernel/bpf/disasm.c
159
return (BPF_OP(insn->code) == BPF_DIV || BPF_OP(insn->code) == BPF_MOD) &&
kernel/bpf/disasm.c
160
insn->off == 1;
kernel/bpf/disasm.c
163
static bool is_movsx(const struct bpf_insn *insn)
kernel/bpf/disasm.c
165
return BPF_OP(insn->code) == BPF_MOV &&
kernel/bpf/disasm.c
166
(insn->off == 8 || insn->off == 16 || insn->off == 32);
kernel/bpf/disasm.c
169
static bool is_addr_space_cast(const struct bpf_insn *insn)
kernel/bpf/disasm.c
17
const struct bpf_insn *insn,
kernel/bpf/disasm.c
171
return insn->code == (BPF_ALU64 | BPF_MOV | BPF_X) &&
kernel/bpf/disasm.c
172
insn->off == BPF_ADDR_SPACE_CAST;
kernel/bpf/disasm.c
181
static inline bool is_mov_percpu_addr(const struct bpf_insn *insn)
kernel/bpf/disasm.c
183
return insn->code == (BPF_ALU64 | BPF_MOV | BPF_X) && insn->off == BPF_ADDR_PERCPU;
kernel/bpf/disasm.c
187
const struct bpf_insn *insn,
kernel/bpf/disasm.c
191
u8 class = BPF_CLASS(insn->code);
kernel/bpf/disasm.c
194
if (BPF_OP(insn->code) == BPF_END) {
kernel/bpf/disasm.c
196
print_bpf_bswap_insn(verbose, cbs->private_data, insn);
kernel/bpf/disasm.c
198
print_bpf_end_insn(verbose, cbs->private_data, insn);
kernel/bpf/disasm.c
199
} else if (BPF_OP(insn->code) == BPF_NEG) {
kernel/bpf/disasm.c
201
insn->code, class == BPF_ALU ? 'w' : 'r',
kernel/bpf/disasm.c
202
insn->dst_reg, class == BPF_ALU ? 'w' : 'r',
kernel/bpf/disasm.c
203
insn->dst_reg);
kernel/bpf/disasm.c
204
} else if (is_addr_space_cast(insn)) {
kernel/bpf/disasm.c
206
insn->code, insn->dst_reg,
kernel/bpf/disasm.c
207
insn->src_reg, ((u32)insn->imm) >> 16, (u16)insn->imm);
kernel/bpf/disasm.c
208
} else if (is_mov_percpu_addr(insn)) {
kernel/bpf/disasm.c
210
insn->code, insn->dst_reg, insn->src_reg);
kernel/bpf/disasm.c
211
} else if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/disasm.c
213
insn->code, class == BPF_ALU ? 'w' : 'r',
kernel/bpf/disasm.c
214
insn->dst_reg,
kernel/bpf/disasm.c
215
is_sdiv_smod(insn) ? bpf_alu_sign_string[BPF_OP(insn->code) >> 4]
kernel/bpf/disasm.c
216
: bpf_alu_string[BPF_OP(insn->code) >> 4],
kernel/bpf/disasm.c
217
is_movsx(insn) ? bpf_movsx_string[(insn->off >> 3) - 1] : "",
kernel/bpf/disasm.c
219
insn->src_reg);
kernel/bpf/disasm.c
22
if (!insn->src_reg &&
kernel/bpf/disasm.c
222
insn->code, class == BPF_ALU ? 'w' : 'r',
kernel/bpf/disasm.c
223
insn->dst_reg,
kernel/bpf/disasm.c
224
is_sdiv_smod(insn) ? bpf_alu_sign_string[BPF_OP(insn->code) >> 4]
kernel/bpf/disasm.c
225
: bpf_alu_string[BPF_OP(insn->code) >> 4],
kernel/bpf/disasm.c
226
insn->imm);
kernel/bpf/disasm.c
229
if (BPF_MODE(insn->code) == BPF_MEM)
kernel/bpf/disasm.c
23
insn->imm >= 0 && insn->imm < __BPF_FUNC_MAX_ID &&
kernel/bpf/disasm.c
231
insn->code,
kernel/bpf/disasm.c
232
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
233
insn->dst_reg,
kernel/bpf/disasm.c
234
insn->off, insn->src_reg);
kernel/bpf/disasm.c
235
else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
kernel/bpf/disasm.c
236
(insn->imm == BPF_ADD || insn->imm == BPF_AND ||
kernel/bpf/disasm.c
237
insn->imm == BPF_OR || insn->imm == BPF_XOR)) {
kernel/bpf/disasm.c
239
insn->code,
kernel/bpf/disasm.c
24
func_id_str[insn->imm])
kernel/bpf/disasm.c
240
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
241
insn->dst_reg, insn->off,
kernel/bpf/disasm.c
242
bpf_alu_string[BPF_OP(insn->imm) >> 4],
kernel/bpf/disasm.c
243
insn->src_reg);
kernel/bpf/disasm.c
244
} else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
kernel/bpf/disasm.c
245
(insn->imm == (BPF_ADD | BPF_FETCH) ||
kernel/bpf/disasm.c
246
insn->imm == (BPF_AND | BPF_FETCH) ||
kernel/bpf/disasm.c
247
insn->imm == (BPF_OR | BPF_FETCH) ||
kernel/bpf/disasm.c
248
insn->imm == (BPF_XOR | BPF_FETCH))) {
kernel/bpf/disasm.c
25
return func_id_str[insn->imm];
kernel/bpf/disasm.c
250
insn->code, insn->src_reg,
kernel/bpf/disasm.c
251
BPF_SIZE(insn->code) == BPF_DW ? "64" : "",
kernel/bpf/disasm.c
252
bpf_atomic_alu_string[BPF_OP(insn->imm) >> 4],
kernel/bpf/disasm.c
253
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
254
insn->dst_reg, insn->off, insn->src_reg);
kernel/bpf/disasm.c
255
} else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
kernel/bpf/disasm.c
256
insn->imm == BPF_CMPXCHG) {
kernel/bpf/disasm.c
258
insn->code,
kernel/bpf/disasm.c
259
BPF_SIZE(insn->code) == BPF_DW ? "64" : "",
kernel/bpf/disasm.c
260
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
261
insn->dst_reg, insn->off,
kernel/bpf/disasm.c
262
insn->src_reg);
kernel/bpf/disasm.c
263
} else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
kernel/bpf/disasm.c
264
insn->imm == BPF_XCHG) {
kernel/bpf/disasm.c
266
insn->code, insn->src_reg,
kernel/bpf/disasm.c
267
BPF_SIZE(insn->code) == BPF_DW ? "64" : "",
kernel/bpf/disasm.c
268
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
269
insn->dst_reg, insn->off, insn->src_reg);
kernel/bpf/disasm.c
270
} else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
kernel/bpf/disasm.c
271
insn->imm == BPF_LOAD_ACQ) {
kernel/bpf/disasm.c
273
insn->code, insn->dst_reg,
kernel/bpf/disasm.c
274
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
275
insn->src_reg, insn->off);
kernel/bpf/disasm.c
276
} else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
kernel/bpf/disasm.c
277
insn->imm == BPF_STORE_REL) {
kernel/bpf/disasm.c
279
insn->code,
kernel/bpf/disasm.c
280
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
281
insn->dst_reg, insn->off, insn->src_reg);
kernel/bpf/disasm.c
283
verbose(cbs->private_data, "BUG_%02x\n", insn->code);
kernel/bpf/disasm.c
286
if (BPF_MODE(insn->code) == BPF_MEM) {
kernel/bpf/disasm.c
288
insn->code,
kernel/bpf/disasm.c
289
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
290
insn->dst_reg,
kernel/bpf/disasm.c
291
insn->off, insn->imm);
kernel/bpf/disasm.c
292
} else if (BPF_MODE(insn->code) == 0xc0 /* BPF_NOSPEC, no UAPI */) {
kernel/bpf/disasm.c
293
verbose(cbs->private_data, "(%02x) nospec\n", insn->code);
kernel/bpf/disasm.c
295
verbose(cbs->private_data, "BUG_st_%02x\n", insn->code);
kernel/bpf/disasm.c
298
if (BPF_MODE(insn->code) != BPF_MEM && BPF_MODE(insn->code) != BPF_MEMSX) {
kernel/bpf/disasm.c
299
verbose(cbs->private_data, "BUG_ldx_%02x\n", insn->code);
kernel/bpf/disasm.c
30
res = cbs->cb_call(cbs->private_data, insn);
kernel/bpf/disasm.c
303
insn->code, insn->dst_reg,
kernel/bpf/disasm.c
304
BPF_MODE(insn->code) == BPF_MEM ?
kernel/bpf/disasm.c
305
bpf_ldst_string[BPF_SIZE(insn->code) >> 3] :
kernel/bpf/disasm.c
306
bpf_ldsx_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
307
insn->src_reg, insn->off);
kernel/bpf/disasm.c
309
if (BPF_MODE(insn->code) == BPF_ABS) {
kernel/bpf/disasm.c
311
insn->code,
kernel/bpf/disasm.c
312
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
313
insn->imm);
kernel/bpf/disasm.c
314
} else if (BPF_MODE(insn->code) == BPF_IND) {
kernel/bpf/disasm.c
316
insn->code,
kernel/bpf/disasm.c
317
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
kernel/bpf/disasm.c
318
insn->src_reg, insn->imm);
kernel/bpf/disasm.c
319
} else if (BPF_MODE(insn->code) == BPF_IMM &&
kernel/bpf/disasm.c
320
BPF_SIZE(insn->code) == BPF_DW) {
kernel/bpf/disasm.c
324
u64 imm = ((u64)(insn + 1)->imm << 32) | (u32)insn->imm;
kernel/bpf/disasm.c
325
bool is_ptr = insn->src_reg == BPF_PSEUDO_MAP_FD ||
kernel/bpf/disasm.c
326
insn->src_reg == BPF_PSEUDO_MAP_VALUE;
kernel/bpf/disasm.c
333
insn->code, insn->dst_reg,
kernel/bpf/disasm.c
334
__func_imm_name(cbs, insn, imm,
kernel/bpf/disasm.c
337
verbose(cbs->private_data, "BUG_ld_%02x\n", insn->code);
kernel/bpf/disasm.c
341
u8 opcode = BPF_OP(insn->code);
kernel/bpf/disasm.c
346
if (insn->src_reg == BPF_PSEUDO_CALL) {
kernel/bpf/disasm.c
348
insn->code,
kernel/bpf/disasm.c
349
__func_get_name(cbs, insn,
kernel/bpf/disasm.c
35
if (insn->src_reg == BPF_PSEUDO_CALL)
kernel/bpf/disasm.c
353
verbose(cbs->private_data, "(%02x) call %s#%d\n", insn->code,
kernel/bpf/disasm.c
354
__func_get_name(cbs, insn,
kernel/bpf/disasm.c
356
insn->imm);
kernel/bpf/disasm.c
358
} else if (insn->code == (BPF_JMP | BPF_JA)) {
kernel/bpf/disasm.c
36
snprintf(buff, len, "%+d", insn->imm);
kernel/bpf/disasm.c
360
insn->code, insn->off);
kernel/bpf/disasm.c
361
} else if (insn->code == (BPF_JMP | BPF_JA | BPF_X)) {
kernel/bpf/disasm.c
363
insn->code, insn->dst_reg);
kernel/bpf/disasm.c
364
} else if (insn->code == (BPF_JMP | BPF_JCOND) &&
kernel/bpf/disasm.c
365
insn->src_reg == BPF_MAY_GOTO) {
kernel/bpf/disasm.c
367
insn->code, insn->off);
kernel/bpf/disasm.c
368
} else if (insn->code == (BPF_JMP32 | BPF_JA)) {
kernel/bpf/disasm.c
37
else if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL)
kernel/bpf/disasm.c
370
insn->code, insn->imm);
kernel/bpf/disasm.c
371
} else if (insn->code == (BPF_JMP | BPF_EXIT)) {
kernel/bpf/disasm.c
372
verbose(cbs->private_data, "(%02x) exit\n", insn->code);
kernel/bpf/disasm.c
373
} else if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/disasm.c
376
insn->code, class == BPF_JMP32 ? 'w' : 'r',
kernel/bpf/disasm.c
377
insn->dst_reg,
kernel/bpf/disasm.c
378
bpf_jmp_string[BPF_OP(insn->code) >> 4],
kernel/bpf/disasm.c
380
insn->src_reg, insn->off);
kernel/bpf/disasm.c
384
insn->code, class == BPF_JMP32 ? 'w' : 'r',
kernel/bpf/disasm.c
385
insn->dst_reg,
kernel/bpf/disasm.c
386
bpf_jmp_string[BPF_OP(insn->code) >> 4],
kernel/bpf/disasm.c
387
(u32)insn->imm, insn->off);
kernel/bpf/disasm.c
391
insn->code, bpf_class_string[class]);
kernel/bpf/disasm.c
44
const struct bpf_insn *insn,
kernel/bpf/disasm.c
48
return cbs->cb_imm(cbs->private_data, insn, full_imm);
kernel/bpf/disasm.h
25
const struct bpf_insn *insn);
kernel/bpf/disasm.h
27
const struct bpf_insn *insn,
kernel/bpf/disasm.h
38
const struct bpf_insn *insn,
kernel/bpf/hashtab.c
2410
struct bpf_insn *insn = insn_buf;
kernel/bpf/hashtab.c
2417
*insn++ = BPF_EMIT_CALL(__htab_map_lookup_elem);
kernel/bpf/hashtab.c
2418
*insn++ = BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 3);
kernel/bpf/hashtab.c
2419
*insn++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_0,
kernel/bpf/hashtab.c
2421
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_0, 0);
kernel/bpf/hashtab.c
2422
*insn++ = BPF_MOV64_PERCPU_REG(BPF_REG_0, BPF_REG_0);
kernel/bpf/hashtab.c
2424
return insn - insn_buf;
kernel/bpf/hashtab.c
2701
struct bpf_insn *insn = insn_buf;
kernel/bpf/hashtab.c
2706
*insn++ = BPF_EMIT_CALL(__htab_map_lookup_elem);
kernel/bpf/hashtab.c
2707
*insn++ = BPF_JMP_IMM(BPF_JEQ, ret, 0, 2);
kernel/bpf/hashtab.c
2708
*insn++ = BPF_ALU64_IMM(BPF_ADD, ret,
kernel/bpf/hashtab.c
2711
*insn++ = BPF_LDX_MEM(BPF_DW, ret, ret, 0);
kernel/bpf/hashtab.c
2713
return insn - insn_buf;
kernel/bpf/hashtab.c
775
struct bpf_insn *insn = insn_buf;
kernel/bpf/hashtab.c
780
*insn++ = BPF_EMIT_CALL(__htab_map_lookup_elem);
kernel/bpf/hashtab.c
781
*insn++ = BPF_JMP_IMM(BPF_JEQ, ret, 0, 1);
kernel/bpf/hashtab.c
782
*insn++ = BPF_ALU64_IMM(BPF_ADD, ret,
kernel/bpf/hashtab.c
785
return insn - insn_buf;
kernel/bpf/hashtab.c
815
struct bpf_insn *insn = insn_buf;
kernel/bpf/hashtab.c
821
*insn++ = BPF_EMIT_CALL(__htab_map_lookup_elem);
kernel/bpf/hashtab.c
822
*insn++ = BPF_JMP_IMM(BPF_JEQ, ret, 0, 4);
kernel/bpf/hashtab.c
823
*insn++ = BPF_LDX_MEM(BPF_B, ref_reg, ret,
kernel/bpf/hashtab.c
826
*insn++ = BPF_JMP_IMM(BPF_JNE, ref_reg, 0, 1);
kernel/bpf/hashtab.c
827
*insn++ = BPF_ST_MEM(BPF_B, ret,
kernel/bpf/hashtab.c
831
*insn++ = BPF_ALU64_IMM(BPF_ADD, ret,
kernel/bpf/hashtab.c
834
return insn - insn_buf;
kernel/bpf/liveness.c
439
int bpf_jmp_offset(struct bpf_insn *insn)
kernel/bpf/liveness.c
441
u8 code = insn->code;
kernel/bpf/liveness.c
444
return insn->imm;
kernel/bpf/liveness.c
445
return insn->off;
kernel/bpf/liveness.c
484
struct bpf_insn *insn = &prog->insnsi[idx];
kernel/bpf/liveness.c
497
opcode_info = &opcode_info_tbl[BPF_CLASS(insn->code) | BPF_OP(insn->code)];
kernel/bpf/liveness.c
498
insn_sz = bpf_is_ldimm64(insn) ? 2 : 1;
kernel/bpf/liveness.c
503
succ->items[succ->cnt++] = idx + bpf_jmp_offset(insn) + 1;
kernel/bpf/liveness.c
538
struct per_frame_masks *insn;
kernel/bpf/liveness.c
549
insn = get_frame_masks(instance, frame, this_subprog_start);
kernel/bpf/liveness.c
550
if (!insn)
kernel/bpf/liveness.c
552
bpf_mark_stack_write(env, frame, insn->must_write_acc);
kernel/bpf/liveness.c
553
err = mark_stack_read(env, outer_instance, frame, callsite, insn->live_before);
kernel/bpf/liveness.c
566
struct per_frame_masks *insn, *succ_insn;
kernel/bpf/liveness.c
576
insn = get_frame_masks(instance, frame, insn_idx);
kernel/bpf/liveness.c
589
must_write_acc |= insn->must_write;
kernel/bpf/liveness.c
594
new_before = (new_after & ~insn->must_write) | insn->may_read;
kernel/bpf/liveness.c
595
changed |= new_before != insn->live_before;
kernel/bpf/liveness.c
596
changed |= must_write_acc != insn->must_write_acc;
kernel/bpf/liveness.c
598
(insn->may_read || insn->must_write ||
kernel/bpf/liveness.c
602
frame, insn_idx, insn->live_before, new_before);
kernel/bpf/liveness.c
604
frame, insn_idx, insn->must_write_acc, must_write_acc);
kernel/bpf/liveness.c
606
insn->live_before = new_before;
kernel/bpf/liveness.c
607
insn->must_write_acc = must_write_acc;
kernel/bpf/liveness.c
618
struct per_frame_masks *insn;
kernel/bpf/liveness.c
633
insn = get_frame_masks(instance, frame, this_subprog_start + i);
kernel/bpf/liveness.c
634
insn->must_write_acc = 0;
kernel/bpf/offload.c
339
struct bpf_insn *insn)
kernel/bpf/offload.c
350
ret = ops->replace_insn(env, off, insn);
kernel/bpf/offload.c
408
const struct bpf_insn *insn)
kernel/bpf/verifier.c
10817
static int push_callback_call(struct bpf_verifier_env *env, struct bpf_insn *insn,
kernel/bpf/verifier.c
10835
if (bpf_pseudo_kfunc_call(insn) &&
kernel/bpf/verifier.c
10836
!is_callback_calling_kfunc(insn->imm)) {
kernel/bpf/verifier.c
10838
func_id_name(insn->imm), insn->imm);
kernel/bpf/verifier.c
10840
} else if (!bpf_pseudo_kfunc_call(insn) &&
kernel/bpf/verifier.c
10841
!is_callback_calling_function(insn->imm)) { /* helper */
kernel/bpf/verifier.c
10843
func_id_name(insn->imm), insn->imm);
kernel/bpf/verifier.c
10847
if (is_async_callback_calling_insn(insn)) {
kernel/bpf/verifier.c
10854
is_async_cb_sleepable(env, insn));
kernel/bpf/verifier.c
10886
static int check_func_call(struct bpf_verifier_env *env, struct bpf_insn *insn,
kernel/bpf/verifier.c
10893
target_insn = *insn_idx + insn->imm + 1;
kernel/bpf/verifier.c
11209
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
11221
kfunc_btf_id = insn[callee->callsite].imm;
kernel/bpf/verifier.c
11640
static int check_helper_call(struct bpf_verifier_env *env, struct bpf_insn *insn,
kernel/bpf/verifier.c
11655
func_id = insn->imm;
kernel/bpf/verifier.c
11656
err = get_helper_proto(env, insn->imm, &fn);
kernel/bpf/verifier.c
11811
err = push_callback_call(env, insn, insn_idx, meta.subprogno,
kernel/bpf/verifier.c
11815
err = push_callback_call(env, insn, insn_idx, meta.subprogno,
kernel/bpf/verifier.c
11819
err = push_callback_call(env, insn, insn_idx, meta.subprogno,
kernel/bpf/verifier.c
11834
err = push_callback_call(env, insn, insn_idx, meta.subprogno,
kernel/bpf/verifier.c
11938
err = push_callback_call(env, insn, insn_idx, meta.subprogno,
kernel/bpf/verifier.c
13107
static bool is_bpf_throw_kfunc(struct bpf_insn *insn)
kernel/bpf/verifier.c
13109
return bpf_pseudo_kfunc_call(insn) && insn->off == 0 &&
kernel/bpf/verifier.c
13110
insn->imm == special_kfunc_list[KF_bpf_throw];
kernel/bpf/verifier.c
14110
static int check_kfunc_call(struct bpf_verifier_env *env, struct bpf_insn *insn,
kernel/bpf/verifier.c
14125
if (!insn->imm)
kernel/bpf/verifier.c
14128
err = fetch_kfunc_arg_meta(env, insn->imm, insn->off, &meta);
kernel/bpf/verifier.c
14139
if (!insn->off &&
kernel/bpf/verifier.c
14140
(insn->imm == special_kfunc_list[KF_bpf_res_spin_lock] ||
kernel/bpf/verifier.c
14141
insn->imm == special_kfunc_list[KF_bpf_res_spin_lock_irqsave])) {
kernel/bpf/verifier.c
14164
} else if (!insn->off && insn->imm == special_kfunc_list[KF___bpf_trap]) {
kernel/bpf/verifier.c
14190
err = push_callback_call(env, insn, insn_idx, meta.subprogno,
kernel/bpf/verifier.c
14205
err = push_callback_call(env, insn, insn_idx, meta.subprogno,
kernel/bpf/verifier.c
14215
err = push_callback_call(env, insn, insn_idx, meta.subprogno,
kernel/bpf/verifier.c
14580
const struct bpf_insn *insn)
kernel/bpf/verifier.c
14583
BPF_SRC(insn->code) == BPF_K ||
kernel/bpf/verifier.c
14605
struct bpf_insn *insn)
kernel/bpf/verifier.c
14609
if (can_skip_alu_sanitation(env, insn))
kernel/bpf/verifier.c
14626
const struct bpf_insn *insn,
kernel/bpf/verifier.c
14633
if (!IS_ERR(branch) && insn) {
kernel/bpf/verifier.c
14635
if (BPF_SRC(insn->code) == BPF_K) {
kernel/bpf/verifier.c
14636
mark_reg_unknown(env, regs, insn->dst_reg);
kernel/bpf/verifier.c
14637
} else if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
14638
mark_reg_unknown(env, regs, insn->dst_reg);
kernel/bpf/verifier.c
14639
mark_reg_unknown(env, regs, insn->src_reg);
kernel/bpf/verifier.c
14646
struct bpf_insn *insn,
kernel/bpf/verifier.c
14658
u8 opcode = BPF_OP(insn->code);
kernel/bpf/verifier.c
14663
if (can_skip_alu_sanitation(env, insn))
kernel/bpf/verifier.c
14755
const struct bpf_insn *insn, int reason,
kernel/bpf/verifier.c
14760
const char *op = BPF_OP(insn->code) == BPF_ADD ? "add" : "sub";
kernel/bpf/verifier.c
14761
u32 dst = insn->dst_reg, src = insn->src_reg;
kernel/bpf/verifier.c
14827
const struct bpf_insn *insn,
kernel/bpf/verifier.c
14830
u32 dst = insn->dst_reg;
kernel/bpf/verifier.c
14864
struct bpf_insn *insn,
kernel/bpf/verifier.c
14877
u8 opcode = BPF_OP(insn->code);
kernel/bpf/verifier.c
14878
u32 dst = insn->dst_reg;
kernel/bpf/verifier.c
14892
if (BPF_CLASS(insn->code) != BPF_ALU64) {
kernel/bpf/verifier.c
14961
ret = sanitize_ptr_alu(env, insn, ptr_reg, off_reg, dst_reg,
kernel/bpf/verifier.c
14964
return sanitize_err(env, insn, ret, off_reg, dst_reg);
kernel/bpf/verifier.c
15086
bounds_ret = sanitize_check_bounds(env, insn, dst_reg);
kernel/bpf/verifier.c
15090
ret = sanitize_ptr_alu(env, insn, dst_reg, off_reg, dst_reg,
kernel/bpf/verifier.c
15092
if (verifier_bug_if(!can_skip_alu_sanitation(env, insn)
kernel/bpf/verifier.c
15100
return sanitize_err(env, insn, ret, off_reg, dst_reg);
kernel/bpf/verifier.c
15911
static void scalar_byte_swap(struct bpf_reg_state *dst_reg, struct bpf_insn *insn)
kernel/bpf/verifier.c
15924
bool alu64 = BPF_CLASS(insn->code) == BPF_ALU64;
kernel/bpf/verifier.c
15925
bool to_le = BPF_SRC(insn->code) == BPF_TO_LE;
kernel/bpf/verifier.c
15939
if (need_bswap || insn->imm == 16 || insn->imm == 32)
kernel/bpf/verifier.c
15943
if (insn->imm == 16)
kernel/bpf/verifier.c
15945
else if (insn->imm == 32)
kernel/bpf/verifier.c
15947
else if (insn->imm == 64)
kernel/bpf/verifier.c
15956
if (insn->imm == 16 || insn->imm == 32)
kernel/bpf/verifier.c
15957
coerce_reg_to_size(dst_reg, insn->imm / 8);
kernel/bpf/verifier.c
15960
static bool is_safe_to_compute_dst_reg_range(struct bpf_insn *insn,
kernel/bpf/verifier.c
15964
u64 insn_bitness = (BPF_CLASS(insn->code) == BPF_ALU64) ? 64 : 32;
kernel/bpf/verifier.c
15978
switch (BPF_OP(insn->code)) {
kernel/bpf/verifier.c
16010
static int maybe_fork_scalars(struct bpf_verifier_env *env, struct bpf_insn *insn,
kernel/bpf/verifier.c
16030
__mark_reg32_known(&regs[insn->dst_reg], 0);
kernel/bpf/verifier.c
16033
__mark_reg_known(&regs[insn->dst_reg], 0);
kernel/bpf/verifier.c
16044
struct bpf_insn *insn,
kernel/bpf/verifier.c
16048
u8 opcode = BPF_OP(insn->code);
kernel/bpf/verifier.c
16049
s16 off = insn->off;
kernel/bpf/verifier.c
16050
bool alu32 = (BPF_CLASS(insn->code) != BPF_ALU64);
kernel/bpf/verifier.c
16053
if (!is_safe_to_compute_dst_reg_range(insn, &src_reg)) {
kernel/bpf/verifier.c
16059
ret = sanitize_val_alu(env, insn);
kernel/bpf/verifier.c
16061
return sanitize_err(env, insn, ret, NULL, NULL);
kernel/bpf/verifier.c
16135
ret = maybe_fork_scalars(env, insn, dst_reg);
kernel/bpf/verifier.c
16145
ret = maybe_fork_scalars(env, insn, dst_reg);
kernel/bpf/verifier.c
16177
scalar_byte_swap(dst_reg, insn);
kernel/bpf/verifier.c
16202
struct bpf_insn *insn)
kernel/bpf/verifier.c
16208
bool alu32 = (BPF_CLASS(insn->code) != BPF_ALU64);
kernel/bpf/verifier.c
16209
u8 opcode = BPF_OP(insn->code);
kernel/bpf/verifier.c
16212
dst_reg = &regs[insn->dst_reg];
kernel/bpf/verifier.c
16218
if (BPF_CLASS(insn->code) == BPF_ALU64)
kernel/bpf/verifier.c
16232
if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
16233
src_reg = &regs[insn->src_reg];
kernel/bpf/verifier.c
16241
mark_reg_unknown(env, regs, insn->dst_reg);
kernel/bpf/verifier.c
16245
insn->dst_reg,
kernel/bpf/verifier.c
16253
err = mark_chain_precision(env, insn->dst_reg);
kernel/bpf/verifier.c
16256
return adjust_ptr_min_max_vals(env, insn,
kernel/bpf/verifier.c
16261
err = mark_chain_precision(env, insn->src_reg);
kernel/bpf/verifier.c
16264
return adjust_ptr_min_max_vals(env, insn,
kernel/bpf/verifier.c
16268
err = mark_chain_precision(env, insn->src_reg);
kernel/bpf/verifier.c
16277
__mark_reg_known(&off_reg, insn->imm);
kernel/bpf/verifier.c
16280
return adjust_ptr_min_max_vals(env, insn,
kernel/bpf/verifier.c
16302
err = adjust_scalar_min_max_vals(env, insn, dst_reg, *src_reg);
kernel/bpf/verifier.c
16315
(BPF_OP(insn->code) == BPF_ADD || BPF_OP(insn->code) == BPF_SUB) &&
kernel/bpf/verifier.c
16328
if (BPF_OP(insn->code) == BPF_SUB) {
kernel/bpf/verifier.c
16361
static int check_alu_op(struct bpf_verifier_env *env, struct bpf_insn *insn)
kernel/bpf/verifier.c
16364
u8 opcode = BPF_OP(insn->code);
kernel/bpf/verifier.c
16369
if (BPF_SRC(insn->code) != BPF_K ||
kernel/bpf/verifier.c
16370
insn->src_reg != BPF_REG_0 ||
kernel/bpf/verifier.c
16371
insn->off != 0 || insn->imm != 0) {
kernel/bpf/verifier.c
16376
if (insn->src_reg != BPF_REG_0 || insn->off != 0 ||
kernel/bpf/verifier.c
16377
(insn->imm != 16 && insn->imm != 32 && insn->imm != 64) ||
kernel/bpf/verifier.c
16378
(BPF_CLASS(insn->code) == BPF_ALU64 &&
kernel/bpf/verifier.c
16379
BPF_SRC(insn->code) != BPF_TO_LE)) {
kernel/bpf/verifier.c
16386
err = check_reg_arg(env, insn->dst_reg, SRC_OP);
kernel/bpf/verifier.c
16390
if (is_pointer_value(env, insn->dst_reg)) {
kernel/bpf/verifier.c
16392
insn->dst_reg);
kernel/bpf/verifier.c
16398
regs[insn->dst_reg].type == SCALAR_VALUE) {
kernel/bpf/verifier.c
16399
err = check_reg_arg(env, insn->dst_reg, DST_OP_NO_MARK);
kernel/bpf/verifier.c
16400
err = err ?: adjust_scalar_min_max_vals(env, insn,
kernel/bpf/verifier.c
16401
&regs[insn->dst_reg],
kernel/bpf/verifier.c
16402
regs[insn->dst_reg]);
kernel/bpf/verifier.c
16404
err = check_reg_arg(env, insn->dst_reg, DST_OP);
kernel/bpf/verifier.c
16411
if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
16412
if (BPF_CLASS(insn->code) == BPF_ALU) {
kernel/bpf/verifier.c
16413
if ((insn->off != 0 && insn->off != 8 && insn->off != 16) ||
kernel/bpf/verifier.c
16414
insn->imm) {
kernel/bpf/verifier.c
16418
} else if (insn->off == BPF_ADDR_SPACE_CAST) {
kernel/bpf/verifier.c
16419
if (insn->imm != 1 && insn->imm != 1u << 16) {
kernel/bpf/verifier.c
16428
if ((insn->off != 0 && insn->off != 8 && insn->off != 16 &&
kernel/bpf/verifier.c
16429
insn->off != 32) || insn->imm) {
kernel/bpf/verifier.c
16436
err = check_reg_arg(env, insn->src_reg, SRC_OP);
kernel/bpf/verifier.c
16440
if (insn->src_reg != BPF_REG_0 || insn->off != 0) {
kernel/bpf/verifier.c
16447
err = check_reg_arg(env, insn->dst_reg, DST_OP_NO_MARK);
kernel/bpf/verifier.c
16451
if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
16452
struct bpf_reg_state *src_reg = regs + insn->src_reg;
kernel/bpf/verifier.c
16453
struct bpf_reg_state *dst_reg = regs + insn->dst_reg;
kernel/bpf/verifier.c
16455
if (BPF_CLASS(insn->code) == BPF_ALU64) {
kernel/bpf/verifier.c
16456
if (insn->imm) {
kernel/bpf/verifier.c
16458
mark_reg_unknown(env, regs, insn->dst_reg);
kernel/bpf/verifier.c
16459
if (insn->imm == 1) { /* cast from as(1) to as(0) */
kernel/bpf/verifier.c
16464
} else if (insn->off == 0) {
kernel/bpf/verifier.c
16473
if (is_pointer_value(env, insn->src_reg)) {
kernel/bpf/verifier.c
16476
insn->src_reg);
kernel/bpf/verifier.c
16481
no_sext = src_reg->umax_value < (1ULL << (insn->off - 1));
kernel/bpf/verifier.c
16487
coerce_reg_to_size_sx(dst_reg, insn->off >> 3);
kernel/bpf/verifier.c
16490
mark_reg_unknown(env, regs, insn->dst_reg);
kernel/bpf/verifier.c
16495
if (is_pointer_value(env, insn->src_reg)) {
kernel/bpf/verifier.c
16498
insn->src_reg);
kernel/bpf/verifier.c
16501
if (insn->off == 0) {
kernel/bpf/verifier.c
16516
bool no_sext = src_reg->umax_value < (1ULL << (insn->off - 1));
kernel/bpf/verifier.c
16524
coerce_subreg_to_size_sx(dst_reg, insn->off >> 3);
kernel/bpf/verifier.c
16528
insn->dst_reg);
kernel/bpf/verifier.c
16538
mark_reg_unknown(env, regs, insn->dst_reg);
kernel/bpf/verifier.c
16539
regs[insn->dst_reg].type = SCALAR_VALUE;
kernel/bpf/verifier.c
16540
if (BPF_CLASS(insn->code) == BPF_ALU64) {
kernel/bpf/verifier.c
16541
__mark_reg_known(regs + insn->dst_reg,
kernel/bpf/verifier.c
16542
insn->imm);
kernel/bpf/verifier.c
16544
__mark_reg_known(regs + insn->dst_reg,
kernel/bpf/verifier.c
16545
(u32)insn->imm);
kernel/bpf/verifier.c
16555
if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
16556
if (insn->imm != 0 || (insn->off != 0 && insn->off != 1) ||
kernel/bpf/verifier.c
16557
(insn->off == 1 && opcode != BPF_MOD && opcode != BPF_DIV)) {
kernel/bpf/verifier.c
16562
err = check_reg_arg(env, insn->src_reg, SRC_OP);
kernel/bpf/verifier.c
16566
if (insn->src_reg != BPF_REG_0 || (insn->off != 0 && insn->off != 1) ||
kernel/bpf/verifier.c
16567
(insn->off == 1 && opcode != BPF_MOD && opcode != BPF_DIV)) {
kernel/bpf/verifier.c
16574
err = check_reg_arg(env, insn->dst_reg, SRC_OP);
kernel/bpf/verifier.c
16579
BPF_SRC(insn->code) == BPF_K && insn->imm == 0) {
kernel/bpf/verifier.c
16585
opcode == BPF_ARSH) && BPF_SRC(insn->code) == BPF_K) {
kernel/bpf/verifier.c
16586
int size = BPF_CLASS(insn->code) == BPF_ALU64 ? 64 : 32;
kernel/bpf/verifier.c
16588
if (insn->imm < 0 || insn->imm >= size) {
kernel/bpf/verifier.c
16589
verbose(env, "invalid shift %d\n", insn->imm);
kernel/bpf/verifier.c
16595
err = check_reg_arg(env, insn->dst_reg, DST_OP_NO_MARK);
kernel/bpf/verifier.c
16596
err = err ?: adjust_reg_min_max_vals(env, insn);
kernel/bpf/verifier.c
16601
return reg_bounds_sanity_check(env, &regs[insn->dst_reg], "alu");
kernel/bpf/verifier.c
17264
static bool try_match_pkt_pointers(const struct bpf_insn *insn,
kernel/bpf/verifier.c
17270
if (BPF_SRC(insn->code) != BPF_X)
kernel/bpf/verifier.c
17274
if (BPF_CLASS(insn->code) == BPF_JMP32)
kernel/bpf/verifier.c
17277
switch (BPF_OP(insn->code)) {
kernel/bpf/verifier.c
17286
mark_pkt_end(other_branch, insn->dst_reg, true);
kernel/bpf/verifier.c
17294
mark_pkt_end(this_branch, insn->src_reg, false);
kernel/bpf/verifier.c
17307
mark_pkt_end(this_branch, insn->dst_reg, false);
kernel/bpf/verifier.c
17315
mark_pkt_end(other_branch, insn->src_reg, true);
kernel/bpf/verifier.c
17328
mark_pkt_end(other_branch, insn->dst_reg, false);
kernel/bpf/verifier.c
17336
mark_pkt_end(this_branch, insn->src_reg, true);
kernel/bpf/verifier.c
17349
mark_pkt_end(this_branch, insn->dst_reg, true);
kernel/bpf/verifier.c
17357
mark_pkt_end(other_branch, insn->src_reg, false);
kernel/bpf/verifier.c
17485
struct bpf_insn *insn, int *insn_idx)
kernel/bpf/verifier.c
17493
u8 opcode = BPF_OP(insn->code);
kernel/bpf/verifier.c
17509
if (insn->code != (BPF_JMP | BPF_JCOND) ||
kernel/bpf/verifier.c
17510
insn->src_reg != BPF_MAY_GOTO ||
kernel/bpf/verifier.c
17511
insn->dst_reg || insn->imm) {
kernel/bpf/verifier.c
17512
verbose(env, "invalid may_goto imm %d\n", insn->imm);
kernel/bpf/verifier.c
17525
*insn_idx += insn->off;
kernel/bpf/verifier.c
17530
err = check_reg_arg(env, insn->dst_reg, SRC_OP);
kernel/bpf/verifier.c
17534
dst_reg = &regs[insn->dst_reg];
kernel/bpf/verifier.c
17535
if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
17536
if (insn->imm != 0) {
kernel/bpf/verifier.c
17542
err = check_reg_arg(env, insn->src_reg, SRC_OP);
kernel/bpf/verifier.c
17546
src_reg = &regs[insn->src_reg];
kernel/bpf/verifier.c
17548
is_pointer_value(env, insn->src_reg)) {
kernel/bpf/verifier.c
17550
insn->src_reg);
kernel/bpf/verifier.c
17559
if (insn->src_reg != BPF_REG_0) {
kernel/bpf/verifier.c
17566
__mark_reg_known(src_reg, insn->imm);
kernel/bpf/verifier.c
17578
is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32;
kernel/bpf/verifier.c
17585
err = mark_chain_precision(env, insn->dst_reg);
kernel/bpf/verifier.c
17586
if (BPF_SRC(insn->code) == BPF_X && !err &&
kernel/bpf/verifier.c
17588
err = mark_chain_precision(env, insn->src_reg);
kernel/bpf/verifier.c
17599
err = sanitize_speculative_path(env, insn, *insn_idx + 1, *insn_idx);
kernel/bpf/verifier.c
17605
*insn_idx += insn->off;
kernel/bpf/verifier.c
17613
err = sanitize_speculative_path(env, insn, *insn_idx + insn->off + 1,
kernel/bpf/verifier.c
17628
if (BPF_SRC(insn->code) == BPF_X && src_reg->type == SCALAR_VALUE && src_reg->id)
kernel/bpf/verifier.c
17638
other_branch = push_stack(env, *insn_idx + insn->off + 1, *insn_idx, false);
kernel/bpf/verifier.c
17643
if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
17645
&other_branch_regs[insn->dst_reg],
kernel/bpf/verifier.c
17646
&other_branch_regs[insn->src_reg],
kernel/bpf/verifier.c
17656
&other_branch_regs[insn->dst_reg],
kernel/bpf/verifier.c
17664
if (BPF_SRC(insn->code) == BPF_X &&
kernel/bpf/verifier.c
17666
!WARN_ON_ONCE(src_reg->id != other_branch_regs[insn->src_reg].id)) {
kernel/bpf/verifier.c
17668
sync_linked_regs(env, other_branch, &other_branch_regs[insn->src_reg],
kernel/bpf/verifier.c
17672
!WARN_ON_ONCE(dst_reg->id != other_branch_regs[insn->dst_reg].id)) {
kernel/bpf/verifier.c
17674
sync_linked_regs(env, other_branch, &other_branch_regs[insn->dst_reg],
kernel/bpf/verifier.c
17690
if (!is_jmp32 && BPF_SRC(insn->code) == BPF_X &&
kernel/bpf/verifier.c
17709
mark_ptr_not_null_reg(&eq_branch_regs[insn->src_reg]);
kernel/bpf/verifier.c
17711
mark_ptr_not_null_reg(&eq_branch_regs[insn->dst_reg]);
kernel/bpf/verifier.c
17719
if (!is_jmp32 && BPF_SRC(insn->code) == BPF_K &&
kernel/bpf/verifier.c
17720
insn->imm == 0 && (opcode == BPF_JEQ || opcode == BPF_JNE) &&
kernel/bpf/verifier.c
17725
mark_ptr_or_null_regs(this_branch, insn->dst_reg,
kernel/bpf/verifier.c
17727
mark_ptr_or_null_regs(other_branch, insn->dst_reg,
kernel/bpf/verifier.c
17729
} else if (!try_match_pkt_pointers(insn, dst_reg, &regs[insn->src_reg],
kernel/bpf/verifier.c
17731
is_pointer_value(env, insn->dst_reg)) {
kernel/bpf/verifier.c
17733
insn->dst_reg);
kernel/bpf/verifier.c
17742
static int check_ld_imm(struct bpf_verifier_env *env, struct bpf_insn *insn)
kernel/bpf/verifier.c
17750
if (BPF_SIZE(insn->code) != BPF_DW) {
kernel/bpf/verifier.c
17754
if (insn->off != 0) {
kernel/bpf/verifier.c
17759
err = check_reg_arg(env, insn->dst_reg, DST_OP);
kernel/bpf/verifier.c
17763
dst_reg = &regs[insn->dst_reg];
kernel/bpf/verifier.c
17764
if (insn->src_reg == 0) {
kernel/bpf/verifier.c
17765
u64 imm = ((u64)(insn + 1)->imm << 32) | (u32)insn->imm;
kernel/bpf/verifier.c
17768
__mark_reg_known(&regs[insn->dst_reg], imm);
kernel/bpf/verifier.c
17776
mark_reg_known_zero(env, regs, insn->dst_reg);
kernel/bpf/verifier.c
17778
if (insn->src_reg == BPF_PSEUDO_BTF_ID) {
kernel/bpf/verifier.c
17795
if (insn->src_reg == BPF_PSEUDO_FUNC) {
kernel/bpf/verifier.c
17798
env->insn_idx + insn->imm + 1);
kernel/bpf/verifier.c
17817
if (insn->src_reg == BPF_PSEUDO_MAP_VALUE ||
kernel/bpf/verifier.c
17818
insn->src_reg == BPF_PSEUDO_MAP_IDX_VALUE) {
kernel/bpf/verifier.c
17828
} else if (insn->src_reg == BPF_PSEUDO_MAP_FD ||
kernel/bpf/verifier.c
17829
insn->src_reg == BPF_PSEUDO_MAP_IDX) {
kernel/bpf/verifier.c
17866
static int check_ld_abs(struct bpf_verifier_env *env, struct bpf_insn *insn)
kernel/bpf/verifier.c
17870
u8 mode = BPF_MODE(insn->code);
kernel/bpf/verifier.c
17883
if (insn->dst_reg != BPF_REG_0 || insn->off != 0 ||
kernel/bpf/verifier.c
17884
BPF_SIZE(insn->code) == BPF_DW ||
kernel/bpf/verifier.c
17885
(mode == BPF_ABS && insn->src_reg != BPF_REG_0)) {
kernel/bpf/verifier.c
17911
err = check_reg_arg(env, insn->src_reg, SRC_OP);
kernel/bpf/verifier.c
18558
struct bpf_insn *insn;
kernel/bpf/verifier.c
18566
insn = env->prog->insnsi + i;
kernel/bpf/verifier.c
18567
if (insn->code != (BPF_STX | BPF_MEM | BPF_DW) ||
kernel/bpf/verifier.c
18568
insn->dst_reg != BPF_REG_10)
kernel/bpf/verifier.c
18570
lowest_off = min(lowest_off, insn->off);
kernel/bpf/verifier.c
18574
insn = env->prog->insnsi + i;
kernel/bpf/verifier.c
18575
if (insn->code != (BPF_JMP | BPF_CALL))
kernel/bpf/verifier.c
18831
struct bpf_insn *insns = env->prog->insnsi, *insn = &insns[t];
kernel/bpf/verifier.c
18834
if (bpf_pseudo_func(insn))
kernel/bpf/verifier.c
18838
if (BPF_CLASS(insn->code) != BPF_JMP &&
kernel/bpf/verifier.c
18839
BPF_CLASS(insn->code) != BPF_JMP32) {
kernel/bpf/verifier.c
18840
insn_sz = bpf_is_ldimm64(insn) ? 2 : 1;
kernel/bpf/verifier.c
18844
switch (BPF_OP(insn->code)) {
kernel/bpf/verifier.c
18849
if (is_async_callback_calling_insn(insn))
kernel/bpf/verifier.c
18865
if (is_sync_callback_calling_insn(insn)) {
kernel/bpf/verifier.c
18871
if (bpf_helper_call(insn)) {
kernel/bpf/verifier.c
18874
ret = get_helper_proto(env, insn->imm, &fp);
kernel/bpf/verifier.c
18882
if (bpf_helper_changes_pkt_data(insn->imm))
kernel/bpf/verifier.c
18884
if (insn->imm == BPF_FUNC_tail_call)
kernel/bpf/verifier.c
18886
} else if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL) {
kernel/bpf/verifier.c
18889
ret = fetch_kfunc_arg_meta(env, insn->imm, insn->off, &meta);
kernel/bpf/verifier.c
18915
return visit_func_call_insn(t, insns, env, insn->src_reg == BPF_PSEUDO_CALL);
kernel/bpf/verifier.c
18918
if (BPF_SRC(insn->code) == BPF_X)
kernel/bpf/verifier.c
18921
if (BPF_CLASS(insn->code) == BPF_JMP)
kernel/bpf/verifier.c
18922
off = insn->off;
kernel/bpf/verifier.c
18924
off = insn->imm;
kernel/bpf/verifier.c
18939
if (is_may_goto_insn(insn))
kernel/bpf/verifier.c
18946
return push_insn(t, t + insn->off + 1, BRANCH, env);
kernel/bpf/verifier.c
19014
struct bpf_insn *insn = &env->prog->insnsi[i];
kernel/bpf/verifier.c
19021
if (bpf_is_ldimm64(insn)) {
kernel/bpf/verifier.c
19777
static void clean_live_states(struct bpf_verifier_env *env, int insn,
kernel/bpf/verifier.c
19783
head = explored_state(env, insn);
kernel/bpf/verifier.c
19788
if (sl->state.insn_idx != insn ||
kernel/bpf/verifier.c
21020
static int check_indirect_jump(struct bpf_verifier_env *env, struct bpf_insn *insn)
kernel/bpf/verifier.c
21030
dst_reg = reg_state(env, insn->dst_reg);
kernel/bpf/verifier.c
21033
insn->dst_reg, reg_type_str(env, dst_reg->type));
kernel/bpf/verifier.c
21038
if (verifier_bug_if(!map, env, "R%d has an empty map pointer", insn->dst_reg))
kernel/bpf/verifier.c
21042
"R%d has incorrect map type %d", insn->dst_reg, map->map_type))
kernel/bpf/verifier.c
21045
err = indirect_jump_min_max_index(env, insn->dst_reg, map, &min_index, &max_index);
kernel/bpf/verifier.c
21062
insn->dst_reg, map->id);
kernel/bpf/verifier.c
21079
struct bpf_insn *insn = &env->prog->insnsi[env->insn_idx];
kernel/bpf/verifier.c
21080
u8 class = BPF_CLASS(insn->code);
kernel/bpf/verifier.c
21083
err = check_alu_op(env, insn);
kernel/bpf/verifier.c
21088
bool is_ldsx = BPF_MODE(insn->code) == BPF_MEMSX;
kernel/bpf/verifier.c
21093
err = check_load_mem(env, insn, false, is_ldsx, true, "ldx");
kernel/bpf/verifier.c
21097
if (BPF_MODE(insn->code) == BPF_ATOMIC) {
kernel/bpf/verifier.c
21098
err = check_atomic(env, insn);
kernel/bpf/verifier.c
21105
if (BPF_MODE(insn->code) != BPF_MEM || insn->imm != 0) {
kernel/bpf/verifier.c
21110
err = check_store_reg(env, insn, false);
kernel/bpf/verifier.c
21116
if (BPF_MODE(insn->code) != BPF_MEM ||
kernel/bpf/verifier.c
21117
insn->src_reg != BPF_REG_0) {
kernel/bpf/verifier.c
21122
err = check_reg_arg(env, insn->dst_reg, SRC_OP);
kernel/bpf/verifier.c
21126
dst_reg_type = cur_regs(env)[insn->dst_reg].type;
kernel/bpf/verifier.c
21129
err = check_mem_access(env, env->insn_idx, insn->dst_reg,
kernel/bpf/verifier.c
21130
insn->off, BPF_SIZE(insn->code),
kernel/bpf/verifier.c
21139
u8 opcode = BPF_OP(insn->code);
kernel/bpf/verifier.c
21143
if (BPF_SRC(insn->code) != BPF_K ||
kernel/bpf/verifier.c
21144
(insn->src_reg != BPF_PSEUDO_KFUNC_CALL &&
kernel/bpf/verifier.c
21145
insn->off != 0) ||
kernel/bpf/verifier.c
21146
(insn->src_reg != BPF_REG_0 &&
kernel/bpf/verifier.c
21147
insn->src_reg != BPF_PSEUDO_CALL &&
kernel/bpf/verifier.c
21148
insn->src_reg != BPF_PSEUDO_KFUNC_CALL) ||
kernel/bpf/verifier.c
21149
insn->dst_reg != BPF_REG_0 || class == BPF_JMP32) {
kernel/bpf/verifier.c
21155
if ((insn->src_reg == BPF_REG_0 &&
kernel/bpf/verifier.c
21156
insn->imm != BPF_FUNC_spin_unlock) ||
kernel/bpf/verifier.c
21157
(insn->src_reg == BPF_PSEUDO_KFUNC_CALL &&
kernel/bpf/verifier.c
21158
(insn->off != 0 || !kfunc_spin_allowed(insn->imm)))) {
kernel/bpf/verifier.c
21164
if (insn->src_reg == BPF_PSEUDO_CALL) {
kernel/bpf/verifier.c
21165
err = check_func_call(env, insn, &env->insn_idx);
kernel/bpf/verifier.c
21166
} else if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL) {
kernel/bpf/verifier.c
21167
err = check_kfunc_call(env, insn, &env->insn_idx);
kernel/bpf/verifier.c
21168
if (!err && is_bpf_throw_kfunc(insn))
kernel/bpf/verifier.c
21171
err = check_helper_call(env, insn, &env->insn_idx);
kernel/bpf/verifier.c
21178
if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
21179
if (insn->src_reg != BPF_REG_0 ||
kernel/bpf/verifier.c
21180
insn->imm != 0 || insn->off != 0) {
kernel/bpf/verifier.c
21184
return check_indirect_jump(env, insn);
kernel/bpf/verifier.c
21187
if (BPF_SRC(insn->code) != BPF_K ||
kernel/bpf/verifier.c
21188
insn->src_reg != BPF_REG_0 ||
kernel/bpf/verifier.c
21189
insn->dst_reg != BPF_REG_0 ||
kernel/bpf/verifier.c
21190
(class == BPF_JMP && insn->imm != 0) ||
kernel/bpf/verifier.c
21191
(class == BPF_JMP32 && insn->off != 0)) {
kernel/bpf/verifier.c
21197
env->insn_idx += insn->off + 1;
kernel/bpf/verifier.c
21199
env->insn_idx += insn->imm + 1;
kernel/bpf/verifier.c
21202
if (BPF_SRC(insn->code) != BPF_K ||
kernel/bpf/verifier.c
21203
insn->imm != 0 ||
kernel/bpf/verifier.c
21204
insn->src_reg != BPF_REG_0 ||
kernel/bpf/verifier.c
21205
insn->dst_reg != BPF_REG_0 ||
kernel/bpf/verifier.c
21212
err = check_cond_jmp_op(env, insn, &env->insn_idx);
kernel/bpf/verifier.c
21217
u8 mode = BPF_MODE(insn->code);
kernel/bpf/verifier.c
21220
err = check_ld_abs(env, insn);
kernel/bpf/verifier.c
21225
err = check_ld_imm(env, insn);
kernel/bpf/verifier.c
21254
struct bpf_insn *insn;
kernel/bpf/verifier.c
21268
insn = &insns[env->insn_idx];
kernel/bpf/verifier.c
21328
verbose_insn(env, insn);
kernel/bpf/verifier.c
21390
if (verifier_bug_if((BPF_CLASS(insn->code) == BPF_JMP ||
kernel/bpf/verifier.c
21391
BPF_CLASS(insn->code) == BPF_JMP32) &&
kernel/bpf/verifier.c
21392
BPF_OP(insn->code) != BPF_CALL, env,
kernel/bpf/verifier.c
21492
struct bpf_insn *insn,
kernel/bpf/verifier.c
21501
u32 type, id = insn->imm;
kernel/bpf/verifier.c
21524
insn[0].imm = (u32)addr;
kernel/bpf/verifier.c
21525
insn[1].imm = addr >> 32;
kernel/bpf/verifier.c
21575
struct bpf_insn *insn,
kernel/bpf/verifier.c
21582
btf_fd = insn[1].imm;
kernel/bpf/verifier.c
21598
err = __check_pseudo_btf_id(env, insn, aux, btf);
kernel/bpf/verifier.c
21802
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
21810
for (i = 0; i < insn_cnt; i++, insn++) {
kernel/bpf/verifier.c
21811
if (BPF_CLASS(insn->code) == BPF_LDX &&
kernel/bpf/verifier.c
21812
((BPF_MODE(insn->code) != BPF_MEM && BPF_MODE(insn->code) != BPF_MEMSX) ||
kernel/bpf/verifier.c
21813
insn->imm != 0)) {
kernel/bpf/verifier.c
21818
if (insn[0].code == (BPF_LD | BPF_IMM | BPF_DW)) {
kernel/bpf/verifier.c
21825
if (i == insn_cnt - 1 || insn[1].code != 0 ||
kernel/bpf/verifier.c
21826
insn[1].dst_reg != 0 || insn[1].src_reg != 0 ||
kernel/bpf/verifier.c
21827
insn[1].off != 0) {
kernel/bpf/verifier.c
21832
if (insn[0].src_reg == 0)
kernel/bpf/verifier.c
21836
if (insn[0].src_reg == BPF_PSEUDO_BTF_ID) {
kernel/bpf/verifier.c
21838
err = check_pseudo_btf_id(env, insn, aux);
kernel/bpf/verifier.c
21844
if (insn[0].src_reg == BPF_PSEUDO_FUNC) {
kernel/bpf/verifier.c
21853
switch (insn[0].src_reg) {
kernel/bpf/verifier.c
21859
if (insn[1].imm == 0)
kernel/bpf/verifier.c
21867
switch (insn[0].src_reg) {
kernel/bpf/verifier.c
21875
insn[0].imm * sizeof(fd),
kernel/bpf/verifier.c
21880
fd = insn[0].imm;
kernel/bpf/verifier.c
21892
if (insn[0].src_reg == BPF_PSEUDO_MAP_FD ||
kernel/bpf/verifier.c
21893
insn[0].src_reg == BPF_PSEUDO_MAP_IDX) {
kernel/bpf/verifier.c
21896
u32 off = insn[1].imm;
kernel/bpf/verifier.c
21914
insn[0].imm = (u32)addr;
kernel/bpf/verifier.c
21915
insn[1].imm = addr >> 32;
kernel/bpf/verifier.c
21918
insn++;
kernel/bpf/verifier.c
21924
if (!bpf_opcode_in_insntable(insn->code)) {
kernel/bpf/verifier.c
21925
verbose(env, "unknown opcode %02x\n", insn->code);
kernel/bpf/verifier.c
21953
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
21957
for (i = 0; i < insn_cnt; i++, insn++) {
kernel/bpf/verifier.c
21958
if (insn->code != (BPF_LD | BPF_IMM | BPF_DW))
kernel/bpf/verifier.c
21960
if (insn->src_reg == BPF_PSEUDO_FUNC)
kernel/bpf/verifier.c
21962
insn->src_reg = 0;
kernel/bpf/verifier.c
21974
struct bpf_insn *insn = new_prog->insnsi;
kernel/bpf/verifier.c
21983
data[off].zext_dst = insn_has_def32(insn + off + cnt - 1);
kernel/bpf/verifier.c
21995
data[i].zext_dst = insn_has_def32(insn + i);
kernel/bpf/verifier.c
22092
struct bpf_insn *insn = prog->insnsi;
kernel/bpf/verifier.c
22097
for (i = 0; i < insn_cnt; i++, insn++) {
kernel/bpf/verifier.c
22098
u8 code = insn->code;
kernel/bpf/verifier.c
22107
if (insn->code == (BPF_JMP32 | BPF_JA)) {
kernel/bpf/verifier.c
22108
if (i + 1 + insn->imm != tgt_idx)
kernel/bpf/verifier.c
22110
if (check_add_overflow(insn->imm, delta, &imm))
kernel/bpf/verifier.c
22112
insn->imm = imm;
kernel/bpf/verifier.c
22114
if (i + 1 + insn->off != tgt_idx)
kernel/bpf/verifier.c
22116
if (check_add_overflow(insn->off, delta, &off))
kernel/bpf/verifier.c
22118
insn->off = off;
kernel/bpf/verifier.c
22312
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
22319
memcpy(insn + i, &trap, sizeof(trap));
kernel/bpf/verifier.c
22342
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
22346
for (i = 0; i < insn_cnt; i++, insn++) {
kernel/bpf/verifier.c
22347
if (!insn_is_cond_jump(insn->code))
kernel/bpf/verifier.c
22351
ja.off = insn->off;
kernel/bpf/verifier.c
22352
else if (!aux_data[i + 1 + insn->off].seen)
kernel/bpf/verifier.c
22360
memcpy(insn, &ja, sizeof(ja));
kernel/bpf/verifier.c
22393
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
22399
is_may_goto_0 = !memcmp(&insn[i], &MAY_GOTO_0, sizeof(MAY_GOTO_0));
kernel/bpf/verifier.c
22400
is_ja = !memcmp(&insn[i], &NOP, sizeof(NOP));
kernel/bpf/verifier.c
22436
struct bpf_insn insn;
kernel/bpf/verifier.c
22439
insn = insns[adj_idx];
kernel/bpf/verifier.c
22440
load_reg = insn_def_regno(&insn);
kernel/bpf/verifier.c
22448
code = insn.code;
kernel/bpf/verifier.c
22457
if (is_reg64(&insn, load_reg, NULL, DST_OP)) {
kernel/bpf/verifier.c
22470
rnd_hi32_patch[0] = insn;
kernel/bpf/verifier.c
22488
if (!bpf_jit_needs_zext() && !is_cmpxchg_insn(&insn))
kernel/bpf/verifier.c
22492
if (bpf_pseudo_kfunc_call(&insn))
kernel/bpf/verifier.c
22499
zext_patch[0] = insn;
kernel/bpf/verifier.c
22530
struct bpf_insn *insn;
kernel/bpf/verifier.c
22592
insn = env->prog->insnsi + delta;
kernel/bpf/verifier.c
22594
for (i = 0; i < insn_cnt; i++, insn++) {
kernel/bpf/verifier.c
22603
*patch++ = *insn;
kernel/bpf/verifier.c
22611
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
22620
if (insn->code == (BPF_LDX | BPF_MEM | BPF_B) ||
kernel/bpf/verifier.c
22621
insn->code == (BPF_LDX | BPF_MEM | BPF_H) ||
kernel/bpf/verifier.c
22622
insn->code == (BPF_LDX | BPF_MEM | BPF_W) ||
kernel/bpf/verifier.c
22623
insn->code == (BPF_LDX | BPF_MEM | BPF_DW) ||
kernel/bpf/verifier.c
22624
insn->code == (BPF_LDX | BPF_MEMSX | BPF_B) ||
kernel/bpf/verifier.c
22625
insn->code == (BPF_LDX | BPF_MEMSX | BPF_H) ||
kernel/bpf/verifier.c
22626
insn->code == (BPF_LDX | BPF_MEMSX | BPF_W)) {
kernel/bpf/verifier.c
22628
} else if (insn->code == (BPF_STX | BPF_MEM | BPF_B) ||
kernel/bpf/verifier.c
22629
insn->code == (BPF_STX | BPF_MEM | BPF_H) ||
kernel/bpf/verifier.c
22630
insn->code == (BPF_STX | BPF_MEM | BPF_W) ||
kernel/bpf/verifier.c
22631
insn->code == (BPF_STX | BPF_MEM | BPF_DW) ||
kernel/bpf/verifier.c
22632
insn->code == (BPF_ST | BPF_MEM | BPF_B) ||
kernel/bpf/verifier.c
22633
insn->code == (BPF_ST | BPF_MEM | BPF_H) ||
kernel/bpf/verifier.c
22634
insn->code == (BPF_ST | BPF_MEM | BPF_W) ||
kernel/bpf/verifier.c
22635
insn->code == (BPF_ST | BPF_MEM | BPF_DW)) {
kernel/bpf/verifier.c
22637
} else if ((insn->code == (BPF_STX | BPF_ATOMIC | BPF_B) ||
kernel/bpf/verifier.c
22638
insn->code == (BPF_STX | BPF_ATOMIC | BPF_H) ||
kernel/bpf/verifier.c
22639
insn->code == (BPF_STX | BPF_ATOMIC | BPF_W) ||
kernel/bpf/verifier.c
22640
insn->code == (BPF_STX | BPF_ATOMIC | BPF_DW)) &&
kernel/bpf/verifier.c
22642
insn->code = BPF_STX | BPF_PROBE_ATOMIC | BPF_SIZE(insn->code);
kernel/bpf/verifier.c
22645
} else if (insn->code == (BPF_JMP | BPF_EXIT) &&
kernel/bpf/verifier.c
22675
*patch++ = *insn;
kernel/bpf/verifier.c
22684
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
22715
if (BPF_MODE(insn->code) == BPF_MEM)
kernel/bpf/verifier.c
22716
insn->code = BPF_LDX | BPF_PROBE_MEM |
kernel/bpf/verifier.c
22717
BPF_SIZE((insn)->code);
kernel/bpf/verifier.c
22719
insn->code = BPF_LDX | BPF_PROBE_MEMSX |
kernel/bpf/verifier.c
22720
BPF_SIZE((insn)->code);
kernel/bpf/verifier.c
22725
if (BPF_MODE(insn->code) == BPF_MEMSX) {
kernel/bpf/verifier.c
22726
if (!bpf_jit_supports_insn(insn, true)) {
kernel/bpf/verifier.c
22730
insn->code = BPF_CLASS(insn->code) | BPF_PROBE_MEM32SX | BPF_SIZE(insn->code);
kernel/bpf/verifier.c
22732
insn->code = BPF_CLASS(insn->code) | BPF_PROBE_MEM32 | BPF_SIZE(insn->code);
kernel/bpf/verifier.c
22741
size = BPF_LDST_BYTES(insn);
kernel/bpf/verifier.c
22742
mode = BPF_MODE(insn->code);
kernel/bpf/verifier.c
22751
off = insn->off;
kernel/bpf/verifier.c
22766
insn->off = off & ~(size_default - 1);
kernel/bpf/verifier.c
22767
insn->code = BPF_LDX | BPF_MEM | size_code;
kernel/bpf/verifier.c
22771
cnt = convert_ctx_access(type, insn, insn_buf, env->prog,
kernel/bpf/verifier.c
22789
insn->dst_reg,
kernel/bpf/verifier.c
22791
insn_buf[cnt++] = BPF_ALU32_IMM(BPF_AND, insn->dst_reg,
kernel/bpf/verifier.c
22796
insn->dst_reg,
kernel/bpf/verifier.c
22798
insn_buf[cnt++] = BPF_ALU32_IMM(BPF_AND, insn->dst_reg,
kernel/bpf/verifier.c
22804
insn->dst_reg, insn->dst_reg,
kernel/bpf/verifier.c
22816
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
22827
struct bpf_insn *insn;
kernel/bpf/verifier.c
22835
for (i = 0, insn = prog->insnsi; i < prog->len; i++, insn++) {
kernel/bpf/verifier.c
22836
if (!bpf_pseudo_func(insn) && !bpf_pseudo_call(insn))
kernel/bpf/verifier.c
22843
subprog = find_subprog(env, i + insn->imm + 1);
kernel/bpf/verifier.c
22845
i + insn->imm + 1))
kernel/bpf/verifier.c
22850
insn->off = subprog;
kernel/bpf/verifier.c
22854
env->insn_aux_data[i].call_imm = insn->imm;
kernel/bpf/verifier.c
22856
insn->imm = 1;
kernel/bpf/verifier.c
22857
if (bpf_pseudo_func(insn)) {
kernel/bpf/verifier.c
22867
insn[0].imm = (u32)addr;
kernel/bpf/verifier.c
22868
insn[1].imm = addr >> 32;
kernel/bpf/verifier.c
22938
insn = func[i]->insnsi;
kernel/bpf/verifier.c
22939
for (j = 0; j < func[i]->len; j++, insn++) {
kernel/bpf/verifier.c
22940
if (BPF_CLASS(insn->code) == BPF_LDX &&
kernel/bpf/verifier.c
22941
(BPF_MODE(insn->code) == BPF_PROBE_MEM ||
kernel/bpf/verifier.c
22942
BPF_MODE(insn->code) == BPF_PROBE_MEM32 ||
kernel/bpf/verifier.c
22943
BPF_MODE(insn->code) == BPF_PROBE_MEM32SX ||
kernel/bpf/verifier.c
22944
BPF_MODE(insn->code) == BPF_PROBE_MEMSX))
kernel/bpf/verifier.c
22946
if ((BPF_CLASS(insn->code) == BPF_STX ||
kernel/bpf/verifier.c
22947
BPF_CLASS(insn->code) == BPF_ST) &&
kernel/bpf/verifier.c
22948
BPF_MODE(insn->code) == BPF_PROBE_MEM32)
kernel/bpf/verifier.c
22950
if (BPF_CLASS(insn->code) == BPF_STX &&
kernel/bpf/verifier.c
22951
BPF_MODE(insn->code) == BPF_PROBE_ATOMIC)
kernel/bpf/verifier.c
22982
insn = func[i]->insnsi;
kernel/bpf/verifier.c
22983
for (j = 0; j < func[i]->len; j++, insn++) {
kernel/bpf/verifier.c
22984
if (bpf_pseudo_func(insn)) {
kernel/bpf/verifier.c
22985
subprog = insn->off;
kernel/bpf/verifier.c
22986
insn[0].imm = (u32)(long)func[subprog]->bpf_func;
kernel/bpf/verifier.c
22987
insn[1].imm = ((u64)(long)func[subprog]->bpf_func) >> 32;
kernel/bpf/verifier.c
22990
if (!bpf_pseudo_call(insn))
kernel/bpf/verifier.c
22992
subprog = insn->off;
kernel/bpf/verifier.c
22993
insn->imm = BPF_CALL_IMM(func[subprog]->bpf_func);
kernel/bpf/verifier.c
23048
for (i = 0, insn = prog->insnsi; i < prog->len; i++, insn++) {
kernel/bpf/verifier.c
23049
if (bpf_pseudo_func(insn)) {
kernel/bpf/verifier.c
23050
insn[0].imm = env->insn_aux_data[i].call_imm;
kernel/bpf/verifier.c
23051
insn[1].imm = insn->off;
kernel/bpf/verifier.c
23052
insn->off = 0;
kernel/bpf/verifier.c
23055
if (!bpf_pseudo_call(insn))
kernel/bpf/verifier.c
23057
insn->off = env->insn_aux_data[i].call_imm;
kernel/bpf/verifier.c
23058
subprog = find_subprog(env, i + insn->off + 1);
kernel/bpf/verifier.c
23059
insn->imm = subprog;
kernel/bpf/verifier.c
23098
for (i = 0, insn = prog->insnsi; i < prog->len; i++, insn++) {
kernel/bpf/verifier.c
23099
if (!bpf_pseudo_call(insn))
kernel/bpf/verifier.c
23101
insn->off = 0;
kernel/bpf/verifier.c
23102
insn->imm = env->insn_aux_data[i].call_imm;
kernel/bpf/verifier.c
23112
struct bpf_insn *insn = prog->insnsi;
kernel/bpf/verifier.c
23138
for (i = 0; i < prog->len; i++, insn++) {
kernel/bpf/verifier.c
23139
if (bpf_pseudo_func(insn)) {
kernel/bpf/verifier.c
23147
if (!bpf_pseudo_call(insn))
kernel/bpf/verifier.c
23149
depth = get_callee_stack_depth(env, insn, i);
kernel/bpf/verifier.c
23152
bpf_patch_call_args(insn, depth);
kernel/bpf/verifier.c
23212
struct bpf_insn *insn,
kernel/bpf/verifier.c
23222
insn_buf[3] = *insn;
kernel/bpf/verifier.c
23226
static int fixup_kfunc_call(struct bpf_verifier_env *env, struct bpf_insn *insn,
kernel/bpf/verifier.c
23232
if (!insn->imm) {
kernel/bpf/verifier.c
23243
desc = find_kfunc_desc(env->prog, insn->imm, insn->off);
kernel/bpf/verifier.c
23246
insn->imm);
kernel/bpf/verifier.c
23255
insn->imm = BPF_CALL_IMM(desc->addr);
kernel/bpf/verifier.c
23272
insn_buf[3] = *insn;
kernel/bpf/verifier.c
23295
insn_buf[2] = *insn;
kernel/bpf/verifier.c
23317
node_offset_reg, insn, insn_buf, cnt);
kernel/bpf/verifier.c
23361
insn_buf[idx++] = *insn;
kernel/bpf/verifier.c
23402
struct bpf_insn *insn = prog->insnsi;
kernel/bpf/verifier.c
23425
insn = prog->insnsi;
kernel/bpf/verifier.c
23433
if (insn->code == (BPF_ALU64 | BPF_MOV | BPF_X) && insn->imm) {
kernel/bpf/verifier.c
23434
if ((insn->off == BPF_ADDR_SPACE_CAST && insn->imm == 1) ||
kernel/bpf/verifier.c
23437
insn->code = BPF_ALU | BPF_MOV | BPF_X;
kernel/bpf/verifier.c
23439
insn->off = 0;
kernel/bpf/verifier.c
23440
insn->imm = 0;
kernel/bpf/verifier.c
23447
insn->code = BPF_ALU | BPF_OP(insn->code) | BPF_SRC(insn->code);
kernel/bpf/verifier.c
23450
if ((insn->code == (BPF_ALU64 | BPF_MOD | BPF_K) ||
kernel/bpf/verifier.c
23451
insn->code == (BPF_ALU64 | BPF_DIV | BPF_K) ||
kernel/bpf/verifier.c
23452
insn->code == (BPF_ALU | BPF_MOD | BPF_K) ||
kernel/bpf/verifier.c
23453
insn->code == (BPF_ALU | BPF_DIV | BPF_K)) &&
kernel/bpf/verifier.c
23454
insn->off == 1 && insn->imm == -1) {
kernel/bpf/verifier.c
23455
bool is64 = BPF_CLASS(insn->code) == BPF_ALU64;
kernel/bpf/verifier.c
23456
bool isdiv = BPF_OP(insn->code) == BPF_DIV;
kernel/bpf/verifier.c
23461
BPF_NEG | BPF_K, insn->dst_reg,
kernel/bpf/verifier.c
23464
*patch++ = BPF_MOV32_IMM(insn->dst_reg, 0);
kernel/bpf/verifier.c
23474
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23479
if (insn->code == (BPF_ALU64 | BPF_MOD | BPF_X) ||
kernel/bpf/verifier.c
23480
insn->code == (BPF_ALU64 | BPF_DIV | BPF_X) ||
kernel/bpf/verifier.c
23481
insn->code == (BPF_ALU | BPF_MOD | BPF_X) ||
kernel/bpf/verifier.c
23482
insn->code == (BPF_ALU | BPF_DIV | BPF_X)) {
kernel/bpf/verifier.c
23483
bool is64 = BPF_CLASS(insn->code) == BPF_ALU64;
kernel/bpf/verifier.c
23484
bool isdiv = BPF_OP(insn->code) == BPF_DIV;
kernel/bpf/verifier.c
23485
bool is_sdiv = isdiv && insn->off == 1;
kernel/bpf/verifier.c
23486
bool is_smod = !isdiv && insn->off == 1;
kernel/bpf/verifier.c
23494
*patch++ = BPF_MOV64_REG(BPF_REG_AX, insn->src_reg);
kernel/bpf/verifier.c
23505
BPF_MOV | BPF_K, insn->dst_reg,
kernel/bpf/verifier.c
23509
BPF_NEG | BPF_K, insn->dst_reg,
kernel/bpf/verifier.c
23512
*patch++ = *insn;
kernel/bpf/verifier.c
23517
*patch++ = BPF_MOV64_REG(BPF_REG_AX, insn->src_reg);
kernel/bpf/verifier.c
23527
*patch++ = BPF_MOV32_IMM(insn->dst_reg, 0);
kernel/bpf/verifier.c
23529
*patch++ = *insn;
kernel/bpf/verifier.c
23533
*patch++ = BPF_MOV32_REG(insn->dst_reg, insn->dst_reg);
kernel/bpf/verifier.c
23539
BPF_JNE | BPF_K, insn->src_reg,
kernel/bpf/verifier.c
23541
*patch++ = BPF_ALU32_REG(BPF_XOR, insn->dst_reg, insn->dst_reg);
kernel/bpf/verifier.c
23543
*patch++ = *insn;
kernel/bpf/verifier.c
23548
BPF_JEQ | BPF_K, insn->src_reg,
kernel/bpf/verifier.c
23550
*patch++ = *insn;
kernel/bpf/verifier.c
23554
*patch++ = BPF_MOV32_REG(insn->dst_reg, insn->dst_reg);
kernel/bpf/verifier.c
23565
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23570
if (BPF_CLASS(insn->code) == BPF_LDX &&
kernel/bpf/verifier.c
23571
(BPF_MODE(insn->code) == BPF_PROBE_MEM ||
kernel/bpf/verifier.c
23572
BPF_MODE(insn->code) == BPF_PROBE_MEMSX)) {
kernel/bpf/verifier.c
23579
*patch++ = BPF_MOV64_REG(BPF_REG_AX, insn->src_reg);
kernel/bpf/verifier.c
23580
if (insn->off)
kernel/bpf/verifier.c
23581
*patch++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_AX, insn->off);
kernel/bpf/verifier.c
23584
*patch++ = *insn;
kernel/bpf/verifier.c
23586
*patch++ = BPF_MOV64_IMM(insn->dst_reg, 0);
kernel/bpf/verifier.c
23595
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23600
if (BPF_CLASS(insn->code) == BPF_LD &&
kernel/bpf/verifier.c
23601
(BPF_MODE(insn->code) == BPF_ABS ||
kernel/bpf/verifier.c
23602
BPF_MODE(insn->code) == BPF_IND)) {
kernel/bpf/verifier.c
23603
cnt = env->ops->gen_ld_abs(insn, insn_buf);
kernel/bpf/verifier.c
23615
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23620
if (insn->code == (BPF_ALU64 | BPF_ADD | BPF_X) ||
kernel/bpf/verifier.c
23621
insn->code == (BPF_ALU64 | BPF_SUB | BPF_X)) {
kernel/bpf/verifier.c
23638
off_reg = issrc ? insn->src_reg : insn->dst_reg;
kernel/bpf/verifier.c
23652
*patch++ = BPF_MOV64_REG(insn->dst_reg, insn->src_reg);
kernel/bpf/verifier.c
23653
insn->src_reg = BPF_REG_AX;
kernel/bpf/verifier.c
23655
insn->code = insn->code == code_add ?
kernel/bpf/verifier.c
23657
*patch++ = *insn;
kernel/bpf/verifier.c
23668
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23672
if (is_may_goto_insn(insn) && bpf_jit_supports_timed_may_goto()) {
kernel/bpf/verifier.c
23691
if (insn->off >= 0)
kernel/bpf/verifier.c
23692
insn_buf[1] = BPF_JMP_IMM(BPF_JEQ, BPF_REG_AX, 0, insn->off + 5);
kernel/bpf/verifier.c
23694
insn_buf[1] = BPF_JMP_IMM(BPF_JEQ, BPF_REG_AX, 0, insn->off - 1);
kernel/bpf/verifier.c
23713
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23715
} else if (is_may_goto_insn(insn)) {
kernel/bpf/verifier.c
23720
if (insn->off >= 0)
kernel/bpf/verifier.c
23721
insn_buf[1] = BPF_JMP_IMM(BPF_JEQ, BPF_REG_AX, 0, insn->off + 2);
kernel/bpf/verifier.c
23723
insn_buf[1] = BPF_JMP_IMM(BPF_JEQ, BPF_REG_AX, 0, insn->off - 1);
kernel/bpf/verifier.c
23734
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23738
if (insn->code != (BPF_JMP | BPF_CALL))
kernel/bpf/verifier.c
23740
if (insn->src_reg == BPF_PSEUDO_CALL)
kernel/bpf/verifier.c
23742
if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL) {
kernel/bpf/verifier.c
23743
ret = fixup_kfunc_call(env, insn, insn_buf, i + delta, &cnt);
kernel/bpf/verifier.c
23755
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23760
if (bpf_jit_inlines_helper_call(insn->imm))
kernel/bpf/verifier.c
23763
if (insn->imm == BPF_FUNC_get_route_realm)
kernel/bpf/verifier.c
23765
if (insn->imm == BPF_FUNC_get_prandom_u32)
kernel/bpf/verifier.c
23767
if (insn->imm == BPF_FUNC_override_return)
kernel/bpf/verifier.c
23769
if (insn->imm == BPF_FUNC_tail_call) {
kernel/bpf/verifier.c
23785
insn->imm = 0;
kernel/bpf/verifier.c
23786
insn->code = BPF_JMP | BPF_TAIL_CALL;
kernel/bpf/verifier.c
23807
insn->imm = ret + 1;
kernel/bpf/verifier.c
23832
insn_buf[2] = *insn;
kernel/bpf/verifier.c
23840
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23844
if (insn->imm == BPF_FUNC_timer_set_callback) {
kernel/bpf/verifier.c
23864
insn_buf[2] = *insn;
kernel/bpf/verifier.c
23873
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23877
if (is_storage_get_function(insn->imm)) {
kernel/bpf/verifier.c
23882
insn_buf[1] = *insn;
kernel/bpf/verifier.c
23891
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23901
insn_buf[1] = *insn;
kernel/bpf/verifier.c
23910
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23919
(insn->imm == BPF_FUNC_map_lookup_elem ||
kernel/bpf/verifier.c
23920
insn->imm == BPF_FUNC_map_update_elem ||
kernel/bpf/verifier.c
23921
insn->imm == BPF_FUNC_map_delete_elem ||
kernel/bpf/verifier.c
23922
insn->imm == BPF_FUNC_map_push_elem ||
kernel/bpf/verifier.c
23923
insn->imm == BPF_FUNC_map_pop_elem ||
kernel/bpf/verifier.c
23924
insn->imm == BPF_FUNC_map_peek_elem ||
kernel/bpf/verifier.c
23925
insn->imm == BPF_FUNC_redirect_map ||
kernel/bpf/verifier.c
23926
insn->imm == BPF_FUNC_for_each_map_elem ||
kernel/bpf/verifier.c
23927
insn->imm == BPF_FUNC_map_lookup_percpu_elem)) {
kernel/bpf/verifier.c
23934
if (insn->imm == BPF_FUNC_map_lookup_elem &&
kernel/bpf/verifier.c
23951
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
23980
switch (insn->imm) {
kernel/bpf/verifier.c
23982
insn->imm = BPF_CALL_IMM(ops->map_lookup_elem);
kernel/bpf/verifier.c
23985
insn->imm = BPF_CALL_IMM(ops->map_update_elem);
kernel/bpf/verifier.c
23988
insn->imm = BPF_CALL_IMM(ops->map_delete_elem);
kernel/bpf/verifier.c
23991
insn->imm = BPF_CALL_IMM(ops->map_push_elem);
kernel/bpf/verifier.c
23994
insn->imm = BPF_CALL_IMM(ops->map_pop_elem);
kernel/bpf/verifier.c
23997
insn->imm = BPF_CALL_IMM(ops->map_peek_elem);
kernel/bpf/verifier.c
24000
insn->imm = BPF_CALL_IMM(ops->map_redirect);
kernel/bpf/verifier.c
24003
insn->imm = BPF_CALL_IMM(ops->map_for_each_callback);
kernel/bpf/verifier.c
24006
insn->imm = BPF_CALL_IMM(ops->map_lookup_percpu_elem);
kernel/bpf/verifier.c
24015
insn->imm == BPF_FUNC_jiffies64) {
kernel/bpf/verifier.c
24034
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
24040
if (insn->imm == BPF_FUNC_get_smp_processor_id &&
kernel/bpf/verifier.c
24041
verifier_inlines_helper_call(env, insn->imm)) {
kernel/bpf/verifier.c
24062
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
24067
if ((insn->imm == BPF_FUNC_get_current_task || insn->imm == BPF_FUNC_get_current_task_btf) &&
kernel/bpf/verifier.c
24068
verifier_inlines_helper_call(env, insn->imm)) {
kernel/bpf/verifier.c
24080
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
24086
insn->imm == BPF_FUNC_get_func_arg) {
kernel/bpf/verifier.c
24114
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
24120
insn->imm == BPF_FUNC_get_func_ret) {
kernel/bpf/verifier.c
24144
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
24150
insn->imm == BPF_FUNC_get_func_arg_cnt) {
kernel/bpf/verifier.c
24170
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
24176
insn->imm == BPF_FUNC_get_func_ip) {
kernel/bpf/verifier.c
24185
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
24192
insn->imm == BPF_FUNC_get_branch_snapshot) {
kernel/bpf/verifier.c
24241
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
24247
insn->imm == BPF_FUNC_kptr_xchg &&
kernel/bpf/verifier.c
24259
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
24263
fn = env->ops->get_func_proto(insn->imm, env->prog);
kernel/bpf/verifier.c
24270
func_id_name(insn->imm), insn->imm);
kernel/bpf/verifier.c
24273
insn->imm = fn->func - __bpf_call_base;
kernel/bpf/verifier.c
24290
insn++;
kernel/bpf/verifier.c
24434
static bool is_bpf_loop_call(struct bpf_insn *insn)
kernel/bpf/verifier.c
24436
return insn->code == (BPF_JMP | BPF_CALL) &&
kernel/bpf/verifier.c
24437
insn->src_reg == 0 &&
kernel/bpf/verifier.c
24438
insn->imm == BPF_FUNC_loop;
kernel/bpf/verifier.c
24454
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
24460
for (i = 0; i < insn_cnt; i++, insn++) {
kernel/bpf/verifier.c
24464
if (is_bpf_loop_call(insn) && inline_state->fit_for_inline) {
kernel/bpf/verifier.c
24478
insn = new_prog->insnsi + i + delta;
kernel/bpf/verifier.c
24502
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
24508
for (i = 0; i < insn_cnt; i++, insn++) {
kernel/bpf/verifier.c
24513
*(insn - j) = NOP;
kernel/bpf/verifier.c
24514
*(insn + j) = NOP;
kernel/bpf/verifier.c
25541
struct bpf_insn *insn,
kernel/bpf/verifier.c
25545
u8 class = BPF_CLASS(insn->code);
kernel/bpf/verifier.c
25546
u8 code = BPF_OP(insn->code);
kernel/bpf/verifier.c
25547
u8 mode = BPF_MODE(insn->code);
kernel/bpf/verifier.c
25548
u16 src = BIT(insn->src_reg);
kernel/bpf/verifier.c
25549
u16 dst = BIT(insn->dst_reg);
kernel/bpf/verifier.c
25558
if (BPF_SIZE(insn->code) == BPF_DW) {
kernel/bpf/verifier.c
25593
switch (insn->imm) {
kernel/bpf/verifier.c
25608
if (insn->imm & BPF_FETCH)
kernel/bpf/verifier.c
25625
if (BPF_SRC(insn->code) == BPF_K)
kernel/bpf/verifier.c
25632
if (BPF_SRC(insn->code) == BPF_K)
kernel/bpf/verifier.c
25643
if (BPF_SRC(insn->code) == BPF_X)
kernel/bpf/verifier.c
25659
if (get_call_summary(env, insn, &cs))
kernel/bpf/verifier.c
25664
if (BPF_SRC(insn->code) == BPF_K)
kernel/bpf/verifier.c
257
static bool bpf_helper_call(const struct bpf_insn *insn)
kernel/bpf/verifier.c
259
return insn->code == (BPF_JMP | BPF_CALL) &&
kernel/bpf/verifier.c
260
insn->src_reg == 0;
kernel/bpf/verifier.c
263
static bool bpf_pseudo_call(const struct bpf_insn *insn)
kernel/bpf/verifier.c
265
return insn->code == (BPF_JMP | BPF_CALL) &&
kernel/bpf/verifier.c
266
insn->src_reg == BPF_PSEUDO_CALL;
kernel/bpf/verifier.c
269
static bool bpf_pseudo_kfunc_call(const struct bpf_insn *insn)
kernel/bpf/verifier.c
271
return insn->code == (BPF_JMP | BPF_CALL) &&
kernel/bpf/verifier.c
272
insn->src_reg == BPF_PSEUDO_KFUNC_CALL;
kernel/bpf/verifier.c
3592
const struct bpf_insn *insn)
kernel/bpf/verifier.c
3595
.imm = insn->imm,
kernel/bpf/verifier.c
3596
.offset = insn->off,
kernel/bpf/verifier.c
3609
struct bpf_insn *insn, int cnt)
kernel/bpf/verifier.c
3613
for (i = 0; i < cnt; i++, insn++) {
kernel/bpf/verifier.c
3614
if (bpf_pseudo_kfunc_call(insn)) {
kernel/bpf/verifier.c
3615
ret = add_kfunc_call(env, insn->imm, insn->off);
kernel/bpf/verifier.c
3627
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
3634
for (i = 0; i < insn_cnt; i++, insn++) {
kernel/bpf/verifier.c
3635
if (!bpf_pseudo_func(insn) && !bpf_pseudo_call(insn) &&
kernel/bpf/verifier.c
3636
!bpf_pseudo_kfunc_call(insn))
kernel/bpf/verifier.c
3644
if (bpf_pseudo_func(insn) || bpf_pseudo_call(insn))
kernel/bpf/verifier.c
3645
ret = add_subprog(env, i + insn->imm + 1);
kernel/bpf/verifier.c
3647
ret = add_kfunc_call(env, insn->imm, insn->off);
kernel/bpf/verifier.c
3690
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
3697
u8 code = insn[i].code;
kernel/bpf/verifier.c
3700
insn[i].src_reg == 0 &&
kernel/bpf/verifier.c
3701
insn[i].imm == BPF_FUNC_tail_call) {
kernel/bpf/verifier.c
3716
off = i + bpf_jmp_offset(&insn[i]) + 1;
kernel/bpf/verifier.c
3796
static bool is_reg64(struct bpf_insn *insn,
kernel/bpf/verifier.c
3801
code = insn->code;
kernel/bpf/verifier.c
3816
if (insn->src_reg == BPF_PSEUDO_CALL)
kernel/bpf/verifier.c
3828
if (class == BPF_ALU64 && op == BPF_END && (insn->imm == 16 || insn->imm == 32))
kernel/bpf/verifier.c
3832
(class == BPF_ALU && op == BPF_END && insn->imm == 64))
kernel/bpf/verifier.c
3883
static int insn_def_regno(const struct bpf_insn *insn)
kernel/bpf/verifier.c
3885
switch (BPF_CLASS(insn->code)) {
kernel/bpf/verifier.c
3891
if (BPF_MODE(insn->code) == BPF_ATOMIC ||
kernel/bpf/verifier.c
3892
BPF_MODE(insn->code) == BPF_PROBE_ATOMIC) {
kernel/bpf/verifier.c
3893
if (insn->imm == BPF_CMPXCHG)
kernel/bpf/verifier.c
3895
else if (insn->imm == BPF_LOAD_ACQ)
kernel/bpf/verifier.c
3896
return insn->dst_reg;
kernel/bpf/verifier.c
3897
else if (insn->imm & BPF_FETCH)
kernel/bpf/verifier.c
3898
return insn->src_reg;
kernel/bpf/verifier.c
3902
return insn->dst_reg;
kernel/bpf/verifier.c
3907
static bool insn_has_def32(struct bpf_insn *insn)
kernel/bpf/verifier.c
3909
int dst_reg = insn_def_regno(insn);
kernel/bpf/verifier.c
3914
return !is_reg64(insn, dst_reg, NULL, DST_OP);
kernel/bpf/verifier.c
3933
struct bpf_insn *insn = env->prog->insnsi + env->insn_idx;
kernel/bpf/verifier.c
3945
rw64 = is_reg64(insn, regno, reg, t);
kernel/bpf/verifier.c
4170
static const char *disasm_kfunc_name(void *data, const struct bpf_insn *insn)
kernel/bpf/verifier.c
4175
if (insn->src_reg != BPF_PSEUDO_KFUNC_CALL)
kernel/bpf/verifier.c
4178
desc_btf = find_kfunc_desc_btf(data, insn->off);
kernel/bpf/verifier.c
4182
func = btf_type_by_id(desc_btf, insn->imm);
kernel/bpf/verifier.c
4186
static void verbose_insn(struct bpf_verifier_env *env, struct bpf_insn *insn)
kernel/bpf/verifier.c
4194
print_bpf_insn(&cbs, insn, env->allow_ptr_leaks);
kernel/bpf/verifier.c
4393
struct bpf_insn *insn = env->prog->insnsi + idx;
kernel/bpf/verifier.c
4394
u8 class = BPF_CLASS(insn->code);
kernel/bpf/verifier.c
4395
u8 opcode = BPF_OP(insn->code);
kernel/bpf/verifier.c
4396
u8 mode = BPF_MODE(insn->code);
kernel/bpf/verifier.c
4397
u32 dreg = insn->dst_reg;
kernel/bpf/verifier.c
4398
u32 sreg = insn->src_reg;
kernel/bpf/verifier.c
4401
if (insn->code == 0)
kernel/bpf/verifier.c
4410
verbose_insn(env, insn);
kernel/bpf/verifier.c
4428
if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
4446
if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
4458
is_atomic_load_insn(insn) ||
kernel/bpf/verifier.c
4459
is_atomic_fetch_insn(insn)) {
kernel/bpf/verifier.c
4468
if (is_atomic_fetch_insn(insn))
kernel/bpf/verifier.c
4469
load_reg = insn->imm == BPF_CMPXCHG ?
kernel/bpf/verifier.c
4509
if (bpf_pseudo_call(insn)) {
kernel/bpf/verifier.c
4512
subprog_insn_idx = idx + insn->imm + 1;
kernel/bpf/verifier.c
4570
} else if (is_sync_callback_calling_insn(insn) && idx != subseq_idx - 1) {
kernel/bpf/verifier.c
4599
if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL && insn->imm == 0)
kernel/bpf/verifier.c
4611
if (insn->src_reg == BPF_REG_0 && insn->imm == BPF_FUNC_tail_call
kernel/bpf/verifier.c
4658
} else if (BPF_SRC(insn->code) == BPF_X) {
kernel/bpf/verifier.c
4671
} else if (BPF_SRC(insn->code) == BPF_K) {
kernel/bpf/verifier.c
5209
static bool is_bpf_st_mem(struct bpf_insn *insn)
kernel/bpf/verifier.c
5211
return BPF_CLASS(insn->code) == BPF_ST && BPF_MODE(insn->code) == BPF_MEM;
kernel/bpf/verifier.c
522
static bool is_bpf_throw_kfunc(struct bpf_insn *insn);
kernel/bpf/verifier.c
5255
struct bpf_insn *insn = &env->prog->insnsi[insn_idx];
kernel/bpf/verifier.c
5318
} else if (!reg && !(off % BPF_REG_SIZE) && is_bpf_st_mem(insn) &&
kernel/bpf/verifier.c
5323
__mark_reg_known(tmp_reg, insn->imm);
kernel/bpf/verifier.c
5350
(!reg && is_bpf_st_mem(insn) && insn->imm == 0)) {
kernel/bpf/verifier.c
5403
struct bpf_insn *insn = &env->prog->insnsi[insn_idx];
kernel/bpf/verifier.c
5417
(!value_reg && is_bpf_st_mem(insn) && insn->imm == 0))
kernel/bpf/verifier.c
546
static bool is_sync_callback_calling_insn(struct bpf_insn *insn)
kernel/bpf/verifier.c
548
return (bpf_helper_call(insn) && is_sync_callback_calling_function(insn->imm)) ||
kernel/bpf/verifier.c
549
(bpf_pseudo_kfunc_call(insn) && is_sync_callback_calling_kfunc(insn->imm));
kernel/bpf/verifier.c
552
static bool is_async_callback_calling_insn(struct bpf_insn *insn)
kernel/bpf/verifier.c
554
return (bpf_helper_call(insn) && is_async_callback_calling_function(insn->imm)) ||
kernel/bpf/verifier.c
555
(bpf_pseudo_kfunc_call(insn) && is_async_callback_calling_kfunc(insn->imm));
kernel/bpf/verifier.c
558
static bool is_async_cb_sleepable(struct bpf_verifier_env *env, struct bpf_insn *insn)
kernel/bpf/verifier.c
561
if (bpf_helper_call(insn) && insn->imm == BPF_FUNC_timer_set_callback)
kernel/bpf/verifier.c
565
if (bpf_pseudo_kfunc_call(insn) && insn->off == 0 &&
kernel/bpf/verifier.c
566
(is_bpf_wq_set_callback_kfunc(insn->imm) || is_task_work_add_kfunc(insn->imm)))
kernel/bpf/verifier.c
573
static bool is_may_goto_insn(struct bpf_insn *insn)
kernel/bpf/verifier.c
575
return insn->code == (BPF_JMP | BPF_JCOND) && insn->src_reg == BPF_MAY_GOTO;
kernel/bpf/verifier.c
606
static bool is_cmpxchg_insn(const struct bpf_insn *insn)
kernel/bpf/verifier.c
608
return BPF_CLASS(insn->code) == BPF_STX &&
kernel/bpf/verifier.c
609
BPF_MODE(insn->code) == BPF_ATOMIC &&
kernel/bpf/verifier.c
610
insn->imm == BPF_CMPXCHG;
kernel/bpf/verifier.c
613
static bool is_atomic_load_insn(const struct bpf_insn *insn)
kernel/bpf/verifier.c
615
return BPF_CLASS(insn->code) == BPF_STX &&
kernel/bpf/verifier.c
616
BPF_MODE(insn->code) == BPF_ATOMIC &&
kernel/bpf/verifier.c
6162
struct bpf_insn *insn = &env->prog->insnsi[insn_idx];
kernel/bpf/verifier.c
6163
int class = BPF_CLASS(insn->code);
kernel/bpf/verifier.c
617
insn->imm == BPF_LOAD_ACQ;
kernel/bpf/verifier.c
6174
if (BPF_MODE(insn->code) != BPF_MEM) {
kernel/bpf/verifier.c
620
static bool is_atomic_fetch_insn(const struct bpf_insn *insn)
kernel/bpf/verifier.c
6210
if (insn->imm) {
kernel/bpf/verifier.c
622
return BPF_CLASS(insn->code) == BPF_STX &&
kernel/bpf/verifier.c
623
BPF_MODE(insn->code) == BPF_ATOMIC &&
kernel/bpf/verifier.c
624
(insn->imm & BPF_FETCH);
kernel/bpf/verifier.c
6520
struct bpf_insn *insn)
kernel/bpf/verifier.c
6531
return bpf_jit_supports_insn(insn, true);
kernel/bpf/verifier.c
6744
struct bpf_insn *insn = env->prog->insnsi;
kernel/bpf/verifier.c
6811
if (bpf_pseudo_kfunc_call(insn + i) && !insn[i].off) {
kernel/bpf/verifier.c
6814
if (!is_bpf_throw_kfunc(insn + i))
kernel/bpf/verifier.c
6832
if (!bpf_pseudo_call(insn + i) && !bpf_pseudo_func(insn + i))
kernel/bpf/verifier.c
6839
next_insn = i + insn[i].imm + 1;
kernel/bpf/verifier.c
6849
if (!bpf_pseudo_call(insn + i))
kernel/bpf/verifier.c
6947
const struct bpf_insn *insn, int idx)
kernel/bpf/verifier.c
6949
int start = idx + insn->imm + 1, subprog;
kernel/bpf/verifier.c
7973
static int check_load_mem(struct bpf_verifier_env *env, struct bpf_insn *insn,
kernel/bpf/verifier.c
7982
err = check_reg_arg(env, insn->src_reg, SRC_OP);
kernel/bpf/verifier.c
7987
err = check_reg_arg(env, insn->dst_reg, DST_OP_NO_MARK);
kernel/bpf/verifier.c
7991
src_reg_type = regs[insn->src_reg].type;
kernel/bpf/verifier.c
7996
err = check_mem_access(env, env->insn_idx, insn->src_reg, insn->off,
kernel/bpf/verifier.c
7997
BPF_SIZE(insn->code), BPF_READ, insn->dst_reg,
kernel/bpf/verifier.c
8001
err = err ?: reg_bounds_sanity_check(env, &regs[insn->dst_reg], ctx);
kernel/bpf/verifier.c
8006
static int check_store_reg(struct bpf_verifier_env *env, struct bpf_insn *insn,
kernel/bpf/verifier.c
8014
err = check_reg_arg(env, insn->src_reg, SRC_OP);
kernel/bpf/verifier.c
8019
err = check_reg_arg(env, insn->dst_reg, SRC_OP);
kernel/bpf/verifier.c
8023
dst_reg_type = regs[insn->dst_reg].type;
kernel/bpf/verifier.c
8026
err = check_mem_access(env, env->insn_idx, insn->dst_reg, insn->off,
kernel/bpf/verifier.c
8027
BPF_SIZE(insn->code), BPF_WRITE, insn->src_reg,
kernel/bpf/verifier.c
8035
struct bpf_insn *insn)
kernel/bpf/verifier.c
8040
if (BPF_SIZE(insn->code) != BPF_W && BPF_SIZE(insn->code) != BPF_DW) {
kernel/bpf/verifier.c
8046
err = check_reg_arg(env, insn->src_reg, SRC_OP);
kernel/bpf/verifier.c
8051
err = check_reg_arg(env, insn->dst_reg, SRC_OP);
kernel/bpf/verifier.c
8055
if (insn->imm == BPF_CMPXCHG) {
kernel/bpf/verifier.c
8069
if (is_pointer_value(env, insn->src_reg)) {
kernel/bpf/verifier.c
8070
verbose(env, "R%d leaks addr into mem\n", insn->src_reg);
kernel/bpf/verifier.c
8074
if (!atomic_ptr_type_ok(env, insn->dst_reg, insn)) {
kernel/bpf/verifier.c
8076
insn->dst_reg,
kernel/bpf/verifier.c
8077
reg_type_str(env, reg_state(env, insn->dst_reg)->type));
kernel/bpf/verifier.c
8081
if (insn->imm & BPF_FETCH) {
kernel/bpf/verifier.c
8082
if (insn->imm == BPF_CMPXCHG)
kernel/bpf/verifier.c
8085
load_reg = insn->src_reg;
kernel/bpf/verifier.c
8101
err = check_mem_access(env, env->insn_idx, insn->dst_reg, insn->off,
kernel/bpf/verifier.c
8102
BPF_SIZE(insn->code), BPF_READ, -1, true, false);
kernel/bpf/verifier.c
8104
err = check_mem_access(env, env->insn_idx, insn->dst_reg,
kernel/bpf/verifier.c
8105
insn->off, BPF_SIZE(insn->code),
kernel/bpf/verifier.c
8110
if (is_arena_reg(env, insn->dst_reg)) {
kernel/bpf/verifier.c
8116
err = check_mem_access(env, env->insn_idx, insn->dst_reg, insn->off,
kernel/bpf/verifier.c
8117
BPF_SIZE(insn->code), BPF_WRITE, -1, true, false);
kernel/bpf/verifier.c
8124
struct bpf_insn *insn)
kernel/bpf/verifier.c
8128
err = check_load_mem(env, insn, true, false, false, "atomic_load");
kernel/bpf/verifier.c
8132
if (!atomic_ptr_type_ok(env, insn->src_reg, insn)) {
kernel/bpf/verifier.c
8134
insn->src_reg,
kernel/bpf/verifier.c
8135
reg_type_str(env, reg_state(env, insn->src_reg)->type));
kernel/bpf/verifier.c
8143
struct bpf_insn *insn)
kernel/bpf/verifier.c
8147
err = check_store_reg(env, insn, true);
kernel/bpf/verifier.c
8151
if (!atomic_ptr_type_ok(env, insn->dst_reg, insn)) {
kernel/bpf/verifier.c
8153
insn->dst_reg,
kernel/bpf/verifier.c
8154
reg_type_str(env, reg_state(env, insn->dst_reg)->type));
kernel/bpf/verifier.c
8161
static int check_atomic(struct bpf_verifier_env *env, struct bpf_insn *insn)
kernel/bpf/verifier.c
8163
switch (insn->imm) {
kernel/bpf/verifier.c
8174
return check_atomic_rmw(env, insn);
kernel/bpf/verifier.c
8176
if (BPF_SIZE(insn->code) == BPF_DW && BITS_PER_LONG != 64) {
kernel/bpf/verifier.c
8181
return check_atomic_load(env, insn);
kernel/bpf/verifier.c
8183
if (BPF_SIZE(insn->code) == BPF_DW && BITS_PER_LONG != 64) {
kernel/bpf/verifier.c
8188
return check_atomic_store(env, insn);
kernel/bpf/verifier.c
8191
insn->imm);
kernel/events/uprobes.c
1049
void *insn, int nbytes, loff_t offset)
kernel/events/uprobes.c
1064
uprobe_copy_from_page(page, offset, insn, nbytes);
kernel/events/uprobes.c
1074
void *insn = &uprobe->arch.insn;
kernel/events/uprobes.c
1075
int size = sizeof(uprobe->arch.insn);
kernel/events/uprobes.c
1084
err = __copy_insn(mapping, filp, insn, len, offs);
kernel/events/uprobes.c
1088
insn += len;
kernel/events/uprobes.c
1114
if (is_trap_insn((uprobe_opcode_t *)&uprobe->arch.insn))
kernel/events/uprobes.c
161
bool __weak is_swbp_insn(uprobe_opcode_t *insn)
kernel/events/uprobes.c
163
return *insn == UPROBE_SWBP_INSN;
kernel/events/uprobes.c
1745
static uprobe_opcode_t insn = UPROBE_SWBP_INSN;
kernel/events/uprobes.c
1748
return &insn;
kernel/events/uprobes.c
175
bool __weak is_trap_insn(uprobe_opcode_t *insn)
kernel/events/uprobes.c
177
return is_swbp_insn(insn);
kernel/events/uprobes.c
194
static int verify_opcode(struct page *page, unsigned long vaddr, uprobe_opcode_t *insn,
kernel/events/uprobes.c
212
if (is_swbp_insn(insn)) {
kernel/events/uprobes.c
405
unsigned long insn_vaddr, uprobe_opcode_t *insn, int nbytes,
kernel/events/uprobes.c
433
copy_to_page(fw->page, insn_vaddr, insn, nbytes);
kernel/events/uprobes.c
498
const unsigned long insn_vaddr, uprobe_opcode_t *insn, int nbytes,
kernel/events/uprobes.c
534
ret = verify(page, insn_vaddr, insn, nbytes, data);
kernel/events/uprobes.c
573
ret = __uprobe_write(vma, &fw, folio, insn_vaddr, insn, nbytes, is_register);
kernel/events/uprobes.c
631
*(uprobe_opcode_t *)&auprobe->insn, false);
kernel/seccomp.c
785
struct sock_filter *insn = &fprog->filter[pc];
kernel/seccomp.c
786
u16 code = insn->code;
kernel/seccomp.c
787
u32 k = insn->k;
kernel/seccomp.c
807
pc += insn->k;
kernel/seccomp.c
831
pc += op_res ? insn->jt : insn->jf;
kernel/signal.c
1239
unsigned char insn;
kernel/signal.c
1241
if (get_user(insn, (unsigned char *)(regs->ip + i)))
kernel/signal.c
1243
pr_cont("%02x ", insn);
kernel/trace/bpf_trace.c
1876
struct bpf_insn *insn = insn_buf;
kernel/trace/bpf_trace.c
1880
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_perf_event_data_kern,
kernel/trace/bpf_trace.c
1883
*insn++ = BPF_LDX_MEM(BPF_DW, si->dst_reg, si->dst_reg,
kernel/trace/bpf_trace.c
1888
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_perf_event_data_kern,
kernel/trace/bpf_trace.c
1891
*insn++ = BPF_LDX_MEM(BPF_DW, si->dst_reg, si->dst_reg,
kernel/trace/bpf_trace.c
1896
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_perf_event_data_kern,
kernel/trace/bpf_trace.c
1899
*insn++ = BPF_LDX_MEM(BPF_SIZEOF(long), si->dst_reg, si->dst_reg,
kernel/trace/bpf_trace.c
1904
return insn - insn_buf;
lib/extable.c
16
#define ex_to_insn(x) ((x)->insn)
lib/extable.c
20
return (unsigned long)&x->insn + x->insn;
lib/extable.c
33
x->insn = y->insn + delta;
lib/extable.c
34
y->insn = tmp.insn - delta;
lib/test_bpf.c
102
insn[i] = __BPF_STMT(BPF_RET | BPF_K, k);
lib/test_bpf.c
104
self->u.ptr.insns = insn;
lib/test_bpf.c
113
struct sock_filter *insn;
lib/test_bpf.c
116
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
117
if (!insn)
lib/test_bpf.c
121
insn[i] = __BPF_STMT(BPF_RET | BPF_K, 0xfefefefe);
lib/test_bpf.c
123
self->u.ptr.insns = insn;
lib/test_bpf.c
132
struct sock_filter *insn;
lib/test_bpf.c
136
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
137
if (!insn)
lib/test_bpf.c
145
insn[i] = __BPF_STMT(BPF_ALU | BPF_ADD | BPF_K, k);
lib/test_bpf.c
148
insn[len - 1] = __BPF_STMT(BPF_RET | BPF_A, 0);
lib/test_bpf.c
150
self->u.ptr.insns = insn;
lib/test_bpf.c
15476
struct bpf_insn *insn = &test->insns[len];
lib/test_bpf.c
15479
insn->code == (BPF_LD | BPF_DW | BPF_IMM))
lib/test_bpf.c
15481
if (insn->code == 0)
lib/test_bpf.c
15498
struct bpf_insn *insn = &fp->insnsi[i];
lib/test_bpf.c
15501
switch (insn->code) {
lib/test_bpf.c
15503
if (insn->imm != TAIL_CALL_MARKER)
lib/test_bpf.c
15505
insn[0].imm = (u32)(long)progs;
lib/test_bpf.c
15506
insn[1].imm = ((u64)(long)progs) >> 32;
lib/test_bpf.c
15510
if (insn->imm != TAIL_CALL_MARKER)
lib/test_bpf.c
15512
if (insn->off == TAIL_CALL_NULL)
lib/test_bpf.c
15513
insn->imm = ntests;
lib/test_bpf.c
15514
else if (insn->off == TAIL_CALL_INVALID)
lib/test_bpf.c
15515
insn->imm = ntests + 1;
lib/test_bpf.c
15517
insn->imm = which + insn->off;
lib/test_bpf.c
15518
insn->off = 0;
lib/test_bpf.c
15522
if (insn->src_reg != BPF_PSEUDO_CALL)
lib/test_bpf.c
15524
switch (insn->imm) {
lib/test_bpf.c
15547
*insn = BPF_EMIT_CALL(addr);
lib/test_bpf.c
15548
if ((long)__bpf_call_base + insn->imm != addr)
lib/test_bpf.c
15549
*insn = BPF_JMP_A(0); /* Skip: NOP */
lib/test_bpf.c
159
struct sock_filter *insn;
lib/test_bpf.c
162
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
163
if (!insn)
lib/test_bpf.c
167
insn[i] = __BPF_STMT(BPF_RET | BPF_K, 0xfefefefe);
lib/test_bpf.c
169
self->u.ptr.insns = insn;
lib/test_bpf.c
178
struct sock_filter *insn;
lib/test_bpf.c
181
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
182
if (!insn)
lib/test_bpf.c
185
insn[0] = __BPF_JUMP(BPF_JMP | BPF_JA, len - 2, 0, 0);
lib/test_bpf.c
188
insn[i] = __BPF_STMT(BPF_RET | BPF_K, 0xfefefefe);
lib/test_bpf.c
190
insn[len - 1] = __BPF_STMT(BPF_RET | BPF_K, 0xabababab);
lib/test_bpf.c
1915
struct bpf_insn *insn;
lib/test_bpf.c
192
self->u.ptr.insns = insn;
lib/test_bpf.c
1920
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
1921
if (!insn)
lib/test_bpf.c
1951
i += __bpf_ld_imm64(&insn[i], R0, mem);
lib/test_bpf.c
1952
insn[i++] = BPF_STX_MEM(width, R10, R0, -8);
lib/test_bpf.c
1955
i += __bpf_ld_imm64(&insn[i], R0, ~mem);
lib/test_bpf.c
1956
i += __bpf_ld_imm64(&insn[i], rs, upd);
lib/test_bpf.c
1957
insn[i++] = BPF_MOV64_REG(rd, R10);
lib/test_bpf.c
1960
insn[i++] = BPF_ATOMIC_OP(width, op, rd, rs, -8);
lib/test_bpf.c
1962
insn[i++] = BPF_ZEXT_REG(R0);
lib/test_bpf.c
1972
insn[i++] = BPF_JMP32_IMM(BPF_JEQ, R0,
lib/test_bpf.c
1974
insn[i++] = BPF_MOV32_IMM(R0, __LINE__);
lib/test_bpf.c
1975
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
1976
insn[i++] = BPF_ALU64_IMM(BPF_RSH, R0, 32);
lib/test_bpf.c
1977
insn[i++] = BPF_JMP32_IMM(BPF_JEQ, R0,
lib/test_bpf.c
1979
insn[i++] = BPF_MOV32_IMM(R0, __LINE__);
lib/test_bpf.c
1980
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
1996
insn[i++] = BPF_JMP32_IMM(BPF_JEQ, rs,
lib/test_bpf.c
1998
insn[i++] = BPF_MOV32_IMM(R0, __LINE__);
lib/test_bpf.c
1999
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
2000
insn[i++] = BPF_ALU64_IMM(BPF_RSH, rs, 32);
lib/test_bpf.c
2001
insn[i++] = BPF_JMP32_IMM(BPF_JEQ, rs,
lib/test_bpf.c
2003
insn[i++] = BPF_MOV32_IMM(R0, __LINE__);
lib/test_bpf.c
2004
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
201
struct sock_filter *insn;
lib/test_bpf.c
2010
insn[i++] = BPF_JMP_REG(BPF_JEQ, rd, R10, 2);
lib/test_bpf.c
2011
insn[i++] = BPF_MOV32_IMM(R0, __LINE__);
lib/test_bpf.c
2012
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
2017
i += __bpf_ld_imm64(&insn[i], R1, res);
lib/test_bpf.c
2019
insn[i++] = BPF_MOV64_REG(R1, R10);
lib/test_bpf.c
2021
i += __bpf_ld_imm64(&insn[i], R1, mem);
lib/test_bpf.c
2023
i += __bpf_ld_imm64(&insn[i], R1, mem);
lib/test_bpf.c
2024
insn[i++] = BPF_ALU64_REG(BPF_OP(op), R1, R10);
lib/test_bpf.c
2027
insn[i++] = BPF_LDX_MEM(width, R0, R10, -8);
lib/test_bpf.c
2029
insn[i++] = BPF_JMP_REG(BPF_JEQ, R0, R1, 2);
lib/test_bpf.c
2031
insn[i++] = BPF_JMP32_REG(BPF_JEQ, R0, R1, 2);
lib/test_bpf.c
2032
insn[i++] = BPF_MOV32_IMM(R0, __LINE__);
lib/test_bpf.c
2033
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
2037
insn[i++] = BPF_MOV64_IMM(R0, 1);
lib/test_bpf.c
2038
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
204
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
2040
self->u.ptr.insns = insn;
lib/test_bpf.c
205
if (!insn)
lib/test_bpf.c
209
insn[i] = __BPF_STMT(BPF_LD | BPF_W | BPF_ABS, SKF_AD_OFF +
lib/test_bpf.c
212
insn[len - 1] = __BPF_STMT(BPF_RET | BPF_A, 0);
lib/test_bpf.c
214
self->u.ptr.insns = insn;
lib/test_bpf.c
2162
struct bpf_insn *insn;
lib/test_bpf.c
2166
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
2167
if (!insn)
lib/test_bpf.c
2170
insn[i++] = BPF_ALU64_IMM(BPF_MOV, R0, 0);
lib/test_bpf.c
2178
i += __bpf_ld_imm64(&insn[i], R1, imm);
lib/test_bpf.c
2181
insn[i++] = BPF_ALU32_IMM(BPF_MOV, R2, imm);
lib/test_bpf.c
2182
insn[i++] = BPF_ALU32_IMM(BPF_MOV, R3,
lib/test_bpf.c
2184
insn[i++] = BPF_ALU64_IMM(BPF_LSH, R3, 32);
lib/test_bpf.c
2185
insn[i++] = BPF_ALU64_REG(BPF_OR, R2, R3);
lib/test_bpf.c
2188
insn[i++] = BPF_JMP_REG(BPF_JEQ, R1, R2, 1);
lib/test_bpf.c
2189
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
2194
insn[i++] = BPF_ALU64_IMM(BPF_MOV, R0, 1);
lib/test_bpf.c
2195
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
2197
self->u.ptr.insns = insn;
lib/test_bpf.c
2214
struct bpf_insn *insn;
lib/test_bpf.c
2220
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
2221
if (!insn)
lib/test_bpf.c
2224
insn[i++] = BPF_ALU64_IMM(BPF_MOV, R0, 0);
lib/test_bpf.c
223
struct sock_filter *insn;
lib/test_bpf.c
2243
i += __bpf_ld_imm64(&insn[i], R1, imm);
lib/test_bpf.c
2246
insn[i++] = BPF_ALU32_IMM(BPF_MOV, R2, imm);
lib/test_bpf.c
2247
insn[i++] = BPF_ALU32_IMM(BPF_MOV, R3, (u32)(imm >> 32));
lib/test_bpf.c
2248
insn[i++] = BPF_ALU64_IMM(BPF_LSH, R3, 32);
lib/test_bpf.c
2249
insn[i++] = BPF_ALU64_REG(BPF_OR, R2, R3);
lib/test_bpf.c
2252
insn[i++] = BPF_JMP_REG(BPF_JEQ, R1, R2, 1);
lib/test_bpf.c
2253
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
2256
insn[i++] = BPF_ALU64_IMM(BPF_MOV, R0, 1);
lib/test_bpf.c
2257
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
2259
self->u.ptr.insns = insn;
lib/test_bpf.c
226
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
227
if (!insn)
lib/test_bpf.c
231
insn[i] = __BPF_STMT(BPF_LD | BPF_W | BPF_ABS, SKF_AD_OFF +
lib/test_bpf.c
234
insn[len - 4] = __BPF_STMT(BPF_MISC | BPF_TAX, 0);
lib/test_bpf.c
235
insn[len - 3] = __BPF_STMT(BPF_LD | BPF_W | BPF_ABS, SKF_AD_OFF +
lib/test_bpf.c
237
insn[len - 2] = __BPF_STMT(BPF_ALU | BPF_SUB | BPF_X, 0);
lib/test_bpf.c
238
insn[len - 1] = __BPF_STMT(BPF_RET | BPF_A, 0);
lib/test_bpf.c
240
self->u.ptr.insns = insn;
lib/test_bpf.c
249
struct sock_filter *insn;
lib/test_bpf.c
252
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
253
if (!insn)
lib/test_bpf.c
256
insn[0] = __BPF_STMT(BPF_LD | BPF_IMM, 0xffffffff);
lib/test_bpf.c
259
insn[i] = __BPF_JUMP(BPF_JMP | BPF_JGT, 0xffffffff, jmp_off--, 0);
lib/test_bpf.c
261
insn[len - 1] = __BPF_STMT(BPF_RET | BPF_A, 0);
lib/test_bpf.c
263
self->u.ptr.insns = insn;
lib/test_bpf.c
272
struct bpf_insn *insn;
lib/test_bpf.c
275
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
276
if (!insn)
lib/test_bpf.c
279
insn[0] = BPF_JMP_IMM(BPF_JA, 0, 0, len - 2);
lib/test_bpf.c
280
insn[1] = BPF_ALU32_IMM(BPF_MOV, R0, 0xcbababab);
lib/test_bpf.c
281
insn[2] = BPF_EXIT_INSN();
lib/test_bpf.c
284
insn[i] = BPF_ALU32_IMM(BPF_MOV, R0, 0xfefefefe);
lib/test_bpf.c
286
insn[len - 2] = BPF_EXIT_INSN();
lib/test_bpf.c
287
insn[len - 1] = BPF_JMP_IMM(BPF_JA, 0, 0, -(len - 1));
lib/test_bpf.c
289
self->u.ptr.insns = insn;
lib/test_bpf.c
298
struct bpf_insn *insn;
lib/test_bpf.c
301
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
302
if (!insn)
lib/test_bpf.c
306
insn[i] = BPF_JMP_IMM(BPF_JA, 0, 0, hlen - 2 - 2 * i);
lib/test_bpf.c
308
insn[i] = BPF_JMP_IMM(BPF_JA, 0, 0, hlen - 1 - 2 * i);
lib/test_bpf.c
310
insn[hlen / 2] = BPF_JMP_IMM(BPF_JA, 0, 0, hlen / 2 - 1);
lib/test_bpf.c
311
insn[hlen] = BPF_ALU32_IMM(BPF_MOV, R0, 0xabababac);
lib/test_bpf.c
312
insn[hlen + 1] = BPF_EXIT_INSN();
lib/test_bpf.c
314
self->u.ptr.insns = insn;
lib/test_bpf.c
323
struct sock_filter *insn;
lib/test_bpf.c
327
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
328
if (!insn)
lib/test_bpf.c
335
insn[i + j] = __BPF_JUMP(BPF_JMP | BPF_JA,
lib/test_bpf.c
338
insn[i + j] = __BPF_JUMP(BPF_JMP | BPF_JA, rlen - 1 - j,
lib/test_bpf.c
341
insn[len - 1] = __BPF_STMT(BPF_RET | BPF_K, 0xababcbac);
lib/test_bpf.c
343
self->u.ptr.insns = insn;
lib/test_bpf.c
358
struct sock_filter *insn;
lib/test_bpf.c
361
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
362
if (!insn)
lib/test_bpf.c
365
insn[0] = __BPF_JUMP(BPF_JMP | BPF_JA, len - 2, 0, 0);
lib/test_bpf.c
368
insn[i] = __BPF_STMT(BPF_LDX | BPF_B | BPF_MSH, 0);
lib/test_bpf.c
370
insn[len - 1] = __BPF_STMT(BPF_RET | BPF_K, 0xabababab);
lib/test_bpf.c
372
self->u.ptr.insns = insn;
lib/test_bpf.c
381
struct sock_filter *insn;
lib/test_bpf.c
384
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
385
if (!insn)
lib/test_bpf.c
389
insn[i] = __BPF_STMT(BPF_LDX | BPF_B | BPF_MSH, 0);
lib/test_bpf.c
391
insn[len - 3] = __BPF_STMT(BPF_LD | BPF_IMM, 0xabababab);
lib/test_bpf.c
392
insn[len - 2] = __BPF_STMT(BPF_ALU | BPF_XOR | BPF_X, 0);
lib/test_bpf.c
393
insn[len - 1] = __BPF_STMT(BPF_RET | BPF_A, 0);
lib/test_bpf.c
395
self->u.ptr.insns = insn;
lib/test_bpf.c
410
struct sock_filter *insn;
lib/test_bpf.c
413
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
414
if (!insn)
lib/test_bpf.c
418
insn[i] = __BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 0);
lib/test_bpf.c
419
insn[i + 1] = __BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
lib/test_bpf.c
423
insn[len - 1] = __BPF_STMT(BPF_RET | BPF_K, 0xbee);
lib/test_bpf.c
425
self->u.ptr.insns = insn;
lib/test_bpf.c
434
struct bpf_insn *insn;
lib/test_bpf.c
437
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
438
if (!insn)
lib/test_bpf.c
441
insn[0] = BPF_ALU32_IMM(BPF_MOV, R0, 1);
lib/test_bpf.c
442
insn[1] = BPF_ST_MEM(size, R10, -40, 42);
lib/test_bpf.c
445
insn[i] = BPF_STX_XADD(size, R10, R0, -40);
lib/test_bpf.c
447
insn[len - 2] = BPF_LDX_MEM(size, R0, R10, -40);
lib/test_bpf.c
448
insn[len - 1] = BPF_EXIT_INSN();
lib/test_bpf.c
450
self->u.ptr.insns = insn;
lib/test_bpf.c
625
struct bpf_insn *insn;
lib/test_bpf.c
629
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
630
if (!insn)
lib/test_bpf.c
633
insn[i++] = BPF_ALU64_IMM(BPF_MOV, R0, 0);
lib/test_bpf.c
638
i += __bpf_ld_imm64(&insn[i], R3, reg);
lib/test_bpf.c
644
insn[i++] = BPF_ALU64_REG(BPF_MOV, R1, R3);
lib/test_bpf.c
645
insn[i++] = BPF_ALU64_IMM(BPF_MOV, R2, imm);
lib/test_bpf.c
648
insn[i++] = BPF_ALU32_IMM(op, R1, imm);
lib/test_bpf.c
650
insn[i++] = BPF_ALU32_REG(op, R1, R2);
lib/test_bpf.c
660
insn[i++] = BPF_ALU64_IMM(op, R1, imm);
lib/test_bpf.c
662
insn[i++] = BPF_ALU64_REG(op, R1, R2);
lib/test_bpf.c
673
i += __bpf_ld_imm64(&insn[i], R4, val);
lib/test_bpf.c
674
insn[i++] = BPF_JMP_REG(BPF_JEQ, R1, R4, 1);
lib/test_bpf.c
675
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
679
insn[i++] = BPF_ALU64_IMM(BPF_MOV, R0, 1);
lib/test_bpf.c
680
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
682
self->u.ptr.insns = insn;
lib/test_bpf.c
758
struct bpf_insn *insn;
lib/test_bpf.c
762
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
763
if (!insn)
lib/test_bpf.c
766
insn[i++] = BPF_ALU64_IMM(BPF_MOV, R0, 0);
lib/test_bpf.c
772
insn[i++] = BPF_ALU64_IMM(BPF_MOV, R1, val);
lib/test_bpf.c
774
insn[i++] = BPF_ALU32_REG(op, R1, R1);
lib/test_bpf.c
776
insn[i++] = BPF_ALU64_REG(op, R1, R1);
lib/test_bpf.c
782
i += __bpf_ld_imm64(&insn[i], R2, res);
lib/test_bpf.c
785
insn[i++] = BPF_JMP_REG(BPF_JEQ, R1, R2, 1);
lib/test_bpf.c
786
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
789
insn[i++] = BPF_ALU64_IMM(BPF_MOV, R0, 1);
lib/test_bpf.c
790
insn[i++] = BPF_EXIT_INSN();
lib/test_bpf.c
792
self->u.ptr.insns = insn;
lib/test_bpf.c
93
struct sock_filter *insn;
lib/test_bpf.c
97
insn = kmalloc_objs(*insn, len);
lib/test_bpf.c
98
if (!insn)
net/core/filter.c
10007
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, sk),
net/core/filter.c
10010
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10015
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
10027
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, sk),
net/core/filter.c
10030
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10035
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
10042
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, sk),
net/core/filter.c
10045
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
net/core/filter.c
10050
*insn++ = BPF_ALU32_IMM(BPF_LSH, si->dst_reg, 16);
net/core/filter.c
10057
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, sk),
net/core/filter.c
10060
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
net/core/filter.c
10069
insn = bpf_convert_tstamp_write(prog, si, insn);
net/core/filter.c
10071
insn = bpf_convert_tstamp_read(prog, si, insn);
net/core/filter.c
10075
insn = bpf_convert_tstamp_type_read(si, insn);
net/core/filter.c
10079
insn = bpf_convert_shinfo_access(si->dst_reg, si->src_reg, insn);
net/core/filter.c
10080
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct skb_shared_info, gso_segs),
net/core/filter.c
10087
insn = bpf_convert_shinfo_access(si->dst_reg, si->src_reg, insn);
net/core/filter.c
10088
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct skb_shared_info, gso_size),
net/core/filter.c
10102
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg, off);
net/core/filter.c
10106
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, sk),
net/core/filter.c
10114
insn = bpf_convert_shinfo_access(si->dst_reg, si->src_reg, insn);
net/core/filter.c
10115
*insn++ = BPF_LDX_MEM(BPF_DW,
net/core/filter.c
10123
return insn - insn_buf;
net/core/filter.c
10131
struct bpf_insn *insn = insn_buf;
net/core/filter.c
10139
*insn++ = BPF_EMIT_STORE(BPF_W, si,
net/core/filter.c
10142
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
10150
*insn++ = BPF_EMIT_STORE(BPF_W, si,
net/core/filter.c
10153
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
10161
*insn++ = BPF_EMIT_STORE(BPF_W, si,
net/core/filter.c
10164
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
10169
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10180
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10189
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10198
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10207
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10219
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10229
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
10237
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10245
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
10251
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10261
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10271
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10281
*insn++ = BPF_LDX_MEM(
net/core/filter.c
10288
*insn++ = BPF_JMP_IMM(BPF_JNE, si->dst_reg, NO_QUEUE_MAPPING,
net/core/filter.c
10290
*insn++ = BPF_MOV64_IMM(si->dst_reg, -1);
net/core/filter.c
10292
*insn++ = BPF_MOV64_IMM(si->dst_reg, -1);
net/core/filter.c
10298
return insn - insn_buf;
net/core/filter.c
10306
struct bpf_insn *insn = insn_buf;
net/core/filter.c
10310
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, dev),
net/core/filter.c
10313
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10322
return insn - insn_buf;
net/core/filter.c
10330
struct bpf_insn *insn = insn_buf;
net/core/filter.c
10334
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct xdp_buff, data),
net/core/filter.c
10339
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct xdp_buff, data_meta),
net/core/filter.c
10344
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct xdp_buff, data_end),
net/core/filter.c
10349
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct xdp_buff, rxq),
net/core/filter.c
10352
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct xdp_rxq_info, dev),
net/core/filter.c
10355
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10359
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct xdp_buff, rxq),
net/core/filter.c
10362
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10367
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct xdp_buff, txq),
net/core/filter.c
10370
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct xdp_txq_info, dev),
net/core/filter.c
10373
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10378
return insn - insn_buf;
net/core/filter.c
10393
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg, \
net/core/filter.c
10395
*insn++ = BPF_LDX_MEM( \
net/core/filter.c
10423
*insn++ = BPF_STX_MEM(BPF_DW, si->dst_reg, tmp_reg, \
net/core/filter.c
10425
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), tmp_reg, \
net/core/filter.c
10427
*insn++ = BPF_RAW_INSN(SIZE | BPF_MEM | BPF_CLASS(si->code), \
net/core/filter.c
10433
*insn++ = BPF_LDX_MEM(BPF_DW, tmp_reg, si->dst_reg, \
net/core/filter.c
10455
struct bpf_insn *insn = insn_buf;
net/core/filter.c
10529
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_sock_addr_kern, sk),
net/core/filter.c
10535
return insn - insn_buf;
net/core/filter.c
10544
struct bpf_insn *insn = insn_buf;
net/core/filter.c
10558
*insn++ = BPF_STX_MEM(BPF_DW, si->src_reg, reg, \
net/core/filter.c
10564
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF( \
net/core/filter.c
10570
*insn++ = BPF_JMP_IMM(BPF_JEQ, fullsock_reg, 0, jmp); \
net/core/filter.c
10572
*insn++ = BPF_LDX_MEM(BPF_DW, reg, si->src_reg, \
net/core/filter.c
10575
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF( \
net/core/filter.c
10579
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(OBJ, \
net/core/filter.c
10584
*insn++ = BPF_JMP_A(1); \
net/core/filter.c
10585
*insn++ = BPF_LDX_MEM(BPF_DW, reg, si->src_reg, \
net/core/filter.c
10599
*insn++ = BPF_STX_MEM(BPF_DW, si->src_reg, reg, \
net/core/filter.c
10605
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF( \
net/core/filter.c
10611
*insn++ = BPF_JMP_IMM(BPF_JEQ, fullsock_reg, 0, jmp); \
net/core/filter.c
10613
*insn++ = BPF_LDX_MEM(BPF_DW, reg, si->src_reg, \
net/core/filter.c
10616
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF( \
net/core/filter.c
10621
*insn++ = BPF_JMP_A(1); \
net/core/filter.c
10622
*insn++ = BPF_LDX_MEM(BPF_DW, reg, si->src_reg, \
net/core/filter.c
10649
*insn++ = BPF_STX_MEM(BPF_DW, si->dst_reg, reg, \
net/core/filter.c
10652
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF( \
net/core/filter.c
10658
*insn++ = BPF_JMP_IMM(BPF_JEQ, reg, 0, 2); \
net/core/filter.c
10659
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF( \
net/core/filter.c
10663
*insn++ = BPF_RAW_INSN(BPF_FIELD_SIZEOF(OBJ, OBJ_FIELD) | \
net/core/filter.c
10668
*insn++ = BPF_LDX_MEM(BPF_DW, reg, si->dst_reg, \
net/core/filter.c
10683
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_sock_ops_kern,
net/core/filter.c
10699
*insn++ = BPF_EMIT_STORE(BPF_W, si, off);
net/core/filter.c
10701
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
10708
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
10712
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
net/core/filter.c
10719
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
10723
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10731
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
10735
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10748
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
10752
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10757
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
10769
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
10773
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10778
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
10785
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
10789
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
net/core/filter.c
10792
*insn++ = BPF_ALU32_IMM(BPF_LSH, si->dst_reg, 16);
net/core/filter.c
10799
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
10803
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
net/core/filter.c
10808
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
10819
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
10823
*insn++ = BPF_LDX_MEM(BPF_B, si->dst_reg, si->dst_reg,
net/core/filter.c
10833
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
10837
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
10918
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_sock_ops_kern,
net/core/filter.c
10925
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_sock_ops_kern,
net/core/filter.c
10930
*insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
net/core/filter.c
10931
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, data),
net/core/filter.c
10936
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_sock_ops_kern,
net/core/filter.c
10941
*insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
net/core/filter.c
10942
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, len),
net/core/filter.c
10950
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_sock_ops_kern,
net/core/filter.c
10955
*insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
net/core/filter.c
10956
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct tcp_skb_cb,
net/core/filter.c
10963
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_sock_ops_kern,
net/core/filter.c
10969
jmp_on_null_skb = insn++;
net/core/filter.c
10970
insn = bpf_convert_shinfo_access(si->dst_reg, si->dst_reg, insn);
net/core/filter.c
10971
*insn++ = BPF_LDX_MEM(BPF_DW, si->dst_reg, si->dst_reg,
net/core/filter.c
10976
insn - jmp_on_null_skb - 1);
net/core/filter.c
10980
return insn - insn_buf;
net/core/filter.c
10985
struct bpf_insn *insn)
net/core/filter.c
10998
*insn++ = BPF_STX_MEM(BPF_DW, si->src_reg, reg, temp_reg_off);
net/core/filter.c
11004
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, data),
net/core/filter.c
11008
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, len),
net/core/filter.c
11012
*insn++ = BPF_ALU64_REG(BPF_ADD, reg, BPF_REG_AX);
net/core/filter.c
11014
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, data_len),
net/core/filter.c
11019
*insn++ = BPF_ALU64_REG(BPF_SUB, reg, BPF_REG_AX);
net/core/filter.c
11023
*insn++ = BPF_MOV64_REG(BPF_REG_AX, si->src_reg);
net/core/filter.c
11024
*insn++ = BPF_MOV64_REG(si->dst_reg, reg);
net/core/filter.c
11025
*insn++ = BPF_LDX_MEM(BPF_DW, reg, BPF_REG_AX, temp_reg_off);
net/core/filter.c
11028
return insn;
net/core/filter.c
11036
struct bpf_insn *insn = insn_buf;
net/core/filter.c
11041
insn = bpf_convert_data_end_access(si, insn);
net/core/filter.c
11056
*insn++ = BPF_EMIT_STORE(BPF_SIZE(si->code), si, off);
net/core/filter.c
11058
*insn++ = BPF_LDX_MEM(BPF_SIZE(si->code), si->dst_reg,
net/core/filter.c
11068
return insn - insn_buf;
net/core/filter.c
11076
struct bpf_insn *insn = insn_buf;
net/core/filter.c
11086
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_msg, data),
net/core/filter.c
11091
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_msg, data_end),
net/core/filter.c
11098
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
11102
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
net/core/filter.c
11109
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
11113
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
11121
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
11125
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
11138
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
11142
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
11147
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
11159
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
11163
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
11168
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
11175
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
11179
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
net/core/filter.c
11182
*insn++ = BPF_ALU32_IMM(BPF_LSH, si->dst_reg, 16);
net/core/filter.c
11189
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(
net/core/filter.c
11193
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
net/core/filter.c
11198
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_msg_sg, size),
net/core/filter.c
11204
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_msg, sk),
net/core/filter.c
11210
return insn - insn_buf;
net/core/filter.c
11618
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_reuseport_kern, F), \
net/core/filter.c
11643
struct bpf_insn *insn = insn_buf;
net/core/filter.c
11683
return insn - insn_buf;
net/core/filter.c
11803
struct bpf_insn *insn = insn_buf;
net/core/filter.c
11807
*insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg, si->src_reg,
net/core/filter.c
11812
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
net/core/filter.c
11818
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
net/core/filter.c
11824
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
11830
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
11842
*insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg, si->src_reg,
net/core/filter.c
11844
*insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
net/core/filter.c
11845
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg, off);
net/core/filter.c
11847
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
11858
*insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg, si->src_reg,
net/core/filter.c
11860
*insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
net/core/filter.c
11861
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg, off);
net/core/filter.c
11863
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
11868
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
net/core/filter.c
11875
*insn++ = BPF_MOV32_IMM(si->dst_reg, 0);
net/core/filter.c
11879
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
net/core/filter.c
11885
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
11891
return insn - insn_buf;
net/core/filter.c
322
struct bpf_insn *insn = insn_buf;
net/core/filter.c
328
*insn++ = BPF_LDX_MEM(BPF_W, dst_reg, src_reg,
net/core/filter.c
333
*insn++ = BPF_LDX_MEM(BPF_B, dst_reg, src_reg, PKT_TYPE_OFFSET);
net/core/filter.c
334
*insn++ = BPF_ALU32_IMM(BPF_AND, dst_reg, PKT_TYPE_MAX);
net/core/filter.c
336
*insn++ = BPF_ALU32_IMM(BPF_RSH, dst_reg, 5);
net/core/filter.c
343
*insn++ = BPF_LDX_MEM(BPF_H, dst_reg, src_reg,
net/core/filter.c
351
*insn++ = BPF_LDX_MEM(BPF_H, dst_reg, src_reg,
net/core/filter.c
356
*insn++ = BPF_LDX_MEM(BPF_W, dst_reg, src_reg,
net/core/filter.c
358
*insn++ = BPF_JMP_IMM(BPF_JEQ, dst_reg, 0, 1);
net/core/filter.c
359
*insn++ = BPF_ALU32_IMM(BPF_MOV, dst_reg, 1);
net/core/filter.c
363
return insn - insn_buf;
net/core/filter.c
369
struct bpf_insn *insn = *insnp;
net/core/filter.c
377
*insn++ = BPF_LDX_MEM(BPF_H, BPF_REG_A, BPF_REG_CTX,
net/core/filter.c
380
*insn = BPF_ENDIAN(BPF_FROM_BE, BPF_REG_A, 16);
net/core/filter.c
384
cnt = convert_skb_access(SKF_AD_PKTTYPE, BPF_REG_A, BPF_REG_CTX, insn);
net/core/filter.c
385
insn += cnt - 1;
net/core/filter.c
393
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, dev),
net/core/filter.c
397
*insn++ = BPF_JMP_IMM(BPF_JNE, BPF_REG_TMP, 0, 1);
net/core/filter.c
398
*insn++ = BPF_EXIT_INSN();
net/core/filter.c
400
*insn = BPF_LDX_MEM(BPF_W, BPF_REG_A, BPF_REG_TMP,
net/core/filter.c
403
*insn = BPF_LDX_MEM(BPF_H, BPF_REG_A, BPF_REG_TMP,
net/core/filter.c
408
cnt = convert_skb_access(SKF_AD_MARK, BPF_REG_A, BPF_REG_CTX, insn);
net/core/filter.c
409
insn += cnt - 1;
net/core/filter.c
415
*insn = BPF_LDX_MEM(BPF_W, BPF_REG_A, BPF_REG_CTX,
net/core/filter.c
420
cnt = convert_skb_access(SKF_AD_QUEUE, BPF_REG_A, BPF_REG_CTX, insn);
net/core/filter.c
421
insn += cnt - 1;
net/core/filter.c
426
BPF_REG_A, BPF_REG_CTX, insn);
net/core/filter.c
427
insn += cnt - 1;
net/core/filter.c
432
BPF_REG_A, BPF_REG_CTX, insn);
net/core/filter.c
433
insn += cnt - 1;
net/core/filter.c
440
*insn++ = BPF_LDX_MEM(BPF_H, BPF_REG_A, BPF_REG_CTX,
net/core/filter.c
443
*insn = BPF_ENDIAN(BPF_FROM_BE, BPF_REG_A, 16);
net/core/filter.c
452
*insn++ = BPF_MOV64_REG(BPF_REG_ARG1, BPF_REG_CTX);
net/core/filter.c
454
*insn++ = BPF_MOV64_REG(BPF_REG_ARG2, BPF_REG_A);
net/core/filter.c
456
*insn++ = BPF_MOV64_REG(BPF_REG_ARG3, BPF_REG_X);
net/core/filter.c
460
*insn = BPF_EMIT_CALL(bpf_skb_get_pay_offset);
net/core/filter.c
463
*insn = BPF_EMIT_CALL(bpf_skb_get_nlattr);
net/core/filter.c
466
*insn = BPF_EMIT_CALL(bpf_skb_get_nlattr_nest);
net/core/filter.c
469
*insn = BPF_EMIT_CALL(bpf_get_raw_cpu_id);
net/core/filter.c
472
*insn = BPF_EMIT_CALL(bpf_user_rnd_u32);
net/core/filter.c
480
*insn = BPF_ALU32_REG(BPF_XOR, BPF_REG_A, BPF_REG_X);
net/core/filter.c
492
*insnp = insn;
net/core/filter.c
504
struct bpf_insn *insn = *insnp;
net/core/filter.c
514
*insn++ = BPF_MOV64_REG(BPF_REG_TMP, BPF_REG_H);
net/core/filter.c
516
*insn++ = BPF_ALU64_IMM(BPF_SUB, BPF_REG_TMP, offset);
net/core/filter.c
517
*insn++ = BPF_JMP_IMM(BPF_JSLT, BPF_REG_TMP,
net/core/filter.c
520
*insn++ = BPF_LDX_MEM(BPF_SIZE(fp->code), BPF_REG_A,
net/core/filter.c
523
*insn++ = BPF_MOV64_REG(BPF_REG_TMP, BPF_REG_D);
net/core/filter.c
524
*insn++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_TMP, offset);
net/core/filter.c
525
*insn++ = BPF_LDX_MEM(BPF_SIZE(fp->code), BPF_REG_A,
net/core/filter.c
529
*insn++ = BPF_ENDIAN(BPF_FROM_BE, BPF_REG_A, size * 8);
net/core/filter.c
530
*insn++ = BPF_JMP_A(8);
net/core/filter.c
533
*insn++ = BPF_MOV64_REG(BPF_REG_ARG1, BPF_REG_CTX);
net/core/filter.c
534
*insn++ = BPF_MOV64_REG(BPF_REG_ARG2, BPF_REG_D);
net/core/filter.c
535
*insn++ = BPF_MOV64_REG(BPF_REG_ARG3, BPF_REG_H);
net/core/filter.c
537
*insn++ = BPF_MOV64_IMM(BPF_REG_ARG4, offset);
net/core/filter.c
539
*insn++ = BPF_MOV64_REG(BPF_REG_ARG4, BPF_REG_X);
net/core/filter.c
541
*insn++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_ARG4, offset);
net/core/filter.c
546
*insn++ = BPF_EMIT_CALL(bpf_skb_load_helper_8);
net/core/filter.c
549
*insn++ = BPF_EMIT_CALL(bpf_skb_load_helper_16);
net/core/filter.c
552
*insn++ = BPF_EMIT_CALL(bpf_skb_load_helper_32);
net/core/filter.c
558
*insn++ = BPF_JMP_IMM(BPF_JSGE, BPF_REG_A, 0, 2);
net/core/filter.c
559
*insn++ = BPF_ALU32_REG(BPF_XOR, BPF_REG_A, BPF_REG_A);
net/core/filter.c
560
*insn = BPF_EXIT_INSN();
net/core/filter.c
562
*insnp = insn;
net/core/filter.c
646
struct bpf_insn *insn = tmp_insns;
net/core/filter.c
686
convert_bpf_extensions(fp, &insn))
net/core/filter.c
689
convert_bpf_ld_abs(fp, &insn)) {
net/core/filter.c
696
*insn++ = BPF_MOV32_REG(BPF_REG_X, BPF_REG_X);
net/core/filter.c
700
*insn++ = BPF_JMP_IMM(BPF_JNE, BPF_REG_X, 0, 2);
net/core/filter.c
701
*insn++ = BPF_ALU32_REG(BPF_XOR, BPF_REG_A, BPF_REG_A);
net/core/filter.c
702
*insn++ = BPF_EXIT_INSN();
net/core/filter.c
705
*insn = BPF_RAW_INSN(fp->code, BPF_REG_A, BPF_REG_X, 0, fp->k);
net/core/filter.c
723
off -= insn - tmp_insns; \
net/core/filter.c
727
insn->off = off; \
net/core/filter.c
732
insn->code = fp->code;
net/core/filter.c
7335
struct bpf_insn *insn = insn_buf;
net/core/filter.c
7341
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct tcp_sock, FIELD),\
net/core/filter.c
7351
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF( \
net/core/filter.c
7369
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
7450
return insn - insn_buf;
net/core/filter.c
749
*insn++ = BPF_MOV32_IMM(BPF_REG_TMP, fp->k);
net/core/filter.c
751
insn->dst_reg = BPF_REG_A;
net/core/filter.c
752
insn->src_reg = BPF_REG_TMP;
net/core/filter.c
7529
struct bpf_insn *insn = insn_buf;
net/core/filter.c
7535
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct xdp_sock, FIELD),\
net/core/filter.c
7548
return insn - insn_buf;
net/core/filter.c
755
insn->dst_reg = BPF_REG_A;
net/core/filter.c
756
insn->imm = fp->k;
net/core/filter.c
758
insn->src_reg = bpf_src == BPF_X ? BPF_REG_X : 0;
net/core/filter.c
763
insn->code = BPF_JMP | BPF_OP(fp->code) | bpf_src;
net/core/filter.c
773
insn->code = BPF_JMP | BPF_JNE | bpf_src;
net/core/filter.c
776
insn->code = BPF_JMP | BPF_JLE | bpf_src;
net/core/filter.c
779
insn->code = BPF_JMP | BPF_JLT | bpf_src;
net/core/filter.c
792
insn->code = BPF_JMP | BPF_OP(fp->code) | bpf_src;
net/core/filter.c
794
insn++;
net/core/filter.c
796
insn->code = BPF_JMP | BPF_JA;
net/core/filter.c
811
*insn++ = BPF_MOV64_REG(BPF_REG_X, BPF_REG_A);
net/core/filter.c
813
convert_bpf_ld_abs(&tmp, &insn);
net/core/filter.c
814
insn++;
net/core/filter.c
816
*insn++ = BPF_ALU32_IMM(BPF_AND, BPF_REG_A, 0xf);
net/core/filter.c
818
*insn++ = BPF_ALU32_IMM(BPF_LSH, BPF_REG_A, 2);
net/core/filter.c
820
*insn++ = BPF_MOV64_REG(BPF_REG_TMP, BPF_REG_X);
net/core/filter.c
822
*insn++ = BPF_MOV64_REG(BPF_REG_X, BPF_REG_A);
net/core/filter.c
824
*insn = BPF_MOV64_REG(BPF_REG_A, BPF_REG_TMP);
net/core/filter.c
833
*insn++ = BPF_MOV32_RAW(BPF_K, BPF_REG_0,
net/core/filter.c
835
*insn = BPF_EXIT_INSN();
net/core/filter.c
842
*insn = BPF_STX_MEM(BPF_W, BPF_REG_FP, BPF_CLASS(fp->code) ==
net/core/filter.c
857
*insn = BPF_LDX_MEM(BPF_W, BPF_CLASS(fp->code) == BPF_LD ?
net/core/filter.c
865
*insn = BPF_MOV32_IMM(BPF_CLASS(fp->code) == BPF_LD ?
net/core/filter.c
871
*insn = BPF_MOV64_REG(BPF_REG_X, BPF_REG_A);
net/core/filter.c
876
*insn = BPF_MOV64_REG(BPF_REG_A, BPF_REG_X);
net/core/filter.c
882
*insn = BPF_LDX_MEM(BPF_W, BPF_CLASS(fp->code) == BPF_LD ?
net/core/filter.c
890
*insn = BPF_LDX_MEM(BPF_W, BPF_REG_A, BPF_REG_CTX, fp->k);
net/core/filter.c
898
insn++;
net/core/filter.c
901
sizeof(*insn) * (insn - tmp_insns));
net/core/filter.c
902
new_insn += insn - tmp_insns;
net/core/filter.c
9077
struct bpf_insn *insn = insn_buf;
net/core/filter.c
9088
*insn++ = BPF_LDX_MEM(BPF_B, BPF_REG_6, BPF_REG_1, CLONED_OFFSET);
net/core/filter.c
9089
*insn++ = BPF_ALU32_IMM(BPF_AND, BPF_REG_6, CLONED_MASK);
net/core/filter.c
9090
*insn++ = BPF_JMP_IMM(BPF_JEQ, BPF_REG_6, 0, 7);
net/core/filter.c
9093
*insn++ = BPF_MOV64_REG(BPF_REG_6, BPF_REG_1);
net/core/filter.c
9094
*insn++ = BPF_ALU64_REG(BPF_XOR, BPF_REG_2, BPF_REG_2);
net/core/filter.c
9095
*insn++ = BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0,
net/core/filter.c
9101
*insn++ = BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2);
net/core/filter.c
9102
*insn++ = BPF_ALU32_IMM(BPF_MOV, BPF_REG_0, drop_verdict);
net/core/filter.c
9103
*insn++ = BPF_EXIT_INSN();
net/core/filter.c
9106
*insn++ = BPF_MOV64_REG(BPF_REG_1, BPF_REG_6);
net/core/filter.c
9108
*insn++ = prog->insnsi[0];
net/core/filter.c
9110
return insn - insn_buf;
net/core/filter.c
9117
struct bpf_insn *insn = insn_buf;
net/core/filter.c
9120
*insn++ = BPF_MOV64_IMM(BPF_REG_2, orig->imm);
net/core/filter.c
9122
*insn++ = BPF_MOV64_REG(BPF_REG_2, orig->src_reg);
net/core/filter.c
9124
*insn++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, orig->imm);
net/core/filter.c
9127
*insn++ = BPF_MOV64_REG(BPF_REG_1, BPF_REG_CTX);
net/core/filter.c
9131
*insn++ = BPF_EMIT_CALL(bpf_skb_load_helper_8_no_cache);
net/core/filter.c
9134
*insn++ = BPF_EMIT_CALL(bpf_skb_load_helper_16_no_cache);
net/core/filter.c
9137
*insn++ = BPF_EMIT_CALL(bpf_skb_load_helper_32_no_cache);
net/core/filter.c
9141
*insn++ = BPF_JMP_IMM(BPF_JSGE, BPF_REG_0, 0, 2);
net/core/filter.c
9142
*insn++ = BPF_ALU32_REG(BPF_XOR, BPF_REG_0, BPF_REG_0);
net/core/filter.c
9143
*insn++ = BPF_EXIT_INSN();
net/core/filter.c
9145
return insn - insn_buf;
net/core/filter.c
9621
struct bpf_insn *insn = insn_buf;
net/core/filter.c
9625
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_flow_dissector, data),
net/core/filter.c
9631
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_flow_dissector, data_end),
net/core/filter.c
9637
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct bpf_flow_dissector, flow_keys),
net/core/filter.c
9643
return insn - insn_buf;
net/core/filter.c
9647
struct bpf_insn *insn)
net/core/filter.c
9655
*insn++ = BPF_LDX_MEM(BPF_B, value_reg, skb_reg, SKB_BF_MONO_TC_OFFSET);
net/core/filter.c
9656
*insn++ = BPF_ALU32_IMM(BPF_AND, value_reg, SKB_TSTAMP_TYPE_MASK);
net/core/filter.c
9658
*insn++ = BPF_ALU32_IMM(BPF_RSH, value_reg, SKB_TSTAMP_TYPE_RSHIFT);
net/core/filter.c
9663
return insn;
net/core/filter.c
9667
struct bpf_insn *insn)
net/core/filter.c
9671
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, end),
net/core/filter.c
9674
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, head),
net/core/filter.c
9677
*insn++ = BPF_ALU64_REG(BPF_ADD, dst_reg, BPF_REG_AX);
net/core/filter.c
9679
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, end),
net/core/filter.c
9684
return insn;
net/core/filter.c
9689
struct bpf_insn *insn)
net/core/filter.c
9703
*insn++ = BPF_LDX_MEM(BPF_B, tmp_reg, skb_reg, SKB_BF_MONO_TC_OFFSET);
net/core/filter.c
9705
*insn++ = BPF_JMP32_IMM(BPF_JSET, tmp_reg, TC_AT_INGRESS_MASK, 1);
net/core/filter.c
9706
*insn++ = BPF_JMP_A(4);
net/core/filter.c
9707
*insn++ = BPF_JMP32_IMM(BPF_JSET, tmp_reg, SKB_TSTAMP_TYPE_MASK, 1);
net/core/filter.c
9708
*insn++ = BPF_JMP_A(2);
net/core/filter.c
9712
*insn++ = BPF_MOV64_IMM(value_reg, 0);
net/core/filter.c
9713
*insn++ = BPF_JMP_A(1);
net/core/filter.c
9717
*insn++ = BPF_LDX_MEM(BPF_DW, value_reg, skb_reg,
net/core/filter.c
9719
return insn;
net/core/filter.c
9724
struct bpf_insn *insn)
net/core/filter.c
9739
*insn++ = BPF_LDX_MEM(BPF_B, tmp_reg, skb_reg, SKB_BF_MONO_TC_OFFSET);
net/core/filter.c
9741
*insn++ = BPF_JMP32_IMM(BPF_JSET, tmp_reg, TC_AT_INGRESS_MASK, 1);
net/core/filter.c
9743
*insn++ = BPF_JMP_A(2);
net/core/filter.c
9745
*insn++ = BPF_ALU32_IMM(BPF_AND, tmp_reg, ~SKB_TSTAMP_TYPE_MASK);
net/core/filter.c
9746
*insn++ = BPF_STX_MEM(BPF_B, skb_reg, tmp_reg, SKB_BF_MONO_TC_OFFSET);
net/core/filter.c
9751
*insn++ = BPF_RAW_INSN(BPF_CLASS(si->code) | BPF_DW | BPF_MEM,
net/core/filter.c
9753
return insn;
net/core/filter.c
9765
struct bpf_insn *insn = insn_buf;
net/core/filter.c
9770
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
9776
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
net/core/filter.c
9782
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
net/core/filter.c
9789
*insn++ = BPF_EMIT_STORE(BPF_W, si,
net/core/filter.c
9793
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
9799
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
9805
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, dev),
net/core/filter.c
9808
*insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
net/core/filter.c
9809
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
9815
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
9822
*insn++ = BPF_EMIT_STORE(BPF_W, si,
net/core/filter.c
9826
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
9833
*insn++ = BPF_LDX_MEM(BPF_B, si->dst_reg, si->src_reg,
net/core/filter.c
9835
*insn++ = BPF_ALU32_IMM(BPF_AND, si->dst_reg, PKT_TYPE_MAX);
net/core/filter.c
9837
*insn++ = BPF_ALU32_IMM(BPF_RSH, si->dst_reg, 5);
net/core/filter.c
9846
*insn++ = BPF_JMP_A(0); /* noop */
net/core/filter.c
9851
*insn++ = BPF_JMP_IMM(BPF_JGE, si->src_reg, NO_QUEUE_MAPPING, 1);
net/core/filter.c
9852
*insn++ = BPF_EMIT_STORE(BPF_H, si, offset);
net/core/filter.c
9854
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
net/core/filter.c
9862
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
9865
*insn++ = BPF_JMP_IMM(BPF_JEQ, si->dst_reg, 0, 1);
net/core/filter.c
9866
*insn++ = BPF_ALU32_IMM(BPF_MOV, si->dst_reg, 1);
net/core/filter.c
9870
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
net/core/filter.c
9888
*insn++ = BPF_EMIT_STORE(BPF_SIZE(si->code), si, off);
net/core/filter.c
9890
*insn++ = BPF_LDX_MEM(BPF_SIZE(si->code), si->dst_reg,
net/core/filter.c
9903
*insn++ = BPF_EMIT_STORE(BPF_H, si, off);
net/core/filter.c
9905
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg,
net/core/filter.c
9910
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, data),
net/core/filter.c
9920
*insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg,
net/core/filter.c
9929
*insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg,
net/core/filter.c
9936
*insn++ = BPF_EMIT_STORE(BPF_H, si,
net/core/filter.c
9940
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->src_reg,
net/core/filter.c
9946
*insn++ = BPF_MOV64_REG(si->dst_reg, si->dst_reg);
net/core/filter.c
9948
*insn++ = BPF_MOV64_IMM(si->dst_reg, 0);
net/core/filter.c
9954
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->src_reg,
net/core/filter.c
9957
*insn++ = BPF_JMP_IMM(BPF_JGE, si->dst_reg, MIN_NAPI_ID, 1);
net/core/filter.c
9958
*insn++ = BPF_MOV64_IMM(si->dst_reg, 0);
net/core/filter.c
9961
*insn++ = BPF_MOV64_IMM(si->dst_reg, 0);
net/core/filter.c
9967
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, sk),
net/core/filter.c
9970
*insn++ = BPF_LDX_MEM(BPF_H, si->dst_reg, si->dst_reg,
net/core/filter.c
9978
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, sk),
net/core/filter.c
9981
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/core/filter.c
9990
*insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, sk),
net/core/filter.c
9993
*insn++ = BPF_LDX_MEM(BPF_W, si->dst_reg, si->dst_reg,
net/sched/bpf_qdisc.c
138
struct bpf_insn *insn = insn_buf;
net/sched/bpf_qdisc.c
151
*insn++ = BPF_MOV64_REG(BPF_REG_6, BPF_REG_1);
net/sched/bpf_qdisc.c
152
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_2, BPF_REG_1, 16);
net/sched/bpf_qdisc.c
153
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_1, 0);
net/sched/bpf_qdisc.c
154
*insn++ = BPF_CALL_KFUNC(0, bpf_qdisc_init_prologue_ids[0]);
net/sched/bpf_qdisc.c
155
*insn++ = BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 1);
net/sched/bpf_qdisc.c
156
*insn++ = BPF_EXIT_INSN();
net/sched/bpf_qdisc.c
157
*insn++ = BPF_MOV64_REG(BPF_REG_1, BPF_REG_6);
net/sched/bpf_qdisc.c
158
*insn++ = prog->insnsi[0];
net/sched/bpf_qdisc.c
160
return insn - insn_buf;
net/sched/bpf_qdisc.c
168
struct bpf_insn *insn = insn_buf;
net/sched/bpf_qdisc.c
179
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_FP, ctx_stack_off);
net/sched/bpf_qdisc.c
180
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_1, 0);
net/sched/bpf_qdisc.c
181
*insn++ = BPF_CALL_KFUNC(0, bpf_qdisc_reset_destroy_epilogue_ids[0]);
net/sched/bpf_qdisc.c
182
*insn++ = BPF_EXIT_INSN();
net/sched/bpf_qdisc.c
184
return insn - insn_buf;
net/xdp/xskmap.c
124
struct bpf_insn *insn = insn_buf;
net/xdp/xskmap.c
126
*insn++ = BPF_LDX_MEM(BPF_W, ret, index, 0);
net/xdp/xskmap.c
127
*insn++ = BPF_JMP_IMM(BPF_JGE, ret, map->max_entries, 5);
net/xdp/xskmap.c
128
*insn++ = BPF_ALU64_IMM(BPF_LSH, ret, ilog2(sizeof(struct xsk_sock *)));
net/xdp/xskmap.c
129
*insn++ = BPF_ALU64_IMM(BPF_ADD, mp, offsetof(struct xsk_map, xsk_map));
net/xdp/xskmap.c
130
*insn++ = BPF_ALU64_REG(BPF_ADD, ret, mp);
net/xdp/xskmap.c
131
*insn++ = BPF_LDX_MEM(BPF_SIZEOF(struct xsk_sock *), ret, ret, 0);
net/xdp/xskmap.c
132
*insn++ = BPF_JMP_IMM(BPF_JA, 0, 0, 1);
net/xdp/xskmap.c
133
*insn++ = BPF_MOV64_IMM(ret, 0);
net/xdp/xskmap.c
134
return insn - insn_buf;
scripts/gcc-plugins/gcc-common.h
188
#define INSN_DELETED_P(insn) (insn)->deleted()
scripts/gcc-plugins/stackleak_plugin.c
270
rtx_insn *insn, *next;
scripts/gcc-plugins/stackleak_plugin.c
283
for (insn = get_insns(); insn; insn = next) {
scripts/gcc-plugins/stackleak_plugin.c
286
next = NEXT_INSN(insn);
scripts/gcc-plugins/stackleak_plugin.c
289
if (!CALL_P(insn))
scripts/gcc-plugins/stackleak_plugin.c
297
body = PATTERN(insn);
scripts/gcc-plugins/stackleak_plugin.c
322
delete_insn_and_edges(insn);
scripts/gcc-plugins/stackleak_plugin.c
326
insn = next;
scripts/gcc-plugins/stackleak_plugin.c
327
next = NEXT_INSN(insn);
scripts/gcc-plugins/stackleak_plugin.c
328
delete_insn_and_edges(insn);
scripts/gcc-plugins/stackleak_plugin.c
337
rtx_insn *insn, *next;
scripts/gcc-plugins/stackleak_plugin.c
353
for (insn = get_insns(); insn; insn = next) {
scripts/gcc-plugins/stackleak_plugin.c
356
next = NEXT_INSN(insn);
scripts/gcc-plugins/stackleak_plugin.c
359
if (!NONJUMP_INSN_P(insn))
scripts/gcc-plugins/stackleak_plugin.c
367
body = PATTERN(insn);
scripts/gcc-plugins/stackleak_plugin.c
382
delete_insn_and_edges(insn);
tools/arch/loongarch/include/asm/inst.h
160
static inline void emit_##NAME(union loongarch_instruction *insn, \
tools/arch/loongarch/include/asm/inst.h
165
insn->reg2i16_format.opcode = OP; \
tools/arch/loongarch/include/asm/inst.h
166
insn->reg2i16_format.immediate = offset; \
tools/arch/loongarch/include/asm/inst.h
167
insn->reg2i16_format.rj = rj; \
tools/arch/loongarch/include/asm/inst.h
168
insn->reg2i16_format.rd = rd; \
tools/arch/s390/include/uapi/asm/sie.h
230
#define INSN_DECODE_IPA0(ipa0, insn, rshift, mask) \
tools/arch/s390/include/uapi/asm/sie.h
231
(insn >> 56) == (ipa0) ? \
tools/arch/s390/include/uapi/asm/sie.h
232
((ipa0 << 8) | ((insn >> rshift) & mask)) :
tools/arch/s390/include/uapi/asm/sie.h
234
#define INSN_DECODE(insn) (insn >> 56)
tools/arch/s390/include/uapi/asm/sie.h
241
#define icpt_insn_decoder(insn) ( \
tools/arch/s390/include/uapi/asm/sie.h
242
INSN_DECODE_IPA0(0x01, insn, 48, 0xff) \
tools/arch/s390/include/uapi/asm/sie.h
243
INSN_DECODE_IPA0(0xaa, insn, 48, 0x0f) \
tools/arch/s390/include/uapi/asm/sie.h
244
INSN_DECODE_IPA0(0xb2, insn, 48, 0xff) \
tools/arch/s390/include/uapi/asm/sie.h
245
INSN_DECODE_IPA0(0xb9, insn, 48, 0xff) \
tools/arch/s390/include/uapi/asm/sie.h
246
INSN_DECODE_IPA0(0xe3, insn, 48, 0xff) \
tools/arch/s390/include/uapi/asm/sie.h
247
INSN_DECODE_IPA0(0xe5, insn, 48, 0xff) \
tools/arch/s390/include/uapi/asm/sie.h
248
INSN_DECODE_IPA0(0xeb, insn, 16, 0xff) \
tools/arch/s390/include/uapi/asm/sie.h
249
INSN_DECODE_IPA0(0xc8, insn, 48, 0x0f) \
tools/arch/s390/include/uapi/asm/sie.h
250
INSN_DECODE(insn))
tools/arch/x86/include/asm/insn.h
153
extern void insn_init(struct insn *insn, const void *kaddr, int buf_len, int x86_64);
tools/arch/x86/include/asm/insn.h
154
extern int insn_get_prefixes(struct insn *insn);
tools/arch/x86/include/asm/insn.h
155
extern int insn_get_opcode(struct insn *insn);
tools/arch/x86/include/asm/insn.h
156
extern int insn_get_modrm(struct insn *insn);
tools/arch/x86/include/asm/insn.h
157
extern int insn_get_sib(struct insn *insn);
tools/arch/x86/include/asm/insn.h
158
extern int insn_get_displacement(struct insn *insn);
tools/arch/x86/include/asm/insn.h
159
extern int insn_get_immediate(struct insn *insn);
tools/arch/x86/include/asm/insn.h
160
extern int insn_get_length(struct insn *insn);
tools/arch/x86/include/asm/insn.h
170
extern int insn_decode(struct insn *insn, const void *kaddr, int buf_len, enum insn_mode m);
tools/arch/x86/include/asm/insn.h
175
static inline void insn_get_attribute(struct insn *insn)
tools/arch/x86/include/asm/insn.h
177
insn_get_modrm(insn);
tools/arch/x86/include/asm/insn.h
181
extern int insn_rip_relative(struct insn *insn);
tools/arch/x86/include/asm/insn.h
183
static inline int insn_is_rex2(struct insn *insn)
tools/arch/x86/include/asm/insn.h
185
if (!insn->prefixes.got)
tools/arch/x86/include/asm/insn.h
186
insn_get_prefixes(insn);
tools/arch/x86/include/asm/insn.h
187
return insn->rex_prefix.nbytes == 2;
tools/arch/x86/include/asm/insn.h
190
static inline insn_byte_t insn_rex2_m_bit(struct insn *insn)
tools/arch/x86/include/asm/insn.h
192
return X86_REX2_M(insn->rex_prefix.bytes[1]);
tools/arch/x86/include/asm/insn.h
195
static inline int insn_is_avx_or_xop(struct insn *insn)
tools/arch/x86/include/asm/insn.h
197
if (!insn->prefixes.got)
tools/arch/x86/include/asm/insn.h
198
insn_get_prefixes(insn);
tools/arch/x86/include/asm/insn.h
199
return (insn->vex_prefix.value != 0);
tools/arch/x86/include/asm/insn.h
202
static inline int insn_is_evex(struct insn *insn)
tools/arch/x86/include/asm/insn.h
204
if (!insn->prefixes.got)
tools/arch/x86/include/asm/insn.h
205
insn_get_prefixes(insn);
tools/arch/x86/include/asm/insn.h
206
return (insn->vex_prefix.nbytes == 4);
tools/arch/x86/include/asm/insn.h
210
static inline int avx_insn_is_xop(struct insn *insn)
tools/arch/x86/include/asm/insn.h
212
insn_attr_t attr = inat_get_opcode_attribute(insn->vex_prefix.bytes[0]);
tools/arch/x86/include/asm/insn.h
217
static inline int insn_is_xop(struct insn *insn)
tools/arch/x86/include/asm/insn.h
219
if (!insn_is_avx_or_xop(insn))
tools/arch/x86/include/asm/insn.h
222
return avx_insn_is_xop(insn);
tools/arch/x86/include/asm/insn.h
225
static inline int insn_has_emulate_prefix(struct insn *insn)
tools/arch/x86/include/asm/insn.h
227
return !!insn->emulate_prefix_size;
tools/arch/x86/include/asm/insn.h
230
static inline insn_byte_t insn_vex_m_bits(struct insn *insn)
tools/arch/x86/include/asm/insn.h
232
if (insn->vex_prefix.nbytes == 2) /* 2 bytes VEX */
tools/arch/x86/include/asm/insn.h
234
else if (insn->vex_prefix.nbytes == 3) /* 3 bytes VEX */
tools/arch/x86/include/asm/insn.h
235
return X86_VEX3_M(insn->vex_prefix.bytes[1]);
tools/arch/x86/include/asm/insn.h
237
return X86_EVEX_M(insn->vex_prefix.bytes[1]);
tools/arch/x86/include/asm/insn.h
240
static inline insn_byte_t insn_vex_p_bits(struct insn *insn)
tools/arch/x86/include/asm/insn.h
242
if (insn->vex_prefix.nbytes == 2) /* 2 bytes VEX */
tools/arch/x86/include/asm/insn.h
243
return X86_VEX_P(insn->vex_prefix.bytes[1]);
tools/arch/x86/include/asm/insn.h
245
return X86_VEX_P(insn->vex_prefix.bytes[2]);
tools/arch/x86/include/asm/insn.h
248
static inline insn_byte_t insn_vex_w_bit(struct insn *insn)
tools/arch/x86/include/asm/insn.h
250
if (insn->vex_prefix.nbytes < 3)
tools/arch/x86/include/asm/insn.h
252
return X86_VEX_W(insn->vex_prefix.bytes[2]);
tools/arch/x86/include/asm/insn.h
255
static inline insn_byte_t insn_xop_map_bits(struct insn *insn)
tools/arch/x86/include/asm/insn.h
257
if (insn->xop_prefix.nbytes < 3) /* XOP is 3 bytes */
tools/arch/x86/include/asm/insn.h
259
return X86_XOP_M(insn->xop_prefix.bytes[1]);
tools/arch/x86/include/asm/insn.h
262
static inline insn_byte_t insn_xop_p_bits(struct insn *insn)
tools/arch/x86/include/asm/insn.h
264
return X86_XOP_P(insn->vex_prefix.bytes[2]);
tools/arch/x86/include/asm/insn.h
268
static inline int insn_last_prefix_id(struct insn *insn)
tools/arch/x86/include/asm/insn.h
270
if (insn_is_avx_or_xop(insn)) {
tools/arch/x86/include/asm/insn.h
271
if (avx_insn_is_xop(insn))
tools/arch/x86/include/asm/insn.h
272
return insn_xop_p_bits(insn);
tools/arch/x86/include/asm/insn.h
273
return insn_vex_p_bits(insn); /* VEX_p is a SIMD prefix id */
tools/arch/x86/include/asm/insn.h
276
if (insn->prefixes.bytes[3])
tools/arch/x86/include/asm/insn.h
277
return inat_get_last_prefix_id(insn->prefixes.bytes[3]);
tools/arch/x86/include/asm/insn.h
283
static inline int insn_offset_rex_prefix(struct insn *insn)
tools/arch/x86/include/asm/insn.h
285
return insn->prefixes.nbytes;
tools/arch/x86/include/asm/insn.h
287
static inline int insn_offset_vex_prefix(struct insn *insn)
tools/arch/x86/include/asm/insn.h
289
return insn_offset_rex_prefix(insn) + insn->rex_prefix.nbytes;
tools/arch/x86/include/asm/insn.h
291
static inline int insn_offset_opcode(struct insn *insn)
tools/arch/x86/include/asm/insn.h
293
return insn_offset_vex_prefix(insn) + insn->vex_prefix.nbytes;
tools/arch/x86/include/asm/insn.h
295
static inline int insn_offset_modrm(struct insn *insn)
tools/arch/x86/include/asm/insn.h
297
return insn_offset_opcode(insn) + insn->opcode.nbytes;
tools/arch/x86/include/asm/insn.h
299
static inline int insn_offset_sib(struct insn *insn)
tools/arch/x86/include/asm/insn.h
301
return insn_offset_modrm(insn) + insn->modrm.nbytes;
tools/arch/x86/include/asm/insn.h
303
static inline int insn_offset_displacement(struct insn *insn)
tools/arch/x86/include/asm/insn.h
305
return insn_offset_sib(insn) + insn->sib.nbytes;
tools/arch/x86/include/asm/insn.h
307
static inline int insn_offset_immediate(struct insn *insn)
tools/arch/x86/include/asm/insn.h
309
return insn_offset_displacement(insn) + insn->displacement.nbytes;
tools/arch/x86/include/asm/insn.h
323
#define for_each_insn_prefix(insn, prefix) \
tools/arch/x86/include/asm/insn.h
324
for (int idx = 0; idx < ARRAY_SIZE(insn->prefixes.bytes) && (prefix = insn->prefixes.bytes[idx]) != 0; idx++)
tools/arch/x86/include/asm/insn.h
337
static inline int insn_masking_exception(struct insn *insn)
tools/arch/x86/include/asm/insn.h
339
return insn->opcode.bytes[0] == POP_SS_OPCODE ||
tools/arch/x86/include/asm/insn.h
340
(insn->opcode.bytes[0] == MOV_SREG_OPCODE &&
tools/arch/x86/include/asm/insn.h
341
X86_MODRM_REG(insn->modrm.bytes[0]) == 2);
tools/arch/x86/lib/insn.c
104
static void insn_get_emulate_prefix(struct insn *insn)
tools/arch/x86/lib/insn.c
106
if (__insn_get_emulate_prefix(insn, xen_prefix, sizeof(xen_prefix)))
tools/arch/x86/lib/insn.c
109
__insn_get_emulate_prefix(insn, kvm_prefix, sizeof(kvm_prefix));
tools/arch/x86/lib/insn.c
124
int insn_get_prefixes(struct insn *insn)
tools/arch/x86/lib/insn.c
126
struct insn_field *prefixes = &insn->prefixes;
tools/arch/x86/lib/insn.c
134
insn_get_emulate_prefix(insn);
tools/arch/x86/lib/insn.c
138
b = peek_next(insn_byte_t, insn);
tools/arch/x86/lib/insn.c
151
if (insn->x86_64)
tools/arch/x86/lib/insn.c
152
insn->addr_bytes ^= 12;
tools/arch/x86/lib/insn.c
154
insn->addr_bytes ^= 6;
tools/arch/x86/lib/insn.c
157
insn->opnd_bytes ^= 6;
tools/arch/x86/lib/insn.c
161
insn->next_byte++;
tools/arch/x86/lib/insn.c
163
b = peek_next(insn_byte_t, insn);
tools/arch/x86/lib/insn.c
167
if (lb && lb != insn->prefixes.bytes[3]) {
tools/arch/x86/lib/insn.c
168
if (unlikely(insn->prefixes.bytes[3])) {
tools/arch/x86/lib/insn.c
170
b = insn->prefixes.bytes[3];
tools/arch/x86/lib/insn.c
175
insn_set_byte(&insn->prefixes, 3, lb);
tools/arch/x86/lib/insn.c
179
if (insn->x86_64) {
tools/arch/x86/lib/insn.c
180
b = peek_next(insn_byte_t, insn);
tools/arch/x86/lib/insn.c
183
insn_field_set(&insn->rex_prefix, b, 1);
tools/arch/x86/lib/insn.c
184
insn->next_byte++;
tools/arch/x86/lib/insn.c
187
insn->opnd_bytes = 8;
tools/arch/x86/lib/insn.c
189
insn_set_byte(&insn->rex_prefix, 0, b);
tools/arch/x86/lib/insn.c
190
b = peek_nbyte_next(insn_byte_t, insn, 1);
tools/arch/x86/lib/insn.c
191
insn_set_byte(&insn->rex_prefix, 1, b);
tools/arch/x86/lib/insn.c
192
insn->rex_prefix.nbytes = 2;
tools/arch/x86/lib/insn.c
193
insn->next_byte += 2;
tools/arch/x86/lib/insn.c
196
insn->opnd_bytes = 8;
tools/arch/x86/lib/insn.c
197
insn->rex_prefix.got = 1;
tools/arch/x86/lib/insn.c
201
insn->rex_prefix.got = 1;
tools/arch/x86/lib/insn.c
204
b = peek_next(insn_byte_t, insn);
tools/arch/x86/lib/insn.c
206
insn_byte_t b2 = peek_nbyte_next(insn_byte_t, insn, 1);
tools/arch/x86/lib/insn.c
211
} else if (!insn->x86_64) {
tools/arch/x86/lib/insn.c
220
insn_set_byte(&insn->vex_prefix, 0, b);
tools/arch/x86/lib/insn.c
221
insn_set_byte(&insn->vex_prefix, 1, b2);
tools/arch/x86/lib/insn.c
223
b2 = peek_nbyte_next(insn_byte_t, insn, 2);
tools/arch/x86/lib/insn.c
224
insn_set_byte(&insn->vex_prefix, 2, b2);
tools/arch/x86/lib/insn.c
225
b2 = peek_nbyte_next(insn_byte_t, insn, 3);
tools/arch/x86/lib/insn.c
226
insn_set_byte(&insn->vex_prefix, 3, b2);
tools/arch/x86/lib/insn.c
227
insn->vex_prefix.nbytes = 4;
tools/arch/x86/lib/insn.c
228
insn->next_byte += 4;
tools/arch/x86/lib/insn.c
229
if (insn->x86_64 && X86_VEX_W(b2))
tools/arch/x86/lib/insn.c
231
insn->opnd_bytes = 8;
tools/arch/x86/lib/insn.c
233
b2 = peek_nbyte_next(insn_byte_t, insn, 2);
tools/arch/x86/lib/insn.c
234
insn_set_byte(&insn->vex_prefix, 2, b2);
tools/arch/x86/lib/insn.c
235
insn->vex_prefix.nbytes = 3;
tools/arch/x86/lib/insn.c
236
insn->next_byte += 3;
tools/arch/x86/lib/insn.c
237
if (insn->x86_64 && X86_VEX_W(b2))
tools/arch/x86/lib/insn.c
239
insn->opnd_bytes = 8;
tools/arch/x86/lib/insn.c
246
insn_set_byte(&insn->vex_prefix, 2, b2 & 0x7f);
tools/arch/x86/lib/insn.c
247
insn->vex_prefix.nbytes = 2;
tools/arch/x86/lib/insn.c
248
insn->next_byte += 2;
tools/arch/x86/lib/insn.c
252
insn->vex_prefix.got = 1;
tools/arch/x86/lib/insn.c
276
int insn_get_opcode(struct insn *insn)
tools/arch/x86/lib/insn.c
278
struct insn_field *opcode = &insn->opcode;
tools/arch/x86/lib/insn.c
285
ret = insn_get_prefixes(insn);
tools/arch/x86/lib/insn.c
290
op = get_next(insn_byte_t, insn);
tools/arch/x86/lib/insn.c
295
if (insn_is_avx_or_xop(insn)) {
tools/arch/x86/lib/insn.c
299
if (unlikely(avx_insn_is_xop(insn))) {
tools/arch/x86/lib/insn.c
300
m = insn_xop_map_bits(insn);
tools/arch/x86/lib/insn.c
301
insn->attr = inat_get_xop_attribute(op, m);
tools/arch/x86/lib/insn.c
302
if (!inat_accept_xop(insn->attr)) {
tools/arch/x86/lib/insn.c
303
insn->attr = 0;
tools/arch/x86/lib/insn.c
310
m = insn_vex_m_bits(insn);
tools/arch/x86/lib/insn.c
311
p = insn_vex_p_bits(insn);
tools/arch/x86/lib/insn.c
312
insn->attr = inat_get_avx_attribute(op, m, p);
tools/arch/x86/lib/insn.c
314
if (inat_evex_scalable(insn->attr) && !insn_vex_w_bit(insn) &&
tools/arch/x86/lib/insn.c
316
insn->opnd_bytes = 2;
tools/arch/x86/lib/insn.c
317
if ((inat_must_evex(insn->attr) && !insn_is_evex(insn)) ||
tools/arch/x86/lib/insn.c
318
(!inat_accept_vex(insn->attr) &&
tools/arch/x86/lib/insn.c
319
!inat_is_group(insn->attr))) {
tools/arch/x86/lib/insn.c
321
insn->attr = 0;
tools/arch/x86/lib/insn.c
329
if (insn_is_rex2(insn)) {
tools/arch/x86/lib/insn.c
330
if (insn_rex2_m_bit(insn)) {
tools/arch/x86/lib/insn.c
334
pfx_id = insn_last_prefix_id(insn);
tools/arch/x86/lib/insn.c
335
insn->attr = inat_get_escape_attribute(op, pfx_id, esc_attr);
tools/arch/x86/lib/insn.c
337
insn->attr = inat_get_opcode_attribute(op);
tools/arch/x86/lib/insn.c
342
insn->attr = inat_get_opcode_attribute(op);
tools/arch/x86/lib/insn.c
343
if (insn->x86_64 && inat_is_invalid64(insn->attr)) {
tools/arch/x86/lib/insn.c
345
insn->attr &= INAT_INV64;
tools/arch/x86/lib/insn.c
348
while (inat_is_escape(insn->attr)) {
tools/arch/x86/lib/insn.c
350
op = get_next(insn_byte_t, insn);
tools/arch/x86/lib/insn.c
352
pfx_id = insn_last_prefix_id(insn);
tools/arch/x86/lib/insn.c
353
insn->attr = inat_get_escape_attribute(op, pfx_id, insn->attr);
tools/arch/x86/lib/insn.c
356
if (inat_must_vex(insn->attr)) {
tools/arch/x86/lib/insn.c
358
insn->attr = 0;
tools/arch/x86/lib/insn.c
37
#define validate_next(t, insn, n) \
tools/arch/x86/lib/insn.c
38
((insn)->next_byte + sizeof(t) + n <= (insn)->end_kaddr)
tools/arch/x86/lib/insn.c
382
int insn_get_modrm(struct insn *insn)
tools/arch/x86/lib/insn.c
384
struct insn_field *modrm = &insn->modrm;
tools/arch/x86/lib/insn.c
391
ret = insn_get_opcode(insn);
tools/arch/x86/lib/insn.c
395
if (inat_has_modrm(insn->attr)) {
tools/arch/x86/lib/insn.c
396
mod = get_next(insn_byte_t, insn);
tools/arch/x86/lib/insn.c
398
if (inat_is_group(insn->attr)) {
tools/arch/x86/lib/insn.c
399
pfx_id = insn_last_prefix_id(insn);
tools/arch/x86/lib/insn.c
40
#define __get_next(t, insn) \
tools/arch/x86/lib/insn.c
400
insn->attr = inat_get_group_attribute(mod, pfx_id,
tools/arch/x86/lib/insn.c
401
insn->attr);
tools/arch/x86/lib/insn.c
402
if (insn_is_avx_or_xop(insn) && !inat_accept_vex(insn->attr) &&
tools/arch/x86/lib/insn.c
403
!inat_accept_xop(insn->attr)) {
tools/arch/x86/lib/insn.c
405
insn->attr = 0;
tools/arch/x86/lib/insn.c
41
({ t r = get_unaligned((t *)(insn)->next_byte); (insn)->next_byte += sizeof(t); leXX_to_cpu(t, r); })
tools/arch/x86/lib/insn.c
411
if (insn->x86_64 && inat_is_force64(insn->attr))
tools/arch/x86/lib/insn.c
412
insn->opnd_bytes = 8;
tools/arch/x86/lib/insn.c
429
int insn_rip_relative(struct insn *insn)
tools/arch/x86/lib/insn.c
43
#define __peek_nbyte_next(t, insn, n) \
tools/arch/x86/lib/insn.c
431
struct insn_field *modrm = &insn->modrm;
tools/arch/x86/lib/insn.c
434
if (!insn->x86_64)
tools/arch/x86/lib/insn.c
437
ret = insn_get_modrm(insn);
tools/arch/x86/lib/insn.c
44
({ t r = get_unaligned((t *)(insn)->next_byte + n); leXX_to_cpu(t, r); })
tools/arch/x86/lib/insn.c
458
int insn_get_sib(struct insn *insn)
tools/arch/x86/lib/insn.c
46
#define get_next(t, insn) \
tools/arch/x86/lib/insn.c
463
if (insn->sib.got)
tools/arch/x86/lib/insn.c
466
ret = insn_get_modrm(insn);
tools/arch/x86/lib/insn.c
47
({ if (unlikely(!validate_next(t, insn, 0))) goto err_out; __get_next(t, insn); })
tools/arch/x86/lib/insn.c
470
if (insn->modrm.nbytes) {
tools/arch/x86/lib/insn.c
471
modrm = insn->modrm.bytes[0];
tools/arch/x86/lib/insn.c
472
if (insn->addr_bytes != 2 &&
tools/arch/x86/lib/insn.c
474
insn_field_set(&insn->sib,
tools/arch/x86/lib/insn.c
475
get_next(insn_byte_t, insn), 1);
tools/arch/x86/lib/insn.c
478
insn->sib.got = 1;
tools/arch/x86/lib/insn.c
49
#define peek_nbyte_next(t, insn, n) \
tools/arch/x86/lib/insn.c
499
int insn_get_displacement(struct insn *insn)
tools/arch/x86/lib/insn.c
50
({ if (unlikely(!validate_next(t, insn, n))) goto err_out; __peek_nbyte_next(t, insn, n); })
tools/arch/x86/lib/insn.c
504
if (insn->displacement.got)
tools/arch/x86/lib/insn.c
507
ret = insn_get_sib(insn);
tools/arch/x86/lib/insn.c
511
if (insn->modrm.nbytes) {
tools/arch/x86/lib/insn.c
52
#define peek_next(t, insn) peek_nbyte_next(t, insn, 0)
tools/arch/x86/lib/insn.c
529
mod = X86_MODRM_MOD(insn->modrm.value);
tools/arch/x86/lib/insn.c
530
rm = X86_MODRM_RM(insn->modrm.value);
tools/arch/x86/lib/insn.c
531
base = X86_SIB_BASE(insn->sib.value);
tools/arch/x86/lib/insn.c
535
insn_field_set(&insn->displacement,
tools/arch/x86/lib/insn.c
536
get_next(signed char, insn), 1);
tools/arch/x86/lib/insn.c
537
} else if (insn->addr_bytes == 2) {
tools/arch/x86/lib/insn.c
539
insn_field_set(&insn->displacement,
tools/arch/x86/lib/insn.c
540
get_next(short, insn), 2);
tools/arch/x86/lib/insn.c
545
insn_field_set(&insn->displacement,
tools/arch/x86/lib/insn.c
546
get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
551
insn->displacement.got = 1;
tools/arch/x86/lib/insn.c
559
static int __get_moffset(struct insn *insn)
tools/arch/x86/lib/insn.c
561
switch (insn->addr_bytes) {
tools/arch/x86/lib/insn.c
563
insn_field_set(&insn->moffset1, get_next(short, insn), 2);
tools/arch/x86/lib/insn.c
566
insn_field_set(&insn->moffset1, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
569
insn_field_set(&insn->moffset1, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
570
insn_field_set(&insn->moffset2, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
575
insn->moffset1.got = insn->moffset2.got = 1;
tools/arch/x86/lib/insn.c
584
static int __get_immv32(struct insn *insn)
tools/arch/x86/lib/insn.c
586
switch (insn->opnd_bytes) {
tools/arch/x86/lib/insn.c
588
insn_field_set(&insn->immediate, get_next(short, insn), 2);
tools/arch/x86/lib/insn.c
592
insn_field_set(&insn->immediate, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
605
static int __get_immv(struct insn *insn)
tools/arch/x86/lib/insn.c
607
switch (insn->opnd_bytes) {
tools/arch/x86/lib/insn.c
609
insn_field_set(&insn->immediate1, get_next(short, insn), 2);
tools/arch/x86/lib/insn.c
61
void insn_init(struct insn *insn, const void *kaddr, int buf_len, int x86_64)
tools/arch/x86/lib/insn.c
612
insn_field_set(&insn->immediate1, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
613
insn->immediate1.nbytes = 4;
tools/arch/x86/lib/insn.c
616
insn_field_set(&insn->immediate1, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
617
insn_field_set(&insn->immediate2, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
622
insn->immediate1.got = insn->immediate2.got = 1;
tools/arch/x86/lib/insn.c
630
static int __get_immptr(struct insn *insn)
tools/arch/x86/lib/insn.c
632
switch (insn->opnd_bytes) {
tools/arch/x86/lib/insn.c
634
insn_field_set(&insn->immediate1, get_next(short, insn), 2);
tools/arch/x86/lib/insn.c
637
insn_field_set(&insn->immediate1, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
645
insn_field_set(&insn->immediate2, get_next(unsigned short, insn), 2);
tools/arch/x86/lib/insn.c
646
insn->immediate1.got = insn->immediate2.got = 1;
tools/arch/x86/lib/insn.c
666
int insn_get_immediate(struct insn *insn)
tools/arch/x86/lib/insn.c
670
if (insn->immediate.got)
tools/arch/x86/lib/insn.c
673
ret = insn_get_displacement(insn);
tools/arch/x86/lib/insn.c
677
if (inat_has_moffset(insn->attr)) {
tools/arch/x86/lib/insn.c
678
if (!__get_moffset(insn))
tools/arch/x86/lib/insn.c
683
if (!inat_has_immediate(insn->attr))
tools/arch/x86/lib/insn.c
686
switch (inat_immediate_size(insn->attr)) {
tools/arch/x86/lib/insn.c
688
insn_field_set(&insn->immediate, get_next(signed char, insn), 1);
tools/arch/x86/lib/insn.c
691
insn_field_set(&insn->immediate, get_next(short, insn), 2);
tools/arch/x86/lib/insn.c
694
insn_field_set(&insn->immediate, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
697
insn_field_set(&insn->immediate1, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
698
insn_field_set(&insn->immediate2, get_next(int, insn), 4);
tools/arch/x86/lib/insn.c
70
memset(insn, 0, sizeof(*insn));
tools/arch/x86/lib/insn.c
701
if (!__get_immptr(insn))
tools/arch/x86/lib/insn.c
705
if (!__get_immv32(insn))
tools/arch/x86/lib/insn.c
709
if (!__get_immv(insn))
tools/arch/x86/lib/insn.c
71
insn->kaddr = kaddr;
tools/arch/x86/lib/insn.c
716
if (inat_has_second_immediate(insn->attr)) {
tools/arch/x86/lib/insn.c
717
insn_field_set(&insn->immediate2, get_next(signed char, insn), 1);
tools/arch/x86/lib/insn.c
72
insn->end_kaddr = kaddr + buf_len;
tools/arch/x86/lib/insn.c
720
insn->immediate.got = 1;
tools/arch/x86/lib/insn.c
73
insn->next_byte = kaddr;
tools/arch/x86/lib/insn.c
738
int insn_get_length(struct insn *insn)
tools/arch/x86/lib/insn.c
74
insn->x86_64 = x86_64;
tools/arch/x86/lib/insn.c
742
if (insn->length)
tools/arch/x86/lib/insn.c
745
ret = insn_get_immediate(insn);
tools/arch/x86/lib/insn.c
749
insn->length = (unsigned char)((unsigned long)insn->next_byte
tools/arch/x86/lib/insn.c
75
insn->opnd_bytes = 4;
tools/arch/x86/lib/insn.c
750
- (unsigned long)insn->kaddr);
tools/arch/x86/lib/insn.c
756
static inline int insn_complete(struct insn *insn)
tools/arch/x86/lib/insn.c
758
return insn->opcode.got && insn->modrm.got && insn->sib.got &&
tools/arch/x86/lib/insn.c
759
insn->displacement.got && insn->immediate.got;
tools/arch/x86/lib/insn.c
77
insn->addr_bytes = 8;
tools/arch/x86/lib/insn.c
773
int insn_decode(struct insn *insn, const void *kaddr, int buf_len, enum insn_mode m)
tools/arch/x86/lib/insn.c
780
insn_init(insn, kaddr, buf_len, IS_ENABLED(CONFIG_X86_64));
tools/arch/x86/lib/insn.c
782
insn_init(insn, kaddr, buf_len, m == INSN_MODE_64);
tools/arch/x86/lib/insn.c
784
ret = insn_get_length(insn);
tools/arch/x86/lib/insn.c
788
if (insn_complete(insn))
tools/arch/x86/lib/insn.c
79
insn->addr_bytes = 4;
tools/arch/x86/lib/insn.c
85
static int __insn_get_emulate_prefix(struct insn *insn,
tools/arch/x86/lib/insn.c
91
if (peek_nbyte_next(insn_byte_t, insn, i) != prefix[i])
tools/arch/x86/lib/insn.c
95
insn->emulate_prefix_size = len;
tools/arch/x86/lib/insn.c
96
insn->next_byte += len;
tools/bpf/bpftool/cfg.c
106
new_bb->head = insn;
tools/bpf/bpftool/cfg.c
244
struct bpf_insn *insn)
tools/bpf/bpftool/cfg.c
249
if (bb->head == insn)
tools/bpf/bpftool/cfg.c
279
struct bpf_insn *insn;
tools/bpf/bpftool/cfg.c
303
insn = bb->tail;
tools/bpf/bpftool/cfg.c
304
if (!is_jmp_insn(insn->code) ||
tools/bpf/bpftool/cfg.c
305
BPF_OP(insn->code) == BPF_CALL ||
tools/bpf/bpftool/cfg.c
306
BPF_OP(insn->code) == BPF_EXIT) {
tools/bpf/bpftool/cfg.c
311
} else if (BPF_OP(insn->code) == BPF_JA) {
tools/bpf/bpftool/cfg.c
313
insn + insn->off + 1);
tools/bpf/bpftool/cfg.c
327
e->dst = func_search_bb_with_head(func, insn + insn->off + 1);
tools/bpf/bpftool/cfg.c
334
static bool cfg_build(struct cfg *cfg, struct bpf_insn *insn, unsigned int len)
tools/bpf/bpftool/cfg.c
336
int cnt = len / sizeof(*insn);
tools/bpf/bpftool/cfg.c
341
if (cfg_partition_funcs(cfg, insn, insn + cnt))
tools/bpf/bpftool/cfg.c
479
struct bpf_insn *insn = buf;
tools/bpf/bpftool/cfg.c
483
if (cfg_build(&cfg, insn, len))
tools/bpf/bpftool/cfg.c
63
static struct func_node *cfg_append_func(struct cfg *cfg, struct bpf_insn *insn)
tools/bpf/bpftool/cfg.c
68
if (func->start == insn)
tools/bpf/bpftool/cfg.c
70
else if (func->start > insn)
tools/bpf/bpftool/cfg.c
80
new_func->start = insn;
tools/bpf/bpftool/cfg.c
89
struct bpf_insn *insn)
tools/bpf/bpftool/cfg.c
94
if (bb->head == insn)
tools/bpf/bpftool/cfg.c
96
else if (bb->head > insn)
tools/bpf/bpftool/xlated_dumper.c
148
const struct bpf_insn *insn)
tools/bpf/bpftool/xlated_dumper.c
153
"%+d", insn->off);
tools/bpf/bpftool/xlated_dumper.c
156
"%+d#%s", insn->off, sym->name);
tools/bpf/bpftool/xlated_dumper.c
159
"%+d#0x%lx", insn->off, address);
tools/bpf/bpftool/xlated_dumper.c
177
const struct bpf_insn *insn)
tools/bpf/bpftool/xlated_dumper.c
180
unsigned long address = dd->address_call_base + insn->imm;
tools/bpf/bpftool/xlated_dumper.c
183
if (insn->src_reg == BPF_PSEUDO_CALL &&
tools/bpf/bpftool/xlated_dumper.c
184
(__u32) insn->imm < dd->nr_jited_ksyms && dd->jited_ksyms)
tools/bpf/bpftool/xlated_dumper.c
185
address = dd->jited_ksyms[insn->imm];
tools/bpf/bpftool/xlated_dumper.c
188
if (insn->src_reg == BPF_PSEUDO_CALL)
tools/bpf/bpftool/xlated_dumper.c
189
return print_call_pcrel(dd, sym, address, insn);
tools/bpf/bpftool/xlated_dumper.c
195
const struct bpf_insn *insn,
tools/bpf/bpftool/xlated_dumper.c
200
if (insn->src_reg == BPF_PSEUDO_MAP_FD)
tools/bpf/bpftool/xlated_dumper.c
202
"map[id:%d]", insn->imm);
tools/bpf/bpftool/xlated_dumper.c
203
else if (insn->src_reg == BPF_PSEUDO_MAP_VALUE)
tools/bpf/bpftool/xlated_dumper.c
205
"map[id:%d][0]+%d", insn->imm, (insn + 1)->imm);
tools/bpf/bpftool/xlated_dumper.c
206
else if (insn->src_reg == BPF_PSEUDO_MAP_IDX_VALUE)
tools/bpf/bpftool/xlated_dumper.c
208
"map[idx:%d]+%d", insn->imm, (insn + 1)->imm);
tools/bpf/bpftool/xlated_dumper.c
209
else if (insn->src_reg == BPF_PSEUDO_FUNC)
tools/bpf/bpftool/xlated_dumper.c
211
"subprog[%+d]", insn->imm);
tools/bpf/bpftool/xlated_dumper.c
229
struct bpf_insn *insn = buf;
tools/bpf/bpftool/xlated_dumper.c
238
for (i = 0; i < len / sizeof(*insn); i++) {
tools/bpf/bpftool/xlated_dumper.c
243
double_insn = insn[i].code == (BPF_LD | BPF_IMM | BPF_DW);
tools/bpf/bpftool/xlated_dumper.c
271
print_bpf_insn(&cbs, insn + i, true);
tools/bpf/bpftool/xlated_dumper.c
278
jsonw_printf(json_wtr, "\"0x%02hhx\"", insn[i].code);
tools/bpf/bpftool/xlated_dumper.c
281
jsonw_printf(json_wtr, "\"0x%hhx\"", insn[i].src_reg);
tools/bpf/bpftool/xlated_dumper.c
284
jsonw_printf(json_wtr, "\"0x%hhx\"", insn[i].dst_reg);
tools/bpf/bpftool/xlated_dumper.c
287
print_hex_data_json((uint8_t *)(&insn[i].off), 2);
tools/bpf/bpftool/xlated_dumper.c
291
print_hex_data_json((uint8_t *)(&insn[i].imm),
tools/bpf/bpftool/xlated_dumper.c
294
print_hex_data_json((uint8_t *)(&insn[i].imm),
tools/bpf/bpftool/xlated_dumper.c
314
struct bpf_insn *insn = buf;
tools/bpf/bpftool/xlated_dumper.c
322
for (i = 0; i < len / sizeof(*insn); i++) {
tools/bpf/bpftool/xlated_dumper.c
350
double_insn = insn[i].code == (BPF_LD | BPF_IMM | BPF_DW);
tools/bpf/bpftool/xlated_dumper.c
353
print_bpf_insn(&cbs, insn + i, true);
tools/bpf/bpftool/xlated_dumper.c
357
fprint_hex(stdout, insn + i, 8, " ");
tools/bpf/bpftool/xlated_dumper.c
360
fprint_hex(stdout, insn + i + 1, 8, " ");
tools/lib/bpf/bpf_gen_internal.h
28
int insn;
tools/lib/bpf/gen_loader.c
100
memcpy(gen->insn_cur, &insn, sizeof(insn));
tools/lib/bpf/gen_loader.c
101
gen->insn_cur += sizeof(insn);
tools/lib/bpf/gen_loader.c
1058
struct bpf_insn *insn = gen->data_start + insns_off;
tools/lib/bpf/gen_loader.c
1061
for (i = 0; i < insn_cnt; i++, insn++)
tools/lib/bpf/gen_loader.c
1062
bpf_insn_bswap(insn);
tools/lib/bpf/gen_loader.c
415
struct bpf_insn *insn = (struct bpf_insn *)opts->insns;
tools/lib/bpf/gen_loader.c
419
bpf_insn_bswap(insn++);
tools/lib/bpf/gen_loader.c
464
struct bpf_insn *insn =
tools/lib/bpf/gen_loader.c
467
insn[0].imm = (__u32)sha_dw;
tools/lib/bpf/gen_loader.c
468
insn[1].imm = sha_dw >> 32;
tools/lib/bpf/gen_loader.c
688
kdesc->insn = 0;
tools/lib/bpf/gen_loader.c
744
static void emit_relo_kfunc_btf(struct bpf_gen *gen, struct ksym_relo_desc *relo, int insn)
tools/lib/bpf/gen_loader.c
754
move_blob2blob(gen, insn + offsetof(struct bpf_insn, imm), 4,
tools/lib/bpf/gen_loader.c
755
kdesc->insn + offsetof(struct bpf_insn, imm));
tools/lib/bpf/gen_loader.c
756
move_blob2blob(gen, insn + offsetof(struct bpf_insn, off), 2,
tools/lib/bpf/gen_loader.c
757
kdesc->insn + offsetof(struct bpf_insn, off));
tools/lib/bpf/gen_loader.c
761
kdesc->insn = insn;
tools/lib/bpf/gen_loader.c
835
struct ksym_relo_desc *relo, int insn)
tools/lib/bpf/gen_loader.c
844
move_blob2blob(gen, insn + offsetof(struct bpf_insn, imm), 4,
tools/lib/bpf/gen_loader.c
845
kdesc->insn + offsetof(struct bpf_insn, imm));
tools/lib/bpf/gen_loader.c
846
move_blob2blob(gen, insn + sizeof(struct bpf_insn) + offsetof(struct bpf_insn, imm), 4,
tools/lib/bpf/gen_loader.c
847
kdesc->insn + sizeof(struct bpf_insn) + offsetof(struct bpf_insn, imm));
tools/lib/bpf/gen_loader.c
851
kdesc->insn = insn;
tools/lib/bpf/gen_loader.c
881
static void emit_relo_ksym_btf(struct bpf_gen *gen, struct ksym_relo_desc *relo, int insn)
tools/lib/bpf/gen_loader.c
891
move_blob2blob(gen, insn + sizeof(struct bpf_insn) + offsetof(struct bpf_insn, imm), 4,
tools/lib/bpf/gen_loader.c
892
kdesc->insn + sizeof(struct bpf_insn) + offsetof(struct bpf_insn, imm));
tools/lib/bpf/gen_loader.c
893
move_blob2blob(gen, insn + offsetof(struct bpf_insn, imm), 4,
tools/lib/bpf/gen_loader.c
894
kdesc->insn + offsetof(struct bpf_insn, imm));
tools/lib/bpf/gen_loader.c
902
kdesc->insn = insn;
tools/lib/bpf/gen_loader.c
949
int insn;
tools/lib/bpf/gen_loader.c
953
insn = insns + sizeof(struct bpf_insn) * relo->insn_idx;
tools/lib/bpf/gen_loader.c
954
emit2(gen, BPF_LD_IMM64_RAW_FULL(BPF_REG_8, BPF_PSEUDO_MAP_IDX_VALUE, 0, 0, 0, insn));
tools/lib/bpf/gen_loader.c
957
emit_relo_ksym_typeless(gen, relo, insn);
tools/lib/bpf/gen_loader.c
959
emit_relo_ksym_btf(gen, relo, insn);
tools/lib/bpf/gen_loader.c
96
static void emit(struct bpf_gen *gen, struct bpf_insn insn)
tools/lib/bpf/gen_loader.c
961
emit_relo_kfunc_btf(gen, relo, insn);
tools/lib/bpf/gen_loader.c
98
if (realloc_insn_buf(gen, sizeof(insn)))
tools/lib/bpf/gen_loader.c
985
int i, insn;
tools/lib/bpf/gen_loader.c
992
insn = kdesc->insn;
tools/lib/bpf/gen_loader.c
993
insn += sizeof(struct bpf_insn) + offsetof(struct bpf_insn, imm);
tools/lib/bpf/gen_loader.c
994
emit_sys_close_blob(gen, insn);
tools/lib/bpf/libbpf.c
4569
struct bpf_insn *insn = &prog->insns[insn_idx];
tools/lib/bpf/libbpf.c
4577
if (!is_call_insn(insn) && !is_ldimm64_insn(insn)) {
tools/lib/bpf/libbpf.c
4579
prog->name, sym_name, insn_idx, insn->code);
tools/lib/bpf/libbpf.c
4600
if (insn->code == (BPF_JMP | BPF_CALL))
tools/lib/bpf/libbpf.c
4610
if (is_call_insn(insn)) {
tools/lib/bpf/libbpf.c
4611
if (insn->src_reg != BPF_PSEUDO_CALL) {
tools/lib/bpf/libbpf.c
4644
if ((sym->st_value % BPF_INSN_SZ) || (insn->imm % BPF_INSN_SZ)) {
tools/lib/bpf/libbpf.c
4646
prog->name, sym_name, (size_t)sym->st_value, insn->imm);
tools/lib/bpf/libbpf.c
6036
struct bpf_insn *insn;
tools/lib/bpf/libbpf.c
6103
insn = &prog->insns[insn_idx];
tools/lib/bpf/libbpf.c
6122
err = bpf_core_patch_insn(prog->name, insn, insn_idx, rec, i, &targ_res);
tools/lib/bpf/libbpf.c
6150
int insn_idx, struct bpf_insn *insn,
tools/lib/bpf/libbpf.c
6160
insn->code = BPF_JMP | BPF_CALL;
tools/lib/bpf/libbpf.c
6161
insn->dst_reg = 0;
tools/lib/bpf/libbpf.c
6162
insn->src_reg = 0;
tools/lib/bpf/libbpf.c
6163
insn->off = 0;
tools/lib/bpf/libbpf.c
6169
insn->imm = POISON_LDIMM64_MAP_BASE + map_idx;
tools/lib/bpf/libbpf.c
6171
insn++;
tools/lib/bpf/libbpf.c
6180
int insn_idx, struct bpf_insn *insn,
tools/lib/bpf/libbpf.c
6187
insn->code = BPF_JMP | BPF_CALL;
tools/lib/bpf/libbpf.c
6188
insn->dst_reg = 0;
tools/lib/bpf/libbpf.c
6189
insn->src_reg = 0;
tools/lib/bpf/libbpf.c
6190
insn->off = 0;
tools/lib/bpf/libbpf.c
6196
insn->imm = POISON_CALL_KFUNC_BASE + ext_idx;
tools/lib/bpf/libbpf.c
6362
struct bpf_insn *insn = &prog->insns[relo->insn_idx];
tools/lib/bpf/libbpf.c
6370
insn[0].src_reg = BPF_PSEUDO_MAP_IDX;
tools/lib/bpf/libbpf.c
6371
insn[0].imm = relo->map_idx;
tools/lib/bpf/libbpf.c
6373
insn[0].src_reg = BPF_PSEUDO_MAP_FD;
tools/lib/bpf/libbpf.c
6374
insn[0].imm = map->fd;
tools/lib/bpf/libbpf.c
6376
poison_map_ldimm64(prog, i, relo->insn_idx, insn,
tools/lib/bpf/libbpf.c
6382
insn[1].imm = insn[0].imm + relo->sym_off;
tools/lib/bpf/libbpf.c
6385
insn[1].imm += obj->arena_data_off;
tools/lib/bpf/libbpf.c
6388
insn[0].src_reg = BPF_PSEUDO_MAP_IDX_VALUE;
tools/lib/bpf/libbpf.c
6389
insn[0].imm = relo->map_idx;
tools/lib/bpf/libbpf.c
6391
insn[0].src_reg = BPF_PSEUDO_MAP_VALUE;
tools/lib/bpf/libbpf.c
6392
insn[0].imm = map->fd;
tools/lib/bpf/libbpf.c
6394
poison_map_ldimm64(prog, i, relo->insn_idx, insn,
tools/lib/bpf/libbpf.c
6402
insn[0].src_reg = BPF_PSEUDO_MAP_IDX_VALUE;
tools/lib/bpf/libbpf.c
6403
insn[0].imm = obj->kconfig_map_idx;
tools/lib/bpf/libbpf.c
6405
insn[0].src_reg = BPF_PSEUDO_MAP_VALUE;
tools/lib/bpf/libbpf.c
6406
insn[0].imm = obj->maps[obj->kconfig_map_idx].fd;
tools/lib/bpf/libbpf.c
6408
insn[1].imm = ext->kcfg.data_off;
tools/lib/bpf/libbpf.c
6411
insn[0].src_reg = BPF_PSEUDO_BTF_ID;
tools/lib/bpf/libbpf.c
6412
insn[0].imm = ext->ksym.kernel_btf_id;
tools/lib/bpf/libbpf.c
6413
insn[1].imm = ext->ksym.kernel_btf_obj_fd;
tools/lib/bpf/libbpf.c
6415
insn[0].imm = (__u32)ext->ksym.addr;
tools/lib/bpf/libbpf.c
6416
insn[1].imm = ext->ksym.addr >> 32;
tools/lib/bpf/libbpf.c
6422
insn[0].src_reg = BPF_PSEUDO_KFUNC_CALL;
tools/lib/bpf/libbpf.c
6424
insn[0].imm = ext->ksym.kernel_btf_id;
tools/lib/bpf/libbpf.c
6425
insn[0].off = ext->ksym.btf_fd_idx;
tools/lib/bpf/libbpf.c
6427
poison_kfunc_call(prog, i, relo->insn_idx, insn,
tools/lib/bpf/libbpf.c
6432
if (insn[0].src_reg != BPF_PSEUDO_FUNC) {
tools/lib/bpf/libbpf.c
6454
insn[0].src_reg = BPF_PSEUDO_MAP_VALUE;
tools/lib/bpf/libbpf.c
6455
insn->imm = map_fd;
tools/lib/bpf/libbpf.c
6456
insn->off = 0;
tools/lib/bpf/libbpf.c
6721
struct bpf_insn *insn;
tools/lib/bpf/libbpf.c
6729
insn = &main_prog->insns[prog->sub_insn_off + insn_idx];
tools/lib/bpf/libbpf.c
6730
if (!insn_is_subprog_call(insn) && !insn_is_pseudo_func(insn))
tools/lib/bpf/libbpf.c
6756
sub_insn_idx = relo->sym_off / BPF_INSN_SZ + insn->imm + 1;
tools/lib/bpf/libbpf.c
6758
sub_insn_idx = (relo->sym_off + insn->imm) / BPF_INSN_SZ;
tools/lib/bpf/libbpf.c
6759
} else if (insn_is_pseudo_func(insn)) {
tools/lib/bpf/libbpf.c
6774
sub_insn_idx = prog->sec_insn_off + insn_idx + insn->imm + 1;
tools/lib/bpf/libbpf.c
6807
insn = &main_prog->insns[prog->sub_insn_off + insn_idx];
tools/lib/bpf/libbpf.c
6814
insn->imm = subprog->sub_insn_off - (prog->sub_insn_off + insn_idx) - 1;
tools/lib/bpf/libbpf.c
6817
prog->name, insn_idx, insn->imm, subprog->name, subprog->sub_insn_off);
tools/lib/bpf/libbpf.c
7407
struct bpf_insn *insn = &prog->insns[relo->insn_idx];
tools/lib/bpf/libbpf.c
7411
insn[0].src_reg = BPF_PSEUDO_FUNC;
tools/lib/bpf/libbpf.c
7664
static bool insn_is_helper_call(struct bpf_insn *insn, enum bpf_func_id *func_id)
tools/lib/bpf/libbpf.c
7666
if (BPF_CLASS(insn->code) == BPF_JMP &&
tools/lib/bpf/libbpf.c
7667
BPF_OP(insn->code) == BPF_CALL &&
tools/lib/bpf/libbpf.c
7668
BPF_SRC(insn->code) == BPF_K &&
tools/lib/bpf/libbpf.c
7669
insn->src_reg == 0 &&
tools/lib/bpf/libbpf.c
7670
insn->dst_reg == 0) {
tools/lib/bpf/libbpf.c
7671
*func_id = insn->imm;
tools/lib/bpf/libbpf.c
7679
struct bpf_insn *insn = prog->insns;
tools/lib/bpf/libbpf.c
7686
for (i = 0; i < prog->insns_cnt; i++, insn++) {
tools/lib/bpf/libbpf.c
7687
if (!insn_is_helper_call(insn, &func_id))
tools/lib/bpf/libbpf.c
7698
insn->imm = BPF_FUNC_probe_read;
tools/lib/bpf/libbpf.c
7703
insn->imm = BPF_FUNC_probe_read_str;
tools/lib/bpf/libbpf.c
818
static bool insn_is_subprog_call(const struct bpf_insn *insn)
tools/lib/bpf/libbpf.c
820
return BPF_CLASS(insn->code) == BPF_JMP &&
tools/lib/bpf/libbpf.c
821
BPF_OP(insn->code) == BPF_CALL &&
tools/lib/bpf/libbpf.c
822
BPF_SRC(insn->code) == BPF_K &&
tools/lib/bpf/libbpf.c
823
insn->src_reg == BPF_PSEUDO_CALL &&
tools/lib/bpf/libbpf.c
824
insn->dst_reg == 0 &&
tools/lib/bpf/libbpf.c
825
insn->off == 0;
tools/lib/bpf/libbpf.c
828
static bool is_call_insn(const struct bpf_insn *insn)
tools/lib/bpf/libbpf.c
830
return insn->code == (BPF_JMP | BPF_CALL);
tools/lib/bpf/libbpf.c
833
static bool insn_is_pseudo_func(struct bpf_insn *insn)
tools/lib/bpf/libbpf.c
835
return is_ldimm64_insn(insn) && insn->src_reg == BPF_PSEUDO_FUNC;
tools/lib/bpf/libbpf.c
989
struct bpf_insn *insn;
tools/lib/bpf/libbpf.c
993
insn = prog->insns;
tools/lib/bpf/libbpf.c
994
for (i = 0; i < prog->insns_cnt; i++, insn++)
tools/lib/bpf/libbpf.c
995
bpf_insn_bswap(insn);
tools/lib/bpf/libbpf_internal.h
630
static inline bool is_ldimm64_insn(struct bpf_insn *insn)
tools/lib/bpf/libbpf_internal.h
632
return insn->code == (BPF_LD | BPF_IMM | BPF_DW);
tools/lib/bpf/libbpf_internal.h
635
static inline void bpf_insn_bswap(struct bpf_insn *insn)
tools/lib/bpf/libbpf_internal.h
637
__u8 tmp_reg = insn->dst_reg;
tools/lib/bpf/libbpf_internal.h
639
insn->dst_reg = insn->src_reg;
tools/lib/bpf/libbpf_internal.h
640
insn->src_reg = tmp_reg;
tools/lib/bpf/libbpf_internal.h
641
insn->off = bswap_16(insn->off);
tools/lib/bpf/libbpf_internal.h
642
insn->imm = bswap_32(insn->imm);
tools/lib/bpf/linker.c
1252
struct bpf_insn *insn = raw_data;
tools/lib/bpf/linker.c
1255
for (i = 0; i < insn_cnt; i++, insn++)
tools/lib/bpf/linker.c
1256
bpf_insn_bswap(insn);
tools/lib/bpf/linker.c
2260
struct bpf_insn *insn;
tools/lib/bpf/linker.c
2272
insn = dst_linked_sec->raw_data + dst_rel->r_offset;
tools/lib/bpf/linker.c
2273
if (insn->code == (BPF_JMP | BPF_CALL))
tools/lib/bpf/linker.c
2274
insn->imm += sec->dst_off / sizeof(struct bpf_insn);
tools/lib/bpf/linker.c
2276
insn->imm += sec->dst_off;
tools/lib/bpf/relo_core.c
1000
static int insn_bpf_size_to_bytes(struct bpf_insn *insn)
tools/lib/bpf/relo_core.c
1002
switch (BPF_SIZE(insn->code)) {
tools/lib/bpf/relo_core.c
1039
int bpf_core_patch_insn(const char *prog_name, struct bpf_insn *insn,
tools/lib/bpf/relo_core.c
1046
class = BPF_CLASS(insn->code);
tools/lib/bpf/relo_core.c
1053
if (is_ldimm64_insn(insn))
tools/lib/bpf/relo_core.c
1054
bpf_core_poison_insn(prog_name, relo_idx, insn_idx + 1, insn + 1);
tools/lib/bpf/relo_core.c
1055
bpf_core_poison_insn(prog_name, relo_idx, insn_idx, insn);
tools/lib/bpf/relo_core.c
1065
if (BPF_SRC(insn->code) != BPF_K)
tools/lib/bpf/relo_core.c
1067
if (res->validate && insn->imm != orig_val) {
tools/lib/bpf/relo_core.c
1070
insn_idx, insn->imm, (unsigned long long)orig_val,
tools/lib/bpf/relo_core.c
1074
orig_val = insn->imm;
tools/lib/bpf/relo_core.c
1075
insn->imm = new_val;
tools/lib/bpf/relo_core.c
1083
if (res->validate && insn->off != orig_val) {
tools/lib/bpf/relo_core.c
1085
prog_name, relo_idx, insn_idx, insn->off, (unsigned long long)orig_val,
tools/lib/bpf/relo_core.c
1101
orig_val = insn->off;
tools/lib/bpf/relo_core.c
1102
insn->off = new_val;
tools/lib/bpf/relo_core.c
1110
insn_bytes_sz = insn_bpf_size_to_bytes(insn);
tools/lib/bpf/relo_core.c
1124
insn->code = BPF_MODE(insn->code) | insn_bpf_sz | BPF_CLASS(insn->code);
tools/lib/bpf/relo_core.c
1132
if (!is_ldimm64_insn(insn) ||
tools/lib/bpf/relo_core.c
1133
insn[0].src_reg != 0 || insn[0].off != 0 ||
tools/lib/bpf/relo_core.c
1134
insn[1].code != 0 || insn[1].dst_reg != 0 ||
tools/lib/bpf/relo_core.c
1135
insn[1].src_reg != 0 || insn[1].off != 0) {
tools/lib/bpf/relo_core.c
1141
imm = (__u32)insn[0].imm | ((__u64)insn[1].imm << 32);
tools/lib/bpf/relo_core.c
1150
insn[0].imm = new_val;
tools/lib/bpf/relo_core.c
1151
insn[1].imm = new_val >> 32;
tools/lib/bpf/relo_core.c
1159
prog_name, relo_idx, insn_idx, insn->code,
tools/lib/bpf/relo_core.c
1160
insn->src_reg, insn->dst_reg, insn->off, insn->imm);
tools/lib/bpf/relo_core.c
16
static bool is_ldimm64_insn(struct bpf_insn *insn)
tools/lib/bpf/relo_core.c
18
return insn->code == (BPF_LD | BPF_IMM | BPF_DW);
tools/lib/bpf/relo_core.c
985
int insn_idx, struct bpf_insn *insn)
tools/lib/bpf/relo_core.c
989
insn->code = BPF_JMP | BPF_CALL;
tools/lib/bpf/relo_core.c
990
insn->dst_reg = 0;
tools/lib/bpf/relo_core.c
991
insn->src_reg = 0;
tools/lib/bpf/relo_core.c
992
insn->off = 0;
tools/lib/bpf/relo_core.c
997
insn->imm = 195896080; /* => 0xbad2310 => "bad relo" */
tools/lib/bpf/relo_core.h
89
int bpf_core_patch_insn(const char *prog_name, struct bpf_insn *insn,
tools/objtool/arch/loongarch/decode.c
109
struct instruction *insn)
tools/objtool/arch/loongarch/decode.c
115
insn->type = INSN_JUMP_CONDITIONAL;
tools/objtool/arch/loongarch/decode.c
116
insn->immediate = sign_extend64(inst.reg1i21_format.immediate_h << 16 |
tools/objtool/arch/loongarch/decode.c
127
struct instruction *insn,
tools/objtool/arch/loongarch/decode.c
135
insn->immediate = sign_extend64(inst.reg2i12_format.immediate, 11);
tools/objtool/arch/loongarch/decode.c
139
op->src.offset = insn->immediate;
tools/objtool/arch/loongarch/decode.c
146
struct symbol *func = find_func_containing(insn->sec, insn->offset);
tools/objtool/arch/loongarch/decode.c
157
insn->immediate = sign_extend64(inst.reg2i12_format.immediate, 11);
tools/objtool/arch/loongarch/decode.c
161
op->src.offset = insn->immediate;
tools/objtool/arch/loongarch/decode.c
170
insn->immediate = sign_extend64(inst.reg2i12_format.immediate, 11);
tools/objtool/arch/loongarch/decode.c
176
op->dest.offset = insn->immediate;
tools/objtool/arch/loongarch/decode.c
185
insn->type = INSN_NOP;
tools/objtool/arch/loongarch/decode.c
195
struct instruction *insn,
tools/objtool/arch/loongarch/decode.c
203
insn->immediate = sign_extend64(inst.reg2i14_format.immediate, 13);
tools/objtool/arch/loongarch/decode.c
207
op->src.offset = insn->immediate;
tools/objtool/arch/loongarch/decode.c
221
insn->immediate = sign_extend64(inst.reg2i14_format.immediate, 13);
tools/objtool/arch/loongarch/decode.c
227
op->dest.offset = insn->immediate;
tools/objtool/arch/loongarch/decode.c
239
struct instruction *insn)
tools/objtool/arch/loongarch/decode.c
247
insn->type = INSN_RETURN;
tools/objtool/arch/loongarch/decode.c
250
insn->type = INSN_CALL_DYNAMIC;
tools/objtool/arch/loongarch/decode.c
258
insn->type = INSN_CALL_DYNAMIC;
tools/objtool/arch/loongarch/decode.c
262
insn->type = INSN_JUMP_DYNAMIC;
tools/objtool/arch/loongarch/decode.c
27
unsigned long arch_jump_destination(struct instruction *insn)
tools/objtool/arch/loongarch/decode.c
273
insn->type = INSN_JUMP_UNCONDITIONAL;
tools/objtool/arch/loongarch/decode.c
274
insn->immediate = sign_extend64(inst.reg2i16_format.immediate, 15);
tools/objtool/arch/loongarch/decode.c
283
insn->type = INSN_JUMP_CONDITIONAL;
tools/objtool/arch/loongarch/decode.c
284
insn->immediate = sign_extend64(inst.reg2i16_format.immediate, 15);
tools/objtool/arch/loongarch/decode.c
29
return insn->offset + (insn->immediate << 2);
tools/objtool/arch/loongarch/decode.c
294
struct instruction *insn)
tools/objtool/arch/loongarch/decode.c
302
insn->type = INSN_BUG;
tools/objtool/arch/loongarch/decode.c
314
struct instruction *insn)
tools/objtool/arch/loongarch/decode.c
316
struct stack_op **ops_list = &insn->stack_ops;
tools/objtool/arch/loongarch/decode.c
32
s64 arch_insn_adjusted_addend(struct instruction *insn, struct reloc *reloc)
tools/objtool/arch/loongarch/decode.c
327
insn->len = LOONGARCH_INSN_SIZE;
tools/objtool/arch/loongarch/decode.c
328
insn->type = INSN_OTHER;
tools/objtool/arch/loongarch/decode.c
329
insn->immediate = 0;
tools/objtool/arch/loongarch/decode.c
333
if (decode_insn_reg0i26_fomat(inst, insn))
tools/objtool/arch/loongarch/decode.c
335
if (decode_insn_reg1i21_fomat(inst, insn))
tools/objtool/arch/loongarch/decode.c
337
if (decode_insn_reg2i12_fomat(inst, insn, ops_list, op))
tools/objtool/arch/loongarch/decode.c
339
if (decode_insn_reg2i14_fomat(inst, insn, ops_list, op))
tools/objtool/arch/loongarch/decode.c
341
if (decode_insn_reg2i16_fomat(inst, insn))
tools/objtool/arch/loongarch/decode.c
343
if (decode_insn_reg3_fomat(inst, insn))
tools/objtool/arch/loongarch/decode.c
348
insn->type = INSN_NOP;
tools/objtool/arch/loongarch/decode.c
352
insn->type = INSN_TRAP;
tools/objtool/arch/loongarch/decode.c
356
insn->type = INSN_BUG;
tools/objtool/arch/loongarch/decode.c
359
insn->type = INSN_RETURN;
tools/objtool/arch/loongarch/decode.c
88
struct instruction *insn)
tools/objtool/arch/loongarch/decode.c
92
insn->type = INSN_JUMP_UNCONDITIONAL;
tools/objtool/arch/loongarch/decode.c
93
insn->immediate = sign_extend64(inst.reg0i26_format.immediate_h << 16 |
tools/objtool/arch/loongarch/decode.c
97
insn->type = INSN_CALL;
tools/objtool/arch/loongarch/decode.c
98
insn->immediate = sign_extend64(inst.reg0i26_format.immediate_h << 16 |
tools/objtool/arch/loongarch/orc.c
43
ERROR_INSN(insn, "unknown unwind hint type %d", cfi->type);
tools/objtool/arch/loongarch/orc.c
57
ERROR_INSN(insn, "unknown CFA base reg %d", cfi->cfa.base);
tools/objtool/arch/loongarch/orc.c
74
ERROR_INSN(insn, "unknown FP base reg %d", fp->base);
tools/objtool/arch/loongarch/orc.c
9
int init_orc_entry(struct orc_entry *orc, struct cfi_state *cfi, struct instruction *insn)
tools/objtool/arch/loongarch/orc.c
91
ERROR_INSN(insn, "unknown RA base reg %d", ra->base);
tools/objtool/arch/loongarch/special.c
113
struct instruction *insn,
tools/objtool/arch/loongarch/special.c
128
if (strcmp(insn->sec->name, reloc->sym->sec->name))
tools/objtool/arch/loongarch/special.c
132
if (insn->offset == offset) {
tools/objtool/arch/loongarch/special.c
133
get_rodata_table_size_by_table_annotate(file, insn, table_size);
tools/objtool/arch/loongarch/special.c
167
struct instruction *insn,
tools/objtool/arch/loongarch/special.c
175
annotate_reloc = find_reloc_by_table_annotate(file, insn, table_size);
tools/objtool/arch/loongarch/special.c
178
insn->sec, insn->offset, table_size);
tools/objtool/arch/loongarch/special.c
20
struct instruction *insn,
tools/objtool/arch/loongarch/special.c
42
if (strcmp(insn->sec->name, reloc->sym->sec->name))
tools/objtool/arch/loongarch/special.c
60
if (strcmp(insn->sec->name, (reloc + 1)->sym->sec->name)) {
tools/objtool/arch/loongarch/special.c
62
if (orig_table->insn_offset == insn->offset) {
tools/objtool/arch/loongarch/special.c
7
struct instruction *insn,
tools/objtool/arch/loongarch/special.c
92
if (insn->offset == orig_table->insn_offset) {
tools/objtool/arch/powerpc/decode.c
100
return insn->offset + insn->immediate;
tools/objtool/arch/powerpc/decode.c
29
s64 arch_insn_adjusted_addend(struct instruction *insn, struct reloc *reloc)
tools/objtool/arch/powerpc/decode.c
56
struct instruction *insn)
tools/objtool/arch/powerpc/decode.c
85
insn->len = 8;
tools/objtool/arch/powerpc/decode.c
87
insn->len = 4;
tools/objtool/arch/powerpc/decode.c
89
insn->type = typ;
tools/objtool/arch/powerpc/decode.c
90
insn->immediate = imm;
tools/objtool/arch/powerpc/decode.c
95
unsigned long arch_jump_destination(struct instruction *insn)
tools/objtool/arch/powerpc/decode.c
97
if (insn->immediate & 2)
tools/objtool/arch/powerpc/decode.c
98
return insn->immediate & ~2;
tools/objtool/arch/powerpc/special.c
16
struct instruction *insn,
tools/objtool/arch/powerpc/special.c
9
struct instruction *insn,
tools/objtool/arch/x86/decode.c
104
struct insn insn;
tools/objtool/arch/x86/decode.c
108
insn_decode(&insn, sec->data->d_buf + o, sec_size(sec) - o,
tools/objtool/arch/x86/decode.c
111
if (o + insn.length > offset) {
tools/objtool/arch/x86/decode.c
113
*insn_len = insn.length;
tools/objtool/arch/x86/decode.c
117
o += insn.length;
tools/objtool/arch/x86/decode.c
140
unsigned long arch_jump_destination(struct instruction *insn)
tools/objtool/arch/x86/decode.c
142
return insn->offset + insn->len + insn->immediate;
tools/objtool/arch/x86/decode.c
205
static bool has_notrack_prefix(struct insn *insn)
tools/objtool/arch/x86/decode.c
209
for (i = 0; i < insn->prefixes.nbytes; i++) {
tools/objtool/arch/x86/decode.c
210
if (insn->prefixes.bytes[i] == 0x3e)
tools/objtool/arch/x86/decode.c
219
struct instruction *insn)
tools/objtool/arch/x86/decode.c
221
struct stack_op **ops_list = &insn->stack_ops;
tools/objtool/arch/x86/decode.c
223
struct insn ins;
tools/objtool/arch/x86/decode.c
244
insn->len = ins.length;
tools/objtool/arch/x86/decode.c
245
insn->type = INSN_OTHER;
tools/objtool/arch/x86/decode.c
326
insn->type = INSN_JUMP_CONDITIONAL;
tools/objtool/arch/x86/decode.c
516
insn->type = INSN_LEA_RIP;
tools/objtool/arch/x86/decode.c
551
insn->type = INSN_NOP;
tools/objtool/arch/x86/decode.c
579
insn->type = INSN_SYSRET;
tools/objtool/arch/x86/decode.c
583
insn->type = INSN_CLAC;
tools/objtool/arch/x86/decode.c
585
insn->type = INSN_STAC;
tools/objtool/arch/x86/decode.c
590
insn->type = INSN_JUMP_CONDITIONAL;
tools/objtool/arch/x86/decode.c
595
insn->type = INSN_SYSCALL;
tools/objtool/arch/x86/decode.c
600
insn->type = INSN_SYSRET;
tools/objtool/arch/x86/decode.c
605
insn->type = INSN_BUG;
tools/objtool/arch/x86/decode.c
611
insn->type = INSN_NOP;
tools/objtool/arch/x86/decode.c
616
insn->type = INSN_ENDBR;
tools/objtool/arch/x86/decode.c
668
insn->type = INSN_TRAP;
tools/objtool/arch/x86/decode.c
673
insn->type = INSN_JUMP_CONDITIONAL;
tools/objtool/arch/x86/decode.c
678
insn->type = INSN_JUMP_UNCONDITIONAL;
tools/objtool/arch/x86/decode.c
683
insn->type = INSN_RETURN;
tools/objtool/arch/x86/decode.c
742
insn->type = INSN_SYSRET;
tools/objtool/arch/x86/decode.c
746
insn->type = INSN_BUG;
tools/objtool/arch/x86/decode.c
752
insn->type = INSN_JUMP_CONDITIONAL;
tools/objtool/arch/x86/decode.c
756
insn->type = INSN_CALL;
tools/objtool/arch/x86/decode.c
768
insn->type = INSN_CLD;
tools/objtool/arch/x86/decode.c
772
insn->type = INSN_STD;
tools/objtool/arch/x86/decode.c
778
insn->type = INSN_CALL_DYNAMIC;
tools/objtool/arch/x86/decode.c
784
insn->type = INSN_JUMP_DYNAMIC;
tools/objtool/arch/x86/decode.c
791
insn->type = INSN_SYSRET;
tools/objtool/arch/x86/decode.c
809
insn->immediate = ins.immediate.value;
tools/objtool/arch/x86/decode.c
811
insn->immediate = ins.displacement.value;
tools/objtool/arch/x86/decode.c
90
s64 arch_insn_adjusted_addend(struct instruction *insn, struct reloc *reloc)
tools/objtool/arch/x86/decode.c
95
addend += insn->offset + insn->len - reloc_offset(reloc);
tools/objtool/arch/x86/orc.c
42
ERROR_INSN(insn, "unknown unwind hint type %d", cfi->type);
tools/objtool/arch/x86/orc.c
74
ERROR_INSN(insn, "unknown CFA base reg %d", cfi->cfa.base);
tools/objtool/arch/x86/orc.c
89
ERROR_INSN(insn, "unknown BP base reg %d", bp->base);
tools/objtool/arch/x86/orc.c
9
int init_orc_entry(struct orc_entry *orc, struct cfi_state *cfi, struct instruction *insn)
tools/objtool/arch/x86/special.c
134
WARN_INSN(insn, "ignoring unreachables due to jump table quirk");
tools/objtool/arch/x86/special.c
39
struct instruction *insn,
tools/objtool/arch/x86/special.c
86
struct instruction *insn,
tools/objtool/arch/x86/special.c
94
text_reloc = find_reloc_by_dest_range(file->elf, insn->sec,
tools/objtool/arch/x86/special.c
95
insn->offset, insn->len);
tools/objtool/check.c
100
struct instruction *insn)
tools/objtool/check.c
1004
list_for_each_entry(insn, &file->call_list, call_node)
tools/objtool/check.c
1013
list_for_each_entry(insn, &file->call_list, call_node) {
tools/objtool/check.c
1017
insn->sec, insn->offset))
tools/objtool/check.c
102
struct instruction *prev = prev_insn_same_sec(file, insn);
tools/objtool/check.c
104
if (prev && insn_func(prev) == insn_func(insn))
tools/objtool/check.c
110
#define for_each_insn(file, insn) \
tools/objtool/check.c
114
sec_for_each_insn(file, __sec, insn)
tools/objtool/check.c
116
#define func_for_each_insn(file, func, insn) \
tools/objtool/check.c
117
for (insn = find_insn(file, func->sec, func->offset); \
tools/objtool/check.c
118
insn; \
tools/objtool/check.c
119
insn = next_insn_same_func(file, insn))
tools/objtool/check.c
121
#define sym_for_each_insn(file, sym, insn) \
tools/objtool/check.c
122
for (insn = find_insn(file, sym->sec, sym->offset); \
tools/objtool/check.c
123
insn && insn->offset < sym->offset + sym->len; \
tools/objtool/check.c
124
insn = next_insn_same_sec(file, insn))
tools/objtool/check.c
126
#define sym_for_each_insn_continue_reverse(file, sym, insn) \
tools/objtool/check.c
127
for (insn = prev_insn_same_sec(file, insn); \
tools/objtool/check.c
128
insn && insn->offset >= sym->offset; \
tools/objtool/check.c
129
insn = prev_insn_same_sec(file, insn))
tools/objtool/check.c
131
#define sec_for_each_insn_from(file, insn) \
tools/objtool/check.c
132
for (; insn; insn = next_insn_same_sec(file, insn))
tools/objtool/check.c
134
#define sec_for_each_insn_continue(file, insn) \
tools/objtool/check.c
135
for (insn = next_insn_same_sec(file, insn); insn; \
tools/objtool/check.c
1352
static struct reloc *insn_reloc(struct objtool_file *file, struct instruction *insn)
tools/objtool/check.c
1356
if (insn->no_reloc)
tools/objtool/check.c
136
insn = next_insn_same_sec(file, insn))
tools/objtool/check.c
1362
reloc = find_reloc_by_dest_range(file->elf, insn->sec,
tools/objtool/check.c
1363
insn->offset, insn->len);
tools/objtool/check.c
1365
insn->no_reloc = 1;
tools/objtool/check.c
1372
static void remove_insn_ops(struct instruction *insn)
tools/objtool/check.c
1376
for (op = insn->stack_ops; op; op = next) {
tools/objtool/check.c
138
static inline struct reloc *insn_jump_table(struct instruction *insn)
tools/objtool/check.c
1380
insn->stack_ops = NULL;
tools/objtool/check.c
1384
struct instruction *insn, bool sibling)
tools/objtool/check.c
1386
struct reloc *reloc = insn_reloc(file, insn);
tools/objtool/check.c
1387
struct symbol *sym = insn_call_dest(insn);
tools/objtool/check.c
1393
list_add_tail(&insn->call_node, &file->static_call_list);
tools/objtool/check.c
1398
list_add_tail(&insn->call_node, &file->retpoline_call_list);
tools/objtool/check.c
140
if (insn->type == INSN_JUMP_DYNAMIC ||
tools/objtool/check.c
1407
if (opts.hack_noinstr && insn->sec->noinstr && sym->profiling_func) {
tools/objtool/check.c
141
insn->type == INSN_CALL_DYNAMIC)
tools/objtool/check.c
1411
if (elf_write_insn(file->elf, insn->sec,
tools/objtool/check.c
1412
insn->offset, insn->len,
tools/objtool/check.c
1413
sibling ? arch_ret_insn(insn->len)
tools/objtool/check.c
1414
: arch_nop_insn(insn->len))) {
tools/objtool/check.c
1418
insn->type = sibling ? INSN_RETURN : INSN_NOP;
tools/objtool/check.c
142
return insn->_jump_table;
tools/objtool/check.c
1427
insn->retpoline_safe = true;
tools/objtool/check.c
1435
WARN_INSN(insn, "tail call to __fentry__ !?!?");
tools/objtool/check.c
1440
if (elf_write_insn(file->elf, insn->sec,
tools/objtool/check.c
1441
insn->offset, insn->len,
tools/objtool/check.c
1442
arch_nop_insn(insn->len))) {
tools/objtool/check.c
1446
insn->type = INSN_NOP;
tools/objtool/check.c
1449
list_add_tail(&insn->call_node, &file->mcount_loc_list);
tools/objtool/check.c
1453
if (insn->type == INSN_CALL && !insn->sec->init &&
tools/objtool/check.c
1454
!insn->_call_dest->embedded_insn)
tools/objtool/check.c
1455
list_add_tail(&insn->call_node, &file->call_list);
tools/objtool/check.c
1458
insn->dead_end = true;
tools/objtool/check.c
1463
static int add_call_dest(struct objtool_file *file, struct instruction *insn,
tools/objtool/check.c
1466
insn->_call_dest = dest;
tools/objtool/check.c
147
static inline unsigned long insn_jump_table_size(struct instruction *insn)
tools/objtool/check.c
1477
remove_insn_ops(insn);
tools/objtool/check.c
1479
return annotate_call_site(file, insn, sibling);
tools/objtool/check.c
1482
static int add_retpoline_call(struct objtool_file *file, struct instruction *insn)
tools/objtool/check.c
1488
switch (insn->type) {
tools/objtool/check.c
149
if (insn->type == INSN_JUMP_DYNAMIC ||
tools/objtool/check.c
1490
insn->type = INSN_CALL_DYNAMIC;
tools/objtool/check.c
1493
insn->type = INSN_JUMP_DYNAMIC;
tools/objtool/check.c
1496
insn->type = INSN_JUMP_DYNAMIC_CONDITIONAL;
tools/objtool/check.c
150
insn->type == INSN_CALL_DYNAMIC)
tools/objtool/check.c
1502
insn->retpoline_safe = true;
tools/objtool/check.c
151
return insn->_jump_table_size;
tools/objtool/check.c
1511
remove_insn_ops(insn);
tools/objtool/check.c
1513
return annotate_call_site(file, insn, false);
tools/objtool/check.c
1516
static void add_return_call(struct objtool_file *file, struct instruction *insn, bool add)
tools/objtool/check.c
1522
insn->type = INSN_RETURN;
tools/objtool/check.c
1523
insn->retpoline_safe = true;
tools/objtool/check.c
1526
list_add_tail(&insn->call_node, &file->return_thunk_list);
tools/objtool/check.c
1530
struct instruction *insn)
tools/objtool/check.c
1532
struct symbol *func = insn_func(insn);
tools/objtool/check.c
1537
if (insn->offset == func->offset)
tools/objtool/check.c
1542
struct instruction *prev = prev_insn_same_sym(file, insn);
tools/objtool/check.c
1545
insn->offset == func->offset + prev->len)
tools/objtool/check.c
1557
struct instruction *insn;
tools/objtool/check.c
156
static bool is_jump_table_jump(struct instruction *insn)
tools/objtool/check.c
1560
for_each_insn(file, insn) {
tools/objtool/check.c
1561
struct symbol *func = insn_func(insn);
tools/objtool/check.c
1567
if (!is_static_jump(insn))
tools/objtool/check.c
1570
if (insn->jump_dest) {
tools/objtool/check.c
1578
reloc = insn_reloc(file, insn);
tools/objtool/check.c
158
struct alt_group *alt_group = insn->alt_group;
tools/objtool/check.c
1580
dest_sec = insn->sec;
tools/objtool/check.c
1581
dest_off = arch_jump_destination(insn);
tools/objtool/check.c
1587
if (add_retpoline_call(file, insn))
tools/objtool/check.c
1593
add_return_call(file, insn, true);
tools/objtool/check.c
160
if (insn_jump_table(insn))
tools/objtool/check.c
1600
if (add_call_dest(file, insn, dest_sym, true))
tools/objtool/check.c
1610
dest_off = dest_sym->offset + arch_insn_adjusted_addend(insn, reloc);
tools/objtool/check.c
1626
add_return_call(file, insn, false);
tools/objtool/check.c
1635
dest_sec == insn->sec &&
tools/objtool/check.c
1639
ERROR_INSN(insn, "can't find jump dest instruction at %s",
tools/objtool/check.c
1651
if (add_retpoline_call(file, insn))
tools/objtool/check.c
1657
add_return_call(file, insn, true);
tools/objtool/check.c
1661
if (!insn->sym || insn->sym->pfunc == dest_sym->pfunc)
tools/objtool/check.c
1670
if (add_call_dest(file, insn, dest_sym, true))
tools/objtool/check.c
1676
insn->jump_dest = dest_insn;
tools/objtool/check.c
168
static bool is_sibling_call(struct instruction *insn)
tools/objtool/check.c
1698
struct instruction *insn;
tools/objtool/check.c
1703
for_each_insn(file, insn) {
tools/objtool/check.c
1704
struct symbol *func = insn_func(insn);
tools/objtool/check.c
1705
if (insn->type != INSN_CALL)
tools/objtool/check.c
1708
reloc = insn_reloc(file, insn);
tools/objtool/check.c
1710
dest_off = arch_jump_destination(insn);
tools/objtool/check.c
1711
dest = find_call_destination(insn->sec, dest_off);
tools/objtool/check.c
1713
if (add_call_dest(file, insn, dest, false))
tools/objtool/check.c
1719
if (!insn_call_dest(insn)) {
tools/objtool/check.c
1720
ERROR_INSN(insn, "unannotated intra-function call");
tools/objtool/check.c
1724
if (func && !is_func_sym(insn_call_dest(insn))) {
tools/objtool/check.c
1725
ERROR_INSN(insn, "unsupported call to non-function");
tools/objtool/check.c
173
if (insn_func(insn)) {
tools/objtool/check.c
1730
dest_off = arch_insn_adjusted_addend(insn, reloc);
tools/objtool/check.c
1733
ERROR_INSN(insn, "can't find call dest symbol at %s+0x%lx",
tools/objtool/check.c
1738
if (add_call_dest(file, insn, dest, false))
tools/objtool/check.c
1742
if (add_retpoline_call(file, insn))
tools/objtool/check.c
1746
if (add_call_dest(file, insn, reloc->sym, false))
tools/objtool/check.c
175
if (insn->type == INSN_JUMP_DYNAMIC)
tools/objtool/check.c
176
return !is_jump_table_jump(insn);
tools/objtool/check.c
1763
struct instruction *last_new_insn = NULL, *insn, *nop = NULL;
tools/objtool/check.c
1783
insn = orig_insn;
tools/objtool/check.c
1784
sec_for_each_insn_from(file, insn) {
tools/objtool/check.c
1785
if (insn->offset >= special_alt->orig_off + special_alt->orig_len)
tools/objtool/check.c
1788
insn->alt_group = orig_alt_group;
tools/objtool/check.c
1789
last_orig_insn = insn;
tools/objtool/check.c
180
return (is_static_jump(insn) && insn_call_dest(insn));
tools/objtool/check.c
1844
insn = *new_insn;
tools/objtool/check.c
1845
sec_for_each_insn_from(file, insn) {
tools/objtool/check.c
1848
if (insn->offset >= special_alt->new_off + special_alt->new_len)
tools/objtool/check.c
1851
last_new_insn = insn;
tools/objtool/check.c
1853
insn->sym = orig_insn->sym;
tools/objtool/check.c
1854
insn->alt_group = new_alt_group;
tools/objtool/check.c
1864
alt_reloc = insn_reloc(file, insn);
tools/objtool/check.c
1866
!arch_support_alt_relocation(special_alt, insn, alt_reloc)) {
tools/objtool/check.c
1868
ERROR_INSN(insn, "unsupported relocation in alternatives section");
tools/objtool/check.c
1872
if (!is_static_jump(insn))
tools/objtool/check.c
1875
if (!insn->immediate)
tools/objtool/check.c
1878
dest_off = arch_jump_destination(insn);
tools/objtool/check.c
1880
insn->jump_dest = next_insn_same_sec(file, orig_alt_group->last_insn);
tools/objtool/check.c
1881
if (!insn->jump_dest) {
tools/objtool/check.c
1882
ERROR_INSN(insn, "can't find alternative jump destination");
tools/objtool/check.c
2020
alt->insn = new_insn;
tools/objtool/check.c
2054
static int add_jump_table(struct objtool_file *file, struct instruction *insn)
tools/objtool/check.c
2056
unsigned long table_size = insn_jump_table_size(insn);
tools/objtool/check.c
2057
struct symbol *pfunc = insn_func(insn)->pfunc;
tools/objtool/check.c
2058
struct reloc *table = insn_jump_table(insn);
tools/objtool/check.c
2109
alt->insn = dest_insn;
tools/objtool/check.c
2110
alt->next = insn->alts;
tools/objtool/check.c
2111
insn->alts = alt;
tools/objtool/check.c
2117
ERROR_INSN(insn, "can't find switch jump table");
tools/objtool/check.c
2129
struct instruction *insn)
tools/objtool/check.c
2132
struct instruction *dest_insn, *orig_insn = insn;
tools/objtool/check.c
2142
insn && insn_func(insn) && insn_func(insn)->pfunc == func;
tools/objtool/check.c
2143
insn = insn->first_jump_src ?: prev_insn_same_sym(file, insn)) {
tools/objtool/check.c
2145
if (insn != orig_insn && insn->type == INSN_JUMP_DYNAMIC)
tools/objtool/check.c
2149
if (insn->type == INSN_JUMP_UNCONDITIONAL &&
tools/objtool/check.c
2150
insn->jump_dest &&
tools/objtool/check.c
2151
(insn->jump_dest->offset <= insn->offset ||
tools/objtool/check.c
2152
insn->jump_dest->offset > orig_insn->offset))
tools/objtool/check.c
2155
table_reloc = arch_find_switch_table(file, insn, &table_size);
tools/objtool/check.c
2180
struct instruction *insn, *last = NULL;
tools/objtool/check.c
2182
func_for_each_insn(file, func, insn) {
tools/objtool/check.c
2184
last = insn;
tools/objtool/check.c
2191
if (insn->jump_dest &&
tools/objtool/check.c
2192
insn->jump_dest->offset > insn->offset &&
tools/objtool/check.c
2193
!insn->jump_dest->first_jump_src) {
tools/objtool/check.c
2195
insn->jump_dest->first_jump_src = insn;
tools/objtool/check.c
2196
last = insn->jump_dest;
tools/objtool/check.c
2199
if (insn->type != INSN_JUMP_DYNAMIC)
tools/objtool/check.c
2202
find_jump_table(file, func, insn);
tools/objtool/check.c
2209
struct instruction *insn;
tools/objtool/check.c
2211
func_for_each_insn(file, func, insn) {
tools/objtool/check.c
2212
if (!insn_jump_table(insn))
tools/objtool/check.c
2215
if (add_jump_table(file, insn))
tools/objtool/check.c
2260
struct instruction *insn;
tools/objtool/check.c
2292
insn = find_insn(file, reloc->sym->sec, offset);
tools/objtool/check.c
2293
if (!insn) {
tools/objtool/check.c
2298
insn->hint = true;
tools/objtool/check.c
2301
insn->cfi = &force_undefined_cfi;
tools/objtool/check.c
2306
insn->hint = false;
tools/objtool/check.c
2307
insn->save = true;
tools/objtool/check.c
2312
insn->restore = true;
tools/objtool/check.c
2317
struct symbol *sym = find_symbol_by_offset(insn->sec, insn->offset);
tools/objtool/check.c
2320
if (opts.ibt && insn->type != INSN_ENDBR && !insn->noendbr) {
tools/objtool/check.c
2321
ERROR_INSN(insn, "UNWIND_HINT_IRET_REGS without ENDBR");
tools/objtool/check.c
2328
insn->cfi = &func_cfi;
tools/objtool/check.c
2332
if (insn->cfi)
tools/objtool/check.c
2333
cfi = *(insn->cfi);
tools/objtool/check.c
2336
ERROR_INSN(insn, "unsupported unwind_hint sp base reg %d", hint->sp_reg);
tools/objtool/check.c
2344
insn->cfi = cfi_hash_find_or_add(&cfi);
tools/objtool/check.c
2351
int (*func)(struct objtool_file *file, int type, struct instruction *insn))
tools/objtool/check.c
2354
struct instruction *insn;
tools/objtool/check.c
236
struct instruction *insn;
tools/objtool/check.c
2383
insn = find_insn(file, reloc->sym->sec, offset);
tools/objtool/check.c
2385
if (!insn) {
tools/objtool/check.c
2390
if (func(file, type, insn))
tools/objtool/check.c
2397
static int __annotate_early(struct objtool_file *file, int type, struct instruction *insn)
tools/objtool/check.c
2403
insn->ignore_alts = true;
tools/objtool/check.c
2410
insn->noendbr = 1;
tools/objtool/check.c
2420
static int __annotate_ifc(struct objtool_file *file, int type, struct instruction *insn)
tools/objtool/check.c
2427
if (insn->type != INSN_CALL) {
tools/objtool/check.c
2428
ERROR_INSN(insn, "intra_function_call not a direct call");
tools/objtool/check.c
2437
insn->type = INSN_JUMP_UNCONDITIONAL;
tools/objtool/check.c
2439
dest_off = arch_jump_destination(insn);
tools/objtool/check.c
2440
insn->jump_dest = find_insn(file, insn->sec, dest_off);
tools/objtool/check.c
2441
if (!insn->jump_dest) {
tools/objtool/check.c
2442
ERROR_INSN(insn, "can't find call dest at %s+0x%lx",
tools/objtool/check.c
2443
insn->sec->name, dest_off);
tools/objtool/check.c
2450
static int __annotate_late(struct objtool_file *file, int type, struct instruction *insn)
tools/objtool/check.c
2460
if (insn->type != INSN_JUMP_DYNAMIC &&
tools/objtool/check.c
2461
insn->type != INSN_CALL_DYNAMIC &&
tools/objtool/check.c
2462
insn->type != INSN_RETURN &&
tools/objtool/check.c
2463
insn->type != INSN_NOP) {
tools/objtool/check.c
2464
ERROR_INSN(insn, "retpoline_safe hint not an indirect jump/call/ret/nop");
tools/objtool/check.c
2468
insn->retpoline_safe = true;
tools/objtool/check.c
2472
insn->instr++;
tools/objtool/check.c
2476
insn->instr--;
tools/objtool/check.c
2480
insn->unret = 1;
tools/objtool/check.c
2492
insn->dead_end = false;
tools/objtool/check.c
2496
sym = insn->sym;
tools/objtool/check.c
2498
ERROR_INSN(insn, "dodgy NOCFI annotation");
tools/objtool/check.c
2501
insn->sym->nocfi = 1;
tools/objtool/check.c
2505
ERROR_INSN(insn, "Unknown annotation type: %d", type);
tools/objtool/check.c
2595
struct instruction *insn;
tools/objtool/check.c
2606
for_each_insn(file, insn) {
tools/objtool/check.c
2607
if (insn->sym || !find_symbol_hole_containing(insn->sec, insn->offset)) {
tools/objtool/check.c
2613
if (!in_hole && insn->type == INSN_NOP)
tools/objtool/check.c
2617
insn->hole = 1;
tools/objtool/check.c
2622
if (insn->jump_dest) {
tools/objtool/check.c
2623
struct symbol *dest_func = insn_func(insn->jump_dest);
tools/objtool/check.c
263
insn = find_insn(file, func->sec, func->offset);
tools/objtool/check.c
264
if (!insn || !insn_func(insn))
tools/objtool/check.c
267
func_for_each_insn(file, func, insn) {
tools/objtool/check.c
270
if (insn->type == INSN_RETURN)
tools/objtool/check.c
2706
static bool is_special_call(struct instruction *insn)
tools/objtool/check.c
2708
if (insn->type == INSN_CALL) {
tools/objtool/check.c
2709
struct symbol *dest = insn_call_dest(insn);
tools/objtool/check.c
2721
static bool has_modified_stack_frame(struct instruction *insn, struct insn_state *state)
tools/objtool/check.c
2766
static int update_cfi_state_regs(struct instruction *insn,
tools/objtool/check.c
282
func_for_each_insn(file, func, insn) {
tools/objtool/check.c
283
if (is_sibling_call(insn)) {
tools/objtool/check.c
284
struct instruction *dest = insn->jump_dest;
tools/objtool/check.c
2859
static int update_cfi_state(struct instruction *insn,
tools/objtool/check.c
2872
if (insn_func(insn)) {
tools/objtool/check.c
2873
WARN_INSN(insn, "undefined stack state");
tools/objtool/check.c
2881
return update_cfi_state_regs(insn, cfi, op);
tools/objtool/check.c
3030
insn->sym->frame_pointer) {
tools/objtool/check.c
3042
if (insn->sym->frame_pointer) {
tools/objtool/check.c
3087
WARN_INSN(insn, "unsupported stack register modification");
tools/objtool/check.c
3097
WARN_INSN(insn, "unsupported stack pointer realignment");
tools/objtool/check.c
3192
WARN_INSN(insn, "unknown stack-related instruction");
tools/objtool/check.c
3235
if (opts.stackval && insn_func(insn) && op->src.reg == CFI_BP &&
tools/objtool/check.c
3281
WARN_INSN(insn, "unknown stack-related memory operation");
tools/objtool/check.c
3293
WARN_INSN(insn, "unknown stack-related instruction");
tools/objtool/check.c
3309
static int propagate_alt_cfi(struct objtool_file *file, struct instruction *insn)
tools/objtool/check.c
3314
if (!insn->alt_group)
tools/objtool/check.c
3317
if (!insn->cfi) {
tools/objtool/check.c
3322
alt_cfi = insn->alt_group->cfi;
tools/objtool/check.c
3323
group_off = insn->offset - insn->alt_group->first_insn->offset;
tools/objtool/check.c
3326
alt_cfi[group_off] = insn->cfi;
tools/objtool/check.c
3328
if (cficmp(alt_cfi[group_off], insn->cfi)) {
tools/objtool/check.c
3329
struct alt_group *orig_group = insn->alt_group->orig_group ?: insn->alt_group;
tools/objtool/check.c
3332
offstr(insn->sec, insn->offset));
tools/objtool/check.c
3340
static int noinline handle_insn_ops(struct instruction *insn,
tools/objtool/check.c
3348
for (op = insn->stack_ops; op; op = op->next) {
tools/objtool/check.c
3350
ret = update_cfi_state(insn, next_insn, &state->cfi, op);
tools/objtool/check.c
3354
if (!opts.uaccess || !insn->alt_group)
tools/objtool/check.c
3361
WARN_INSN(insn, "PUSHF stack exhausted");
tools/objtool/check.c
3380
TRACE_INSN_STATE(insn, &prev_state, state);
tools/objtool/check.c
3385
static bool insn_cfi_match(struct instruction *insn, struct cfi_state *cfi2)
tools/objtool/check.c
3387
struct cfi_state *cfi1 = insn->cfi;
tools/objtool/check.c
3397
WARN_INSN(insn, "stack state mismatch: cfa1=%d%+d cfa2=%d%+d",
tools/objtool/check.c
3410
WARN_INSN(insn, "stack state mismatch: reg1[%d]=%d%+d reg2[%d]=%d%+d",
tools/objtool/check.c
3419
WARN_INSN(insn, "stack state mismatch: type1=%d type2=%d",
tools/objtool/check.c
3428
WARN_INSN(insn, "stack state mismatch: drap1=%d(%d,%d) drap2=%d(%d,%d)",
tools/objtool/check.c
3445
static inline const char *call_dest_name(struct instruction *insn)
tools/objtool/check.c
3451
if (insn_call_dest(insn))
tools/objtool/check.c
3452
return insn_call_dest(insn)->name;
tools/objtool/check.c
3454
reloc = insn_reloc(NULL, insn);
tools/objtool/check.c
3464
static bool pv_call_dest(struct objtool_file *file, struct instruction *insn)
tools/objtool/check.c
3470
reloc = insn_reloc(file, insn);
tools/objtool/check.c
3474
idx = arch_insn_adjusted_addend(insn, reloc) / sizeof(void *);
tools/objtool/check.c
3492
struct instruction *insn,
tools/objtool/check.c
3501
return pv_call_dest(file, insn);
tools/objtool/check.c
3530
struct instruction *insn,
tools/objtool/check.c
3534
!noinstr_call_dest(file, insn, insn_call_dest(insn))) {
tools/objtool/check.c
3535
WARN_INSN(insn, "call to %s() leaves .noinstr.text section", call_dest_name(insn));
tools/objtool/check.c
3539
if (state->uaccess && !func_uaccess_safe(insn_call_dest(insn))) {
tools/objtool/check.c
3540
WARN_INSN(insn, "call to %s() with UACCESS enabled", call_dest_name(insn));
tools/objtool/check.c
3545
WARN_INSN(insn, "call to %s() with DF set", call_dest_name(insn));
tools/objtool/check.c
3553
struct instruction *insn,
tools/objtool/check.c
3556
if (insn_func(insn) && has_modified_stack_frame(insn, state)) {
tools/objtool/check.c
3557
WARN_INSN(insn, "sibling call from callable instruction with modified stack frame");
tools/objtool/check.c
3561
return validate_call(file, insn, state);
tools/objtool/check.c
3564
static int validate_return(struct symbol *func, struct instruction *insn, struct insn_state *state)
tools/objtool/check.c
3567
WARN_INSN(insn, "return with instrumentation enabled");
tools/objtool/check.c
3572
WARN_INSN(insn, "return with UACCESS enabled");
tools/objtool/check.c
3577
WARN_INSN(insn, "return with UACCESS disabled from a UACCESS-safe function");
tools/objtool/check.c
3582
WARN_INSN(insn, "return with DF set");
tools/objtool/check.c
3586
if (func && has_modified_stack_frame(insn, state)) {
tools/objtool/check.c
3587
WARN_INSN(insn, "return with modified stack frame");
tools/objtool/check.c
3592
WARN_INSN(insn, "BP used as a scratch register");
tools/objtool/check.c
3600
struct instruction *insn)
tools/objtool/check.c
3602
struct alt_group *alt_group = insn->alt_group;
tools/objtool/check.c
3617
if (insn == alt_group->last_insn)
tools/objtool/check.c
3619
if (insn == alt_group->nop)
tools/objtool/check.c
3622
if (insn == alt_group->last_insn && alt_group->orig_group)
tools/objtool/check.c
3626
return next_insn_same_sec(file, insn);
tools/objtool/check.c
3632
static bool skip_alt_group(struct instruction *insn)
tools/objtool/check.c
3634
struct instruction *alt_insn = insn->alts ? insn->alts->insn : NULL;
tools/objtool/check.c
3636
if (!insn->alt_group)
tools/objtool/check.c
3640
if (insn->alt_group->ignore) {
tools/objtool/check.c
3641
TRACE_ALT(insn, "alt group ignored");
tools/objtool/check.c
3704
struct instruction *insn)
tools/objtool/check.c
3706
struct reloc *reloc = insn_reloc(file, insn);
tools/objtool/check.c
3710
if (insn->fake)
tools/objtool/check.c
3713
checksum_update(func, insn, insn->sec->data->d_buf + insn->offset, insn->len);
tools/objtool/check.c
3716
struct symbol *call_dest = insn_call_dest(insn);
tools/objtool/check.c
3719
checksum_update(func, insn, call_dest->demangled_name,
tools/objtool/check.c
3725
offset = arch_insn_adjusted_addend(insn, reloc);
tools/objtool/check.c
3731
checksum_update(func, insn, str, strlen(str));
tools/objtool/check.c
3743
checksum_update(func, insn, sym->demangled_name, strlen(sym->demangled_name));
tools/objtool/check.c
3744
checksum_update(func, insn, &offset, sizeof(offset));
tools/objtool/check.c
3748
struct instruction *insn, struct insn_state state);
tools/objtool/check.c
3750
struct instruction *insn, struct insn_state *state);
tools/objtool/check.c
3753
struct instruction *insn, struct insn_state *statep,
tools/objtool/check.c
3769
if (insn->visited & VISITED_BRANCH_MASK) {
tools/objtool/check.c
3770
if (!insn->hint && !insn_cfi_match(insn, &statep->cfi))
tools/objtool/check.c
3773
if (insn->visited & visited) {
tools/objtool/check.c
3774
TRACE_INSN(insn, "already visited");
tools/objtool/check.c
3782
statep->instr += insn->instr;
tools/objtool/check.c
3784
if (insn->hint) {
tools/objtool/check.c
3785
if (insn->restore) {
tools/objtool/check.c
3788
i = insn;
tools/objtool/check.c
3799
WARN_INSN(insn, "no corresponding CFI save for CFI restore");
tools/objtool/check.c
3814
TRACE_INSN(insn, "defer restore");
tools/objtool/check.c
3818
WARN_INSN(insn, "objtool isn't smart enough to handle this CFI save/restore combo");
tools/objtool/check.c
3822
insn->cfi = save_insn->cfi;
tools/objtool/check.c
3826
statep->cfi = *insn->cfi;
tools/objtool/check.c
3831
insn->cfi = prev_insn->cfi;
tools/objtool/check.c
3834
insn->cfi = cfi_hash_find_or_add(&statep->cfi);
tools/objtool/check.c
3838
insn->visited |= visited;
tools/objtool/check.c
3840
if (propagate_alt_cfi(file, insn))
tools/objtool/check.c
3843
if (insn->alts) {
tools/objtool/check.c
3844
for (alt = insn->alts; alt; alt = alt->next) {
tools/objtool/check.c
3845
TRACE_ALT_BEGIN(insn, alt, alt_name);
tools/objtool/check.c
3846
ret = validate_branch(file, func, alt->insn, *statep);
tools/objtool/check.c
3847
TRACE_ALT_END(insn, alt, alt_name);
tools/objtool/check.c
3849
BT_INSN(insn, "(alt)");
tools/objtool/check.c
3853
TRACE_ALT_INFO_NOADDR(insn, "/ ", "DEFAULT");
tools/objtool/check.c
3856
if (skip_alt_group(insn))
tools/objtool/check.c
3859
if (handle_insn_ops(insn, next_insn, statep))
tools/objtool/check.c
3862
switch (insn->type) {
tools/objtool/check.c
3865
TRACE_INSN(insn, "return");
tools/objtool/check.c
3866
return validate_return(func, insn, statep);
tools/objtool/check.c
3870
if (insn->type == INSN_CALL)
tools/objtool/check.c
3871
TRACE_INSN(insn, "call");
tools/objtool/check.c
3873
TRACE_INSN(insn, "indirect call");
tools/objtool/check.c
3875
ret = validate_call(file, insn, statep);
tools/objtool/check.c
3879
if (opts.stackval && func && !is_special_call(insn) &&
tools/objtool/check.c
3881
WARN_INSN(insn, "call without frame pointer save/setup");
tools/objtool/check.c
3889
if (is_sibling_call(insn)) {
tools/objtool/check.c
3890
TRACE_INSN(insn, "sibling call");
tools/objtool/check.c
3891
ret = validate_sibling_call(file, insn, statep);
tools/objtool/check.c
3895
} else if (insn->jump_dest) {
tools/objtool/check.c
3896
if (insn->type == INSN_JUMP_UNCONDITIONAL)
tools/objtool/check.c
3897
TRACE_INSN(insn, "unconditional jump");
tools/objtool/check.c
3899
TRACE_INSN(insn, "jump taken");
tools/objtool/check.c
3901
ret = validate_branch(file, func, insn->jump_dest, *statep);
tools/objtool/check.c
3903
BT_INSN(insn, "(branch)");
tools/objtool/check.c
3908
if (insn->type == INSN_JUMP_UNCONDITIONAL)
tools/objtool/check.c
3911
TRACE_INSN(insn, "jump not taken");
tools/objtool/check.c
3916
TRACE_INSN(insn, "indirect jump");
tools/objtool/check.c
3917
if (is_sibling_call(insn)) {
tools/objtool/check.c
3918
ret = validate_sibling_call(file, insn, statep);
tools/objtool/check.c
3923
if (insn->type == INSN_JUMP_DYNAMIC)
tools/objtool/check.c
3929
TRACE_INSN(insn, "syscall");
tools/objtool/check.c
3931
WARN_INSN(insn, "unsupported instruction in callable function");
tools/objtool/check.c
3938
TRACE_INSN(insn, "sysret");
tools/objtool/check.c
3940
WARN_INSN(insn, "unsupported instruction in callable function");
tools/objtool/check.c
3947
TRACE_INSN(insn, "stac");
tools/objtool/check.c
3952
WARN_INSN(insn, "recursive UACCESS enable");
tools/objtool/check.c
3960
TRACE_INSN(insn, "clac");
tools/objtool/check.c
3965
WARN_INSN(insn, "redundant UACCESS disable");
tools/objtool/check.c
3970
WARN_INSN(insn, "UACCESS-safe disables UACCESS");
tools/objtool/check.c
3978
TRACE_INSN(insn, "std");
tools/objtool/check.c
3980
WARN_INSN(insn, "recursive STD");
tools/objtool/check.c
3988
TRACE_INSN(insn, "cld");
tools/objtool/check.c
3990
WARN_INSN(insn, "redundant CLD");
tools/objtool/check.c
4001
if (insn->dead_end)
tools/objtool/check.c
4002
TRACE_INSN(insn, "dead end");
tools/objtool/check.c
4004
*dead_end = insn->dead_end;
tools/objtool/check.c
4015
struct instruction *insn, struct insn_state *state)
tools/objtool/check.c
4025
insn->trace = 0;
tools/objtool/check.c
4026
next_insn = next_insn_to_validate(file, insn);
tools/objtool/check.c
4028
if (opts.checksum && func && insn->sec)
tools/objtool/check.c
4029
checksum_update_insn(file, func, insn);
tools/objtool/check.c
4031
if (func && insn_func(insn) && func != insn_func(insn)->pfunc) {
tools/objtool/check.c
4040
func->name, insn_func(insn)->name);
tools/objtool/check.c
4046
ret = validate_insn(file, func, insn, state, prev_insn, next_insn,
tools/objtool/check.c
4049
if (!insn->trace) {
tools/objtool/check.c
4051
TRACE_INSN(insn, "warning (%d)", ret);
tools/objtool/check.c
4053
TRACE_INSN(insn, NULL);
tools/objtool/check.c
4064
insn->sec->name);
tools/objtool/check.c
4068
prev_insn = insn;
tools/objtool/check.c
4069
insn = next_insn;
tools/objtool/check.c
4077
struct instruction *insn, struct insn_state state)
tools/objtool/check.c
4082
ret = do_validate_branch(file, func, insn, &state);
tools/objtool/check.c
4089
struct instruction *insn,
tools/objtool/check.c
4092
if (insn->hint && !insn->visited) {
tools/objtool/check.c
4093
struct symbol *func = insn_func(insn);
tools/objtool/check.c
4099
ret = validate_branch(file, func, insn, *state);
tools/objtool/check.c
4101
BT_INSN(insn, "<=== (hint)");
tools/objtool/check.c
4110
struct instruction *insn;
tools/objtool/check.c
4120
sec_for_each_insn(file, sec, insn)
tools/objtool/check.c
4121
warnings += validate_unwind_hint(file, insn, &state);
tools/objtool/check.c
4123
for_each_insn(file, insn)
tools/objtool/check.c
4124
warnings += validate_unwind_hint(file, insn, &state);
tools/objtool/check.c
4136
static int validate_unret(struct objtool_file *file, struct instruction *insn)
tools/objtool/check.c
4142
next = next_insn_to_validate(file, insn);
tools/objtool/check.c
4144
if (insn->visited & VISITED_UNRET)
tools/objtool/check.c
4147
insn->visited |= VISITED_UNRET;
tools/objtool/check.c
4149
if (insn->alts) {
tools/objtool/check.c
4151
for (alt = insn->alts; alt; alt = alt->next) {
tools/objtool/check.c
4152
ret = validate_unret(file, alt->insn);
tools/objtool/check.c
4154
BT_INSN(insn, "(alt)");
tools/objtool/check.c
416
struct instruction *insn;
tools/objtool/check.c
4160
switch (insn->type) {
tools/objtool/check.c
4165
WARN_INSN(insn, "early indirect call");
tools/objtool/check.c
4170
if (!is_sibling_call(insn)) {
tools/objtool/check.c
4171
if (!insn->jump_dest) {
tools/objtool/check.c
4172
WARN_INSN(insn, "unresolved jump target after linking?!?");
tools/objtool/check.c
4175
ret = validate_unret(file, insn->jump_dest);
tools/objtool/check.c
4177
BT_INSN(insn, "(branch%s)",
tools/objtool/check.c
4178
insn->type == INSN_JUMP_CONDITIONAL ? "-cond" : "");
tools/objtool/check.c
4182
if (insn->type == INSN_JUMP_UNCONDITIONAL)
tools/objtool/check.c
4190
dest = find_insn(file, insn_call_dest(insn)->sec,
tools/objtool/check.c
4191
insn_call_dest(insn)->offset);
tools/objtool/check.c
4194
insn_call_dest(insn)->name);
tools/objtool/check.c
4200
BT_INSN(insn, "(call)");
tools/objtool/check.c
4210
WARN_INSN(insn, "RET before UNTRAIN");
tools/objtool/check.c
4220
if (insn->retpoline_safe)
tools/objtool/check.c
4228
if (insn->dead_end)
tools/objtool/check.c
4232
WARN_INSN(insn, "teh end!");
tools/objtool/check.c
4235
insn = next;
tools/objtool/check.c
4247
struct instruction *insn;
tools/objtool/check.c
4250
for_each_insn(file, insn) {
tools/objtool/check.c
4251
if (!insn->unret)
tools/objtool/check.c
4254
warnings += validate_unret(file, insn);
tools/objtool/check.c
4262
struct instruction *insn;
tools/objtool/check.c
4265
for_each_insn(file, insn) {
tools/objtool/check.c
4266
if (insn->type != INSN_JUMP_DYNAMIC &&
tools/objtool/check.c
4267
insn->type != INSN_CALL_DYNAMIC &&
tools/objtool/check.c
4268
insn->type != INSN_RETURN)
tools/objtool/check.c
4271
if (insn->retpoline_safe)
tools/objtool/check.c
4274
if (insn->sec->init)
tools/objtool/check.c
4277
if (insn->type == INSN_RETURN) {
tools/objtool/check.c
4279
WARN_INSN(insn, "'naked' return found in MITIGATION_RETHUNK build");
tools/objtool/check.c
4285
WARN_INSN(insn, "indirect %s found in MITIGATION_RETPOLINE build",
tools/objtool/check.c
4286
insn->type == INSN_JUMP_DYNAMIC ? "jump" : "call");
tools/objtool/check.c
4306
list_for_each_entry(insn, &file->retpoline_call_list, call_node) {
tools/objtool/check.c
4307
struct symbol *sym = insn->sym;
tools/objtool/check.c
4312
prev_insn_same_sym(file, insn);
tools/objtool/check.c
4315
WARN_INSN(insn, "no-cfi indirect call!");
tools/objtool/check.c
4324
static bool is_kasan_insn(struct instruction *insn)
tools/objtool/check.c
4326
return (insn->type == INSN_CALL &&
tools/objtool/check.c
4327
!strcmp(insn_call_dest(insn)->name, "__asan_handle_no_return"));
tools/objtool/check.c
4330
static bool is_ubsan_insn(struct instruction *insn)
tools/objtool/check.c
4332
return (insn->type == INSN_CALL &&
tools/objtool/check.c
4333
!strcmp(insn_call_dest(insn)->name,
tools/objtool/check.c
4337
static bool ignore_unreachable_insn(struct objtool_file *file, struct instruction *insn)
tools/objtool/check.c
4339
struct symbol *func = insn_func(insn);
tools/objtool/check.c
4343
if (insn->type == INSN_NOP || insn->type == INSN_TRAP ||
tools/objtool/check.c
4344
insn->hole || (func && func->ignore))
tools/objtool/check.c
4351
if (!strcmp(insn->sec->name, ".altinstr_replacement") ||
tools/objtool/check.c
4352
!strcmp(insn->sec->name, ".altinstr_aux"))
tools/objtool/check.c
4369
prev_insn = prev_insn_same_sec(file, insn);
tools/objtool/check.c
4371
(insn->type == INSN_BUG ||
tools/objtool/check.c
4372
(insn->type == INSN_JUMP_UNCONDITIONAL &&
tools/objtool/check.c
4373
insn->jump_dest && insn->jump_dest->type == INSN_BUG)))
tools/objtool/check.c
4384
if (is_kasan_insn(insn) || is_ubsan_insn(insn))
tools/objtool/check.c
4387
if (insn->type == INSN_JUMP_UNCONDITIONAL) {
tools/objtool/check.c
4388
if (insn->jump_dest &&
tools/objtool/check.c
4389
insn_func(insn->jump_dest) == func) {
tools/objtool/check.c
4390
insn = insn->jump_dest;
tools/objtool/check.c
4397
if (insn->offset + insn->len >= func->offset + func->len)
tools/objtool/check.c
44
struct instruction *insn;
tools/objtool/check.c
4400
insn = next_insn_same_sec(file, insn);
tools/objtool/check.c
4424
struct instruction *insn, *prev;
tools/objtool/check.c
4449
insn = find_insn(file, func->sec, func->offset);
tools/objtool/check.c
4450
if (!insn) {
tools/objtool/check.c
4455
for (prev = prev_insn_same_sec(file, insn);
tools/objtool/check.c
446
for (offset = 0; offset < sec_size(sec); offset += insn->len) {
tools/objtool/check.c
448
insns = calloc(INSN_CHUNK_SIZE, sizeof(*insn));
tools/objtool/check.c
4483
if (!insn->cfi) {
tools/objtool/check.c
4492
cfi = cfi_hash_find_or_add(insn->cfi);
tools/objtool/check.c
4493
for (; prev != insn; prev = next_insn_same_sec(file, prev))
tools/objtool/check.c
4520
struct instruction *insn;
tools/objtool/check.c
4532
insn = find_insn(file, sec, sym->offset);
tools/objtool/check.c
4533
if (!insn || insn->visited)
tools/objtool/check.c
4539
func = insn_func(insn);
tools/objtool/check.c
4549
ret = validate_branch(file, func, insn, *state);
tools/objtool/check.c
4551
BT_INSN(insn, "<=== (sym)");
tools/objtool/check.c
457
insn = &insns[idx];
tools/objtool/check.c
458
insn->idx = idx;
tools/objtool/check.c
46
hash_for_each_possible(file->insn_hash, insn, hash, sec_offset_hash(sec, offset)) {
tools/objtool/check.c
460
INIT_LIST_HEAD(&insn->call_node);
tools/objtool/check.c
461
insn->sec = sec;
tools/objtool/check.c
462
insn->offset = offset;
tools/objtool/check.c
4622
static void mark_endbr_used(struct instruction *insn)
tools/objtool/check.c
4624
if (!list_empty(&insn->call_node))
tools/objtool/check.c
4625
list_del_init(&insn->call_node);
tools/objtool/check.c
4628
static bool noendbr_range(struct objtool_file *file, struct instruction *insn)
tools/objtool/check.c
463
insn->prev_len = prev_len;
tools/objtool/check.c
4630
struct symbol *sym = find_symbol_containing(insn->sec, insn->offset-1);
tools/objtool/check.c
4643
return insn->offset == sym->offset + sym->len;
tools/objtool/check.c
4646
static int __validate_ibt_insn(struct objtool_file *file, struct instruction *insn,
tools/objtool/check.c
465
if (arch_decode_instruction(file, sec, offset, sec_size(sec) - offset, insn))
tools/objtool/check.c
4654
if (insn_func(dest) && insn_func(insn) &&
tools/objtool/check.c
4655
insn_func(dest)->pfunc == insn_func(insn)->pfunc) {
tools/objtool/check.c
468
prev_len = insn->len;
tools/objtool/check.c
4687
WARN_INSN(insn, "relocation to !ENDBR: %s", offstr(dest->sec, dest->offset));
tools/objtool/check.c
4691
static int validate_ibt_insn(struct objtool_file *file, struct instruction *insn)
tools/objtool/check.c
47
if (insn->sec == sec && insn->offset == offset)
tools/objtool/check.c
4702
switch (insn->type) {
tools/objtool/check.c
4715
if (!insn_reloc(file, insn)) {
tools/objtool/check.c
4718
off = arch_jump_destination(insn);
tools/objtool/check.c
4720
dest = find_insn(file, insn->sec, off);
tools/objtool/check.c
4722
WARN_INSN(insn, "corrupt function pointer reference");
tools/objtool/check.c
4726
return __validate_ibt_insn(file, insn, dest);
tools/objtool/check.c
4734
for (reloc = insn_reloc(file, insn);
tools/objtool/check.c
4736
reloc = find_reloc_by_dest_range(file->elf, insn->sec,
tools/objtool/check.c
4738
(insn->offset + insn->len) - (reloc_offset(reloc) + 1))) {
tools/objtool/check.c
4740
off = reloc->sym->offset + arch_insn_adjusted_addend(insn, reloc);
tools/objtool/check.c
4746
warnings += __validate_ibt_insn(file, insn, dest);
tools/objtool/check.c
475
if (insn->type == INSN_BUG)
tools/objtool/check.c
476
insn->dead_end = true;
tools/objtool/check.c
478
hash_add(file->insn_hash, &insn->hash, sec_offset_hash(sec, insn->offset));
tools/objtool/check.c
4785
struct instruction *insn;
tools/objtool/check.c
4788
for_each_insn(file, insn)
tools/objtool/check.c
4789
warnings += validate_ibt_insn(file, insn);
tools/objtool/check.c
48
return insn;
tools/objtool/check.c
4838
struct instruction *insn, *next_insn;
tools/objtool/check.c
4841
for_each_insn(file, insn) {
tools/objtool/check.c
4842
next_insn = next_insn_same_sec(file, insn);
tools/objtool/check.c
4844
if (insn->retpoline_safe)
tools/objtool/check.c
4847
switch (insn->type) {
tools/objtool/check.c
4850
WARN_INSN(insn, "missing int3 after ret");
tools/objtool/check.c
4857
WARN_INSN(insn, "missing int3 after indirect jump");
tools/objtool/check.c
4871
struct instruction *insn, *prev_insn;
tools/objtool/check.c
4878
for_each_insn(file, insn) {
tools/objtool/check.c
4879
if (insn->visited || ignore_unreachable_insn(file, insn))
tools/objtool/check.c
4882
prev_insn = prev_insn_same_sec(file, insn);
tools/objtool/check.c
4886
WARN_INSN(insn, "%s() missing __noreturn in .c/.h or NORETURN() in noreturns.h",
tools/objtool/check.c
4893
WARN_INSN(insn, "unreachable instruction");
tools/objtool/check.c
4953
struct instruction *insn;
tools/objtool/check.c
4956
for_each_insn(file, insn) {
tools/objtool/check.c
4957
if (!insn->idx) {
tools/objtool/check.c
4959
chunk->addr = insn;
tools/objtool/check.c
4969
const char *objtool_disas_insn(struct instruction *insn)
tools/objtool/check.c
4976
disas_insn(dctx, insn);
tools/objtool/check.c
502
sym_for_each_insn(file, func, insn) {
tools/objtool/check.c
503
insn->sym = func;
tools/objtool/check.c
505
insn->type == INSN_ENDBR &&
tools/objtool/check.c
506
list_empty(&insn->call_node)) {
tools/objtool/check.c
507
if (insn->offset == func->offset) {
tools/objtool/check.c
508
list_add_tail(&insn->call_node, &file->endbr_list);
tools/objtool/check.c
55
struct instruction *insn)
tools/objtool/check.c
57
if (insn->idx == INSN_CHUNK_MAX)
tools/objtool/check.c
58
return find_insn(file, insn->sec, insn->offset + insn->len);
tools/objtool/check.c
60
insn++;
tools/objtool/check.c
61
if (!insn->len)
tools/objtool/check.c
64
return insn;
tools/objtool/check.c
669
struct instruction *insn;
tools/objtool/check.c
68
struct instruction *insn)
tools/objtool/check.c
691
list_for_each_entry(insn, &file->static_call_list, call_node)
tools/objtool/check.c
70
struct instruction *next = next_insn_same_sec(file, insn);
tools/objtool/check.c
703
list_for_each_entry(insn, &file->static_call_list, call_node) {
tools/objtool/check.c
708
insn->sec, insn->offset))
tools/objtool/check.c
71
struct symbol *func = insn_func(insn);
tools/objtool/check.c
712
key_name = strdup(insn_call_dest(insn)->name);
tools/objtool/check.c
741
key_sym = insn_call_dest(insn);
tools/objtool/check.c
748
is_sibling_call(insn) * STATIC_CALL_SITE_TAIL))
tools/objtool/check.c
759
struct instruction *insn;
tools/objtool/check.c
770
list_for_each_entry(insn, &file->retpoline_call_list, call_node)
tools/objtool/check.c
782
list_for_each_entry(insn, &file->retpoline_call_list, call_node) {
tools/objtool/check.c
786
insn->sec, insn->offset))
tools/objtool/check.c
797
struct instruction *insn;
tools/objtool/check.c
808
list_for_each_entry(insn, &file->return_thunk_list, call_node)
tools/objtool/check.c
820
list_for_each_entry(insn, &file->return_thunk_list, call_node) {
tools/objtool/check.c
824
insn->sec, insn->offset))
tools/objtool/check.c
835
struct instruction *insn;
tools/objtool/check.c
846
list_for_each_entry(insn, &file->endbr_list, call_node)
tools/objtool/check.c
864
list_for_each_entry(insn, &file->endbr_list, call_node) {
tools/objtool/check.c
867
struct symbol *sym = insn->sym;
tools/objtool/check.c
871
insn->offset == sym->offset &&
tools/objtool/check.c
88
struct instruction *insn)
tools/objtool/check.c
881
insn->sec, insn->offset))
tools/objtool/check.c
90
if (insn->idx == 0) {
tools/objtool/check.c
91
if (insn->prev_len)
tools/objtool/check.c
92
return find_insn(file, insn->sec, insn->offset - insn->prev_len);
tools/objtool/check.c
940
struct instruction *insn;
tools/objtool/check.c
96
return insn - 1;
tools/objtool/check.c
960
list_for_each_entry(insn, &file->mcount_loc_list, call_node)
tools/objtool/check.c
971
list_for_each_entry(insn, &file->mcount_loc_list, call_node) {
tools/objtool/check.c
976
insn->sec, insn->offset);
tools/objtool/check.c
990
struct instruction *insn;
tools/objtool/disas.c
1003
if (!dalts[i].insn[j].str)
tools/objtool/disas.c
1006
orig_insn->offset + dalts[i].insn[j].offset, 0,
tools/objtool/disas.c
1007
"| %s\n", dalts[i].insn[j].str);
tools/objtool/disas.c
1038
if (!dalt->insn[j].str || !dalt->insn[j].nops)
tools/objtool/disas.c
1040
offset = dalt->insn[j].offset;
tools/objtool/disas.c
1041
free(dalt->insn[j].str);
tools/objtool/disas.c
1042
dalt->insn[j].offset = 0;
tools/objtool/disas.c
1043
dalt->insn[j].str = NULL;
tools/objtool/disas.c
1044
nops += dalt->insn[j].nops;
tools/objtool/disas.c
1056
dalt->insn[j + 1].str = strfmt("nop%s%d", s, nops);
tools/objtool/disas.c
1057
dalt->insn[j + 1].offset = offset;
tools/objtool/disas.c
1058
dalt->insn[j + 1].nops = nops;
tools/objtool/disas.c
1171
free(dalts[i].insn[j].str);
tools/objtool/disas.c
1185
struct instruction *insn;
tools/objtool/disas.c
1188
sym_for_each_insn(dctx->file, func, insn) {
tools/objtool/disas.c
1189
if (insn->alts) {
tools/objtool/disas.c
1190
insn_start = insn;
tools/objtool/disas.c
1191
insn = disas_alt(dctx, insn);
tools/objtool/disas.c
1192
if (insn)
tools/objtool/disas.c
1202
insn = insn_start;
tools/objtool/disas.c
1205
DISAS_PRINSN(dctx, insn, 0);
tools/objtool/disas.c
122
WARN_FUNC(dctx->insn->sec, dctx->insn->offset,
tools/objtool/disas.c
130
WARN_FUNC(dctx->insn->sec, dctx->insn->offset,
tools/objtool/disas.c
203
alt_group = dctx->insn->alt_group;
tools/objtool/disas.c
224
struct instruction *insn = dctx->insn;
tools/objtool/disas.c
230
if (insn->sym && addr >= insn->sym->offset &&
tools/objtool/disas.c
231
addr < insn->sym->offset + insn->sym->len) {
tools/objtool/disas.c
232
sym = insn->sym;
tools/objtool/disas.c
235
disas_print_addr_sym(insn->sec, sym, addr, dinfo);
tools/objtool/disas.c
241
struct instruction *insn = dctx->insn;
tools/objtool/disas.c
247
reloc = find_reloc_by_dest_range(dctx->file->elf, insn->sec,
tools/objtool/disas.c
248
insn->offset, insn->len);
tools/objtool/disas.c
261
offset = arch_insn_adjusted_addend(insn, reloc);
tools/objtool/disas.c
27
struct instruction *insn;
tools/objtool/disas.c
283
struct instruction *insn = dctx->insn;
tools/objtool/disas.c
293
jump_dest = insn->jump_dest;
tools/objtool/disas.c
308
is_reloc = (addr == insn->offset + insn->len);
tools/objtool/disas.c
314
sym = insn_call_dest(insn);
tools/objtool/disas.c
425
#define DISAS_PRINSN(dctx, insn, depth) \
tools/objtool/disas.c
426
disas_print_insn(stdout, dctx, insn, depth, "\n")
tools/objtool/disas.c
486
void disas_print_info(FILE *stream, struct instruction *insn, int depth,
tools/objtool/disas.c
493
if (insn) {
tools/objtool/disas.c
494
sec = insn->sec;
tools/objtool/disas.c
495
off = insn->offset;
tools/objtool/disas.c
511
struct instruction *insn, int depth,
tools/objtool/disas.c
524
fake_nop = (!insn->sec && insn->type == INSN_NOP);
tools/objtool/disas.c
526
snprintf(fake_nop_insn, 32, "<fake nop> (%d bytes)", insn->len);
tools/objtool/disas.c
529
disas_insn(dctx, insn);
tools/objtool/disas.c
535
disas_print_info(stream, insn, depth, "%-*s", len, insn_str);
tools/objtool/disas.c
56
} insn[DISAS_ALT_INSN_MAX]; /* alternative instructions */
tools/objtool/disas.c
562
struct instruction *insn,
tools/objtool/disas.c
568
dctx->insn = insn;
tools/objtool/disas.c
572
if (insn->type == INSN_NOP) {
tools/objtool/disas.c
573
DINFO_FPRINTF(dinfo, "nop%d", insn->len);
tools/objtool/disas.c
574
return insn->len;
tools/objtool/disas.c
581
dinfo->buffer = insn->sec->data->d_buf;
tools/objtool/disas.c
583
dinfo->buffer_length = insn->sec->sh.sh_size;
tools/objtool/disas.c
585
return disasm(insn->offset, &dctx->info);
tools/objtool/disas.c
588
size_t disas_insn(struct disas_context *dctx, struct instruction *insn)
tools/objtool/disas.c
590
return disas_insn_common(dctx, insn, false);
tools/objtool/disas.c
594
struct instruction *insn)
tools/objtool/disas.c
596
return disas_insn_common(dctx, insn, true);
tools/objtool/disas.c
601
struct instruction *insn)
tools/objtool/disas.c
603
if (alt_grp->last_insn == insn || alt_grp->nop == insn)
tools/objtool/disas.c
606
return next_insn_same_sec(file, insn);
tools/objtool/disas.c
609
#define alt_for_each_insn(file, alt_grp, insn) \
tools/objtool/disas.c
61
#define DALT_INSN(dalt) (DALT_DEFAULT(dalt) ? (dalt)->orig_insn : (dalt)->alt->insn)
tools/objtool/disas.c
610
for (insn = alt_grp->first_insn; \
tools/objtool/disas.c
611
insn; \
tools/objtool/disas.c
612
insn = next_insn_same_alt(file, alt_grp, insn))
tools/objtool/disas.c
624
const char *disas_alt_type_name(struct instruction *insn)
tools/objtool/disas.c
630
for (alt = insn->alts; alt; alt = alt->next) {
tools/objtool/disas.c
689
if (!alt->insn->alt_group)
tools/objtool/disas.c
692
feature = alt->insn->alt_group->feature;
tools/objtool/disas.c
747
dalt->insn[index].str = insn_str;
tools/objtool/disas.c
748
dalt->insn[index].offset = offset;
tools/objtool/disas.c
749
dalt->insn[index].nops = nops;
tools/objtool/disas.c
765
dest_insn = dalt->alt->insn;
tools/objtool/disas.c
795
alt_insn = dalt->alt->insn;
tools/objtool/disas.c
814
struct instruction *insn;
tools/objtool/disas.c
826
alt_for_each_insn(file, DALT_GROUP(dalt), insn) {
tools/objtool/disas.c
828
disas_insn_alt(dctx, insn);
tools/objtool/disas.c
833
nops = insn->type == INSN_NOP ? insn->len : 0;
tools/objtool/disas.c
837
offset += insn->len;
tools/objtool/disas.c
900
if (dalt->insn[j].offset == offset) {
tools/objtool/disas.c
901
str = dalt->insn[j].str;
tools/objtool/disas.c
913
if (dalt->insn[j].offset > 0 &&
tools/objtool/disas.c
915
(dalt->insn[j].offset < offset_next)))
tools/objtool/disas.c
916
offset_next = dalt->insn[j].offset;
tools/objtool/disas.c
994
dalts[i].insn[0].str, dalts[i].name);
tools/objtool/elf.c
1659
const char *insn)
tools/objtool/elf.c
1668
memcpy(data->d_buf + offset, insn, len);
tools/objtool/include/objtool/arch.h
80
struct instruction *insn);
tools/objtool/include/objtool/arch.h
84
unsigned long arch_jump_destination(struct instruction *insn);
tools/objtool/include/objtool/arch.h
86
s64 arch_insn_adjusted_addend(struct instruction *insn, struct reloc *reloc);
tools/objtool/include/objtool/check.h
102
static inline struct symbol *insn_func(struct instruction *insn)
tools/objtool/include/objtool/check.h
104
struct symbol *sym = insn->sym;
tools/objtool/include/objtool/check.h
117
static inline bool is_static_jump(struct instruction *insn)
tools/objtool/include/objtool/check.h
119
return insn->type == INSN_JUMP_CONDITIONAL ||
tools/objtool/include/objtool/check.h
120
insn->type == INSN_JUMP_UNCONDITIONAL;
tools/objtool/include/objtool/check.h
123
static inline bool is_dynamic_jump(struct instruction *insn)
tools/objtool/include/objtool/check.h
125
return insn->type == INSN_JUMP_DYNAMIC ||
tools/objtool/include/objtool/check.h
126
insn->type == INSN_JUMP_DYNAMIC_CONDITIONAL;
tools/objtool/include/objtool/check.h
129
static inline bool is_jump(struct instruction *insn)
tools/objtool/include/objtool/check.h
131
return is_static_jump(insn) || is_dynamic_jump(insn);
tools/objtool/include/objtool/check.h
134
static inline struct symbol *insn_call_dest(struct instruction *insn)
tools/objtool/include/objtool/check.h
136
if (insn->type == INSN_JUMP_DYNAMIC ||
tools/objtool/include/objtool/check.h
137
insn->type == INSN_CALL_DYNAMIC)
tools/objtool/include/objtool/check.h
140
return insn->_call_dest;
tools/objtool/include/objtool/check.h
146
struct instruction *next_insn_same_sec(struct objtool_file *file, struct instruction *insn);
tools/objtool/include/objtool/check.h
148
#define sec_for_each_insn(file, _sec, insn) \
tools/objtool/include/objtool/check.h
149
for (insn = find_insn(file, _sec, 0); \
tools/objtool/include/objtool/check.h
150
insn && insn->sec == _sec; \
tools/objtool/include/objtool/check.h
151
insn = next_insn_same_sec(file, insn))
tools/objtool/include/objtool/check.h
153
#define sym_for_each_insn(file, sym, insn) \
tools/objtool/include/objtool/check.h
154
for (insn = find_insn(file, sym->sec, sym->offset); \
tools/objtool/include/objtool/check.h
155
insn && insn->offset < sym->offset + sym->len; \
tools/objtool/include/objtool/check.h
156
insn = next_insn_same_sec(file, insn))
tools/objtool/include/objtool/check.h
158
const char *objtool_disas_insn(struct instruction *insn);
tools/objtool/include/objtool/check.h
50
struct instruction *insn;
tools/objtool/include/objtool/checksum.h
18
struct instruction *insn,
tools/objtool/include/objtool/checksum.h
22
dbg_checksum(func, insn, XXH3_64bits_digest(func->csum.state));
tools/objtool/include/objtool/checksum.h
37
struct instruction *insn,
tools/objtool/include/objtool/disas.h
22
size_t disas_insn(struct disas_context *dctx, struct instruction *insn);
tools/objtool/include/objtool/disas.h
24
void disas_print_info(FILE *stream, struct instruction *insn, int depth,
tools/objtool/include/objtool/disas.h
27
struct instruction *insn, int depth,
tools/objtool/include/objtool/disas.h
30
const char *disas_alt_type_name(struct instruction *insn);
tools/objtool/include/objtool/disas.h
54
struct instruction *insn)
tools/objtool/include/objtool/disas.h
64
static inline void disas_print_info(FILE *stream, struct instruction *insn,
tools/objtool/include/objtool/disas.h
67
struct instruction *insn, int depth,
tools/objtool/include/objtool/disas.h
74
static inline const char *disas_alt_type_name(struct instruction *insn)
tools/objtool/include/objtool/elf.h
179
unsigned int len, const char *insn);
tools/objtool/include/objtool/orc.h
7
int init_orc_entry(struct orc_entry *orc, struct cfi_state *cfi, struct instruction *insn);
tools/objtool/include/objtool/special.h
36
struct instruction *insn,
tools/objtool/include/objtool/special.h
39
struct instruction *insn,
tools/objtool/include/objtool/trace.h
108
void trace_insn_state(struct instruction *insn, struct insn_state *sprev,
tools/objtool/include/objtool/trace.h
118
#define TRACE_ADDR(insn, fmt, ...) ({})
tools/objtool/include/objtool/trace.h
119
#define TRACE_INSN(insn, fmt, ...) ({})
tools/objtool/include/objtool/trace.h
120
#define TRACE_INSN_STATE(insn, sprev, snext) ({})
tools/objtool/include/objtool/trace.h
121
#define TRACE_ALT(insn, fmt, ...) ({})
tools/objtool/include/objtool/trace.h
122
#define TRACE_ALT_INFO(insn, fmt, ...) ({})
tools/objtool/include/objtool/trace.h
123
#define TRACE_ALT_INFO_NOADDR(insn, fmt, ...) ({})
tools/objtool/include/objtool/trace.h
124
#define TRACE_ALT_BEGIN(insn, alt, alt_name) ({})
tools/objtool/include/objtool/trace.h
125
#define TRACE_ALT_END(insn, alt, alt_name) ({})
tools/objtool/include/objtool/trace.h
26
#define TRACE_ADDR(insn, fmt, ...) \
tools/objtool/include/objtool/trace.h
29
disas_print_info(stderr, insn, trace_depth - 1, \
tools/objtool/include/objtool/trace.h
37
#define TRACE_INSN(insn, fmt, ...) \
tools/objtool/include/objtool/trace.h
41
insn, trace_depth - 1, \
tools/objtool/include/objtool/trace.h
44
insn->trace = 1; \
tools/objtool/include/objtool/trace.h
48
#define TRACE_INSN_STATE(insn, sprev, snext) \
tools/objtool/include/objtool/trace.h
51
trace_insn_state(insn, sprev, snext); \
tools/objtool/include/objtool/trace.h
55
#define TRACE_ALT_ARG(insn) disas_alt_type_name(insn), (insn)->offset
tools/objtool/include/objtool/trace.h
57
#define TRACE_ALT(insn, fmt, ...) \
tools/objtool/include/objtool/trace.h
58
TRACE_INSN(insn, TRACE_ALT_FMT("", fmt), \
tools/objtool/include/objtool/trace.h
59
TRACE_ALT_ARG(insn), ##__VA_ARGS__)
tools/objtool/include/objtool/trace.h
61
#define TRACE_ALT_INFO(insn, pfx, fmt, ...) \
tools/objtool/include/objtool/trace.h
62
TRACE_ADDR(insn, TRACE_ALT_FMT(pfx, fmt), \
tools/objtool/include/objtool/trace.h
63
TRACE_ALT_ARG(insn), ##__VA_ARGS__)
tools/objtool/include/objtool/trace.h
65
#define TRACE_ALT_INFO_NOADDR(insn, pfx, fmt, ...) \
tools/objtool/include/objtool/trace.h
67
TRACE_ALT_ARG(insn), ##__VA_ARGS__)
tools/objtool/include/objtool/trace.h
69
#define TRACE_ALT_BEGIN(insn, alt, alt_name) \
tools/objtool/include/objtool/trace.h
73
trace_alt_begin(insn, alt, alt_name); \
tools/objtool/include/objtool/trace.h
77
#define TRACE_ALT_END(insn, alt, alt_name) \
tools/objtool/include/objtool/trace.h
80
trace_alt_end(insn, alt, alt_name); \
tools/objtool/include/objtool/warn.h
110
#define ERROR_INSN(insn, format, ...) ERROR_FUNC(insn->sec, insn->offset, format, ##__VA_ARGS__)
tools/objtool/include/objtool/warn.h
150
#define dbg_checksum(func, insn, checksum) \
tools/objtool/include/objtool/warn.h
152
if (unlikely(insn->sym && insn->sym->pfunc && \
tools/objtool/include/objtool/warn.h
153
insn->sym->pfunc->debug_checksum)) { \
tools/objtool/include/objtool/warn.h
154
char *insn_off = offstr(insn->sec, insn->offset); \
tools/objtool/include/objtool/warn.h
77
#define WARN_INSN(insn, format, ...) \
tools/objtool/include/objtool/warn.h
79
struct instruction *_insn = (insn); \
tools/objtool/include/objtool/warn.h
89
#define BT_INSN(insn, format, ...) \
tools/objtool/include/objtool/warn.h
92
struct instruction *__insn = (insn); \
tools/objtool/orc_gen.c
101
if (orc_list_add(&orc_list, &orc, insn->sec,
tools/objtool/orc_gen.c
102
insn->offset + i))
tools/objtool/orc_gen.c
110
insn = alt_group->last_insn;
tools/objtool/orc_gen.c
61
struct instruction *insn;
tools/objtool/orc_gen.c
67
sec_for_each_insn(file, sec, insn) {
tools/objtool/orc_gen.c
68
struct alt_group *alt_group = insn->alt_group;
tools/objtool/orc_gen.c
72
if (init_orc_entry(&orc, insn->cfi, insn))
tools/objtool/orc_gen.c
77
insn->offset))
tools/objtool/orc_gen.c
97
if (init_orc_entry(&orc, cfi, insn))
tools/objtool/trace.c
111
void trace_insn_state(struct instruction *insn, struct insn_state *sprev,
tools/objtool/trace.c
123
disas_print_insn(stderr, objtool_disas_ctx, insn,
tools/objtool/trace.c
147
insn->trace = 1;
tools/objtool/trace.c
156
alt_insn = alt->insn;
tools/perf/arch/x86/tests/insn-x86.c
104
struct insn insn;
tools/perf/arch/x86/tests/insn-x86.c
106
ret = insn_decode(&insn, dat->data, MAX_INSN_SIZE,
tools/perf/arch/x86/tests/insn-x86.c
113
if (insn.length != dat->expected_length) {
tools/perf/arch/x86/tests/insn-x86.c
115
insn.length, dat->expected_length, dat->asm_rep);
tools/perf/builtin-script.c
1248
int insn, FILE *fp, int *total_cycles,
tools/perf/builtin-script.c
1303
if (insn)
tools/perf/builtin-script.c
1304
printed += fprintf(fp, " %.2f IPC", (float)insn / en->flags.cycles);
tools/perf/builtin-script.c
1359
int i, insn, len, nr, ilen, printed = 0;
tools/perf/builtin-script.c
1415
insn = 0;
tools/perf/builtin-script.c
1423
printed += ip__fprintf_jump(ip, &entries[i], &x, buffer + off, len - off, ++insn, fp,
tools/perf/builtin-script.c
1439
insn++;
tools/perf/dlfilters/dlfilter-test-api-v0.c
106
const __u8 *(*insn)(void *ctx, __u32 *length);
tools/perf/dlfilters/dlfilter-test-api-v2.c
116
const __u8 *(*insn)(void *ctx, __u32 *length);
tools/perf/include/perf/perf_dlfilter.h
111
const __u8 *(*insn)(void *ctx, __u32 *length);
tools/perf/scripts/python/Perf-Trace-Util/Context.c
101
return _PyBytes_FromStringAndSize(c->sample->insn, c->sample->insn_len);
tools/perf/util/capstone.c
100
static void perf_cs_free(struct cs_insn *insn, size_t count)
tools/perf/util/capstone.c
103
cs_free(insn, count);
tools/perf/util/capstone.c
106
static void (*fn)(struct cs_insn *insn, size_t count);
tools/perf/util/capstone.c
116
fn(insn, count);
tools/perf/util/capstone.c
188
static size_t print_insn_x86(struct thread *thread, u8 cpumode, struct cs_insn *insn,
tools/perf/util/capstone.c
194
if (insn->detail && insn->detail->x86.op_count == 1) {
tools/perf/util/capstone.c
195
struct cs_x86_op *op = &insn->detail->x86.operands[0];
tools/perf/util/capstone.c
200
printed += fprintf(fp, "%s ", insn[0].mnemonic);
tools/perf/util/capstone.c
210
printed += fprintf(fp, "%s %s", insn[0].mnemonic, insn[0].op_str);
tools/perf/util/capstone.c
224
struct cs_insn *insn;
tools/perf/util/capstone.c
234
count = perf_cs_disasm(cs_handle, code, code_size, ip, 1, &insn);
tools/perf/util/capstone.c
237
printed = print_insn_x86(thread, cpumode, &insn[0], print_opts, fp);
tools/perf/util/capstone.c
239
printed = fprintf(fp, "%s %s", insn[0].mnemonic, insn[0].op_str);
tools/perf/util/capstone.c
241
*lenp = insn->size;
tools/perf/util/capstone.c
242
perf_cs_free(insn, count);
tools/perf/util/capstone.c
251
static void print_capstone_detail(struct cs_insn *insn, char *buf, size_t len,
tools/perf/util/capstone.c
262
if (insn->detail == NULL)
tools/perf/util/capstone.c
265
for (i = 0; i < insn->detail->x86.op_count; i++) {
tools/perf/util/capstone.c
266
struct cs_x86_op *op = &insn->detail->x86.operands[i];
tools/perf/util/capstone.c
277
orig_addr = addr + insn->size + op->mem.disp;
tools/perf/util/capstone.c
343
struct cs_insn *insn = NULL;
tools/perf/util/capstone.c
382
free_count = count = perf_cs_disasm(handle, buf, buf_len, start, buf_len, &insn);
tools/perf/util/capstone.c
388
insn[i].mnemonic, insn[i].op_str);
tools/perf/util/capstone.c
389
print_capstone_detail(&insn[i], disasm_buf + printed,
tools/perf/util/capstone.c
402
offset += insn[i].size;
tools/perf/util/capstone.c
423
perf_cs_free(insn, free_count);
tools/perf/util/capstone.c
79
uint64_t address, size_t count, struct cs_insn **insn)
tools/perf/util/capstone.c
82
return cs_disasm(handle, code, code_size, address, count, insn);
tools/perf/util/capstone.c
86
uint64_t address, size_t count, struct cs_insn **insn);
tools/perf/util/capstone.c
96
return fn(handle, code, code_size, address, count, insn);
tools/perf/util/cs-etm.c
1537
(void *)sample->insn, 0);
tools/perf/util/dlfilter.c
246
return (__u8 *)d->sample->insn;
tools/perf/util/dlfilter.c
331
.insn = dlfilter__insn,
tools/perf/util/intel-bts.c
296
memcpy(sample.insn, btsq->intel_pt_insn.buf, INTEL_PT_INSN_BUF_SZ);
tools/perf/util/intel-pt-decoder/intel-pt-decoder.c
1258
memcpy(decoder->state.insn, intel_pt_insn->buf,
tools/perf/util/intel-pt-decoder/intel-pt-decoder.h
253
char insn[INTEL_PT_INSN_BUF_SZ];
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
142
ext = (insn->modrm.bytes[0] >> 3) & 0x7;
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
164
intel_pt_insn->length = insn->length;
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
169
switch (insn->immediate.nbytes) {
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
171
intel_pt_insn->rel = insn->immediate.value;
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
175
bswap_16((short)insn->immediate.value);
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
178
intel_pt_insn->rel = bswap_32(insn->immediate.value);
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
185
intel_pt_insn->rel = insn->immediate.value;
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
193
struct insn insn;
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
196
ret = insn_decode(&insn, buf, len,
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
198
if (ret < 0 || insn.length > len)
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
201
intel_pt_insn_decoder(&insn, intel_pt_insn);
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
202
if (insn.length < INTEL_PT_INSN_BUF_SZ)
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
203
memcpy(intel_pt_insn->buf, buf, insn.length);
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
221
struct insn insn;
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
225
ret = insn_decode(&insn, inbuf, inlen,
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
228
if (ret < 0 || insn.length > inlen)
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
231
*lenp = insn.length;
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
235
for (i = 0; i < insn.length; i++) {
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
25
static void intel_pt_insn_decoder(struct insn *insn,
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
35
if (insn_is_avx_or_xop(insn)) {
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
38
intel_pt_insn->length = insn->length;
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
42
switch (insn->opcode.bytes[0]) {
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
44
switch (insn->opcode.bytes[1]) {
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
46
switch (insn->modrm.bytes[0]) {
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
53
switch (insn->prefixes.bytes[3]) {
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
93
if (insn_is_rex2(insn)) { /* jmpabs */
tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c
97
intel_pt_insn->length = insn->length;
tools/perf/util/intel-pt.c
1538
memcpy(ptq->insn, ptq->state->insn, INTEL_PT_INSN_BUF_SZ);
tools/perf/util/intel-pt.c
1709
memcpy(sample->insn, ptq->insn, INTEL_PT_INSN_BUF_SZ);
tools/perf/util/intel-pt.c
229
char insn[INTEL_PT_INSN_BUF_SZ];
tools/perf/util/intel-pt.c
551
char insn[INTEL_PT_INSN_BUF_SZ];
tools/perf/util/intel-pt.c
638
memcpy(e->insn, intel_pt_insn->buf, INTEL_PT_INSN_BUF_SZ);
tools/perf/util/intel-pt.c
847
memcpy(intel_pt_insn->buf, e->insn, INTEL_PT_INSN_BUF_SZ);
tools/perf/util/kvm-stat-arch/kvm-stat-loongarch.c
100
else if ((insn >> 15) == 0xc91)
tools/perf/util/kvm-stat-arch/kvm-stat-loongarch.c
81
unsigned int insn;
tools/perf/util/kvm-stat-arch/kvm-stat-loongarch.c
84
insn = evsel__intval(evsel, sample, "inst_word");
tools/perf/util/kvm-stat-arch/kvm-stat-loongarch.c
86
switch (insn >> 24) {
tools/perf/util/kvm-stat-arch/kvm-stat-loongarch.c
89
if ((insn >> 10) == 0x1b)
tools/perf/util/kvm-stat-arch/kvm-stat-loongarch.c
98
if ((insn >> 15) == 0xc90)
tools/perf/util/kvm-stat-arch/kvm-stat-s390.c
25
u64 insn;
tools/perf/util/kvm-stat-arch/kvm-stat-s390.c
27
insn = evsel__intval(evsel, sample, "instruction");
tools/perf/util/kvm-stat-arch/kvm-stat-s390.c
28
key->key = icpt_insn_decoder(insn);
tools/perf/util/print_insn.c
26
printed += fprintf(fp, "%02x", (unsigned char)sample->insn[i]);
tools/perf/util/print_insn.c
61
(uint8_t *)sample->insn, sample->insn_len,
tools/perf/util/sample.c
103
len = thread__memcpy(thread, machine, sample->insn,
tools/perf/util/sample.c
113
struct insn insn;
tools/perf/util/sample.c
115
ret = insn_decode(&insn, sample->insn, len,
tools/perf/util/sample.c
117
if (ret >= 0 && insn.length <= len)
tools/perf/util/sample.c
118
sample->insn_len = insn.length;
tools/perf/util/sample.h
115
char insn[MAX_INSN];
tools/testing/selftests/arm64/fp/assembler.h
17
.macro _for var:req, from:req, to:req, insn:vararg
tools/testing/selftests/arm64/fp/assembler.h
39
.macro define_accessor name, num, insn
tools/testing/selftests/bpf/disasm.c
140
const struct bpf_insn *insn)
tools/testing/selftests/bpf/disasm.c
143
insn->code, insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
144
BPF_SRC(insn->code) == BPF_TO_BE ? "be" : "le",
tools/testing/selftests/bpf/disasm.c
145
insn->imm, insn->dst_reg);
tools/testing/selftests/bpf/disasm.c
150
const struct bpf_insn *insn)
tools/testing/selftests/bpf/disasm.c
153
insn->code, insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
154
insn->imm, insn->dst_reg);
tools/testing/selftests/bpf/disasm.c
157
static bool is_sdiv_smod(const struct bpf_insn *insn)
tools/testing/selftests/bpf/disasm.c
159
return (BPF_OP(insn->code) == BPF_DIV || BPF_OP(insn->code) == BPF_MOD) &&
tools/testing/selftests/bpf/disasm.c
160
insn->off == 1;
tools/testing/selftests/bpf/disasm.c
163
static bool is_movsx(const struct bpf_insn *insn)
tools/testing/selftests/bpf/disasm.c
165
return BPF_OP(insn->code) == BPF_MOV &&
tools/testing/selftests/bpf/disasm.c
166
(insn->off == 8 || insn->off == 16 || insn->off == 32);
tools/testing/selftests/bpf/disasm.c
169
static bool is_addr_space_cast(const struct bpf_insn *insn)
tools/testing/selftests/bpf/disasm.c
17
const struct bpf_insn *insn,
tools/testing/selftests/bpf/disasm.c
171
return insn->code == (BPF_ALU64 | BPF_MOV | BPF_X) &&
tools/testing/selftests/bpf/disasm.c
172
insn->off == BPF_ADDR_SPACE_CAST;
tools/testing/selftests/bpf/disasm.c
181
static inline bool is_mov_percpu_addr(const struct bpf_insn *insn)
tools/testing/selftests/bpf/disasm.c
183
return insn->code == (BPF_ALU64 | BPF_MOV | BPF_X) && insn->off == BPF_ADDR_PERCPU;
tools/testing/selftests/bpf/disasm.c
187
const struct bpf_insn *insn,
tools/testing/selftests/bpf/disasm.c
191
u8 class = BPF_CLASS(insn->code);
tools/testing/selftests/bpf/disasm.c
194
if (BPF_OP(insn->code) == BPF_END) {
tools/testing/selftests/bpf/disasm.c
196
print_bpf_bswap_insn(verbose, cbs->private_data, insn);
tools/testing/selftests/bpf/disasm.c
198
print_bpf_end_insn(verbose, cbs->private_data, insn);
tools/testing/selftests/bpf/disasm.c
199
} else if (BPF_OP(insn->code) == BPF_NEG) {
tools/testing/selftests/bpf/disasm.c
201
insn->code, class == BPF_ALU ? 'w' : 'r',
tools/testing/selftests/bpf/disasm.c
202
insn->dst_reg, class == BPF_ALU ? 'w' : 'r',
tools/testing/selftests/bpf/disasm.c
203
insn->dst_reg);
tools/testing/selftests/bpf/disasm.c
204
} else if (is_addr_space_cast(insn)) {
tools/testing/selftests/bpf/disasm.c
206
insn->code, insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
207
insn->src_reg, ((u32)insn->imm) >> 16, (u16)insn->imm);
tools/testing/selftests/bpf/disasm.c
208
} else if (is_mov_percpu_addr(insn)) {
tools/testing/selftests/bpf/disasm.c
210
insn->code, insn->dst_reg, insn->src_reg);
tools/testing/selftests/bpf/disasm.c
211
} else if (BPF_SRC(insn->code) == BPF_X) {
tools/testing/selftests/bpf/disasm.c
213
insn->code, class == BPF_ALU ? 'w' : 'r',
tools/testing/selftests/bpf/disasm.c
214
insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
215
is_sdiv_smod(insn) ? bpf_alu_sign_string[BPF_OP(insn->code) >> 4]
tools/testing/selftests/bpf/disasm.c
216
: bpf_alu_string[BPF_OP(insn->code) >> 4],
tools/testing/selftests/bpf/disasm.c
217
is_movsx(insn) ? bpf_movsx_string[(insn->off >> 3) - 1] : "",
tools/testing/selftests/bpf/disasm.c
219
insn->src_reg);
tools/testing/selftests/bpf/disasm.c
22
if (!insn->src_reg &&
tools/testing/selftests/bpf/disasm.c
222
insn->code, class == BPF_ALU ? 'w' : 'r',
tools/testing/selftests/bpf/disasm.c
223
insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
224
is_sdiv_smod(insn) ? bpf_alu_sign_string[BPF_OP(insn->code) >> 4]
tools/testing/selftests/bpf/disasm.c
225
: bpf_alu_string[BPF_OP(insn->code) >> 4],
tools/testing/selftests/bpf/disasm.c
226
insn->imm);
tools/testing/selftests/bpf/disasm.c
229
if (BPF_MODE(insn->code) == BPF_MEM)
tools/testing/selftests/bpf/disasm.c
23
insn->imm >= 0 && insn->imm < __BPF_FUNC_MAX_ID &&
tools/testing/selftests/bpf/disasm.c
231
insn->code,
tools/testing/selftests/bpf/disasm.c
232
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
233
insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
234
insn->off, insn->src_reg);
tools/testing/selftests/bpf/disasm.c
235
else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
tools/testing/selftests/bpf/disasm.c
236
(insn->imm == BPF_ADD || insn->imm == BPF_AND ||
tools/testing/selftests/bpf/disasm.c
237
insn->imm == BPF_OR || insn->imm == BPF_XOR)) {
tools/testing/selftests/bpf/disasm.c
239
insn->code,
tools/testing/selftests/bpf/disasm.c
24
func_id_str[insn->imm])
tools/testing/selftests/bpf/disasm.c
240
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
241
insn->dst_reg, insn->off,
tools/testing/selftests/bpf/disasm.c
242
bpf_alu_string[BPF_OP(insn->imm) >> 4],
tools/testing/selftests/bpf/disasm.c
243
insn->src_reg);
tools/testing/selftests/bpf/disasm.c
244
} else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
tools/testing/selftests/bpf/disasm.c
245
(insn->imm == (BPF_ADD | BPF_FETCH) ||
tools/testing/selftests/bpf/disasm.c
246
insn->imm == (BPF_AND | BPF_FETCH) ||
tools/testing/selftests/bpf/disasm.c
247
insn->imm == (BPF_OR | BPF_FETCH) ||
tools/testing/selftests/bpf/disasm.c
248
insn->imm == (BPF_XOR | BPF_FETCH))) {
tools/testing/selftests/bpf/disasm.c
25
return func_id_str[insn->imm];
tools/testing/selftests/bpf/disasm.c
250
insn->code, insn->src_reg,
tools/testing/selftests/bpf/disasm.c
251
BPF_SIZE(insn->code) == BPF_DW ? "64" : "",
tools/testing/selftests/bpf/disasm.c
252
bpf_atomic_alu_string[BPF_OP(insn->imm) >> 4],
tools/testing/selftests/bpf/disasm.c
253
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
254
insn->dst_reg, insn->off, insn->src_reg);
tools/testing/selftests/bpf/disasm.c
255
} else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
tools/testing/selftests/bpf/disasm.c
256
insn->imm == BPF_CMPXCHG) {
tools/testing/selftests/bpf/disasm.c
258
insn->code,
tools/testing/selftests/bpf/disasm.c
259
BPF_SIZE(insn->code) == BPF_DW ? "64" : "",
tools/testing/selftests/bpf/disasm.c
260
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
261
insn->dst_reg, insn->off,
tools/testing/selftests/bpf/disasm.c
262
insn->src_reg);
tools/testing/selftests/bpf/disasm.c
263
} else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
tools/testing/selftests/bpf/disasm.c
264
insn->imm == BPF_XCHG) {
tools/testing/selftests/bpf/disasm.c
266
insn->code, insn->src_reg,
tools/testing/selftests/bpf/disasm.c
267
BPF_SIZE(insn->code) == BPF_DW ? "64" : "",
tools/testing/selftests/bpf/disasm.c
268
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
269
insn->dst_reg, insn->off, insn->src_reg);
tools/testing/selftests/bpf/disasm.c
270
} else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
tools/testing/selftests/bpf/disasm.c
271
insn->imm == BPF_LOAD_ACQ) {
tools/testing/selftests/bpf/disasm.c
273
insn->code, insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
274
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
275
insn->src_reg, insn->off);
tools/testing/selftests/bpf/disasm.c
276
} else if (BPF_MODE(insn->code) == BPF_ATOMIC &&
tools/testing/selftests/bpf/disasm.c
277
insn->imm == BPF_STORE_REL) {
tools/testing/selftests/bpf/disasm.c
279
insn->code,
tools/testing/selftests/bpf/disasm.c
280
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
281
insn->dst_reg, insn->off, insn->src_reg);
tools/testing/selftests/bpf/disasm.c
283
verbose(cbs->private_data, "BUG_%02x\n", insn->code);
tools/testing/selftests/bpf/disasm.c
286
if (BPF_MODE(insn->code) == BPF_MEM) {
tools/testing/selftests/bpf/disasm.c
288
insn->code,
tools/testing/selftests/bpf/disasm.c
289
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
290
insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
291
insn->off, insn->imm);
tools/testing/selftests/bpf/disasm.c
292
} else if (BPF_MODE(insn->code) == 0xc0 /* BPF_NOSPEC, no UAPI */) {
tools/testing/selftests/bpf/disasm.c
293
verbose(cbs->private_data, "(%02x) nospec\n", insn->code);
tools/testing/selftests/bpf/disasm.c
295
verbose(cbs->private_data, "BUG_st_%02x\n", insn->code);
tools/testing/selftests/bpf/disasm.c
298
if (BPF_MODE(insn->code) != BPF_MEM && BPF_MODE(insn->code) != BPF_MEMSX) {
tools/testing/selftests/bpf/disasm.c
299
verbose(cbs->private_data, "BUG_ldx_%02x\n", insn->code);
tools/testing/selftests/bpf/disasm.c
30
res = cbs->cb_call(cbs->private_data, insn);
tools/testing/selftests/bpf/disasm.c
303
insn->code, insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
304
BPF_MODE(insn->code) == BPF_MEM ?
tools/testing/selftests/bpf/disasm.c
305
bpf_ldst_string[BPF_SIZE(insn->code) >> 3] :
tools/testing/selftests/bpf/disasm.c
306
bpf_ldsx_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
307
insn->src_reg, insn->off);
tools/testing/selftests/bpf/disasm.c
309
if (BPF_MODE(insn->code) == BPF_ABS) {
tools/testing/selftests/bpf/disasm.c
311
insn->code,
tools/testing/selftests/bpf/disasm.c
312
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
313
insn->imm);
tools/testing/selftests/bpf/disasm.c
314
} else if (BPF_MODE(insn->code) == BPF_IND) {
tools/testing/selftests/bpf/disasm.c
316
insn->code,
tools/testing/selftests/bpf/disasm.c
317
bpf_ldst_string[BPF_SIZE(insn->code) >> 3],
tools/testing/selftests/bpf/disasm.c
318
insn->src_reg, insn->imm);
tools/testing/selftests/bpf/disasm.c
319
} else if (BPF_MODE(insn->code) == BPF_IMM &&
tools/testing/selftests/bpf/disasm.c
320
BPF_SIZE(insn->code) == BPF_DW) {
tools/testing/selftests/bpf/disasm.c
324
u64 imm = ((u64)(insn + 1)->imm << 32) | (u32)insn->imm;
tools/testing/selftests/bpf/disasm.c
325
bool is_ptr = insn->src_reg == BPF_PSEUDO_MAP_FD ||
tools/testing/selftests/bpf/disasm.c
326
insn->src_reg == BPF_PSEUDO_MAP_VALUE;
tools/testing/selftests/bpf/disasm.c
333
insn->code, insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
334
__func_imm_name(cbs, insn, imm,
tools/testing/selftests/bpf/disasm.c
337
verbose(cbs->private_data, "BUG_ld_%02x\n", insn->code);
tools/testing/selftests/bpf/disasm.c
341
u8 opcode = BPF_OP(insn->code);
tools/testing/selftests/bpf/disasm.c
346
if (insn->src_reg == BPF_PSEUDO_CALL) {
tools/testing/selftests/bpf/disasm.c
348
insn->code,
tools/testing/selftests/bpf/disasm.c
349
__func_get_name(cbs, insn,
tools/testing/selftests/bpf/disasm.c
35
if (insn->src_reg == BPF_PSEUDO_CALL)
tools/testing/selftests/bpf/disasm.c
353
verbose(cbs->private_data, "(%02x) call %s#%d\n", insn->code,
tools/testing/selftests/bpf/disasm.c
354
__func_get_name(cbs, insn,
tools/testing/selftests/bpf/disasm.c
356
insn->imm);
tools/testing/selftests/bpf/disasm.c
358
} else if (insn->code == (BPF_JMP | BPF_JA)) {
tools/testing/selftests/bpf/disasm.c
36
snprintf(buff, len, "%+d", insn->imm);
tools/testing/selftests/bpf/disasm.c
360
insn->code, insn->off);
tools/testing/selftests/bpf/disasm.c
361
} else if (insn->code == (BPF_JMP | BPF_JA | BPF_X)) {
tools/testing/selftests/bpf/disasm.c
363
insn->code, insn->dst_reg);
tools/testing/selftests/bpf/disasm.c
364
} else if (insn->code == (BPF_JMP | BPF_JCOND) &&
tools/testing/selftests/bpf/disasm.c
365
insn->src_reg == BPF_MAY_GOTO) {
tools/testing/selftests/bpf/disasm.c
367
insn->code, insn->off);
tools/testing/selftests/bpf/disasm.c
368
} else if (insn->code == (BPF_JMP32 | BPF_JA)) {
tools/testing/selftests/bpf/disasm.c
37
else if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL)
tools/testing/selftests/bpf/disasm.c
370
insn->code, insn->imm);
tools/testing/selftests/bpf/disasm.c
371
} else if (insn->code == (BPF_JMP | BPF_EXIT)) {
tools/testing/selftests/bpf/disasm.c
372
verbose(cbs->private_data, "(%02x) exit\n", insn->code);
tools/testing/selftests/bpf/disasm.c
373
} else if (BPF_SRC(insn->code) == BPF_X) {
tools/testing/selftests/bpf/disasm.c
376
insn->code, class == BPF_JMP32 ? 'w' : 'r',
tools/testing/selftests/bpf/disasm.c
377
insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
378
bpf_jmp_string[BPF_OP(insn->code) >> 4],
tools/testing/selftests/bpf/disasm.c
380
insn->src_reg, insn->off);
tools/testing/selftests/bpf/disasm.c
384
insn->code, class == BPF_JMP32 ? 'w' : 'r',
tools/testing/selftests/bpf/disasm.c
385
insn->dst_reg,
tools/testing/selftests/bpf/disasm.c
386
bpf_jmp_string[BPF_OP(insn->code) >> 4],
tools/testing/selftests/bpf/disasm.c
387
(u32)insn->imm, insn->off);
tools/testing/selftests/bpf/disasm.c
391
insn->code, bpf_class_string[class]);
tools/testing/selftests/bpf/disasm.c
44
const struct bpf_insn *insn,
tools/testing/selftests/bpf/disasm.c
48
return cbs->cb_imm(cbs->private_data, insn, full_imm);
tools/testing/selftests/bpf/disasm.h
25
const struct bpf_insn *insn);
tools/testing/selftests/bpf/disasm.h
27
const struct bpf_insn *insn,
tools/testing/selftests/bpf/disasm.h
38
const struct bpf_insn *insn,
tools/testing/selftests/bpf/disasm_helpers.c
22
static const char *print_call_cb(void *private_data, const struct bpf_insn *insn)
tools/testing/selftests/bpf/disasm_helpers.c
30
if (insn->src_reg == BPF_PSEUDO_CALL) {
tools/testing/selftests/bpf/disasm_helpers.c
31
snprintf(ctx->scratch, sizeof(ctx->scratch), "%+d", insn->off);
tools/testing/selftests/bpf/disasm_helpers.c
38
struct bpf_insn *disasm_insn(struct bpf_insn *insn, char *buf, size_t buf_sz)
tools/testing/selftests/bpf/disasm_helpers.c
53
print_bpf_insn(&cbs, insn, true);
tools/testing/selftests/bpf/disasm_helpers.c
67
double_insn = insn->code == (BPF_LD | BPF_IMM | BPF_DW);
tools/testing/selftests/bpf/disasm_helpers.c
68
return insn + (double_insn ? 2 : 1);
tools/testing/selftests/bpf/disasm_helpers.h
10
struct bpf_insn *disasm_insn(struct bpf_insn *insn, char *buf, size_t buf_sz);
tools/testing/selftests/bpf/prog_tests/ctx_rewrite.c
648
struct bpf_insn *buf = NULL, *insn, *insn_end;
tools/testing/selftests/bpf/prog_tests/ctx_rewrite.c
690
insn = buf + (skip_first_insn ? 1 : 0);
tools/testing/selftests/bpf/prog_tests/ctx_rewrite.c
691
while (insn < insn_end) {
tools/testing/selftests/bpf/prog_tests/ctx_rewrite.c
692
insn = disasm_insn(insn, insn_buf, sizeof(insn_buf));
tools/testing/selftests/bpf/prog_tests/kptr_xchg_inline.c
11
struct bpf_insn *insn = NULL;
tools/testing/selftests/bpf/prog_tests/kptr_xchg_inline.c
26
err = get_xlated_program(bpf_program__fd(skel->progs.kptr_xchg_inline), &insn, &cnt);
tools/testing/selftests/bpf/prog_tests/kptr_xchg_inline.c
43
if (!ASSERT_OK(memcmp(&insn[3], &exp, sizeof(exp)), "mov"))
tools/testing/selftests/bpf/prog_tests/kptr_xchg_inline.c
47
if (!ASSERT_OK(memcmp(&insn[4], &exp, sizeof(exp)), "xchg"))
tools/testing/selftests/bpf/prog_tests/kptr_xchg_inline.c
50
free(insn);
tools/testing/selftests/bpf/prog_tests/reg_bounds.c
896
#define emit(insn) ({ \
tools/testing/selftests/bpf/prog_tests/reg_bounds.c
897
struct bpf_insn __insns[] = { insn }; \
tools/testing/selftests/bpf/progs/verifier_value_illegal_alu.c
199
: __imm_insn(insn, BPF_RAW_INSN((op), 0, 0, (off), (imm))) \
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1494
struct bpf_insn *insn = insn_buf;
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1509
*insn++ = BPF_MOV64_REG(BPF_REG_8, BPF_REG_1);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1510
*insn++ = BPF_MOV64_IMM(BPF_REG_1, 0);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1511
*insn++ = BPF_CALL_KFUNC(0, bpf_cgroup_from_id_id);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1512
*insn++ = BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 0, 5);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1513
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_6, BPF_REG_8, 0);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1514
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_7, BPF_REG_6, offsetof(struct st_ops_args, a));
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1515
*insn++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_7, 1000);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1516
*insn++ = BPF_STX_MEM(BPF_DW, BPF_REG_6, BPF_REG_7, offsetof(struct st_ops_args, a));
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1517
*insn++ = BPF_JMP_IMM(BPF_JA, 0, 0, 2);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1518
*insn++ = BPF_MOV64_REG(BPF_REG_1, BPF_REG_0);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1519
*insn++ = BPF_CALL_KFUNC(0, bpf_cgroup_release_id);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1520
*insn++ = BPF_MOV64_REG(BPF_REG_1, BPF_REG_8);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1521
*insn++ = prog->insnsi[0];
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1523
return insn - insn_buf;
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1529
struct bpf_insn *insn = insn_buf;
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1547
*insn++ = BPF_MOV64_IMM(BPF_REG_1, 0);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1548
*insn++ = BPF_MOV64_IMM(BPF_REG_6, 0);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1549
*insn++ = BPF_CALL_KFUNC(0, bpf_cgroup_from_id_id);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1550
*insn++ = BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 0, 6);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1551
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_FP, ctx_stack_off);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1552
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_1, 0);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1553
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_6, BPF_REG_1, offsetof(struct st_ops_args, a));
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1554
*insn++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_6, 10000);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1555
*insn++ = BPF_STX_MEM(BPF_DW, BPF_REG_1, BPF_REG_6, offsetof(struct st_ops_args, a));
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1556
*insn++ = BPF_JMP_IMM(BPF_JA, 0, 0, 2);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1557
*insn++ = BPF_MOV64_REG(BPF_REG_1, BPF_REG_0);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1558
*insn++ = BPF_CALL_KFUNC(0, bpf_cgroup_release_id);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1559
*insn++ = BPF_MOV64_REG(BPF_REG_0, BPF_REG_6);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1560
*insn++ = BPF_ALU64_IMM(BPF_MUL, BPF_REG_0, 2);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1561
*insn++ = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1563
return insn - insn_buf;
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1570
struct bpf_insn *insn = insn_buf;
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1584
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_6, BPF_REG_1, 0);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1585
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_7, BPF_REG_6, offsetof(struct st_ops_args, a));
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1586
*insn++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_7, 1000);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1587
*insn++ = BPF_STX_MEM(BPF_DW, BPF_REG_6, BPF_REG_7, offsetof(struct st_ops_args, a));
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1588
*insn++ = prog->insnsi[0];
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1590
return insn - insn_buf;
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1596
struct bpf_insn *insn = insn_buf;
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1614
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_FP, ctx_stack_off);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1615
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_1, 0);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1616
*insn++ = BPF_LDX_MEM(BPF_DW, BPF_REG_6, BPF_REG_1, offsetof(struct st_ops_args, a));
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1617
*insn++ = BPF_ALU64_IMM(BPF_ADD, BPF_REG_6, 10000);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1618
*insn++ = BPF_STX_MEM(BPF_DW, BPF_REG_1, BPF_REG_6, offsetof(struct st_ops_args, a));
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1619
*insn++ = BPF_MOV64_REG(BPF_REG_0, BPF_REG_6);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1620
*insn++ = BPF_ALU64_IMM(BPF_MUL, BPF_REG_0, 2);
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1621
*insn++ = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
1623
return insn - insn_buf;
tools/testing/selftests/bpf/test_loader.c
1086
struct bpf_insn *insn_start = NULL, *insn, *insn_end;
tools/testing/selftests/bpf/test_loader.c
1099
insn = insn_start;
tools/testing/selftests/bpf/test_loader.c
1100
while (insn < insn_end) {
tools/testing/selftests/bpf/test_loader.c
1101
i = insn - insn_start;
tools/testing/selftests/bpf/test_loader.c
1102
insn = disasm_insn(insn, buf, sizeof(buf));
tools/testing/selftests/bpf/test_verifier.c
1337
static bool is_null_insn(struct bpf_insn *insn)
tools/testing/selftests/bpf/test_verifier.c
1341
return memcmp(insn, &null_insn, sizeof(null_insn)) == 0;
tools/testing/selftests/bpf/test_verifier.c
1344
static bool is_skip_insn(struct bpf_insn *insn)
tools/testing/selftests/bpf/test_verifier.c
1348
return memcmp(insn, &skip_insn, sizeof(skip_insn)) == 0;
tools/testing/selftests/bpf/test_verifier.c
1442
struct bpf_insn *insn = &buf[i];
tools/testing/selftests/bpf/test_verifier.c
1444
if (is_null_insn(insn))
tools/testing/selftests/bpf/test_verifier.c
1447
if (is_skip_insn(insn))
tools/testing/selftests/bpf/test_verifier.c
1451
i, insn->code, insn->dst_reg,
tools/testing/selftests/bpf/test_verifier.c
1452
insn->src_reg, insn->off, insn->imm);
tools/testing/selftests/bpf/test_verifier.c
192
struct bpf_insn *insn = self->fill_insns;
tools/testing/selftests/bpf/test_verifier.c
195
insn[i++] = BPF_MOV64_REG(BPF_REG_6, BPF_REG_1);
tools/testing/selftests/bpf/test_verifier.c
198
insn[i++] = BPF_LD_ABS(BPF_B, 0);
tools/testing/selftests/bpf/test_verifier.c
200
insn[i] = BPF_JMP32_IMM(BPF_JNE, BPF_REG_0, 0x34, len - i - 3);
tools/testing/selftests/bpf/test_verifier.c
202
insn[i++] = BPF_MOV64_REG(BPF_REG_1, BPF_REG_6);
tools/testing/selftests/bpf/test_verifier.c
203
insn[i++] = BPF_MOV64_IMM(BPF_REG_2, 1);
tools/testing/selftests/bpf/test_verifier.c
204
insn[i++] = BPF_MOV64_IMM(BPF_REG_3, 2);
tools/testing/selftests/bpf/test_verifier.c
205
insn[i++] = BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0,
tools/testing/selftests/bpf/test_verifier.c
207
insn[i] = BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 0, len - i - 3);
tools/testing/selftests/bpf/test_verifier.c
212
insn[i++] = BPF_LD_ABS(BPF_B, 0);
tools/testing/selftests/bpf/test_verifier.c
213
insn[i] = BPF_JMP32_IMM(BPF_JNE, BPF_REG_0, 0x34, len - i - 3);
tools/testing/selftests/bpf/test_verifier.c
215
insn[i++] = BPF_MOV64_REG(BPF_REG_1, BPF_REG_6);
tools/testing/selftests/bpf/test_verifier.c
216
insn[i++] = BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0,
tools/testing/selftests/bpf/test_verifier.c
218
insn[i] = BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 0, len - i - 3);
tools/testing/selftests/bpf/test_verifier.c
225
insn[i] = BPF_ALU64_IMM(BPF_MOV, BPF_REG_0, 0xbef);
tools/testing/selftests/bpf/test_verifier.c
226
insn[len - 3] = BPF_JMP_A(1);
tools/testing/selftests/bpf/test_verifier.c
228
insn[len - 2] = BPF_MOV32_IMM(BPF_REG_0, 0);
tools/testing/selftests/bpf/test_verifier.c
229
insn[len - 1] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
235
struct bpf_insn *insn = self->fill_insns;
tools/testing/selftests/bpf/test_verifier.c
245
insn[i++] = BPF_MOV64_REG(BPF_REG_6, BPF_REG_1);
tools/testing/selftests/bpf/test_verifier.c
246
insn[i++] = BPF_LD_ABS(BPF_B, 0);
tools/testing/selftests/bpf/test_verifier.c
247
insn[i] = BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 10, len - i - 2);
tools/testing/selftests/bpf/test_verifier.c
250
insn[i++] = BPF_LD_ABS(BPF_B, 1);
tools/testing/selftests/bpf/test_verifier.c
251
insn[i] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
257
struct bpf_insn *insn = self->fill_insns;
tools/testing/selftests/bpf/test_verifier.c
261
insn[i++] = BPF_MOV32_IMM(BPF_REG_0, 0);
tools/testing/selftests/bpf/test_verifier.c
267
insn[i++] = tmp[0];
tools/testing/selftests/bpf/test_verifier.c
268
insn[i++] = tmp[1];
tools/testing/selftests/bpf/test_verifier.c
269
insn[i++] = BPF_ALU64_REG(BPF_XOR, BPF_REG_0, BPF_REG_1);
tools/testing/selftests/bpf/test_verifier.c
271
insn[i++] = BPF_MOV64_REG(BPF_REG_1, BPF_REG_0);
tools/testing/selftests/bpf/test_verifier.c
272
insn[i++] = BPF_ALU64_IMM(BPF_RSH, BPF_REG_1, 32);
tools/testing/selftests/bpf/test_verifier.c
273
insn[i++] = BPF_ALU64_REG(BPF_XOR, BPF_REG_0, BPF_REG_1);
tools/testing/selftests/bpf/test_verifier.c
274
insn[i] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
285
struct bpf_insn *insn = self->fill_insns;
tools/testing/selftests/bpf/test_verifier.c
288
insn[i++] = BPF_MOV64_REG(BPF_REG_6, BPF_REG_1);
tools/testing/selftests/bpf/test_verifier.c
291
insn[i++] = BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0,
tools/testing/selftests/bpf/test_verifier.c
293
insn[i++] = BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, bpf_semi_rand_get(), 2);
tools/testing/selftests/bpf/test_verifier.c
294
insn[i++] = BPF_MOV64_REG(BPF_REG_1, BPF_REG_10);
tools/testing/selftests/bpf/test_verifier.c
295
insn[i++] = BPF_STX_MEM(BPF_DW, BPF_REG_1, BPF_REG_6,
tools/testing/selftests/bpf/test_verifier.c
302
insn[i++] = BPF_ALU64_IMM(BPF_MOV, BPF_REG_0, 42);
tools/testing/selftests/bpf/test_verifier.c
303
insn[i] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
311
struct bpf_insn *insn = self->fill_insns;
tools/testing/selftests/bpf/test_verifier.c
316
insn[i++] = BPF_CALL_REL(1);
tools/testing/selftests/bpf/test_verifier.c
317
insn[i++] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
319
insn[i++] = BPF_MOV64_REG(BPF_REG_6, BPF_REG_1);
tools/testing/selftests/bpf/test_verifier.c
323
insn[i++] = BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0,
tools/testing/selftests/bpf/test_verifier.c
325
insn[i++] = BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, bpf_semi_rand_get(), 2);
tools/testing/selftests/bpf/test_verifier.c
326
insn[i++] = BPF_MOV64_REG(BPF_REG_1, BPF_REG_10);
tools/testing/selftests/bpf/test_verifier.c
327
insn[i++] = BPF_STX_MEM(BPF_DW, BPF_REG_1, BPF_REG_6,
tools/testing/selftests/bpf/test_verifier.c
331
insn[i++] = BPF_ALU64_IMM(BPF_MOV, BPF_REG_0, 42);
tools/testing/selftests/bpf/test_verifier.c
332
insn[i] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
350
static int bpf_fill_torturous_jumps_insn_1(struct bpf_insn *insn)
tools/testing/selftests/bpf/test_verifier.c
355
insn[0] = BPF_EMIT_CALL(BPF_FUNC_get_prandom_u32);
tools/testing/selftests/bpf/test_verifier.c
357
insn[i] = BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, i, hlen);
tools/testing/selftests/bpf/test_verifier.c
358
insn[i + hlen] = BPF_JMP_A(hlen - i);
tools/testing/selftests/bpf/test_verifier.c
360
insn[len - 2] = BPF_MOV64_IMM(BPF_REG_0, 1);
tools/testing/selftests/bpf/test_verifier.c
361
insn[len - 1] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
366
static int bpf_fill_torturous_jumps_insn_2(struct bpf_insn *insn)
tools/testing/selftests/bpf/test_verifier.c
371
insn[0] = BPF_EMIT_CALL(BPF_FUNC_get_prandom_u32);
tools/testing/selftests/bpf/test_verifier.c
373
insn[i] = BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, i, jmp_off);
tools/testing/selftests/bpf/test_verifier.c
375
insn[i++] = BPF_JMP_A(jmp_off);
tools/testing/selftests/bpf/test_verifier.c
378
insn[i + j] = BPF_JMP_A(16 - j - 1);
tools/testing/selftests/bpf/test_verifier.c
382
insn[len - 2] = BPF_MOV64_IMM(BPF_REG_0, 2);
tools/testing/selftests/bpf/test_verifier.c
383
insn[len - 1] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
390
struct bpf_insn *insn = self->fill_insns;
tools/testing/selftests/bpf/test_verifier.c
395
self->prog_len = bpf_fill_torturous_jumps_insn_1(insn);
tools/testing/selftests/bpf/test_verifier.c
398
self->prog_len = bpf_fill_torturous_jumps_insn_2(insn);
tools/testing/selftests/bpf/test_verifier.c
402
insn[i++] = BPF_RAW_INSN(BPF_JMP|BPF_CALL, 0, 1, 0, 4);
tools/testing/selftests/bpf/test_verifier.c
403
insn[i++] = BPF_RAW_INSN(BPF_JMP|BPF_CALL, 0, 1, 0, 262);
tools/testing/selftests/bpf/test_verifier.c
404
insn[i++] = BPF_ST_MEM(BPF_B, BPF_REG_10, -32, 0);
tools/testing/selftests/bpf/test_verifier.c
405
insn[i++] = BPF_MOV64_IMM(BPF_REG_0, 3);
tools/testing/selftests/bpf/test_verifier.c
406
insn[i++] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
409
i += bpf_fill_torturous_jumps_insn_1(insn + i);
tools/testing/selftests/bpf/test_verifier.c
412
i += bpf_fill_torturous_jumps_insn_2(insn + i);
tools/testing/selftests/bpf/test_verifier.c
424
struct bpf_insn *insn = self->fill_insns;
tools/testing/selftests/bpf/test_verifier.c
437
insn[i++] = BPF_ALU64_IMM(BPF_MOV, BPF_REG_1, 1);
tools/testing/selftests/bpf/test_verifier.c
439
insn[i++] = BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW,
tools/testing/selftests/bpf/test_verifier.c
442
insn[i++] = BPF_RAW_INSN(0, 0, 0, 0, 0);
tools/testing/selftests/bpf/test_verifier.c
443
insn[i++] = BPF_ALU64_IMM(BPF_MOV, BPF_REG_3, 0);
tools/testing/selftests/bpf/test_verifier.c
444
insn[i++] = BPF_ALU64_IMM(BPF_MOV, BPF_REG_4, 0);
tools/testing/selftests/bpf/test_verifier.c
445
insn[i++] = BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_loop);
tools/testing/selftests/bpf/test_verifier.c
448
insn[i++] = BPF_ALU64_IMM(BPF_MOV, BPF_REG_0, 0);
tools/testing/selftests/bpf/test_verifier.c
449
insn[i++] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
452
insn[i++] = BPF_ALU64_IMM(BPF_MOV, BPF_REG_0, 0);
tools/testing/selftests/bpf/test_verifier.c
453
insn[i++] = BPF_EXIT_INSN();
tools/testing/selftests/bpf/test_verifier.c
455
insn[callback_load_idx].imm = callback_idx - callback_load_idx - 1;
tools/testing/selftests/bpf/trace_helpers.c
360
const __u32 *insn = (const __u32 *)(uintptr_t)addr;
tools/testing/selftests/bpf/trace_helpers.c
362
if ((((*insn & OP_RT_RA_MASK) == ADDIS_R2_R12) ||
tools/testing/selftests/bpf/trace_helpers.c
363
((*insn & OP_RT_RA_MASK) == LIS_R2)) &&
tools/testing/selftests/bpf/trace_helpers.c
364
((*(insn + 1) & OP_RT_RA_MASK) == ADDI_R2_R2))
tools/testing/selftests/bpf/trace_helpers.c
365
return (uintptr_t)(insn + 2) - start + base;
tools/testing/selftests/kvm/include/riscv/processor.h
25
#define GET_RM(insn) (((insn) & INSN_MASK_FUNCT3) >> INSN_SHIFT_FUNCT3)
tools/testing/selftests/kvm/include/riscv/processor.h
26
#define GET_CSR_NUM(insn) (((insn) & INSN_CSR_MASK) >> INSN_CSR_SHIFT)
tools/testing/selftests/kvm/include/x86/processor.h
1240
#define __KVM_ASM_SAFE(insn, fep) \
tools/testing/selftests/kvm/include/x86/processor.h
1244
fep "1: " insn "\n\t" \
tools/testing/selftests/kvm/include/x86/processor.h
1250
#define KVM_ASM_SAFE(insn) __KVM_ASM_SAFE(insn, "")
tools/testing/selftests/kvm/include/x86/processor.h
1251
#define KVM_ASM_SAFE_FEP(insn) __KVM_ASM_SAFE(insn, KVM_FEP)
tools/testing/selftests/kvm/include/x86/processor.h
1256
#define kvm_asm_safe(insn, inputs...) \
tools/testing/selftests/kvm/include/x86/processor.h
1261
asm volatile(KVM_ASM_SAFE(insn) \
tools/testing/selftests/kvm/include/x86/processor.h
1268
#define kvm_asm_safe_ec(insn, error_code, inputs...) \
tools/testing/selftests/kvm/include/x86/processor.h
1272
asm volatile(KVM_ASM_SAFE(insn) \
tools/testing/selftests/kvm/include/x86/processor.h
1279
#define kvm_asm_safe_fep(insn, inputs...) \
tools/testing/selftests/kvm/include/x86/processor.h
1284
asm volatile(KVM_ASM_SAFE_FEP(insn) \
tools/testing/selftests/kvm/include/x86/processor.h
1291
#define kvm_asm_safe_ec_fep(insn, error_code, inputs...) \
tools/testing/selftests/kvm/include/x86/processor.h
1295
asm volatile(KVM_ASM_SAFE_FEP(insn) \
tools/testing/selftests/kvm/include/x86/processor.h
1302
#define BUILD_READ_U64_SAFE_HELPER(insn, _fep, _FEP) \
tools/testing/selftests/kvm/include/x86/processor.h
1303
static inline uint8_t insn##_safe ##_fep(uint32_t idx, uint64_t *val) \
tools/testing/selftests/kvm/include/x86/processor.h
1309
asm volatile(KVM_ASM_SAFE##_FEP(#insn) \
tools/testing/selftests/kvm/include/x86/processor.h
1323
#define BUILD_READ_U64_SAFE_HELPERS(insn) \
tools/testing/selftests/kvm/include/x86/processor.h
1324
BUILD_READ_U64_SAFE_HELPER(insn, , ) \
tools/testing/selftests/kvm/include/x86/processor.h
1325
BUILD_READ_U64_SAFE_HELPER(insn, _fep, _FEP) \
tools/testing/selftests/kvm/lib/arm64/processor.c
626
#define __smccc_call(insn, function_id, arg0, arg1, arg2, arg3, arg4, arg5, \
tools/testing/selftests/kvm/lib/arm64/processor.c
636
#insn "#0\n" \
tools/testing/selftests/kvm/riscv/sbi_pmu_test.c
132
unsigned long insn;
tools/testing/selftests/kvm/riscv/sbi_pmu_test.c
138
insn = regs->badaddr;
tools/testing/selftests/kvm/riscv/sbi_pmu_test.c
139
opcode = (insn & INSN_OPCODE_MASK) >> INSN_OPCODE_SHIFT;
tools/testing/selftests/kvm/riscv/sbi_pmu_test.c
141
"Unexpected instruction with opcode 0x%x insn 0x%lx\n", opcode, insn);
tools/testing/selftests/kvm/riscv/sbi_pmu_test.c
143
csr_num = GET_CSR_NUM(insn);
tools/testing/selftests/kvm/riscv/sbi_pmu_test.c
144
funct3 = GET_RM(insn);
tools/testing/selftests/kvm/x86/fastops_test.c
100
__asm__ __volatile__(fastop(__KVM_ASM_SAFE(insn " %[denom]")) \
tools/testing/selftests/kvm/x86/fastops_test.c
108
#define guest_test_fastop_div(insn, type_t, __val1, __val2) \
tools/testing/selftests/kvm/x86/fastops_test.c
115
ex_v = guest_execute_fastop_div(KVM_ASM_SAFE, insn, ex_a, ex_d, rm, ex_flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
116
v = guest_execute_fastop_div(KVM_ASM_SAFE_FEP, insn, a, d, rm, flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
121
ex_v, insn, (uint64_t)_a, (uint64_t)_d, (uint64_t)rm, v); \
tools/testing/selftests/kvm/x86/fastops_test.c
124
(uint64_t)ex_a, (uint64_t)ex_d, insn, (uint64_t)_a, \
tools/testing/selftests/kvm/x86/fastops_test.c
128
ex_flags, insn, (uint64_t)_a, (uint64_t)_d, (uint64_t)rm, flags);\
tools/testing/selftests/kvm/x86/fastops_test.c
20
#define guest_execute_fastop_1(FEP, insn, __val, __flags) \
tools/testing/selftests/kvm/x86/fastops_test.c
22
__asm__ __volatile__(fastop(FEP insn " %[val]") \
tools/testing/selftests/kvm/x86/fastops_test.c
28
#define guest_test_fastop_1(insn, type_t, __val) \
tools/testing/selftests/kvm/x86/fastops_test.c
33
guest_execute_fastop_1("", insn, ex_val, ex_flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
34
guest_execute_fastop_1(KVM_FEP, insn, val, flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
38
(uint64_t)ex_val, insn, (uint64_t)input, (uint64_t)val); \
tools/testing/selftests/kvm/x86/fastops_test.c
41
ex_flags, insn, (uint64_t)input, flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
44
#define guest_execute_fastop_2(FEP, insn, __input, __output, __flags) \
tools/testing/selftests/kvm/x86/fastops_test.c
46
__asm__ __volatile__(fastop(FEP insn " %[input], %[output]") \
tools/testing/selftests/kvm/x86/fastops_test.c
52
#define guest_test_fastop_2(insn, type_t, __val1, __val2) \
tools/testing/selftests/kvm/x86/fastops_test.c
57
guest_execute_fastop_2("", insn, input, ex_output, ex_flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
58
guest_execute_fastop_2(KVM_FEP, insn, input, output, flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
62
(uint64_t)ex_output, insn, (uint64_t)input, \
tools/testing/selftests/kvm/x86/fastops_test.c
66
ex_flags, insn, (uint64_t)input, (uint64_t)input2, flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
69
#define guest_execute_fastop_cl(FEP, insn, __shift, __output, __flags) \
tools/testing/selftests/kvm/x86/fastops_test.c
71
__asm__ __volatile__(fastop(FEP insn " %%cl, %[output]") \
tools/testing/selftests/kvm/x86/fastops_test.c
77
#define guest_test_fastop_cl(insn, type_t, __val1, __val2) \
tools/testing/selftests/kvm/x86/fastops_test.c
83
guest_execute_fastop_cl("", insn, shift, ex_output, ex_flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
84
guest_execute_fastop_cl(KVM_FEP, insn, shift, output, flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
88
(uint64_t)ex_output, insn, shift, (uint64_t)input, \
tools/testing/selftests/kvm/x86/fastops_test.c
92
ex_flags, insn, shift, (uint64_t)input, flags); \
tools/testing/selftests/kvm/x86/fastops_test.c
95
#define guest_execute_fastop_div(__KVM_ASM_SAFE, insn, __a, __d, __rm, __flags) \
tools/testing/selftests/kvm/x86/monitor_mwait_test.c
26
#define GUEST_ASSERT_MONITOR_MWAIT(insn, testcase, vector) \
tools/testing/selftests/kvm/x86/monitor_mwait_test.c
33
"Expected #UD on " insn " for testcase '0x%x', got %s", \
tools/testing/selftests/kvm/x86/monitor_mwait_test.c
37
"Expected success on " insn " for testcase '0x%x', got %s", \
tools/testing/selftests/kvm/x86/nested_emulation_test.c
111
__GUEST_ASSERT(exit_reason == insn->exit_reason[f],
tools/testing/selftests/kvm/x86/nested_emulation_test.c
113
insn->exit_reason[f], insn->name, exit_reason);
tools/testing/selftests/kvm/x86/nested_emulation_test.c
117
insn_len, insn->name, exit_insn_len);
tools/testing/selftests/kvm/x86/nested_emulation_test.c
39
static uint32_t get_instruction_length(struct emulated_instruction *insn)
tools/testing/selftests/kvm/x86/nested_emulation_test.c
43
for (i = 0; i < ARRAY_SIZE(insn->opcode) && insn->opcode[i]; i++)
tools/testing/selftests/kvm/x86/nested_emulation_test.c
83
struct emulated_instruction *insn = &instructions[i];
tools/testing/selftests/kvm/x86/nested_emulation_test.c
84
uint32_t insn_len = get_instruction_length(insn);
tools/testing/selftests/kvm/x86/nested_emulation_test.c
93
memcpy(l2_instruction, insn->opcode, insn_len);
tools/testing/selftests/kvm/x86/nested_emulation_test.c
94
memset(l2_instruction + insn_len, 0xcc, sizeof(insn->opcode) - insn_len);
tools/testing/selftests/kvm/x86/pmu_counters_test.c
366
#define GUEST_ASSERT_PMC_MSR_ACCESS(insn, msr, expect_gp, vector) \
tools/testing/selftests/kvm/x86/pmu_counters_test.c
368
"Expected %s on " #insn "(0x%x), got %s", \
tools/testing/selftests/kvm/x86/pmu_counters_test.c
371
#define GUEST_ASSERT_PMC_VALUE(insn, msr, val, expected) \
tools/testing/selftests/kvm/x86/pmu_counters_test.c
373
"Expected " #insn "(0x%x) to yield 0x%lx, got 0x%lx", \
tools/testing/selftests/powerpc/copyloops/exc_validate.c
29
unsigned long insn, fixup;
tools/testing/selftests/powerpc/copyloops/exc_validate.c
31
insn = *ex_p++;
tools/testing/selftests/powerpc/copyloops/exc_validate.c
34
if (insn == *ip) {
tools/testing/selftests/powerpc/primitives/asm/extable.h
23
int insn;
tools/testing/selftests/powerpc/primitives/load_unaligned_zeropad.c
65
int insn;
tools/testing/selftests/powerpc/primitives/load_unaligned_zeropad.c
77
unsigned long insn, fixup;
tools/testing/selftests/powerpc/primitives/load_unaligned_zeropad.c
79
insn = (unsigned long)&entry->insn + entry->insn;
tools/testing/selftests/powerpc/primitives/load_unaligned_zeropad.c
82
if (insn == *ip) {
tools/testing/selftests/riscv/hwprobe/cbo.c
34
uint32_t insn = *(uint32_t *)regs[0];
tools/testing/selftests/riscv/hwprobe/cbo.c
37
assert(insn == MK_CBO(regs[11]));
tools/testing/selftests/riscv/hwprobe/cbo.c
40
assert(insn == MK_PREFETCH(regs[11]));
tools/testing/selftests/x86/test_FCMOV.c
16
#define TEST(insn) \
tools/testing/selftests/x86/test_FCMOV.c
17
long double __attribute__((noinline)) insn(long flags) \
tools/testing/selftests/x86/test_FCMOV.c
25
" " #insn " %%st(1), %%st" "\n" \