FreeCalypso > hg > gsm-codec-lib
annotate libtwamr/s10_8pf.c @ 585:3c6bf0d26ee7 default tip
TW-TS-005 reader: fix maximum line length bug
TW-TS-005 section 4.1 states:
The maximum allowed length of each line is 80 characters, not
including the OS-specific newline encoding.
The implementation of this line length limit in the TW-TS-005 hex file
reader function in the present suite was wrong, such that lines of
the full maximum length could not be read. Fix it.
Note that this bug affects comment lines too, not just actual RTP
payloads. Neither Annex A nor Annex B features an RTP payload format
that goes to the maximum of 40 bytes, but if a comment line goes to
the maximum allowed length of 80 characters not including the
terminating newline, the bug will be triggered, necessitating
the present fix.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 25 Feb 2025 07:49:28 +0000 |
parents | ebd064c52fe3 |
children |
rev | line source |
---|---|
316
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 ******************************************************************************** |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * R99 Version 3.3.0 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * REL-4 Version 4.1.0 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 ******************************************************************************** |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 * File : s10_8pf.c |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 * Purpose : Searches a 35/31 bit algebraic codebook containing |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 * : 10/8 pulses in a frame of 40 samples. |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 ******************************************************************************** |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 /* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 ******************************************************************************** |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 * MODULE INCLUDE FILE AND VERSION ID |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 ******************************************************************************** |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #include "namespace.h" |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #include "s10_8pf.h" |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 /* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 ******************************************************************************** |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 * INCLUDE FILES |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 ******************************************************************************** |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #include "typedef.h" |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #include "basic_op.h" |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #include "no_count.h" |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #include "cnst.h" |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 /* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 ******************************************************************************** |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 * LOCAL VARIABLES AND TABLES |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 ******************************************************************************** |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 /************************************************************************* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 * FUNCTION search_10and8i40() |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 * PURPOSE: Search the best codevector; determine positions of the 10/8 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 * pulses in the 40-sample frame. |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 * search_10and8i40 (10,5,5,dn, rr, ipos, pos_max, codvec); for GSMEFR |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 * search_10and8i40 (8, 4,4,dn, rr, ipos, pos_max, codvec); for 10.2 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 *************************************************************************/ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 #define _1_2 (Word16)(32768L/2) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 #define _1_4 (Word16)(32768L/4) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 #define _1_8 (Word16)(32768L/8) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 #define _1_16 (Word16)(32768L/16) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 #define _1_32 (Word16)(32768L/32) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 #define _1_64 (Word16)(32768L/64) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 #define _1_128 (Word16)(32768L/128) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 void search_10and8i40 ( |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 Word16 nbPulse, /* i : nbpulses to find */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 Word16 step, /* i : stepsize */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 Word16 nbTracks, /* i : nbTracks */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 Word16 dn[], /* i : correlation between target and h[] */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 Word16 rr[][L_CODE], /* i : matrix of autocorrelation */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 Word16 ipos[], /* i : starting position for each pulse */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 Word16 pos_max[], /* i : position of maximum of dn[] */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 Word16 codvec[] /* o : algebraic codebook vector */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 ) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 Word16 i0, i1, i2, i3, i4, i5, i6, i7, i8, i9; |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 Word16 i, j, k, pos, ia, ib; |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 Word16 psk, ps, ps0, ps1, ps2, sq, sq2; |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 Word16 alpk, alp, alp_16; |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 Word16 rrv[L_CODE]; |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 Word32 s, alp0, alp1, alp2; |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 Word16 gsmefrFlag; |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 test(); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 if (sub(nbPulse, 10) == 0) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 gsmefrFlag=1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 else |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 gsmefrFlag=0; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 /* fix i0 on maximum of correlation position */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 i0 = pos_max[ipos[0]]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 /*------------------------------------------------------------------* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 * i1 loop: * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 *------------------------------------------------------------------*/ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 /* Default value */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 psk = -1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 alpk = 1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 for (i = 0; i < nbPulse; i++) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 codvec[i] = i; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 for (i = 1; i < nbTracks; i++) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 i1 = pos_max[ipos[1]]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 ps0 = add (dn[i0], dn[i1]); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 alp0 = L_mult (rr[i0][i0], _1_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 alp0 = L_mac (alp0, rr[i1][i1], _1_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 alp0 = L_mac (alp0, rr[i0][i1], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 /*----------------------------------------------------------------* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 * i2 and i3 loop: * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 *----------------------------------------------------------------*/ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 /* initialize 4 indices for next loop. */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 move16 (); /* initialize "rr[i3][i3]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 move16 (); /* initialize "rr[i0][i3]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 move16 (); /* initialize "rr[i1][i3]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 move16 (); /* initialize "rrv[i3]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 for (i3 = ipos[3]; i3 < L_CODE; i3 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 s = L_mult (rr[i3][i3], _1_8); /* index incr= step+L_CODE */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 s = L_mac (s, rr[i0][i3], _1_4); /* index increment = step */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 s = L_mac (s, rr[i1][i3], _1_4); /* index increment = step */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 rrv[i3] = round (s); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 /* Default value */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 sq = -1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 alp = 1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 ps = 0; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 ia = ipos[2]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 ib = ipos[3]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 /* initialize 4 indices for i2 loop. */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 move16 (); /* initialize "dn[i2]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 move16 (); /* initialize "rr[i2][i2]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 move16 (); /* initialize "rr[i0][i2]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 move16 (); /* initialize "rr[i1][i2]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 for (i2 = ipos[2]; i2 < L_CODE; i2 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 /* index increment = step */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 ps1 = add (ps0, dn[i2]); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 /* index incr= step+L_CODE */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 alp1 = L_mac (alp0, rr[i2][i2], _1_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 /* index increment = step */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 alp1 = L_mac (alp1, rr[i0][i2], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 /* index increment = step */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 alp1 = L_mac (alp1, rr[i1][i2], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 /* initialize 3 indices for i3 inner loop */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 move16 (); /* initialize "dn[i3]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 move16 (); /* initialize "rrv[i3]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 move16 (); /* initialize "rr[i2][i3]" pointer */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 for (i3 = ipos[3]; i3 < L_CODE; i3 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 /* index increment = step */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 ps2 = add (ps1, dn[i3]); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 /* index increment = step */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 alp2 = L_mac (alp1, rrv[i3], _1_2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 /* index increment = step */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 alp2 = L_mac (alp2, rr[i2][i3], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 sq2 = mult (ps2, ps2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 alp_16 = round (alp2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 s = L_msu (L_mult (alp, sq2), sq, alp_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 test (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 if (s > 0) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 sq = sq2; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 ps = ps2; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 alp = alp_16; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 ia = i2; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 ib = i3; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 i2 = ia; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 i3 = ib; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 /*----------------------------------------------------------------* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 * i4 and i5 loop: * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 *----------------------------------------------------------------*/ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 ps0 = ps; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 alp0 = L_mult (alp, _1_2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 /* initialize 6 indices for next loop (see i2-i3 loop) */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 for (i5 = ipos[5]; i5 < L_CODE; i5 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 s = L_mult (rr[i5][i5], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 s = L_mac (s, rr[i0][i5], _1_4); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 s = L_mac (s, rr[i1][i5], _1_4); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 s = L_mac (s, rr[i2][i5], _1_4); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 s = L_mac (s, rr[i3][i5], _1_4); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 rrv[i5] = round (s); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 /* Default value */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 sq = -1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 alp = 1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 ps = 0; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 ia = ipos[4]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 ib = ipos[5]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 /* initialize 6 indices for i4 loop (see i2-i3 loop) */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 move16 (); move16 (); move16 (); move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 for (i4 = ipos[4]; i4 < L_CODE; i4 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 ps1 = add (ps0, dn[i4]); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 alp1 = L_mac (alp0, rr[i4][i4], _1_32); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 alp1 = L_mac (alp1, rr[i0][i4], _1_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 alp1 = L_mac (alp1, rr[i1][i4], _1_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 alp1 = L_mac (alp1, rr[i2][i4], _1_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 alp1 = L_mac (alp1, rr[i3][i4], _1_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 /* initialize 3 indices for i5 inner loop (see i2-i3 loop) */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 for (i5 = ipos[5]; i5 < L_CODE; i5 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 ps2 = add (ps1, dn[i5]); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 alp2 = L_mac (alp1, rrv[i5], _1_4); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 alp2 = L_mac (alp2, rr[i4][i5], _1_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 sq2 = mult (ps2, ps2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 alp_16 = round (alp2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 s = L_msu (L_mult (alp, sq2), sq, alp_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 test (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 if (s > 0) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 sq = sq2; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 ps = ps2; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 alp = alp_16; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 ia = i4; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 ib = i5; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 i4 = ia; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 i5 = ib; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 /*----------------------------------------------------------------* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 * i6 and i7 loop: * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 *----------------------------------------------------------------*/ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 ps0 = ps; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 alp0 = L_mult (alp, _1_2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 /* initialize 8 indices for next loop (see i2-i3 loop) */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 move16 (); move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 move16 (); move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 for (i7 = ipos[7]; i7 < L_CODE; i7 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 s = L_mult (rr[i7][i7], _1_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 s = L_mac (s, rr[i0][i7], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 s = L_mac (s, rr[i1][i7], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 s = L_mac (s, rr[i2][i7], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 s = L_mac (s, rr[i3][i7], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 s = L_mac (s, rr[i4][i7], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 s = L_mac (s, rr[i5][i7], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 rrv[i7] = round (s); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 /* Default value */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 sq = -1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 alp = 1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 ps = 0; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 ia = ipos[6]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 ib = ipos[7]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 /* initialize 8 indices for i6 loop (see i2-i3 loop) */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 move16 (); move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 move16 (); move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 for (i6 = ipos[6]; i6 < L_CODE; i6 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 ps1 = add (ps0, dn[i6]); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 alp1 = L_mac (alp0, rr[i6][i6], _1_64); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 alp1 = L_mac (alp1, rr[i0][i6], _1_32); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 alp1 = L_mac (alp1, rr[i1][i6], _1_32); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 alp1 = L_mac (alp1, rr[i2][i6], _1_32); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 alp1 = L_mac (alp1, rr[i3][i6], _1_32); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 alp1 = L_mac (alp1, rr[i4][i6], _1_32); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 alp1 = L_mac (alp1, rr[i5][i6], _1_32); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 /* initialize 3 indices for i7 inner loop (see i2-i3 loop) */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 for (i7 = ipos[7]; i7 < L_CODE; i7 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 ps2 = add (ps1, dn[i7]); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 alp2 = L_mac (alp1, rrv[i7], _1_4); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 alp2 = L_mac (alp2, rr[i6][i7], _1_32); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 sq2 = mult (ps2, ps2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 alp_16 = round (alp2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 s = L_msu (L_mult (alp, sq2), sq, alp_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 test (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 if (s > 0) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 sq = sq2; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 ps = ps2; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 alp = alp_16; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 ia = i6; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 ib = i7; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333 i6 = ia; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 i7 = ib; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 /* now finished searching a set of 8 pulses */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338 test(); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339 if(gsmefrFlag != 0){ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 /* go on with the two last pulses for GSMEFR */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 /*----------------------------------------------------------------* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 * i8 and i9 loop: * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343 *----------------------------------------------------------------*/ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 ps0 = ps; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 alp0 = L_mult (alp, _1_2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348 /* initialize 10 indices for next loop (see i2-i3 loop) */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 move16 (); move16 (); move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 move16 (); move16 (); move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 for (i9 = ipos[9]; i9 < L_CODE; i9 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 s = L_mult (rr[i9][i9], _1_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 s = L_mac (s, rr[i0][i9], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 s = L_mac (s, rr[i1][i9], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 s = L_mac (s, rr[i2][i9], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358 s = L_mac (s, rr[i3][i9], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359 s = L_mac (s, rr[i4][i9], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 s = L_mac (s, rr[i5][i9], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361 s = L_mac (s, rr[i6][i9], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 s = L_mac (s, rr[i7][i9], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 rrv[i9] = round (s); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
366 /* Default value */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 sq = -1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 alp = 1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369 ps = 0; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 ia = ipos[8]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371 ib = ipos[9]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373 /* initialize 10 indices for i8 loop (see i2-i3 loop) */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374 move16 (); move16 (); move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
375 move16 (); move16 (); move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
376 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 for (i8 = ipos[8]; i8 < L_CODE; i8 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379 ps1 = add (ps0, dn[i8]); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381 alp1 = L_mac (alp0, rr[i8][i8], _1_128); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
382 alp1 = L_mac (alp1, rr[i0][i8], _1_64); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383 alp1 = L_mac (alp1, rr[i1][i8], _1_64); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
384 alp1 = L_mac (alp1, rr[i2][i8], _1_64); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
385 alp1 = L_mac (alp1, rr[i3][i8], _1_64); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
386 alp1 = L_mac (alp1, rr[i4][i8], _1_64); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387 alp1 = L_mac (alp1, rr[i5][i8], _1_64); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
388 alp1 = L_mac (alp1, rr[i6][i8], _1_64); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
389 alp1 = L_mac (alp1, rr[i7][i8], _1_64); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
390 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
391 /* initialize 3 indices for i9 inner loop (see i2-i3 loop) */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
392 move16 (); move16 (); move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
393 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
394 for (i9 = ipos[9]; i9 < L_CODE; i9 += step) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
395 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
396 ps2 = add (ps1, dn[i9]); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
397 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
398 alp2 = L_mac (alp1, rrv[i9], _1_8); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
399 alp2 = L_mac (alp2, rr[i8][i9], _1_64); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
400 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
401 sq2 = mult (ps2, ps2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
402 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
403 alp_16 = round (alp2); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
404 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
405 s = L_msu (L_mult (alp, sq2), sq, alp_16); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
406 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
407 test (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
408 if (s > 0) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
409 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
410 sq = sq2; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
411 ps = ps2; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
412 alp = alp_16; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
413 ia = i8; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
414 ib = i9; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
415 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
416 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
417 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
418 }/* end gsmefrFlag */ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
419 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
420 /*---------------------------------------------------------------- * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
421 * test and memorise if this combination is better than the last one.* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
422 *----------------------------------------------------------------*/ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
423 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
424 s = L_msu (L_mult (alpk, sq), psk, alp); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
425 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
426 test (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
427 if (s > 0) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
428 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
429 psk = sq; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
430 alpk = alp; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
431 codvec[0] = i0; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
432 codvec[1] = i1; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
433 codvec[2] = i2; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
434 codvec[3] = i3; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
435 codvec[4] = i4; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
436 codvec[5] = i5; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
437 codvec[6] = i6; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
438 codvec[7] = i7; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
439 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
440 test(); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
441 if (gsmefrFlag != 0) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
442 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
443 codvec[8] = ia; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
444 codvec[9] = ib; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
445 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
446 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
447 /*----------------------------------------------------------------* |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
448 * Cyclic permutation of i1,i2,i3,i4,i5,i6,i7,(i8 and i9). * |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
449 *----------------------------------------------------------------*/ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
450 |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
451 pos = ipos[1]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
452 for (j = 1, k = 2; k < nbPulse; j++, k++) |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
453 { |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
454 ipos[j] = ipos[k]; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
455 } |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
456 ipos[sub(nbPulse,1)] = pos; move16 (); |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
457 } /* end 1..nbTracks loop*/ |
ebd064c52fe3
libtwamr: integrate s10_8pf.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
458 } |