10c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 278e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// Copyright (C) 2007-2008 ARM Limited 378e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// 478e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// Licensed under the Apache License, Version 2.0 (the "License"); 578e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// you may not use this file except in compliance with the License. 678e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// You may obtain a copy of the License at 778e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// 878e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// http://www.apache.org/licenses/LICENSE-2.0 978e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// 1078e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// Unless required by applicable law or agreed to in writing, software 1178e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// distributed under the License is distributed on an "AS IS" BASIS, 1278e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1378e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// See the License for the specific language governing permissions and 1478e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// limitations under the License. 1578e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// 1678e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar;// 170c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 180c1bc742181ded4930842b46e9507372f0b1b963James Dong;// File Name: omxVCCOMM_ExpandFrame_I_s.s 190c1bc742181ded4930842b46e9507372f0b1b963James Dong;// OpenMAX DL: v1.0.2 200c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Revision: 12290 210c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Date: Wednesday, April 9, 2008 220c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 230c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 240c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 250c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 260c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Description: 270c1bc742181ded4930842b46e9507372f0b1b963James Dong;// This function will Expand Frame boundary pixels into Plane 280c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 290c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 300c1bc742181ded4930842b46e9507372f0b1b963James Dong 310c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Include standard headers 320c1bc742181ded4930842b46e9507372f0b1b963James Dong 330c1bc742181ded4930842b46e9507372f0b1b963James Dong INCLUDE omxtypes_s.h 340c1bc742181ded4930842b46e9507372f0b1b963James Dong INCLUDE armCOMM_s.h 350c1bc742181ded4930842b46e9507372f0b1b963James Dong 360c1bc742181ded4930842b46e9507372f0b1b963James Dong M_VARIANTS CortexA8 370c1bc742181ded4930842b46e9507372f0b1b963James Dong 380c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Import symbols required from other files 390c1bc742181ded4930842b46e9507372f0b1b963James Dong;// (For example tables) 400c1bc742181ded4930842b46e9507372f0b1b963James Dong 410c1bc742181ded4930842b46e9507372f0b1b963James Dong 420c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Set debugging level 430c1bc742181ded4930842b46e9507372f0b1b963James DongDEBUG_ON SETL {FALSE} 440c1bc742181ded4930842b46e9507372f0b1b963James Dong 450c1bc742181ded4930842b46e9507372f0b1b963James Dong 460c1bc742181ded4930842b46e9507372f0b1b963James Dong 470c1bc742181ded4930842b46e9507372f0b1b963James Dong IF CortexA8 480c1bc742181ded4930842b46e9507372f0b1b963James Dong 490c1bc742181ded4930842b46e9507372f0b1b963James Dong M_START omxVCCOMM_ExpandFrame_I,r11 500c1bc742181ded4930842b46e9507372f0b1b963James Dong 510c1bc742181ded4930842b46e9507372f0b1b963James Dong;//Input registers 520c1bc742181ded4930842b46e9507372f0b1b963James Dong 530c1bc742181ded4930842b46e9507372f0b1b963James DongpSrcDstPlane RN 0 540c1bc742181ded4930842b46e9507372f0b1b963James DongiFrameWidth RN 1 550c1bc742181ded4930842b46e9507372f0b1b963James DongiFrameHeight RN 2 560c1bc742181ded4930842b46e9507372f0b1b963James DongiExpandPels RN 3 570c1bc742181ded4930842b46e9507372f0b1b963James DongiPlaneStep RN 4 580c1bc742181ded4930842b46e9507372f0b1b963James DongpTop RN 5 590c1bc742181ded4930842b46e9507372f0b1b963James DongpBot RN 6 600c1bc742181ded4930842b46e9507372f0b1b963James DongpDstTop RN 7 610c1bc742181ded4930842b46e9507372f0b1b963James DongpDstBot RN 8 620c1bc742181ded4930842b46e9507372f0b1b963James DongpLeft RN 5 630c1bc742181ded4930842b46e9507372f0b1b963James DongpRight RN 6 640c1bc742181ded4930842b46e9507372f0b1b963James DongpDstLeft RN 9 650c1bc742181ded4930842b46e9507372f0b1b963James DongpDstRight RN 10 660c1bc742181ded4930842b46e9507372f0b1b963James DongOffset RN 11 670c1bc742181ded4930842b46e9507372f0b1b963James DongTemp RN 14 680c1bc742181ded4930842b46e9507372f0b1b963James DongCounter RN 12 690c1bc742181ded4930842b46e9507372f0b1b963James DongTmp RN 7 700c1bc742181ded4930842b46e9507372f0b1b963James Dong;//Output registers 710c1bc742181ded4930842b46e9507372f0b1b963James Dong 720c1bc742181ded4930842b46e9507372f0b1b963James Dongresult RN 0 730c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Neon registers 740c1bc742181ded4930842b46e9507372f0b1b963James DongqData0 QN 0.U8 750c1bc742181ded4930842b46e9507372f0b1b963James DongqData1 QN 1.U8 760c1bc742181ded4930842b46e9507372f0b1b963James DongdData0 DN 0.U8 770c1bc742181ded4930842b46e9507372f0b1b963James DongdData1 DN 1.U8 780c1bc742181ded4930842b46e9507372f0b1b963James DongdData2 DN 2.U8 790c1bc742181ded4930842b46e9507372f0b1b963James DongdData3 DN 3.U8 800c1bc742181ded4930842b46e9507372f0b1b963James Dong 810c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Define stack arguments 820c1bc742181ded4930842b46e9507372f0b1b963James Dong M_ARG pPlaneStep, 4 830c1bc742181ded4930842b46e9507372f0b1b963James Dong 840c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Load argument from the stack 850c1bc742181ded4930842b46e9507372f0b1b963James Dong M_LDR iPlaneStep, pPlaneStep 860c1bc742181ded4930842b46e9507372f0b1b963James Dong 870c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pTop, pSrcDstPlane, #0 ;// Top row pointer of the frame 880c1bc742181ded4930842b46e9507372f0b1b963James Dong MUL Offset, iExpandPels, iPlaneStep ;// E*Step 890c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB Temp, iFrameHeight, #1 ;// H-1 900c1bc742181ded4930842b46e9507372f0b1b963James Dong MUL Temp, iPlaneStep, Temp ;// (H-1)*Step 910c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pBot, Temp, pSrcDstPlane ;// BPtr = TPtr + (H-1)*Step 920c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Temp, iFrameWidth ;// Outer loop counter 930c1bc742181ded4930842b46e9507372f0b1b963James Dong 940c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Check if pSrcDstPlane and iPlaneStep are 16 byte aligned 950c1bc742181ded4930842b46e9507372f0b1b963James Dong TST pSrcDstPlane, #0xf 960c1bc742181ded4930842b46e9507372f0b1b963James Dong TSTEQ iPlaneStep, #0xf 970c1bc742181ded4930842b46e9507372f0b1b963James Dong BNE Hor8Loop00 980c1bc742181ded4930842b46e9507372f0b1b963James Dong 990c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 1000c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Copy top and bottom region of the plane as follows 1010c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// top region = top row elements from the frame 1020c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// bottom region = last row elements from the frame 1030c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 1040c1bc742181ded4930842b46e9507372f0b1b963James Dong 1050c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Case for 16 byte alignment 1060c1bc742181ded4930842b46e9507372f0b1b963James DongHor16Loop00 1070c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pDstTop, pTop, Offset 1080c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 qData0, [pTop @128]! 1090c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Counter, iExpandPels ;// Inner loop counter 1100c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pDstBot, pBot, iPlaneStep 1110c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 qData1, [pBot @128]! 1120c1bc742181ded4930842b46e9507372f0b1b963James DongVer16Loop0 1130c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @128], iPlaneStep 1140c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @128], iPlaneStep 1150c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @128], iPlaneStep 1160c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @128], iPlaneStep 1170c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @128], iPlaneStep 1180c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @128], iPlaneStep 1190c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @128], iPlaneStep 1200c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @128], iPlaneStep 1210c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS Counter, Counter, #8 1220c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @128], iPlaneStep 1230c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @128], iPlaneStep 1240c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @128], iPlaneStep 1250c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @128], iPlaneStep 1260c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @128], iPlaneStep 1270c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @128], iPlaneStep 1280c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @128], iPlaneStep 1290c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @128], iPlaneStep 1300c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT Ver16Loop0 1310c1bc742181ded4930842b46e9507372f0b1b963James Dong 1320c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS Temp, Temp, #16 1330c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT Hor16Loop00 1340c1bc742181ded4930842b46e9507372f0b1b963James Dong B EndAlignedLoop 1350c1bc742181ded4930842b46e9507372f0b1b963James Dong 1360c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Case for 8 byte alignment 1370c1bc742181ded4930842b46e9507372f0b1b963James DongHor8Loop00 1380c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pDstTop, pTop, Offset 1390c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 qData0, [pTop @64]! 1400c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Counter, iExpandPels ;// Inner loop counter 1410c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pDstBot, pBot, iPlaneStep 1420c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 qData1, [pBot @64]! 1430c1bc742181ded4930842b46e9507372f0b1b963James DongVer8Loop0 1440c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @64], iPlaneStep 1450c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @64], iPlaneStep 1460c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @64], iPlaneStep 1470c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @64], iPlaneStep 1480c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @64], iPlaneStep 1490c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @64], iPlaneStep 1500c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @64], iPlaneStep 1510c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData0, [pDstTop @64], iPlaneStep 1520c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS Counter, Counter, #8 1530c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @64], iPlaneStep 1540c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @64], iPlaneStep 1550c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @64], iPlaneStep 1560c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @64], iPlaneStep 1570c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @64], iPlaneStep 1580c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @64], iPlaneStep 1590c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @64], iPlaneStep 1600c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 qData1, [pDstBot @64], iPlaneStep 1610c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT Ver8Loop0 1620c1bc742181ded4930842b46e9507372f0b1b963James Dong 1630c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS Temp, Temp, #16 1640c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT Hor8Loop00 1650c1bc742181ded4930842b46e9507372f0b1b963James Dong 1660c1bc742181ded4930842b46e9507372f0b1b963James DongEndAlignedLoop 1670c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD Temp, pSrcDstPlane, iFrameWidth 1680c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pDstRight, Temp, Offset 1690c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pRight, Temp, #1 1700c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pDstLeft, pSrcDstPlane, Offset 1710c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB pDstLeft, pDstLeft, iExpandPels 1720c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pLeft, pSrcDstPlane, #0 1730c1bc742181ded4930842b46e9507372f0b1b963James Dong 1740c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dData0 []}, [pLeft], iPlaneStep ;// Top-Left corner pixel from frame duplicated in dData0 1750c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB Offset, iPlaneStep, iExpandPels 1760c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dData1 []}, [pRight], iPlaneStep ;// Top-Right corner pixel from frame duplicated in dData1 1770c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Temp, iExpandPels 1780c1bc742181ded4930842b46e9507372f0b1b963James Dong 1790c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 1800c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Copy top-left and top-right region of the plane as follows 1810c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// top-left region = top-left corner pixel from the frame 1820c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// top-right region = top-right corner pixel from the frame 1830c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 1840c1bc742181ded4930842b46e9507372f0b1b963James DongHorLoop11 1850c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Counter, iExpandPels 1860c1bc742181ded4930842b46e9507372f0b1b963James DongVerLoop1 1870c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dData0, [pDstLeft], #8 1880c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS Counter, Counter, #8 1890c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dData1, [pDstRight], #8 1900c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT VerLoop1 1910c1bc742181ded4930842b46e9507372f0b1b963James Dong 1920c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS Temp, Temp, #1 1930c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pDstLeft, pDstLeft, Offset 1940c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pDstRight, pDstRight, Offset 1950c1bc742181ded4930842b46e9507372f0b1b963James Dong BPL HorLoop11 1960c1bc742181ded4930842b46e9507372f0b1b963James Dong 1970c1bc742181ded4930842b46e9507372f0b1b963James Dong SUB iFrameHeight, iFrameHeight, #1 1980c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 1990c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Copy left and right region of the plane as follows 2000c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Left region = copy the row with left start pixel from the frame 2010c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Right region = copy the row with right end pixel from the frame 2020c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 2030c1bc742181ded4930842b46e9507372f0b1b963James DongHorLoop22 2040c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dData0 []}, [pLeft], iPlaneStep 2050c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Counter, iExpandPels 2060c1bc742181ded4930842b46e9507372f0b1b963James Dong VLD1 {dData1 []}, [pRight], iPlaneStep 2070c1bc742181ded4930842b46e9507372f0b1b963James DongVerLoop2 2080c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dData0, [pDstLeft], #8 2090c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS Counter, Counter, #8 2100c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dData1, [pDstRight], #8 2110c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT VerLoop2 2120c1bc742181ded4930842b46e9507372f0b1b963James Dong 2130c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS iFrameHeight, iFrameHeight, #1 2140c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pDstLeft, pDstLeft, Offset 2150c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pDstRight, pDstRight, Offset 2160c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT HorLoop22 2170c1bc742181ded4930842b46e9507372f0b1b963James Dong 2180c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Temp, iExpandPels 2190c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 2200c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Copy bottom-left and bottom-right region of the plane as follows 2210c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// bottom-left region = bottom-left corner pixel from the frame 2220c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// bottom-right region = bottom-right corner pixel from the frame 2230c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 2240c1bc742181ded4930842b46e9507372f0b1b963James DongHorLoop33 2250c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Counter, iExpandPels 2260c1bc742181ded4930842b46e9507372f0b1b963James DongVerLoop3 2270c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dData0, [pDstLeft], #8 2280c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS Counter, Counter, #8 2290c1bc742181ded4930842b46e9507372f0b1b963James Dong VST1 dData1, [pDstRight], #8 2300c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT VerLoop3 2310c1bc742181ded4930842b46e9507372f0b1b963James Dong 2320c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS Temp, Temp, #1 2330c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pDstLeft, pDstLeft, Offset 2340c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pDstRight, pDstRight, Offset 2350c1bc742181ded4930842b46e9507372f0b1b963James Dong BGT HorLoop33 2360c1bc742181ded4930842b46e9507372f0b1b963James DongEnd 2370c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV r0, #OMX_Sts_NoErr 2380c1bc742181ded4930842b46e9507372f0b1b963James Dong 2390c1bc742181ded4930842b46e9507372f0b1b963James Dong M_END 2400c1bc742181ded4930842b46e9507372f0b1b963James Dong 2410c1bc742181ded4930842b46e9507372f0b1b963James Dong ENDIF 2420c1bc742181ded4930842b46e9507372f0b1b963James Dong 2430c1bc742181ded4930842b46e9507372f0b1b963James Dong 2440c1bc742181ded4930842b46e9507372f0b1b963James Dong 2450c1bc742181ded4930842b46e9507372f0b1b963James Dong 2460c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Guarding implementation by the processor name 2470c1bc742181ded4930842b46e9507372f0b1b963James Dong 2480c1bc742181ded4930842b46e9507372f0b1b963James Dong 2490c1bc742181ded4930842b46e9507372f0b1b963James Dong 25078e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar END 251