omxVCM4P10_FilterDeblockingChroma_VerEdge_I_s.s revision 78e52bfac041d71ce53b5b13c2abf78af742b09d
15208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// 25208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// Copyright (C) 2007-2008 ARM Limited 35208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// 45208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// Licensed under the Apache License, Version 2.0 (the "License"); 55208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// you may not use this file except in compliance with the License. 65208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// You may obtain a copy of the License at 75208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// 85208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// http://www.apache.org/licenses/LICENSE-2.0 95208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// 105208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// Unless required by applicable law or agreed to in writing, software 115208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// distributed under the License is distributed on an "AS IS" BASIS, 125208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// See the License for the specific language governing permissions and 145208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// limitations under the License. 155208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// 165208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// 175208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// 185208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI;// File Name: omxVCM4P10_FilterDeblockingChroma_VerEdge_I_s.s 193dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI;// OpenMAX DL: v1.0.2 200b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI;// Revision: 12290 2104f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI;// Date: Wednesday, April 9, 2008 22aafd269675fc45bac6340027c866ea6073643c3bJan Engelhardt;// 23cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt;// 243dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI;// 253dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI;// 260b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 270b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI INCLUDE omxtypes_s.h 280d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI INCLUDE armCOMM_s.h 290b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 300b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI M_VARIANTS CortexA8 310b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 3208b1616e068166e016b3ee7110db10ae5d853422Jan Engelhardt IF CortexA8 333dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI 345208806f2708f761e97e62550561e3164b541770Yasuyuki KOZAKAI IMPORT armVCM4P10_DeblockingChromabSGE4_unsafe 353dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI IMPORT armVCM4P10_DeblockingChromabSLT4_unsafe 365a26b5fd7bf11ca93d54fe7dc24b3423fb7d89b2Mike Frysinger 375a26b5fd7bf11ca93d54fe7dc24b3423fb7d89b2Mike FrysingerLOOP_COUNT EQU 0x40000000 385a26b5fd7bf11ca93d54fe7dc24b3423fb7d89b2Mike FrysingerMASK_3 EQU 0x03030303 395a26b5fd7bf11ca93d54fe7dc24b3423fb7d89b2Mike FrysingerMASK_4 EQU 0x04040404 400d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI 410d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI;// Function arguments 420b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 430b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIpSrcDst RN 0 440b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIsrcdstStep RN 1 450b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIpAlpha RN 2 460d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAIpBeta RN 3 470d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI 480b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIpThresholds RN 5 49dbb77543ad6afe29e9a1881b2d4fc212de621a55Jan EngelhardtpBS RN 4 500b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIbS3210 RN 6 510d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAIpSrcDst_P RN 10 520d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAIpSrcDst_Q RN 12 530d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI 540d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAIpTmp RN 10 553dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIpTmp2 RN 12 563dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIstep RN 14 573dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI 583dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI;// Loop 593dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI 603dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIXY RN 7 613dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI 623dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI;// Rows input 633dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdRow0 DN D7.U8 643dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdRow1 DN D8.U8 653dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdRow2 DN D5.U8 663dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdRow3 DN D10.U8 673dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdRow4 DN D6.U8 683dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdRow5 DN D9.U8 693dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdRow6 DN D4.U8 703dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdRow7 DN D11.U8 713dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI 723dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI 733dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAI;// Pixels 743dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdP_0 DN D4.U8 753dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdP_1 DN D5.U8 763dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdP_2 DN D6.U8 773dfa4488b032fc32aaf2470f48ac1fc3a534794fYasuyuki KOZAKAIdQ_0 DN D8.U8 780b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdQ_1 DN D9.U8 790b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdQ_2 DN D10.U8 800b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 810b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI;// Filtering Decision 820b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdAlpha DN D0.U8 830b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdBeta DN D2.U8 840b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 850b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdFilt DN D16.U8 860b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdAqflg DN D12.U8 870b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdApflg DN D17.U8 880b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 890b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdAp0q0 DN D13.U8 900b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdAp1p0 DN D12.U8 910b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdAq1q0 DN D18.U8 920b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdAp2p0 DN D19.U8 930b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdAq2q0 DN D17.U8 940b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 950b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIqBS3210 QN Q13.U16 960b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdBS3210 DN D26 970b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdMask_bs DN D27 980b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdFilt_bs DN D26.U16 990b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1000b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI;// bSLT4 1010b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdMask_0 DN D14.U8 1020b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdMask_1 DN D15.U8 1030b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdMask_4 DN D1.U16 1040b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1050b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIMask_4 RN 8 1060b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIMask_3 RN 9 1070b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1080b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdTemp DN D19.U8 1090b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1100b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI;// Result 1110b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdP_0t DN D13.U8 1120b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdQ_0t DN D31.U8 1130b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1140b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdP_0n DN D29.U8 1150b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAIdQ_0n DN D24.U8 1160b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1170b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1180b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI ;// Function header 1190b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI M_START omxVCM4P10_FilterDeblockingChroma_VerEdge_I, r12, d15 1200b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1210b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI ;//Arguments on the stack 1220b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI M_ARG ppThresholds, 4 1230b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI M_ARG ppBS, 4 1240b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1250b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI ;// d0-dAlpha_0 1260b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI ;// d2-dBeta_0 1270b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1280b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI ;load alpha1,beta1 somewhere to avoid more loads 1290b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI VLD1 {dAlpha[]}, [pAlpha]! 1300b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI SUB pSrcDst, pSrcDst, #4 1310b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI VLD1 {dBeta[]}, [pBeta]! 1320b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1330b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI M_LDR pBS, ppBS 1340b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI M_LDR pThresholds, ppThresholds 1350b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1360b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI LDR Mask_4, =MASK_4 1370b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI LDR Mask_3, =MASK_3 1380b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1390b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI ;dMask_0-14 1400b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI ;dMask_1-15 1410b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI ;dMask_4-19 1420b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1430b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI VMOV dMask_0, #0 1440b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI VMOV dMask_1, #1 1450b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI VMOV dMask_4, #4 1460b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1470b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI LDR XY, =LOOP_COUNT 1480b82e8e81e887843011c8771f70d2302901f7e5eYasuyuki KOZAKAI 1490d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI ;// p0-p3 - d4-d7 1500d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI ;// q0-q3 - d8-d11 1510d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI 1520d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI 1530d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAILoopY 1540d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI LDR bS3210, [pBS], #8 1550d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI ADD pTmp, pSrcDst, srcdstStep 1560d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI ADD step, srcdstStep, srcdstStep 1570d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI 1580d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI ;1 1590d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI VLD1 dRow0, [pSrcDst], step 1600d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI ;1 1610d502bcdbc97ed359e84f6a21dfa0049b3b60a6cYasuyuki KOZAKAI VLD1 dRow1, [pTmp], step 16204f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VLD1 dRow2, [pSrcDst], step 16304f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VLD1 dRow3, [pTmp], step 16404f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VLD1 dRow4, [pSrcDst], step 16504f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VLD1 dRow5, [pTmp], step 16604f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VLD1 dRow6, [pSrcDst], step 16704f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VLD1 dRow7, [pTmp], step 16804f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 16904f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 17004f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ;// dRow0 = [q3r0 q2r0 q1r0 q0r0 p0r0 p1r0 p2r0 p3r0] 17104f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ;// dRow1 = [q3r1 q2r1 q1r1 q0r1 p0r1 p1r1 p2r1 p3r1] 17204f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ;// dRow2 = [q3r2 q2r2 q1r2 q0r2 p0r2 p1r2 p2r2 p3r2] 17304f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ;// dRow3 = [q3r3 q2r3 q1r3 q0r3 p0r3 p1r3 p2r3 p3r3] 17404f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ;// dRow4 = [q3r4 q2r4 q1r4 q0r4 p0r4 p1r4 p2r4 p3r4] 17504f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ;// dRow5 = [q3r5 q2r5 q1r5 q0r5 p0r5 p1r5 p2r5 p3r5] 17604f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ;// dRow6 = [q3r6 q2r6 q1r6 q0r6 p0r6 p1r6 p2r6 p3r6] 17704f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ;// dRow7 = [q3r7 q2r7 q1r7 q0r7 p0r7 p1r7 p2r7 p3r7] 17804f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 17904f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ;// 8x8 Transpose 18004f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.8 dRow0, dRow1 18104f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.8 dRow2, dRow3 18204f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.8 dRow4, dRow5 18304f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.8 dRow6, dRow7 18404f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 18504f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.16 dRow0, dRow2 18604f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.16 dRow1, dRow3 18704f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.16 dRow4, dRow6 18804f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.16 dRow5, dRow7 18904f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 19004f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.32 dRow0, dRow4 19104f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.32 dRow2, dRow6 19204f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.32 dRow3, dRow7 19304f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VZIP.32 dRow1, dRow5 19404f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 19504f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 19604f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ;Realign the pointers 19704f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 19804f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI CMP bS3210, #0 19904f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VABD dAp2p0, dP_2, dP_0 20004f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VABD dAp0q0, dP_0, dQ_0 20104f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI BEQ NoFilterBS0 20204f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 20304f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VABD dAp1p0, dP_1, dP_0 20404f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VABD dAq1q0, dQ_1, dQ_0 205cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 206cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VMOV.U32 dBS3210[0], bS3210 207cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VCGT dFilt, dAlpha, dAp0q0 208cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VMAX dAp1p0, dAq1q0, dAp1p0 209cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VMOVL qBS3210, dBS3210.U8 210cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VABD dAq2q0, dQ_2, dQ_0 211cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VCGT dMask_bs.S16, dBS3210.S16, #0 212cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 213cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VCGT dAp1p0, dBeta, dAp1p0 214cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VCGT dAp2p0, dBeta, dAp2p0 215cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VAND dFilt, dMask_bs.U8 216cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 217cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt TST bS3210, Mask_3 218cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 219cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VCGT dAq2q0, dBeta, dAq2q0 220cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VAND dFilt, dFilt, dAp1p0 221cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 222cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VAND dAqflg, dFilt, dAq2q0 223cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VAND dApflg, dFilt, dAp2p0 224cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 225cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt ;// bS < 4 Filtering 226cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt BLNE armVCM4P10_DeblockingChromabSLT4_unsafe 227cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 228cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt TST bS3210, Mask_4 229cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 230cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt SUB pSrcDst, pSrcDst, srcdstStep, LSL #3 231cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VTST dFilt_bs, dFilt_bs, dMask_4 232cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 233cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt ;// bS == 4 Filtering 234cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt BLNE armVCM4P10_DeblockingChromabSGE4_unsafe 235cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 236cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VBIT dP_0n, dP_0t, dFilt_bs 237cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VBIT dQ_0n, dQ_0t, dFilt_bs 238cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 239cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt ;// Result Storage 240cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt ADD pSrcDst_P, pSrcDst, #3 241cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VBIF dP_0n, dP_0, dFilt 242cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 243cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt ADD pTmp2, pSrcDst_P, srcdstStep 244cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt ADD step, srcdstStep, srcdstStep 245cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt VBIF dQ_0n, dQ_0, dFilt 246cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt 247cd9e7aa106e80c44bd526af74b616701b0772d05Jan Engelhardt ADDS XY, XY, XY 24804f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 24904f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dP_0n[0]}, [pSrcDst_P], step 25004f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dP_0n[1]}, [pTmp2], step 25104f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dP_0n[2]}, [pSrcDst_P], step 25204f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dP_0n[3]}, [pTmp2], step 25304f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dP_0n[4]}, [pSrcDst_P], step 25404f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dP_0n[5]}, [pTmp2], step 25504f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dP_0n[6]}, [pSrcDst_P], step 25604f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dP_0n[7]}, [pTmp2], step 25704f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 25804f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ADD pSrcDst_Q, pSrcDst, #4 25904f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ADD pTmp, pSrcDst_Q, srcdstStep 2607a236f4cc685a420c1a782a5db614a93baf37ccfJan Engelhardt 26104f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dQ_0n[0]}, [pSrcDst_Q], step 26204f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dQ_0n[1]}, [pTmp], step 2639ee386a1b6d7704b259460152c959ab0e79e02aaMax Kellermann VST1 {dQ_0n[2]}, [pSrcDst_Q], step 26404f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dQ_0n[3]}, [pTmp], step 26504f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dQ_0n[4]}, [pSrcDst_Q], step 26604f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dQ_0n[5]}, [pTmp], step 26704f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dQ_0n[6]}, [pSrcDst_Q], step 26804f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VST1 {dQ_0n[7]}, [pTmp], step 26904f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 27004f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ADD pSrcDst, pSrcDst, #4 27104f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 27204f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI BNE LoopY 27304f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 27404f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI MOV r0, #OMX_Sts_NoErr 27504f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 27604f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI M_EXIT 27704f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 27804f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAINoFilterBS0 27904f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VLD1 {dAlpha[]}, [pAlpha] 28004f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ADD pSrcDst, pSrcDst, #4 28104f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI SUB pSrcDst, pSrcDst, srcdstStep, LSL #3 28204f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ADDS XY, XY, XY 28304f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI VLD1 {dBeta[]}, [pBeta] 28404f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ADD pThresholds, pThresholds, #4 28504f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI BNE LoopY 28604f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 28704f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI MOV r0, #OMX_Sts_NoErr 28804f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 28904f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI M_END 29004f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 29104f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI ENDIF 29204f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 29304f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 29404f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI END 29504f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 29604f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI 29704f8c54dc52e19096d31d94593bd1040716afe4dYasuyuki KOZAKAI