aboutsummaryrefslogtreecommitdiffstats
path: root/tools/bpf/bpf_jit_disasm.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/bpf/bpf_jit_disasm.c')
-rw-r--r--tools/bpf/bpf_jit_disasm.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/tools/bpf/bpf_jit_disasm.c b/tools/bpf/bpf_jit_disasm.c
index 75bf526a0168..58c2bab4ef6e 100644
--- a/tools/bpf/bpf_jit_disasm.c
+++ b/tools/bpf/bpf_jit_disasm.c
@@ -72,7 +72,14 @@ static void get_asm_insns(uint8_t *image, size_t len, int opcodes)
72 72
73 disassemble_init_for_target(&info); 73 disassemble_init_for_target(&info);
74 74
75#ifdef DISASM_FOUR_ARGS_SIGNATURE
76 disassemble = disassembler(info.arch,
77 bfd_big_endian(bfdf),
78 info.mach,
79 bfdf);
80#else
75 disassemble = disassembler(bfdf); 81 disassemble = disassembler(bfdf);
82#endif
76 assert(disassemble); 83 assert(disassemble);
77 84
78 do { 85 do {
@@ -165,7 +172,8 @@ static uint8_t *get_last_jit_image(char *haystack, size_t hlen,
165{ 172{
166 char *ptr, *pptr, *tmp; 173 char *ptr, *pptr, *tmp;
167 off_t off = 0; 174 off_t off = 0;
168 int ret, flen, proglen, pass, ulen = 0; 175 unsigned int proglen;
176 int ret, flen, pass, ulen = 0;
169 regmatch_t pmatch[1]; 177 regmatch_t pmatch[1];
170 unsigned long base; 178 unsigned long base;
171 regex_t regex; 179 regex_t regex;
@@ -192,7 +200,7 @@ static uint8_t *get_last_jit_image(char *haystack, size_t hlen,
192 } 200 }
193 201
194 ptr = haystack + off - (pmatch[0].rm_eo - pmatch[0].rm_so); 202 ptr = haystack + off - (pmatch[0].rm_eo - pmatch[0].rm_so);
195 ret = sscanf(ptr, "flen=%d proglen=%d pass=%d image=%lx", 203 ret = sscanf(ptr, "flen=%d proglen=%u pass=%d image=%lx",
196 &flen, &proglen, &pass, &base); 204 &flen, &proglen, &pass, &base);
197 if (ret != 4) { 205 if (ret != 4) {
198 regfree(&regex); 206 regfree(&regex);
@@ -232,7 +240,7 @@ static uint8_t *get_last_jit_image(char *haystack, size_t hlen,
232 } 240 }
233 241
234 assert(ulen == proglen); 242 assert(ulen == proglen);
235 printf("%d bytes emitted from JIT compiler (pass:%d, flen:%d)\n", 243 printf("%u bytes emitted from JIT compiler (pass:%d, flen:%d)\n",
236 proglen, pass, flen); 244 proglen, pass, flen);
237 printf("%lx + <x>:\n", base); 245 printf("%lx + <x>:\n", base);
238 246