Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

mpopt.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2003 Bob Deblier
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017  *
00018  */
00019 
00026 #ifndef _MPOPT_H
00027 #define _MPOPT_H
00028 
00029 #if WIN32
00030 # if __MWERKS__ && __INTEL__
00031 # elif defined(_MSC_VER) && defined(_M_IX86)
00032 #  define ASM_MPZERO
00033 #  define ASM_MPFILL
00034 #  define ASM_MPEVEN
00035 #  define ASM_MPODD
00036 #  define ASM_MPADDW
00037 #  define ASM_MPSUBW
00038 #  define ASM_MPADD
00039 #  define ASM_MPSUB
00040 #  define ASM_MPMULTWO
00041 #  define ASM_MPDIVTWO
00042 #  define ASM_MPSETMUL
00043 #  define ASM_MPADDMUL
00044 #  define ASM_MPADDSQRTRC
00045 # endif
00046 #endif
00047 
00048 #if defined(__DECC)
00049 # if defined(OPTIMIZE_ALPHA)
00050 #  define ASM_MPADD
00051 #  define ASM_MPSUB
00052 #  define ASM_MPSETMUL
00053 #  define ASM_MPADDMUL
00054 #  define ASM_MPADDSQRTRC
00055 # endif
00056 #endif
00057 
00058 #if defined(__GNUC__)
00059 # if defined(OPTIMIZE_ALPHA)
00060 #  define ASM_MPADD
00061 #  define ASM_MPSUB
00062 #  define ASM_MPSETMUL
00063 #  define ASM_MPADDMUL
00064 #  define ASM_MPADDSQRTRC
00065 # elif defined(OPTIMIZE_ARM)
00066 #  define ASM_MPSETMUL
00067 #  define ASM_MPADDMUL
00068 #  define ASM_MPADDSQRTRC
00069 # elif defined(OPTIMIZE_I386) || defined(OPTIMIZE_I486) || defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686)
00070 #  define ASM_MPZERO
00071 #  define ASM_MPFILL
00072 #  define ASM_MPEVEN
00073 #  define ASM_MPODD
00074 #  define ASM_MPADDW
00075 #  define ASM_MPSUBW
00076 #  define ASM_MPADD
00077 #  define ASM_MPSUB
00078 #  define ASM_MPMULTWO
00079 #  define ASM_MPDIVTWO
00080 #  define ASM_MPSETMUL
00081 #  define ASM_MPADDMUL
00082 #  define ASM_MPADDSQRTRC
00083 #  define ASM_MPPNDIV
00084 # elif defined(OPTIMIZE_IA64)
00085 #  define ASM_MPZERO
00086 #  define ASM_MPCOPY
00087 #  define ASM_MPADD
00088 #  define ASM_MPSUB
00089 #  define ASM_MPMULTWO
00090 #  define ASM_MPSETMUL
00091 #  define ASM_MPADDMUL
00092 # elif defined(OPTIMIZE_M68K)
00093 #  define ASM_MPADD
00094 #  define ASM_MPSUB
00095 #  define ASM_MPSETMUL
00096 #  define ASM_MPADDMUL
00097 #  define ASM_MPADDSQRTRC
00098 # elif defined(OPTIMIZE_POWERPC) || defined(OPTIMIZE_POWERPC64)
00099 #  define ASM_MPSETMUL
00100 #  define ASM_MPADDW
00101 #  define ASM_MPSUBW
00102 #  define ASM_MPADD
00103 #  define ASM_MPSUB
00104 #  define ASM_MPMULTWO
00105 #  define ASM_MPADDMUL
00106 #  define ASM_MPADDSQRTRC
00107 # elif defined(OPTIMIZE_S390X)
00108 #  define ASM_MPSETMUL
00109 #  define ASM_MPADDMUL
00110 # elif defined(OPTIMIZE_SPARCV8)
00111 #  define ASM_MPSETMUL
00112 #  define ASM_MPADDMUL
00113 #  define ASM_MPADDSQRTRC
00114 # elif defined(OPTIMIZE_SPARCV8PLUS)
00115 #  define ASM_MPADDW
00116 #  define ASM_MPSUBW
00117 #  define ASM_MPADD
00118 #  define ASM_MPSUB
00119 #  define ASM_MPMULTWO
00120 #  define ASM_MPSETMUL
00121 #  define ASM_MPADDMUL
00122 #  define ASM_MPADDSQRTRC
00123 # elif defined(OPTIMIZE_X86_64)
00124 #  define ASM_MPZERO
00125 #  define ASM_MPFILL
00126 #  define ASM_MPEVEN
00127 #  define ASM_MPODD
00128 #  define ASM_MPSETMUL
00129 #  define ASM_MPADDMUL
00130 # endif
00131 #endif
00132 
00133 #if defined(__IBMC__)
00134 # if defined(OPTIMIZE_POWERPC) || defined(OPTIMIZE_POWERPC64)
00135 #  define ASM_MPSETMUL
00136 #  define ASM_MPADDW
00137 #  define ASM_MPSUBW
00138 #  define ASM_MPADD
00139 #  define ASM_MPSUB
00140 #  define ASM_MPMULTWO
00141 #  define ASM_MPADDMUL
00142 #  define ASM_MPADDSQRTRC
00143 # endif
00144 #endif
00145 
00146 #if defined(__INTEL_COMPILER)
00147 # if defined(OPTIMIZE_I386) || defined(OPTIMIZE_I486) || defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686)
00148 #  define ASM_MPZERO
00149 #  define ASM_MPFILL
00150 #  define ASM_MPEVEN
00151 #  define ASM_MPODD
00152 #  define ASM_MPADDW
00153 #  define ASM_MPSUBW
00154 #  define ASM_MPADD
00155 #  define ASM_MPSUB
00156 #  define ASM_MPMULTWO
00157 #  define ASM_MPDIVTWO
00158 #  define ASM_MPSETMUL
00159 #  define ASM_MPADDMUL
00160 #  define ASM_MPADDSQRTRC
00161 #  define ASM_MPPNDIV
00162 # endif
00163 #endif
00164 
00165 #if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
00166 # if defined(OPTIMIZE_SPARCV8)
00167 #  define ASM_MPSETMUL
00168 #  define ASM_MPADDMUL
00169 #  define ASM_MPADDSQRTRC
00170 # elif defined(OPTIMIZE_SPARCV8PLUS)
00171 #  define ASM_MPADDW
00172 #  define ASM_MPSUBW
00173 #  define ASM_MPADD
00174 #  define ASM_MPSUB
00175 #  define ASM_MPMULTWO
00176 #  define ASM_MPSETMUL
00177 #  define ASM_MPADDMUL
00178 #  define ASM_MPADDSQRTRC
00179 # endif
00180 #endif
00181 
00182 #endif

Generated on Wed Mar 24 13:56:53 2004 for BeeCrypt by doxygen 1.3.6