H A D | bpf_jit_comp.c | 93 static inline void emit_a64_mov_i(const int is64, const int reg, emit_a64_mov_i() argument 101 emit(A64_MOVN(is64, reg, (u16)~lo, 0), ctx); emit_a64_mov_i() 103 emit(A64_MOVN(is64, reg, (u16)~hi, 16), ctx); emit_a64_mov_i() 104 emit(A64_MOVK(is64, reg, lo, 0), ctx); emit_a64_mov_i() 107 emit(A64_MOVZ(is64, reg, lo, 0), ctx); emit_a64_mov_i() 109 emit(A64_MOVK(is64, reg, hi, 16), ctx); emit_a64_mov_i() 257 const bool is64 = BPF_CLASS(code) == BPF_ALU64; build_insn() local 276 emit(A64_MOV(is64, dst, src), ctx); build_insn() 281 emit(A64_ADD(is64, dst, dst, src), ctx); build_insn() 285 emit(A64_SUB(is64, dst, dst, src), ctx); build_insn() 289 emit(A64_AND(is64, dst, dst, src), ctx); build_insn() 293 emit(A64_ORR(is64, dst, dst, src), ctx); build_insn() 297 emit(A64_EOR(is64, dst, dst, src), ctx); build_insn() 301 emit(A64_MUL(is64, dst, dst, src), ctx); build_insn() 313 emit(A64_CBNZ(is64, src, jmp_offset), ctx); build_insn() 321 emit(A64_UDIV(is64, dst, dst, src), ctx); build_insn() 325 emit(A64_UDIV(is64, tmp, dst, src), ctx); build_insn() 326 emit(A64_MUL(is64, tmp, tmp, src), ctx); build_insn() 327 emit(A64_SUB(is64, dst, dst, tmp), ctx); build_insn() 334 emit(A64_LSLV(is64, dst, dst, src), ctx); build_insn() 338 emit(A64_LSRV(is64, dst, dst, src), ctx); build_insn() 342 emit(A64_ASRV(is64, dst, dst, src), ctx); build_insn() 347 emit(A64_NEG(is64, dst, dst), ctx); build_insn() 361 emit(A64_REV16(is64, dst, dst), ctx); build_insn() 363 emit(A64_UXTH(is64, dst, dst), ctx); build_insn() 366 emit(A64_REV32(is64, dst, dst), ctx); build_insn() 378 emit(A64_UXTH(is64, dst, dst), ctx); build_insn() 382 emit(A64_UXTW(is64, dst, dst), ctx); build_insn() 392 emit_a64_mov_i(is64, dst, imm, ctx); build_insn() 398 emit_a64_mov_i(is64, tmp, imm, ctx); build_insn() 399 emit(A64_ADD(is64, dst, dst, tmp), ctx); build_insn() 404 emit_a64_mov_i(is64, tmp, imm, ctx); build_insn() 405 emit(A64_SUB(is64, dst, dst, tmp), ctx); build_insn() 410 emit_a64_mov_i(is64, tmp, imm, ctx); build_insn() 411 emit(A64_AND(is64, dst, dst, tmp), ctx); build_insn() 416 emit_a64_mov_i(is64, tmp, imm, ctx); build_insn() 417 emit(A64_ORR(is64, dst, dst, tmp), ctx); build_insn() 422 emit_a64_mov_i(is64, tmp, imm, ctx); build_insn() 423 emit(A64_EOR(is64, dst, dst, tmp), ctx); build_insn() 428 emit_a64_mov_i(is64, tmp, imm, ctx); build_insn() 429 emit(A64_MUL(is64, dst, dst, tmp), ctx); build_insn() 434 emit_a64_mov_i(is64, tmp, imm, ctx); build_insn() 435 emit(A64_UDIV(is64, dst, dst, tmp), ctx); build_insn() 440 emit_a64_mov_i(is64, tmp2, imm, ctx); build_insn() 441 emit(A64_UDIV(is64, tmp, dst, tmp2), ctx); build_insn() 442 emit(A64_MUL(is64, tmp, tmp, tmp2), ctx); build_insn() 443 emit(A64_SUB(is64, dst, dst, tmp), ctx); build_insn() 447 emit(A64_LSL(is64, dst, dst, imm), ctx); build_insn() 451 emit(A64_LSR(is64, dst, dst, imm), ctx); build_insn() 455 emit(A64_ASR(is64, dst, dst, imm), ctx); build_insn()
|