10c1bc742181ded4930842b46e9507372f0b1b963James Dong/*
20c1bc742181ded4930842b46e9507372f0b1b963James Dong * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
30c1bc742181ded4930842b46e9507372f0b1b963James Dong *
40c1bc742181ded4930842b46e9507372f0b1b963James Dong */
50c1bc742181ded4930842b46e9507372f0b1b963James Dong
60c1bc742181ded4930842b46e9507372f0b1b963James Dong    .eabi_attribute 24, 1
70c1bc742181ded4930842b46e9507372f0b1b963James Dong    .eabi_attribute 25, 1
80c1bc742181ded4930842b46e9507372f0b1b963James Dong
90c1bc742181ded4930842b46e9507372f0b1b963James Dong    .arm
100c1bc742181ded4930842b46e9507372f0b1b963James Dong    .fpu neon
110c1bc742181ded4930842b46e9507372f0b1b963James Dong    .text
120c1bc742181ded4930842b46e9507372f0b1b963James Dong
130c1bc742181ded4930842b46e9507372f0b1b963James Dong    .global armVCM4P10_DeblockingChromabSLT4_unsafe
140c1bc742181ded4930842b46e9507372f0b1b963James Dong    .func   armVCM4P10_DeblockingChromabSLT4_unsafe
150c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_DeblockingChromabSLT4_unsafe:
160c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.32  {d18[0]},[r5]!
170c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBL.U8 q11,d5,d9
180c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOV     d28,d18
190c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBL.U8 q10,d8,d4
200c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHR.S16 q11,q11,#2
210c1bc742181ded4930842b46e9507372f0b1b963James Dong    VZIP.8   d18,d28
220c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d18,d14,d16
230c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.S16 q10,q11,q10
240c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADD.I8  d31,d18,d15
250c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVN.S16 d20,q10
260c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0[]},[r2]
270c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMIN.S8  d20,d20,d31
280c1bc742181ded4930842b46e9507372f0b1b963James Dong    VNEG.S8  d31,d31
290c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d2[]},[r3]
300c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMAX.S8  d20,d20,d31
310c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOVL.U8 q14,d4
320c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOVL.U8 q12,d8
330c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.S8 q14,q14,d20
340c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBW.S8 q12,q12,d20
350c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVUN.S16 d29,q14
360c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVUN.S16 d24,q12
370c1bc742181ded4930842b46e9507372f0b1b963James Dong    BX       lr
380c1bc742181ded4930842b46e9507372f0b1b963James Dong    .endfunc
390c1bc742181ded4930842b46e9507372f0b1b963James Dong
400c1bc742181ded4930842b46e9507372f0b1b963James Dong    .global armVCM4P10_DeblockingChromabSGE4_unsafe
410c1bc742181ded4930842b46e9507372f0b1b963James Dong    .func   armVCM4P10_DeblockingChromabSGE4_unsafe
420c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_DeblockingChromabSGE4_unsafe:
430c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d13,d4,d9
440c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d31,d8,d5
450c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0[]},[r2]
460c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r5,r5,#4
470c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d2[]},[r3]
480c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d13,d13,d5
490c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d31,d31,d9
500c1bc742181ded4930842b46e9507372f0b1b963James Dong    BX       lr
510c1bc742181ded4930842b46e9507372f0b1b963James Dong    .endfunc
520c1bc742181ded4930842b46e9507372f0b1b963James Dong
530c1bc742181ded4930842b46e9507372f0b1b963James Dong    .end
540c1bc742181ded4930842b46e9507372f0b1b963James Dong
55