[GCC-XML] OS X GCCXML Builtins not declared

Brad King brad.king at kitware.com
Mon Dec 15 15:35:22 EST 2008


Brad King wrote:
> Jeffrey A Loiselle wrote:
>> And a small excerpt of the errors:
>> /Developer/SDKs/MacOSX10.5.sdk/usr/lib/gcc/i686-apple-darwin9/4.2.1/include/mmintrin.h:
>> In function 'void _mm_empty()':
>> /Developer/SDKs/MacOSX10.5.sdk/usr/lib/gcc/i686-apple-darwin9/4.2.1/include/mmintrin.h:68:
>> error: '__builtin_ia32_emms' was not declared in this scope
> 
> The builtins get declared in the
> 
>   GCC_XML/Support/GCC/4.2/gccxml_builtins.h
> 
> file (the above is its location in the gccxml source tree, there is one
> in the install tree too).
> 
> It seems several builtins are missing from that file but no one has hit
> code that needs them until now.

Try adding the code below to your gccxml_builtins.h file.  If it works I'll commit it.

Thanks,
-Brad

#if defined(__MMX__)
/* The real m64 type may vary per-platform.  Hopefully this is good enough.  */
typedef int   __gccxml_m64  __attribute__ ((__vector_size__ (8), __may_alias__));
typedef int   __gccxml_v2si __attribute__ ((__vector_size__ (8)));
typedef short __gccxml_v4hi __attribute__ ((__vector_size__ (8)));
typedef char  __gccxml_v8qi __attribute__ ((__vector_size__ (8)));
void          __builtin_ia32_emms();
int           __builtin_ia32_vec_ext_v2si(...);
__gccxml_v8qi __builtin_ia32_packsswb(...);
__gccxml_v4hi __builtin_ia32_packssdw(...);
__gccxml_v8qi __builtin_ia32_packuswb(...);
__gccxml_v8qi __builtin_ia32_punpckhbw(...);
__gccxml_v4hi __builtin_ia32_punpckhwd(...);
__gccxml_v2si __builtin_ia32_punpckhdq(...);
__gccxml_v8qi __builtin_ia32_punpcklbw(...);
__gccxml_v4hi __builtin_ia32_punpcklwd(...);
__gccxml_v2si __builtin_ia32_punpckldq(...);
__gccxml_v8qi __builtin_ia32_paddb(...);
__gccxml_v4hi __builtin_ia32_paddw(...);
__gccxml_v2si __builtin_ia32_paddd(...);
__gccxml_m64  __builtin_ia32_paddq(...);
__gccxml_v8qi __builtin_ia32_paddsb(...);
__gccxml_v4hi __builtin_ia32_paddsw(...);
__gccxml_v8qi __builtin_ia32_paddusb(...);
__gccxml_v4hi __builtin_ia32_paddusw(...);
__gccxml_v8qi __builtin_ia32_psubb(...);
__gccxml_v4hi __builtin_ia32_psubw(...);
__gccxml_v2si __builtin_ia32_psubd(...);
__gccxml_m64  __builtin_ia32_psubq(...);
__gccxml_v8qi __builtin_ia32_psubsb(...);
__gccxml_v4hi __builtin_ia32_psubsw(...);
__gccxml_v8qi __builtin_ia32_psubusb(...);
__gccxml_v4hi __builtin_ia32_psubusw(...);
__gccxml_v2si __builtin_ia32_pmaddwd(...);
__gccxml_v4hi __builtin_ia32_pmulhw(...);
__gccxml_v4hi __builtin_ia32_pmullw(...);
__gccxml_v4hi __builtin_ia32_psllw(...);
__gccxml_v4hi __builtin_ia32_psllwi(...);
__gccxml_v2si __builtin_ia32_pslld(...);
__gccxml_v2si __builtin_ia32_pslldi(...);
__gccxml_m64  __builtin_ia32_psllq(...);
__gccxml_m64  __builtin_ia32_psllqi(...);
__gccxml_v4hi __builtin_ia32_psraw(...);
__gccxml_v4hi __builtin_ia32_psrawi(...);
__gccxml_v2si __builtin_ia32_psrad(...);
__gccxml_v2si __builtin_ia32_psradi(...);
__gccxml_v4hi __builtin_ia32_psrlw(...);
__gccxml_v4hi __builtin_ia32_psrlwi(...);
__gccxml_v2si __builtin_ia32_psrld(...);
__gccxml_v2si __builtin_ia32_psrldi(...);
__gccxml_m64  __builtin_ia32_psrlq(...);
__gccxml_m64  __builtin_ia32_psrlqi(...);
__gccxml_v2si __builtin_ia32_pand(...);
__gccxml_v2si __builtin_ia32_pandn(...);
__gccxml_v2si __builtin_ia32_por(...);
__gccxml_v2si __builtin_ia32_pxor(...);
__gccxml_v8qi __builtin_ia32_pcmpeqb(...);
__gccxml_v8qi __builtin_ia32_pcmpgtb(...);
__gccxml_v4hi __builtin_ia32_pcmpeqw(...);
__gccxml_v4hi __builtin_ia32_pcmpgtw(...);
__gccxml_v2si __builtin_ia32_pcmpeqd(...);
__gccxml_v2si __builtin_ia32_pcmpgtd(...);
__gccxml_v2si __builtin_ia32_vec_init_v2si(...);
__gccxml_v4hi __builtin_ia32_vec_init_v4hi(...);
__gccxml_v8qi __builtin_ia32_vec_init_v8qi(...);
#endif


More information about the gccxml mailing list