Date: Wed, 4 May 2005 18:18:25 -0400 From: David Schultz <das@freebsd.org> To: Daniel Eischen <deischen@freebsd.org> Cc: freebsd-threads@freebsd.org Subject: Re: Floating point exceptions with -pthread Message-ID: <20050504221825.GA22732@VARK.MIT.EDU> In-Reply-To: <Pine.GSO.4.43.0505041741310.498-100000@sea.ntplx.net> References: <20050504205745.GH76171@stack.nl> <Pine.GSO.4.43.0505041741310.498-100000@sea.ntplx.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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...
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050504221825.GA22732>