diff ppc/mpegvideo_altivec.c @ 1839:b370288f004d libavcodec

Metrowerks CodeWarrior patches by (John Dalgliesh <johnd at defyne dot org>)
author michael
date Sat, 28 Feb 2004 15:03:53 +0000
parents e8ff4783f188
children 9241d99f7443
line wrap: on
line diff
--- a/ppc/mpegvideo_altivec.c	Thu Feb 26 19:11:21 2004 +0000
+++ b/ppc/mpegvideo_altivec.c	Sat Feb 28 15:03:53 2004 +0000
@@ -107,7 +107,9 @@
     int lastNonZero;
     vector float row0, row1, row2, row3, row4, row5, row6, row7;
     vector float alt0, alt1, alt2, alt3, alt4, alt5, alt6, alt7;
-    const vector float zero = (const vector float)FOUROF(0.);
+    const_vector float zero = (const_vector float)FOUROF(0.);
+    // used after quantise step
+    int oldBaseValue = 0;
 
     // Load the data into the row/alt vectors
     {
@@ -284,9 +286,6 @@
         }
     }
 
-    // used after quantise step
-    int oldBaseValue = 0;
-
     // perform the quantise step, using the floating point data
     // still in the row/alt registers
     {
@@ -414,21 +413,23 @@
             data7 = vec_max(vec_min(data7, max_q), min_q);
         }
 
+        {
         vector bool char zero_01, zero_23, zero_45, zero_67;
         vector signed char scanIndices_01, scanIndices_23, scanIndices_45, scanIndices_67;
         vector signed char negOne = vec_splat_s8(-1);
         vector signed char* scanPtr =
                 (vector signed char*)(s->intra_scantable.inverse);
+        signed char lastNonZeroChar;
 
         // Determine the largest non-zero index.
-        zero_01 = vec_pack(vec_cmpeq(data0, (vector short)zero),
-                vec_cmpeq(data1, (vector short)zero));
-        zero_23 = vec_pack(vec_cmpeq(data2, (vector short)zero),
-                vec_cmpeq(data3, (vector short)zero));
-        zero_45 = vec_pack(vec_cmpeq(data4, (vector short)zero),
-                vec_cmpeq(data5, (vector short)zero));
-        zero_67 = vec_pack(vec_cmpeq(data6, (vector short)zero),
-                vec_cmpeq(data7, (vector short)zero));
+        zero_01 = vec_pack(vec_cmpeq(data0, (vector signed short)zero),
+                vec_cmpeq(data1, (vector signed short)zero));
+        zero_23 = vec_pack(vec_cmpeq(data2, (vector signed short)zero),
+                vec_cmpeq(data3, (vector signed short)zero));
+        zero_45 = vec_pack(vec_cmpeq(data4, (vector signed short)zero),
+                vec_cmpeq(data5, (vector signed short)zero));
+        zero_67 = vec_pack(vec_cmpeq(data6, (vector signed short)zero),
+                vec_cmpeq(data7, (vector signed short)zero));
 
         // 64 biggest values
         scanIndices_01 = vec_sel(scanPtr[0], negOne, zero_01);
@@ -461,7 +462,6 @@
 
         scanIndices_01 = vec_splat(scanIndices_01, 0);
 
-        signed char lastNonZeroChar;
 
         vec_ste(scanIndices_01, 0, &lastNonZeroChar);
 
@@ -484,6 +484,7 @@
         vec_st(data5, 80, data);
         vec_st(data6, 96, data);
         vec_st(data7, 112, data);
+        }
     }
 
     // special handling of block[0]
@@ -562,7 +563,7 @@
     }
 #else /* ALTIVEC_USE_REFERENCE_C_CODE */
     {
-      register const vector short vczero = (const vector short)vec_splat_s16(0);
+      register const_vector signed short vczero = (const_vector signed short)vec_splat_s16(0);
       short __attribute__ ((aligned(16))) qmul8[] =
           {
             qmul, qmul, qmul, qmul,
@@ -578,7 +579,7 @@
             -qadd, -qadd, -qadd, -qadd,
             -qadd, -qadd, -qadd, -qadd
           };
-      register vector short blockv, qmulv, qaddv, nqaddv, temp1;
+      register vector signed short blockv, qmulv, qaddv, nqaddv, temp1;
       register vector bool short blockv_null, blockv_neg;
       register short backup_0 = block[0];
       register int j = 0;