1;//
2;//
3;// File Name:  omxVCM4P2_IDCT8x8blk_s.s
4;// OpenMAX DL: v1.0.2
5;// Revision:   12290
6;// Date:       Wednesday, April 9, 2008
7;//
8;// (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
9;//
10;//
11;//
12
13;// Function:
14;//     omxVCM4P2_IDCT8x8blk
15;//
16        ;// Include headers
17        INCLUDE omxtypes_s.h
18        INCLUDE armCOMM_s.h
19
20        ;// Define cpu variants
21        M_VARIANTS CortexA8
22
23        INCLUDE armCOMM_IDCT_s.h
24
25        IMPORT armCOMM_IDCTPreScale
26        ;//
27        ;// Function prototype
28        ;//
29        ;//     OMXResult
30        ;//     omxVCM4P2_IDCT8x8blk(const OMX_S16* pSrc,
31        ;//                                       OMX_S16* pDst)
32        ;//
33
34    IF CortexA8
35        M_ALLOC4  ppDest, 4
36        M_ALLOC4  pStride, 4
37        M_ALLOC8  pBlk, 2*8*8
38    ENDIF
39
40
41    IF CortexA8
42        M_START omxVCM4P2_IDCT8x8blk, r11, d15
43    ENDIF
44
45    IF CortexA8
46
47;// Declare input registers
48pSrc            RN 0
49pDst            RN 1
50
51;// Declare other intermediate registers
52Result          RN 0
53
54;// Prototype for macro M_IDCT
55;// pSrc            RN 0  ;// source data buffer
56;// Stride          RN 1  ;// destination stride in bytes
57;// pDest           RN 2  ;// destination data buffer
58;// pScale          RN 3  ;// pointer to scaling table
59
60pSrc    RN 0
61Stride  RN 1
62pDest   RN 2
63pScale  RN 3
64
65        MOV         pDest, pDst
66        LDR         pScale, =armCOMM_IDCTPreScale
67        M_IDCT      s9, s16, 16
68        MOV         Result, #OMX_Sts_NoErr
69        M_END
70    ENDIF
71        ;// ARM1136JS :LOR: CortexA8
72
73    END
74