Altivec and binary compatibility

Giuliano Pochini pochini at denise.shiny.it
Tue Feb 8 02:11:22 EST 2000



> Altivec raises an interesting question of binary compatibility, in the
> area of C++ exceptions and C setjmp/longjmp.
>
> 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 ?

> it is not possible to jump or pass exceptions between the two.
> This is a problem, because:
> 1) Now would not be a good time to change the size of a jmp_buf.
> 2) We do not need two incompatible 32-bit PowerPC ABIs under Linux.
> 2a) Most libraries installed by a distribution will be non-Altivec code,
> to avoid having both G[123] and G4 binary variants of the distribution.

I agree.

> 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...)

Bye.


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list