Mercurial > libavcodec.hg
comparison ppc/gcc_fixes.h @ 1391:fd48c92213ae libavcodec
namespace fix (triggered by gcc-alivec-bugfix + gentoo or so) by (Magnus Damm <damm at opensource dot se>)
author | michaelni |
---|---|
date | Tue, 29 Jul 2003 10:26:34 +0000 |
parents | 09b8fe0f0139 |
children | b370288f004d |
comparison
equal
deleted
inserted
replaced
1390:39d07c0263de | 1391:fd48c92213ae |
---|---|
23 * | 23 * |
24 * See this mail for more information: | 24 * See this mail for more information: |
25 * http://gcc.gnu.org/ml/gcc/2003-04/msg00967.html | 25 * http://gcc.gnu.org/ml/gcc/2003-04/msg00967.html |
26 */ | 26 */ |
27 | 27 |
28 static inline vector signed char my_vmrglb (vector signed char const A, | 28 static inline vector signed char ff_vmrglb (vector signed char const A, |
29 vector signed char const B) | 29 vector signed char const B) |
30 { | 30 { |
31 static const vector unsigned char lowbyte = { | 31 static const vector unsigned char lowbyte = { |
32 0x08, 0x18, 0x09, 0x19, 0x0a, 0x1a, 0x0b, 0x1b, | 32 0x08, 0x18, 0x09, 0x19, 0x0a, 0x1a, 0x0b, 0x1b, |
33 0x0c, 0x1c, 0x0d, 0x1d, 0x0e, 0x1e, 0x0f, 0x1f | 33 0x0c, 0x1c, 0x0d, 0x1d, 0x0e, 0x1e, 0x0f, 0x1f |
34 }; | 34 }; |
35 return vec_perm (A, B, lowbyte); | 35 return vec_perm (A, B, lowbyte); |
36 } | 36 } |
37 | 37 |
38 static inline vector signed short my_vmrglh (vector signed short const A, | 38 static inline vector signed short ff_vmrglh (vector signed short const A, |
39 vector signed short const B) | 39 vector signed short const B) |
40 { | 40 { |
41 static const vector unsigned char lowhalf = { | 41 static const vector unsigned char lowhalf = { |
42 0x08, 0x09, 0x18, 0x19, 0x0a, 0x0b, 0x1a, 0x1b, | 42 0x08, 0x09, 0x18, 0x19, 0x0a, 0x0b, 0x1a, 0x1b, |
43 0x0c, 0x0d, 0x1c, 0x1d, 0x0e, 0x0f, 0x1e, 0x1f | 43 0x0c, 0x0d, 0x1c, 0x1d, 0x0e, 0x0f, 0x1e, 0x1f |
44 }; | 44 }; |
45 return vec_perm (A, B, lowhalf); | 45 return vec_perm (A, B, lowhalf); |
46 } | 46 } |
47 | 47 |
48 static inline vector signed int my_vmrglw (vector signed int const A, | 48 static inline vector signed int ff_vmrglw (vector signed int const A, |
49 vector signed int const B) | 49 vector signed int const B) |
50 { | 50 { |
51 static const vector unsigned char lowword = { | 51 static const vector unsigned char lowword = { |
52 0x08, 0x09, 0x0a, 0x0b, 0x18, 0x19, 0x1a, 0x1b, | 52 0x08, 0x09, 0x0a, 0x0b, 0x18, 0x19, 0x1a, 0x1b, |
53 0x0c, 0x0d, 0x0e, 0x0f, 0x1c, 0x1d, 0x1e, 0x1f | 53 0x0c, 0x0d, 0x0e, 0x0f, 0x1c, 0x1d, 0x1e, 0x1f |
54 }; | 54 }; |
55 return vec_perm (A, B, lowword); | 55 return vec_perm (A, B, lowword); |
56 } | 56 } |
57 /*#define my_vmrglb my_vmrglb | 57 /*#define ff_vmrglb ff_vmrglb |
58 #define my_vmrglh my_vmrglh | 58 #define ff_vmrglh ff_vmrglh |
59 #define my_vmrglw my_vmrglw | 59 #define ff_vmrglw ff_vmrglw |
60 */ | 60 */ |
61 #undef vec_mergel | 61 #undef vec_mergel |
62 | 62 |
63 #define vec_mergel(a1, a2) \ | 63 #define vec_mergel(a1, a2) \ |
64 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \ | 64 __ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \ |
65 ((vector signed char) my_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \ | 65 ((vector signed char) ff_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \ |
66 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \ | 66 __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \ |
67 ((vector unsigned char) my_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \ | 67 ((vector unsigned char) ff_vmrglb ((vector signed char) (a1), (vector signed char) (a2))), \ |
68 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \ | 68 __ch (__bin_args_eq (vector signed short, (a1), vector signed short, (a2)), \ |
69 ((vector signed short) my_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \ | 69 ((vector signed short) ff_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \ |
70 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ | 70 __ch (__bin_args_eq (vector unsigned short, (a1), vector unsigned short, (a2)), \ |
71 ((vector unsigned short) my_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \ | 71 ((vector unsigned short) ff_vmrglh ((vector signed short) (a1), (vector signed short) (a2))), \ |
72 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \ | 72 __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \ |
73 ((vector float) my_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \ | 73 ((vector float) ff_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \ |
74 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \ | 74 __ch (__bin_args_eq (vector signed int, (a1), vector signed int, (a2)), \ |
75 ((vector signed int) my_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \ | 75 ((vector signed int) ff_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \ |
76 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \ | 76 __ch (__bin_args_eq (vector unsigned int, (a1), vector unsigned int, (a2)), \ |
77 ((vector unsigned int) my_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \ | 77 ((vector unsigned int) ff_vmrglw ((vector signed int) (a1), (vector signed int) (a2))), \ |
78 __altivec_link_error_invalid_argument ()))))))) | 78 __altivec_link_error_invalid_argument ()))))))) |
79 | 79 |
80 #endif | 80 #endif |
81 | 81 |
82 #endif /* CONFIG_DARWIN */ | 82 #endif /* CONFIG_DARWIN */ |