Using vector in setjmp.h for SPU.

trevor_smigiel@playstation.sony.com trevor_smigiel@playstation.sony.com
Fri Dec 15 00:01:00 GMT 2006


I intend to write an RFC to make the behaviour of the vector keyword
more explicit.  Then the 3C/JSRE group can debate the behaviour we
really want.

The original intention was to make vector keyword on SPU behave the same
as defined by Altivec PIM.  That PIM essentially makes __vector the only
portable way to write it.

Trevor

* jschopp <jschopp@austin.ibm.com> [2006-12-14 14:40]:
> trevor_smigiel@playstation.sony.com wrote:
> >Just vector doesn't work by default with the FSF version of gcc.  I
> >encountered the problem while building the latest newlib with the
> >latest FSF gcc.
> 
> You're going to have to explain to me how this is not a bug in FSF gcc.  
> The SPU language extensions document ( 
> http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/30B3520C93F437AB87257060006FFE5E/$file/SPU_language_extensions_2.1.pdf 
> ) clearly requires this to be defined.  And if we are going to start using 
> FSF gcc to compile things then it follows that it is going to have to 
> support those language extensions sooner rather than later.
> 
> 1. Data Types and Program Directives
>      This chapter describes the basic data types, operations on these data 
>      types, and directives and program controls
>      required by this specification.
> 1.1. Data Types
>      The SPU programming model introduces a set of fundamental vector data 
>      types to the C language. The vector data
>      types are all 128-bit long and contain from 2 to 16 elements, 
>      depending on the data type. Table 1-1 shows the
>      supported vector types.
>      Table 1-1: Vector Data Types
>              Vector Data Type                                 Content
>              vector unsigned char                             16 8-bit 
>              unsigned chars
>              vector signed char                               16 8-bit 
>              signed chars
>              vector unsigned short                            8 16-bit 
>              unsigned halfwords
>              vector signed short                              8 16-bit 
>              signed halfwords
>              vector unsigned int                              4 32-bit 
>              unsigned words
>              vector signed int                                4 32-bit 
>              signed words
>              vector unsigned long long                        2 64-bit 
>              unsigned doublewords
>              vector signed long long                          2 64-bit 
>              signed doublewords
>              vector float                                     4 32-bit 
>              single-precision floats
>              vector double                                    2 64-bit 
>              double-precision floats
>              qword                                            quadword 
>              (16-byte)



More information about the Newlib mailing list