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