Hi, 

The attached patch works around the problem. A better fix would be to
use an input constraint or to just use the C doe and have the compiler
generate altivec code. Is there a reason the gcc 2.95 generated altivec
code needs to be used ?

Thanks,

Peter (p2).

-- 
Goa is a state of mind
--- electricsheep-2.6.8/mpeg2dec/libmpeg2/idct_altivec.c        2002-12-12 
09:33:31.000000000 +0000
+++ electricsheep-2.6.8.new/mpeg2dec/libmpeg2/idct_altivec.c    2006-09-17 
20:38:29.401074200 +0000
@@ -58,411 +58,413 @@
 void mpeg2_idct_copy_altivec (int16_t * block, uint8_t * dest, int stride)
 {
     asm ("                                             \n"
-       "#      stwu            %r1,  -128(%r1)         \n"
-       "#      mflr            %r0                     \n"
-       "#      stw             %r0,  132(%r1)          \n"
-       "#      addi            %r0,  %r1,  128         \n"
+       "#      stwu            %%r1,  -128(%%r1)               \n"
+       "#      mflr            %%r0                    \n"
+       "#      stw             %%r0,  132(%%r1)                \n"
+       "#      addi            %%r0,  %%r1,  128               \n"
        "#      bl              _savev25                \n"
 
-       "       addi            %r9,  %r3,  112         \n"
-       "       vspltish        %v25, 4                 \n"
-       "       vxor            %v13, %v13, %v13        \n"
-       "       lis             %r10, [EMAIL PROTECTED] \n"
-       "       lvx             %v1,  0,    %r9         \n"
-       "       la              %r10, [EMAIL PROTECTED](%r10) \n"
-       "       lvx             %v5,  0,    %r3         \n"
-       "       addi            %r9,  %r3,  16          \n"
-       "       lvx             %v8,  0,    %r10        \n"
-       "       addi            %r11, %r10, 32          \n"
-       "       lvx             %v12, 0,    %r9         \n"
-       "       lvx             %v6,  0,    %r11        \n"
-       "       addi            %r8,  %r3,  48          \n"
-       "       vslh            %v1,  %v1,  %v25        \n"
-       "       addi            %r9,  %r3,  80          \n"
-       "       lvx             %v11, 0,    %r8         \n"
-       "       vslh            %v5,  %v5,  %v25        \n"
-       "       lvx             %v0,  0,    %r9         \n"
-       "       addi            %r11, %r10, 64          \n"
-       "       vsplth          %v3,  %v8,  2           \n"
-       "       lvx             %v7,  0,    %r11        \n"
-       "       addi            %r9,  %r3,  96          \n"
-       "       vslh            %v12, %v12, %v25        \n"
-       "       vmhraddshs      %v27, %v1,  %v6,  %v13  \n"
-       "       addi            %r8,  %r3,  32          \n"
-       "       vsplth          %v2,  %v8,  5           \n"
-       "       lvx             %v1,  0,    %r9         \n"
-       "       vslh            %v11, %v11, %v25        \n"
-       "       addi            %r3,  %r3,  64          \n"
-       "       lvx             %v9,  0,    %r8         \n"
-       "       addi            %r9,  %r10, 48          \n"
-       "       vslh            %v0,  %v0,  %v25        \n"
-       "       lvx             %v4,  0,    %r9         \n"
-       "       vmhraddshs      %v31, %v12, %v6,  %v13  \n"
-       "       addi            %r10, %r10, 16          \n"
-       "       vmhraddshs      %v30, %v0,  %v7,  %v13  \n"
-       "       lvx             %v10, 0,    %r3         \n"
-       "       vsplth          %v19, %v8,  3           \n"
-       "       vmhraddshs      %v15, %v11, %v7,  %v13  \n"
-       "       lvx             %v12, 0,    %r10        \n"
-       "       vsplth          %v6,  %v8,  4           \n"
-       "       vslh            %v1,  %v1,  %v25        \n"
-       "       vsplth          %v11, %v8,  1           \n"
-       "       li              %r9,  4                 \n"
-       "       vslh            %v9,  %v9,  %v25        \n"
-       "       vsplth          %v7,  %v8,  0           \n"
-       "       vmhraddshs      %v18, %v1,  %v4,  %v13  \n"
-       "       vspltw          %v8,  %v8,  3           \n"
-       "       vsubshs         %v0,  %v13, %v27        \n"
-       "       vmhraddshs      %v1,  %v9,  %v4,  %v13  \n"
-       "       vmhraddshs      %v17, %v3,  %v31, %v0   \n"
-       "       vmhraddshs      %v4,  %v2,  %v15, %v30  \n"
-       "       vslh            %v10, %v10, %v25        \n"
-       "       vmhraddshs      %v9,  %v5,  %v12, %v13  \n"
-       "       vspltish        %v25, 6                 \n"
-       "       vmhraddshs      %v5,  %v10, %v12, %v13  \n"
-       "       vmhraddshs      %v28, %v19, %v30, %v15  \n"
-       "       vmhraddshs      %v27, %v3,  %v27, %v31  \n"
-       "       vsubshs         %v0,  %v13, %v18        \n"
-       "       vmhraddshs      %v18, %v11, %v18, %v1   \n"
-       "       vaddshs         %v30, %v17, %v4         \n"
-       "       vmhraddshs      %v12, %v11, %v1,  %v0   \n"
-       "       vsubshs         %v4,  %v17, %v4         \n"
-       "       vaddshs         %v10, %v9,  %v5         \n"
-       "       vsubshs         %v17, %v27, %v28        \n"
-       "       vaddshs         %v27, %v27, %v28        \n"
-       "       vsubshs         %v1,  %v9,  %v5         \n"
-       "       vaddshs         %v28, %v10, %v18        \n"
-       "       vsubshs         %v18, %v10, %v18        \n"
-       "       vaddshs         %v10, %v1,  %v12        \n"
-       "       vsubshs         %v1,  %v1,  %v12        \n"
-       "       vsubshs         %v12, %v17, %v4         \n"
-       "       vaddshs         %v4,  %v17, %v4         \n"
-       "       vmhraddshs      %v5,  %v7,  %v12, %v1   \n"
-       "       vmhraddshs      %v26, %v6,  %v4,  %v10  \n"
-       "       vmhraddshs      %v29, %v6,  %v12, %v1   \n"
-       "       vmhraddshs      %v14, %v7,  %v4,  %v10  \n"
-       "       vsubshs         %v12, %v18, %v30        \n"
-       "       vaddshs         %v9,  %v28, %v27        \n"
-       "       vaddshs         %v16, %v18, %v30        \n"
-       "       vsubshs         %v10, %v28, %v27        \n"
-       "       vmrglh          %v31, %v9,  %v12        \n"
-       "       vmrglh          %v30, %v5,  %v26        \n"
-       "       vmrglh          %v15, %v14, %v29        \n"
-       "       vmrghh          %v5,  %v5,  %v26        \n"
-       "       vmrglh          %v27, %v16, %v10        \n"
-       "       vmrghh          %v9,  %v9,  %v12        \n"
-       "       vmrghh          %v18, %v16, %v10        \n"
-       "       vmrghh          %v1,  %v14, %v29        \n"
-       "       vmrglh          %v14, %v9,  %v5         \n"
-       "       vmrglh          %v16, %v31, %v30        \n"
-       "       vmrglh          %v10, %v15, %v27        \n"
-       "       vmrghh          %v9,  %v9,  %v5         \n"
-       "       vmrghh          %v26, %v15, %v27        \n"
-       "       vmrglh          %v27, %v16, %v10        \n"
-       "       vmrghh          %v12, %v1,  %v18        \n"
-       "       vmrglh          %v29, %v1,  %v18        \n"
-       "       vsubshs         %v0,  %v13, %v27        \n"
-       "       vmrghh          %v5,  %v31, %v30        \n"
-       "       vmrglh          %v31, %v9,  %v12        \n"
-       "       vmrglh          %v30, %v5,  %v26        \n"
-       "       vmrglh          %v15, %v14, %v29        \n"
-       "       vmhraddshs      %v17, %v3,  %v31, %v0   \n"
-       "       vmrghh          %v18, %v16, %v10        \n"
-       "       vmhraddshs      %v27, %v3,  %v27, %v31  \n"
-       "       vmhraddshs      %v4,  %v2,  %v15, %v30  \n"
-       "       vmrghh          %v1,  %v14, %v29        \n"
-       "       vmhraddshs      %v28, %v19, %v30, %v15  \n"
-       "       vmrghh          %v0,  %v9,  %v12        \n"
-       "       vsubshs         %v13, %v13, %v18        \n"
-       "       vmrghh          %v5,  %v5,  %v26        \n"
-       "       vmhraddshs      %v18, %v11, %v18, %v1   \n"
-       "       vaddshs         %v9,  %v0,  %v8         \n"
-       "       vaddshs         %v30, %v17, %v4         \n"
-       "       vmhraddshs      %v12, %v11, %v1,  %v13  \n"
-       "       vsubshs         %v4,  %v17, %v4         \n"
-       "       vaddshs         %v10, %v9,  %v5         \n"
-       "       vsubshs         %v17, %v27, %v28        \n"
-       "       vaddshs         %v27, %v27, %v28        \n"
-       "       vsubshs         %v1,  %v9,  %v5         \n"
-       "       vaddshs         %v28, %v10, %v18        \n"
-       "       vsubshs         %v18, %v10, %v18        \n"
-       "       vaddshs         %v10, %v1,  %v12        \n"
-       "       vsubshs         %v1,  %v1,  %v12        \n"
-       "       vsubshs         %v12, %v17, %v4         \n"
-       "       vaddshs         %v4,  %v17, %v4         \n"
-       "       vaddshs         %v9,  %v28, %v27        \n"
-       "       vmhraddshs      %v14, %v7,  %v4,  %v10  \n"
-       "       vsrah           %v9,  %v9,  %v25        \n"
-       "       vmhraddshs      %v5,  %v7,  %v12, %v1   \n"
-       "       vpkshus         %v0,  %v9,  %v9         \n"
-       "       vmhraddshs      %v29, %v6,  %v12, %v1   \n"
-       "       stvewx          %v0,  0,    %r4         \n"
-       "       vaddshs         %v16, %v18, %v30        \n"
-       "       vsrah           %v31, %v14, %v25        \n"
-       "       stvewx          %v0,  %r9,  %r4         \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       vsrah           %v15, %v16, %v25        \n"
-       "       vpkshus         %v0,  %v31, %v31        \n"
-       "       vsrah           %v1,  %v5,  %v25        \n"
-       "       stvewx          %v0,  0,    %r4         \n"
-       "       vsubshs         %v12, %v18, %v30        \n"
-       "       stvewx          %v0,  %r9,  %r4         \n"
-       "       vmhraddshs      %v26, %v6,  %v4,  %v10  \n"
-       "       vpkshus         %v0,  %v1,  %v1         \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       vsrah           %v5,  %v12, %v25        \n"
-       "       stvewx          %v0,  0,    %r4         \n"
-       "       vsrah           %v30, %v29, %v25        \n"
-       "       stvewx          %v0,  %r9,  %r4         \n"
-       "       vsubshs         %v10, %v28, %v27        \n"
-       "       vpkshus         %v0,  %v15, %v15        \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       stvewx          %v0,  0,    %r4         \n"
-       "       vsrah           %v18, %v26, %v25        \n"
-       "       stvewx          %v0,  %r9,  %r4         \n"
-       "       vsrah           %v27, %v10, %v25        \n"
-       "       vpkshus         %v0,  %v5,  %v5         \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       stvewx          %v0,  0,    %r4         \n"
-       "       stvewx          %v0,  %r9,  %r4         \n"
-       "       vpkshus         %v0,  %v30, %v30        \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       stvewx          %v0,  0,    %r4         \n"
-       "       stvewx          %v0,  %r9,  %r4         \n"
-       "       vpkshus         %v0,  %v18, %v18        \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       stvewx          %v0,  0,    %r4         \n"
-       "       stvewx          %v0,  %r9,  %r4         \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       vpkshus         %v0,  %v27, %v27        \n"
-       "       stvewx          %v0,  0,    %r4         \n"
-       "       stvewx          %v0,  %r9,  %r4         \n"
+       "       addi            %%r9,  %%r3,  112               \n"
+       "       vspltish        %%v25, 4                        \n"
+       "       vxor            %%v13, %%v13, %%v13     \n"
+       "       lis             %%r10, [EMAIL PROTECTED]        \n"
+       "       lvx             %%v1,  0,    %%r9               \n"
+       "       la              %%r10, [EMAIL PROTECTED](%%r10) \n"
+       "       lvx             %%v5,  0,    %%r3               \n"
+       "       addi            %%r9,  %%r3,  16                \n"
+       "       lvx             %%v8,  0,    %%r10      \n"
+       "       addi            %%r11, %%r10, 32                \n"
+       "       lvx             %%v12, 0,    %%r9               \n"
+       "       lvx             %%v6,  0,    %%r11      \n"
+       "       addi            %%r8,  %%r3,  48                \n"
+       "       vslh            %%v1,  %%v1,  %%v25     \n"
+       "       addi            %%r9,  %%r3,  80                \n"
+       "       lvx             %%v11, 0,    %%r8               \n"
+       "       vslh            %%v5,  %%v5,  %%v25     \n"
+       "       lvx             %%v0,  0,    %%r9               \n"
+       "       addi            %%r11, %%r10, 64                \n"
+       "       vsplth          %%v3,  %%v8,  2         \n"
+       "       lvx             %%v7,  0,    %%r11      \n"
+       "       addi            %%r9,  %%r3,  96                \n"
+       "       vslh            %%v12, %%v12, %%v25     \n"
+       "       vmhraddshs      %%v27, %%v1,  %%v6,  %%v13      \n"
+       "       addi            %%r8,  %%r3,  32                \n"
+       "       vsplth          %%v2,  %%v8,  5         \n"
+       "       lvx             %%v1,  0,    %%r9               \n"
+       "       vslh            %%v11, %%v11, %%v25     \n"
+       "       addi            %%r3,  %%r3,  64                \n"
+       "       lvx             %%v9,  0,    %%r8               \n"
+       "       addi            %%r9,  %%r10, 48                \n"
+       "       vslh            %%v0,  %%v0,  %%v25     \n"
+       "       lvx             %%v4,  0,    %%r9               \n"
+       "       vmhraddshs      %%v31, %%v12, %%v6,  %%v13      \n"
+       "       addi            %%r10, %%r10, 16                \n"
+       "       vmhraddshs      %%v30, %%v0,  %%v7,  %%v13      \n"
+       "       lvx             %%v10, 0,    %%r3               \n"
+       "       vsplth          %%v19, %%v8,  3         \n"
+       "       vmhraddshs      %%v15, %%v11, %%v7,  %%v13      \n"
+       "       lvx             %%v12, 0,    %%r10      \n"
+       "       vsplth          %%v6,  %%v8,  4         \n"
+       "       vslh            %%v1,  %%v1,  %%v25     \n"
+       "       vsplth          %%v11, %%v8,  1         \n"
+       "       li              %%r9,  4                        \n"
+       "       vslh            %%v9,  %%v9,  %%v25     \n"
+       "       vsplth          %%v7,  %%v8,  0         \n"
+       "       vmhraddshs      %%v18, %%v1,  %%v4,  %%v13      \n"
+       "       vspltw          %%v8,  %%v8,  3         \n"
+       "       vsubshs         %%v0,  %%v13, %%v27     \n"
+       "       vmhraddshs      %%v1,  %%v9,  %%v4,  %%v13      \n"
+       "       vmhraddshs      %%v17, %%v3,  %%v31, %%v0       \n"
+       "       vmhraddshs      %%v4,  %%v2,  %%v15, %%v30      \n"
+       "       vslh            %%v10, %%v10, %%v25     \n"
+       "       vmhraddshs      %%v9,  %%v5,  %%v12, %%v13      \n"
+       "       vspltish        %%v25, 6                        \n"
+       "       vmhraddshs      %%v5,  %%v10, %%v12, %%v13      \n"
+       "       vmhraddshs      %%v28, %%v19, %%v30, %%v15      \n"
+       "       vmhraddshs      %%v27, %%v3,  %%v27, %%v31      \n"
+       "       vsubshs         %%v0,  %%v13, %%v18     \n"
+       "       vmhraddshs      %%v18, %%v11, %%v18, %%v1       \n"
+       "       vaddshs         %%v30, %%v17, %%v4              \n"
+       "       vmhraddshs      %%v12, %%v11, %%v1,  %%v0       \n"
+       "       vsubshs         %%v4,  %%v17, %%v4              \n"
+       "       vaddshs         %%v10, %%v9,  %%v5              \n"
+       "       vsubshs         %%v17, %%v27, %%v28     \n"
+       "       vaddshs         %%v27, %%v27, %%v28     \n"
+       "       vsubshs         %%v1,  %%v9,  %%v5              \n"
+       "       vaddshs         %%v28, %%v10, %%v18     \n"
+       "       vsubshs         %%v18, %%v10, %%v18     \n"
+       "       vaddshs         %%v10, %%v1,  %%v12     \n"
+       "       vsubshs         %%v1,  %%v1,  %%v12     \n"
+       "       vsubshs         %%v12, %%v17, %%v4              \n"
+       "       vaddshs         %%v4,  %%v17, %%v4              \n"
+       "       vmhraddshs      %%v5,  %%v7,  %%v12, %%v1       \n"
+       "       vmhraddshs      %%v26, %%v6,  %%v4,  %%v10      \n"
+       "       vmhraddshs      %%v29, %%v6,  %%v12, %%v1       \n"
+       "       vmhraddshs      %%v14, %%v7,  %%v4,  %%v10      \n"
+       "       vsubshs         %%v12, %%v18, %%v30     \n"
+       "       vaddshs         %%v9,  %%v28, %%v27     \n"
+       "       vaddshs         %%v16, %%v18, %%v30     \n"
+       "       vsubshs         %%v10, %%v28, %%v27     \n"
+       "       vmrglh          %%v31, %%v9,  %%v12     \n"
+       "       vmrglh          %%v30, %%v5,  %%v26     \n"
+       "       vmrglh          %%v15, %%v14, %%v29     \n"
+       "       vmrghh          %%v5,  %%v5,  %%v26     \n"
+       "       vmrglh          %%v27, %%v16, %%v10     \n"
+       "       vmrghh          %%v9,  %%v9,  %%v12     \n"
+       "       vmrghh          %%v18, %%v16, %%v10     \n"
+       "       vmrghh          %%v1,  %%v14, %%v29     \n"
+       "       vmrglh          %%v14, %%v9,  %%v5              \n"
+       "       vmrglh          %%v16, %%v31, %%v30     \n"
+       "       vmrglh          %%v10, %%v15, %%v27     \n"
+       "       vmrghh          %%v9,  %%v9,  %%v5              \n"
+       "       vmrghh          %%v26, %%v15, %%v27     \n"
+       "       vmrglh          %%v27, %%v16, %%v10     \n"
+       "       vmrghh          %%v12, %%v1,  %%v18     \n"
+       "       vmrglh          %%v29, %%v1,  %%v18     \n"
+       "       vsubshs         %%v0,  %%v13, %%v27     \n"
+       "       vmrghh          %%v5,  %%v31, %%v30     \n"
+       "       vmrglh          %%v31, %%v9,  %%v12     \n"
+       "       vmrglh          %%v30, %%v5,  %%v26     \n"
+       "       vmrglh          %%v15, %%v14, %%v29     \n"
+       "       vmhraddshs      %%v17, %%v3,  %%v31, %%v0       \n"
+       "       vmrghh          %%v18, %%v16, %%v10     \n"
+       "       vmhraddshs      %%v27, %%v3,  %%v27, %%v31      \n"
+       "       vmhraddshs      %%v4,  %%v2,  %%v15, %%v30      \n"
+       "       vmrghh          %%v1,  %%v14, %%v29     \n"
+       "       vmhraddshs      %%v28, %%v19, %%v30, %%v15      \n"
+       "       vmrghh          %%v0,  %%v9,  %%v12     \n"
+       "       vsubshs         %%v13, %%v13, %%v18     \n"
+       "       vmrghh          %%v5,  %%v5,  %%v26     \n"
+       "       vmhraddshs      %%v18, %%v11, %%v18, %%v1       \n"
+       "       vaddshs         %%v9,  %%v0,  %%v8              \n"
+       "       vaddshs         %%v30, %%v17, %%v4              \n"
+       "       vmhraddshs      %%v12, %%v11, %%v1,  %%v13      \n"
+       "       vsubshs         %%v4,  %%v17, %%v4              \n"
+       "       vaddshs         %%v10, %%v9,  %%v5              \n"
+       "       vsubshs         %%v17, %%v27, %%v28     \n"
+       "       vaddshs         %%v27, %%v27, %%v28     \n"
+       "       vsubshs         %%v1,  %%v9,  %%v5              \n"
+       "       vaddshs         %%v28, %%v10, %%v18     \n"
+       "       vsubshs         %%v18, %%v10, %%v18     \n"
+       "       vaddshs         %%v10, %%v1,  %%v12     \n"
+       "       vsubshs         %%v1,  %%v1,  %%v12     \n"
+       "       vsubshs         %%v12, %%v17, %%v4              \n"
+       "       vaddshs         %%v4,  %%v17, %%v4              \n"
+       "       vaddshs         %%v9,  %%v28, %%v27     \n"
+       "       vmhraddshs      %%v14, %%v7,  %%v4,  %%v10      \n"
+       "       vsrah           %%v9,  %%v9,  %%v25     \n"
+       "       vmhraddshs      %%v5,  %%v7,  %%v12, %%v1       \n"
+       "       vpkshus         %%v0,  %%v9,  %%v9              \n"
+       "       vmhraddshs      %%v29, %%v6,  %%v12, %%v1       \n"
+       "       stvewx          %%v0,  0,    %%r4               \n"
+       "       vaddshs         %%v16, %%v18, %%v30     \n"
+       "       vsrah           %%v31, %%v14, %%v25     \n"
+       "       stvewx          %%v0,  %%r9,  %%r4              \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       vsrah           %%v15, %%v16, %%v25     \n"
+       "       vpkshus         %%v0,  %%v31, %%v31     \n"
+       "       vsrah           %%v1,  %%v5,  %%v25     \n"
+       "       stvewx          %%v0,  0,    %%r4               \n"
+       "       vsubshs         %%v12, %%v18, %%v30     \n"
+       "       stvewx          %%v0,  %%r9,  %%r4              \n"
+       "       vmhraddshs      %%v26, %%v6,  %%v4,  %%v10      \n"
+       "       vpkshus         %%v0,  %%v1,  %%v1              \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       vsrah           %%v5,  %%v12, %%v25     \n"
+       "       stvewx          %%v0,  0,    %%r4               \n"
+       "       vsrah           %%v30, %%v29, %%v25     \n"
+       "       stvewx          %%v0,  %%r9,  %%r4              \n"
+       "       vsubshs         %%v10, %%v28, %%v27     \n"
+       "       vpkshus         %%v0,  %%v15, %%v15     \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       stvewx          %%v0,  0,    %%r4               \n"
+       "       vsrah           %%v18, %%v26, %%v25     \n"
+       "       stvewx          %%v0,  %%r9,  %%r4              \n"
+       "       vsrah           %%v27, %%v10, %%v25     \n"
+       "       vpkshus         %%v0,  %%v5,  %%v5              \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       stvewx          %%v0,  0,    %%r4               \n"
+       "       stvewx          %%v0,  %%r9,  %%r4              \n"
+       "       vpkshus         %%v0,  %%v30, %%v30     \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       stvewx          %%v0,  0,    %%r4               \n"
+       "       stvewx          %%v0,  %%r9,  %%r4              \n"
+       "       vpkshus         %%v0,  %%v18, %%v18     \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       stvewx          %%v0,  0,    %%r4               \n"
+       "       stvewx          %%v0,  %%r9,  %%r4              \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       vpkshus         %%v0,  %%v27, %%v27     \n"
+       "       stvewx          %%v0,  0,    %%r4               \n"
+       "       stvewx          %%v0,  %%r9,  %%r4              \n"
 
-       "#      addi            %r0,  %r1,  128         \n"
+       "#      addi            %%r0,  %%r1,  128               \n"
        "#      bl              _restv25                \n"
-       "#      lwz             %r0,  132(%r1)          \n"
-       "#      mtlr            %r0                     \n"
-       "#      la              %r1,  128(%r1)          \n"
+       "#      lwz             %%r0,  132(%%r1)                \n"
+       "#      mtlr            %%r0                    \n"
+       "#      la              %%r1,  128(%%r1)                \n"
+       : : "r"(constants)
         );
 }
 
 void mpeg2_idct_add_altivec (int16_t * block, uint8_t * dest, int stride)
 {
     asm ("                                             \n"
-       "#      stwu            %r1,  -192(%r1)         \n"
-       "#      mflr            %r0                     \n"
-       "#      stw             %r0,  196(%r1)          \n"
-       "#      addi            %r0,  %r1,  192         \n"
+       "#      stwu            %%r1,  -192(%%r1)               \n"
+       "#      mflr            %%r0                    \n"
+       "#      stw             %%r0,  196(%%r1)                \n"
+       "#      addi            %%r0,  %%r1,  192               \n"
        "#      bl              _savev21                \n"
 
-       "       addi            %r9,  %r3,  112         \n"
-       "       vspltish        %v21, 4                 \n"
-       "       vxor            %v1,  %v1,  %v1         \n"
-       "       lvx             %v13, 0,    %r9         \n"
-       "       lis             %r10, [EMAIL PROTECTED] \n"
-       "       vspltisw        %v3,  -1                \n"
-       "       la              %r10, [EMAIL PROTECTED](%r10) \n"
-       "       lvx             %v5,  0,    %r3         \n"
-       "       addi            %r9,  %r3,  16          \n"
-       "       lvx             %v8,  0,    %r10        \n"
-       "       lvx             %v12, 0,    %r9         \n"
-       "       addi            %r11, %r10, 32          \n"
-       "       lvx             %v6,  0,    %r11        \n"
-       "       addi            %r8,  %r3,  48          \n"
-       "       vslh            %v13, %v13, %v21        \n"
-       "       addi            %r9,  %r3,  80          \n"
-       "       lvx             %v11, 0,    %r8         \n"
-       "       vslh            %v5,  %v5,  %v21        \n"
-       "       lvx             %v0,  0,    %r9         \n"
-       "       addi            %r11, %r10, 64          \n"
-       "       vsplth          %v2,  %v8,  2           \n"
-       "       lvx             %v7,  0,    %r11        \n"
-       "       vslh            %v12, %v12, %v21        \n"
-       "       addi            %r9,  %r3,  96          \n"
-       "       vmhraddshs      %v24, %v13, %v6,  %v1   \n"
-       "       addi            %r8,  %r3,  32          \n"
-       "       vsplth          %v17, %v8,  5           \n"
-       "       lvx             %v13, 0,    %r9         \n"
-       "       vslh            %v11, %v11, %v21        \n"
-       "       addi            %r3,  %r3,  64          \n"
-       "       lvx             %v10, 0,    %r8         \n"
-       "       vslh            %v0,  %v0,  %v21        \n"
-       "       addi            %r9,  %r10, 48          \n"
-       "       vmhraddshs      %v31, %v12, %v6,  %v1   \n"
-       "       lvx             %v4,  0,    %r9         \n"
-       "       addi            %r10, %r10, 16          \n"
-       "       vmhraddshs      %v26, %v0,  %v7,  %v1   \n"
-       "       lvx             %v9,  0,    %r3         \n"
-       "       vsplth          %v16, %v8,  3           \n"
-       "       vmhraddshs      %v22, %v11, %v7,  %v1   \n"
-       "       lvx             %v6,  0,    %r10        \n"
-       "       lvsl            %v19, 0,    %r4         \n"
-       "       vsubshs         %v12, %v1,  %v24        \n"
-       "       lvsl            %v0,  %r5,  %r4         \n"
-       "       vsplth          %v11, %v8,  1           \n"
-       "       vslh            %v10, %v10, %v21        \n"
-       "       vmrghb          %v19, %v3,  %v19        \n"
-       "       lvx             %v15, 0,    %r4         \n"
-       "       vslh            %v13, %v13, %v21        \n"
-       "       vmrghb          %v3,  %v3,  %v0         \n"
-       "       li              %r9,  4                 \n"
-       "       vmhraddshs      %v14, %v2,  %v31, %v12  \n"
-       "       vsplth          %v7,  %v8,  0           \n"
-       "       vmhraddshs      %v23, %v13, %v4,  %v1   \n"
-       "       vsplth          %v18, %v8,  4           \n"
-       "       vmhraddshs      %v27, %v10, %v4,  %v1   \n"
-       "       vspltw          %v8,  %v8,  3           \n"
-       "       vmhraddshs      %v12, %v17, %v22, %v26  \n"
-       "       vperm           %v15, %v15, %v1,  %v19  \n"
-       "       vslh            %v9,  %v9,  %v21        \n"
-       "       vmhraddshs      %v10, %v5,  %v6,  %v1   \n"
-       "       vspltish        %v21, 6                 \n"
-       "       vmhraddshs      %v30, %v9,  %v6,  %v1   \n"
-       "       vmhraddshs      %v26, %v16, %v26, %v22  \n"
-       "       vmhraddshs      %v24, %v2,  %v24, %v31  \n"
-       "       vmhraddshs      %v31, %v11, %v23, %v27  \n"
-       "       vsubshs         %v0,  %v1,  %v23        \n"
-       "       vaddshs         %v23, %v14, %v12        \n"
-       "       vmhraddshs      %v9,  %v11, %v27, %v0   \n"
-       "       vsubshs         %v12, %v14, %v12        \n"
-       "       vaddshs         %v6,  %v10, %v30        \n"
-       "       vsubshs         %v14, %v24, %v26        \n"
-       "       vaddshs         %v24, %v24, %v26        \n"
-       "       vsubshs         %v13, %v10, %v30        \n"
-       "       vaddshs         %v26, %v6,  %v31        \n"
-       "       vsubshs         %v31, %v6,  %v31        \n"
-       "       vaddshs         %v6,  %v13, %v9         \n"
-       "       vsubshs         %v13, %v13, %v9         \n"
-       "       vsubshs         %v9,  %v14, %v12        \n"
-       "       vaddshs         %v12, %v14, %v12        \n"
-       "       vmhraddshs      %v30, %v7,  %v9,  %v13  \n"
-       "       vmhraddshs      %v25, %v18, %v12, %v6   \n"
-       "       vmhraddshs      %v28, %v18, %v9,  %v13  \n"
-       "       vmhraddshs      %v29, %v7,  %v12, %v6   \n"
-       "       vaddshs         %v10, %v26, %v24        \n"
-       "       vsubshs         %v5,  %v31, %v23        \n"
-       "       vsubshs         %v13, %v26, %v24        \n"
-       "       vaddshs         %v4,  %v31, %v23        \n"
-       "       vmrglh          %v26, %v30, %v25        \n"
-       "       vmrglh          %v31, %v10, %v5         \n"
-       "       vmrglh          %v22, %v29, %v28        \n"
-       "       vmrghh          %v30, %v30, %v25        \n"
-       "       vmrglh          %v24, %v4,  %v13        \n"
-       "       vmrghh          %v10, %v10, %v5         \n"
-       "       vmrghh          %v23, %v4,  %v13        \n"
-       "       vmrghh          %v27, %v29, %v28        \n"
-       "       vmrglh          %v29, %v10, %v30        \n"
-       "       vmrglh          %v4,  %v31, %v26        \n"
-       "       vmrglh          %v13, %v22, %v24        \n"
-       "       vmrghh          %v10, %v10, %v30        \n"
-       "       vmrghh          %v25, %v22, %v24        \n"
-       "       vmrglh          %v24, %v4,  %v13        \n"
-       "       vmrghh          %v5,  %v27, %v23        \n"
-       "       vmrglh          %v28, %v27, %v23        \n"
-       "       vsubshs         %v0,  %v1,  %v24        \n"
-       "       vmrghh          %v30, %v31, %v26        \n"
-       "       vmrglh          %v31, %v10, %v5         \n"
-       "       vmrglh          %v26, %v30, %v25        \n"
-       "       vmrglh          %v22, %v29, %v28        \n"
-       "       vmhraddshs      %v14, %v2,  %v31, %v0   \n"
-       "       vmrghh          %v23, %v4,  %v13        \n"
-       "       vmhraddshs      %v24, %v2,  %v24, %v31  \n"
-       "       vmhraddshs      %v12, %v17, %v22, %v26  \n"
-       "       vmrghh          %v27, %v29, %v28        \n"
-       "       vmhraddshs      %v26, %v16, %v26, %v22  \n"
-       "       vmrghh          %v0,  %v10, %v5         \n"
-       "       vmhraddshs      %v31, %v11, %v23, %v27  \n"
-       "       vmrghh          %v30, %v30, %v25        \n"
-       "       vsubshs         %v13, %v1,  %v23        \n"
-       "       vaddshs         %v10, %v0,  %v8         \n"
-       "       vaddshs         %v23, %v14, %v12        \n"
-       "       vsubshs         %v12, %v14, %v12        \n"
-       "       vaddshs         %v6,  %v10, %v30        \n"
-       "       vsubshs         %v14, %v24, %v26        \n"
-       "       vmhraddshs      %v9,  %v11, %v27, %v13  \n"
-       "       vaddshs         %v24, %v24, %v26        \n"
-       "       vaddshs         %v26, %v6,  %v31        \n"
-       "       vsubshs         %v13, %v10, %v30        \n"
-       "       vaddshs         %v10, %v26, %v24        \n"
-       "       vsubshs         %v31, %v6,  %v31        \n"
-       "       vaddshs         %v6,  %v13, %v9         \n"
-       "       vsrah           %v10, %v10, %v21        \n"
-       "       vsubshs         %v13, %v13, %v9         \n"
-       "       vaddshs         %v0,  %v15, %v10        \n"
-       "       vsubshs         %v9,  %v14, %v12        \n"
-       "       vaddshs         %v12, %v14, %v12        \n"
-       "       vpkshus         %v15, %v0,  %v0         \n"
-       "       stvewx          %v15, 0,    %r4         \n"
-       "       vaddshs         %v4,  %v31, %v23        \n"
-       "       vmhraddshs      %v29, %v7,  %v12, %v6   \n"
-       "       stvewx          %v15, %r9,  %r4         \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       vsubshs         %v5,  %v31, %v23        \n"
-       "       lvx             %v15, 0,    %r4         \n"
-       "       vmhraddshs      %v30, %v7,  %v9,  %v13  \n"
-       "       vsrah           %v22, %v4,  %v21        \n"
-       "       vperm           %v15, %v15, %v1,  %v3   \n"
-       "       vmhraddshs      %v28, %v18, %v9,  %v13  \n"
-       "       vsrah           %v31, %v29, %v21        \n"
-       "       vsubshs         %v13, %v26, %v24        \n"
-       "       vaddshs         %v0,  %v15, %v31        \n"
-       "       vsrah           %v27, %v30, %v21        \n"
-       "       vpkshus         %v15, %v0,  %v0         \n"
-       "       vsrah           %v30, %v5,  %v21        \n"
-       "       stvewx          %v15, 0,    %r4         \n"
-       "       vsrah           %v26, %v28, %v21        \n"
-       "       stvewx          %v15, %r9,  %r4         \n"
-       "       vmhraddshs      %v25, %v18, %v12, %v6   \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       vsrah           %v24, %v13, %v21        \n"
-       "       lvx             %v15, 0,    %r4         \n"
-       "       vperm           %v15, %v15, %v1,  %v19  \n"
-       "       vsrah           %v23, %v25, %v21        \n"
-       "       vaddshs         %v0,  %v15, %v27        \n"
-       "       vpkshus         %v15, %v0,  %v0         \n"
-       "       stvewx          %v15, 0,    %r4         \n"
-       "       stvewx          %v15, %r9,  %r4         \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       lvx             %v15, 0,    %r4         \n"
-       "       vperm           %v15, %v15, %v1,  %v3   \n"
-       "       vaddshs         %v0,  %v15, %v22        \n"
-       "       vpkshus         %v15, %v0,  %v0         \n"
-       "       stvewx          %v15, 0,    %r4         \n"
-       "       stvewx          %v15, %r9,  %r4         \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       lvx             %v15, 0,    %r4         \n"
-       "       vperm           %v15, %v15, %v1,  %v19  \n"
-       "       vaddshs         %v0,  %v15, %v30        \n"
-       "       vpkshus         %v15, %v0,  %v0         \n"
-       "       stvewx          %v15, 0,    %r4         \n"
-       "       stvewx          %v15, %r9,  %r4         \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       lvx             %v15, 0,    %r4         \n"
-       "       vperm           %v15, %v15, %v1,  %v3   \n"
-       "       vaddshs         %v0,  %v15, %v26        \n"
-       "       vpkshus         %v15, %v0,  %v0         \n"
-       "       stvewx          %v15, 0,    %r4         \n"
-       "       stvewx          %v15, %r9,  %r4         \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       lvx             %v15, 0,    %r4         \n"
-       "       vperm           %v15, %v15, %v1,  %v19  \n"
-       "       vaddshs         %v0,  %v15, %v23        \n"
-       "       vpkshus         %v15, %v0,  %v0         \n"
-       "       stvewx          %v15, 0,    %r4         \n"
-       "       stvewx          %v15, %r9,  %r4         \n"
-       "       add             %r4,  %r4,  %r5         \n"
-       "       lvx             %v15, 0,    %r4         \n"
-       "       vperm           %v15, %v15, %v1,  %v3   \n"
-       "       vaddshs         %v0,  %v15, %v24        \n"
-       "       vpkshus         %v15, %v0,  %v0         \n"
-       "       stvewx          %v15, 0,    %r4         \n"
-       "       stvewx          %v15, %r9,  %r4         \n"
+       "       addi            %%r9,  %%r3,  112               \n"
+       "       vspltish        %%v21, 4                        \n"
+       "       vxor            %%v1,  %%v1,  %%v1              \n"
+       "       lvx             %%v13, 0,    %%r9               \n"
+       "       lis             %%r10, [EMAIL PROTECTED]        \n"
+       "       vspltisw        %%v3,  -1               \n"
+       "       la              %%r10, [EMAIL PROTECTED](%%r10) \n"
+       "       lvx             %%v5,  0,    %%r3               \n"
+       "       addi            %%r9,  %%r3,  16                \n"
+       "       lvx             %%v8,  0,    %%r10      \n"
+       "       lvx             %%v12, 0,    %%r9               \n"
+       "       addi            %%r11, %%r10, 32                \n"
+       "       lvx             %%v6,  0,    %%r11      \n"
+       "       addi            %%r8,  %%r3,  48                \n"
+       "       vslh            %%v13, %%v13, %%v21     \n"
+       "       addi            %%r9,  %%r3,  80                \n"
+       "       lvx             %%v11, 0,    %%r8               \n"
+       "       vslh            %%v5,  %%v5,  %%v21     \n"
+       "       lvx             %%v0,  0,    %%r9               \n"
+       "       addi            %%r11, %%r10, 64                \n"
+       "       vsplth          %%v2,  %%v8,  2         \n"
+       "       lvx             %%v7,  0,    %%r11      \n"
+       "       vslh            %%v12, %%v12, %%v21     \n"
+       "       addi            %%r9,  %%r3,  96                \n"
+       "       vmhraddshs      %%v24, %%v13, %%v6,  %%v1       \n"
+       "       addi            %%r8,  %%r3,  32                \n"
+       "       vsplth          %%v17, %%v8,  5         \n"
+       "       lvx             %%v13, 0,    %%r9               \n"
+       "       vslh            %%v11, %%v11, %%v21     \n"
+       "       addi            %%r3,  %%r3,  64                \n"
+       "       lvx             %%v10, 0,    %%r8               \n"
+       "       vslh            %%v0,  %%v0,  %%v21     \n"
+       "       addi            %%r9,  %%r10, 48                \n"
+       "       vmhraddshs      %%v31, %%v12, %%v6,  %%v1       \n"
+       "       lvx             %%v4,  0,    %%r9               \n"
+       "       addi            %%r10, %%r10, 16                \n"
+       "       vmhraddshs      %%v26, %%v0,  %%v7,  %%v1       \n"
+       "       lvx             %%v9,  0,    %%r3               \n"
+       "       vsplth          %%v16, %%v8,  3         \n"
+       "       vmhraddshs      %%v22, %%v11, %%v7,  %%v1       \n"
+       "       lvx             %%v6,  0,    %%r10      \n"
+       "       lvsl            %%v19, 0,    %%r4               \n"
+       "       vsubshs         %%v12, %%v1,  %%v24     \n"
+       "       lvsl            %%v0,  %%r5,  %%r4              \n"
+       "       vsplth          %%v11, %%v8,  1         \n"
+       "       vslh            %%v10, %%v10, %%v21     \n"
+       "       vmrghb          %%v19, %%v3,  %%v19     \n"
+       "       lvx             %%v15, 0,    %%r4               \n"
+       "       vslh            %%v13, %%v13, %%v21     \n"
+       "       vmrghb          %%v3,  %%v3,  %%v0              \n"
+       "       li              %%r9,  4                        \n"
+       "       vmhraddshs      %%v14, %%v2,  %%v31, %%v12      \n"
+       "       vsplth          %%v7,  %%v8,  0         \n"
+       "       vmhraddshs      %%v23, %%v13, %%v4,  %%v1       \n"
+       "       vsplth          %%v18, %%v8,  4         \n"
+       "       vmhraddshs      %%v27, %%v10, %%v4,  %%v1       \n"
+       "       vspltw          %%v8,  %%v8,  3         \n"
+       "       vmhraddshs      %%v12, %%v17, %%v22, %%v26      \n"
+       "       vperm           %%v15, %%v15, %%v1,  %%v19      \n"
+       "       vslh            %%v9,  %%v9,  %%v21     \n"
+       "       vmhraddshs      %%v10, %%v5,  %%v6,  %%v1       \n"
+       "       vspltish        %%v21, 6                        \n"
+       "       vmhraddshs      %%v30, %%v9,  %%v6,  %%v1       \n"
+       "       vmhraddshs      %%v26, %%v16, %%v26, %%v22      \n"
+       "       vmhraddshs      %%v24, %%v2,  %%v24, %%v31      \n"
+       "       vmhraddshs      %%v31, %%v11, %%v23, %%v27      \n"
+       "       vsubshs         %%v0,  %%v1,  %%v23     \n"
+       "       vaddshs         %%v23, %%v14, %%v12     \n"
+       "       vmhraddshs      %%v9,  %%v11, %%v27, %%v0       \n"
+       "       vsubshs         %%v12, %%v14, %%v12     \n"
+       "       vaddshs         %%v6,  %%v10, %%v30     \n"
+       "       vsubshs         %%v14, %%v24, %%v26     \n"
+       "       vaddshs         %%v24, %%v24, %%v26     \n"
+       "       vsubshs         %%v13, %%v10, %%v30     \n"
+       "       vaddshs         %%v26, %%v6,  %%v31     \n"
+       "       vsubshs         %%v31, %%v6,  %%v31     \n"
+       "       vaddshs         %%v6,  %%v13, %%v9              \n"
+       "       vsubshs         %%v13, %%v13, %%v9              \n"
+       "       vsubshs         %%v9,  %%v14, %%v12     \n"
+       "       vaddshs         %%v12, %%v14, %%v12     \n"
+       "       vmhraddshs      %%v30, %%v7,  %%v9,  %%v13      \n"
+       "       vmhraddshs      %%v25, %%v18, %%v12, %%v6       \n"
+       "       vmhraddshs      %%v28, %%v18, %%v9,  %%v13      \n"
+       "       vmhraddshs      %%v29, %%v7,  %%v12, %%v6       \n"
+       "       vaddshs         %%v10, %%v26, %%v24     \n"
+       "       vsubshs         %%v5,  %%v31, %%v23     \n"
+       "       vsubshs         %%v13, %%v26, %%v24     \n"
+       "       vaddshs         %%v4,  %%v31, %%v23     \n"
+       "       vmrglh          %%v26, %%v30, %%v25     \n"
+       "       vmrglh          %%v31, %%v10, %%v5              \n"
+       "       vmrglh          %%v22, %%v29, %%v28     \n"
+       "       vmrghh          %%v30, %%v30, %%v25     \n"
+       "       vmrglh          %%v24, %%v4,  %%v13     \n"
+       "       vmrghh          %%v10, %%v10, %%v5              \n"
+       "       vmrghh          %%v23, %%v4,  %%v13     \n"
+       "       vmrghh          %%v27, %%v29, %%v28     \n"
+       "       vmrglh          %%v29, %%v10, %%v30     \n"
+       "       vmrglh          %%v4,  %%v31, %%v26     \n"
+       "       vmrglh          %%v13, %%v22, %%v24     \n"
+       "       vmrghh          %%v10, %%v10, %%v30     \n"
+       "       vmrghh          %%v25, %%v22, %%v24     \n"
+       "       vmrglh          %%v24, %%v4,  %%v13     \n"
+       "       vmrghh          %%v5,  %%v27, %%v23     \n"
+       "       vmrglh          %%v28, %%v27, %%v23     \n"
+       "       vsubshs         %%v0,  %%v1,  %%v24     \n"
+       "       vmrghh          %%v30, %%v31, %%v26     \n"
+       "       vmrglh          %%v31, %%v10, %%v5              \n"
+       "       vmrglh          %%v26, %%v30, %%v25     \n"
+       "       vmrglh          %%v22, %%v29, %%v28     \n"
+       "       vmhraddshs      %%v14, %%v2,  %%v31, %%v0       \n"
+       "       vmrghh          %%v23, %%v4,  %%v13     \n"
+       "       vmhraddshs      %%v24, %%v2,  %%v24, %%v31      \n"
+       "       vmhraddshs      %%v12, %%v17, %%v22, %%v26      \n"
+       "       vmrghh          %%v27, %%v29, %%v28     \n"
+       "       vmhraddshs      %%v26, %%v16, %%v26, %%v22      \n"
+       "       vmrghh          %%v0,  %%v10, %%v5              \n"
+       "       vmhraddshs      %%v31, %%v11, %%v23, %%v27      \n"
+       "       vmrghh          %%v30, %%v30, %%v25     \n"
+       "       vsubshs         %%v13, %%v1,  %%v23     \n"
+       "       vaddshs         %%v10, %%v0,  %%v8              \n"
+       "       vaddshs         %%v23, %%v14, %%v12     \n"
+       "       vsubshs         %%v12, %%v14, %%v12     \n"
+       "       vaddshs         %%v6,  %%v10, %%v30     \n"
+       "       vsubshs         %%v14, %%v24, %%v26     \n"
+       "       vmhraddshs      %%v9,  %%v11, %%v27, %%v13      \n"
+       "       vaddshs         %%v24, %%v24, %%v26     \n"
+       "       vaddshs         %%v26, %%v6,  %%v31     \n"
+       "       vsubshs         %%v13, %%v10, %%v30     \n"
+       "       vaddshs         %%v10, %%v26, %%v24     \n"
+       "       vsubshs         %%v31, %%v6,  %%v31     \n"
+       "       vaddshs         %%v6,  %%v13, %%v9              \n"
+       "       vsrah           %%v10, %%v10, %%v21     \n"
+       "       vsubshs         %%v13, %%v13, %%v9              \n"
+       "       vaddshs         %%v0,  %%v15, %%v10     \n"
+       "       vsubshs         %%v9,  %%v14, %%v12     \n"
+       "       vaddshs         %%v12, %%v14, %%v12     \n"
+       "       vpkshus         %%v15, %%v0,  %%v0              \n"
+       "       stvewx          %%v15, 0,    %%r4               \n"
+       "       vaddshs         %%v4,  %%v31, %%v23     \n"
+       "       vmhraddshs      %%v29, %%v7,  %%v12, %%v6       \n"
+       "       stvewx          %%v15, %%r9,  %%r4              \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       vsubshs         %%v5,  %%v31, %%v23     \n"
+       "       lvx             %%v15, 0,    %%r4               \n"
+       "       vmhraddshs      %%v30, %%v7,  %%v9,  %%v13      \n"
+       "       vsrah           %%v22, %%v4,  %%v21     \n"
+       "       vperm           %%v15, %%v15, %%v1,  %%v3       \n"
+       "       vmhraddshs      %%v28, %%v18, %%v9,  %%v13      \n"
+       "       vsrah           %%v31, %%v29, %%v21     \n"
+       "       vsubshs         %%v13, %%v26, %%v24     \n"
+       "       vaddshs         %%v0,  %%v15, %%v31     \n"
+       "       vsrah           %%v27, %%v30, %%v21     \n"
+       "       vpkshus         %%v15, %%v0,  %%v0              \n"
+       "       vsrah           %%v30, %%v5,  %%v21     \n"
+       "       stvewx          %%v15, 0,    %%r4               \n"
+       "       vsrah           %%v26, %%v28, %%v21     \n"
+       "       stvewx          %%v15, %%r9,  %%r4              \n"
+       "       vmhraddshs      %%v25, %%v18, %%v12, %%v6       \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       vsrah           %%v24, %%v13, %%v21     \n"
+       "       lvx             %%v15, 0,    %%r4               \n"
+       "       vperm           %%v15, %%v15, %%v1,  %%v19      \n"
+       "       vsrah           %%v23, %%v25, %%v21     \n"
+       "       vaddshs         %%v0,  %%v15, %%v27     \n"
+       "       vpkshus         %%v15, %%v0,  %%v0              \n"
+       "       stvewx          %%v15, 0,    %%r4               \n"
+       "       stvewx          %%v15, %%r9,  %%r4              \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       lvx             %%v15, 0,    %%r4               \n"
+       "       vperm           %%v15, %%v15, %%v1,  %%v3       \n"
+       "       vaddshs         %%v0,  %%v15, %%v22     \n"
+       "       vpkshus         %%v15, %%v0,  %%v0              \n"
+       "       stvewx          %%v15, 0,    %%r4               \n"
+       "       stvewx          %%v15, %%r9,  %%r4              \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       lvx             %%v15, 0,    %%r4               \n"
+       "       vperm           %%v15, %%v15, %%v1,  %%v19      \n"
+       "       vaddshs         %%v0,  %%v15, %%v30     \n"
+       "       vpkshus         %%v15, %%v0,  %%v0              \n"
+       "       stvewx          %%v15, 0,    %%r4               \n"
+       "       stvewx          %%v15, %%r9,  %%r4              \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       lvx             %%v15, 0,    %%r4               \n"
+       "       vperm           %%v15, %%v15, %%v1,  %%v3       \n"
+       "       vaddshs         %%v0,  %%v15, %%v26     \n"
+       "       vpkshus         %%v15, %%v0,  %%v0              \n"
+       "       stvewx          %%v15, 0,    %%r4               \n"
+       "       stvewx          %%v15, %%r9,  %%r4              \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       lvx             %%v15, 0,    %%r4               \n"
+       "       vperm           %%v15, %%v15, %%v1,  %%v19      \n"
+       "       vaddshs         %%v0,  %%v15, %%v23     \n"
+       "       vpkshus         %%v15, %%v0,  %%v0              \n"
+       "       stvewx          %%v15, 0,    %%r4               \n"
+       "       stvewx          %%v15, %%r9,  %%r4              \n"
+       "       add             %%r4,  %%r4,  %%r5              \n"
+       "       lvx             %%v15, 0,    %%r4               \n"
+       "       vperm           %%v15, %%v15, %%v1,  %%v3       \n"
+       "       vaddshs         %%v0,  %%v15, %%v24     \n"
+       "       vpkshus         %%v15, %%v0,  %%v0              \n"
+       "       stvewx          %%v15, 0,    %%r4               \n"
+       "       stvewx          %%v15, %%r9,  %%r4              \n"
 
-       "#      addi            %r0,  %r1,  192         \n"
+       "#      addi            %%r0,  %%r1,  192               \n"
        "#      bl              _restv21                \n"
-       "#      lwz             %r0,  196(%r1)          \n"
-       "#      mtlr            %r0                     \n"
-       "#      la              %r1,  192(%r1)          \n"
+       "#      lwz             %%r0,  196(%%r1)                \n"
+       "#      mtlr            %%r0                    \n"
+       "#      la              %%r1,  192(%%r1)                \n"
+       : : : "memory"
         );
 }
 

Reply via email to