1/* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 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 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18/**************************************************************************************** 19Portions of this file are derived from the following 3GPP standard: 20 21 3GPP TS 26.073 22 ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec 23 Available from http://www.3gpp.org 24 25(C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC) 26Permission to distribute, modify and use this file under the standard license 27terms listed above has been obtained from the copyright holder. 28****************************************************************************************/ 29/* 30 Pathname: ./gsm-amr/c/src/l_deposit_l.c 31 32------------------------------------------------------------------------------ 33 REVISION HISTORY 34 35 Description: Created separate file for the L_deposit_l function. Sync'ed up 36 with the current template and fixed tabs. 37 38 Description: Removed conditional code that updates WMOPS counter 39 40 Who: Date: 41 Description: 42 43------------------------------------------------------------------------------ 44 INPUT AND OUTPUT DEFINITIONS 45 46 Inputs: 47 var1 = 16 bit short signed integer (Word16) whose value falls in 48 the range : 0xffff 8000 <= var1 <= 0x0000 7fff. 49 50 Local Stores/Buffers/Pointers Needed: 51 None 52 53 Global Stores/Buffers/Pointers Needed: 54 None 55 56 Outputs: 57 var1 = deposit of var1 into LSWord of 32 bit value (Word32) 58 59 Pointers and Buffers Modified: 60 None 61 62 Local Stores Modified: 63 None 64 65 Global Stores Modified: 66 None 67 68------------------------------------------------------------------------------ 69 FUNCTION DESCRIPTION 70 71 This function deposits the 16 bit var1 into the 16 LS bits of the 32 bit 72 output. The 16 MS bits of the output are sign extended. 73 74------------------------------------------------------------------------------ 75 REQUIREMENTS 76 77 None 78 79------------------------------------------------------------------------------ 80 REFERENCES 81 82 [1] basicop2.c, ETS Version 2.0.0, February 8, 1999 83 84------------------------------------------------------------------------------ 85 PSEUDO-CODE 86 87Word32 L_deposit_l (Word16 var1) 88{ 89 Word32 L_var_out; 90 91 L_var_out = (Word32) var1; 92#if (WMOPS) 93 multiCounter[currCounter].L_deposit_l++; 94#endif 95 return (L_var_out); 96} 97 98------------------------------------------------------------------------------ 99 RESOURCES USED 100 When the code is written for a specific target processor the 101 the resources used should be documented below. 102 103 STACK USAGE: [stack count for this module] + [variable to represent 104 stack usage for each subroutine called] 105 106 where: [stack usage variable] = stack usage for [subroutine 107 name] (see [filename].ext) 108 109 DATA MEMORY USED: x words 110 111 PROGRAM MEMORY USED: x words 112 113 CLOCK CYCLES: [cycle count equation for this module] + [variable 114 used to represent cycle count for each subroutine 115 called] 116 117 where: [cycle count variable] = cycle count for [subroutine 118 name] (see [filename].ext) 119 120------------------------------------------------------------------------------ 121*/ 122 123 124/*---------------------------------------------------------------------------- 125; INCLUDES 126----------------------------------------------------------------------------*/ 127#include "basic_op.h" 128 129/*---------------------------------------------------------------------------- 130; MACROS 131; Define module specific macros here 132----------------------------------------------------------------------------*/ 133 134/*---------------------------------------------------------------------------- 135; DEFINES 136; Include all pre-processor statements here. Include conditional 137; compile variables also. 138----------------------------------------------------------------------------*/ 139 140/*---------------------------------------------------------------------------- 141; LOCAL FUNCTION DEFINITIONS 142; Function Prototype declaration 143----------------------------------------------------------------------------*/ 144 145/*---------------------------------------------------------------------------- 146; LOCAL STORE/BUFFER/POINTER DEFINITIONS 147; Variable declaration - defined here and used outside this module 148----------------------------------------------------------------------------*/ 149 150/*---------------------------------------------------------------------------- 151; EXTERNAL FUNCTION REFERENCES 152; Declare functions defined elsewhere and referenced in this module 153----------------------------------------------------------------------------*/ 154 155/*---------------------------------------------------------------------------- 156; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES 157; Declare variables used in this module but defined elsewhere 158----------------------------------------------------------------------------*/ 159 160/*---------------------------------------------------------------------------- 161; FUNCTION CODE 162----------------------------------------------------------------------------*/ 163Word32 L_deposit_l(Word16 var1) 164{ 165 /*---------------------------------------------------------------------------- 166 ; Define all local variables 167 ----------------------------------------------------------------------------*/ 168 169 /*---------------------------------------------------------------------------- 170 ; Function body here 171 ----------------------------------------------------------------------------*/ 172 173 /*---------------------------------------------------------------------------- 174 ; Return nothing or data or data pointer 175 ----------------------------------------------------------------------------*/ 176 return ((Word32) var1); 177} 178