1 /* $NetBSD: bf_enc_586.S,v 1.4 2005/12/11 12:20:52 christos Exp $ */
3 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
6 * This package is an SSL implementation written
7 * by Eric Young (eay@cryptsoft.com).
8 * The implementation was written so as to conform with Netscapes SSL.
10 * This library is free for commercial and non-commercial use as long as
11 * the following conditions are aheared to. The following conditions
12 * apply to all code found in this distribution, be it the RC4, RSA,
13 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
14 * included with this distribution is covered by the same copyright terms
15 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
17 * Copyright remains Eric Young's, and as such any Copyright notices in
18 * the code are not to be removed.
19 * If this package is used in a product, Eric Young should be given attribution
20 * as the author of the parts of the library used.
21 * This can be in the form of a textual message at program startup or
22 * in documentation (online or textual) provided with the package.
24 * Redistribution and use in source and binary forms, with or without
25 * modification, are permitted provided that the following conditions
27 * 1. Redistributions of source code must retain the copyright
28 * notice, this list of conditions and the following disclaimer.
29 * 2. Redistributions in binary form must reproduce the above copyright
30 * notice, this list of conditions and the following disclaimer in the
31 * documentation and/or other materials provided with the distribution.
32 * 3. All advertising materials mentioning features or use of this software
33 * must display the following acknowledgement:
34 * "This product includes cryptographic software written by
35 * Eric Young (eay@cryptsoft.com)"
36 * The word 'cryptographic' can be left out if the rouines from the library
37 * being used are not cryptographic related :-).
38 * 4. If you include any Windows specific code (or a derivative thereof) from
39 * the apps directory (application code) you must include an acknowledgement:
40 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
42 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
43 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
44 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
45 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
46 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
47 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
48 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
49 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
50 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
51 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
54 * The licence and distribution terms for any publically available version or
55 * derivative of this code cannot be changed. i.e. this code cannot simply be
56 * copied and put under another distribution licence
57 * [including the GNU Public Licence.]
61 * Modified from the output of `perl bf-586.pl elf' by
62 * Jason R. Thorpe <thorpej@zembu.com> and Thor Lancelot Simon
66 #include <i386/include/asm.h>
67 __KERNEL_RCSID(1, "$NetBSD$");
76 /* Load the 2 words */
94 movl 72(%ebp,%eax,4),%eax
95 movl 1096(%ebp,%ebx,4),%ebx
97 movl 2120(%ebp,%ecx,4),%eax
99 movl 3144(%ebp,%edx,4),%edx
114 movl 72(%ebp,%eax,4),%eax
115 movl 1096(%ebp,%ebx,4),%ebx
117 movl 2120(%ebp,%ecx,4),%eax
119 movl 3144(%ebp,%edx,4),%edx
134 movl 72(%ebp,%eax,4),%eax
135 movl 1096(%ebp,%ebx,4),%ebx
137 movl 2120(%ebp,%ecx,4),%eax
139 movl 3144(%ebp,%edx,4),%edx
154 movl 72(%ebp,%eax,4),%eax
155 movl 1096(%ebp,%ebx,4),%ebx
157 movl 2120(%ebp,%ecx,4),%eax
159 movl 3144(%ebp,%edx,4),%edx
174 movl 72(%ebp,%eax,4),%eax
175 movl 1096(%ebp,%ebx,4),%ebx
177 movl 2120(%ebp,%ecx,4),%eax
179 movl 3144(%ebp,%edx,4),%edx
194 movl 72(%ebp,%eax,4),%eax
195 movl 1096(%ebp,%ebx,4),%ebx
197 movl 2120(%ebp,%ecx,4),%eax
199 movl 3144(%ebp,%edx,4),%edx
214 movl 72(%ebp,%eax,4),%eax
215 movl 1096(%ebp,%ebx,4),%ebx
217 movl 2120(%ebp,%ecx,4),%eax
219 movl 3144(%ebp,%edx,4),%edx
234 movl 72(%ebp,%eax,4),%eax
235 movl 1096(%ebp,%ebx,4),%ebx
237 movl 2120(%ebp,%ecx,4),%eax
239 movl 3144(%ebp,%edx,4),%edx
254 movl 72(%ebp,%eax,4),%eax
255 movl 1096(%ebp,%ebx,4),%ebx
257 movl 2120(%ebp,%ecx,4),%eax
259 movl 3144(%ebp,%edx,4),%edx
274 movl 72(%ebp,%eax,4),%eax
275 movl 1096(%ebp,%ebx,4),%ebx
277 movl 2120(%ebp,%ecx,4),%eax
279 movl 3144(%ebp,%edx,4),%edx
294 movl 72(%ebp,%eax,4),%eax
295 movl 1096(%ebp,%ebx,4),%ebx
297 movl 2120(%ebp,%ecx,4),%eax
299 movl 3144(%ebp,%edx,4),%edx
314 movl 72(%ebp,%eax,4),%eax
315 movl 1096(%ebp,%ebx,4),%ebx
317 movl 2120(%ebp,%ecx,4),%eax
319 movl 3144(%ebp,%edx,4),%edx
334 movl 72(%ebp,%eax,4),%eax
335 movl 1096(%ebp,%ebx,4),%ebx
337 movl 2120(%ebp,%ecx,4),%eax
339 movl 3144(%ebp,%edx,4),%edx
354 movl 72(%ebp,%eax,4),%eax
355 movl 1096(%ebp,%ebx,4),%ebx
357 movl 2120(%ebp,%ecx,4),%eax
359 movl 3144(%ebp,%edx,4),%edx
374 movl 72(%ebp,%eax,4),%eax
375 movl 1096(%ebp,%ebx,4),%ebx
377 movl 2120(%ebp,%ecx,4),%eax
379 movl 3144(%ebp,%edx,4),%edx
394 movl 72(%ebp,%eax,4),%eax
395 movl 1096(%ebp,%ebx,4),%ebx
397 movl 2120(%ebp,%ecx,4),%eax
399 movl 3144(%ebp,%edx,4),%edx
401 # Load parameter 0 (16) enc=1
414 .size _C_LABEL(BF_encrypt),.L_BF_encrypt_end-_C_LABEL(BF_encrypt)
441 movl 72(%ebp,%eax,4),%eax
442 movl 1096(%ebp,%ebx,4),%ebx
444 movl 2120(%ebp,%ecx,4),%eax
446 movl 3144(%ebp,%edx,4),%edx
461 movl 72(%ebp,%eax,4),%eax
462 movl 1096(%ebp,%ebx,4),%ebx
464 movl 2120(%ebp,%ecx,4),%eax
466 movl 3144(%ebp,%edx,4),%edx
481 movl 72(%ebp,%eax,4),%eax
482 movl 1096(%ebp,%ebx,4),%ebx
484 movl 2120(%ebp,%ecx,4),%eax
486 movl 3144(%ebp,%edx,4),%edx
501 movl 72(%ebp,%eax,4),%eax
502 movl 1096(%ebp,%ebx,4),%ebx
504 movl 2120(%ebp,%ecx,4),%eax
506 movl 3144(%ebp,%edx,4),%edx
521 movl 72(%ebp,%eax,4),%eax
522 movl 1096(%ebp,%ebx,4),%ebx
524 movl 2120(%ebp,%ecx,4),%eax
526 movl 3144(%ebp,%edx,4),%edx
541 movl 72(%ebp,%eax,4),%eax
542 movl 1096(%ebp,%ebx,4),%ebx
544 movl 2120(%ebp,%ecx,4),%eax
546 movl 3144(%ebp,%edx,4),%edx
561 movl 72(%ebp,%eax,4),%eax
562 movl 1096(%ebp,%ebx,4),%ebx
564 movl 2120(%ebp,%ecx,4),%eax
566 movl 3144(%ebp,%edx,4),%edx
581 movl 72(%ebp,%eax,4),%eax
582 movl 1096(%ebp,%ebx,4),%ebx
584 movl 2120(%ebp,%ecx,4),%eax
586 movl 3144(%ebp,%edx,4),%edx
601 movl 72(%ebp,%eax,4),%eax
602 movl 1096(%ebp,%ebx,4),%ebx
604 movl 2120(%ebp,%ecx,4),%eax
606 movl 3144(%ebp,%edx,4),%edx
621 movl 72(%ebp,%eax,4),%eax
622 movl 1096(%ebp,%ebx,4),%ebx
624 movl 2120(%ebp,%ecx,4),%eax
626 movl 3144(%ebp,%edx,4),%edx
641 movl 72(%ebp,%eax,4),%eax
642 movl 1096(%ebp,%ebx,4),%ebx
644 movl 2120(%ebp,%ecx,4),%eax
646 movl 3144(%ebp,%edx,4),%edx
661 movl 72(%ebp,%eax,4),%eax
662 movl 1096(%ebp,%ebx,4),%ebx
664 movl 2120(%ebp,%ecx,4),%eax
666 movl 3144(%ebp,%edx,4),%edx
681 movl 72(%ebp,%eax,4),%eax
682 movl 1096(%ebp,%ebx,4),%ebx
684 movl 2120(%ebp,%ecx,4),%eax
686 movl 3144(%ebp,%edx,4),%edx
701 movl 72(%ebp,%eax,4),%eax
702 movl 1096(%ebp,%ebx,4),%ebx
704 movl 2120(%ebp,%ecx,4),%eax
706 movl 3144(%ebp,%edx,4),%edx
721 movl 72(%ebp,%eax,4),%eax
722 movl 1096(%ebp,%ebx,4),%ebx
724 movl 2120(%ebp,%ecx,4),%eax
726 movl 3144(%ebp,%edx,4),%edx
741 movl 72(%ebp,%eax,4),%eax
742 movl 1096(%ebp,%ebx,4),%ebx
744 movl 2120(%ebp,%ecx,4),%eax
746 movl 3144(%ebp,%edx,4),%edx
748 # Load parameter 0 (1) enc=0
761 .size _C_LABEL(BF_decrypt),.L_BF_decrypt_end-_C_LABEL(BF_decrypt)