omxVCM4P2_IDCT8x8blk_s.s revision 78e52bfac041d71ce53b5b13c2abf78af742b09d
1ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// 2ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// Copyright (C) 2007-2008 ARM Limited 3ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// 4ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// Licensed under the Apache License, Version 2.0 (the "License"); 5ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// you may not use this file except in compliance with the License. 6ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// You may obtain a copy of the License at 7ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// 8ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// http://www.apache.org/licenses/LICENSE-2.0 9ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// 10ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// Unless required by applicable law or agreed to in writing, software 11ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// distributed under the License is distributed on an "AS IS" BASIS, 12ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// See the License for the specific language governing permissions and 14ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// limitations under the License. 15ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// 16ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// 17ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// 18ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// File Name: omxVCM4P2_IDCT8x8blk_s.s 19ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// OpenMAX DL: v1.0.2 20ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// Revision: 12290 21ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// Date: Wednesday, April 9, 2008 2276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org;// 2376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org;// 24ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// 25ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// 26ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 27ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// Function: 28ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// omxVCM4P2_IDCT8x8blk 29ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// 30ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ;// Include headers 31ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org INCLUDE omxtypes_s.h 32ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org INCLUDE armCOMM_s.h 33ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 34ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ;// Define cpu variants 35ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org M_VARIANTS CortexA8 36ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 37ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org INCLUDE armCOMM_IDCT_s.h 38ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 39ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org IMPORT armCOMM_IDCTPreScale 40ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ;// 41ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ;// Function prototype 42ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ;// 43ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ;// OMXResult 44ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ;// omxVCM4P2_IDCT8x8blk(const OMX_S16* pSrc, 45ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ;// OMX_S16* pDst) 46ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ;// 47ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 48ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org IF CortexA8 49ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org M_ALLOC4 ppDest, 4 50ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org M_ALLOC4 pStride, 4 51ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org M_ALLOC8 pBlk, 2*8*8 52ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ENDIF 53ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 54ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 55ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org IF CortexA8 56ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org M_START omxVCM4P2_IDCT8x8blk, r11, d15 57ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ENDIF 58ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 59ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org IF CortexA8 60ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 61ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// Declare input registers 62ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.orgpSrc RN 0 63ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.orgpDst RN 1 64ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 65ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// Declare other intermediate registers 66ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.orgResult RN 0 67ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 68ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// Prototype for macro M_IDCT 69ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// pSrc RN 0 ;// source data buffer 70ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// Stride RN 1 ;// destination stride in bytes 71ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// pDest RN 2 ;// destination data buffer 72ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org;// pScale RN 3 ;// pointer to scaling table 73ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 74ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.orgpSrc RN 0 75ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.orgStride RN 1 76ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.orgpDest RN 2 77ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.orgpScale RN 3 78ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 79ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org MOV pDest, pDst 80ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org LDR pScale, =armCOMM_IDCTPreScale 81ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org M_IDCT s9, s16, 16 82ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org MOV Result, #OMX_Sts_NoErr 83ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org M_END 84ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ENDIF 85ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org ;// ARM1136JS :LOR: CortexA8 86ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org 87ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org END 88ecee051929d6ced19cf324688774acccc9ad4a0ajohannkoenig@chromium.org