]> git.saurik.com Git - apple/libc.git/blobdiff - stdio/FreeBSD/printflocal.h.patch
Libc-763.11.tar.gz
[apple/libc.git] / stdio / FreeBSD / printflocal.h.patch
diff --git a/stdio/FreeBSD/printflocal.h.patch b/stdio/FreeBSD/printflocal.h.patch
new file mode 100644 (file)
index 0000000..209dc14
--- /dev/null
@@ -0,0 +1,60 @@
+--- printflocal.h.orig 2009-11-12 13:40:46.000000000 -0800
++++ printflocal.h      2009-11-12 23:06:25.000000000 -0800
+@@ -32,6 +32,11 @@
+  * $FreeBSD: src/lib/libc/stdio/printflocal.h,v 1.3 2009/03/02 04:07:58 das Exp $
+  */
++/* 
++ * Defining here VECTORS for all files that include this header (<rdar://problem/8466056>)
++ */
++#define        VECTORS
++
+ /*
+  * Flags used during conversion.
+  */
+@@ -49,6 +49,9 @@
+ #define       PTRDIFFT        0x800           /* ptrdiff_t */
+ #define       INTMAXT         0x1000          /* intmax_t */
+ #define       CHARINT         0x2000          /* print char using int format */
++#ifdef VECTORS
++#define VECTOR          0x4000          /* Altivec or SSE vector */
++#endif /* VECTORS */
+ /*
+  * Macros for converting digits to letters and vice versa
+@@ -60,6 +63,13 @@
+ /* Size of the static argument table. */
+ #define STATIC_ARG_TBL_SIZE 8
++#ifdef VECTORS
++typedef __attribute__ ((vector_size(16))) unsigned char VECTORTYPE;
++#ifdef __SSE2__
++#define V64TYPE
++#endif /* __SSE2__ */
++#endif /* VECTORS */
++
+ union arg {
+       int     intarg;
+       u_int   uintarg;
+@@ -87,6 +97,21 @@ union arg {
+ #endif
+       wint_t  wintarg;
+       wchar_t *pwchararg;
++#ifdef VECTORS
++      VECTORTYPE              vectorarg;
++      unsigned char           vuchararg[16];
++      signed char             vchararg[16];
++      unsigned short          vushortarg[8];
++      signed short            vshortarg[8];
++      unsigned int            vuintarg[4];
++      signed int              vintarg[4];
++      float                   vfloatarg[4];
++#ifdef V64TYPE
++      double                  vdoublearg[2];
++      unsigned long long      vulonglongarg[2];
++      long long               vlonglongarg[2];
++#endif /* V64TYPE */
++#endif /* VECTORS */
+ };
+ /* Handle positional parameters. */