|
|
|
@ -1,6 +1,7 @@ |
|
|
|
|
/* |
|
|
|
|
* ARM NEON optimised Format Conversion Utils |
|
|
|
|
* Copyright (c) 2008 Mans Rullgard <mans@mansr.com>
|
|
|
|
|
* Copyright (c) 2015 Janne Grunau <janne-libav@jannau.net>b
|
|
|
|
|
* |
|
|
|
|
* This file is part of FFmpeg. |
|
|
|
|
* |
|
|
|
@ -49,3 +50,39 @@ NOVFP len .req r3 |
|
|
|
|
bx lr |
|
|
|
|
.unreq len
|
|
|
|
|
endfunc |
|
|
|
|
|
|
|
|
|
function ff_int32_to_float_fmul_array8_neon, export=1 |
|
|
|
|
ldr r0, [sp] |
|
|
|
|
lsr r0, r0, #3 |
|
|
|
|
subs r0, r0, #1 |
|
|
|
|
beq 1f |
|
|
|
|
2: |
|
|
|
|
vld1.32 {q0-q1}, [r2,:128]! |
|
|
|
|
vld1.32 {q2-q3}, [r2,:128]! |
|
|
|
|
vld1.32 {d20}, [r3]! |
|
|
|
|
subs r0, r0, #2 |
|
|
|
|
vcvt.f32.s32 q0, q0 |
|
|
|
|
vcvt.f32.s32 q1, q1 |
|
|
|
|
vdup.32 q8, d20[0] |
|
|
|
|
vcvt.f32.s32 q2, q2 |
|
|
|
|
vcvt.f32.s32 q3, q3 |
|
|
|
|
vmul.f32 q0, q0, q8 |
|
|
|
|
vdup.32 q9, d20[1] |
|
|
|
|
vmul.f32 q1, q1, q8 |
|
|
|
|
vmul.f32 q2, q2, q9 |
|
|
|
|
vmul.f32 q3, q3, q9 |
|
|
|
|
vst1.32 {q0-q1}, [r1,:128]! |
|
|
|
|
vst1.32 {q2-q3}, [r1,:128]! |
|
|
|
|
bgt 2b |
|
|
|
|
it lt |
|
|
|
|
bxlt lr |
|
|
|
|
1: |
|
|
|
|
vld1.32 {q0-q1}, [r2,:128] |
|
|
|
|
vld1.32 {d16[],d17[]}, [r3] |
|
|
|
|
vcvt.f32.s32 q0, q0 |
|
|
|
|
vcvt.f32.s32 q1, q1 |
|
|
|
|
vmul.f32 q0, q0, q8 |
|
|
|
|
vmul.f32 q1, q1, q8 |
|
|
|
|
vst1.32 {q0-q1}, [r1,:128] |
|
|
|
|
bx lr |
|
|
|
|
endfunc |
|
|
|
|