jit               113 arch/s390/net/bpf_jit_comp.c static inline void reg_set_seen(struct bpf_jit *jit, u32 b1)
jit               117 arch/s390/net/bpf_jit_comp.c 	if (!jit->seen_reg[r1] && r1 >= 6 && r1 <= 15)
jit               118 arch/s390/net/bpf_jit_comp.c 		jit->seen_reg[r1] = 1;
jit               123 arch/s390/net/bpf_jit_comp.c 	reg_set_seen(jit, b1);					\
jit               126 arch/s390/net/bpf_jit_comp.c #define REG_SEEN(b1) jit->seen_reg[reg2hex[(b1)]]
jit               134 arch/s390/net/bpf_jit_comp.c 	if (jit->prg_buf)					\
jit               135 arch/s390/net/bpf_jit_comp.c 		*(u16 *) (jit->prg_buf + jit->prg) = op;	\
jit               136 arch/s390/net/bpf_jit_comp.c 	jit->prg += 2;						\
jit               148 arch/s390/net/bpf_jit_comp.c 	if (jit->prg_buf)					\
jit               149 arch/s390/net/bpf_jit_comp.c 		*(u32 *) (jit->prg_buf + jit->prg) = op;	\
jit               150 arch/s390/net/bpf_jit_comp.c 	jit->prg += 4;						\
jit               197 arch/s390/net/bpf_jit_comp.c 	if (jit->prg_buf) {					\
jit               198 arch/s390/net/bpf_jit_comp.c 		*(u32 *) (jit->prg_buf + jit->prg) = op1;	\
jit               199 arch/s390/net/bpf_jit_comp.c 		*(u16 *) (jit->prg_buf + jit->prg + 4) = op2;	\
jit               201 arch/s390/net/bpf_jit_comp.c 	jit->prg += 6;						\
jit               229 arch/s390/net/bpf_jit_comp.c 	int rel = (jit->labels[label] - jit->prg) >> 1;		\
jit               238 arch/s390/net/bpf_jit_comp.c 	int rel = (jit->labels[label] - jit->prg) >> 1;		\
jit               256 arch/s390/net/bpf_jit_comp.c 	int rel = (target - jit->prg) / 2;			\
jit               263 arch/s390/net/bpf_jit_comp.c 	int rel = (target - jit->prg) / 2;			\
jit               282 arch/s390/net/bpf_jit_comp.c 	ret = jit->lit - jit->base_ip;				\
jit               283 arch/s390/net/bpf_jit_comp.c 	jit->seen |= SEEN_LITERAL;				\
jit               284 arch/s390/net/bpf_jit_comp.c 	if (jit->prg_buf)					\
jit               285 arch/s390/net/bpf_jit_comp.c 		*(u32 *) (jit->prg_buf + jit->lit) = (u32) val;	\
jit               286 arch/s390/net/bpf_jit_comp.c 	jit->lit += 4;						\
jit               293 arch/s390/net/bpf_jit_comp.c 	ret = jit->lit - jit->base_ip;				\
jit               294 arch/s390/net/bpf_jit_comp.c 	jit->seen |= SEEN_LITERAL;				\
jit               295 arch/s390/net/bpf_jit_comp.c 	if (jit->prg_buf)					\
jit               296 arch/s390/net/bpf_jit_comp.c 		*(u64 *) (jit->prg_buf + jit->lit) = (u64) val;	\
jit               297 arch/s390/net/bpf_jit_comp.c 	jit->lit += 8;						\
jit               321 arch/s390/net/bpf_jit_comp.c static void save_regs(struct bpf_jit *jit, u32 rs, u32 re)
jit               336 arch/s390/net/bpf_jit_comp.c static void restore_regs(struct bpf_jit *jit, u32 rs, u32 re, u32 stack_depth)
jit               340 arch/s390/net/bpf_jit_comp.c 	if (jit->seen & SEEN_STACK)
jit               354 arch/s390/net/bpf_jit_comp.c static int get_start(struct bpf_jit *jit, int start)
jit               359 arch/s390/net/bpf_jit_comp.c 		if (jit->seen_reg[i])
jit               368 arch/s390/net/bpf_jit_comp.c static int get_end(struct bpf_jit *jit, int start)
jit               373 arch/s390/net/bpf_jit_comp.c 		if (!jit->seen_reg[i] && !jit->seen_reg[i + 1])
jit               376 arch/s390/net/bpf_jit_comp.c 	return jit->seen_reg[15] ? 15 : 14;
jit               385 arch/s390/net/bpf_jit_comp.c static void save_restore_regs(struct bpf_jit *jit, int op, u32 stack_depth)
jit               391 arch/s390/net/bpf_jit_comp.c 		rs = get_start(jit, re);
jit               394 arch/s390/net/bpf_jit_comp.c 		re = get_end(jit, rs + 1);
jit               396 arch/s390/net/bpf_jit_comp.c 			save_regs(jit, rs, re);
jit               398 arch/s390/net/bpf_jit_comp.c 			restore_regs(jit, rs, re, stack_depth);
jit               409 arch/s390/net/bpf_jit_comp.c static void bpf_jit_prologue(struct bpf_jit *jit, u32 stack_depth)
jit               411 arch/s390/net/bpf_jit_comp.c 	if (jit->seen & SEEN_TAIL_CALL) {
jit               420 arch/s390/net/bpf_jit_comp.c 	jit->tail_call_start = jit->prg;
jit               422 arch/s390/net/bpf_jit_comp.c 	save_restore_regs(jit, REGS_SAVE, stack_depth);
jit               424 arch/s390/net/bpf_jit_comp.c 	if (jit->seen & SEEN_LITERAL) {
jit               427 arch/s390/net/bpf_jit_comp.c 		jit->base_ip = jit->prg;
jit               430 arch/s390/net/bpf_jit_comp.c 	if (jit->seen & SEEN_STACK) {
jit               431 arch/s390/net/bpf_jit_comp.c 		if (jit->seen & SEEN_FUNC)
jit               438 arch/s390/net/bpf_jit_comp.c 		if (jit->seen & SEEN_FUNC)
jit               448 arch/s390/net/bpf_jit_comp.c static void bpf_jit_epilogue(struct bpf_jit *jit, u32 stack_depth)
jit               451 arch/s390/net/bpf_jit_comp.c 	if (jit->seen & SEEN_RET0) {
jit               452 arch/s390/net/bpf_jit_comp.c 		jit->ret0_ip = jit->prg;
jit               456 arch/s390/net/bpf_jit_comp.c 	jit->exit_ip = jit->prg;
jit               460 arch/s390/net/bpf_jit_comp.c 	save_restore_regs(jit, REGS_RESTORE, stack_depth);
jit               462 arch/s390/net/bpf_jit_comp.c 		jit->r14_thunk_ip = jit->prg;
jit               466 arch/s390/net/bpf_jit_comp.c 			EMIT6_PCREL_RIL(0xc6000000, jit->prg + 10);
jit               469 arch/s390/net/bpf_jit_comp.c 			EMIT6_PCREL_RILB(0xc0000000, REG_1, jit->prg + 14);
jit               480 arch/s390/net/bpf_jit_comp.c 	    (jit->seen & SEEN_FUNC)) {
jit               481 arch/s390/net/bpf_jit_comp.c 		jit->r1_thunk_ip = jit->prg;
jit               485 arch/s390/net/bpf_jit_comp.c 			EMIT6_PCREL_RIL(0xc6000000, jit->prg + 10);
jit               506 arch/s390/net/bpf_jit_comp.c static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp,
jit               513 arch/s390/net/bpf_jit_comp.c 	u32 *addrs = jit->addrs;
jit               519 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_REG_AX;
jit               922 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               927 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               932 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               937 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               944 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               951 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               958 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               965 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               974 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               980 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               988 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit               995 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit              1001 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit              1008 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_MEM;
jit              1026 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_FUNC;
jit              1032 arch/s390/net/bpf_jit_comp.c 			EMIT6_PCREL_RILB(0xc0050000, REG_14, jit->r1_thunk_ip);
jit              1048 arch/s390/net/bpf_jit_comp.c 		jit->seen |= SEEN_TAIL_CALL;
jit              1067 arch/s390/net/bpf_jit_comp.c 		if (jit->seen & SEEN_STACK)
jit              1098 arch/s390/net/bpf_jit_comp.c 		save_restore_regs(jit, REGS_RESTORE, fp->aux->stack_depth);
jit              1108 arch/s390/net/bpf_jit_comp.c 		_EMIT4(0x47f01000 + jit->tail_call_start);
jit              1110 arch/s390/net/bpf_jit_comp.c 		jit->labels[0] = jit->prg;
jit              1114 arch/s390/net/bpf_jit_comp.c 		if (last && !(jit->seen & SEEN_RET0))
jit              1117 arch/s390/net/bpf_jit_comp.c 		EMIT4_PCREL(0xa7f40000, jit->exit_ip - jit->prg);
jit              1292 arch/s390/net/bpf_jit_comp.c static int bpf_jit_prog(struct bpf_jit *jit, struct bpf_prog *fp,
jit              1297 arch/s390/net/bpf_jit_comp.c 	jit->lit = jit->lit_start;
jit              1298 arch/s390/net/bpf_jit_comp.c 	jit->prg = 0;
jit              1300 arch/s390/net/bpf_jit_comp.c 	bpf_jit_prologue(jit, fp->aux->stack_depth);
jit              1302 arch/s390/net/bpf_jit_comp.c 		insn_count = bpf_jit_insn(jit, fp, i, extra_pass);
jit              1306 arch/s390/net/bpf_jit_comp.c 		jit->addrs[i + insn_count] = jit->prg;
jit              1308 arch/s390/net/bpf_jit_comp.c 	bpf_jit_epilogue(jit, fp->aux->stack_depth);
jit              1310 arch/s390/net/bpf_jit_comp.c 	jit->lit_start = jit->prg;
jit              1311 arch/s390/net/bpf_jit_comp.c 	jit->size = jit->lit;
jit              1312 arch/s390/net/bpf_jit_comp.c 	jit->size_prg = jit->prg;
jit              1337 arch/s390/net/bpf_jit_comp.c 	struct bpf_jit jit;
jit              1365 arch/s390/net/bpf_jit_comp.c 		jit = jit_data->ctx;
jit              1372 arch/s390/net/bpf_jit_comp.c 	memset(&jit, 0, sizeof(jit));
jit              1373 arch/s390/net/bpf_jit_comp.c 	jit.addrs = kvcalloc(fp->len + 1, sizeof(*jit.addrs), GFP_KERNEL);
jit              1374 arch/s390/net/bpf_jit_comp.c 	if (jit.addrs == NULL) {
jit              1384 arch/s390/net/bpf_jit_comp.c 		if (bpf_jit_prog(&jit, fp, extra_pass)) {
jit              1392 arch/s390/net/bpf_jit_comp.c 	if (jit.size >= BPF_SIZE_MAX) {
jit              1397 arch/s390/net/bpf_jit_comp.c 	header = bpf_jit_binary_alloc(jit.size, &jit.prg_buf, 2, jit_fill_hole);
jit              1403 arch/s390/net/bpf_jit_comp.c 	if (bpf_jit_prog(&jit, fp, extra_pass)) {
jit              1409 arch/s390/net/bpf_jit_comp.c 		bpf_jit_dump(fp->len, jit.size, pass, jit.prg_buf);
jit              1410 arch/s390/net/bpf_jit_comp.c 		print_fn_code(jit.prg_buf, jit.size_prg);
jit              1416 arch/s390/net/bpf_jit_comp.c 		jit_data->ctx = jit;
jit              1419 arch/s390/net/bpf_jit_comp.c 	fp->bpf_func = (void *) jit.prg_buf;
jit              1421 arch/s390/net/bpf_jit_comp.c 	fp->jited_len = jit.size;
jit              1424 arch/s390/net/bpf_jit_comp.c 		bpf_prog_fill_jited_linfo(fp, jit.addrs + 1);
jit              1426 arch/s390/net/bpf_jit_comp.c 		kvfree(jit.addrs);