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 omxVCM4P10_InterpolateLuma 290c1bc742181ded4930842b46e9507372f0b1b963James Dong .func omxVCM4P10_InterpolateLuma 300c1bc742181ded4930842b46e9507372f0b1b963James DongomxVCM4P10_InterpolateLuma: 310c1bc742181ded4930842b46e9507372f0b1b963James Dong PUSH {r4-r12,lr} 320c1bc742181ded4930842b46e9507372f0b1b963James Dong VPUSH {d8-d15} 330c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB sp,sp,#0x10 340c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r6,[sp,#0x78] 350c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r7,[sp,#0x7c] 360c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r5,[sp,#0x80] 370c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r4,[sp,#0x84] 380c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r6,r6,r7,LSL #2 390c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 400c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV.I16 d31,#0x14 410c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV.I16 d30,#0x5 420c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2c: 430c1bc742181ded4930842b46e9507372f0b1b963James Dong STM r11,{r0-r3} 440c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pc,pc,r6,LSL #2 450c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x3f0 460c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x78 470c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0xa8 480c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0xdc 490c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x100 500c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x134 510c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x168 520c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x1a8 530c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x1f0 540c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x234 550c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x258 560c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x2b0 570c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x2d8 580c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x330 590c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x364 600c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x3a8 610c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x3f0 620c1bc742181ded4930842b46e9507372f0b1b963James DongL0x78: 630c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r0,r1,LSL #1 640c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d9},[r0],r1 650c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d11},[r12],r1 660c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d10},[r0] 670c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d12},[r12] 680c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 690c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d9[0]},[r2],r3 700c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d11[0]},[r12],r3 710c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d10[0]},[r2] 720c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d12[0]},[r12] 730c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 740c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 750c1bc742181ded4930842b46e9507372f0b1b963James DongL0xa8: 760c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,#2 770c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 780c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d22,d22,d14 790c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d26,d26,d18 800c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d24,d24,d16 810c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d28,d28,d20 820c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 830c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d22[0]},[r2],r3 840c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d26[0]},[r12],r3 850c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d24[0]},[r2] 860c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d28[0]},[r12] 870c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 880c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 890c1bc742181ded4930842b46e9507372f0b1b963James DongL0xdc: 900c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,#2 910c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 920c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 930c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d22[0]},[r2],r3 940c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d26[0]},[r12],r3 950c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d24[0]},[r2] 960c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d28[0]},[r12] 970c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 980c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 990c1bc742181ded4930842b46e9507372f0b1b963James DongL0x100: 1000c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,#2 1010c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 1020c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d22,d22,d15 1030c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d26,d26,d19 1040c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d24,d24,d17 1050c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d28,d28,d21 1060c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 1070c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d22[0]},[r2],r3 1080c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d26[0]},[r12],r3 1090c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d24[0]},[r2] 1100c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d28[0]},[r12] 1110c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 1120c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 1130c1bc742181ded4930842b46e9507372f0b1b963James DongL0x134: 1140c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 1150c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 1160c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d0,d0,d9 1170c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d4,d4,d11 1180c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d2,d2,d10 1190c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d6,d6,d12 1200c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 1210c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d0[0]},[r2],r3 1220c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d4[0]},[r12],r3 1230c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d2[0]},[r2] 1240c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d6[0]},[r12] 1250c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 1260c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 1270c1bc742181ded4930842b46e9507372f0b1b963James DongL0x168: 1280c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r8,r0 1290c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 1300c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 1310c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r8,#2 1320c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 1330c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d22,d22,d0 1340c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d26,d26,d4 1350c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d24,d24,d2 1360c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d28,d28,d6 1370c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 1380c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d22[0]},[r2],r3 1390c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d26[0]},[r12],r3 1400c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d24[0]},[r2] 1410c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d28[0]},[r12] 1420c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 1430c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 1440c1bc742181ded4930842b46e9507372f0b1b963James DongL0x1a8: 1450c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 1460c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,#2 1470c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe 1480c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d14,q7,#5 1490c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d16,q8,#5 1500c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d18,q9,#5 1510c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d20,q10,#5 1520c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d0,d0,d14 1530c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d4,d4,d18 1540c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d2,d2,d16 1550c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d6,d6,d20 1560c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 1570c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d0[0]},[r2],r3 1580c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d4[0]},[r12],r3 1590c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d2[0]},[r2] 1600c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d6[0]},[r12] 1610c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 1620c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 1630c1bc742181ded4930842b46e9507372f0b1b963James DongL0x1f0: 1640c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r8,r0 1650c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r0,r0,#1 1660c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 1670c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 1680c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r8,#2 1690c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 1700c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d22,d22,d0 1710c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d26,d26,d4 1720c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d24,d24,d2 1730c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d28,d28,d6 1740c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 1750c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d22[0]},[r2],r3 1760c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d26[0]},[r12],r3 1770c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d24[0]},[r2] 1780c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d28[0]},[r12] 1790c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 1800c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 1810c1bc742181ded4930842b46e9507372f0b1b963James DongL0x234: 1820c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 1830c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 1840c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 1850c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d0[0]},[r2],r3 1860c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d4[0]},[r12],r3 1870c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d2[0]},[r2] 1880c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d6[0]},[r12] 1890c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 1900c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 1910c1bc742181ded4930842b46e9507372f0b1b963James DongL0x258: 1920c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 1930c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,#2 1940c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe 1950c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d18,d18,d19,#4 1960c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d20,d20,d21,#4 1970c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d22,d22,d23,#4 1980c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d24,d24,d25,#4 1990c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d14,q9,#5 2000c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d16,q10,#5 2010c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d18,q11,#5 2020c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d20,q12,#5 2030c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d0,d0,d14 2040c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d4,d4,d18 2050c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d2,d2,d16 2060c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d6,d6,d20 2070c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 2080c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d0[0]},[r2],r3 2090c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d4[0]},[r12],r3 2100c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d2[0]},[r2] 2110c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d6[0]},[r12] 2120c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 2130c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 2140c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2b0: 2150c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 2160c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,#2 2170c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe 2180c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 2190c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d0[0]},[r2],r3 2200c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d4[0]},[r12],r3 2210c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d2[0]},[r2] 2220c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d6[0]},[r12] 2230c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 2240c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 2250c1bc742181ded4930842b46e9507372f0b1b963James DongL0x2d8: 2260c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 2270c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,#2 2280c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfDiagVerHor4x4_unsafe 2290c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d18,d18,d19,#6 2300c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d20,d20,d21,#6 2310c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d22,d22,d23,#6 2320c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT.8 d24,d24,d25,#6 2330c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d14,q9,#5 2340c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d16,q10,#5 2350c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d18,q11,#5 2360c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d20,q12,#5 2370c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d0,d0,d14 2380c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d4,d4,d18 2390c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d2,d2,d16 2400c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d6,d6,d20 2410c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 2420c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d0[0]},[r2],r3 2430c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d4[0]},[r12],r3 2440c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d2[0]},[r2] 2450c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d6[0]},[r12] 2460c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 2470c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 2480c1bc742181ded4930842b46e9507372f0b1b963James DongL0x330: 2490c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 2500c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 2510c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d0,d0,d10 2520c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d4,d4,d12 2530c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d2,d2,d11 2540c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d6,d6,d13 2550c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 2560c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d0[0]},[r2],r3 2570c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d4[0]},[r12],r3 2580c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d2[0]},[r2] 2590c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d6[0]},[r12] 2600c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 2610c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 2620c1bc742181ded4930842b46e9507372f0b1b963James DongL0x364: 2630c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r8,r0 2640c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 2650c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 2660c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r0,r8,r1 2670c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,#2 2680c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 2690c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d22,d22,d0 2700c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d26,d26,d4 2710c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d24,d24,d2 2720c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d28,d28,d6 2730c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 2740c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d22[0]},[r2],r3 2750c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d26[0]},[r12],r3 2760c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d24[0]},[r2] 2770c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d28[0]},[r12] 2780c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 2790c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 2800c1bc742181ded4930842b46e9507372f0b1b963James DongL0x3a8: 2810c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 2820c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,#2 2830c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfDiagHorVer4x4_unsafe 2840c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d14,q8,#5 2850c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d16,q9,#5 2860c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d18,q10,#5 2870c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN.S16 d20,q11,#5 2880c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d0,d0,d14 2890c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d4,d4,d18 2900c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d2,d2,d16 2910c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d6,d6,d20 2920c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 2930c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d0[0]},[r2],r3 2940c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d4[0]},[r12],r3 2950c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d2[0]},[r2] 2960c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d6[0]},[r12] 2970c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 2980c1bc742181ded4930842b46e9507372f0b1b963James Dong B L0x434 2990c1bc742181ded4930842b46e9507372f0b1b963James DongL0x3f0: 3000c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r8,r0 3010c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r0,r0,#1 3020c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 3030c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfVer4x4_unsafe 3040c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r0,r8,r1 3050c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,#2 3060c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe 3070c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d22,d22,d0 3080c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d26,d26,d4 3090c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d24,d24,d2 3100c1bc742181ded4930842b46e9507372f0b1b963James Dong VRHADD.U8 d28,d28,d6 3110c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r12,r2,r3,LSL #1 3120c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d22[0]},[r2],r3 3130c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d26[0]},[r12],r3 3140c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d24[0]},[r2] 3150c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.32 {d28[0]},[r12] 3160c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 3170c1bc742181ded4930842b46e9507372f0b1b963James DongL0x434: 3180c1bc742181ded4930842b46e9507372f0b1b963James Dong LDM r11,{r0-r3} 3190c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r5,r5,#4 3200c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r0,r0,#4 3210c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r2,r2,#4 3220c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT L0x2c 3230c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS r4,r4,#4 3240c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r5,[sp,#0x80] 3250c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r11,sp,#0 3260c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r0,r0,r1,LSL #2 3270c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r2,r2,r3,LSL #2 3280c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r5 3290c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r2,r2,r5 3300c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT L0x2c 3310c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r0,#0 3320c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD sp,sp,#0x10 3330c1bc742181ded4930842b46e9507372f0b1b963James Dong VPOP {d8-d15} 3340c1bc742181ded4930842b46e9507372f0b1b963James Dong POP {r4-r12,pc} 3350c1bc742181ded4930842b46e9507372f0b1b963James Dong .endfunc 3360c1bc742181ded4930842b46e9507372f0b1b963James Dong 3370c1bc742181ded4930842b46e9507372f0b1b963James Dong .end 3380c1bc742181ded4930842b46e9507372f0b1b963James Dong 339