OLD | NEW |
1 /* | 1 /* |
2 * ARM NEON optimised MDCT | 2 * ARM NEON optimised MDCT |
3 * Copyright (c) 2009 Mans Rullgard <mans@mansr.com> | 3 * Copyright (c) 2009 Mans Rullgard <mans@mansr.com> |
4 * | 4 * |
5 * This file is part of FFmpeg. | 5 * This file is part of FFmpeg. |
6 * | 6 * |
7 * FFmpeg is free software; you can redistribute it and/or | 7 * FFmpeg is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Lesser General Public | 8 * modify it under the terms of the GNU Lesser General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2.1 of the License, or (at your option) any later version. | 10 * version 2.1 of the License, or (at your option) any later version. |
11 * | 11 * |
12 * FFmpeg is distributed in the hope that it will be useful, | 12 * FFmpeg is distributed in the hope that it will be useful, |
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15 * Lesser General Public License for more details. | 15 * Lesser General Public License for more details. |
16 * | 16 * |
17 * You should have received a copy of the GNU Lesser General Public | 17 * You should have received a copy of the GNU Lesser General Public |
18 * License along with FFmpeg; if not, write to the Free Software | 18 * License along with FFmpeg; if not, write to the Free Software |
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
20 */ | 20 */ |
21 | 21 |
22 #include "asm.S" | 22 #include "asm.S" |
23 | 23 |
| 24 preserve8 |
| 25 |
24 .text | 26 .text |
25 | 27 |
26 #define ff_fft_calc_neon X(ff_fft_calc_neon) | 28 #define ff_fft_calc_neon X(ff_fft_calc_neon) |
27 | 29 |
28 function ff_imdct_half_neon, export=1 | 30 function ff_imdct_half_neon, export=1 |
29 push {r4-r8,lr} | 31 push {r4-r8,lr} |
30 | 32 |
31 mov r12, #1 | 33 mov r12, #1 |
32 ldr lr, [r0, #28] @ mdct_bits | 34 ldr lr, [r0, #28] @ mdct_bits |
33 ldr r4, [r0, #32] @ tcos | 35 ldr r4, [r0, #32] @ tcos |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 vst2.32 {d4,d6}, [r0,:128], r7 | 294 vst2.32 {d4,d6}, [r0,:128], r7 |
293 vst2.32 {d5,d7}, [r8,:128]! | 295 vst2.32 {d5,d7}, [r8,:128]! |
294 b 1b | 296 b 1b |
295 1: | 297 1: |
296 vrev64.32 q3, q3 | 298 vrev64.32 q3, q3 |
297 vst2.32 {d4,d6}, [r0,:128] | 299 vst2.32 {d4,d6}, [r0,:128] |
298 vst2.32 {d5,d7}, [r8,:128] | 300 vst2.32 {d5,d7}, [r8,:128] |
299 | 301 |
300 pop {r4-r10,pc} | 302 pop {r4-r10,pc} |
301 .endfunc | 303 .endfunc |
OLD | NEW |