Mercurial > libavcodec.hg
comparison arm/h264idct_neon.S @ 10618:9cea4112ffaf libavcodec
ARM: small tweak of NEON H264 IDCT
author | mru |
---|---|
date | Wed, 02 Dec 2009 00:37:39 +0000 |
parents | be725249ea67 |
children | 361a5fcb4393 |
comparison
equal
deleted
inserted
replaced
10617:5506cbb012b4 | 10618:9cea4112ffaf |
---|---|
22 | 22 |
23 preserve8 | 23 preserve8 |
24 .text | 24 .text |
25 | 25 |
26 function ff_h264_idct_add_neon, export=1 | 26 function ff_h264_idct_add_neon, export=1 |
27 mov r3, #(1<<5) | |
28 vmov.i16 d16, #0 | |
29 vmov.16 d16[0], r3 | |
30 vld1.64 {d0-d3}, [r1,:128] | 27 vld1.64 {d0-d3}, [r1,:128] |
31 vadd.i16 d0, d0, d16 | |
32 | 28 |
33 vswp d1, d2 | 29 vswp d1, d2 |
34 vadd.i16 d4, d0, d1 | 30 vadd.i16 d4, d0, d1 |
35 vshr.s16 q8, q1, #1 | 31 vshr.s16 q8, q1, #1 |
36 vsub.i16 d5, d0, d1 | 32 vsub.i16 d5, d0, d1 |
56 vsub.i16 d7, d2, d17 | 52 vsub.i16 d7, d2, d17 |
57 sub r0, r0, r2, lsl #2 | 53 sub r0, r0, r2, lsl #2 |
58 vadd.i16 q0, q2, q3 | 54 vadd.i16 q0, q2, q3 |
59 vsub.i16 q1, q2, q3 | 55 vsub.i16 q1, q2, q3 |
60 | 56 |
61 vshr.s16 q0, q0, #6 | 57 vrshr.s16 q0, q0, #6 |
62 vshr.s16 q1, q1, #6 | 58 vrshr.s16 q1, q1, #6 |
63 | 59 |
64 vaddw.u8 q0, q0, d18 | 60 vaddw.u8 q0, q0, d18 |
65 vaddw.u8 q1, q1, d19 | 61 vaddw.u8 q1, q1, d19 |
66 | 62 |
67 vqmovun.s16 d0, q0 | 63 vqmovun.s16 d0, q0 |