[uClibc]Searching for a difference

Gergely Tamás gertom at rgai.hu
Thu Nov 28 15:59:17 UTC 2002


Hello!

My guestion may be offtopic:

I have gcc 3.2 with newlib for arm-elf and with uClibc for arm-linux
targets, and I found a difference: the uClibc version compiles smaller
code with the same options. I've found that some registers are saved in the
beginning of some functions in the arm-elf objects, and this code
is omitted (replaced with the save of only one register) in the
arm-linux objects.
My question is: where this difference comes from? Is that a difference
in the headers of the libraries, or some configuration switches
responsible for it while building gcc, or the target causes this
behaviour in some implicite ways?

Thanks,
Gertom

With arm-elf target:
bsSetStream:
        @ args = 0, pretend = 0, frame = 0
>       @ frame_needed = 1, uses_anonymous_args = 0
>       mov     ip, sp
>       stmfd   sp!, {fp, ip, lr, pc}
        ldr     r3, .L15
        ldr     r2, [r3, #0]
        cmp     r2, #0
---
With arm-linux target:
bsSetStream:
        @ args = 0, pretend = 0, frame = 0
>       @ frame_needed = 0, uses_anonymous_args = 0
>       str     lr, [sp, #-4]!
        ldr     r3, .L15
        ldr     r2, [r3, #0]
        cmp     r2, #0
---
-- 
**************************************************************************
* Gergely Tamás                                    e-mail:gertom at rgai.hu *
* ICQ:104783919                                    http://gertom.rgai.hu *
**************************************************************************




More information about the uClibc mailing list