I am using, arm-linux-gnueabi-gcc to compile C programs for ARM processor in Linux. However, I am not sure what is the default ARM mode for which it compiles.
For example, for the C code:
test.c
unsigned int main()
{
return 0x1ffff;
}
arm-linux-gnueabi-gcc -o test test.c
now, when I look at the disassembly of main() function with objdump, I can see:
arm-linux-gnueabi-objdump -d test
<main>:
push {r7}
add r7, sp, #0
movw r3, #65535 ; 0xffff
movt r3, #1
mov r0, r3
mov sp, r7
pop {r7}
bx lr
it appears that this is disassembly for Thumb mode of ARM (because of the push instruction).
How can I display the disassembly as follows:
.sect ".text"
.global _fn
_fn: MOVW A1,#65535
MOVT A1,#1
BX LR
or this
.sect ".text"
.global _fn
_fn: LDR A1, CON1
BX LR
.sect ".text"
.align 4
CON1: .word 0x1ffff
I saw this example here:
http://e2e.ti.com/support/development_tools/compiler/f/343/t/40580.aspx
however, I am unable to view the disassembly the way it is displayed there.
Thanks.