X86-64.h

00001 /*
00002 
00003     x86-64 specific optimized assembler dsp routines
00004     Copyright (C) 2003-2004 Jussi Laako
00005 
00006     This program is free software; you can redistribute it and/or modify
00007     it under the terms of the GNU Lesser General Public License version 2.1,
00008     as published by the Free Software Foundation.
00009 
00010 
00011     This program is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014     GNU Lesser General Public License for more details.
00015 
00016     You should have received a copy of the GNU Lesser General Public
00017     License along with this program; if not, write to the Free Software
00018     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 
00020 */
00021 
00022 
00023 #if !defined(_SPANDSP__X86_64_H)  &&  defined(__x86_64__)
00024 
00025 #define _SPANDSP__X86_64_H
00026 
00027 #pragma pack(1)
00028 
00029 typedef struct _stm64
00030 {
00031     float f[2];
00032 } stm64, *stpm64;
00033 
00034 typedef struct _stm128
00035 {
00036     union
00037     {
00038         float f[4];
00039         double d[2];
00040     };
00041 } stm128, *stpm128;
00042 
00043 #pragma pack()
00044 
00045 
00046 #if defined(__cplusplus)
00047 extern "C"
00048 {
00049 #endif
00050 
00051 void dsp_x86_64_minmaxf(float *, float *, const float *, long);
00052 void dsp_x86_64_minmax(double *, double *, const double *, long);
00053 float dsp_x86_64_crosscorrf(const float *, const float *, long);
00054 double dsp_x86_64_crosscorr(const double *, const double *, long);
00055 /* not in-place capable */
00056 void dsp_x86_64_firf(float *, const float *, long, const float *, long);
00057 void dsp_x86_64_fir(double *, const double *, long, const double *, long);
00058 void dsp_x86_64_iirf(float *, long, const float *, float *, float *);
00059 void dsp_x86_64_iir(double *, long, const double *, double *, double *);
00060 void dsp_x86_64_iirf_nip(float *, const float *, long, const float *, float *, float *);
00061 void dsp_x86_64_iir_nip(double *, const double *, long, const double *, double *, double *);
00062 
00063 #if defined(__cplusplus)
00064 }
00065 #endif
00066 
00067 #endif

Generated on Tue Oct 7 20:25:50 2008 for spandsp by  doxygen 1.5.6