Mercurial > libavcodec.hg
comparison ppc/dsputil_altivec.c @ 7373:266d4949aa15 libavcodec
Remove AltiVec vector declaration compiler compatibility macros.
The original problem was that FSF and Apple gcc used a different syntax
for vector declarations, i.e. {} vs. (). Nowadays Apple gcc versions support
the standard {} syntax and versions that support {} are available on all
relevant Mac OS X versions. Thus the greater compatibility is no longer
worth cluttering the code with macros.
author | diego |
---|---|
date | Thu, 24 Jul 2008 10:53:32 +0000 |
parents | d463d8ee7755 |
children | bf5bc1f4cba0 |
comparison
equal
deleted
inserted
replaced
7372:e97d0795ee70 | 7373:266d4949aa15 |
---|---|
275 vector unsigned int sad; | 275 vector unsigned int sad; |
276 vector signed int sumdiffs; | 276 vector signed int sumdiffs; |
277 | 277 |
278 sad = (vector unsigned int)vec_splat_u32(0); | 278 sad = (vector unsigned int)vec_splat_u32(0); |
279 | 279 |
280 permclear = (vector unsigned char)AVV(255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0); | 280 permclear = (vector unsigned char){255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0}; |
281 | 281 |
282 for (i = 0; i < h; i++) { | 282 for (i = 0; i < h; i++) { |
283 /* Read potentially unaligned pixels into t1 and t2 | 283 /* Read potentially unaligned pixels into t1 and t2 |
284 Since we're reading 16 pixels, and actually only want 8, | 284 Since we're reading 16 pixels, and actually only want 8, |
285 mask out the last 8 pixels. The 0s don't change the sum. */ | 285 mask out the last 8 pixels. The 0s don't change the sum. */ |
356 vector unsigned int sum; | 356 vector unsigned int sum; |
357 vector signed int sumsqr; | 357 vector signed int sumsqr; |
358 | 358 |
359 sum = (vector unsigned int)vec_splat_u32(0); | 359 sum = (vector unsigned int)vec_splat_u32(0); |
360 | 360 |
361 permclear = (vector unsigned char)AVV(255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0); | 361 permclear = (vector unsigned char){255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0}; |
362 | 362 |
363 | 363 |
364 for (i = 0; i < h; i++) { | 364 for (i = 0; i < h; i++) { |
365 /* Read potentially unaligned pixels into t1 and t2 | 365 /* Read potentially unaligned pixels into t1 and t2 |
366 Since we're reading 16 pixels, and actually only want 8, | 366 Since we're reading 16 pixels, and actually only want 8, |
988 register vector signed short temp0, temp1, temp2, temp3, temp4, | 988 register vector signed short temp0, temp1, temp2, temp3, temp4, |
989 temp5, temp6, temp7; | 989 temp5, temp6, temp7; |
990 POWERPC_PERF_START_COUNT(altivec_hadamard8_diff8x8_num, 1); | 990 POWERPC_PERF_START_COUNT(altivec_hadamard8_diff8x8_num, 1); |
991 { | 991 { |
992 register const vector signed short vprod1 =(const vector signed short) | 992 register const vector signed short vprod1 =(const vector signed short) |
993 AVV( 1,-1, 1,-1, 1,-1, 1,-1); | 993 { 1,-1, 1,-1, 1,-1, 1,-1 }; |
994 register const vector signed short vprod2 =(const vector signed short) | 994 register const vector signed short vprod2 =(const vector signed short) |
995 AVV( 1, 1,-1,-1, 1, 1,-1,-1); | 995 { 1, 1,-1,-1, 1, 1,-1,-1 }; |
996 register const vector signed short vprod3 =(const vector signed short) | 996 register const vector signed short vprod3 =(const vector signed short) |
997 AVV( 1, 1, 1, 1,-1,-1,-1,-1); | 997 { 1, 1, 1, 1,-1,-1,-1,-1 }; |
998 register const vector unsigned char perm1 = (const vector unsigned char) | 998 register const vector unsigned char perm1 = (const vector unsigned char) |
999 AVV(0x02, 0x03, 0x00, 0x01, 0x06, 0x07, 0x04, 0x05, | 999 {0x02, 0x03, 0x00, 0x01, 0x06, 0x07, 0x04, 0x05, |
1000 0x0A, 0x0B, 0x08, 0x09, 0x0E, 0x0F, 0x0C, 0x0D); | 1000 0x0A, 0x0B, 0x08, 0x09, 0x0E, 0x0F, 0x0C, 0x0D}; |
1001 register const vector unsigned char perm2 = (const vector unsigned char) | 1001 register const vector unsigned char perm2 = (const vector unsigned char) |
1002 AVV(0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, | 1002 {0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, |
1003 0x0C, 0x0D, 0x0E, 0x0F, 0x08, 0x09, 0x0A, 0x0B); | 1003 0x0C, 0x0D, 0x0E, 0x0F, 0x08, 0x09, 0x0A, 0x0B}; |
1004 register const vector unsigned char perm3 = (const vector unsigned char) | 1004 register const vector unsigned char perm3 = (const vector unsigned char) |
1005 AVV(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, | 1005 {0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, |
1006 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07); | 1006 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07}; |
1007 | 1007 |
1008 #define ONEITERBUTTERFLY(i, res) \ | 1008 #define ONEITERBUTTERFLY(i, res) \ |
1009 { \ | 1009 { \ |
1010 register vector unsigned char src1, src2, srcO; \ | 1010 register vector unsigned char src1, src2, srcO; \ |
1011 register vector unsigned char dst1, dst2, dstO; \ | 1011 register vector unsigned char dst1, dst2, dstO; \ |
1128 temp7S REG_v(v15); | 1128 temp7S REG_v(v15); |
1129 register const vector unsigned char vzero REG_v(v31)= | 1129 register const vector unsigned char vzero REG_v(v31)= |
1130 (const vector unsigned char)vec_splat_u8(0); | 1130 (const vector unsigned char)vec_splat_u8(0); |
1131 { | 1131 { |
1132 register const vector signed short vprod1 REG_v(v16)= | 1132 register const vector signed short vprod1 REG_v(v16)= |
1133 (const vector signed short)AVV( 1,-1, 1,-1, 1,-1, 1,-1); | 1133 (const vector signed short){ 1,-1, 1,-1, 1,-1, 1,-1 }; |
1134 register const vector signed short vprod2 REG_v(v17)= | 1134 register const vector signed short vprod2 REG_v(v17)= |
1135 (const vector signed short)AVV( 1, 1,-1,-1, 1, 1,-1,-1); | 1135 (const vector signed short){ 1, 1,-1,-1, 1, 1,-1,-1 }; |
1136 register const vector signed short vprod3 REG_v(v18)= | 1136 register const vector signed short vprod3 REG_v(v18)= |
1137 (const vector signed short)AVV( 1, 1, 1, 1,-1,-1,-1,-1); | 1137 (const vector signed short){ 1, 1, 1, 1,-1,-1,-1,-1 }; |
1138 register const vector unsigned char perm1 REG_v(v19)= | 1138 register const vector unsigned char perm1 REG_v(v19)= |
1139 (const vector unsigned char) | 1139 (const vector unsigned char) |
1140 AVV(0x02, 0x03, 0x00, 0x01, 0x06, 0x07, 0x04, 0x05, | 1140 {0x02, 0x03, 0x00, 0x01, 0x06, 0x07, 0x04, 0x05, |
1141 0x0A, 0x0B, 0x08, 0x09, 0x0E, 0x0F, 0x0C, 0x0D); | 1141 0x0A, 0x0B, 0x08, 0x09, 0x0E, 0x0F, 0x0C, 0x0D}; |
1142 register const vector unsigned char perm2 REG_v(v20)= | 1142 register const vector unsigned char perm2 REG_v(v20)= |
1143 (const vector unsigned char) | 1143 (const vector unsigned char) |
1144 AVV(0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, | 1144 {0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, |
1145 0x0C, 0x0D, 0x0E, 0x0F, 0x08, 0x09, 0x0A, 0x0B); | 1145 0x0C, 0x0D, 0x0E, 0x0F, 0x08, 0x09, 0x0A, 0x0B}; |
1146 register const vector unsigned char perm3 REG_v(v21)= | 1146 register const vector unsigned char perm3 REG_v(v21)= |
1147 (const vector unsigned char) | 1147 (const vector unsigned char) |
1148 AVV(0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, | 1148 {0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, |
1149 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07); | 1149 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07}; |
1150 | 1150 |
1151 #define ONEITERBUTTERFLY(i, res1, res2) \ | 1151 #define ONEITERBUTTERFLY(i, res1, res2) \ |
1152 { \ | 1152 { \ |
1153 register vector unsigned char src1 REG_v(v22), \ | 1153 register vector unsigned char src1 REG_v(v22), \ |
1154 src2 REG_v(v23), \ | 1154 src2 REG_v(v23), \ |