[GCC-XML] mmx, sse, sse2, sse3, etc...

Cyrus Harmon ch-gccxml at bobobeach.com
Fri Mar 10 11:52:29 EST 2006


Basically it's anything that includes xmmintrin.h, or mmintrin.h,  
which is included from xmmintrin.h. These are gcc-4.0.1 (apple's  
hacked up version, but i assume there's a similar if not identical  
set in stock gcc) -supplied header files

In particular, the reference to the built-in  
__builtin_ia32_vec_init_v2si fails here:

/* Convert I to a __m64 object.  The integer is zero-extended to 64- 
bits.  */
static __inline __m64  __attribute__((__always_inline__, __nodebug__))
_mm_cvtsi32_si64 (int __i)
{
   return (__m64) __builtin_ia32_vec_init_v2si (__i, 0);
}

I _think_, but I could certainly be wrong, that this is an SSE3  
extension and that it is supported in recent GNU gcc. I've worked  
around this by hacking up a locally-modified version of Apple's  
MachineExceptions.h that doesn't include mmintrin.h. At some point,  
it would be nice if gccxml included support for this stuff, but I can  
imagine that the compiler arms race to keep up with built-in types to  
support new hardware features quickly gets tiring.

Thanks again,

Cyrus

On Mar 10, 2006, at 6:09 AM, Brad King wrote:

> Cyrus Harmon wrote:
>> First of all, I'm a new subscriber to the list but have been  
>> using  gccxml for generating lisp Foreign-function interfaces to  
>> things like  FFTW, libtiff, the QuickTime libraries, etc... and  
>> gccxml has been  great. Thanks for all of your hard work.
>> Now, on to my problem, I'm trying to use gccxml on MacOS X/Intel  
>> and  things seem to work, except for QuickTime, which includes a  
>> bunch of  mmx/sse/sse2/etc... intrinsics and their corresponding  
>> built-in  types. Doing -mmmx and -msse2 seem to help, but I think  
>> types like  __builtin_ia32_vec_init_v2si or -msse3 only and the  
>> current gccxml  doesn't support this. Any chance of bumping of the  
>> gcc version to  support this, or other suggestions on how to deal  
>> with this problem?  I'm new to this whole x86 world, so forgive me  
>> if this is a dumb or  otherwise inappropriate question.
>
> What's an example of the block of code causing an error and what is  
> the error?  Also please make sure you are using the CVS version of  
> gccxml and not 0.6.
>
> -Brad




More information about the gccxml mailing list