mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
ARM: simplify ff_put/avg_h264_chroma_mc4/8_neon definitions, no code change
Originally committed as revision 16677 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
c0a02a3e47
commit
77c4537313
@ -56,10 +56,11 @@
|
|||||||
.endm
|
.endm
|
||||||
|
|
||||||
/* chroma_mc8(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) */
|
/* chroma_mc8(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) */
|
||||||
.macro h264_chroma_mc8 avg=0
|
.macro h264_chroma_mc8 type
|
||||||
|
function ff_\type\()_h264_chroma_mc8_neon, export=1
|
||||||
push {r4-r7, lr}
|
push {r4-r7, lr}
|
||||||
ldrd r4, [sp, #20]
|
ldrd r4, [sp, #20]
|
||||||
.if \avg
|
.ifc \type,avg
|
||||||
mov lr, r0
|
mov lr, r0
|
||||||
.endif
|
.endif
|
||||||
pld [r1]
|
pld [r1]
|
||||||
@ -103,7 +104,7 @@
|
|||||||
vld1.64 {d6, d7}, [r5], r4
|
vld1.64 {d6, d7}, [r5], r4
|
||||||
pld [r1]
|
pld [r1]
|
||||||
vrshrn.u16 d17, q9, #6
|
vrshrn.u16 d17, q9, #6
|
||||||
.if \avg
|
.ifc \type,avg
|
||||||
vld1.64 {d20}, [lr,:64], r2
|
vld1.64 {d20}, [lr,:64], r2
|
||||||
vld1.64 {d21}, [lr,:64], r2
|
vld1.64 {d21}, [lr,:64], r2
|
||||||
vrhadd.u8 q8, q8, q10
|
vrhadd.u8 q8, q8, q10
|
||||||
@ -136,7 +137,7 @@
|
|||||||
vld1.64 {d6}, [r5], r4
|
vld1.64 {d6}, [r5], r4
|
||||||
vrshrn.u16 d16, q8, #6
|
vrshrn.u16 d16, q8, #6
|
||||||
vrshrn.u16 d17, q9, #6
|
vrshrn.u16 d17, q9, #6
|
||||||
.if \avg
|
.ifc \type,avg
|
||||||
vld1.64 {d20}, [lr,:64], r2
|
vld1.64 {d20}, [lr,:64], r2
|
||||||
vld1.64 {d21}, [lr,:64], r2
|
vld1.64 {d21}, [lr,:64], r2
|
||||||
vrhadd.u8 q8, q8, q10
|
vrhadd.u8 q8, q8, q10
|
||||||
@ -165,7 +166,7 @@
|
|||||||
vext.8 d5, d4, d5, #1
|
vext.8 d5, d4, d5, #1
|
||||||
vrshrn.u16 d16, q8, #6
|
vrshrn.u16 d16, q8, #6
|
||||||
vrshrn.u16 d17, q9, #6
|
vrshrn.u16 d17, q9, #6
|
||||||
.if \avg
|
.ifc \type,avg
|
||||||
vld1.64 {d20}, [lr,:64], r2
|
vld1.64 {d20}, [lr,:64], r2
|
||||||
vld1.64 {d21}, [lr,:64], r2
|
vld1.64 {d21}, [lr,:64], r2
|
||||||
vrhadd.u8 q8, q8, q10
|
vrhadd.u8 q8, q8, q10
|
||||||
@ -177,13 +178,15 @@
|
|||||||
bgt 5b
|
bgt 5b
|
||||||
|
|
||||||
pop {r4-r7, pc}
|
pop {r4-r7, pc}
|
||||||
|
.endfunc
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
/* chroma_mc4(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) */
|
/* chroma_mc4(uint8_t *dst, uint8_t *src, int stride, int h, int x, int y) */
|
||||||
.macro h264_chroma_mc4 avg=0
|
.macro h264_chroma_mc4 type
|
||||||
|
function ff_\type\()_h264_chroma_mc4_neon, export=1
|
||||||
push {r4-r7, lr}
|
push {r4-r7, lr}
|
||||||
ldrd r4, [sp, #20]
|
ldrd r4, [sp, #20]
|
||||||
.if \avg
|
.ifc \type,avg
|
||||||
mov lr, r0
|
mov lr, r0
|
||||||
.endif
|
.endif
|
||||||
pld [r1]
|
pld [r1]
|
||||||
@ -230,7 +233,7 @@
|
|||||||
vrshrn.u16 d16, q8, #6
|
vrshrn.u16 d16, q8, #6
|
||||||
subs r3, r3, #2
|
subs r3, r3, #2
|
||||||
pld [r1]
|
pld [r1]
|
||||||
.if \avg
|
.ifc \type,avg
|
||||||
vld1.32 {d20[0]}, [lr,:32], r2
|
vld1.32 {d20[0]}, [lr,:32], r2
|
||||||
vld1.32 {d20[1]}, [lr,:32], r2
|
vld1.32 {d20[1]}, [lr,:32], r2
|
||||||
vrhadd.u8 d16, d16, d20
|
vrhadd.u8 d16, d16, d20
|
||||||
@ -265,7 +268,7 @@
|
|||||||
vadd.i16 d16, d16, d17
|
vadd.i16 d16, d16, d17
|
||||||
vadd.i16 d17, d18, d19
|
vadd.i16 d17, d18, d19
|
||||||
vrshrn.u16 d16, q8, #6
|
vrshrn.u16 d16, q8, #6
|
||||||
.if \avg
|
.ifc \type,avg
|
||||||
vld1.32 {d20[0]}, [lr,:32], r2
|
vld1.32 {d20[0]}, [lr,:32], r2
|
||||||
vld1.32 {d20[1]}, [lr,:32], r2
|
vld1.32 {d20[1]}, [lr,:32], r2
|
||||||
vrhadd.u8 d16, d16, d20
|
vrhadd.u8 d16, d16, d20
|
||||||
@ -295,7 +298,7 @@
|
|||||||
vadd.i16 d17, d18, d19
|
vadd.i16 d17, d18, d19
|
||||||
pld [r1]
|
pld [r1]
|
||||||
vrshrn.u16 d16, q8, #6
|
vrshrn.u16 d16, q8, #6
|
||||||
.if \avg
|
.ifc \type,avg
|
||||||
vld1.32 {d20[0]}, [lr,:32], r2
|
vld1.32 {d20[0]}, [lr,:32], r2
|
||||||
vld1.32 {d20[1]}, [lr,:32], r2
|
vld1.32 {d20[1]}, [lr,:32], r2
|
||||||
vrhadd.u8 d16, d16, d20
|
vrhadd.u8 d16, d16, d20
|
||||||
@ -309,26 +312,16 @@
|
|||||||
bgt 5b
|
bgt 5b
|
||||||
|
|
||||||
pop {r4-r7, pc}
|
pop {r4-r7, pc}
|
||||||
|
.endfunc
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.align
|
.align
|
||||||
|
|
||||||
function ff_put_h264_chroma_mc8_neon, export=1
|
h264_chroma_mc8 put
|
||||||
h264_chroma_mc8
|
h264_chroma_mc8 avg
|
||||||
.endfunc
|
h264_chroma_mc4 put
|
||||||
|
h264_chroma_mc4 avg
|
||||||
function ff_avg_h264_chroma_mc8_neon, export=1
|
|
||||||
h264_chroma_mc8 avg=1
|
|
||||||
.endfunc
|
|
||||||
|
|
||||||
function ff_put_h264_chroma_mc4_neon, export=1
|
|
||||||
h264_chroma_mc4
|
|
||||||
.endfunc
|
|
||||||
|
|
||||||
function ff_avg_h264_chroma_mc4_neon, export=1
|
|
||||||
h264_chroma_mc4 avg=1
|
|
||||||
.endfunc
|
|
||||||
|
|
||||||
/* H.264 loop filter */
|
/* H.264 loop filter */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user