Browse code

Remove declarations after statements from vertClassify_altivec

Originally committed as revision 12561 to svn://svn.ffmpeg.org/ffmpeg/trunk

Luca Barbato authored on 2008/03/24 00:33:24
Showing 1 changed files
... ...
@@ -84,6 +84,17 @@ static inline int vertClassify_altivec(uint8_t src[], int stride, PPContext *c)
84 84
     vector signed short v_data = vec_ld(0, data);
85 85
     vector signed short v_srcAss0, v_srcAss1, v_srcAss2, v_srcAss3,
86 86
                         v_srcAss4, v_srcAss5, v_srcAss6, v_srcAss7;
87
+//FIXME avoid this mess if possible
88
+    register int j0 = 0,
89
+                 j1 = stride,
90
+                 j2 = 2 * stride,
91
+                 j3 = 3 * stride,
92
+                 j4 = 4 * stride,
93
+                 j5 = 5 * stride,
94
+                 j6 = 6 * stride,
95
+                 j7 = 7 * stride;
96
+    vector unsigned char v_srcA0, v_srcA1, v_srcA2, v_srcA3,
97
+                         v_srcA4, v_srcA5, v_srcA6, v_srcA7;
87 98
 
88 99
     v_dcOffset = vec_splat(v_data, 0);
89 100
     v_dcThreshold = (vector unsigned short)vec_splat(v_data, 1);
... ...
@@ -94,21 +105,20 @@ static inline int vertClassify_altivec(uint8_t src[], int stride, PPContext *c)
94 94
 
95 95
 
96 96
 #define LOAD_LINE(i)                                                    \
97
-    register int j##i = i * stride;                                     \
97
+    {                                                                   \
98 98
     vector unsigned char perm##i = vec_lvsl(j##i, src2);                \
99
-    const vector unsigned char v_srcA1##i = vec_ld(j##i, src2);         \
100 99
     vector unsigned char v_srcA2##i;                                    \
100
+    vector unsigned char v_srcA1##i = vec_ld(j##i, src2);               \
101 101
     if (two_vectors)                                                    \
102 102
         v_srcA2##i = vec_ld(j##i + 16, src2);                           \
103
-    const vector unsigned char v_srcA##i =                              \
103
+    v_srcA##i =                                                         \
104 104
         vec_perm(v_srcA1##i, v_srcA2##i, perm##i);                      \
105 105
     v_srcAss##i =                                                       \
106 106
         (vector signed short)vec_mergeh((vector signed char)zero,       \
107
-                                        (vector signed char)v_srcA##i)
107
+                                        (vector signed char)v_srcA##i); }
108 108
 
109 109
 #define LOAD_LINE_ALIGNED(i)                                            \
110
-    register int j##i = i * stride;                                     \
111
-    const vector unsigned char v_srcA##i = vec_ld(j##i, src2);          \
110
+    v_srcA##i = vec_ld(j##i, src2);                                     \
112 111
     v_srcAss##i =                                                       \
113 112
         (vector signed short)vec_mergeh((vector signed char)zero,       \
114 113
                                         (vector signed char)v_srcA##i)
... ...
@@ -146,16 +156,26 @@ static inline int vertClassify_altivec(uint8_t src[], int stride, PPContext *c)
146 146
     const vector signed short v_comp##i =                               \
147 147
         (vector signed short)vec_cmplt((vector unsigned short)v_sum##i, \
148 148
                                        v_dcThreshold);                  \
149
-    const vector signed short v_part##i = vec_and(mask, v_comp##i);     \
150
-    v_numEq = vec_sum4s(v_part##i, v_numEq);
151
-
152
-    ITER(0, 1);
153
-    ITER(1, 2);
154
-    ITER(2, 3);
155
-    ITER(3, 4);
156
-    ITER(4, 5);
157
-    ITER(5, 6);
158
-    ITER(6, 7);
149
+    const vector signed short v_part##i = vec_and(mask, v_comp##i);
150
+
151
+{
152
+    ITER(0, 1)
153
+    ITER(1, 2)
154
+    ITER(2, 3)
155
+    ITER(3, 4)
156
+    ITER(4, 5)
157
+    ITER(5, 6)
158
+    ITER(6, 7)
159
+
160
+    v_numEq = vec_sum4s(v_part0, v_numEq);
161
+    v_numEq = vec_sum4s(v_part1, v_numEq);
162
+    v_numEq = vec_sum4s(v_part2, v_numEq);
163
+    v_numEq = vec_sum4s(v_part3, v_numEq);
164
+    v_numEq = vec_sum4s(v_part4, v_numEq);
165
+    v_numEq = vec_sum4s(v_part5, v_numEq);
166
+    v_numEq = vec_sum4s(v_part6, v_numEq);
167
+}
168
+
159 169
 #undef ITER
160 170
 
161 171
     v_numEq = vec_sums(v_numEq, zero);