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" ); }