frame_needed
Gergely Tamás
gertom@rgai.hu
Wed Nov 27 02:40:00 GMT 2002
Hello!
I have gcc 3.2 for arm-elf and arm-linux targets, and I found a
difference: the arm-linux 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 the value of the 'frame_needed' attribute
comes from. Is that dependent on the target or some configuration
switches of gcc, or the headers of the used libraries or some #defines?
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@rgai.hu *
* ICQ:104783919 http://gertom.rgai.hu *
**************************************************************************
More information about the Gcc-help
mailing list