[arnm-elf-objdump] Can't use two -M flags for disassembler (-Mforce-thumb and -Mreg-names-raw)
Vincent Rubiolo
vincent.rubiolo@st.com
Mon Jul 14 14:48:00 GMT 2003
Hello,
Sorry for the delay.
I am using binutils 2.14 and also a snapshot from the 19th of June.
The problem arises when I try to inspect THUMB code generated by ADS
(interworking enabled). I have to use -Mforce-thumb, otherwise everything is
seen as ARM code.
Here are the outputs (from a C file compiled as THUMB):
% arm-elf-objdump -d ADS_file -Mforce-thumb
1002444: b510 push {r4, lr}
% arm-elf-objdump -d ADS_file -Mforce-thumb -Mreg-names-raw
1002444: 2400b510 strcs r11, [r0], -#1296
The first one is correct.
Pb then, as it seems that the -Mreg-names-raw turned off the -Mforce-thumb
option on the second attempt.
Also, on ARM code, it works just as you stated:
% arm-elf-objdump -d ADS_file
1000150: e1a0f00c mov pc, ip
% arm-elf-objdump -d ADS_file -Mreg-names-raw
1000150: e1a0f00c mov r15, r12
% arm-elf-objdump -d ADS_file -Mreg-names-raw -Mforce-thumb
1000150: e1a0f00c blx 100c494 <$b+0x36>
Hope that clarify the situation. Thing is I am operating the opposite way
(looking at THUMB code).
Regards,
Vincent
nickc@redhat.com wrote:
> Hi Vincent,
>
>
>>This may be very stupid but I am unable to use both flags
>>-Mreg-names-raw and -Mforce-thumb at the same time (arm-elf-objdump)
>
>
> Which version of binutils are you using ?
>
> It appears to work for me (using the current CVS sources and the 2.14
> release):
>
> % objdump -d mov.o
>
> 0: e1a0e00f mov lr, pc
>
> % objdump -d -Mreg-names-raw nop.o
>
> 0: e1a0e00f mov r14, r15
>
> % objdump -d -Mreg-names-raw -Mforce-thumb nop.o
>
> 0: e00f b 22 <fred+0x22>
> 2: e1a0 b 346 <fred+0x346>
>
> Cheers
> Nick
>
More information about the Binutils
mailing list