Home | History | Annotate | Download | only in ARMV5E
      1 @/*
      2 @ ** Copyright 2003-2010, VisualOn, Inc.
      3 @ **
      4 @ ** Licensed under the Apache License, Version 2.0 (the "License");
      5 @ ** you may not use this file except in compliance with the License.
      6 @ ** You may obtain a copy of the License at
      7 @ **
      8 @ **     http://www.apache.org/licenses/LICENSE-2.0
      9 @ **
     10 @ ** Unless required by applicable law or agreed to in writing, software
     11 @ ** distributed under the License is distributed on an "AS IS" BASIS,
     12 @ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 @ ** See the License for the specific language governing permissions and
     14 @ ** limitations under the License.
     15 @ */
     16 @
     17 @void Pred_lt4(
     18 @		  Word16 exc[],                         /* in/out: excitation buffer */
     19 @		  Word16 T0,                            /* input : integer pitch lag */
     20 @		  Word16 frac,                          /* input : fraction of lag   */
     21 @		  Word16 L_subfr                        /* input : subframe size     */
     22 @	      )
     23 
     24 @******************************
     25 @       ARM Register
     26 @******************************
     27 @ r0  ---  exc[]
     28 @ r1  ---  T0
     29 @ r2  ---  frac
     30 @ r3  ---  L_subfr
     31 
     32          .section  .text
     33 	 .global   pred_lt4_asm
     34 	 .extern   inter4_2
     35 
     36 pred_lt4_asm:
     37 
     38          STMFD     r13!, {r4 - r12, r14}
     39          RSB       r4, r1, #0                         @-T0
     40          RSB       r2, r2, #0                         @frac = -frac
     41          ADD       r5, r0, r4, LSL #1                 @x = exc - T0
     42          CMP       r2, #0
     43          ADDLT     r2, r2, #4                         @frac += UP_SAMP
     44          SUBLT     r5, r5, #2                         @x--
     45          SUB       r5, r5, #30                        @x -= 15
     46          RSB       r4, r2, #3                         @k = 3 - frac
     47          LDR       r6, Table
     48 	 MOV       r8, r4, LSL #6
     49          @MOV       r7, #0                             @j = 0
     50          ADD       r8, r6, r8                         @ptr2 = &(inter4_2[k][0])
     51 
     52 	 MOV       r1, r5
     53 	 MOV       r5, #0x8000
     54 	 MOV       r14, #21
     55 @ used register
     56          @r0 --- exc[]  r1 --- x  r7 --- j  r8 --- ptr2  r5 --- 0x8000
     57 THREE_LOOP:
     58 
     59          @MOV       r1, r5                             @ptr1 = x
     60 	 MOV       r2, r8                             @ptr = ptr2
     61          LDR       r3, [r2], #4                       @h[0], h[1]
     62 	 LDRSH     r4, [r1], #2                       @x[0]
     63 	 LDRSH     r6, [r1], #2                       @x[1]
     64 	 LDRSH     r9, [r1], #2                       @x[2]
     65 
     66 	 SMULBB    r10, r4, r3                        @x[0] * h[0]
     67 	 SMULBB    r11, r6, r3                        @x[1] * h[0]
     68 	 SMULBB    r12, r9, r3                        @x[2] * h[0]
     69 
     70          LDRSH     r4, [r1], #2                       @x[3]
     71 	 SMLABT    r10, r6, r3, r10                   @x[1] * h[1]
     72          SMLABT    r11, r9, r3, r11                   @x[2] * h[1]
     73 	 SMLABT    r12, r4, r3, r12                   @x[3] * h[1]
     74 
     75 	 LDR       r3, [r2], #4                       @h[2], h[3]
     76 	 LDRSH     r6, [r1], #2                       @x[4]
     77 	 SMLABB    r10, r9, r3, r10                   @x[2] * h[2]
     78          SMLABB    r11, r4, r3, r11                   @x[3] * h[2]
     79          SMLABB    r12, r6, r3, r12                   @x[4] * h[2]
     80 
     81          LDRSH     r9, [r1], #2                       @x[5]
     82          SMLABT    r10, r4, r3, r10                   @x[3] * h[3]
     83          SMLABT    r11, r6, r3, r11                   @x[4] * h[3]
     84          SMLABT    r12, r9, r3, r12                   @x[5] * h[3]
     85 
     86          LDR       r3, [r2], #4                       @h[4], h[5]
     87          LDRSH     r4, [r1], #2                       @x[6]
     88          SMLABB    r10, r6, r3, r10                   @x[4] * h[4]
     89          SMLABB    r11, r9, r3, r11                   @x[5] * h[4]
     90          SMLABB    r12, r4, r3, r12                   @x[6] * h[4]
     91 
     92 	 LDRSH     r6, [r1], #2                       @x[7]
     93 	 SMLABT    r10, r9, r3, r10                   @x[5] * h[5]
     94 	 SMLABT    r11, r4, r3, r11                   @x[6] * h[5]
     95 	 SMLABT    r12, r6, r3, r12                   @x[7] * h[5]
     96 
     97          LDR       r3, [r2], #4                       @h[6], h[7]
     98 	 LDRSH     r9, [r1], #2                       @x[8]
     99 	 SMLABB    r10, r4, r3, r10                   @x[6] * h[6]
    100 	 SMLABB    r11, r6, r3, r11                   @x[7] * h[6]
    101 	 SMLABB    r12, r9, r3, r12                   @x[8] * h[6]
    102 
    103 	 LDRSH     r4, [r1], #2                       @x[9]
    104 	 SMLABT    r10, r6, r3, r10                   @x[7] * h[7]
    105 	 SMLABT    r11, r9, r3, r11                   @x[8] * h[7]
    106 	 SMLABT    r12, r4, r3, r12                   @x[9] * h[7]
    107 
    108 	 LDR       r3, [r2], #4                       @h[8], h[9]
    109 	 LDRSH     r6, [r1], #2                       @x[10]
    110 	 SMLABB    r10, r9, r3, r10                   @x[8] * h[8]
    111 	 SMLABB    r11, r4, r3, r11                   @x[9] * h[8]
    112 	 SMLABB    r12, r6, r3, r12                   @x[10] * h[8]
    113 
    114 	 LDRSH     r9, [r1], #2                       @x[11]
    115 	 SMLABT    r10, r4, r3, r10                   @x[9] * h[9]
    116 	 SMLABT    r11, r6, r3, r11                   @x[10] * h[9]
    117 	 SMLABT    r12, r9, r3, r12                   @x[11] * h[9]
    118 
    119          LDR       r3, [r2], #4                       @h[10], h[11]
    120 	 LDRSH     r4, [r1], #2                       @x[12]
    121          SMLABB    r10, r6, r3, r10                   @x[10] * h[10]
    122 	 SMLABB    r11, r9, r3, r11                   @x[11] * h[10]
    123 	 SMLABB    r12, r4, r3, r12                   @x[12] * h[10]
    124 
    125 	 LDRSH     r6, [r1], #2                       @x[13]
    126 	 SMLABT    r10, r9, r3, r10                   @x[11] * h[11]
    127 	 SMLABT    r11, r4, r3, r11                   @x[12] * h[11]
    128 	 SMLABT    r12, r6, r3, r12                   @x[13] * h[11]
    129 
    130 	 LDR       r3, [r2], #4                       @h[12], h[13]
    131 	 LDRSH     r9, [r1], #2                       @x[14]
    132 	 SMLABB    r10, r4, r3, r10                   @x[12] * h[12]
    133 	 SMLABB    r11, r6, r3, r11                   @x[13] * h[12]
    134 	 SMLABB    r12, r9, r3, r12                   @x[14] * h[12]
    135 
    136 	 LDRSH     r4, [r1], #2                       @x[15]
    137 	 SMLABT    r10, r6, r3, r10                   @x[13] * h[13]
    138 	 SMLABT    r11, r9, r3, r11                   @x[14] * h[13]
    139 	 SMLABT    r12, r4, r3, r12                   @x[15] * h[13]
    140 
    141 	 LDR       r3, [r2], #4                       @h[14], h[15]
    142 	 LDRSH     r6, [r1], #2                       @x[16]
    143 	 SMLABB    r10, r9, r3, r10                   @x[14] * h[14]
    144 	 SMLABB    r11, r4, r3, r11                   @x[15] * h[14]
    145 	 SMLABB    r12, r6, r3, r12                   @x[16] * h[14]
    146 
    147 	 LDRSH     r9, [r1], #2                       @x[17]
    148          SMLABT    r10, r4, r3, r10                   @x[15] * h[15]
    149 	 SMLABT    r11, r6, r3, r11                   @x[16] * h[15]
    150 	 SMLABT    r12, r9, r3, r12                   @x[17] * h[15]
    151 
    152 	 LDR       r3, [r2], #4                       @h[16], h[17]
    153 	 LDRSH     r4, [r1], #2                       @x[18]
    154 	 SMLABB    r10, r6, r3, r10                   @x[16] * h[16]
    155 	 SMLABB    r11, r9, r3, r11                   @x[17] * h[16]
    156 	 SMLABB    r12, r4, r3, r12                   @x[18] * h[16]
    157 
    158          LDRSH     r6, [r1], #2                       @x[19]
    159 	 SMLABT    r10, r9, r3, r10                   @x[17] * h[17]
    160 	 SMLABT    r11, r4, r3, r11                   @x[18] * h[17]
    161 	 SMLABT    r12, r6, r3, r12                   @x[19] * h[17]
    162 
    163 	 LDR       r3, [r2], #4                       @h[18], h[19]
    164          LDRSH     r9, [r1], #2                       @x[20]
    165 	 SMLABB    r10, r4, r3, r10                   @x[18] * h[18]
    166 	 SMLABB    r11, r6, r3, r11                   @x[19] * h[18]
    167 	 SMLABB    r12, r9, r3, r12                   @x[20] * h[18]
    168 
    169 	 LDRSH     r4, [r1], #2                       @x[21]
    170 	 SMLABT    r10, r6, r3, r10                   @x[19] * h[19]
    171 	 SMLABT    r11, r9, r3, r11                   @x[20] * h[19]
    172 	 SMLABT    r12, r4, r3, r12                   @x[21] * h[19]
    173 
    174 	 LDR       r3, [r2], #4                       @h[20], h[21]
    175 	 LDRSH     r6, [r1], #2                       @x[22]
    176 	 SMLABB    r10, r9, r3, r10                   @x[20] * h[20]
    177 	 SMLABB    r11, r4, r3, r11                   @x[21] * h[20]
    178 	 SMLABB    r12, r6, r3, r12                   @x[22] * h[20]
    179 
    180 	 LDRSH     r9, [r1], #2                       @x[23]
    181 	 SMLABT    r10, r4, r3, r10                   @x[21] * h[21]
    182 	 SMLABT    r11, r6, r3, r11                   @x[22] * h[21]
    183 	 SMLABT    r12, r9, r3, r12                   @x[23] * h[21]
    184 
    185 	 LDR       r3, [r2], #4                       @h[22], h[23]
    186 	 LDRSH     r4, [r1], #2                       @x[24]
    187 	 SMLABB    r10, r6, r3, r10                   @x[22] * h[22]
    188 	 SMLABB    r11, r9, r3, r11                   @x[23] * h[22]
    189 	 SMLABB    r12, r4, r3, r12                   @x[24] * h[22]
    190 
    191          LDRSH     r6, [r1], #2                       @x[25]
    192 	 SMLABT    r10, r9, r3, r10                   @x[23] * h[23]
    193 	 SMLABT    r11, r4, r3, r11                   @x[24] * h[23]
    194 	 SMLABT    r12, r6, r3, r12                   @x[25] * h[23]
    195 
    196 	 LDR       r3, [r2], #4                       @h[24], h[25]
    197          LDRSH     r9, [r1], #2                       @x[26]
    198 	 SMLABB    r10, r4, r3, r10                   @x[24] * h[24]
    199 	 SMLABB    r11, r6, r3, r11                   @x[25] * h[24]
    200 	 SMLABB    r12, r9, r3, r12                   @x[26] * h[24]
    201 
    202 	 LDRSH     r4, [r1], #2                       @x[27]
    203 	 SMLABT    r10, r6, r3, r10                   @x[25] * h[25]
    204 	 SMLABT    r11, r9, r3, r11                   @x[26] * h[25]
    205 	 SMLABT    r12, r4, r3, r12                   @x[27] * h[25]
    206 
    207 	 LDR       r3, [r2], #4                       @h[26], h[27]
    208 	 LDRSH     r6, [r1], #2                       @x[28]
    209 	 SMLABB    r10, r9, r3, r10                   @x[26] * h[26]
    210 	 SMLABB    r11, r4, r3, r11                   @x[27] * h[26]
    211 	 SMLABB    r12, r6, r3, r12                   @x[28] * h[26]
    212 
    213 	 LDRSH     r9, [r1], #2                       @x[29]
    214 	 SMLABT    r10, r4, r3, r10                   @x[27] * h[27]
    215 	 SMLABT    r11, r6, r3, r11                   @x[28] * h[27]
    216 	 SMLABT    r12, r9, r3, r12                   @x[29] * h[27]
    217 
    218 	 LDR       r3, [r2], #4                       @h[28], h[29]
    219 	 LDRSH     r4, [r1], #2                       @x[30]
    220 	 SMLABB    r10, r6, r3, r10                   @x[28] * h[28]
    221 	 SMLABB    r11, r9, r3, r11                   @x[29] * h[28]
    222 	 SMLABB    r12, r4, r3, r12                   @x[30] * h[28]
    223 
    224          LDRSH     r6, [r1], #2                       @x[31]
    225 	 SMLABT    r10, r9, r3, r10                   @x[29] * h[29]
    226 	 SMLABT    r11, r4, r3, r11                   @x[30] * h[29]
    227 	 SMLABT    r12, r6, r3, r12                   @x[31] * h[29]
    228 
    229 	 LDR       r3, [r2], #4                       @h[30], h[31]
    230          LDRSH     r9, [r1], #2                       @x[32]
    231 	 SMLABB    r10, r4, r3, r10                   @x[30] * h[30]
    232 	 SMLABB    r11, r6, r3, r11                   @x[31] * h[30]
    233 	 SMLABB    r12, r9, r3, r12                   @x[32] * h[30]
    234 
    235 	 LDRSH     r4, [r1], #-60                     @x[33]
    236 	 SMLABT    r10, r6, r3, r10                   @x[31] * h[31]
    237 	 SMLABT    r11, r9, r3, r11                   @x[32] * h[31]
    238 	 SMLABT    r12, r4, r3, r12                   @x[33] * h[31]
    239 
    240 	 @SSAT      r10, #32, r10, LSL #2
    241 	 @SSAT      r11, #32, r11, LSL #2
    242 	 @SSAT      r12, #32, r12, LSL #2
    243 
    244 	 MOV       r10, r10, LSL #1
    245 	 MOV       r11, r11, LSL #1
    246 	 MOV       r12, r12, LSL #1
    247 
    248 	 QADD      r10, r10, r10
    249 	 QADD      r11, r11, r11
    250 	 QADD      r12, r12, r12
    251 
    252 	 QADD      r10, r10, r5
    253 	 QADD      r11, r11, r5
    254 	 QADD      r12, r12, r5
    255 
    256 	 SUBS      r14, r14, #1
    257 
    258 	 MOV       r10, r10, ASR #16
    259 	 MOV       r11, r11, ASR #16
    260 	 MOV       r12, r12, ASR #16
    261 
    262 	 STRH      r10, [r0], #2
    263 	 STRH      r11, [r0], #2
    264 	 STRH      r12, [r0], #2
    265 	 BNE       THREE_LOOP
    266 
    267 	 MOV       r2, r8                             @ptr = ptr2
    268 
    269 Last2LOOP:
    270 
    271          LDR       r3, [r2], #4                       @h[0], h[1]
    272 	 LDRSH     r4, [r1], #2                       @x[0]
    273 	 LDRSH     r6, [r1], #2                       @x[1]
    274 	 LDRSH     r9, [r1], #2                       @x[2]
    275 
    276 	 SMULBB    r10, r4, r3                        @x[0] * h[0]
    277 	 SMULBB    r11, r6, r3                        @x[1] * h[0]
    278 
    279 	 SMLABT    r10, r6, r3, r10                   @x[1] * h[1]
    280 	 SMLABT    r11, r9, r3, r11                   @x[2] * h[1]
    281 
    282 	 LDR       r3, [r2], #4                       @h[2], h[3]
    283 	 LDRSH     r4, [r1], #2                       @x[3]
    284          LDRSH     r6, [r1], #2                       @x[4]
    285 
    286 	 SMLABB    r10, r9, r3, r10                   @x[2] * h[2]
    287          SMLABB    r11, r4, r3, r11                   @x[3] * h[2]
    288 
    289 	 SMLABT    r10, r4, r3, r10                   @x[3] * h[3]
    290 	 SMLABT    r11, r6, r3, r11                   @x[4] * h[3]
    291 
    292 	 LDR       r3, [r2], #4                       @h[4], h[5]
    293 	 LDRSH     r9, [r1], #2                       @x[5]
    294 	 LDRSH     r4, [r1], #2                       @x[6]
    295 
    296 	 SMLABB    r10, r6, r3, r10                   @x[4] * h[4]
    297 	 SMLABB    r11, r9, r3, r11                   @x[5] * h[4]
    298 
    299 	 SMLABT    r10, r9, r3, r10                   @x[5] * h[5]
    300 	 SMLABT    r11, r4, r3, r11                   @x[6] * h[5]
    301 
    302 	 LDR       r3, [r2], #4                       @h[6], h[7]
    303 	 LDRSH     r6, [r1], #2                       @x[7]
    304 	 LDRSH     r9, [r1], #2                       @x[8]
    305 
    306 	 SMLABB    r10, r4, r3, r10                   @x[6] * h[6]
    307 	 SMLABB    r11, r6, r3, r11                   @x[7] * h[6]
    308 
    309 	 SMLABT    r10, r6, r3, r10                   @x[7] * h[7]
    310 	 SMLABT    r11, r9, r3, r11                   @x[8] * h[7]
    311 
    312 	 LDR       r3, [r2], #4                       @h[8], h[9]
    313 	 LDRSH     r4, [r1], #2                       @x[9]
    314 	 LDRSH     r6, [r1], #2                       @x[10]
    315 
    316 	 SMLABB    r10, r9, r3, r10                   @x[8] * h[8]
    317 	 SMLABB    r11, r4, r3, r11                   @x[9] * h[8]
    318 
    319 	 SMLABT    r10, r4, r3, r10                   @x[9] * h[9]
    320 	 SMLABT    r11, r6, r3, r11                   @x[10] * h[9]
    321 
    322 	 LDR       r3, [r2], #4                       @h[10], h[11]
    323 	 LDRSH     r9, [r1], #2                       @x[11]
    324 	 LDRSH     r4, [r1], #2                       @x[12]
    325 
    326 	 SMLABB    r10, r6, r3, r10                   @x[10] * h[10]
    327 	 SMLABB    r11, r9, r3, r11                   @x[11] * h[10]
    328 
    329 	 SMLABT    r10, r9, r3, r10                   @x[11] * h[11]
    330 	 SMLABT    r11, r4, r3, r11                   @x[12] * h[11]
    331 
    332 	 LDR       r3, [r2], #4                       @h[12], h[13]
    333 	 LDRSH     r6, [r1], #2                       @x[13]
    334 	 LDRSH     r9, [r1], #2                       @x[14]
    335 
    336 	 SMLABB    r10, r4, r3, r10                   @x[12] * h[12]
    337 	 SMLABB    r11, r6, r3, r11                   @x[13] * h[12]
    338 
    339 	 SMLABT    r10, r6, r3, r10                   @x[13] * h[13]
    340 	 SMLABT    r11, r9, r3, r11                   @x[14] * h[13]
    341 
    342 	 LDR       r3, [r2], #4                       @h[14], h[15]
    343 	 LDRSH     r4, [r1], #2                       @x[15]
    344 	 LDRSH     r6, [r1], #2                       @x[16]
    345 
    346 	 SMLABB    r10, r9, r3, r10                   @x[14] * h[14]
    347 	 SMLABB    r11, r4, r3, r11                   @x[15] * h[14]
    348 
    349 	 SMLABT    r10, r4, r3, r10                   @x[15] * h[15]
    350 	 SMLABT    r11, r6, r3, r11                   @x[16] * h[15]
    351 
    352 	 LDR       r3, [r2], #4                       @h[16], h[17]
    353 	 LDRSH     r9, [r1], #2                       @x[17]
    354 	 LDRSH     r4, [r1], #2                       @x[18]
    355 
    356 	 SMLABB    r10, r6, r3, r10                   @x[16] * h[16]
    357 	 SMLABB    r11, r9, r3, r11                   @x[17] * h[16]
    358 
    359 	 SMLABT    r10, r9, r3, r10                   @x[17] * h[17]
    360 	 SMLABT    r11, r4, r3, r11                   @x[18] * h[17]
    361 
    362 	 LDR       r3, [r2], #4                       @h[18], h[19]
    363 	 LDRSH     r6, [r1], #2                       @x[19]
    364 	 LDRSH     r9, [r1], #2                       @x[20]
    365 
    366 	 SMLABB    r10, r4, r3, r10                   @x[18] * h[18]
    367 	 SMLABB    r11, r6, r3, r11                   @x[19] * h[18]
    368 
    369 	 SMLABT    r10, r6, r3, r10                   @x[19] * h[19]
    370 	 SMLABT    r11, r9, r3, r11                   @x[20] * h[19]
    371 
    372 	 LDR       r3, [r2], #4                       @h[20], h[21]
    373 	 LDRSH     r4, [r1], #2                       @x[21]
    374 	 LDRSH     r6, [r1], #2                       @x[22]
    375 
    376 	 SMLABB    r10, r9, r3, r10                   @x[20] * h[20]
    377 	 SMLABB    r11, r4, r3, r11                   @x[21] * h[20]
    378 
    379 	 SMLABT    r10, r4, r3, r10                   @x[21] * h[21]
    380 	 SMLABT    r11, r6, r3, r11                   @x[22] * h[21]
    381 
    382 	 LDR       r3, [r2], #4                       @h[22], h[23]
    383 	 LDRSH     r9, [r1], #2                       @x[23]
    384 	 LDRSH     r4, [r1], #2                       @x[24]
    385 
    386 	 SMLABB    r10, r6, r3, r10                   @x[22] * h[22]
    387 	 SMLABB    r11, r9, r3, r11                   @x[23] * h[22]
    388 
    389 	 SMLABT    r10, r9, r3, r10                   @x[23] * h[23]
    390 	 SMLABT    r11, r4, r3, r11                   @x[24] * h[23]
    391 
    392 	 LDR       r3, [r2], #4                       @h[24], h[25]
    393 	 LDRSH     r6, [r1], #2                       @x[25]
    394 	 LDRSH     r9, [r1], #2                       @x[26]
    395 
    396 	 SMLABB    r10, r4, r3, r10                   @x[24] * h[24]
    397 	 SMLABB    r11, r6, r3, r11                   @x[25] * h[24]
    398 
    399 	 SMLABT    r10, r6, r3, r10                   @x[25] * h[25]
    400 	 SMLABT    r11, r9, r3, r11                   @x[26] * h[25]
    401 
    402 	 LDR       r3, [r2], #4                       @h[26], h[27]
    403 	 LDRSH     r4, [r1], #2                       @x[27]
    404 	 LDRSH     r6, [r1], #2                       @x[28]
    405 
    406 	 SMLABB    r10, r9, r3, r10                   @x[26] * h[26]
    407 	 SMLABB    r11, r4, r3, r11                   @x[27] * h[26]
    408 
    409 	 SMLABT    r10, r4, r3, r10                   @x[27] * h[27]
    410 	 SMLABT    r11, r6, r3, r11                   @x[28] * h[27]
    411 
    412 	 LDR       r3, [r2], #4                       @h[28], h[29]
    413 	 LDRSH     r9, [r1], #2                       @x[29]
    414 	 LDRSH     r4, [r1], #2                       @x[30]
    415 
    416 	 SMLABB    r10, r6, r3, r10                   @x[28] * h[28]
    417 	 SMLABB    r11, r9, r3, r11                   @x[29] * h[28]
    418 
    419 	 SMLABT    r10, r9, r3, r10                   @x[29] * h[29]
    420 	 SMLABT    r11, r4, r3, r11                   @x[30] * h[29]
    421 
    422 	 LDR       r3, [r2], #4                       @h[30], h[31]
    423 	 LDRSH     r6, [r1], #2                       @x[31]
    424 	 LDRSH     r9, [r1], #2                       @x[32]
    425 
    426 	 SMLABB    r10, r4, r3, r10                   @x[30] * h[30]
    427 	 SMLABB    r11, r6, r3, r11                   @x[31] * h[30]
    428 
    429 	 SMLABT    r10, r6, r3, r10                   @x[31] * h[31]
    430 	 SMLABT    r11, r9, r3, r11                   @x[32] * h[31]
    431 
    432 	 @SSAT      r10, #32, r10, LSL #2
    433 	 @SSAT      r11, #32, r11, LSL #2
    434 	 MOV       r10, r10, LSL #1
    435 	 MOV       r11, r11, LSL #1
    436 
    437 	 QADD      r10, r10, r10
    438 	 QADD      r11, r11, r11
    439 
    440 	 QADD      r10, r10, r5
    441 	 QADD      r11, r11, r5
    442 
    443 	 MOV       r10, r10, ASR #16
    444 	 MOV       r11, r11, ASR #16
    445 
    446 	 STRH      r10, [r0], #2
    447 	 STRH      r11, [r0], #2
    448 
    449 
    450 pred_lt4_end:
    451          LDMFD     r13!, {r4 - r12, r15}
    452 
    453 Table:
    454          .word       inter4_2
    455 	 @ENDFUNC
    456 	 .END
    457 
    458 
    459 
    460 
    461