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_HalfDiagVerHor4x4_unsafe 290c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe: 300c1bc742181ded4930842b46e9507372f0b1b963James Dong PUSH {r4-r12,lr} 310c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d0,d1},[r0],r1 320c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r0,r1,LSL #2 330c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV.I8 d30,#0x5 340c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV.I8 d31,#0x14 350c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d10,d11},[r12],r1 360c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d2,d3},[r0],r1 370c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d12,d13},[r12],r1 380c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.U8 q9,d0,d10 390c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d4,d5},[r0],r1 400c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.U8 q0,d1,d11 410c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d6,d7},[r0],r1 420c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.U8 q10,d2,d12 430c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d8,d9},[r0],r1 440c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q9,d4,d31 450c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d14,d15},[r12],r1 460c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q0,d5,d31 470c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d16,d17},[r12],r1 480c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q9,d6,d31 490c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q10,d6,d31 500c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q0,d3,d30 510c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.U8 q11,d4,d14 520c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q9,d2,d30 530c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.U8 q1,d3,d13 540c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q0,d7,d31 550c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q10,d8,d31 560c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q9,d8,d30 570c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q1,d7,d31 580c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q0,d9,d30 590c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q11,d8,d31 600c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q10,d4,d30 610c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q1,d5,d30 620c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.U8 q2,d5,d15 630c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q11,d10,d31 640c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q10,d10,d30 650c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q1,d9,d31 660c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q2,d9,d31 670c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.U8 q12,d6,d16 680c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q11,d6,d30 690c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q1,d11,d30 700c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q2,d7,d30 710c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.U8 q3,d7,d17 720c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q12,d10,d31 730c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q11,d12,d30 740c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q2,d13,d30 750c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q3,d11,d31 760c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q12,d12,d31 770c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d26,d18,d19,#2 780c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q2,d11,d31 790c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.U8 q3,d13,d31 800c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q12,d8,d30 810c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d27,d18,d19,#4 820c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV.I16 d31,#0x14 830c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q3,d9,d30 840c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q12,d14,d30 850c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d29,d19,d0,#2 860c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d28,d18,d19,#6 870c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.U8 q3,d15,d30 880c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.S16 q0,d18,d29 890c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD.I16 d27,d27,d28 900c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV.I16 d30,#0x5 910c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD.I16 d26,d26,d19 920c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.S16 q0,d27,d31 930c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d27,d20,d21,#4 940c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d28,d20,d21,#6 950c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d29,d21,d2,#2 960c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.S16 q0,d26,d30 970c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d26,d20,d21,#2 980c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.S16 q1,d20,d29 990c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD.I16 d27,d27,d28 1000c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD.I16 d26,d26,d21 1010c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d28,d22,d23,#6 1020c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.S16 q1,d27,d31 1030c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d29,d23,d4,#2 1040c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d27,d22,d23,#4 1050c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d8,d22,d23,#2 1060c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.S16 q2,d22,d29 1070c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.S16 q1,d26,d30 1080c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD.I16 d27,d27,d28 1090c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD.I16 d26,d8,d23 1100c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d28,d24,d25,#6 1110c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.S16 q2,d27,d31 1120c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d27,d24,d25,#4 1130c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d29,d25,d6,#2 1140c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD.I16 d27,d27,d28 1150c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d8,d24,d25,#2 1160c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL.S16 q3,d24,d29 1170c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.S16 q2,d26,d30 1180c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLAL.S16 q3,d27,d31 1190c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD.I16 d8,d8,d25 1200c1bc742181ded4930842b46e9507372f0b1b963James Dong VMLSL.S16 q3,d8,d30 1210c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S32 d0,q0,#10 1220c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S32 d2,q1,#10 1230c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S32 d4,q2,#10 1240c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S32 d6,q3,#10 1250c1bc742181ded4930842b46e9507372f0b1b963James Dong VQMOVN.U16 d0,q0 1260c1bc742181ded4930842b46e9507372f0b1b963James Dong VQMOVN.U16 d2,q1 1270c1bc742181ded4930842b46e9507372f0b1b963James Dong VQMOVN.U16 d4,q2 1280c1bc742181ded4930842b46e9507372f0b1b963James Dong VQMOVN.U16 d6,q3 1290c1bc742181ded4930842b46e9507372f0b1b963James Dong POP {r4-r12,pc} 1300c1bc742181ded4930842b46e9507372f0b1b963James Dong 1310c1bc742181ded4930842b46e9507372f0b1b963James Dong .end 1320c1bc742181ded4930842b46e9507372f0b1b963James Dong 133