This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


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

Oddities in ARM (stack handling)


Hi!

While debugging my membedded-pic (formerly disable-got by Vlad Lebedev)
patch I discovered that my patch also influences code generation with my
flag disabled. Damn.

To find out where to start: with patch, a function compiles with
frame_needed = 0, 3.0.2 vanilla compiles the function to frame_neede =
1.

So I wonder what influences the decision whether a given function needs
a frame pointer (the only point where frame_pointer_needed is set seems
to be in reload1.c, and I don't understand the explanation there. Also I
did not change that file).

Additionally - and this is the odditiy I'm speaking of in the subject -
the unchainged functions saves the registers with "stmfd {
everything..., pc }".

I wonder why to save the pc - it is never loaded, nor is the space
reserved on the stack ever needed.
 
greets from Zürich
-- vbi


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