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_DeblockingChromabSLT4_unsafe
290c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_DeblockingChromabSLT4_unsafe:
300c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.32  {d18[0]},[r5]!
310c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBL.U8 q11,d5,d9
320c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOV     d28,d18
330c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBL.U8 q10,d8,d4
340c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHR.S16 q11,q11,#2
350c1bc742181ded4930842b46e9507372f0b1b963James Dong    VZIP.8   d18,d28
360c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d18,d14,d16
370c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.S16 q10,q11,q10
380c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADD.I8  d31,d18,d15
390c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVN.S16 d20,q10
400c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0[]},[r2]
410c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMIN.S8  d20,d20,d31
420c1bc742181ded4930842b46e9507372f0b1b963James Dong    VNEG.S8  d31,d31
430c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d2[]},[r3]
440c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMAX.S8  d20,d20,d31
450c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOVL.U8 q14,d4
460c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOVL.U8 q12,d8
470c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.S8 q14,q14,d20
480c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBW.S8 q12,q12,d20
490c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVUN.S16 d29,q14
500c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVUN.S16 d24,q12
510c1bc742181ded4930842b46e9507372f0b1b963James Dong    BX       lr
520c1bc742181ded4930842b46e9507372f0b1b963James Dong
530c1bc742181ded4930842b46e9507372f0b1b963James Dong    .global armVCM4P10_DeblockingChromabSGE4_unsafe
540c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_DeblockingChromabSGE4_unsafe:
550c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d13,d4,d9
560c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d31,d8,d5
570c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d0[]},[r2]
580c1bc742181ded4930842b46e9507372f0b1b963James Dong    ADD      r5,r5,#4
590c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d2[]},[r3]
600c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d13,d13,d5
610c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d31,d31,d9
620c1bc742181ded4930842b46e9507372f0b1b963James Dong    BX       lr
630c1bc742181ded4930842b46e9507372f0b1b963James Dong
640c1bc742181ded4930842b46e9507372f0b1b963James Dong    .end
650c1bc742181ded4930842b46e9507372f0b1b963James Dong
66