/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _BPF_JIT_H #define _BPF_JIT_H #ifndef __ASSEMBLER__ #define G0 0x00 #define G1 0x01 #define G2 0x02 #define G3 0x03 #define G6 0x06 #define G7 0x07 #define O0 0x08 #define O1 0x09 #define O2 0x0a #define O3 0x0b #define O4 0x0c #define O5 0x0d #define SP 0x0e #define O7 0x0f #define L0 0x10 #define L1 0x11 #define L2 0x12 #define L3 0x13 #define L4 0x14 #define L5 0x15 #define L6 0x16 #define L7 0x17 #define I0 0x18 #define I1 0x19 #define I2 0x1a #define I3 0x1b #define I4 0x1c #define I5 0x1d #define FP 0x1e #define I7 0x1f #define r_SKB L0 #define r_HEADLEN L4 #define r_SKB_DATA L5 #define r_TMP G1 #define r_TMP2 G3 /* assembly code in arch/sparc/net/bpf_jit_asm_64.S */ extern u32 bpf_jit_load_word[]; extern u32 bpf_jit_load_half[]; extern u32 bpf_jit_load_byte[]; extern u32 bpf_jit_load_byte_msh[]; extern u32 bpf_jit_load_word_positive_offset[]; extern u32 bpf_jit_load_half_positive_offset[]; extern u32 bpf_jit_load_byte_positive_offset[]; extern u32 bpf_jit_load_byte_msh_positive_offset[]; extern u32 bpf_jit_load_word_negative_offset[]; extern u32 bpf_jit_load_half_negative_offset[]; extern u32 bpf_jit_load_byte_negative_offset[]; extern u32 bpf_jit_load_byte_msh_negative_offset[]; #else #define r_RESULT %o0 #define r_SKB %o0 #define r_OFF %o1 #define r_HEADLEN %l4 #define r_SKB_DATA %l5 #define r_TMP %g1 #define r_TMP2 %g3 #endif #endif /* _BPF_JIT_H */