[macstl-dev] Re: Question
Michael LeBlanc
leblanc at skycomputers.com
Fri Jun 3 22:26:38 WST 2005
On Jun 2, 2005, at 12:19 PM, Glen Low wrote:
> Hmm?
>
> It seems from some third party testing (I asked someone who had 3.4
> etc.) and from gcc's own docs, that 3.4 uses bool as Apple does, while
> 3.3 doesn't.
>
> See http://gcc.gnu.org/onlinedocs/gcc-3.3.5/gcc/PowerPC-AltiVec-
> Built_002din-Functions.html#PowerPC-AltiVec-Built_002din-Functions
> which says "The vector bool type is deprecated and will be
> discontinued in further revisions. Use vector signed instead.", and
> there's no evidence of vector bool in the function list.
>
> However by the time we have gcc 3.4:
>
> http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/PowerPC-AltiVec-
> Built_002din-Functions.html#PowerPC-AltiVec-Built_002din-Functions
> They now talk about vector bool and the functions all have vector bool
> overloads where appropriate.
$ ls -l `find . -name altivec.h`
-rw-r--r-- 1 leblanc staff 350297 18 May 2002
./gcc-3.1.1/gcc/config/rs6000/altivec.h
-rw-r--r-- 1 leblanc staff 350297 18 May 2002
./gcc-3.2.3/gcc/config/rs6000/altivec.h
-rw-r--r-- 1 leblanc staff 350305 16 Dec 2003
./gcc-3.3.5/gcc/config/rs6000/altivec.h
-rw-r--r-- 1 leblanc staff 350305 16 Dec 2003
./gcc-3.3.6/gcc/config/rs6000/altivec.h
-rw-r--r-- 1 leblanc staff 350378 31 Jan 2004
./gcc-3.4.0/gcc/config/rs6000/altivec.h
-rw-r--r-- 1 leblanc staff 349933 30 Apr 2004
./gcc-3.4.1/gcc/config/rs6000/altivec.h
-rw-r--r-- 1 leblanc staff 503575 23 Aug 2004
./gcc-3.4.2/gcc/config/rs6000/altivec.h
-rw-r--r-- 1 leblanc staff 503575 23 Aug 2004
./gcc-3.4.3/gcc/config/rs6000/altivec.h
-rw-r--r-- 1 leblanc staff 503575 23 Aug 2004
./gcc-3.4.4/gcc/config/rs6000/altivec.h
The diffs between 3.2.3 and 3.3.6 are trivial and not interesting.
Ditto 3.3.6 to 3.4.0
Ditto 3.4.0 to 3.4.1
But in 3.4.2, Aha! In this release the words __vector, __bool and
__pixel appear to be wired in, and we have
#if !defined(__APPLE_ALTIVEC__)
/* You are allowed to undef these for C++ compatibility. */
#define vector __vector
#define pixel __pixel
#define bool __bool
#endif
but these are NOT used in altivec.h, so the comment is accurate.
From 3.4.* to 4.1, they revert to using "bool" and "pixel", without
underscores. Presumably the compiler now handles these properly in
vector and non-vector contexts.
More information about the macstl-dev
mailing list