This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: MD_FALLBACK_FRAME_STATE_FOR and floating point...
- From: David Daney <ddaney at avtrex dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 21 Oct 2003 10:29:16 -0700
- Subject: Re: MD_FALLBACK_FRAME_STATE_FOR and floating point...
- References: <3F956007.2020600@avtrex.com> <20031021170705.GB1255@redhat.com>
Richard Henderson wrote:
On Tue, Oct 21, 2003 at 09:34:15AM -0700, David Daney wrote:
With this in mind I looked at MD_FALLBACK_FRAME_STATE_FOR for
i386-linux. I cannot see that it restores floading point registers either.
Q1: Am I missing something?
Q2: Is there some unwritten rule that you should not use floating point
in signal handlers?
You need to restore registers that are call-saved, so that they'll
be correct when you get to the final destination. On x86, there
are no call-saved floating point registers, so none are restored.
I am unclear as to the meaning of call-saved. Is that saved by the
caller or saved by the callee?
Must be callee or what you said would not make any sense. Is that
really how x86 works?
In any event it seems that if all registers are restored, then you would
be safe. As there are quite a few MIPS ABIs this would allow all to
work with out all sorts of ifdefs in MD_FALLBACK_FRAME_STATE_FOR.
David Daney.