armVCM4P10_DeblockingLuma_unsafe_s.S revision 0c1bc742181ded4930842b46e9507372f0b1b963
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_DeblockingLumabSLT4_unsafe
140c1bc742181ded4930842b46e9507372f0b1b963James Dong    .func   armVCM4P10_DeblockingLumabSLT4_unsafe
150c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_DeblockingLumabSLT4_unsafe:
160c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBL.U8 q11,d5,d9
170c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d18[]},[r5]!
180c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBL.U8 q10,d8,d4
190c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d19[]},[r5]!
200c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHR.S16 q11,q11,#2
210c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d18,d18,d19,#4
220c1bc742181ded4930842b46e9507372f0b1b963James Dong    VAND     d19,d17,d15
230c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d18,d14,d16
240c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.S16 q10,q11,q10
250c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d24,d4,d8
260c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADD.I8  d31,d18,d19
270c1bc742181ded4930842b46e9507372f0b1b963James Dong    VAND     d19,d12,d15
280c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQADD.U8 d23,d5,d18
290c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVN.S16 d20,q10
300c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADD.I8  d31,d31,d19
310c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQSUB.U8 d22,d5,d18
320c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQADD.U8 d19,d9,d18
330c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d26,d24,d6
340c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMIN.S8  d20,d20,d31
350c1bc742181ded4930842b46e9507372f0b1b963James Dong    VNEG.S8  d31,d31
360c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQSUB.U8 d21,d9,d18
370c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d27,d24,d10
380c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMAX.U8  d30,d26,d22
390c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMAX.S8  d20,d20,d31
400c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOVL.U8 q14,d4
410c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOVL.U8 q12,d8
420c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.S8 q14,q14,d20
430c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBW.S8 q12,q12,d20
440c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVUN.S16 d29,q14
450c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVUN.S16 d24,q12
460c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMAX.U8  d25,d27,d21
470c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMIN.U8  d30,d30,d23
480c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMIN.U8  d25,d25,d19
490c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d29,d4,d16
500c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d30,d5,d17
510c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d24,d8,d16
520c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d25,d9,d12
530c1bc742181ded4930842b46e9507372f0b1b963James Dong    BX       lr
540c1bc742181ded4930842b46e9507372f0b1b963James Dong    .endfunc
550c1bc742181ded4930842b46e9507372f0b1b963James Dong
560c1bc742181ded4930842b46e9507372f0b1b963James Dong    .global armVCM4P10_DeblockingLumabSGE4_unsafe
570c1bc742181ded4930842b46e9507372f0b1b963James Dong    .func   armVCM4P10_DeblockingLumabSGE4_unsafe
580c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_DeblockingLumabSGE4_unsafe:
590c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHR.U8  d19,d0,#2
600c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADD.I8  d19,d19,d15
610c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q10,d8,d4
620c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADD.I8  d19,d19,d15
630c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q11,d6,d9
640c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.U8 q12,q10,d5
650c1bc742181ded4930842b46e9507372f0b1b963James Dong    VCGT.U8  d19,d19,d13
660c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHR.U16 q11,q11,#1
670c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U16 q11,q12,q11
680c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.U8 q12,q12,d6
690c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q13,d7,d6
700c1bc742181ded4930842b46e9507372f0b1b963James Dong    VAND     d17,d17,d19
710c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d28,d4,d9
720c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSRA.U16 q13,q12,#1
730c1bc742181ded4930842b46e9507372f0b1b963James Dong    VAND     d12,d12,d19
740c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d29,q11,#1
750c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d28,d28,d5
760c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d30,q12,#2
770c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q11,d10,d5
780c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.U8 q12,q10,d9
790c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d29,d28,d17
800c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d31,q13,#2
810c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q13,d11,d10
820c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHR.U16 q11,q11,#1
830c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U16 q11,q12,q11
840c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.U8 q12,q12,d10
850c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d28,d8,d5
860c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d29,d4,d16
870c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d30,d5,d17
880c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSRA.U16 q13,q12,#1
890c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d25,q12,#2
900c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d24,q11,#1
910c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d22,d28,d9
920c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d25,d9,d12
930c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d31,d6,d17
940c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d24,d22,d12
950c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d28,q13,#2
960c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d24,d8,d16
970c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d28,d10,d12
980c1bc742181ded4930842b46e9507372f0b1b963James Dong    BX       lr
990c1bc742181ded4930842b46e9507372f0b1b963James Dong    .endfunc
1000c1bc742181ded4930842b46e9507372f0b1b963James Dong
1010c1bc742181ded4930842b46e9507372f0b1b963James Dong    .end
1020c1bc742181ded4930842b46e9507372f0b1b963James Dong
103