10c1bc742181ded4930842b46e9507372f0b1b963James Dong/*
278e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * Copyright (C) 2007-2008 ARM Limited
378e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
478e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * Licensed under the Apache License, Version 2.0 (the "License");
578e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * you may not use this file except in compliance with the License.
678e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * You may obtain a copy of the License at
778e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
878e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *      http://www.apache.org/licenses/LICENSE-2.0
978e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
1078e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * Unless required by applicable law or agreed to in writing, software
1178e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * distributed under the License is distributed on an "AS IS" BASIS,
1278e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1378e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * See the License for the specific language governing permissions and
1478e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * limitations under the License.
1578e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
1678e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar */
1778e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar/*
180c1bc742181ded4930842b46e9507372f0b1b963James Dong *
190c1bc742181ded4930842b46e9507372f0b1b963James Dong */
200c1bc742181ded4930842b46e9507372f0b1b963James Dong
210c1bc742181ded4930842b46e9507372f0b1b963James Dong    .eabi_attribute 24, 1
220c1bc742181ded4930842b46e9507372f0b1b963James Dong    .eabi_attribute 25, 1
230c1bc742181ded4930842b46e9507372f0b1b963James Dong
240c1bc742181ded4930842b46e9507372f0b1b963James Dong    .arm
250c1bc742181ded4930842b46e9507372f0b1b963James Dong    .fpu neon
260c1bc742181ded4930842b46e9507372f0b1b963James Dong    .text
270c1bc742181ded4930842b46e9507372f0b1b963James Dong
280c1bc742181ded4930842b46e9507372f0b1b963James Dong    .global armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
290c1bc742181ded4930842b46e9507372f0b1b963James Dong    .func   armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
300c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_InterpolateLuma_HalfHor4x4_unsafe:
310c1bc742181ded4930842b46e9507372f0b1b963James Dong    PUSH     {r4-r12,lr}
320c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d22,d23},[r0],r1
330c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d10,d22,d23,#5
340c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d12,d22,d23,#1
350c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d14,d22,d23,#2
360c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d15,d22,d23,#3
370c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d13,d22,d23,#4
380c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q11,d22,d10
390c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q4,d14,d15
400c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q6,d12,d13
410c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d24,d25},[r0],r1
420c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMLA.I16 d22,d8,d31
430c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMUL.I16 d8,d12,d30
440c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d10,d24,d25,#5
450c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d12,d24,d25,#1
460c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d16,d24,d25,#2
470c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d17,d24,d25,#3
480c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d13,d24,d25,#4
490c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q12,d24,d10
500c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUB.I16 d22,d22,d8
510c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q4,d16,d17
520c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q6,d12,d13
530c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d26,d27},[r0],r1
540c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMLA.I16 d24,d8,d31
550c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMUL.I16 d8,d12,d30
560c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d10,d26,d27,#5
570c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d12,d26,d27,#1
580c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d18,d26,d27,#2
590c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d19,d26,d27,#3
600c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d13,d26,d27,#4
610c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q13,d26,d10
620c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUB.I16 d24,d24,d8
630c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q4,d18,d19
640c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q6,d12,d13
650c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d28,d29},[r0],r1
660c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMLA.I16 d26,d8,d31
670c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMUL.I16 d8,d12,d30
680c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d10,d28,d29,#5
690c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d12,d28,d29,#1
700c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d20,d28,d29,#2
710c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d21,d28,d29,#3
720c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d13,d28,d29,#4
730c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q14,d28,d10
740c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUB.I16 d26,d26,d8
750c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q4,d20,d21
760c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q6,d12,d13
770c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMLA.I16 d28,d8,d31
780c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMLS.I16 d28,d12,d30
790c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRUN.S16 d22,q11,#5
800c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRUN.S16 d24,q12,#5
810c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRUN.S16 d26,q13,#5
820c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRUN.S16 d28,q14,#5
830c1bc742181ded4930842b46e9507372f0b1b963James Dong    POP      {r4-r12,pc}
840c1bc742181ded4930842b46e9507372f0b1b963James Dong    .endfunc
850c1bc742181ded4930842b46e9507372f0b1b963James Dong
860c1bc742181ded4930842b46e9507372f0b1b963James Dong    .end
870c1bc742181ded4930842b46e9507372f0b1b963James Dong
88