Originally committed as revision 12560 to svn://svn.ffmpeg.org/ffmpeg/trunk
Luca Barbato authored on 2008/03/24 00:29:22... | ... |
@@ -62,7 +62,13 @@ static inline int vertClassify_altivec(uint8_t src[], int stride, PPContext *c) |
62 | 62 |
vector by assuming (stride % 16) == 0, unfortunately |
63 | 63 |
this is not always true. |
64 | 64 |
*/ |
65 |
- DECLARE_ALIGNED(16, short, data[8]); |
|
65 |
+ DECLARE_ALIGNED(16, short, data[8]) = |
|
66 |
+ { |
|
67 |
+ ((c->nonBQP*c->ppMode.baseDcDiff)>>8) + 1, |
|
68 |
+ data[0] * 2 + 1, |
|
69 |
+ c->QP * 2, |
|
70 |
+ c->QP * 4 |
|
71 |
+ }; |
|
66 | 72 |
int numEq; |
67 | 73 |
uint8_t *src2 = src; |
68 | 74 |
vector signed short v_dcOffset; |
... | ... |
@@ -75,12 +81,10 @@ static inline int vertClassify_altivec(uint8_t src[], int stride, PPContext *c) |
75 | 75 |
const vector signed int zero = vec_splat_s32(0); |
76 | 76 |
const vector signed short mask = vec_splat_s16(1); |
77 | 77 |
vector signed int v_numEq = vec_splat_s32(0); |
78 |
- |
|
79 |
- data[0] = ((c->nonBQP*c->ppMode.baseDcDiff)>>8) + 1; |
|
80 |
- data[1] = data[0] * 2 + 1; |
|
81 |
- data[2] = c->QP * 2; |
|
82 |
- data[3] = c->QP * 4; |
|
83 | 78 |
vector signed short v_data = vec_ld(0, data); |
79 |
+ vector signed short v_srcAss0, v_srcAss1, v_srcAss2, v_srcAss3, |
|
80 |
+ v_srcAss4, v_srcAss5, v_srcAss6, v_srcAss7; |
|
81 |
+ |
|
84 | 82 |
v_dcOffset = vec_splat(v_data, 0); |
85 | 83 |
v_dcThreshold = (vector unsigned short)vec_splat(v_data, 1); |
86 | 84 |
v2QP = vec_splat(v_data, 2); |
... | ... |
@@ -88,7 +92,6 @@ static inline int vertClassify_altivec(uint8_t src[], int stride, PPContext *c) |
88 | 88 |
|
89 | 89 |
src2 += stride * 4; |
90 | 90 |
|
91 |
- vector signed short v_srcAss0, v_srcAss1, v_srcAss2, v_srcAss3, v_srcAss4, v_srcAss5, v_srcAss6, v_srcAss7; |
|
92 | 91 |
|
93 | 92 |
#define LOAD_LINE(i) \ |
94 | 93 |
register int j##i = i * stride; \ |