10c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 20c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 30c1bc742181ded4930842b46e9507372f0b1b963James Dong;// File Name: omxVCM4P10_FilterDeblockingLuma_HorEdge_I_s.s 40c1bc742181ded4930842b46e9507372f0b1b963James Dong;// OpenMAX DL: v1.0.2 50c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Revision: 12290 60c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Date: Wednesday, April 9, 2008 70c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 80c1bc742181ded4930842b46e9507372f0b1b963James Dong;// (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 90c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 100c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 110c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 120c1bc742181ded4930842b46e9507372f0b1b963James Dong 130c1bc742181ded4930842b46e9507372f0b1b963James Dong INCLUDE omxtypes_s.h 140c1bc742181ded4930842b46e9507372f0b1b963James Dong INCLUDE armCOMM_s.h 150c1bc742181ded4930842b46e9507372f0b1b963James Dong 160c1bc742181ded4930842b46e9507372f0b1b963James Dong M_VARIANTS CortexA8 170c1bc742181ded4930842b46e9507372f0b1b963James Dong 180c1bc742181ded4930842b46e9507372f0b1b963James Dong IMPORT armVCM4P10_DeblockingLumabSLT4_unsafe 190c1bc742181ded4930842b46e9507372f0b1b963James Dong IMPORT armVCM4P10_DeblockingLumabSGE4_unsafe 200c1bc742181ded4930842b46e9507372f0b1b963James Dong 210c1bc742181ded4930842b46e9507372f0b1b963James Dong IF CortexA8 220c1bc742181ded4930842b46e9507372f0b1b963James Dong 230c1bc742181ded4930842b46e9507372f0b1b963James DongLOOP_COUNT EQU 0x55000000 240c1bc742181ded4930842b46e9507372f0b1b963James Dong 250c1bc742181ded4930842b46e9507372f0b1b963James Dong 260c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Function arguments 270c1bc742181ded4930842b46e9507372f0b1b963James Dong 280c1bc742181ded4930842b46e9507372f0b1b963James DongpSrcDst RN 0 290c1bc742181ded4930842b46e9507372f0b1b963James DongsrcdstStep RN 1 300c1bc742181ded4930842b46e9507372f0b1b963James DongpAlpha RN 2 310c1bc742181ded4930842b46e9507372f0b1b963James DongpBeta RN 3 320c1bc742181ded4930842b46e9507372f0b1b963James Dong 330c1bc742181ded4930842b46e9507372f0b1b963James DongpThresholds RN 5 340c1bc742181ded4930842b46e9507372f0b1b963James DongpBS RN 4 350c1bc742181ded4930842b46e9507372f0b1b963James DongbS10 RN 12 360c1bc742181ded4930842b46e9507372f0b1b963James Dong 370c1bc742181ded4930842b46e9507372f0b1b963James DongpAlpha_0 RN 2 380c1bc742181ded4930842b46e9507372f0b1b963James DongpBeta_0 RN 3 390c1bc742181ded4930842b46e9507372f0b1b963James Dong 400c1bc742181ded4930842b46e9507372f0b1b963James DongpAlpha_1 RN 7 410c1bc742181ded4930842b46e9507372f0b1b963James DongpBeta_1 RN 8 420c1bc742181ded4930842b46e9507372f0b1b963James Dong 430c1bc742181ded4930842b46e9507372f0b1b963James Dong 440c1bc742181ded4930842b46e9507372f0b1b963James Dong 450c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Loop 460c1bc742181ded4930842b46e9507372f0b1b963James Dong 470c1bc742181ded4930842b46e9507372f0b1b963James DongXY RN 9 480c1bc742181ded4930842b46e9507372f0b1b963James Dong 490c1bc742181ded4930842b46e9507372f0b1b963James DongpTmp RN 6 500c1bc742181ded4930842b46e9507372f0b1b963James Dongstep RN 10 510c1bc742181ded4930842b46e9507372f0b1b963James Dong 520c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Pixels 530c1bc742181ded4930842b46e9507372f0b1b963James DongdP_0 DN D4.U8 540c1bc742181ded4930842b46e9507372f0b1b963James DongdP_1 DN D5.U8 550c1bc742181ded4930842b46e9507372f0b1b963James DongdP_2 DN D6.U8 560c1bc742181ded4930842b46e9507372f0b1b963James DongdP_3 DN D7.U8 570c1bc742181ded4930842b46e9507372f0b1b963James DongdQ_0 DN D8.U8 580c1bc742181ded4930842b46e9507372f0b1b963James DongdQ_1 DN D9.U8 590c1bc742181ded4930842b46e9507372f0b1b963James DongdQ_2 DN D10.U8 600c1bc742181ded4930842b46e9507372f0b1b963James DongdQ_3 DN D11.U8 610c1bc742181ded4930842b46e9507372f0b1b963James Dong 620c1bc742181ded4930842b46e9507372f0b1b963James Dong 630c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Filtering Decision 640c1bc742181ded4930842b46e9507372f0b1b963James DongdAlpha DN D0.U8 650c1bc742181ded4930842b46e9507372f0b1b963James DongdBeta DN D2.U8 660c1bc742181ded4930842b46e9507372f0b1b963James Dong 670c1bc742181ded4930842b46e9507372f0b1b963James DongdFilt DN D16.U8 680c1bc742181ded4930842b46e9507372f0b1b963James DongdAqflg DN D12.U8 690c1bc742181ded4930842b46e9507372f0b1b963James DongdApflg DN D17.U8 700c1bc742181ded4930842b46e9507372f0b1b963James Dong 710c1bc742181ded4930842b46e9507372f0b1b963James DongdAp0q0 DN D13.U8 720c1bc742181ded4930842b46e9507372f0b1b963James DongdAp1p0 DN D12.U8 730c1bc742181ded4930842b46e9507372f0b1b963James DongdAq1q0 DN D18.U8 740c1bc742181ded4930842b46e9507372f0b1b963James DongdAp2p0 DN D19.U8 750c1bc742181ded4930842b46e9507372f0b1b963James DongdAq2q0 DN D17.U8 760c1bc742181ded4930842b46e9507372f0b1b963James Dong 770c1bc742181ded4930842b46e9507372f0b1b963James Dong;// bSLT4 780c1bc742181ded4930842b46e9507372f0b1b963James DongdTC0 DN D18.U8 790c1bc742181ded4930842b46e9507372f0b1b963James DongdTC1 DN D19.U8 800c1bc742181ded4930842b46e9507372f0b1b963James DongdTC01 DN D18.U8 810c1bc742181ded4930842b46e9507372f0b1b963James Dong 820c1bc742181ded4930842b46e9507372f0b1b963James DongdTCs DN D31.S8 830c1bc742181ded4930842b46e9507372f0b1b963James DongdTC DN D31.U8 840c1bc742181ded4930842b46e9507372f0b1b963James Dong 850c1bc742181ded4930842b46e9507372f0b1b963James DongdMask_0 DN D14.U8 860c1bc742181ded4930842b46e9507372f0b1b963James DongdMask_1 DN D15.U8 870c1bc742181ded4930842b46e9507372f0b1b963James Dong 880c1bc742181ded4930842b46e9507372f0b1b963James DongMask_0 RN 11 890c1bc742181ded4930842b46e9507372f0b1b963James Dong 900c1bc742181ded4930842b46e9507372f0b1b963James DongdTemp DN D19.U8 910c1bc742181ded4930842b46e9507372f0b1b963James Dong 920c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Computing P0,Q0 930c1bc742181ded4930842b46e9507372f0b1b963James DongqDq0p0 QN Q10.S16 940c1bc742181ded4930842b46e9507372f0b1b963James DongqDp1q1 QN Q11.S16 950c1bc742181ded4930842b46e9507372f0b1b963James DongqDelta QN Q10.S16 ; reuse qDq0p0 960c1bc742181ded4930842b46e9507372f0b1b963James DongdDelta DN D20.S8 970c1bc742181ded4930842b46e9507372f0b1b963James Dong 980c1bc742181ded4930842b46e9507372f0b1b963James Dong 990c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Computing P1,Q1 1000c1bc742181ded4930842b46e9507372f0b1b963James DongdRp0q0 DN D24.U8 1010c1bc742181ded4930842b46e9507372f0b1b963James Dong 1020c1bc742181ded4930842b46e9507372f0b1b963James DongdMaxP DN D23.U8 1030c1bc742181ded4930842b46e9507372f0b1b963James DongdMinP DN D22.U8 1040c1bc742181ded4930842b46e9507372f0b1b963James Dong 1050c1bc742181ded4930842b46e9507372f0b1b963James DongdMaxQ DN D19.U8 1060c1bc742181ded4930842b46e9507372f0b1b963James DongdMinQ DN D21.U8 1070c1bc742181ded4930842b46e9507372f0b1b963James Dong 1080c1bc742181ded4930842b46e9507372f0b1b963James DongdDeltaP DN D26.U8 1090c1bc742181ded4930842b46e9507372f0b1b963James DongdDeltaQ DN D27.U8 1100c1bc742181ded4930842b46e9507372f0b1b963James Dong 1110c1bc742181ded4930842b46e9507372f0b1b963James DongqP_0n QN Q14.S16 1120c1bc742181ded4930842b46e9507372f0b1b963James DongqQ_0n QN Q12.S16 1130c1bc742181ded4930842b46e9507372f0b1b963James Dong 1140c1bc742181ded4930842b46e9507372f0b1b963James DongdQ_0n DN D24.U8 1150c1bc742181ded4930842b46e9507372f0b1b963James DongdQ_1n DN D25.U8 1160c1bc742181ded4930842b46e9507372f0b1b963James DongdP_0n DN D29.U8 1170c1bc742181ded4930842b46e9507372f0b1b963James DongdP_1n DN D30.U8 1180c1bc742181ded4930842b46e9507372f0b1b963James Dong 1190c1bc742181ded4930842b46e9507372f0b1b963James Dong;// bSGE4 1200c1bc742181ded4930842b46e9507372f0b1b963James Dong 1210c1bc742181ded4930842b46e9507372f0b1b963James DongqSp0q0 QN Q10.U16 1220c1bc742181ded4930842b46e9507372f0b1b963James Dong 1230c1bc742181ded4930842b46e9507372f0b1b963James DongqSp2q1 QN Q11.U16 1240c1bc742181ded4930842b46e9507372f0b1b963James DongqSp0q0p1 QN Q12.U16 1250c1bc742181ded4930842b46e9507372f0b1b963James DongqSp3p2 QN Q13.U16 1260c1bc742181ded4930842b46e9507372f0b1b963James DongdHSp0q1 DN D28.U8 1270c1bc742181ded4930842b46e9507372f0b1b963James Dong 1280c1bc742181ded4930842b46e9507372f0b1b963James DongqSq2p1 QN Q11.U16 1290c1bc742181ded4930842b46e9507372f0b1b963James DongqSp0q0q1 QN Q12.U16 1300c1bc742181ded4930842b46e9507372f0b1b963James DongqSq3q2 QN Q13.U16 ;!! 1310c1bc742181ded4930842b46e9507372f0b1b963James DongdHSq0p1 DN D28.U8 ;!! 1320c1bc742181ded4930842b46e9507372f0b1b963James Dong 1330c1bc742181ded4930842b46e9507372f0b1b963James DongqTemp1 QN Q11.U16 ;!!;qSp2q1 1340c1bc742181ded4930842b46e9507372f0b1b963James DongqTemp2 QN Q12.U16 ;!!;qSp0q0p1 1350c1bc742181ded4930842b46e9507372f0b1b963James Dong 1360c1bc742181ded4930842b46e9507372f0b1b963James DongdP_0t DN D28.U8 ;!!;dHSp0q1 1370c1bc742181ded4930842b46e9507372f0b1b963James DongdQ_0t DN D22.U8 ;!!;Temp1 1380c1bc742181ded4930842b46e9507372f0b1b963James Dong 1390c1bc742181ded4930842b46e9507372f0b1b963James DongdP_0n DN D29.U8 1400c1bc742181ded4930842b46e9507372f0b1b963James DongdP_1n DN D30.U8 1410c1bc742181ded4930842b46e9507372f0b1b963James DongdP_2n DN D31.U8 1420c1bc742181ded4930842b46e9507372f0b1b963James Dong 1430c1bc742181ded4930842b46e9507372f0b1b963James DongdQ_0n DN D24.U8 ;!!;Temp2 1440c1bc742181ded4930842b46e9507372f0b1b963James DongdQ_1n DN D25.U8 ;!!;Temp2 1450c1bc742181ded4930842b46e9507372f0b1b963James DongdQ_2n DN D28.U8 ;!!;dQ_0t 1460c1bc742181ded4930842b46e9507372f0b1b963James Dong 1470c1bc742181ded4930842b46e9507372f0b1b963James Dong 1480c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Function header 1490c1bc742181ded4930842b46e9507372f0b1b963James Dong M_START omxVCM4P10_FilterDeblockingLuma_HorEdge_I, r11, d15 1500c1bc742181ded4930842b46e9507372f0b1b963James Dong 1510c1bc742181ded4930842b46e9507372f0b1b963James Dong ;//Arguments on the stack 1520c1bc742181ded4930842b46e9507372f0b1b963James Dong M_ARG ppThresholds, 4 1530c1bc742181ded4930842b46e9507372f0b1b963James Dong M_ARG ppBS, 4 1540c1bc742181ded4930842b46e9507372f0b1b963James Dong 1550c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// d0-dAlpha_0 1560c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// d2-dBeta_0 1570c1bc742181ded4930842b46e9507372f0b1b963James Dong 1580c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pAlpha_1, pAlpha_0, #1 1590c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pBeta_1, pBeta_0, #1 1600c1bc742181ded4930842b46e9507372f0b1b963James Dong 1610c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dAlpha[]}, [pAlpha_0] 1620c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pSrcDst, pSrcDst, srcdstStep, LSL #2 1630c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dBeta[]}, [pBeta_0] 1640c1bc742181ded4930842b46e9507372f0b1b963James Dong 1650c1bc742181ded4930842b46e9507372f0b1b963James Dong M_LDR pBS, ppBS 1660c1bc742181ded4930842b46e9507372f0b1b963James Dong M_LDR pThresholds, ppThresholds 1670c1bc742181ded4930842b46e9507372f0b1b963James Dong 1680c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Mask_0,#0 1690c1bc742181ded4930842b46e9507372f0b1b963James Dong 1700c1bc742181ded4930842b46e9507372f0b1b963James Dong ;dMask_0-14 1710c1bc742181ded4930842b46e9507372f0b1b963James Dong ;dMask_1-15 1720c1bc742181ded4930842b46e9507372f0b1b963James Dong 1730c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV dMask_0, #0 1740c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV dMask_1, #1 1750c1bc742181ded4930842b46e9507372f0b1b963James Dong 1760c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD step, srcdstStep, srcdstStep 1770c1bc742181ded4930842b46e9507372f0b1b963James Dong 1780c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR XY,=LOOP_COUNT 1790c1bc742181ded4930842b46e9507372f0b1b963James Dong 1800c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// p0-p3 - d4-d7 1810c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// q0-q3 - d8-d11 1820c1bc742181ded4930842b46e9507372f0b1b963James DongLoopY 1830c1bc742181ded4930842b46e9507372f0b1b963James DongLoopX 1840c1bc742181ded4930842b46e9507372f0b1b963James Dong LDRH bS10, [pBS], #2 1850c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pTmp, pSrcDst, srcdstStep 1860c1bc742181ded4930842b46e9507372f0b1b963James Dong CMP bS10, #0 1870c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ NoFilterBS0 1880c1bc742181ded4930842b46e9507372f0b1b963James Dong 1890c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dP_3, [pSrcDst], step 1900c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dP_2, [pTmp], step 1910c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dP_1, [pSrcDst], step 1920c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dP_0, [pTmp], step 1930c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dQ_0, [pSrcDst], step 1940c1bc742181ded4930842b46e9507372f0b1b963James Dong VABD dAp1p0, dP_0, dP_1 1950c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dQ_1, [pTmp] 1960c1bc742181ded4930842b46e9507372f0b1b963James Dong VABD dAp0q0, dQ_0, dP_0 1970c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dQ_2, [pSrcDst], srcdstStep 1980c1bc742181ded4930842b46e9507372f0b1b963James Dong 1990c1bc742181ded4930842b46e9507372f0b1b963James Dong VABD dAq1q0, dQ_1, dQ_0 2000c1bc742181ded4930842b46e9507372f0b1b963James Dong VABD dAp2p0, dP_2, dP_0 2010c1bc742181ded4930842b46e9507372f0b1b963James Dong VCGT dFilt, dAlpha, dAp0q0 2020c1bc742181ded4930842b46e9507372f0b1b963James Dong 2030c1bc742181ded4930842b46e9507372f0b1b963James Dong TST bS10, #0xff 2040c1bc742181ded4930842b46e9507372f0b1b963James Dong VMAX dAp1p0, dAq1q0, dAp1p0 2050c1bc742181ded4930842b46e9507372f0b1b963James Dong VABD dAq2q0, dQ_2, dQ_0 2060c1bc742181ded4930842b46e9507372f0b1b963James Dong 2070c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOVEQ.U32 dFilt[0], Mask_0 2080c1bc742181ded4930842b46e9507372f0b1b963James Dong TST bS10, #0xff00 2090c1bc742181ded4930842b46e9507372f0b1b963James Dong 2100c1bc742181ded4930842b46e9507372f0b1b963James Dong VCGT dAp2p0, dBeta, dAp2p0 2110c1bc742181ded4930842b46e9507372f0b1b963James Dong VCGT dAp1p0, dBeta, dAp1p0 2120c1bc742181ded4930842b46e9507372f0b1b963James Dong 2130c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOVEQ.U32 dFilt[1], Mask_0 2140c1bc742181ded4930842b46e9507372f0b1b963James Dong 2150c1bc742181ded4930842b46e9507372f0b1b963James Dong VCGT dAq2q0, dBeta, dAq2q0 2160c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dQ_3, [pSrcDst] 2170c1bc742181ded4930842b46e9507372f0b1b963James Dong VAND dFilt, dFilt, dAp1p0 2180c1bc742181ded4930842b46e9507372f0b1b963James Dong TST bS10, #4 2190c1bc742181ded4930842b46e9507372f0b1b963James Dong 2200c1bc742181ded4930842b46e9507372f0b1b963James Dong VAND dAqflg, dFilt, dAq2q0 2210c1bc742181ded4930842b46e9507372f0b1b963James Dong VAND dApflg, dFilt, dAp2p0 2220c1bc742181ded4930842b46e9507372f0b1b963James Dong 2230c1bc742181ded4930842b46e9507372f0b1b963James Dong BNE bSGE4 2240c1bc742181ded4930842b46e9507372f0b1b963James DongbSLT4 2250c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// bS < 4 Filtering 2260c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pSrcDst, pSrcDst, srcdstStep, LSL #2 2270c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pSrcDst, pSrcDst, srcdstStep 2280c1bc742181ded4930842b46e9507372f0b1b963James Dong 2290c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_DeblockingLumabSLT4_unsafe 2300c1bc742181ded4930842b46e9507372f0b1b963James Dong 2310c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Result Storage 2320c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dP_1n, [pSrcDst], srcdstStep 2330c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dP_0n, [pSrcDst], srcdstStep 2340c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pTmp, pSrcDst, srcdstStep, LSL #2 2350c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dQ_0n, [pSrcDst], srcdstStep 2360c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDS XY, XY, XY 2370c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dQ_1n, [pSrcDst] 2380c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pSrcDst, pTmp, #8 2390c1bc742181ded4930842b46e9507372f0b1b963James Dong 2400c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC LoopX 2410c1bc742181ded4930842b46e9507372f0b1b963James Dong B ExitLoopY 2420c1bc742181ded4930842b46e9507372f0b1b963James Dong 2430c1bc742181ded4930842b46e9507372f0b1b963James DongNoFilterBS0 2440c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pSrcDst, pSrcDst, #8 2450c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDS XY, XY, XY 2460c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pThresholds, pThresholds, #2 2470c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC LoopX 2480c1bc742181ded4930842b46e9507372f0b1b963James Dong B ExitLoopY 2490c1bc742181ded4930842b46e9507372f0b1b963James DongbSGE4 2500c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// bS >= 4 Filtering 2510c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pSrcDst, pSrcDst, srcdstStep, LSL #2 2520c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pSrcDst, pSrcDst, srcdstStep, LSL #1 2530c1bc742181ded4930842b46e9507372f0b1b963James Dong BL armVCM4P10_DeblockingLumabSGE4_unsafe 2540c1bc742181ded4930842b46e9507372f0b1b963James Dong 2550c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Result Storage 2560c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dP_2n, [pSrcDst], srcdstStep 2570c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dP_1n, [pSrcDst], srcdstStep 2580c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dP_0n, [pSrcDst], srcdstStep 2590c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pTmp, pSrcDst, srcdstStep, LSL #2 2600c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dQ_0n, [pSrcDst], srcdstStep 2610c1bc742181ded4930842b46e9507372f0b1b963James Dong ADDS XY,XY,XY 2620c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dQ_1n, [pSrcDst], srcdstStep 2630c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pThresholds, pThresholds, #2 2640c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dQ_2n, [pSrcDst] 2650c1bc742181ded4930842b46e9507372f0b1b963James Dong 2660c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pSrcDst, pTmp, #8 2670c1bc742181ded4930842b46e9507372f0b1b963James Dong BCC LoopX 2680c1bc742181ded4930842b46e9507372f0b1b963James Dong 2690c1bc742181ded4930842b46e9507372f0b1b963James DongExitLoopY 2700c1bc742181ded4930842b46e9507372f0b1b963James Dong 2710c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pSrcDst, pSrcDst, #16 2720c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dAlpha[]}, [pAlpha_1] 2730c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pSrcDst, pSrcDst, srcdstStep, LSL #2 2740c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dBeta[]}, [pBeta_1] 2750c1bc742181ded4930842b46e9507372f0b1b963James Dong BNE LoopY 2760c1bc742181ded4930842b46e9507372f0b1b963James Dong 2770c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r0, #OMX_Sts_NoErr 2780c1bc742181ded4930842b46e9507372f0b1b963James Dong 2790c1bc742181ded4930842b46e9507372f0b1b963James Dong M_END 2800c1bc742181ded4930842b46e9507372f0b1b963James Dong 2810c1bc742181ded4930842b46e9507372f0b1b963James Dong ENDIF 2820c1bc742181ded4930842b46e9507372f0b1b963James Dong 2830c1bc742181ded4930842b46e9507372f0b1b963James Dong 2840c1bc742181ded4930842b46e9507372f0b1b963James Dong 2850c1bc742181ded4930842b46e9507372f0b1b963James Dong 2860c1bc742181ded4930842b46e9507372f0b1b963James Dong END 2870c1bc742181ded4930842b46e9507372f0b1b963James Dong 2880c1bc742181ded4930842b46e9507372f0b1b963James Dong 289