summaryrefslogtreecommitdiff
path: root/utils/zenutils/libraries/beecrypt-4.1.2/beecrypt/mpopt.h
diff options
context:
space:
mode:
authorMaurus Cuelenaere <mcuelenaere@gmail.com>2008-07-11 15:50:46 +0000
committerMaurus Cuelenaere <mcuelenaere@gmail.com>2008-07-11 15:50:46 +0000
commit14c7f45cdae826f88dc539c8c38dd95caf305731 (patch)
tree832da054b7cfb2dc6fd63339af736625f31d21aa /utils/zenutils/libraries/beecrypt-4.1.2/beecrypt/mpopt.h
parent7c84ede3781c27db73403bd6302f320c76a58c8c (diff)
downloadrockbox-14c7f45cdae826f88dc539c8c38dd95caf305731.tar.gz
rockbox-14c7f45cdae826f88dc539c8c38dd95caf305731.zip
Add zook's ZenUtils to SVN
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18010 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/zenutils/libraries/beecrypt-4.1.2/beecrypt/mpopt.h')
-rwxr-xr-xutils/zenutils/libraries/beecrypt-4.1.2/beecrypt/mpopt.h205
1 files changed, 205 insertions, 0 deletions
diff --git a/utils/zenutils/libraries/beecrypt-4.1.2/beecrypt/mpopt.h b/utils/zenutils/libraries/beecrypt-4.1.2/beecrypt/mpopt.h
new file mode 100755
index 0000000000..7ba66bb5f9
--- /dev/null
+++ b/utils/zenutils/libraries/beecrypt-4.1.2/beecrypt/mpopt.h
@@ -0,0 +1,205 @@
1/*
2 * Copyright (c) 2003 Bob Deblier
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 */
19
20/*!\file mpopt.h
21 * \brief Multi-precision integer optimization definitions.
22 * \author Bob Deblier <bob.deblier@pandora.be>
23 * \ingroup MP_m
24 */
25
26#ifndef _MPOPT_H
27#define _MPOPT_H
28
29#if WIN32
30# if __MWERKS__ && __INTEL__
31# elif defined(_MSC_VER) && defined(_M_IX86)
32# define ASM_MPZERO
33# define ASM_MPFILL
34# define ASM_MPEVEN
35# define ASM_MPODD
36# define ASM_MPADDW
37# define ASM_MPSUBW
38# define ASM_MPADD
39# define ASM_MPSUB
40# define ASM_MPMULTWO
41# define ASM_MPDIVTWO
42# define ASM_MPSETMUL
43# define ASM_MPADDMUL
44# define ASM_MPADDSQRTRC
45# endif
46#endif
47
48#if defined(__DECC)
49# if defined(OPTIMIZE_ALPHA)
50# define ASM_MPADD
51# define ASM_MPSUB
52# define ASM_MPSETMUL
53# define ASM_MPADDMUL
54# define ASM_MPADDSQRTRC
55# endif
56#endif
57
58#if defined(__GNUC__)
59# if defined(OPTIMIZE_ALPHA)
60# define ASM_MPADD
61# define ASM_MPSUB
62# define ASM_MPSETMUL
63# define ASM_MPADDMUL
64# define ASM_MPADDSQRTRC
65# elif defined(OPTIMIZE_ARM)
66# define ASM_MPSETMUL
67# define ASM_MPADDMUL
68# define ASM_MPADDSQRTRC
69# elif defined(OPTIMIZE_I386) || defined(OPTIMIZE_I486) || defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686)
70# define ASM_MPZERO
71# define ASM_MPFILL
72# define ASM_MPEVEN
73# define ASM_MPODD
74# define ASM_MPADD
75# define ASM_MPADDW
76# define ASM_MPSUB
77# define ASM_MPSUBW
78# define ASM_MPMULTWO
79# define ASM_MPDIVTWO
80# define ASM_MPSETMUL
81# define ASM_MPADDMUL
82# define ASM_MPADDSQRTRC
83# define ASM_MPPNDIV
84# elif defined(OPTIMIZE_IA64)
85# define ASM_MPZERO
86# define ASM_MPCOPY
87# define ASM_MPADD
88# define ASM_MPSUB
89# define ASM_MPMULTWO
90# define ASM_MPSETMUL
91# define ASM_MPADDMUL
92# elif defined(OPTIMIZE_M68K)
93# define ASM_MPADD
94# define ASM_MPSUB
95# define ASM_MPSETMUL
96# define ASM_MPADDMUL
97# define ASM_MPADDSQRTRC
98# elif defined(OPTIMIZE_POWERPC) || defined(OPTIMIZE_POWERPC64)
99# define ASM_MPSETMUL
100# define ASM_MPADD
101# define ASM_MPADDW
102# define ASM_MPSUB
103# define ASM_MPSUBW
104# define ASM_MPMULTWO
105# define ASM_MPADDMUL
106# define ASM_MPADDSQRTRC
107# elif defined(OPTIMIZE_S390X)
108# define ASM_MPSETMUL
109# define ASM_MPADDMUL
110# define ASM_MPADDSQRTRC
111# elif defined(OPTIMIZE_SPARCV8)
112# define ASM_MPSETMUL
113# define ASM_MPADDMUL
114# define ASM_MPADDSQRTRC
115# elif defined(OPTIMIZE_SPARCV8PLUS)
116# define ASM_MPADDW
117# define ASM_MPSUBW
118# define ASM_MPADD
119# define ASM_MPSUB
120# define ASM_MPMULTWO
121# define ASM_MPSETMUL
122# define ASM_MPADDMUL
123# define ASM_MPADDSQRTRC
124# elif defined(OPTIMIZE_X86_64)
125# define ASM_MPZERO
126# define ASM_MPFILL
127# define ASM_MPEVEN
128# define ASM_MPODD
129# define ASM_MPADD
130# define ASM_MPADDW
131# define ASM_MPSUB
132# define ASM_MPSUBW
133# define ASM_MPDIVTWO
134# define ASM_MPMULTWO
135# define ASM_MPSETMUL
136# define ASM_MPADDMUL
137# define ASM_MPADDSQRTRC
138# endif
139#endif
140
141#if defined(__IBMC__)
142# if defined(OPTIMIZE_POWERPC) || defined(OPTIMIZE_POWERPC64)
143# define ASM_MPSETMUL
144# define ASM_MPADDW
145# define ASM_MPSUBW
146# define ASM_MPADD
147# define ASM_MPSUB
148# define ASM_MPMULTWO
149# define ASM_MPADDMUL
150# define ASM_MPADDSQRTRC
151# endif
152#endif
153
154#if defined(__INTEL_COMPILER)
155# if defined(OPTIMIZE_I386) || defined(OPTIMIZE_I486) || defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686)
156# define ASM_MPZERO
157# define ASM_MPFILL
158# define ASM_MPEVEN
159# define ASM_MPODD
160# define ASM_MPADDW
161# define ASM_MPSUBW
162# define ASM_MPADD
163# define ASM_MPSUB
164# define ASM_MPMULTWO
165# define ASM_MPDIVTWO
166# define ASM_MPSETMUL
167# define ASM_MPADDMUL
168# define ASM_MPADDSQRTRC
169# define ASM_MPPNDIV
170# endif
171#endif
172
173#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
174# if defined(OPTIMIZE_SPARCV8)
175# define ASM_MPSETMUL
176# define ASM_MPADDMUL
177# define ASM_MPADDSQRTRC
178# elif defined(OPTIMIZE_SPARCV8PLUS)
179# define ASM_MPADDW
180# define ASM_MPSUBW
181# define ASM_MPADD
182# define ASM_MPSUB
183# define ASM_MPMULTWO
184# define ASM_MPSETMUL
185# define ASM_MPADDMUL
186# define ASM_MPADDSQRTRC
187# endif
188#endif
189
190#undef ASM_MPZERO
191#undef ASM_MPFILL
192#undef ASM_MPEVEN
193#undef ASM_MPODD
194#undef ASM_MPADD
195#undef ASM_MPADDW
196#undef ASM_MPSUB
197#undef ASM_MPSUBW
198#undef ASM_MPMULTWO
199#undef ASM_MPDIVTWO
200#undef ASM_MPSETMUL
201#undef ASM_MPADDMUL
202#undef ASM_MPADDSQRTRC
203#undef ASM_MPPNDIV
204
205#endif