s10_8pf.c

来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· C语言 代码 · 共 587 行 · 第 1/2 页

C
587
字号
            alp1 = L_mac (alp1, rr[i3Len + i4], _1_16);//            printf(" alp1 = %d, ", alp1);#endif            /* initialize 3 indices for i5 inner loop (see i2-i3 loop) */            //move16 (); move16 (); move16 ();             i4Len = i4 * L_CODE;             for (i5 = ipos[5]; i5 < L_CODE; i5 += step)            {                ps2 = add (ps1, dn[i5]);                                alp2 = L_mac (alp1, rrv[i5], _1_4);#ifndef JZ4740_MXU_OPT                 alp2 = L_mac (alp2, rr[i4][i5], _1_16);#else                alp2 = L_mac (alp2, rr[i4Len + i5], _1_16);#endif                                sq2 = mult (ps2, ps2);                                alp_16 = round (alp2);                                s = L_msu (L_mult (alp, sq2), sq, alp_16);                                //test ();                 if (s > 0)                {                    sq = sq2;                    //move16 ();                     ps = ps2;                    //move16 ();                     alp = alp_16;                //move16 ();                     ia = i4;                     //move16 ();                     ib = i5;                     //move16 ();                 }            }        }        i4 = ia;                                 //move16 ();         i5 = ib;                                 //move16 ();         i4Len = i4 * L_CODE;         i5Len = i5 * L_CODE;                 /*----------------------------------------------------------------*         * i6 and i7 loop:                                                *         *----------------------------------------------------------------*/                ps0 = ps;                                //move16 ();         alp0 = L_mult (alp, _1_2);                /* initialize 8 indices for next loop (see i2-i3 loop) */        //move16 (); move16 (); move16 (); move16 ();         //move16 (); move16 (); move16 (); move16 ();                 for (i7 = ipos[7]; i7 < L_CODE; i7 += step)        {#ifndef JZ4740_MXU_OPT             s = L_mult (rr[i7][i7], _1_16);            s = L_mac (s, rr[i0][i7], _1_8);            s = L_mac (s, rr[i1][i7], _1_8);            s = L_mac (s, rr[i2][i7], _1_8);            s = L_mac (s, rr[i3][i7], _1_8);            s = L_mac (s, rr[i4][i7], _1_8);            s = L_mac (s, rr[i5][i7], _1_8);//            printf(" s = %d,  ", s);#else            s = L_mult (rr[i7 * L_CODE + i7], _1_16);            s = L_mac (s, rr[i0Len + i7], _1_8);            s = L_mac (s, rr[i1Len + i7], _1_8);            s = L_mac (s, rr[i2Len + i7], _1_8);            s = L_mac (s, rr[i3Len + i7], _1_8);            s = L_mac (s, rr[i4Len + i7], _1_8);            s = L_mac (s, rr[i5Len + i7], _1_8);//            printf(" s = %d\n", s);#endif            rrv[i7] = round (s);                 //move16 ();         }                /* Default value */        sq = -1;                                 //move16 ();         alp = 1;                                 //move16 ();         ps = 0;                                  //move16 ();        ia = ipos[6];                            //move16 ();        ib = ipos[7];                            //move16 ();                /* initialize 8 indices for i6 loop (see i2-i3 loop) */        //move16 (); move16 (); move16 (); move16 ();         //move16 (); move16 (); move16 (); move16 ();                 for (i6 = ipos[6]; i6 < L_CODE; i6 += step)        {            ps1 = add (ps0, dn[i6]);#ifndef JZ4740_MXU_OPT           //did not test              alp1 = L_mac (alp0, rr[i6][i6], _1_64);            alp1 = L_mac (alp1, rr[i0][i6], _1_32);            alp1 = L_mac (alp1, rr[i1][i6], _1_32);            alp1 = L_mac (alp1, rr[i2][i6], _1_32);            alp1 = L_mac (alp1, rr[i3][i6], _1_32);            alp1 = L_mac (alp1, rr[i4][i6], _1_32);            alp1 = L_mac (alp1, rr[i5][i6], _1_32);//           printf("alp1 = %d, ", alp1); #else            alp1 = L_mac (alp0, rr[i6 * L_CODE + i6], _1_64);            alp1 = L_mac (alp1, rr[i0Len + i6], _1_32);            alp1 = L_mac (alp1, rr[i1Len + i6], _1_32);            alp1 = L_mac (alp1, rr[i2Len + i6], _1_32);            alp1 = L_mac (alp1, rr[i3Len + i6], _1_32);            alp1 = L_mac (alp1, rr[i4Len + i6], _1_32);            alp1 = L_mac (alp1, rr[i5Len + i6], _1_32);//           printf("alp1 = %d, ", alp1 / 2); #endif                        /* initialize 3 indices for i7 inner loop (see i2-i3 loop) */            //move16 (); move16 (); move16 ();             i6Len = i6 * L_CODE;            for (i7 = ipos[7]; i7 < L_CODE; i7 += step)            {                ps2 = add (ps1, dn[i7]);                                alp2 = L_mac (alp1, rrv[i7], _1_4);#ifndef JZ4740_MXU_OPT                 alp2 = L_mac (alp2, rr[i6][i7], _1_32);#else                                alp2 = L_mac (alp2, rr[i6Len + i7], _1_32);#endif                sq2 = mult (ps2, ps2);                                alp_16 = round (alp2);                                s = L_msu (L_mult (alp, sq2), sq, alp_16);                                //test ();                 if (s > 0)                {                    sq = sq2;                    //move16 ();                     ps = ps2;                    //move16 ();                     alp = alp_16;                //move16 ();                     ia = i6;                     //move16 ();                     ib = i7;                     //move16 ();                 }            }        }        i6 = ia;                                 //move16 ();         i7 = ib;                                 //move16 ();         i6Len = i6 * L_CODE;        i7Len = i7 * L_CODE;                /* now finished searching a set of 8 pulses */        //test();        if(gsmefrFlag != 0){           /* go on with the two last pulses for GSMEFR                      */           /*----------------------------------------------------------------*            * i8 and i9 loop:                                                *            *----------------------------------------------------------------*/                   ps0 = ps;                                //move16 ();            alp0 = L_mult (alp, _1_2);                      /* initialize 10 indices for next loop (see i2-i3 loop) */           //move16 (); move16 (); move16 (); move16 (); move16 ();            //move16 (); move16 (); move16 (); move16 (); move16 ();                       for (i9 = ipos[9]; i9 < L_CODE; i9 += step)           {#ifndef JZ4740_MXU_OPT               s = L_mult (rr[i9][i9], _1_16);              s = L_mac (s, rr[i0][i9], _1_8);              s = L_mac (s, rr[i1][i9], _1_8);              s = L_mac (s, rr[i2][i9], _1_8);              s = L_mac (s, rr[i3][i9], _1_8);              s = L_mac (s, rr[i4][i9], _1_8);              s = L_mac (s, rr[i5][i9], _1_8);              s = L_mac (s, rr[i6][i9], _1_8);              s = L_mac (s, rr[i7][i9], _1_8);//              printf("s = %d, ", s);#else              s = L_mult (rr[i9 * L_CODE + i9], _1_16);              s = L_mac (s, rr[i0Len + i9], _1_8);              s = L_mac (s, rr[i1Len + i9], _1_8);              s = L_mac (s, rr[i2Len + i9], _1_8);              s = L_mac (s, rr[i3Len + i9], _1_8);              s = L_mac (s, rr[i4Len + i9], _1_8);              s = L_mac (s, rr[i5Len + i9], _1_8);              s = L_mac (s, rr[i6Len + i9], _1_8);              s = L_mac (s, rr[i7Len + i9], _1_8);//              printf("s = %d,\n ", s);#endif              rrv[i9] = round (s);                 //move16 ();            }                      /* Default value */           sq = -1;                                 //move16 ();            alp = 1;                                 //move16 ();            ps = 0;                                  //move16 ();           ia = ipos[8];                            //move16 ();           ib = ipos[9];                            //move16 ();                      /* initialize 10 indices for i8 loop (see i2-i3 loop) */           //move16 (); move16 (); move16 (); move16 (); move16 ();            //move16 (); move16 (); move16 (); move16 (); move16 ();                       for (i8 = ipos[8]; i8 < L_CODE; i8 += step)           {              ps1 = add (ps0, dn[i8]);#ifndef JZ4740_MXU_OPT                              alp1 = L_mac (alp0, rr[i8][i8], _1_128);              alp1 = L_mac (alp1, rr[i0][i8], _1_64);              alp1 = L_mac (alp1, rr[i1][i8], _1_64);              alp1 = L_mac (alp1, rr[i2][i8], _1_64);              alp1 = L_mac (alp1, rr[i3][i8], _1_64);              alp1 = L_mac (alp1, rr[i4][i8], _1_64);              alp1 = L_mac (alp1, rr[i5][i8], _1_64);              alp1 = L_mac (alp1, rr[i6][i8], _1_64);              alp1 = L_mac (alp1, rr[i7][i8], _1_64);#else                            alp1 = L_mac (alp0, rr[i8 * L_CODE + i8], _1_128);              alp1 = L_mac (alp1, rr[i0Len + i8], _1_64);              alp1 = L_mac (alp1, rr[i1Len + i8], _1_64);              alp1 = L_mac (alp1, rr[i2Len + i8], _1_64);              alp1 = L_mac (alp1, rr[i3Len + i8], _1_64);              alp1 = L_mac (alp1, rr[i4Len + i8], _1_64);              alp1 = L_mac (alp1, rr[i5Len + i8], _1_64);              alp1 = L_mac (alp1, rr[i6Len + i8], _1_64);              alp1 = L_mac (alp1, rr[i7Len + i8], _1_64);#endif                            /* initialize 3 indices for i9 inner loop (see i2-i3 loop) */              //move16 (); move16 (); move16 ();               i8Len = i8 * L_CODE;              for (i9 = ipos[9]; i9 < L_CODE; i9 += step)              {                 ps2 = add (ps1, dn[i9]);                                  alp2 = L_mac (alp1, rrv[i9], _1_8);#ifndef JZ4740_MXU_OPT                  alp2 = L_mac (alp2, rr[i8][i9], _1_64);#else                 alp2 = L_mac (alp2, rr[i8Len + i9], _1_64);#endif                                  sq2 = mult (ps2, ps2);                                 alp_16 = round (alp2);                                  s = L_msu (L_mult (alp, sq2), sq, alp_16);                                  //test ();                  if (s > 0)                 {                    sq = sq2;                    //move16 ();                     ps = ps2;                    //move16 ();                     alp = alp_16;                //move16 ();                     ia = i8;                     //move16 ();                     ib = i9;                     //move16 ();                  }              }           }        }/* end  gsmefrFlag */                /*----------------------------------------------------------------  *         * test and memorise if this combination is better than the last one.*         *----------------------------------------------------------------*/                s = L_msu (L_mult (alpk, sq), psk, alp);                //test ();         if (s > 0)        {            psk = sq;                            //move16 ();             alpk = alp;                          //move16 ();             codvec[0] = i0;                      //move16 ();             codvec[1] = i1;                      //move16 ();             codvec[2] = i2;                      //move16 ();             codvec[3] = i3;                      //move16 ();             codvec[4] = i4;                      //move16 ();             codvec[5] = i5;                      //move16 ();             codvec[6] = i6;                      //move16 ();             codvec[7] = i7;                      //move16 ();                     //test();            if (gsmefrFlag != 0)            {               codvec[8] = ia;                   //move16 ();                codvec[9] = ib;                   //move16 ();             }        }        /*----------------------------------------------------------------*         * Cyclic permutation of i1,i2,i3,i4,i5,i6,i7,(i8 and i9).          *         *----------------------------------------------------------------*/                pos = ipos[1];                           //move16 ();         for (j = 1, k = 2; k < nbPulse; j++, k++)        {            ipos[j] = ipos[k];                   //move16 ();         }        ipos[sub(nbPulse,1)] = pos;              //move16 ();    } /* end 1..nbTracks  loop*/}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?