I have compiled some code with gcc -marm, and then when I try to disassemble it with objdump, half of the instructions are 16 bits, so I guess it is thumb instructions. Why ?
I have seen this question : objdump and ARM vs Thumb
So I tried to disassemble it with objdump -marm -b binary -D, however the disassembly seems very odd...
How I can know if this is gcc which used thumb instructions despite the -marm option, or if it is objdump which is buggy ?
EDIT : here is a fraction of the disassembly with 16 bits instructions :
Disassembly of section .init:
00008304 <_init>: 8304: b508 push {r3, lr}
8306: f000 f849 bl 839c
830a: bf00 nop
830c: bd08 pop {r3, pc}