[llvm-dev] llvm-bjdump and ELF-ARM/Thumb
Johan Wehrli via llvm-dev
llvm-dev at lists.llvm.org
Sun Jun 19 05:45:30 PDT 2016
Hi Everyone,
When I used llvm-objdump to disassemble an ELF armv7 or thumb I have this error message:
llvm-objdump: warning: invalid instruction encoding
This message appears directly into the output and the output is mostly wrong (the invalid instruction create a shift in the addresses) :
1a6d: ff 2f e1 08 stmeq r1!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, sp} ^
1a71: 30 90 e5 00 rsceq r9, r5, r0, lsr r0
1a75: 10 a0 e1 00 rsceq r10, r1, r0, lsl r0
1a79: 00 53 e3 1e cdpne p3, #14, c5, c3, c0, #0
llvm-objdump: warning: invalid instruction encoding
1a7e: 2f 01 01 00 andeq r0, r1, pc, lsr #2
llvm-objdump: warning: invalid instruction encoding
1a83: e3 13 ff 2f svchs #16716771
llvm-objdump: warning: invalid instruction encoding
The binaries I try to read are c++ dynamic libraries for Android.
I have used the following parameters:
-llvm-objcdump mylib.so -d -arch=arm
-llvm-objcdump mylib.so -d -arch=armv7
-llvm-objcdump mylib.so -d -arch=thumb
or with the following triples:
armv7-none-linux-android
thumbv7-none-linux-android
Does anyone know why I have this error? Am I missing some input parameters?
This is strange because it works great on iOS binaries (both thumb or arm).
Greetings,
Johan
More information about the llvm-dev
mailing list