l_deposit_l.cpp revision 4f1efc098cb5791c3e9f483f2af84aef70d2d0a0
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* ------------------------------------------------------------------ 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 1998-2009 PacketVideo 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * express or implied. 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and limitations under the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * ------------------------------------------------------------------- 171a44d5dcabc18cd5ef111f732ccff91683a1a093Neal Nguyen */ 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**************************************************************************************** 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectPortions of this file are derived from the following 3GPP standard: 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3GPP TS 26.073 22846318a3250fa95f47a9decfbffb05a31dbd0006Jeff Sharkey ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec 23846318a3250fa95f47a9decfbffb05a31dbd0006Jeff Sharkey Available from http://www.3gpp.org 24846318a3250fa95f47a9decfbffb05a31dbd0006Jeff Sharkey 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project(C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC) 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectPermission to distribute, modify and use this file under the standard license 2758a345936d7e2b66bdeefb492e4f777754792d7eBen Dodsonterms listed above has been obtained from the copyright holder. 2858a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson****************************************************************************************/ 2958a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson/* 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Pathname: ./gsm-amr/c/src/l_deposit_l.c 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project------------------------------------------------------------------------------ 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project REVISION HISTORY 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Description: Created separate file for the L_deposit_l function. Sync'ed up 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project with the current template and fixed tabs. 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Description: Removed conditional code that updates WMOPS counter 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Who: Date: 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Description: 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project------------------------------------------------------------------------------ 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project INPUT AND OUTPUT DEFINITIONS 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Inputs: 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project var1 = 16 bit short signed integer (Word16) whose value falls in 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project the range : 0xffff 8000 <= var1 <= 0x0000 7fff. 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Local Stores/Buffers/Pointers Needed: 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project None 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Global Stores/Buffers/Pointers Needed: 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project None 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Outputs: 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project var1 = deposit of var1 into LSWord of 32 bit value (Word32) 5858a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson 5958a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson Pointers and Buffers Modified: 6058a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson None 6158a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson 6258a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson Local Stores Modified: 6358a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson None 6458a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson 6558a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson Global Stores Modified: 6658a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson None 6758a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson 6858a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson------------------------------------------------------------------------------ 6958a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson FUNCTION DESCRIPTION 7058a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson 7158a345936d7e2b66bdeefb492e4f777754792d7eBen Dodson This function deposits the 16 bit var1 into the 16 LS bits of the 32 bit 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project output. The 16 MS bits of the output are sign extended. 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project------------------------------------------------------------------------------ 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project REQUIREMENTS 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project None 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project------------------------------------------------------------------------------ 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project REFERENCES 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project [1] basicop2.c, ETS Version 2.0.0, February 8, 1999 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project------------------------------------------------------------------------------ 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project PSEUDO-CODE 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectWord32 L_deposit_l (Word16 var1) 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Word32 L_var_out; 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project L_var_out = (Word32) var1; 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#if (WMOPS) 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project multiCounter[currCounter].L_deposit_l++; 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return (L_var_out); 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project------------------------------------------------------------------------------ 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project RESOURCES USED 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project When the code is written for a specific target processor the 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project the resources used should be documented below. 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project STACK USAGE: [stack count for this module] + [variable to represent 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project stack usage for each subroutine called] 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where: [stack usage variable] = stack usage for [subroutine 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project name] (see [filename].ext) 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project DATA MEMORY USED: x words 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project PROGRAM MEMORY USED: x words 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project CLOCK CYCLES: [cycle count equation for this module] + [variable 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project used to represent cycle count for each subroutine 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project called] 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project where: [cycle count variable] = cycle count for [subroutine 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project name] (see [filename].ext) 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project------------------------------------------------------------------------------ 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project*/ 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*---------------------------------------------------------------------------- 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; INCLUDES 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project----------------------------------------------------------------------------*/ 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "basic_op.h" 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*---------------------------------------------------------------------------- 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; MACROS 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; Define module specific macros here 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project----------------------------------------------------------------------------*/ 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*---------------------------------------------------------------------------- 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; DEFINES 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; Include all pre-processor statements here. Include conditional 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; compile variables also. 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project----------------------------------------------------------------------------*/ 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*---------------------------------------------------------------------------- 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; LOCAL FUNCTION DEFINITIONS 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; Function Prototype declaration 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project----------------------------------------------------------------------------*/ 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*---------------------------------------------------------------------------- 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; LOCAL STORE/BUFFER/POINTER DEFINITIONS 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; Variable declaration - defined here and used outside this module 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project----------------------------------------------------------------------------*/ 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*---------------------------------------------------------------------------- 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; EXTERNAL FUNCTION REFERENCES 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; Declare functions defined elsewhere and referenced in this module 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project----------------------------------------------------------------------------*/ 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*---------------------------------------------------------------------------- 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; Declare variables used in this module but defined elsewhere 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project----------------------------------------------------------------------------*/ 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*---------------------------------------------------------------------------- 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project; FUNCTION CODE 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project----------------------------------------------------------------------------*/ 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectWord32 L_deposit_l(Word16 var1) 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /*---------------------------------------------------------------------------- 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ; Define all local variables 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ----------------------------------------------------------------------------*/ 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /*---------------------------------------------------------------------------- 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ; Function body here 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ----------------------------------------------------------------------------*/ 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /*---------------------------------------------------------------------------- 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ; Return nothing or data or data pointer 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ----------------------------------------------------------------------------*/ 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((Word32) var1); 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project