1bebc99d6fa433c04139294a5057f8439d772dbd9James Dong/* 2bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 3bebc99d6fa433c04139294a5057f8439d772dbd9James Dong * 4bebc99d6fa433c04139294a5057f8439d772dbd9James Dong */ 5bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 6bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .eabi_attribute 24, 1 7bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .eabi_attribute 25, 1 8bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 9bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .arm 10bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .fpu neon 11bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .text 12bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 13bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .global omxVCM4P10_FilterDeblockingLuma_HorEdge_I 14bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .func omxVCM4P10_FilterDeblockingLuma_HorEdge_I 15bebc99d6fa433c04139294a5057f8439d772dbd9James DongomxVCM4P10_FilterDeblockingLuma_HorEdge_I: 16bebc99d6fa433c04139294a5057f8439d772dbd9James Dong PUSH {r4-r12,lr} 17bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VPUSH {d8-d15} 18bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r7,r2,#1 19bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r8,r3,#1 20bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d0[]},[r2] 21bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #2 22bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d2[]},[r3] 23bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR r4,[sp,#0x6c] 24bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR r5,[sp,#0x68] 25bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r11,#0 26bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOV.I8 d14,#0 27bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOV.I8 d15,#0x1 28bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r10,r1,r1 29bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r9,#0x55000000 30bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x38: 31bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDRH r12,[r4],#2 32bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r6,r0,r1 33bebc99d6fa433c04139294a5057f8439d772dbd9James Dong CMP r12,#0 34bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BEQ L0xe4 35bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d7},[r0],r10 36bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d6},[r6],r10 37bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d5},[r0],r10 38bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d4},[r6],r10 39bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d8},[r0],r10 40bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD.U8 d12,d4,d5 41bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d9},[r6] 42bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD.U8 d13,d8,d4 43bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d10},[r0],r1 44bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD.U8 d18,d9,d8 45bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD.U8 d19,d6,d4 46bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT.U8 d16,d0,d13 47bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST r12,#0xff 48bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMAX.U8 d12,d18,d12 49bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD.U8 d17,d10,d8 50bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOVEQ.32 d16[0],r11 51bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST r12,#0xff00 52bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT.U8 d19,d2,d19 53bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT.U8 d12,d2,d12 54bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOVEQ.32 d16[1],r11 55bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT.U8 d17,d2,d17 56bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d11},[r0] 57bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VAND d16,d16,d12 58bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST r12,#4 59bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VAND d12,d16,d17 60bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VAND d17,d16,d19 61bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BNE L0xf8 62bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #2 63bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1 64bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_DeblockingLumabSLT4_unsafe 65bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d30},[r0],r1 66bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d29},[r0],r1 67bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r6,r0,r1,LSL #2 68bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d24},[r0],r1 69bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADDS r9,r9,r9 70bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d25},[r0] 71bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r6,#8 72bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BCC L0x38 73bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x130 74bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0xe4: 75bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r0,#8 76bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADDS r9,r9,r9 77bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r5,r5,#2 78bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BCC L0x38 79bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x130 80bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0xf8: 81bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #2 82bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #1 83bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_DeblockingLumabSGE4_unsafe 84bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d31},[r0],r1 85bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d30},[r0],r1 86bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d29},[r0],r1 87bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r6,r0,r1,LSL #2 88bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d24},[r0],r1 89bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADDS r9,r9,r9 90bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d25},[r0],r1 91bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r5,r5,#2 92bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d28},[r0] 93bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r6,#8 94bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BCC L0x38 95bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x130: 96bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#0x10 97bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d0[]},[r7] 98bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r0,r1,LSL #2 99bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d2[]},[r8] 100bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BNE L0x38 101bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r0,#0 102bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VPOP {d8-d15} 103bebc99d6fa433c04139294a5057f8439d772dbd9James Dong POP {r4-r12,pc} 104bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .endfunc 105bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 106bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .end 107bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 108