bpf: Add cond_break macro
Use may_goto instruction to implement cond_break macro.
Ideally the macro should be written as:
asm volatile goto(".byte 0xe5;
.byte 0;
.short %l[l_break] ...
.long 0;
but LLVM doesn't recognize fixup of 2 byte PC relative yet.
Hence use
asm volatile goto(".byte 0xe5;
.byte 0;
.long %l[l_break] ...
.short 0;
that produces correct asm on little endian.
Signed-off-by:
Alexei Starovoitov <ast@kernel.org>
Signed-off-by:
Andrii Nakryiko <andrii@kernel.org>
Acked-by:
Eduard Zingerman <eddyz87@gmail.com>
Acked-by:
John Fastabend <john.fastabend@gmail.com>
Tested-by:
John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20240306031929.42666-4-alexei.starovoitov@gmail.com
Loading
Please sign in to comment