Mercurial > libavcodec.hg
comparison arm/dsputil_neon_s.S @ 10253:64dd9515b93b libavcodec
ARM: NEON optimised int32_to_float_fmul_scalar
author | mru |
---|---|
date | Wed, 23 Sep 2009 13:52:56 +0000 |
parents | b783894a1c62 |
children | bcf5c5551b3c |
comparison
equal
deleted
inserted
replaced
10252:10df50768c02 | 10253:64dd9515b93b |
---|---|
1021 vadd.f32 d0, d4, d5 | 1021 vadd.f32 d0, d4, d5 |
1022 vpadd.f32 d0, d0, d0 | 1022 vpadd.f32 d0, d0, d0 |
1023 NOVFP vmov.32 r0, d0[0] | 1023 NOVFP vmov.32 r0, d0[0] |
1024 bx lr | 1024 bx lr |
1025 .endfunc | 1025 .endfunc |
1026 | |
1027 function ff_int32_to_float_fmul_scalar_neon, export=1 | |
1028 VFP vdup.32 q0, d0[0] | |
1029 VFP len .req r2 | |
1030 NOVFP vdup.32 q0, r2 | |
1031 NOVFP len .req r3 | |
1032 | |
1033 vld1.32 {q1},[r1,:128]! | |
1034 vcvt.f32.s32 q3, q1 | |
1035 vld1.32 {q2},[r1,:128]! | |
1036 vcvt.f32.s32 q8, q2 | |
1037 1: subs len, len, #8 | |
1038 pld [r1, #16] | |
1039 vmul.f32 q9, q3, q0 | |
1040 vmul.f32 q10, q8, q0 | |
1041 beq 2f | |
1042 vld1.32 {q1},[r1,:128]! | |
1043 vcvt.f32.s32 q3, q1 | |
1044 vld1.32 {q2},[r1,:128]! | |
1045 vcvt.f32.s32 q8, q2 | |
1046 vst1.32 {q9}, [r0,:128]! | |
1047 vst1.32 {q10},[r0,:128]! | |
1048 b 1b | |
1049 2: vst1.32 {q9}, [r0,:128]! | |
1050 vst1.32 {q10},[r0,:128]! | |
1051 bx lr | |
1052 .unreq len | |
1053 .endfunc |