10c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 20c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 30c1bc742181ded4930842b46e9507372f0b1b963James Dong;// File Name: omxVCM4P10_PredictIntraChroma_8x8_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 140c1bc742181ded4930842b46e9507372f0b1b963James Dong INCLUDE omxtypes_s.h 150c1bc742181ded4930842b46e9507372f0b1b963James Dong INCLUDE armCOMM_s.h 160c1bc742181ded4930842b46e9507372f0b1b963James Dong 170c1bc742181ded4930842b46e9507372f0b1b963James Dong EXPORT armVCM4P10_pIndexTable8x8 180c1bc742181ded4930842b46e9507372f0b1b963James Dong 190c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Define the processor variants supported by this file 200c1bc742181ded4930842b46e9507372f0b1b963James Dong 210c1bc742181ded4930842b46e9507372f0b1b963James Dong M_VARIANTS CortexA8 220c1bc742181ded4930842b46e9507372f0b1b963James Dong 230c1bc742181ded4930842b46e9507372f0b1b963James Dong AREA table, DATA 240c1bc742181ded4930842b46e9507372f0b1b963James Dong;//------------------------------------------------------- 250c1bc742181ded4930842b46e9507372f0b1b963James Dong;// This table for implementing switch case of C in asm by 260c1bc742181ded4930842b46e9507372f0b1b963James Dong;// the mehtod of two levels of indexing. 270c1bc742181ded4930842b46e9507372f0b1b963James Dong;//------------------------------------------------------- 280c1bc742181ded4930842b46e9507372f0b1b963James Dong 290c1bc742181ded4930842b46e9507372f0b1b963James Dong M_TABLE armVCM4P10_pIndexTable8x8 300c1bc742181ded4930842b46e9507372f0b1b963James Dong DCD OMX_VC_CHROMA_DC, OMX_VC_CHROMA_HOR 310c1bc742181ded4930842b46e9507372f0b1b963James Dong DCD OMX_VC_CHROMA_VERT, OMX_VC_CHROMA_PLANE 320c1bc742181ded4930842b46e9507372f0b1b963James Dong 330c1bc742181ded4930842b46e9507372f0b1b963James Dong M_TABLE armVCM4P10_MultiplierTableChroma8x8,1 340c1bc742181ded4930842b46e9507372f0b1b963James Dong DCW 3, 2, 1,4 350c1bc742181ded4930842b46e9507372f0b1b963James Dong DCW -3,-2,-1,0 360c1bc742181ded4930842b46e9507372f0b1b963James Dong DCW 1, 2, 3,4 370c1bc742181ded4930842b46e9507372f0b1b963James Dong 380c1bc742181ded4930842b46e9507372f0b1b963James Dong 390c1bc742181ded4930842b46e9507372f0b1b963James Dong 400c1bc742181ded4930842b46e9507372f0b1b963James Dong IF CortexA8 410c1bc742181ded4930842b46e9507372f0b1b963James Dong 420c1bc742181ded4930842b46e9507372f0b1b963James Dong;//-------------------------------------------- 430c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Scratch variable 440c1bc742181ded4930842b46e9507372f0b1b963James Dong;//-------------------------------------------- 450c1bc742181ded4930842b46e9507372f0b1b963James Dong 460c1bc742181ded4930842b46e9507372f0b1b963James Dongpc RN 15 470c1bc742181ded4930842b46e9507372f0b1b963James Dongreturn RN 0 480c1bc742181ded4930842b46e9507372f0b1b963James DongpTable RN 8 490c1bc742181ded4930842b46e9507372f0b1b963James Dong 500c1bc742181ded4930842b46e9507372f0b1b963James Dong;//-------------------------------------------- 510c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Input Arguments 520c1bc742181ded4930842b46e9507372f0b1b963James Dong;//-------------------------------------------- 530c1bc742181ded4930842b46e9507372f0b1b963James DongpSrcLeft RN 0 ;// input pointer 540c1bc742181ded4930842b46e9507372f0b1b963James DongpSrcAbove RN 1 ;// input pointer 550c1bc742181ded4930842b46e9507372f0b1b963James DongpSrcAboveLeft RN 2 ;// input pointer 560c1bc742181ded4930842b46e9507372f0b1b963James DongpDst RN 3 ;// output pointer 570c1bc742181ded4930842b46e9507372f0b1b963James DongleftStep RN 4 ;// input variable 580c1bc742181ded4930842b46e9507372f0b1b963James DongdstStep RN 5 ;// input variable 590c1bc742181ded4930842b46e9507372f0b1b963James DongpredMode RN 6 ;// input variable 600c1bc742181ded4930842b46e9507372f0b1b963James Dongavailability RN 7 ;// input variable 610c1bc742181ded4930842b46e9507372f0b1b963James DongpMultiplierTable RN 2 620c1bc742181ded4930842b46e9507372f0b1b963James Dong 630c1bc742181ded4930842b46e9507372f0b1b963James DongpTmp RN 9 640c1bc742181ded4930842b46e9507372f0b1b963James Dongstep RN 10 650c1bc742181ded4930842b46e9507372f0b1b963James Dong 660c1bc742181ded4930842b46e9507372f0b1b963James Dong;//--------------------- 670c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Neon Registers 680c1bc742181ded4930842b46e9507372f0b1b963James Dong;//--------------------- 690c1bc742181ded4930842b46e9507372f0b1b963James Dong 700c1bc742181ded4930842b46e9507372f0b1b963James Dong;// OMX_VC_CHROMA_HOR 710c1bc742181ded4930842b46e9507372f0b1b963James Dong 720c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftVal0 DN D0.8 730c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftVal1 DN D1.8 740c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftVal2 DN D2.8 750c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftVal3 DN D3.8 760c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftVal4 DN D4.8 770c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftVal5 DN D5.8 780c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftVal6 DN D6.8 790c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftVal7 DN D7.8 800c1bc742181ded4930842b46e9507372f0b1b963James Dong 810c1bc742181ded4930842b46e9507372f0b1b963James Dong;// OMX_VC_CHROMA_VERT 820c1bc742181ded4930842b46e9507372f0b1b963James Dong 830c1bc742181ded4930842b46e9507372f0b1b963James DongdAboveVal DN D0.U8 840c1bc742181ded4930842b46e9507372f0b1b963James Dong 850c1bc742181ded4930842b46e9507372f0b1b963James Dong;// OMX_VC_CHROMA_DC 860c1bc742181ded4930842b46e9507372f0b1b963James Dong 870c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftVal DN D1.U8 880c1bc742181ded4930842b46e9507372f0b1b963James DongdSumAboveValU16 DN D2.U16 890c1bc742181ded4930842b46e9507372f0b1b963James DongdSumAboveValU32 DN D3.U32 900c1bc742181ded4930842b46e9507372f0b1b963James DongdSumAboveValU8 DN D3.U8 910c1bc742181ded4930842b46e9507372f0b1b963James DongdSumLeftValU16 DN D2.U16 920c1bc742181ded4930842b46e9507372f0b1b963James DongdSumLeftValU32 DN D1.U32 930c1bc742181ded4930842b46e9507372f0b1b963James DongdSumLeftValU8 DN D1.U8 940c1bc742181ded4930842b46e9507372f0b1b963James DongdSumAboveLeft DN D2.U32 950c1bc742181ded4930842b46e9507372f0b1b963James DongdSumAboveLeftU8 DN D2.U8 960c1bc742181ded4930842b46e9507372f0b1b963James DongdIndexRow0U8 DN D5.U8 970c1bc742181ded4930842b46e9507372f0b1b963James DongdIndexRow0 DN D5.U64 980c1bc742181ded4930842b46e9507372f0b1b963James DongdIndexRow4U8 DN D6.U8 990c1bc742181ded4930842b46e9507372f0b1b963James DongdIndexRow4 DN D6.U64 1000c1bc742181ded4930842b46e9507372f0b1b963James DongdDstRow0 DN D0.U8 1010c1bc742181ded4930842b46e9507372f0b1b963James DongdDstRow4 DN D4.U8 1020c1bc742181ded4930842b46e9507372f0b1b963James DongdConst128U8 DN D0.U8 1030c1bc742181ded4930842b46e9507372f0b1b963James Dong 1040c1bc742181ded4930842b46e9507372f0b1b963James Dong;// OMX_VC_CHROMA_PLANE 1050c1bc742181ded4930842b46e9507372f0b1b963James Dong 1060c1bc742181ded4930842b46e9507372f0b1b963James DongdRevAboveVal DN D3.U8 1070c1bc742181ded4930842b46e9507372f0b1b963James DongdRevAboveValU64 DN D3.U64 1080c1bc742181ded4930842b46e9507372f0b1b963James DongdAboveLeftVal DN D2.U8 1090c1bc742181ded4930842b46e9507372f0b1b963James DongqAbove7minus0 QN Q3.S16 1100c1bc742181ded4930842b46e9507372f0b1b963James DongqAboveDiff QN Q2.S16 1110c1bc742181ded4930842b46e9507372f0b1b963James DongdIndex DN D8.U8 1120c1bc742181ded4930842b46e9507372f0b1b963James DongdDiffAboveU8 DN D9.U8 1130c1bc742181ded4930842b46e9507372f0b1b963James DongdDiffAboveS16 DN D9.S16 1140c1bc742181ded4930842b46e9507372f0b1b963James DongdAboveDiff0U8 DN D4.U8 1150c1bc742181ded4930842b46e9507372f0b1b963James DongdAboveDiff0U64 DN D4.U64 1160c1bc742181ded4930842b46e9507372f0b1b963James DongdAbove7minus0U8 DN D6.U8 1170c1bc742181ded4930842b46e9507372f0b1b963James DongdMultiplier DN D10.S16 1180c1bc742181ded4930842b46e9507372f0b1b963James DongdHorPred DN D11.S16 1190c1bc742181ded4930842b46e9507372f0b1b963James DongdRevLeftVal DN D3.U8 1200c1bc742181ded4930842b46e9507372f0b1b963James DongdRevLeftValU64 DN D3.U64 1210c1bc742181ded4930842b46e9507372f0b1b963James DongqLeft7minus0 QN Q7.S16 1220c1bc742181ded4930842b46e9507372f0b1b963James DongqLeftDiff QN Q6.S16 1230c1bc742181ded4930842b46e9507372f0b1b963James DongdDiffLeftU8 DN D16.U8 1240c1bc742181ded4930842b46e9507372f0b1b963James DongdDiffLeftS16 DN D16.S16 1250c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftDiff0U8 DN D12.U8 1260c1bc742181ded4930842b46e9507372f0b1b963James DongdLeftDiff0U64 DN D12.U64 1270c1bc742181ded4930842b46e9507372f0b1b963James DongdLeft7minus0U8 DN D14.U8 1280c1bc742181ded4930842b46e9507372f0b1b963James DongdVerPred DN D3.S16 1290c1bc742181ded4930842b46e9507372f0b1b963James DongdHVValS16 DN D3.S16 1300c1bc742181ded4930842b46e9507372f0b1b963James DongdHVValS32 DN D3.S32 1310c1bc742181ded4930842b46e9507372f0b1b963James DongdHVTempS32 DN D2.S32 1320c1bc742181ded4930842b46e9507372f0b1b963James DongqA QN Q0.S16 1330c1bc742181ded4930842b46e9507372f0b1b963James DongqB QN Q2.S16 1340c1bc742181ded4930842b46e9507372f0b1b963James DongqC QN Q3.S16 1350c1bc742181ded4930842b46e9507372f0b1b963James DongqMultiplier QN Q5.S16 1360c1bc742181ded4930842b46e9507372f0b1b963James DongdMultiplier0 DN D10.S16 1370c1bc742181ded4930842b46e9507372f0b1b963James DongdMultiplier1 DN D11.S16 1380c1bc742181ded4930842b46e9507372f0b1b963James DongqC0 QN Q0.S16 1390c1bc742181ded4930842b46e9507372f0b1b963James DongqC1 QN Q1.S16 1400c1bc742181ded4930842b46e9507372f0b1b963James DongqC2 QN Q4.S16 1410c1bc742181ded4930842b46e9507372f0b1b963James DongqC3 QN Q5.S16 1420c1bc742181ded4930842b46e9507372f0b1b963James DongqC4 QN Q6.S16 1430c1bc742181ded4930842b46e9507372f0b1b963James DongqC5 QN Q7.S16 1440c1bc742181ded4930842b46e9507372f0b1b963James DongqC6 QN Q8.S16 1450c1bc742181ded4930842b46e9507372f0b1b963James DongqC7 QN Q9.S16 1460c1bc742181ded4930842b46e9507372f0b1b963James DongqSum0 QN Q0.S16 1470c1bc742181ded4930842b46e9507372f0b1b963James DongqSum1 QN Q1.S16 1480c1bc742181ded4930842b46e9507372f0b1b963James DongqSum2 QN Q4.S16 1490c1bc742181ded4930842b46e9507372f0b1b963James DongqSum3 QN Q5.S16 1500c1bc742181ded4930842b46e9507372f0b1b963James DongqSum4 QN Q6.S16 1510c1bc742181ded4930842b46e9507372f0b1b963James DongqSum5 QN Q7.S16 1520c1bc742181ded4930842b46e9507372f0b1b963James DongqSum6 QN Q8.S16 1530c1bc742181ded4930842b46e9507372f0b1b963James DongqSum7 QN Q9.S16 1540c1bc742181ded4930842b46e9507372f0b1b963James DongdSum0 DN D0.U8 1550c1bc742181ded4930842b46e9507372f0b1b963James DongdSum1 DN D1.U8 1560c1bc742181ded4930842b46e9507372f0b1b963James DongdSum2 DN D2.U8 1570c1bc742181ded4930842b46e9507372f0b1b963James DongdSum3 DN D3.U8 1580c1bc742181ded4930842b46e9507372f0b1b963James DongdSum4 DN D4.U8 1590c1bc742181ded4930842b46e9507372f0b1b963James DongdSum5 DN D5.U8 1600c1bc742181ded4930842b46e9507372f0b1b963James DongdSum6 DN D6.U8 1610c1bc742181ded4930842b46e9507372f0b1b963James DongdSum7 DN D7.U8 1620c1bc742181ded4930842b46e9507372f0b1b963James Dong 1630c1bc742181ded4930842b46e9507372f0b1b963James Dong;//----------------------------------------------------------------------------------------------- 1640c1bc742181ded4930842b46e9507372f0b1b963James Dong;// omxVCM4P10_PredictIntraChroma_8x8 starts 1650c1bc742181ded4930842b46e9507372f0b1b963James Dong;//----------------------------------------------------------------------------------------------- 1660c1bc742181ded4930842b46e9507372f0b1b963James Dong 1670c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Write function header 1680c1bc742181ded4930842b46e9507372f0b1b963James Dong M_START omxVCM4P10_PredictIntraChroma_8x8, r10, d15 1690c1bc742181ded4930842b46e9507372f0b1b963James Dong 1700c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Define stack arguments 1710c1bc742181ded4930842b46e9507372f0b1b963James Dong M_ARG LeftStep, 4 1720c1bc742181ded4930842b46e9507372f0b1b963James Dong M_ARG DstStep, 4 1730c1bc742181ded4930842b46e9507372f0b1b963James Dong M_ARG PredMode, 4 1740c1bc742181ded4930842b46e9507372f0b1b963James Dong M_ARG Availability, 4 1750c1bc742181ded4930842b46e9507372f0b1b963James Dong 1760c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR pTable,=armVCM4P10_pIndexTable8x8 ;// Load index table for switch case 1770c1bc742181ded4930842b46e9507372f0b1b963James Dong 1780c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Load argument from the stack 1790c1bc742181ded4930842b46e9507372f0b1b963James Dong M_LDR predMode, PredMode ;// Arg predMode loaded from stack to reg 1800c1bc742181ded4930842b46e9507372f0b1b963James Dong M_LDR leftStep, LeftStep ;// Arg leftStep loaded from stack to reg 1810c1bc742181ded4930842b46e9507372f0b1b963James Dong M_LDR dstStep, DstStep ;// Arg dstStep loaded from stack to reg 1820c1bc742181ded4930842b46e9507372f0b1b963James Dong M_LDR availability, Availability ;// Arg availability loaded from stack to reg 1830c1bc742181ded4930842b46e9507372f0b1b963James Dong 1840c1bc742181ded4930842b46e9507372f0b1b963James Dong 1850c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR pc, [pTable, predMode, LSL #2] ;// Branch to the case based on preMode 1860c1bc742181ded4930842b46e9507372f0b1b963James Dong 1870c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_CHROMA_DC 1880c1bc742181ded4930842b46e9507372f0b1b963James Dong 1890c1bc742181ded4930842b46e9507372f0b1b963James Dong TST availability, #OMX_VC_LEFT 1900c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ DCChroma8x8LeftNotAvailable 1910c1bc742181ded4930842b46e9507372f0b1b963James Dong 1920c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pTmp, pSrcLeft, leftStep 1930c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD step, leftStep, leftStep 1940c1bc742181ded4930842b46e9507372f0b1b963James Dong 1950c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Load Left Edge 1960c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[0]},[pSrcLeft],step ;// pSrcLeft[0*leftStep] 1970c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[1]},[pTmp],step ;// pSrcLeft[1*leftStep] 1980c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[2]},[pSrcLeft],step ;// pSrcLeft[2*leftStep] 1990c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[3]},[pTmp],step ;// pSrcLeft[3*leftStep] 2000c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[4]},[pSrcLeft],step ;// pSrcLeft[4*leftStep] 2010c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[5]},[pTmp],step ;// pSrcLeft[5*leftStep] 2020c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[6]},[pSrcLeft],step ;// pSrcLeft[6*leftStep] 2030c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[7]},[pTmp] ;// pSrcLeft[7*leftStep] 2040c1bc742181ded4930842b46e9507372f0b1b963James Dong 2050c1bc742181ded4930842b46e9507372f0b1b963James Dong TST availability, #OMX_VC_UPPER 2060c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ DCChroma8x8LeftOnlyAvailable 2070c1bc742181ded4930842b46e9507372f0b1b963James Dong 2080c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Load Upper Edge also 2090c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dAboveVal,[pSrcAbove] ;// pSrcAbove[0 to 7] 2100c1bc742181ded4930842b46e9507372f0b1b963James Dong 2110c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV return, #OMX_Sts_NoErr ;// returnNoError 2120c1bc742181ded4930842b46e9507372f0b1b963James Dong 2130c1bc742181ded4930842b46e9507372f0b1b963James Dong VPADDL dSumAboveValU16, dAboveVal ;// pSrcAbove[ 6+7 | 4+5 | 2+3 | 0+1 ] 2140c1bc742181ded4930842b46e9507372f0b1b963James Dong VPADDL dSumAboveValU32, dSumAboveValU16 ;// pSrcAbove[ 4+5+6+7 | 0+1+2+3 ] 2150c1bc742181ded4930842b46e9507372f0b1b963James Dong 2160c1bc742181ded4930842b46e9507372f0b1b963James Dong VPADDL dSumLeftValU16, dLeftVal ;// pSrcLeft[ 6+7 | 4+5 | 2+3 | 0+1 ] 2170c1bc742181ded4930842b46e9507372f0b1b963James Dong VPADDL dSumLeftValU32, dSumLeftValU16 ;// pSrcLeft[ 4+5+6+7 | 0+1+2+3 ] 2180c1bc742181ded4930842b46e9507372f0b1b963James Dong 2190c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD dSumAboveLeft,dSumAboveValU32,dSumLeftValU32 2200c1bc742181ded4930842b46e9507372f0b1b963James Dong VRSHR dSumAboveLeft,dSumAboveLeft,#3 ;// Sum = (Sum + 4) >> 3 2210c1bc742181ded4930842b46e9507372f0b1b963James Dong VRSHR dSumAboveValU32,dSumAboveValU32,#2 ;// Sum = (Sum + 2) >> 2 2220c1bc742181ded4930842b46e9507372f0b1b963James Dong VRSHR dSumLeftValU32,dSumLeftValU32,#2 ;// Sum = (Sum + 2) >> 2 2230c1bc742181ded4930842b46e9507372f0b1b963James Dong 2240c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV dIndexRow0U8,#0x0c 2250c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV dIndexRow4U8,#0x04 2260c1bc742181ded4930842b46e9507372f0b1b963James Dong VSHL dIndexRow0,dIndexRow0,#32 ;// index0 = 0x0c0c0c0c00000000 2270c1bc742181ded4930842b46e9507372f0b1b963James Dong VSHR dIndexRow4,dIndexRow4,#32 ;// index4 = 0x0000000004040404 2280c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD dIndexRow4U8,dIndexRow4U8,dIndexRow0U8 ;// index4 = 0x0c0c0c0c04040404 2290c1bc742181ded4930842b46e9507372f0b1b963James Dong VTBL dDstRow0,{dSumAboveLeftU8,dSumAboveValU8},dIndexRow0U8 2300c1bc742181ded4930842b46e9507372f0b1b963James Dong VTBL dDstRow4,{dSumLeftValU8,dSumAboveLeftU8},dIndexRow4U8 2310c1bc742181ded4930842b46e9507372f0b1b963James Dong 2320c1bc742181ded4930842b46e9507372f0b1b963James DongDCChroma8x8LeftStore 2330c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pTmp, pDst, dstStep 2340c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD step, dstStep, dstStep 2350c1bc742181ded4930842b46e9507372f0b1b963James Dong 2360c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pDst],step ;// pDst[0*dstStep+x] :0<= x <= 7 2370c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pTmp],step ;// pDst[1*dstStep+x] :0<= x <= 7 2380c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pDst],step ;// pDst[2*dstStep+x] :0<= x <= 7 2390c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pTmp],step ;// pDst[3*dstStep+x] :0<= x <= 7 2400c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow4,[pDst],step ;// pDst[4*dstStep+x] :0<= x <= 7 2410c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow4,[pTmp],step ;// pDst[5*dstStep+x] :0<= x <= 7 2420c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow4,[pDst],step ;// pDst[6*dstStep+x] :0<= x <= 7 2430c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow4,[pTmp] ;// pDst[7*dstStep+x] :0<= x <= 7 2440c1bc742181ded4930842b46e9507372f0b1b963James Dong 2450c1bc742181ded4930842b46e9507372f0b1b963James Dong M_EXIT 2460c1bc742181ded4930842b46e9507372f0b1b963James Dong 2470c1bc742181ded4930842b46e9507372f0b1b963James Dong 2480c1bc742181ded4930842b46e9507372f0b1b963James DongDCChroma8x8LeftOnlyAvailable 2490c1bc742181ded4930842b46e9507372f0b1b963James Dong 2500c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV return, #OMX_Sts_NoErr 2510c1bc742181ded4930842b46e9507372f0b1b963James Dong 2520c1bc742181ded4930842b46e9507372f0b1b963James Dong VPADDL dSumLeftValU16, dLeftVal ;// pSrcLeft[ 6+7 | 4+5 | 2+3 | 0+1 ] 2530c1bc742181ded4930842b46e9507372f0b1b963James Dong VPADDL dSumLeftValU32, dSumLeftValU16 ;// pSrcLeft[ 4+5+6+7 | 0+1+2+3 ] 2540c1bc742181ded4930842b46e9507372f0b1b963James Dong VRSHR dSumLeftValU32,dSumLeftValU32,#2 ;// Sum = (Sum + 2) >> 2 2550c1bc742181ded4930842b46e9507372f0b1b963James Dong 2560c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP dDstRow0,dSumLeftValU8[0] 2570c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP dDstRow4,dSumLeftValU8[4] 2580c1bc742181ded4930842b46e9507372f0b1b963James Dong 2590c1bc742181ded4930842b46e9507372f0b1b963James Dong B DCChroma8x8LeftStore 2600c1bc742181ded4930842b46e9507372f0b1b963James Dong 2610c1bc742181ded4930842b46e9507372f0b1b963James Dong 2620c1bc742181ded4930842b46e9507372f0b1b963James DongDCChroma8x8LeftNotAvailable 2630c1bc742181ded4930842b46e9507372f0b1b963James Dong 2640c1bc742181ded4930842b46e9507372f0b1b963James Dong TST availability, #OMX_VC_UPPER 2650c1bc742181ded4930842b46e9507372f0b1b963James Dong BEQ DCChroma8x8NoneAvailable 2660c1bc742181ded4930842b46e9507372f0b1b963James Dong 2670c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Load Upper Edge 2680c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dAboveVal,[pSrcAbove] ;// pSrcAbove[0 to 7] 2690c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV return, #OMX_Sts_NoErr ;// returnNoError 2700c1bc742181ded4930842b46e9507372f0b1b963James Dong 2710c1bc742181ded4930842b46e9507372f0b1b963James Dong VPADDL dSumAboveValU16, dAboveVal ;// pSrcAbove[ 6+7 | 4+5 | 2+3 | 0+1 ] 2720c1bc742181ded4930842b46e9507372f0b1b963James Dong VPADDL dSumAboveValU32, dSumAboveValU16 ;// pSrcAbove[ 4+5+6+7 | 0+1+2+3 ] 2730c1bc742181ded4930842b46e9507372f0b1b963James Dong VRSHR dSumAboveValU32,dSumAboveValU32,#2 ;// Sum = (Sum + 2) >> 2 2740c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV dIndexRow0U8,#0x04 2750c1bc742181ded4930842b46e9507372f0b1b963James Dong VSHL dIndexRow0,dIndexRow0,#32 ;// index = 0x0404040400000000 2760c1bc742181ded4930842b46e9507372f0b1b963James Dong VTBL dDstRow0,{dSumAboveValU8},dIndexRow0U8 2770c1bc742181ded4930842b46e9507372f0b1b963James Dong 2780c1bc742181ded4930842b46e9507372f0b1b963James Dong B DCChroma8x8UpperStore 2790c1bc742181ded4930842b46e9507372f0b1b963James Dong 2800c1bc742181ded4930842b46e9507372f0b1b963James Dong 2810c1bc742181ded4930842b46e9507372f0b1b963James DongDCChroma8x8NoneAvailable 2820c1bc742181ded4930842b46e9507372f0b1b963James Dong 2830c1bc742181ded4930842b46e9507372f0b1b963James Dong VMOV dConst128U8,#0x80 ;// 0x8080808080808080 if(count == 0) 2840c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV return, #OMX_Sts_NoErr ;// returnNoError 2850c1bc742181ded4930842b46e9507372f0b1b963James Dong 2860c1bc742181ded4930842b46e9507372f0b1b963James DongDCChroma8x8UpperStore 2870c1bc742181ded4930842b46e9507372f0b1b963James Dong 2880c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pTmp, pDst, dstStep 2890c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD step, dstStep, dstStep 2900c1bc742181ded4930842b46e9507372f0b1b963James Dong 2910c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pDst],step ;// pDst[0*dstStep+x] :0<= x <= 7 2920c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pTmp],step ;// pDst[1*dstStep+x] :0<= x <= 7 2930c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pDst],step ;// pDst[2*dstStep+x] :0<= x <= 7 2940c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pTmp],step ;// pDst[3*dstStep+x] :0<= x <= 7 2950c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pDst],step ;// pDst[4*dstStep+x] :0<= x <= 7 2960c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pTmp],step ;// pDst[5*dstStep+x] :0<= x <= 7 2970c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pDst],step ;// pDst[6*dstStep+x] :0<= x <= 7 2980c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dDstRow0,[pTmp] ;// pDst[7*dstStep+x] :0<= x <= 7 2990c1bc742181ded4930842b46e9507372f0b1b963James Dong 3000c1bc742181ded4930842b46e9507372f0b1b963James Dong M_EXIT 3010c1bc742181ded4930842b46e9507372f0b1b963James Dong 3020c1bc742181ded4930842b46e9507372f0b1b963James Dong 3030c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_CHROMA_VERT 3040c1bc742181ded4930842b46e9507372f0b1b963James Dong 3050c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dAboveVal,[pSrcAbove] ;// pSrcAbove[x] :0<= x <= 7 3060c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV return, #OMX_Sts_NoErr 3070c1bc742181ded4930842b46e9507372f0b1b963James Dong 3080c1bc742181ded4930842b46e9507372f0b1b963James Dong B DCChroma8x8UpperStore 3090c1bc742181ded4930842b46e9507372f0b1b963James Dong 3100c1bc742181ded4930842b46e9507372f0b1b963James Dong 3110c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_CHROMA_HOR 3120c1bc742181ded4930842b46e9507372f0b1b963James Dong 3130c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pTmp, pSrcLeft, leftStep 3140c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD step, leftStep, leftStep 3150c1bc742181ded4930842b46e9507372f0b1b963James Dong 3160c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal0[]},[pSrcLeft],step ;// pSrcLeft[0*leftStep] 3170c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal1[]},[pTmp],step ;// pSrcLeft[1*leftStep] 3180c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal2[]},[pSrcLeft],step ;// pSrcLeft[2*leftStep] 3190c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal3[]},[pTmp],step ;// pSrcLeft[3*leftStep] 3200c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal4[]},[pSrcLeft],step ;// pSrcLeft[4*leftStep] 3210c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal5[]},[pTmp],step ;// pSrcLeft[5*leftStep] 3220c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal6[]},[pSrcLeft],step ;// pSrcLeft[6*leftStep] 3230c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal7[]},[pTmp] ;// pSrcLeft[7*leftStep] 3240c1bc742181ded4930842b46e9507372f0b1b963James Dong 3250c1bc742181ded4930842b46e9507372f0b1b963James Dong B DCChroma8x8PlaneStore 3260c1bc742181ded4930842b46e9507372f0b1b963James Dong 3270c1bc742181ded4930842b46e9507372f0b1b963James Dong 3280c1bc742181ded4930842b46e9507372f0b1b963James DongOMX_VC_CHROMA_PLANE 3290c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pTmp, pSrcLeft, leftStep 3300c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD step, leftStep, leftStep 3310c1bc742181ded4930842b46e9507372f0b1b963James Dong 3320c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dAboveVal,[pSrcAbove] ;// pSrcAbove[x] :0<= x <= 7 3330c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dAboveLeftVal[0],[pSrcAboveLeft] 3340c1bc742181ded4930842b46e9507372f0b1b963James Dong 3350c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[0]},[pSrcLeft],step ;// pSrcLeft[0*leftStep] 3360c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[1]},[pTmp],step ;// pSrcLeft[1*leftStep] 3370c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[2]},[pSrcLeft],step ;// pSrcLeft[2*leftStep] 3380c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[3]},[pTmp],step ;// pSrcLeft[3*leftStep] 3390c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[4]},[pSrcLeft],step ;// pSrcLeft[4*leftStep] 3400c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[5]},[pTmp],step ;// pSrcLeft[5*leftStep] 3410c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[6]},[pSrcLeft],step ;// pSrcLeft[6*leftStep] 3420c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dLeftVal[7]},[pTmp] ;// pSrcLeft[7*leftStep] 3430c1bc742181ded4930842b46e9507372f0b1b963James Dong 3440c1bc742181ded4930842b46e9507372f0b1b963James Dong 3450c1bc742181ded4930842b46e9507372f0b1b963James Dong VREV64 dRevAboveVal,dAboveVal ;// Reverse order of bytes = pSrcAbove[0:1:2:3:4:5:6:7] 3460c1bc742181ded4930842b46e9507372f0b1b963James Dong VSUBL qAbove7minus0,dRevAboveVal,dAboveLeftVal ;// qAbove7minus0[0] = pSrcAbove[7] - pSrcAboveLeft[0] 3470c1bc742181ded4930842b46e9507372f0b1b963James Dong VSHR dRevAboveValU64,dRevAboveValU64,#8 ;// pSrcAbove[X:0:1:2:3:4:5:6] 3480c1bc742181ded4930842b46e9507372f0b1b963James Dong VSUBL qAboveDiff,dRevAboveVal,dAboveVal ;// pSrcAbove[6] - pSrcAbove[0] 3490c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// pSrcAbove[5] - pSrcAbove[1] 3500c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// pSrcAbove[4] - pSrcAbove[2] 3510c1bc742181ded4930842b46e9507372f0b1b963James Dong 3520c1bc742181ded4930842b46e9507372f0b1b963James Dong VREV64 dRevLeftVal,dLeftVal ;// Reverse order of bytes = pSrcLeft[0:1:2:3:4:5:6:7] 3530c1bc742181ded4930842b46e9507372f0b1b963James Dong VSUBL qLeft7minus0,dRevLeftVal,dAboveLeftVal ;// qAbove7minus0[0] = pSrcLeft[7] - pSrcAboveLeft[0] 3540c1bc742181ded4930842b46e9507372f0b1b963James Dong VSHR dRevLeftValU64,dRevLeftValU64,#8 ;// pSrcLeft[X:0:1:2:3:4:5:6] 3550c1bc742181ded4930842b46e9507372f0b1b963James Dong VSUBL qLeftDiff,dRevLeftVal,dLeftVal ;// pSrcLeft[6] - pSrcLeft[0] 3560c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// pSrcLeft[5] - pSrcLeft[1] 3570c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// pSrcLeft[4] - pSrcLeft[2] 3580c1bc742181ded4930842b46e9507372f0b1b963James Dong 3590c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR pMultiplierTable,=armVCM4P10_MultiplierTableChroma8x8 ;// Used to calculate Hval & Vval 3600c1bc742181ded4930842b46e9507372f0b1b963James Dong VSHL dAboveDiff0U64,dAboveDiff0U64,#16 3610c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT dDiffAboveU8,dAboveDiff0U8,dAbove7minus0U8,#2 ;// pSrcAbove[ 7-0 | 4-2 | 5-1 | 6-0 ] 3620c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 dMultiplier,[pMultiplierTable]! 3630c1bc742181ded4930842b46e9507372f0b1b963James Dong VSHL dLeftDiff0U64,dLeftDiff0U64,#16 3640c1bc742181ded4930842b46e9507372f0b1b963James Dong VEXT dDiffLeftU8,dLeftDiff0U8,dLeft7minus0U8,#2 ;// pSrcLeft[ 7-0 | 4-2 | 5-1 | 6-0 ] 3650c1bc742181ded4930842b46e9507372f0b1b963James Dong 3660c1bc742181ded4930842b46e9507372f0b1b963James Dong 3670c1bc742181ded4930842b46e9507372f0b1b963James Dong VMUL dHorPred,dDiffAboveS16,dMultiplier ;// pSrcAbove[ 4*(7-0) | 1*(4-2) | 2*(5-1) | 3*(6-0) ] 3680c1bc742181ded4930842b46e9507372f0b1b963James Dong VMUL dVerPred,dDiffLeftS16,dMultiplier 3690c1bc742181ded4930842b46e9507372f0b1b963James Dong VPADD dHVValS16,dHorPred,dVerPred 3700c1bc742181ded4930842b46e9507372f0b1b963James Dong 3710c1bc742181ded4930842b46e9507372f0b1b963James Dong 3720c1bc742181ded4930842b46e9507372f0b1b963James Dong VPADDL dHVValS32,dHVValS16 ;// [V|H] in 32 bits each 3730c1bc742181ded4930842b46e9507372f0b1b963James Dong VSHL dHVTempS32,dHVValS32,#4 ;// 17*H = 16*H + H = (H<<4)+H 3740c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD dHVValS32,dHVValS32,dHVTempS32 ;// [ 17*V | 17*H ]in 32 bits each 3750c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dMultiplier0,dMultiplier1},[pMultiplierTable] ;// qMultiplier = [ 4|3|2|1|0|-1|-2|-3 ] 3760c1bc742181ded4930842b46e9507372f0b1b963James Dong VRSHR dHVValS32,dHVValS32,#5 ;// [c|b] in 16bits each 3770c1bc742181ded4930842b46e9507372f0b1b963James Dong VADDL qA,dAboveVal,dLeftVal 3780c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qA,qA[7] 3790c1bc742181ded4930842b46e9507372f0b1b963James Dong VSHL qA,qA,#4 ;// [a|a|a|a|a|a|a|a] 3800c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qB,dHVValS16[0] ;// [b|b|b|b|b|b|b|b] 3810c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qC,dHVValS16[2] ;// [c|c|c|c|c|c|c|c] 3820c1bc742181ded4930842b46e9507372f0b1b963James Dong 3830c1bc742181ded4930842b46e9507372f0b1b963James Dong 3840c1bc742181ded4930842b46e9507372f0b1b963James Dong VMUL qB,qB,qMultiplier 3850c1bc742181ded4930842b46e9507372f0b1b963James Dong VMUL qC,qC,qMultiplier 3860c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD qB,qB,qA 3870c1bc742181ded4930842b46e9507372f0b1b963James Dong 3880c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qC0,qC[0] 3890c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qC1,qC[1] 3900c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qC2,qC[2] 3910c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qC3,qC[3] 3920c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qC4,qC[4] 3930c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qC5,qC[5] 3940c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qC6,qC[6] 3950c1bc742181ded4930842b46e9507372f0b1b963James Dong VDUP qC7,qC[7] 3960c1bc742181ded4930842b46e9507372f0b1b963James Dong 3970c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD qSum0,qB,qC0 3980c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD qSum1,qB,qC1 3990c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD qSum2,qB,qC2 4000c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD qSum3,qB,qC3 4010c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD qSum4,qB,qC4 4020c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD qSum5,qB,qC5 4030c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD qSum6,qB,qC6 4040c1bc742181ded4930842b46e9507372f0b1b963James Dong VADD qSum7,qB,qC7 4050c1bc742181ded4930842b46e9507372f0b1b963James Dong 4060c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN dSum0,qSum0,#5 ;// (OMX_U8)armClip(0,255,(Sum+16)>>5) 4070c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN dSum1,qSum1,#5 4080c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN dSum2,qSum2,#5 4090c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN dSum3,qSum3,#5 4100c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN dSum4,qSum4,#5 4110c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN dSum5,qSum5,#5 4120c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN dSum6,qSum6,#5 4130c1bc742181ded4930842b46e9507372f0b1b963James Dong VQRSHRUN dSum7,qSum7,#5 4140c1bc742181ded4930842b46e9507372f0b1b963James Dong 4150c1bc742181ded4930842b46e9507372f0b1b963James DongDCChroma8x8PlaneStore 4160c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pTmp, pDst, dstStep 4170c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD step, dstStep, dstStep 4180c1bc742181ded4930842b46e9507372f0b1b963James Dong 4190c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dSum0,[pDst],step ;// pDst[0*dstStep+x] :0<= x <= 7 4200c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dSum1,[pTmp],step ;// pDst[1*dstStep+x] :0<= x <= 7 4210c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dSum2,[pDst],step ;// pDst[2*dstStep+x] :0<= x <= 7 4220c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dSum3,[pTmp],step ;// pDst[3*dstStep+x] :0<= x <= 7 4230c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dSum4,[pDst],step ;// pDst[4*dstStep+x] :0<= x <= 7 4240c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dSum5,[pTmp],step ;// pDst[5*dstStep+x] :0<= x <= 7 4250c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dSum6,[pDst],step ;// pDst[6*dstStep+x] :0<= x <= 7 4260c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dSum7,[pTmp] ;// pDst[7*dstStep+x] :0<= x <= 7 4270c1bc742181ded4930842b46e9507372f0b1b963James Dong 4280c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV return, #OMX_Sts_NoErr 4290c1bc742181ded4930842b46e9507372f0b1b963James Dong M_END 4300c1bc742181ded4930842b46e9507372f0b1b963James Dong 4310c1bc742181ded4930842b46e9507372f0b1b963James Dong ENDIF ;// CortexA8 4320c1bc742181ded4930842b46e9507372f0b1b963James Dong 4330c1bc742181ded4930842b46e9507372f0b1b963James Dong END 4340c1bc742181ded4930842b46e9507372f0b1b963James Dong;//----------------------------------------------------------------------------------------------- 4350c1bc742181ded4930842b46e9507372f0b1b963James Dong;// omxVCM4P10_PredictIntraChroma_8x8 ends 4360c1bc742181ded4930842b46e9507372f0b1b963James Dong;//----------------------------------------------------------------------------------------------- 437