[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Altivec and binary compatibility



Giuliano Pochini wrote:
Giuliano Pochini wrote:

> > As the jmp_buf is a different size in Altivec and non-Altivec code
> 
> Because with Altivec we need to save V registers, right ?  Well, I suppose
> intel developers had the same problem with P-III "vector" unit. How did they
> solve the problem ?

As far as I can tell, by ignoring it, and making the assumption that
only low-level libraries will use the vector registers.  I plan to take
a similar approach, and warn users not to mix Altivec and exceptions.

> > To add to the problem, throwing exceptions on an error is just what a
> > modern C++ library is supposed to do.  Throwing or catching an exception
> > in Altivec code will produce sequences that cannot execute on a G3
> 
> Why ?? (sorry for my ignorance...)

I haven't studied GCC's implementation of exceptions in great detail.
The compiler saves and restores all the non-transient registers as part
of the exception sequence. When generating Altivec code this produces
stvx and lvx instructions, which will cause an illegal instruction
exception on G3 processors. 

- Adrian Cox


Reply to: