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