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_FilterDeblockingChroma_HorEdge_I 290c1bc742181ded4930842b46e9507372f0b1b963James Dong .func omxVCM4P10_FilterDeblockingChroma_HorEdge_I 300c1bc742181ded4930842b46e9507372f0b1b963James DongomxVCM4P10_FilterDeblockingChroma_HorEdge_I: 310c1bc742181ded4930842b46e9507372f0b1b963James Dong PUSH {r4-r10,lr} 320c1bc742181ded4930842b46e9507372f0b1b963James Dong VPUSH {d8-d15} 330c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d0[]},[r2]! 340c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 350c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1 360c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d2[]},[r3]! 370c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r4,[sp,#0x64] 380c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r5,[sp,#0x60] 390c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r9, =0x3030303 400c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r8, =0x4040404 410c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV.I8 d14,#0 420c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV.I8 d15,#0x1 430c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV.I16 d1,#0x4 440c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r7,#0x40000000 450c1bc742181ded4930842b46e9507372f0b1b963James DongL0x38: 460c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR r6,[r4],#8 470c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d6},[r0],r1 480c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d5},[r0],r1 490c1bc742181ded4930842b46e9507372f0b1b963James Dong CMP r6,#0 500c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d4},[r0],r1 510c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d8},[r0],r1 520c1bc742181ded4930842b46e9507372f0b1b963James Dong VABD.U8 d19,d6,d4 530c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d9},[r0],r1 540c1bc742181ded4930842b46e9507372f0b1b963James Dong VABD.U8 d13,d4,d8 550c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d10},[r0],r1 560c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ L0xe4 570c1bc742181ded4930842b46e9507372f0b1b963James Dong VABD.U8 d12,d5,d4 580c1bc742181ded4930842b46e9507372f0b1b963James Dong VABD.U8 d18,d9,d8 590c1bc742181ded4930842b46e9507372f0b1b963James Dong VCGT.U8 d16,d0,d13 600c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV.32 d26[0],r6 610c1bc742181ded4930842b46e9507372f0b1b963James Dong VMAX.U8 d12,d18,d12 620c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOVL.U8 q13,d26 630c1bc742181ded4930842b46e9507372f0b1b963James Dong VABD.U8 d17,d10,d8 640c1bc742181ded4930842b46e9507372f0b1b963James Dong VCGT.S16 d27,d26,#0 650c1bc742181ded4930842b46e9507372f0b1b963James Dong VCGT.U8 d12,d2,d12 660c1bc742181ded4930842b46e9507372f0b1b963James Dong VCGT.U8 d19,d2,d19 670c1bc742181ded4930842b46e9507372f0b1b963James Dong VAND d16,d16,d27 680c1bc742181ded4930842b46e9507372f0b1b963James Dong TST r6,r9 690c1bc742181ded4930842b46e9507372f0b1b963James Dong VCGT.U8 d17,d2,d17 700c1bc742181ded4930842b46e9507372f0b1b963James Dong VAND d16,d16,d12 710c1bc742181ded4930842b46e9507372f0b1b963James Dong VAND d12,d16,d17 720c1bc742181ded4930842b46e9507372f0b1b963James Dong VAND d17,d16,d19 730c1bc742181ded4930842b46e9507372f0b1b963James Dong BLNE armVCM4P10_DeblockingChromabSLT4_unsafe 740c1bc742181ded4930842b46e9507372f0b1b963James Dong TST r6,r8 750c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #2 760c1bc742181ded4930842b46e9507372f0b1b963James Dong VTST.16 d26,d26,d1 770c1bc742181ded4930842b46e9507372f0b1b963James Dong BLNE armVCM4P10_DeblockingChromabSGE4_unsafe 780c1bc742181ded4930842b46e9507372f0b1b963James Dong VBIT d29,d13,d26 790c1bc742181ded4930842b46e9507372f0b1b963James Dong VBIT d24,d31,d26 800c1bc742181ded4930842b46e9507372f0b1b963James Dong VBIF d29,d4,d16 810c1bc742181ded4930842b46e9507372f0b1b963James Dong VBIF d24,d8,d16 820c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.8 {d29},[r0],r1 830c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDS r7,r7,r7 840c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1.8 {d24},[r0],r1 850c1bc742181ded4930842b46e9507372f0b1b963James Dong BNE L0x38 860c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r0,#0 870c1bc742181ded4930842b46e9507372f0b1b963James Dong VPOP {d8-d15} 880c1bc742181ded4930842b46e9507372f0b1b963James Dong POP {r4-r10,pc} 890c1bc742181ded4930842b46e9507372f0b1b963James DongL0xe4: 900c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d0[]},[r2] 910c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB r0,r0,r1,LSL #1 920c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDS r7,r7,r7 930c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1.8 {d2[]},[r3] 940c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD r5,r5,#4 950c1bc742181ded4930842b46e9507372f0b1b963James Dong BNE L0x38 960c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r0,#0 970c1bc742181ded4930842b46e9507372f0b1b963James Dong VPOP {d8-d15} 980c1bc742181ded4930842b46e9507372f0b1b963James Dong POP {r4-r10,pc} 990c1bc742181ded4930842b46e9507372f0b1b963James Dong .endfunc 1000c1bc742181ded4930842b46e9507372f0b1b963James Dong 1010c1bc742181ded4930842b46e9507372f0b1b963James Dong .end 1020c1bc742181ded4930842b46e9507372f0b1b963James Dong 103