This is the mail archive of the
gdb@sourceware.cygnus.com
mailing list for the GDB project.
FP stack empty at function entry? not always
At 16:44 09/07/99 -0500, you wrote:
>
>
>> Then the scan code sees that there are no empty registers, so the eighth
>> register is the bottom of the stack. The IA32 FPU itself uses this
logic --
>> if you push something on the stack such that TOP gets incremented to point
>> to a non-empty value, you get a stack overflow.
>
>Right --- of course. That would work. So we could use bottom-relative
>register numbers.
Sorry to disappoint you, but I know of at least one compiler
that breaks this rule : Free Pascal Compiler !
If you call a real function within a math operation
you are not garanteed that the stack is empty at entry !
This is risky in the sense that you can get stack overflow, but
it generates faster code!
At compile time, there is a check of FPU stack overflow,
but its only partial (especially it can not be
perfect for functions calling themselves or
with function variables)
I am currently converting the extension of GDB to pascal language
to version 4.18 and I would like to insert this in the official GDB
sources, but I don't know to whom I should send the diffs for this!
I am member of the development team of FPC (free pascal compiler)
and I sent my patches (relative to v4.17 to the GPC maintainers
but never really got feedback!) This is annoying because my patches have
some small parts which are compiler specific and I don't know really how to
cope with this!
Another question is relative to STABS format,
I would like to know if this format is still subject to improovements or if
it
is totally freezed specifications
(especially object extensions and
what I found mostly missing in STABS : browser information!)