1219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@/* 2219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** Copyright 2003-2010, VisualOn, Inc. 3219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** 4219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** Licensed under the Apache License, Version 2.0 (the "License"); 5219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** you may not use this file except in compliance with the License. 6219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** You may obtain a copy of the License at 7219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** 8219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** http://www.apache.org/licenses/LICENSE-2.0 9219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** 10219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** Unless required by applicable law or agreed to in writing, software 11219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** distributed under the License is distributed on an "AS IS" BASIS, 12219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** See the License for the specific language governing permissions and 14219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ** limitations under the License. 15219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ */ 16219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ 17219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@void Pred_lt4( 18219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ Word16 exc[], /* in/out: excitation buffer */ 19219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ Word16 T0, /* input : integer pitch lag */ 20219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ Word16 frac, /* input : fraction of lag */ 21219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ Word16 L_subfr /* input : subframe size */ 22219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ) 23219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 24219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@****************************** 25219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ ARM Register 26219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@****************************** 27219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ r0 --- exc[] 28219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ r1 --- T0 29219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ r2 --- frac 30219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ r3 --- L_subfr 31219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 32219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard .section .text 33219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard .global pred_lt4_asm 34219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard .extern inter4_2 35219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 36219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgardpred_lt4_asm: 37219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 38219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard STMFD r13!, {r4 - r12, r14} 39219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard RSB r4, r1, #0 @-T0 40219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard RSB r2, r2, #0 @frac = -frac 41219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard ADD r5, r0, r4, LSL #1 @x = exc - T0 42219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard CMP r2, #0 43219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard ADDLT r2, r2, #4 @frac += UP_SAMP 44219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SUBLT r5, r5, #2 @x-- 45219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SUB r5, r5, #30 @x -= 15 46219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard RSB r4, r2, #3 @k = 3 - frac 47219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r6, Table 48219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r8, r4, LSL #6 49219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard @MOV r7, #0 @j = 0 50219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard ADD r8, r6, r8 @ptr2 = &(inter4_2[k][0]) 51219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 52219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r1, r5 53219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r5, #0x8000 54219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r14, #21 55219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard@ used register 56219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard @r0 --- exc[] r1 --- x r7 --- j r8 --- ptr2 r5 --- 0x8000 57219e2627f1e062c10645664b0d2470d4dfaf5083Mans RullgardTHREE_LOOP: 58219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 59219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard @MOV r1, r5 @ptr1 = x 60219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r2, r8 @ptr = ptr2 61219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[0], h[1] 62219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[0] 63219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[1] 64219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[2] 65219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 66219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMULBB r10, r4, r3 @x[0] * h[0] 67219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMULBB r11, r6, r3 @x[1] * h[0] 68219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMULBB r12, r9, r3 @x[2] * h[0] 69219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 70219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[3] 71219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[1] * h[1] 72219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[2] * h[1] 73219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r4, r3, r12 @x[3] * h[1] 74219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 75219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[2], h[3] 76219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[4] 77219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r9, r3, r10 @x[2] * h[2] 78219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r4, r3, r11 @x[3] * h[2] 79219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r6, r3, r12 @x[4] * h[2] 80219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 81219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[5] 82219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r4, r3, r10 @x[3] * h[3] 83219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r6, r3, r11 @x[4] * h[3] 84219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r9, r3, r12 @x[5] * h[3] 85219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 86219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[4], h[5] 87219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[6] 88219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r6, r3, r10 @x[4] * h[4] 89219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r9, r3, r11 @x[5] * h[4] 90219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r4, r3, r12 @x[6] * h[4] 91219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 92219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[7] 93219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r9, r3, r10 @x[5] * h[5] 94219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r4, r3, r11 @x[6] * h[5] 95219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r6, r3, r12 @x[7] * h[5] 96219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 97219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[6], h[7] 98219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[8] 99219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r4, r3, r10 @x[6] * h[6] 100219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r6, r3, r11 @x[7] * h[6] 101219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r9, r3, r12 @x[8] * h[6] 102219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 103219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[9] 104219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[7] * h[7] 105219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[8] * h[7] 106219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r4, r3, r12 @x[9] * h[7] 107219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 108219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[8], h[9] 109219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[10] 110219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r9, r3, r10 @x[8] * h[8] 111219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r4, r3, r11 @x[9] * h[8] 112219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r6, r3, r12 @x[10] * h[8] 113219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 114219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[11] 115219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r4, r3, r10 @x[9] * h[9] 116219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r6, r3, r11 @x[10] * h[9] 117219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r9, r3, r12 @x[11] * h[9] 118219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 119219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[10], h[11] 120219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[12] 121219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r6, r3, r10 @x[10] * h[10] 122219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r9, r3, r11 @x[11] * h[10] 123219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r4, r3, r12 @x[12] * h[10] 124219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 125219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[13] 126219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r9, r3, r10 @x[11] * h[11] 127219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r4, r3, r11 @x[12] * h[11] 128219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r6, r3, r12 @x[13] * h[11] 129219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 130219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[12], h[13] 131219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[14] 132219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r4, r3, r10 @x[12] * h[12] 133219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r6, r3, r11 @x[13] * h[12] 134219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r9, r3, r12 @x[14] * h[12] 135219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 136219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[15] 137219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[13] * h[13] 138219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[14] * h[13] 139219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r4, r3, r12 @x[15] * h[13] 140219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 141219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[14], h[15] 142219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[16] 143219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r9, r3, r10 @x[14] * h[14] 144219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r4, r3, r11 @x[15] * h[14] 145219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r6, r3, r12 @x[16] * h[14] 146219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 147219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[17] 148219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r4, r3, r10 @x[15] * h[15] 149219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r6, r3, r11 @x[16] * h[15] 150219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r9, r3, r12 @x[17] * h[15] 151219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 152219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[16], h[17] 153219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[18] 154219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r6, r3, r10 @x[16] * h[16] 155219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r9, r3, r11 @x[17] * h[16] 156219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r4, r3, r12 @x[18] * h[16] 157219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 158219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[19] 159219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r9, r3, r10 @x[17] * h[17] 160219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r4, r3, r11 @x[18] * h[17] 161219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r6, r3, r12 @x[19] * h[17] 162219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 163219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[18], h[19] 164219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[20] 165219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r4, r3, r10 @x[18] * h[18] 166219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r6, r3, r11 @x[19] * h[18] 167219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r9, r3, r12 @x[20] * h[18] 168219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 169219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[21] 170219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[19] * h[19] 171219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[20] * h[19] 172219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r4, r3, r12 @x[21] * h[19] 173219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 174219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[20], h[21] 175219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[22] 176219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r9, r3, r10 @x[20] * h[20] 177219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r4, r3, r11 @x[21] * h[20] 178219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r6, r3, r12 @x[22] * h[20] 179219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 180219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[23] 181219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r4, r3, r10 @x[21] * h[21] 182219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r6, r3, r11 @x[22] * h[21] 183219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r9, r3, r12 @x[23] * h[21] 184219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 185219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[22], h[23] 186219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[24] 187219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r6, r3, r10 @x[22] * h[22] 188219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r9, r3, r11 @x[23] * h[22] 189219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r4, r3, r12 @x[24] * h[22] 190219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 191219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[25] 192219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r9, r3, r10 @x[23] * h[23] 193219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r4, r3, r11 @x[24] * h[23] 194219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r6, r3, r12 @x[25] * h[23] 195219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 196219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[24], h[25] 197219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[26] 198219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r4, r3, r10 @x[24] * h[24] 199219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r6, r3, r11 @x[25] * h[24] 200219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r9, r3, r12 @x[26] * h[24] 201219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 202219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[27] 203219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[25] * h[25] 204219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[26] * h[25] 205219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r4, r3, r12 @x[27] * h[25] 206219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 207219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[26], h[27] 208219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[28] 209219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r9, r3, r10 @x[26] * h[26] 210219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r4, r3, r11 @x[27] * h[26] 211219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r6, r3, r12 @x[28] * h[26] 212219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 213219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[29] 214219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r4, r3, r10 @x[27] * h[27] 215219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r6, r3, r11 @x[28] * h[27] 216219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r9, r3, r12 @x[29] * h[27] 217219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 218219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[28], h[29] 219219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[30] 220219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r6, r3, r10 @x[28] * h[28] 221219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r9, r3, r11 @x[29] * h[28] 222219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r4, r3, r12 @x[30] * h[28] 223219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 224219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[31] 225219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r9, r3, r10 @x[29] * h[29] 226219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r4, r3, r11 @x[30] * h[29] 227219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r6, r3, r12 @x[31] * h[29] 228219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 229219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[30], h[31] 230219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[32] 231219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r4, r3, r10 @x[30] * h[30] 232219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r6, r3, r11 @x[31] * h[30] 233219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r12, r9, r3, r12 @x[32] * h[30] 234219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 235219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #-60 @x[33] 236219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[31] * h[31] 237219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[32] * h[31] 238219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r12, r4, r3, r12 @x[33] * h[31] 239219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 240219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard @SSAT r10, #32, r10, LSL #2 241219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard @SSAT r11, #32, r11, LSL #2 242219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard @SSAT r12, #32, r12, LSL #2 243219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 244219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r10, r10, LSL #1 245219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r11, r11, LSL #1 246219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r12, r12, LSL #1 247219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 248219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard QADD r10, r10, r10 249219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard QADD r11, r11, r11 250219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard QADD r12, r12, r12 251219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 252219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard QADD r10, r10, r5 253219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard QADD r11, r11, r5 254219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard QADD r12, r12, r5 255219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 256219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SUBS r14, r14, #1 257219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 258219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r10, r10, ASR #16 259219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r11, r11, ASR #16 260219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r12, r12, ASR #16 261219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 262219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard STRH r10, [r0], #2 263219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard STRH r11, [r0], #2 264219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard STRH r12, [r0], #2 265219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard BNE THREE_LOOP 266219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 267219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r2, r8 @ptr = ptr2 268219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 269219e2627f1e062c10645664b0d2470d4dfaf5083Mans RullgardLast2LOOP: 270219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 271219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[0], h[1] 272219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[0] 273219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[1] 274219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[2] 275219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 276219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMULBB r10, r4, r3 @x[0] * h[0] 277219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMULBB r11, r6, r3 @x[1] * h[0] 278219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 279219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[1] * h[1] 280219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[2] * h[1] 281219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 282219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[2], h[3] 283219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[3] 284219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[4] 285219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 286219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r9, r3, r10 @x[2] * h[2] 287219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r4, r3, r11 @x[3] * h[2] 288219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 289219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r4, r3, r10 @x[3] * h[3] 290219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r6, r3, r11 @x[4] * h[3] 291219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 292219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[4], h[5] 293219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[5] 294219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[6] 295219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 296219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r6, r3, r10 @x[4] * h[4] 297219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r9, r3, r11 @x[5] * h[4] 298219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 299219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r9, r3, r10 @x[5] * h[5] 300219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r4, r3, r11 @x[6] * h[5] 301219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 302219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[6], h[7] 303219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[7] 304219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[8] 305219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 306219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r4, r3, r10 @x[6] * h[6] 307219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r6, r3, r11 @x[7] * h[6] 308219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 309219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[7] * h[7] 310219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[8] * h[7] 311219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 312219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[8], h[9] 313219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[9] 314219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[10] 315219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 316219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r9, r3, r10 @x[8] * h[8] 317219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r4, r3, r11 @x[9] * h[8] 318219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 319219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r4, r3, r10 @x[9] * h[9] 320219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r6, r3, r11 @x[10] * h[9] 321219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 322219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[10], h[11] 323219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[11] 324219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[12] 325219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 326219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r6, r3, r10 @x[10] * h[10] 327219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r9, r3, r11 @x[11] * h[10] 328219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 329219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r9, r3, r10 @x[11] * h[11] 330219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r4, r3, r11 @x[12] * h[11] 331219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 332219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[12], h[13] 333219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[13] 334219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[14] 335219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 336219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r4, r3, r10 @x[12] * h[12] 337219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r6, r3, r11 @x[13] * h[12] 338219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 339219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[13] * h[13] 340219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[14] * h[13] 341219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 342219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[14], h[15] 343219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[15] 344219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[16] 345219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 346219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r9, r3, r10 @x[14] * h[14] 347219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r4, r3, r11 @x[15] * h[14] 348219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 349219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r4, r3, r10 @x[15] * h[15] 350219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r6, r3, r11 @x[16] * h[15] 351219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 352219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[16], h[17] 353219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[17] 354219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[18] 355219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 356219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r6, r3, r10 @x[16] * h[16] 357219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r9, r3, r11 @x[17] * h[16] 358219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 359219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r9, r3, r10 @x[17] * h[17] 360219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r4, r3, r11 @x[18] * h[17] 361219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 362219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[18], h[19] 363219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[19] 364219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[20] 365219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 366219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r4, r3, r10 @x[18] * h[18] 367219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r6, r3, r11 @x[19] * h[18] 368219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 369219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[19] * h[19] 370219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[20] * h[19] 371219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 372219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[20], h[21] 373219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[21] 374219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[22] 375219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 376219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r9, r3, r10 @x[20] * h[20] 377219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r4, r3, r11 @x[21] * h[20] 378219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 379219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r4, r3, r10 @x[21] * h[21] 380219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r6, r3, r11 @x[22] * h[21] 381219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 382219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[22], h[23] 383219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[23] 384219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[24] 385219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 386219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r6, r3, r10 @x[22] * h[22] 387219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r9, r3, r11 @x[23] * h[22] 388219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 389219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r9, r3, r10 @x[23] * h[23] 390219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r4, r3, r11 @x[24] * h[23] 391219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 392219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[24], h[25] 393219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[25] 394219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[26] 395219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 396219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r4, r3, r10 @x[24] * h[24] 397219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r6, r3, r11 @x[25] * h[24] 398219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 399219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[25] * h[25] 400219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[26] * h[25] 401219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 402219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[26], h[27] 403219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[27] 404219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[28] 405219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 406219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r9, r3, r10 @x[26] * h[26] 407219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r4, r3, r11 @x[27] * h[26] 408219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 409219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r4, r3, r10 @x[27] * h[27] 410219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r6, r3, r11 @x[28] * h[27] 411219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 412219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[28], h[29] 413219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[29] 414219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r4, [r1], #2 @x[30] 415219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 416219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r6, r3, r10 @x[28] * h[28] 417219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r9, r3, r11 @x[29] * h[28] 418219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 419219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r9, r3, r10 @x[29] * h[29] 420219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r4, r3, r11 @x[30] * h[29] 421219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 422219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDR r3, [r2], #4 @h[30], h[31] 423219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r6, [r1], #2 @x[31] 424219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDRSH r9, [r1], #2 @x[32] 425219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 426219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r10, r4, r3, r10 @x[30] * h[30] 427219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABB r11, r6, r3, r11 @x[31] * h[30] 428219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 429219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r10, r6, r3, r10 @x[31] * h[31] 430219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard SMLABT r11, r9, r3, r11 @x[32] * h[31] 431219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 432219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard @SSAT r10, #32, r10, LSL #2 433219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard @SSAT r11, #32, r11, LSL #2 434219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r10, r10, LSL #1 435219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r11, r11, LSL #1 436219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 437219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard QADD r10, r10, r10 438219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard QADD r11, r11, r11 439219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 440219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard QADD r10, r10, r5 441219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard QADD r11, r11, r5 442219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 443219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r10, r10, ASR #16 444219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard MOV r11, r11, ASR #16 445219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 446219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard STRH r10, [r0], #2 447219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard STRH r11, [r0], #2 448219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 449219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 450219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgardpred_lt4_end: 451219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard LDMFD r13!, {r4 - r12, r15} 452219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 453219e2627f1e062c10645664b0d2470d4dfaf5083Mans RullgardTable: 454219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard .word inter4_2 455219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard @ENDFUNC 456219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard .END 457219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 458219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 459219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 460219e2627f1e062c10645664b0d2470d4dfaf5083Mans Rullgard 461