libxml2: copy the xml2-config to the crosstoolsdir and patch the paths in the native...
[AROS-Contrib.git] / vpdf / system / altivec.h
blob119a5fe9dcedf5e664df96c7bc3eabbe445a10ab
1 #ifndef SYS_ALTIVEC_H
2 #define SYS_ALTIVEC_H
4 #include <stdlib.h>
6 extern int hasAltivec;
8 void AltivecInit(void);
10 void *vec_memcpy(void *dstpp, const void *srcpp, size_t len);
12 #define CCSSF_WRITES (1 << 0UL) /* use when data will be read and written */
13 #define CCSSF_TRANSCIENT (1 << 1UL) /* use when data should be flushed straight to RAM to preserve L2 */
14 #define CCSSF_CHANNEL1 (1 << 2UL) /* use channel 1 (0 is default) (XXX: should get rid of it and have some allocchan-like function) */
15 #define CCSSF_CHANNEL2 (1 << 3UL) /* use channel 2 */
16 #define CCSSF_CHANNEL3 (1 << 4UL) /* use channel 3 */
18 void cpu_cache_stream_start(CONST_APTR ptr, ULONG blockcount, ULONG blocksize, LONG stride, ULONG flags);
19 void cpu_cache_stream_stop(ULONG channel);
21 void cpu_cache_image_start(void *ptr, int rowbytes, int width, int lines);
22 void cpu_cache_image_stop();
24 #if defined(__GNUC__) && __GNUC__ > 2
25 #include <altivec.h>
26 #define D_VECF(m1,m2,m3,m4) { m1,m2,m3,m4 }
27 #define D_VECI(m1,m2,m3,m4) { m1,m2,m3,m4 }
28 #define D_VECB(m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16) { m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16 }
29 #else
30 #define D_VECF(m1,m2,m3,m4) (vector float) ( m1,m2,m3,m4 )
31 #define D_VECI(m1,m2,m3,m4) (vector unsigned int) ( m1,m2,m3,m4 )
32 #define D_VECB(m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16) (vector unsigned char) ( m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16 )
33 #endif
35 #endif