overflow_tbl.cpp revision 4f1efc098cb5791c3e9f483f2af84aef70d2d0a0
1346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell/* ------------------------------------------------------------------
2346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * Copyright (C) 1998-2009 PacketVideo
3346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell *
4346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * Licensed under the Apache License, Version 2.0 (the "License");
5346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * you may not use this file except in compliance with the License.
6346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * You may obtain a copy of the License at
7346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell *
8346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell *      http://www.apache.org/licenses/LICENSE-2.0
9346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell *
10346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * Unless required by applicable law or agreed to in writing, software
11346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * distributed under the License is distributed on an "AS IS" BASIS,
12346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * express or implied.
14346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * See the License for the specific language governing permissions
15346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * and limitations under the License.
16346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell * -------------------------------------------------------------------
17346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell */
18346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell/****************************************************************************************
19346e2f2390f0d743fd10e7d01a015df6b32292cdAdam PowellPortions of this file are derived from the following 3GPP standard:
20b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
21009b4ef9d97e1cc237477e3284fc305bb1438cc9Adam Powell    3GPP TS 26.073
22c56ba65d20be8742ff717907a3a2cd81dd0e5f3cAdam Powell    ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec
23346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell    Available from http://www.3gpp.org
24346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell
25346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell(C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC)
26346e2f2390f0d743fd10e7d01a015df6b32292cdAdam PowellPermission to distribute, modify and use this file under the standard license
27346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powellterms listed above has been obtained from the copyright holder.
28346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell****************************************************************************************/
29346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell/*
30346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell
31346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell Filename: /audio/gsm_amr/c/src/overflow_tbl.c
32b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
33009b4ef9d97e1cc237477e3284fc305bb1438cc9Adam Powell------------------------------------------------------------------------------
34009b4ef9d97e1cc237477e3284fc305bb1438cc9Adam Powell REVISION HISTORY
35b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
36009b4ef9d97e1cc237477e3284fc305bb1438cc9Adam Powell Description: Added #ifdef __cplusplus and removed "extern" from table
37346e2f2390f0d743fd10e7d01a015df6b32292cdAdam Powell              definition.
38b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
39b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell Description: Put "extern" back.
40b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
41b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell Who:                       Date:
42b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell Description:
43b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
44b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell------------------------------------------------------------------------------
45b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell MODULE DESCRIPTION
46b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
47b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell This file contains the declaration for overflow_tbl[] used by the l_shl()
48b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell and l_shr() functions.
49b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
50b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell------------------------------------------------------------------------------
51b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell*/
52b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
53b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell/*----------------------------------------------------------------------------
54b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell; INCLUDES
556580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell----------------------------------------------------------------------------*/
566580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell#include "typedef.h"
57b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
58b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell/*--------------------------------------------------------------------------*/
59009b4ef9d97e1cc237477e3284fc305bb1438cc9Adam Powell#ifdef __cplusplus
60009b4ef9d97e1cc237477e3284fc305bb1438cc9Adam Powellextern "C"
61b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell{
62b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell#endif
63b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
64b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    /*----------------------------------------------------------------------------
65b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ; MACROS
66b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ; [Define module specific macros here]
67b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ----------------------------------------------------------------------------*/
68b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
69b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    /*----------------------------------------------------------------------------
7048e3efd2e7bc8057212d3936a239838ecf6e40a9Yigit Boyar    ; DEFINES
71b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ; [Include all pre-processor statements here. Include conditional
72b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ; compile variables also.]
73b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ----------------------------------------------------------------------------*/
74b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
75b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    /*----------------------------------------------------------------------------
76b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ; LOCAL FUNCTION DEFINITIONS
77b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ; [List function prototypes here]
78b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ----------------------------------------------------------------------------*/
79b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
80b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    /*----------------------------------------------------------------------------
81b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ; LOCAL VARIABLE DEFINITIONS
82b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ; [Variable declaration - defined here and used outside this module]
83b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    ----------------------------------------------------------------------------*/
84b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    extern const Word32 overflow_tbl [32]   = {0x7fffffffL, 0x3fffffffL,
85b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x1fffffffL, 0x0fffffffL,
86b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x07ffffffL, 0x03ffffffL,
87b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x01ffffffL, 0x00ffffffL,
88b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x007fffffL, 0x003fffffL,
89b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x001fffffL, 0x000fffffL,
90009b4ef9d97e1cc237477e3284fc305bb1438cc9Adam Powell        0x0007ffffL, 0x0003ffffL,
9148e3efd2e7bc8057212d3936a239838ecf6e40a9Yigit Boyar        0x0001ffffL, 0x0000ffffL,
92b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x00007fffL, 0x00003fffL,
93b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x00001fffL, 0x00000fffL,
94b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x000007ffL, 0x000003ffL,
95b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x000001ffL, 0x000000ffL,
96b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x0000007fL, 0x0000003fL,
97b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x0000001fL, 0x0000000fL,
98b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x00000007L, 0x00000003L,
99b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell        0x00000001L, 0x00000000L
100b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    };
101b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
102b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    /*--------------------------------------------------------------------------*/
103b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell#ifdef __cplusplus
104b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell}
105b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell#endif
106b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
107b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell/*
108b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell------------------------------------------------------------------------------
109b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell FUNCTION NAME:
110b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell------------------------------------------------------------------------------
111b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell INPUT AND OUTPUT DEFINITIONS
112b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
113b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell Inputs:
114b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    None
115b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
116b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell Outputs:
117b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    None
118b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
119b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell Returns:
120b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    None
121b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
122b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell Global Variables Used:
123b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    None
124b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
125b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell Local Variables Needed:
126b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell    None
127b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
128b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell------------------------------------------------------------------------------
129b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell FUNCTION DESCRIPTION
130b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
131b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell None
132b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
133b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell------------------------------------------------------------------------------
134b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell REQUIREMENTS
135b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
136b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell None
137b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
1386580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell------------------------------------------------------------------------------
1396580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell REFERENCES
1406580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell
1416580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell [1] l_shl() function in basic_op2.c,  UMTS GSM AMR speech codec, R99 -
1426580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell Version 3.2.0, March 2, 2001
1436580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell
1446580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell------------------------------------------------------------------------------
1456580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell PSEUDO-CODE
1466580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell
1476580cf4b7e74a2a017ed95b0dc50155b9995edebAdam Powell
148b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell------------------------------------------------------------------------------
149b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell RESOURCES USED [optional]
150b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
151b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell When the code is written for a specific target processor the
152b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell the resources used should be documented below.
153b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
154b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell HEAP MEMORY USED: x bytes
155b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
156b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell STACK MEMORY USED: x bytes
157b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
15848e3efd2e7bc8057212d3936a239838ecf6e40a9Yigit Boyar CLOCK CYCLES: (cycle count equation for this function) + (variable
159b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell                used to represent cycle count for each subroutine
160b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell                called)
161b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell     where: (cycle count variable) = cycle count for [subroutine
162b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell                                     name]
163b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
164b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell------------------------------------------------------------------------------
165b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell CAUTION [optional]
166b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell [State any special notes, constraints or cautions for users of this function]
167b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
168b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell------------------------------------------------------------------------------
169b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell*/
170b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
171b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell/*----------------------------------------------------------------------------
172b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell; FUNCTION CODE
173b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell----------------------------------------------------------------------------*/
174b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell
175b9e34c7d443082d5ee2b90a0e6788523d8df0df1Adam Powell