This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

How force the compiler to always use the stack ?


Hello all.

I am working with an old version of crossgcc (egcs-1.1.1 with
binutils-2.9.1) on the M.Core target. The M.Core shares its stack
between user mode and interrupt mode.
When I debug a C sub-routine under interrupt, I can display the function
call list ("where" under gdb) which presents the called functions under
both modes.
But If I was executing a leaf function (i.e. a function that does not
call any other one) before interrupt, I do not see it in the stack: gdb
displays the non-leaf functions before interrupt and then the functions
under interrupt, including the last function (even if it is a leaf
function).

Why do the interrupted leaf functions never appear in the stack (under
gdb) ?
Do you konw if it is a porting problem or if I have to use a special
option to compile my application in order to force the compiler to
always use the stack, even if the functions are leafs ? (I tried -O0 but
it is not sufficient)

Thanks a lot for your help.
Pierre.



------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]