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_VerEdge_I 14bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .func omxVCM4P10_FilterDeblockingLuma_VerEdge_I 15bebc99d6fa433c04139294a5057f8439d772dbd9James DongomxVCM4P10_FilterDeblockingLuma_VerEdge_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,#4 22bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d2[]},[r3] 23bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR r4,[sp,#0x6c] 24bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR r5,[sp,#0x68] 25bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r6,#0 26bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOV.I8 d14,#0 27bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOV.I8 d15,#0x1 28bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r9,#0x11000000 29bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r11,r1,r1 30bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x38: 31bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDRH r12,[r4],#4 32bebc99d6fa433c04139294a5057f8439d772dbd9James Dong CMP r12,#0 33bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BEQ L0x160 34bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r10,r0,r1 35bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d7},[r0],r11 36bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d8},[r10],r11 37bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d5},[r0],r11 38bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d7,d8 39bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d10},[r10],r11 40bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d6},[r0],r11 41bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d5,d10 42bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d9},[r10],r11 43bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d4},[r0],r11 44bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d11},[r10],r11 45bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d6,d9 46bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d8,d10 47bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d4,d11 48bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #3 49bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d7,d5 50bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d9,d11 51bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d6,d4 52bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d8,d9 53bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d5,d4 54bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d10,d11 55bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d7,d6 56bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD.U8 d13,d4,d8 57bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD.U8 d12,d5,d4 58bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD.U8 d18,d9,d8 59bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD.U8 d19,d6,d4 60bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST r12,#0xff 61bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT.U8 d16,d0,d13 62bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMAX.U8 d12,d18,d12 63bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD.U8 d17,d10,d8 64bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOVEQ.32 d16[0],r6 65bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST r12,#0xff00 66bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT.U8 d19,d2,d19 67bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT.U8 d12,d2,d12 68bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOVEQ.32 d16[1],r6 69bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT.U8 d17,d2,d17 70bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VAND d16,d16,d12 71bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST r12,#4 72bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VAND d12,d16,d17 73bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VAND d17,d16,d19 74bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BNE L0x17c 75bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_DeblockingLumabSLT4_unsafe 76bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d7,d6 77bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d30,d29 78bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d24,d25 79bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d10,d11 80bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d7,d30 81bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r10,r0,r1 82bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d24,d10 83bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d25,d11 84bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d6,d29 85bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d7,d24 86bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d30,d10 87bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d6,d25 88bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d29,d11 89bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d7},[r0],r11 90bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d24},[r10],r11 91bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d30},[r0],r11 92bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d10},[r10],r11 93bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d6},[r0],r11 94bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d25},[r10],r11 95bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADDS r9,r9,r9 96bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d29},[r0],r11 97bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r5,r5,#2 98bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d11},[r10],r1 99bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #3 100bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d0[]},[r7] 101bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r0,#4 102bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d2[]},[r8] 103bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BCC L0x38 104bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x1f0 105bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x160: 106bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r0,#4 107bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADDS r9,r9,r9 108bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d0[]},[r7] 109bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r5,r5,#4 110bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d2[]},[r8] 111bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BCC L0x38 112bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B L0x1f0 113bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x17c: 114bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_DeblockingLumabSGE4_unsafe 115bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d7,d31 116bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d30,d29 117bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d24,d25 118bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.8 d28,d11 119bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d7,d30 120bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r10,r0,r1 121bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d24,d28 122bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d25,d11 123bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VZIP.16 d31,d29 124bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d7,d24 125bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d30,d28 126bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d31,d25 127bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VTRN.32 d29,d11 128bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d7},[r0],r11 129bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d24},[r10],r11 130bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d30},[r0],r11 131bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d28},[r10],r11 132bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d31},[r0],r11 133bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d25},[r10],r11 134bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADDS r9,r9,r9 135bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d29},[r0],r11 136bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r5,r5,#4 137bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1.8 {d11},[r10],r11 138bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,r1,LSL #3 139bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d0[]},[r7] 140bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r0,#4 141bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d2[]},[r8] 142bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BCC L0x38 143bebc99d6fa433c04139294a5057f8439d772dbd9James DongL0x1f0: 144bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r4,r4,#0xe 145bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r5,r5,#0xe 146bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB r0,r0,#0x10 147bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d0[]},[r2] 148bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD r0,r0,r1,LSL #3 149bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1.8 {d2[]},[r3] 150bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BNE L0x38 151bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r0,#0 152bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VPOP {d8-d15} 153bebc99d6fa433c04139294a5057f8439d772dbd9James Dong POP {r4-r12,pc} 154bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .endfunc 155bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 156bebc99d6fa433c04139294a5057f8439d772dbd9James Dong .end 157bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 158