What optimisation option is needed to prod arm-elf-gcc -mthumb to
generate a tail call? ARM works as expected.

Please cc me in your reply. Thanks!
Shaun

arm-elf-gcc (GCC) 4.1.0

$ cat <<EOF >tail.c
int tail(void);
int main()
{
       return tail();
}
EOF
$ arm-elf-gcc -mthumb -S -O2 tail.c
$ sed -ne '/^main/,/pop/p' tail.s
main:
       push    {lr}
       bl      tail
       @ sp needed for prologue
       pop     {pc}
       .size   main, .-main
       .ident  "GCC: (GNU) 4.1.0"
$ arm-elf-gcc -S -O2 tail.c
$ sed -ne '/^main/,/pop/p' tail.s
main:
       @ args = 0, pretend = 0, frame = 0
       @ frame_needed = 0, uses_anonymous_args = 0
       @ link register save eliminated.
       @ lr needed for prologue
       b       tail
       .size   main, .-main
       .ident  "GCC: (GNU) 4.1.0"

Reply via email to