Victory? (was Re: Mac Intel)
Mikael Pettersson
mikpe@REDACTED
Thu Aug 17 14:01:08 CEST 2006
Mikael Pettersson writes:
> Mikael Pettersson writes:
> > On Tue, 15 Aug 2006 13:22:14 +0100, Joel Reymont wrote:
> > > When do you think this will happen?
> > >
> > > On Aug 15, 2006, at 1:15 PM, Mikael Pettersson wrote:
> > >
> > > >> I might tackle the stack alignment eventually, if you don't get to
> > > >> it.
> > > >
> > > > I'll handle that bit.
> >
> > This week, in a day or two.
>
> Completed. Download the following URLs:
> http://www.it.uu.se/research/group/hipe/snapshots/otp-0804.tar.gz
> http://www.it.uu.se/research/group/hipe/snapshots/tests-0804.tar.gz
> http://www.it.uu.se/research/group/hipe/snapshots/patch-otp-0804-1-x86-aligned-c-stack
>
> otp-0804 is a current snapshot from the branch that will become R11B-1
> fairly soon, tests-0804 is the corresponding snapshot of the HiPE test
> suite, and patch-otp-0804-1-x86-aligned-c-stack is the patch to make
> the runtime system maintain a 16-byte aligned C stack on x86-32.
I've now uploaded two more patches:
http://www.it.uu.se/research/group/hipe/snapshots/patch-otp-0804-2-amd64-sse2-handler-fix
http://www.it.uu.se/research/group/hipe/snapshots/patch-otp-0804-x86-sse2-exceptions-wip-1
The second patch updates the FP exception feature test code and the actual
implementation to support exceptions from SSE2 FP instructions on x86-32.
It is known to work on Linux (build Erlang with "-O2 -msse2 -mfpmath=sse"
as CFLAGS). The patch is not final (indicated by the absence of a patch number
and the "-wip" (work-in-progress) suffix), but the only thing missing is a safety
check to see if the CPU has SSE2 or not before SSE2 FP exceptions are enabled.
The first patch fixes a latent bug in the existing x86-64 SSE2 FP exception
handling that I found while preparing the x86-32 SSE2 support. The bug could
cause SSE2 exception handling to be invoked when an x87 exception had occurred,
which would result in an abort() from skip_sse2_insn(). The error would never
occur on normal x86-64 systems, but it is easy to trigger on systems that use
SSE2 for computations and x87 for parameter passing, like OSX/x86-32.
More information about the erlang-questions
mailing list