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: omxVCM4P2_IDCT8x8blk_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 270c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Function: 280c1bc742181ded4930842b46e9507372f0b1b963James Dong;// omxVCM4P2_IDCT8x8blk 290c1bc742181ded4930842b46e9507372f0b1b963James Dong;// 300c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Include headers 310c1bc742181ded4930842b46e9507372f0b1b963James Dong INCLUDE omxtypes_s.h 320c1bc742181ded4930842b46e9507372f0b1b963James Dong INCLUDE armCOMM_s.h 330c1bc742181ded4930842b46e9507372f0b1b963James Dong 340c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Define cpu variants 350c1bc742181ded4930842b46e9507372f0b1b963James Dong M_VARIANTS CortexA8 360c1bc742181ded4930842b46e9507372f0b1b963James Dong 370c1bc742181ded4930842b46e9507372f0b1b963James Dong INCLUDE armCOMM_IDCT_s.h 380c1bc742181ded4930842b46e9507372f0b1b963James Dong 390c1bc742181ded4930842b46e9507372f0b1b963James Dong IMPORT armCOMM_IDCTPreScale 400c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 410c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// Function prototype 420c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 430c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// OMXResult 440c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// omxVCM4P2_IDCT8x8blk(const OMX_S16* pSrc, 450c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// OMX_S16* pDst) 460c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// 470c1bc742181ded4930842b46e9507372f0b1b963James Dong 480c1bc742181ded4930842b46e9507372f0b1b963James Dong IF CortexA8 490c1bc742181ded4930842b46e9507372f0b1b963James Dong M_ALLOC4 ppDest, 4 500c1bc742181ded4930842b46e9507372f0b1b963James Dong M_ALLOC4 pStride, 4 510c1bc742181ded4930842b46e9507372f0b1b963James Dong M_ALLOC8 pBlk, 2*8*8 520c1bc742181ded4930842b46e9507372f0b1b963James Dong ENDIF 530c1bc742181ded4930842b46e9507372f0b1b963James Dong 540c1bc742181ded4930842b46e9507372f0b1b963James Dong 550c1bc742181ded4930842b46e9507372f0b1b963James Dong IF CortexA8 560c1bc742181ded4930842b46e9507372f0b1b963James Dong M_START omxVCM4P2_IDCT8x8blk, r11, d15 570c1bc742181ded4930842b46e9507372f0b1b963James Dong ENDIF 580c1bc742181ded4930842b46e9507372f0b1b963James Dong 590c1bc742181ded4930842b46e9507372f0b1b963James Dong IF CortexA8 600c1bc742181ded4930842b46e9507372f0b1b963James Dong 610c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Declare input registers 620c1bc742181ded4930842b46e9507372f0b1b963James DongpSrc RN 0 630c1bc742181ded4930842b46e9507372f0b1b963James DongpDst RN 1 640c1bc742181ded4930842b46e9507372f0b1b963James Dong 650c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Declare other intermediate registers 660c1bc742181ded4930842b46e9507372f0b1b963James DongResult RN 0 670c1bc742181ded4930842b46e9507372f0b1b963James Dong 680c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Prototype for macro M_IDCT 690c1bc742181ded4930842b46e9507372f0b1b963James Dong;// pSrc RN 0 ;// source data buffer 700c1bc742181ded4930842b46e9507372f0b1b963James Dong;// Stride RN 1 ;// destination stride in bytes 710c1bc742181ded4930842b46e9507372f0b1b963James Dong;// pDest RN 2 ;// destination data buffer 720c1bc742181ded4930842b46e9507372f0b1b963James Dong;// pScale RN 3 ;// pointer to scaling table 730c1bc742181ded4930842b46e9507372f0b1b963James Dong 740c1bc742181ded4930842b46e9507372f0b1b963James DongpSrc RN 0 750c1bc742181ded4930842b46e9507372f0b1b963James DongStride RN 1 760c1bc742181ded4930842b46e9507372f0b1b963James DongpDest RN 2 770c1bc742181ded4930842b46e9507372f0b1b963James DongpScale RN 3 780c1bc742181ded4930842b46e9507372f0b1b963James Dong 790c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV pDest, pDst 800c1bc742181ded4930842b46e9507372f0b1b963James Dong LDR pScale, =armCOMM_IDCTPreScale 810c1bc742181ded4930842b46e9507372f0b1b963James Dong M_IDCT s9, s16, 16 820c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV Result, #OMX_Sts_NoErr 830c1bc742181ded4930842b46e9507372f0b1b963James Dong M_END 840c1bc742181ded4930842b46e9507372f0b1b963James Dong ENDIF 850c1bc742181ded4930842b46e9507372f0b1b963James Dong ;// ARM1136JS :LOR: CortexA8 860c1bc742181ded4930842b46e9507372f0b1b963James Dong 870c1bc742181ded4930842b46e9507372f0b1b963James Dong END 88