;* ======================================================================== *; ;* TEXAS INSTRUMENTS, INC. *; ;* *; ;* DSPLIB DSP Signal Processing Library *; ;* *; ;* Release: Version 1.02 *; ;* CVS Revision: 1.4 Fri Mar 29 19:40:03 2002 (UTC) *; ;* Snapshot date: 18-Apr-2002 *; ;* *; ;* This library contains proprietary intellectual property of Texas *; ;* Instruments, Inc. The library and its source code are protected by *; ;* various copyrights, and portions may also be protected by patents or *; ;* other legal protections. *; ;* *; ;* This software is licensed for use with Texas Instruments TMS320 *; ;* family DSPs. This license was provided to you prior to installing *; ;* the software. You may review this license by consulting the file *; ;* TI_license.PDF which accompanies the files in this library. *; ;* ------------------------------------------------------------------------ *; ;* Copyright (C) 2002 Texas Instruments, Incorporated. *; ;* All Rights Reserved. *; ;* ======================================================================== *; * ========================================================================= * * * * NAME * * DSP_mul32 * * * * REVISION DATE * * 29-Mar-2002 * * * * USAGE * * This routine is C-callable and can be called as: * * * * void DSP_mul32 * * ( * * const int *x, * * const int *y, * * int *restrict r, * * int nx * * ); * * * * x[nx] = pointer to input vector 1 of size nx * * y[nx] = pointer to input vector 2 of size nx * * r[nx] = pointer to output vector of size nx * * nx = number of elements in input and output vectors * * * * * * DESCRIPTION * * This routine performs a 32-bit by 32-bit multiply, returning the * * upper 32 bits of the 64-bit result. This is equivalent to a * * Q31 x Q31 multiply, yielding a Q30 result. * * * * NOTES * * The 32 x 32 multiply is constructed from 16 x 16 multiplies. * * For efficiency reasons, the 'lo * lo' term of the 32 x 32 * * multiply is omitted, as it has minimal impact on the final * * result. This is due to the fact that the 'lo * lo' term * * primarily affects the lower 32 bits of the result, and these * * are not returned. Due to this omission, the results of this * * function differ from the exact results of a 32 x 32 multiply by * * at most 1. * * * * ASSUMPTIONS * * "nx" is at least 8 and is a multiple of 2. * * Arrays x[], y[] and r[] must be word aligned. * * Input and output arrays are independent of each other. * * * * NOTES * * This code is ENDIAN NEUTRAL. * * This function is interrupt tolerant, but not interruptible. * * * * CYCLES * * cycles = 1.5*nx + 24. * * * * CODESIZE * * 224 bytes * * ------------------------------------------------------------------------- * * Copyright (c) 2002 Texas Instruments, Incorporated. * * All Rights Reserved. * * ========================================================================= * .global _DSP_mul32 * ========================================================================= * * End of file: dsp_mul32.h62 * * ------------------------------------------------------------------------- * * Copyright (c) 2002 Texas Instruments, Incorporated. * * All Rights Reserved. * * ========================================================================= *