1bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// 2bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// 3bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// File Name: omxVCM4P10_FilterDeblockingLuma_HorEdge_I_s.s 4bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// OpenMAX DL: v1.0.2 5bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// Revision: 12290 6bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// Date: Wednesday, April 9, 2008 7bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// 8bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// 10bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// 11bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// 12bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 13bebc99d6fa433c04139294a5057f8439d772dbd9James Dong INCLUDE omxtypes_s.h 14bebc99d6fa433c04139294a5057f8439d772dbd9James Dong INCLUDE armCOMM_s.h 15bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 16bebc99d6fa433c04139294a5057f8439d772dbd9James Dong M_VARIANTS CortexA8 17bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 18bebc99d6fa433c04139294a5057f8439d772dbd9James Dong IMPORT armVCM4P10_DeblockingLumabSLT4_unsafe 19bebc99d6fa433c04139294a5057f8439d772dbd9James Dong IMPORT armVCM4P10_DeblockingLumabSGE4_unsafe 20bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 21bebc99d6fa433c04139294a5057f8439d772dbd9James Dong IF CortexA8 22bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 23bebc99d6fa433c04139294a5057f8439d772dbd9James DongLOOP_COUNT EQU 0x55000000 24bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 25bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 26bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// Function arguments 27bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 28bebc99d6fa433c04139294a5057f8439d772dbd9James DongpSrcDst RN 0 29bebc99d6fa433c04139294a5057f8439d772dbd9James DongsrcdstStep RN 1 30bebc99d6fa433c04139294a5057f8439d772dbd9James DongpAlpha RN 2 31bebc99d6fa433c04139294a5057f8439d772dbd9James DongpBeta RN 3 32bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 33bebc99d6fa433c04139294a5057f8439d772dbd9James DongpThresholds RN 5 34bebc99d6fa433c04139294a5057f8439d772dbd9James DongpBS RN 4 35bebc99d6fa433c04139294a5057f8439d772dbd9James DongbS10 RN 12 36bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 37bebc99d6fa433c04139294a5057f8439d772dbd9James DongpAlpha_0 RN 2 38bebc99d6fa433c04139294a5057f8439d772dbd9James DongpBeta_0 RN 3 39bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 40bebc99d6fa433c04139294a5057f8439d772dbd9James DongpAlpha_1 RN 7 41bebc99d6fa433c04139294a5057f8439d772dbd9James DongpBeta_1 RN 8 42bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 43bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 44bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 45bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// Loop 46bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 47bebc99d6fa433c04139294a5057f8439d772dbd9James DongXY RN 9 48bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 49bebc99d6fa433c04139294a5057f8439d772dbd9James DongpTmp RN 6 50bebc99d6fa433c04139294a5057f8439d772dbd9James Dongstep RN 10 51bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 52bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// Pixels 53bebc99d6fa433c04139294a5057f8439d772dbd9James DongdP_0 DN D4.U8 54bebc99d6fa433c04139294a5057f8439d772dbd9James DongdP_1 DN D5.U8 55bebc99d6fa433c04139294a5057f8439d772dbd9James DongdP_2 DN D6.U8 56bebc99d6fa433c04139294a5057f8439d772dbd9James DongdP_3 DN D7.U8 57bebc99d6fa433c04139294a5057f8439d772dbd9James DongdQ_0 DN D8.U8 58bebc99d6fa433c04139294a5057f8439d772dbd9James DongdQ_1 DN D9.U8 59bebc99d6fa433c04139294a5057f8439d772dbd9James DongdQ_2 DN D10.U8 60bebc99d6fa433c04139294a5057f8439d772dbd9James DongdQ_3 DN D11.U8 61bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 62bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 63bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// Filtering Decision 64bebc99d6fa433c04139294a5057f8439d772dbd9James DongdAlpha DN D0.U8 65bebc99d6fa433c04139294a5057f8439d772dbd9James DongdBeta DN D2.U8 66bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 67bebc99d6fa433c04139294a5057f8439d772dbd9James DongdFilt DN D16.U8 68bebc99d6fa433c04139294a5057f8439d772dbd9James DongdAqflg DN D12.U8 69bebc99d6fa433c04139294a5057f8439d772dbd9James DongdApflg DN D17.U8 70bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 71bebc99d6fa433c04139294a5057f8439d772dbd9James DongdAp0q0 DN D13.U8 72bebc99d6fa433c04139294a5057f8439d772dbd9James DongdAp1p0 DN D12.U8 73bebc99d6fa433c04139294a5057f8439d772dbd9James DongdAq1q0 DN D18.U8 74bebc99d6fa433c04139294a5057f8439d772dbd9James DongdAp2p0 DN D19.U8 75bebc99d6fa433c04139294a5057f8439d772dbd9James DongdAq2q0 DN D17.U8 76bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 77bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// bSLT4 78bebc99d6fa433c04139294a5057f8439d772dbd9James DongdTC0 DN D18.U8 79bebc99d6fa433c04139294a5057f8439d772dbd9James DongdTC1 DN D19.U8 80bebc99d6fa433c04139294a5057f8439d772dbd9James DongdTC01 DN D18.U8 81bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 82bebc99d6fa433c04139294a5057f8439d772dbd9James DongdTCs DN D31.S8 83bebc99d6fa433c04139294a5057f8439d772dbd9James DongdTC DN D31.U8 84bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 85bebc99d6fa433c04139294a5057f8439d772dbd9James DongdMask_0 DN D14.U8 86bebc99d6fa433c04139294a5057f8439d772dbd9James DongdMask_1 DN D15.U8 87bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 88bebc99d6fa433c04139294a5057f8439d772dbd9James DongMask_0 RN 11 89bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 90bebc99d6fa433c04139294a5057f8439d772dbd9James DongdTemp DN D19.U8 91bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 92bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// Computing P0,Q0 93bebc99d6fa433c04139294a5057f8439d772dbd9James DongqDq0p0 QN Q10.S16 94bebc99d6fa433c04139294a5057f8439d772dbd9James DongqDp1q1 QN Q11.S16 95bebc99d6fa433c04139294a5057f8439d772dbd9James DongqDelta QN Q10.S16 ; reuse qDq0p0 96bebc99d6fa433c04139294a5057f8439d772dbd9James DongdDelta DN D20.S8 97bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 98bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 99bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// Computing P1,Q1 100bebc99d6fa433c04139294a5057f8439d772dbd9James DongdRp0q0 DN D24.U8 101bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 102bebc99d6fa433c04139294a5057f8439d772dbd9James DongdMaxP DN D23.U8 103bebc99d6fa433c04139294a5057f8439d772dbd9James DongdMinP DN D22.U8 104bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 105bebc99d6fa433c04139294a5057f8439d772dbd9James DongdMaxQ DN D19.U8 106bebc99d6fa433c04139294a5057f8439d772dbd9James DongdMinQ DN D21.U8 107bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 108bebc99d6fa433c04139294a5057f8439d772dbd9James DongdDeltaP DN D26.U8 109bebc99d6fa433c04139294a5057f8439d772dbd9James DongdDeltaQ DN D27.U8 110bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 111bebc99d6fa433c04139294a5057f8439d772dbd9James DongqP_0n QN Q14.S16 112bebc99d6fa433c04139294a5057f8439d772dbd9James DongqQ_0n QN Q12.S16 113bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 114bebc99d6fa433c04139294a5057f8439d772dbd9James DongdQ_0n DN D24.U8 115bebc99d6fa433c04139294a5057f8439d772dbd9James DongdQ_1n DN D25.U8 116bebc99d6fa433c04139294a5057f8439d772dbd9James DongdP_0n DN D29.U8 117bebc99d6fa433c04139294a5057f8439d772dbd9James DongdP_1n DN D30.U8 118bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 119bebc99d6fa433c04139294a5057f8439d772dbd9James Dong;// bSGE4 120bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 121bebc99d6fa433c04139294a5057f8439d772dbd9James DongqSp0q0 QN Q10.U16 122bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 123bebc99d6fa433c04139294a5057f8439d772dbd9James DongqSp2q1 QN Q11.U16 124bebc99d6fa433c04139294a5057f8439d772dbd9James DongqSp0q0p1 QN Q12.U16 125bebc99d6fa433c04139294a5057f8439d772dbd9James DongqSp3p2 QN Q13.U16 126bebc99d6fa433c04139294a5057f8439d772dbd9James DongdHSp0q1 DN D28.U8 127bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 128bebc99d6fa433c04139294a5057f8439d772dbd9James DongqSq2p1 QN Q11.U16 129bebc99d6fa433c04139294a5057f8439d772dbd9James DongqSp0q0q1 QN Q12.U16 130bebc99d6fa433c04139294a5057f8439d772dbd9James DongqSq3q2 QN Q13.U16 ;!! 131bebc99d6fa433c04139294a5057f8439d772dbd9James DongdHSq0p1 DN D28.U8 ;!! 132bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 133bebc99d6fa433c04139294a5057f8439d772dbd9James DongqTemp1 QN Q11.U16 ;!!;qSp2q1 134bebc99d6fa433c04139294a5057f8439d772dbd9James DongqTemp2 QN Q12.U16 ;!!;qSp0q0p1 135bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 136bebc99d6fa433c04139294a5057f8439d772dbd9James DongdP_0t DN D28.U8 ;!!;dHSp0q1 137bebc99d6fa433c04139294a5057f8439d772dbd9James DongdQ_0t DN D22.U8 ;!!;Temp1 138bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 139bebc99d6fa433c04139294a5057f8439d772dbd9James DongdP_0n DN D29.U8 140bebc99d6fa433c04139294a5057f8439d772dbd9James DongdP_1n DN D30.U8 141bebc99d6fa433c04139294a5057f8439d772dbd9James DongdP_2n DN D31.U8 142bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 143bebc99d6fa433c04139294a5057f8439d772dbd9James DongdQ_0n DN D24.U8 ;!!;Temp2 144bebc99d6fa433c04139294a5057f8439d772dbd9James DongdQ_1n DN D25.U8 ;!!;Temp2 145bebc99d6fa433c04139294a5057f8439d772dbd9James DongdQ_2n DN D28.U8 ;!!;dQ_0t 146bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 147bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 148bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;// Function header 149bebc99d6fa433c04139294a5057f8439d772dbd9James Dong M_START omxVCM4P10_FilterDeblockingLuma_HorEdge_I, r11, d15 150bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 151bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;//Arguments on the stack 152bebc99d6fa433c04139294a5057f8439d772dbd9James Dong M_ARG ppThresholds, 4 153bebc99d6fa433c04139294a5057f8439d772dbd9James Dong M_ARG ppBS, 4 154bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 155bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;// d0-dAlpha_0 156bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;// d2-dBeta_0 157bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 158bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD pAlpha_1, pAlpha_0, #1 159bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD pBeta_1, pBeta_0, #1 160bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 161bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 {dAlpha[]}, [pAlpha_0] 162bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB pSrcDst, pSrcDst, srcdstStep, LSL #2 163bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 {dBeta[]}, [pBeta_0] 164bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 165bebc99d6fa433c04139294a5057f8439d772dbd9James Dong M_LDR pBS, ppBS 166bebc99d6fa433c04139294a5057f8439d772dbd9James Dong M_LDR pThresholds, ppThresholds 167bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 168bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV Mask_0,#0 169bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 170bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;dMask_0-14 171bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;dMask_1-15 172bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 173bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOV dMask_0, #0 174bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOV dMask_1, #1 175bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 176bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD step, srcdstStep, srcdstStep 177bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 178bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDR XY,=LOOP_COUNT 179bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 180bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;// p0-p3 - d4-d7 181bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;// q0-q3 - d8-d11 182bebc99d6fa433c04139294a5057f8439d772dbd9James DongLoopY 183bebc99d6fa433c04139294a5057f8439d772dbd9James DongLoopX 184bebc99d6fa433c04139294a5057f8439d772dbd9James Dong LDRH bS10, [pBS], #2 185bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD pTmp, pSrcDst, srcdstStep 186bebc99d6fa433c04139294a5057f8439d772dbd9James Dong CMP bS10, #0 187bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BEQ NoFilterBS0 188bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 189bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 dP_3, [pSrcDst], step 190bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 dP_2, [pTmp], step 191bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 dP_1, [pSrcDst], step 192bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 dP_0, [pTmp], step 193bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 dQ_0, [pSrcDst], step 194bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD dAp1p0, dP_0, dP_1 195bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 dQ_1, [pTmp] 196bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD dAp0q0, dQ_0, dP_0 197bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 dQ_2, [pSrcDst], srcdstStep 198bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 199bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD dAq1q0, dQ_1, dQ_0 200bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD dAp2p0, dP_2, dP_0 201bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT dFilt, dAlpha, dAp0q0 202bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 203bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST bS10, #0xff 204bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMAX dAp1p0, dAq1q0, dAp1p0 205bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VABD dAq2q0, dQ_2, dQ_0 206bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 207bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOVEQ.U32 dFilt[0], Mask_0 208bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST bS10, #0xff00 209bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 210bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT dAp2p0, dBeta, dAp2p0 211bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT dAp1p0, dBeta, dAp1p0 212bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 213bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VMOVEQ.U32 dFilt[1], Mask_0 214bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 215bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VCGT dAq2q0, dBeta, dAq2q0 216bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 dQ_3, [pSrcDst] 217bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VAND dFilt, dFilt, dAp1p0 218bebc99d6fa433c04139294a5057f8439d772dbd9James Dong TST bS10, #4 219bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 220bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VAND dAqflg, dFilt, dAq2q0 221bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VAND dApflg, dFilt, dAp2p0 222bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 223bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BNE bSGE4 224bebc99d6fa433c04139294a5057f8439d772dbd9James DongbSLT4 225bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;// bS < 4 Filtering 226bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB pSrcDst, pSrcDst, srcdstStep, LSL #2 227bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB pSrcDst, pSrcDst, srcdstStep 228bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 229bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_DeblockingLumabSLT4_unsafe 230bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 231bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;// Result Storage 232bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1 dP_1n, [pSrcDst], srcdstStep 233bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1 dP_0n, [pSrcDst], srcdstStep 234bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB pTmp, pSrcDst, srcdstStep, LSL #2 235bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1 dQ_0n, [pSrcDst], srcdstStep 236bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADDS XY, XY, XY 237bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1 dQ_1n, [pSrcDst] 238bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD pSrcDst, pTmp, #8 239bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 240bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BCC LoopX 241bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B ExitLoopY 242bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 243bebc99d6fa433c04139294a5057f8439d772dbd9James DongNoFilterBS0 244bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD pSrcDst, pSrcDst, #8 245bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADDS XY, XY, XY 246bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD pThresholds, pThresholds, #2 247bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BCC LoopX 248bebc99d6fa433c04139294a5057f8439d772dbd9James Dong B ExitLoopY 249bebc99d6fa433c04139294a5057f8439d772dbd9James DongbSGE4 250bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;// bS >= 4 Filtering 251bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB pSrcDst, pSrcDst, srcdstStep, LSL #2 252bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB pSrcDst, pSrcDst, srcdstStep, LSL #1 253bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BL armVCM4P10_DeblockingLumabSGE4_unsafe 254bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 255bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ;// Result Storage 256bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1 dP_2n, [pSrcDst], srcdstStep 257bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1 dP_1n, [pSrcDst], srcdstStep 258bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1 dP_0n, [pSrcDst], srcdstStep 259bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB pTmp, pSrcDst, srcdstStep, LSL #2 260bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1 dQ_0n, [pSrcDst], srcdstStep 261bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADDS XY,XY,XY 262bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1 dQ_1n, [pSrcDst], srcdstStep 263bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD pThresholds, pThresholds, #2 264bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VST1 dQ_2n, [pSrcDst] 265bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 266bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD pSrcDst, pTmp, #8 267bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BCC LoopX 268bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 269bebc99d6fa433c04139294a5057f8439d772dbd9James DongExitLoopY 270bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 271bebc99d6fa433c04139294a5057f8439d772dbd9James Dong SUB pSrcDst, pSrcDst, #16 272bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 {dAlpha[]}, [pAlpha_1] 273bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ADD pSrcDst, pSrcDst, srcdstStep, LSL #2 274bebc99d6fa433c04139294a5057f8439d772dbd9James Dong VLD1 {dBeta[]}, [pBeta_1] 275bebc99d6fa433c04139294a5057f8439d772dbd9James Dong BNE LoopY 276bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 277bebc99d6fa433c04139294a5057f8439d772dbd9James Dong MOV r0, #OMX_Sts_NoErr 278bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 279bebc99d6fa433c04139294a5057f8439d772dbd9James Dong M_END 280bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 281bebc99d6fa433c04139294a5057f8439d772dbd9James Dong ENDIF 282bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 283bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 284bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 285bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 286bebc99d6fa433c04139294a5057f8439d772dbd9James Dong END 287bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 288bebc99d6fa433c04139294a5057f8439d772dbd9James Dong 289