mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
selftests/bpf: use host CPU features in JIT disassembler
Pass the host CPU name and feature string to LLVMCreateDisasmCPUFeatures() instead of using LLVMCreateDisasm(), so the disassembler correctly decodes CPU-specific instructions and extensions such as RISC-V compressed and vector instructions. Signed-off-by: Varun R Mallya <varunrmallya@gmail.com> Reviewed-by: Björn Töpel <bjorn@kernel.org> Link: https://lore.kernel.org/r/20260602205847.102825-2-varunrmallya@gmail.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
a1f1acf6a1
commit
557d0cc3f2
|
|
@ -96,10 +96,19 @@ static int disasm_one_func(FILE *text_out, uint8_t *image, __u32 len)
|
|||
__u32 *label_pc, pc;
|
||||
int i, cnt, err = 0;
|
||||
char buf[64];
|
||||
char *cpu, *features;
|
||||
|
||||
triple = LLVMGetDefaultTargetTriple();
|
||||
ctx = LLVMCreateDisasm(triple, &labels, 0, NULL, lookup_symbol);
|
||||
if (!ASSERT_OK_PTR(ctx, "LLVMCreateDisasm")) {
|
||||
|
||||
cpu = LLVMGetHostCPUName();
|
||||
features = LLVMGetHostCPUFeatures();
|
||||
|
||||
ctx = LLVMCreateDisasmCPUFeatures(triple, cpu, features, &labels, 0, NULL, lookup_symbol);
|
||||
|
||||
LLVMDisposeMessage(cpu);
|
||||
LLVMDisposeMessage(features);
|
||||
|
||||
if (!ASSERT_OK_PTR(ctx, "LLVMCreateDisasmCPUFeatures")) {
|
||||
err = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user