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