1@/****************************************************************************** 2@ * 3@ * Copyright (C) 2018 The Android Open Source Project 4@ * 5@ * Licensed under the Apache License, Version 2.0 (the "License"); 6@ * you may not use this file except in compliance with the License. 7@ * You may obtain a copy of the License at: 8@ * 9@ * http://www.apache.org/licenses/LICENSE-2.0 10@ * 11@ * Unless required by applicable law or agreed to in writing, software 12@ * distributed under the License is distributed on an "AS IS" BASIS, 13@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14@ * See the License for the specific language governing permissions and 15@ * limitations under the License. 16@ * 17@ ***************************************************************************** 18@ * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19@*/ 20 21 22.text 23.p2align 2 24 .global ixheaacd_postradixcompute4 25 .type ixheaacd_postradixcompute4, %function 26 27 28ixheaacd_postradixcompute4: 29 30 STMFD sp!, {r4-r12, r14} 31 32 33 34 35 36 37 38 39 40 41 42 43 ADD r4, r1, r3, lsl #1 44 MOV r3, #2 45 46 47POSTRADIX4_START: 48 49 LDMIA r1!, {r5-r12} 50 51 ADD r14, r5, r9 52 SUB r5, r5, r9 53 54 ADD r9, r6, r10 55 SUB r6, r6, r10 56 57 ADD r10, r7, r11 58 SUB r7, r7, r11 59 60 ADD r11, r8, r12 61 SUB r8, r8, r12 62 63 ADD r12, r14, r10 64 SUB r14, r14, r10 65 66 ADD r10, r9, r11 67 SUB r9, r9, r11 68 69 ADD r11, r5, r8 70 SUB r5, r5, r8 71 72 ADD r8, r6, r7 73 SUB r6, r6, r7 74 75 76 STR r12, [r0], #4 77 STR r10, [r0], #14<<1 78 79 STR r11, [r0], #4 80 STR r6 , [r0], #14<<1 81 82 STR r14, [r0], #4 83 STR r9 , [r0], #14<<1 84 85 STR r5, [r0], #4 86 STR r8, [r0], #0 87 88 LDMIA r4!, {r5-r12} 89 SUB r0, r0, #92 90 91 92 ADD r14, r5, r9 93 SUB r5, r5, r9 94 95 ADD r9, r6, r10 96 SUB r6, r6, r10 97 98 ADD r10, r7, r11 99 SUB r7, r7, r11 100 101 ADD r11, r8, r12 102 SUB r8, r8, r12 103 104 ADD r12, r14, r10 105 SUB r14, r14, r10 106 107 ADD r10, r9, r11 108 SUB r9, r9, r11 109 110 ADD r11, r5, r8 111 SUB r5, r5, r8 112 113 ADD r8, r6, r7 114 SUB r6, r6, r7 115 116 STR r12, [r0], #4 117 STR r10, [r0], #14<<1 118 119 STR r11, [r0], #4 120 STR r6, [r0], #14<<1 121 122 STR r14, [r0], #4 123 STR r9, [r0], #14<<1 124 125 126 STR r5, [r0], #4 127 STR r8, [r0], #0 128 129 ADD r1, r1, #1 << 5 130 ADD r4, r4, #1 << 5 131 SUB r0, r0, #100-8 132 133 SUBS r3, r3, #1 134 135 BGT POSTRADIX4_START 136 137 LDMFD sp!, {r4-r12, r15} 138 139 140