This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PowerPC E500 port


Daniel Jacobowitz wrote:
> On Mon, Oct 08, 2007 at 06:23:55PM -0500, Steven Munroe wrote:
>   
>> The path sysdeps/powerpc/powerpc32/e500/ is only appropriate if the
>> intent was to CPU-tune the powerpc32 soft-fp ABI for e500 chips (i.e.
>> not using the SPE features and not changing the size of
>> jmpbuf/ucontext). Otherwise it is inapropriate as it requires a
>> different (incompatable) ABI to use/expose the SPE features. Mixing
>> these together seems error prone with code from powerpc32/fpu leaking to
>> e500 builds or e500 code leaking into powerpc32 builds with random build
>> breakage.
>>     
>
> I don't understand.  Why shouldn't e500 be a subdirectory of
> powerpc32?  It's a sibling of the soft FP version of powerpc32, with
> which it is almost ABI compatible.  Anything under powerpc32 that
> requires hard FP should be in powerpc32/fpu.
>
>   
"almost ABI compatible" is not the same as compatible.

Compatible means that given ISA version minimums, the code as build will
run. This is not exactly true for E500 if any of the SPE specific
instructions are used. Two key differences are VMX vs SPE (mutually
exclusive in the ISA V2.04) and the differences in fenv.h. At minimum
the SPE specific instructions should be guarded with AT_HWCAP tests
(which the current proposed patch does not) as are used for VMX
instructions in setjmp/__longjump and *context.

Currently everything in ./powerpc/powerpc32 is compatible (across all
ISA V1.0 PowerPC) for the base (configured without --with-cpu) or upward
compatible (when configured with --with-cpu, power4 - V2.01 code will
run on a power6). As Roland's note suggests, --with-cpu should not
change the ABI.

Also as the as Roland states the ABI this patch is trying to be
compatible with is --target=powerpc32-linux --without-fp. This implies
powerpc32/nofpu and not ./powerpc32/.../fpu.


>> To me e500 needs a separate target to exploit its ISA. This can be
>> associated with the eabi or as its own target. As in:
>>
>> --target=ppceabi-linux
>> -with-cpu=e500
>>
>> This would imply ./sysdeps/powerpc/ppceabi/e500. Or
>>
>> --target=ppce500-linux
>>     
>
> The target triplet powerpc-unknown-linux-gnuspe has been in use for a
> couple of years.
>
>   
Then use that to identify this ABI variant. Thoe this triplet looks like
a quadruplet ...


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]