Floating point exceptions with -pthread
David Schultz
das at freebsd.org
Wed May 4 15:22:59 PDT 2005
On Wed, May 04, 2005, Daniel Eischen wrote:
> On Wed, 4 May 2005, Marc Olzheim wrote:
>
> > On Wed, May 04, 2005 at 10:22:00PM +0200, Marc Olzheim wrote:
> > > So it really seems to be in the floorf() and ceilf() code.
> >
> > Say, isn't that instruction supposed to read 'flds -8(%ebp);' ? (mark
> > the '-')
>
> No, 8(%ebp) is where the function's argument is (the first
> instruction is a pushl, then %ebp is assigned from %esp).
Yeah, that part is fine. The one odd thing I notice as a glance
back at the code is that it uses -12(%ebp) and -16(%ebp) for
temporary storage, instead of using -4(%ebp) and -8(%ebp) like
the double versions. That's probably a cut-and-pasto on my
part. This would explain the SIGFPEs if an asynchronous trap is
causing the area just past the end of the stack to be overwritten,
since only 8 bytes of stack are reserved. I'll take a closer
look in a week or so...
More information about the freebsd-threads
mailing list