1 /* $NetBSD: bf_enc_686.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-686.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 */
81 /* P pointer, s and enc flag */
94 movl 72(%edi,%eax,4),%esi
95 movl 1096(%edi,%ebx,4),%ebp
99 movl 2120(%edi,%eax,4),%eax
101 movl 3144(%edi,%ebx,4),%ebp
113 movl 72(%edi,%eax,4),%esi
114 movl 1096(%edi,%ebx,4),%ebp
118 movl 2120(%edi,%eax,4),%eax
120 movl 3144(%edi,%ebx,4),%ebp
132 movl 72(%edi,%eax,4),%esi
133 movl 1096(%edi,%ebx,4),%ebp
137 movl 2120(%edi,%eax,4),%eax
139 movl 3144(%edi,%ebx,4),%ebp
151 movl 72(%edi,%eax,4),%esi
152 movl 1096(%edi,%ebx,4),%ebp
156 movl 2120(%edi,%eax,4),%eax
158 movl 3144(%edi,%ebx,4),%ebp
170 movl 72(%edi,%eax,4),%esi
171 movl 1096(%edi,%ebx,4),%ebp
175 movl 2120(%edi,%eax,4),%eax
177 movl 3144(%edi,%ebx,4),%ebp
189 movl 72(%edi,%eax,4),%esi
190 movl 1096(%edi,%ebx,4),%ebp
194 movl 2120(%edi,%eax,4),%eax
196 movl 3144(%edi,%ebx,4),%ebp
208 movl 72(%edi,%eax,4),%esi
209 movl 1096(%edi,%ebx,4),%ebp
213 movl 2120(%edi,%eax,4),%eax
215 movl 3144(%edi,%ebx,4),%ebp
227 movl 72(%edi,%eax,4),%esi
228 movl 1096(%edi,%ebx,4),%ebp
232 movl 2120(%edi,%eax,4),%eax
234 movl 3144(%edi,%ebx,4),%ebp
246 movl 72(%edi,%eax,4),%esi
247 movl 1096(%edi,%ebx,4),%ebp
251 movl 2120(%edi,%eax,4),%eax
253 movl 3144(%edi,%ebx,4),%ebp
265 movl 72(%edi,%eax,4),%esi
266 movl 1096(%edi,%ebx,4),%ebp
270 movl 2120(%edi,%eax,4),%eax
272 movl 3144(%edi,%ebx,4),%ebp
284 movl 72(%edi,%eax,4),%esi
285 movl 1096(%edi,%ebx,4),%ebp
289 movl 2120(%edi,%eax,4),%eax
291 movl 3144(%edi,%ebx,4),%ebp
303 movl 72(%edi,%eax,4),%esi
304 movl 1096(%edi,%ebx,4),%ebp
308 movl 2120(%edi,%eax,4),%eax
310 movl 3144(%edi,%ebx,4),%ebp
322 movl 72(%edi,%eax,4),%esi
323 movl 1096(%edi,%ebx,4),%ebp
327 movl 2120(%edi,%eax,4),%eax
329 movl 3144(%edi,%ebx,4),%ebp
341 movl 72(%edi,%eax,4),%esi
342 movl 1096(%edi,%ebx,4),%ebp
346 movl 2120(%edi,%eax,4),%eax
348 movl 3144(%edi,%ebx,4),%ebp
360 movl 72(%edi,%eax,4),%esi
361 movl 1096(%edi,%ebx,4),%ebp
365 movl 2120(%edi,%eax,4),%eax
367 movl 3144(%edi,%ebx,4),%ebp
379 movl 72(%edi,%eax,4),%esi
380 movl 1096(%edi,%ebx,4),%ebp
384 movl 2120(%edi,%eax,4),%eax
386 movl 3144(%edi,%ebx,4),%ebp
400 .size _C_LABEL(BF_encrypt),.L_BF_encrypt_end-_C_LABEL(BF_encrypt)
409 /* Load the 2 words */
414 /* P pointer, s and enc flag */
427 movl 72(%edi,%eax,4),%esi
428 movl 1096(%edi,%ebx,4),%ebp
432 movl 2120(%edi,%eax,4),%eax
434 movl 3144(%edi,%ebx,4),%ebp
446 movl 72(%edi,%eax,4),%esi
447 movl 1096(%edi,%ebx,4),%ebp
451 movl 2120(%edi,%eax,4),%eax
453 movl 3144(%edi,%ebx,4),%ebp
465 movl 72(%edi,%eax,4),%esi
466 movl 1096(%edi,%ebx,4),%ebp
470 movl 2120(%edi,%eax,4),%eax
472 movl 3144(%edi,%ebx,4),%ebp
484 movl 72(%edi,%eax,4),%esi
485 movl 1096(%edi,%ebx,4),%ebp
489 movl 2120(%edi,%eax,4),%eax
491 movl 3144(%edi,%ebx,4),%ebp
503 movl 72(%edi,%eax,4),%esi
504 movl 1096(%edi,%ebx,4),%ebp
508 movl 2120(%edi,%eax,4),%eax
510 movl 3144(%edi,%ebx,4),%ebp
522 movl 72(%edi,%eax,4),%esi
523 movl 1096(%edi,%ebx,4),%ebp
527 movl 2120(%edi,%eax,4),%eax
529 movl 3144(%edi,%ebx,4),%ebp
541 movl 72(%edi,%eax,4),%esi
542 movl 1096(%edi,%ebx,4),%ebp
546 movl 2120(%edi,%eax,4),%eax
548 movl 3144(%edi,%ebx,4),%ebp
560 movl 72(%edi,%eax,4),%esi
561 movl 1096(%edi,%ebx,4),%ebp
565 movl 2120(%edi,%eax,4),%eax
567 movl 3144(%edi,%ebx,4),%ebp
579 movl 72(%edi,%eax,4),%esi
580 movl 1096(%edi,%ebx,4),%ebp
584 movl 2120(%edi,%eax,4),%eax
586 movl 3144(%edi,%ebx,4),%ebp
598 movl 72(%edi,%eax,4),%esi
599 movl 1096(%edi,%ebx,4),%ebp
603 movl 2120(%edi,%eax,4),%eax
605 movl 3144(%edi,%ebx,4),%ebp
617 movl 72(%edi,%eax,4),%esi
618 movl 1096(%edi,%ebx,4),%ebp
622 movl 2120(%edi,%eax,4),%eax
624 movl 3144(%edi,%ebx,4),%ebp
636 movl 72(%edi,%eax,4),%esi
637 movl 1096(%edi,%ebx,4),%ebp
641 movl 2120(%edi,%eax,4),%eax
643 movl 3144(%edi,%ebx,4),%ebp
655 movl 72(%edi,%eax,4),%esi
656 movl 1096(%edi,%ebx,4),%ebp
660 movl 2120(%edi,%eax,4),%eax
662 movl 3144(%edi,%ebx,4),%ebp
674 movl 72(%edi,%eax,4),%esi
675 movl 1096(%edi,%ebx,4),%ebp
679 movl 2120(%edi,%eax,4),%eax
681 movl 3144(%edi,%ebx,4),%ebp
693 movl 72(%edi,%eax,4),%esi
694 movl 1096(%edi,%ebx,4),%ebp
698 movl 2120(%edi,%eax,4),%eax
700 movl 3144(%edi,%ebx,4),%ebp
712 movl 72(%edi,%eax,4),%esi
713 movl 1096(%edi,%ebx,4),%ebp
717 movl 2120(%edi,%eax,4),%eax
719 movl 3144(%edi,%ebx,4),%ebp
733 .size _C_LABEL(BF_decrypt),.L_BF_decrypt_end-_C_LABEL(BF_decrypt)