--- pixman/pixman-mmx.c.orig 2009-03-28 14:11:13.312002562 +0100 +++ pixman/pixman-mmx.c 2009-03-28 14:40:59.433607926 +0100 @@ -81,6 +81,10 @@ typedef unsigned __int64 ullong; typedef __m64 mmxdatafield; #endif +#ifdef __SUNPRO_C +typedef unsigned long long ullong; +typedef __m64 mmxdatafield; +#endif typedef struct { @@ -137,6 +141,23 @@ { 0x0000ffff00000000UI64 }, { 0x000000000000ffffUI64 }, #endif +#ifdef __SUNPRO_C + { 0x00ff00ff00ff00ffULL }, + { 0x0080008000800080ULL }, + { 0x000001f0003f001fULL }, + { 0x0000008404100840ULL }, + { 0x000000f800000000ULL }, + { 0x0000000000fc0000ULL }, + { 0x00000000000000f8ULL }, + { 0xffffffffffff0000ULL }, + { 0xffffffff0000ffffULL }, + { 0xffff0000ffffffffULL }, + { 0x0000ffffffffffffULL }, + { 0x00ff000000000000ULL }, + { 0xffff0000ffff0000ULL }, + { 0x0000ffff00000000ULL }, + { 0x000000000000ffffULL }, +#endif }; #ifdef __GNUC__ @@ -151,6 +172,10 @@ # define MC(x) c.mmx_##x #endif +#ifdef __SUNPRO_C +# define MC(x) c.mmx_##x +#endif + static force_inline __m64 M64 (ullong x) { @@ -166,6 +191,13 @@ res.m64_u64 = x; return res; #endif + +#ifdef __SUNPRO_C + __m64 res; + + res.l_ = x; + return res; +#endif } static force_inline ullong @@ -183,6 +215,10 @@ res = x.m64_u64; return res; #endif + +#ifdef __SUNPRO_C + return x.l_; +#endif } static force_inline __m64