1 /* $NetBSD: bf_enc_586.S,v 1.1 2001/09/09 11:01:01 tls Exp $ */
4 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
7 * This package is an SSL implementation written
8 * by Eric Young (eay@cryptsoft.com).
9 * The implementation was written so as to conform with Netscapes SSL.
11 * This library is free for commercial and non-commercial use as long as
12 * the following conditions are aheared to. The following conditions
13 * apply to all code found in this distribution, be it the RC4, RSA,
14 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
15 * included with this distribution is covered by the same copyright terms
16 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
18 * Copyright remains Eric Young's, and as such any Copyright notices in
19 * the code are not to be removed.
20 * If this package is used in a product, Eric Young should be given attribution
21 * as the author of the parts of the library used.
22 * This can be in the form of a textual message at program startup or
23 * in documentation (online or textual) provided with the package.
25 * Redistribution and use in source and binary forms, with or without
26 * modification, are permitted provided that the following conditions
28 * 1. Redistributions of source code must retain the copyright
29 * notice, this list of conditions and the following disclaimer.
30 * 2. Redistributions in binary form must reproduce the above copyright
31 * notice, this list of conditions and the following disclaimer in the
32 * documentation and/or other materials provided with the distribution.
33 * 3. All advertising materials mentioning features or use of this software
34 * must display the following acknowledgement:
35 * "This product includes cryptographic software written by
36 * Eric Young (eay@cryptsoft.com)"
37 * The word 'cryptographic' can be left out if the rouines from the library
38 * being used are not cryptographic related :-).
39 * 4. If you include any Windows specific code (or a derivative thereof) from
40 * the apps directory (application code) you must include an acknowledgement:
41 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
43 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
44 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
45 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
46 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
47 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
48 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
49 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
50 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
51 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
52 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
55 * The licence and distribution terms for any publically available version or
56 * derivative of this code cannot be changed. i.e. this code cannot simply be
57 * copied and put under another distribution licence
58 * [including the GNU Public Licence.]
62 * Modified from the output of `perl bf-586.pl elf' by
63 * Jason R. Thorpe <thorpej@zembu.com> and Thor Lancelot Simon
67 #include <i386/include/asm.h>
68 #define _C_LABEL CNAME
77 /* Load the 2 words */
95 movl 72(%ebp,%eax,4),%eax
96 movl 1096(%ebp,%ebx,4),%ebx
98 movl 2120(%ebp,%ecx,4),%eax
100 movl 3144(%ebp,%edx,4),%edx
115 movl 72(%ebp,%eax,4),%eax
116 movl 1096(%ebp,%ebx,4),%ebx
118 movl 2120(%ebp,%ecx,4),%eax
120 movl 3144(%ebp,%edx,4),%edx
135 movl 72(%ebp,%eax,4),%eax
136 movl 1096(%ebp,%ebx,4),%ebx
138 movl 2120(%ebp,%ecx,4),%eax
140 movl 3144(%ebp,%edx,4),%edx
155 movl 72(%ebp,%eax,4),%eax
156 movl 1096(%ebp,%ebx,4),%ebx
158 movl 2120(%ebp,%ecx,4),%eax
160 movl 3144(%ebp,%edx,4),%edx
175 movl 72(%ebp,%eax,4),%eax
176 movl 1096(%ebp,%ebx,4),%ebx
178 movl 2120(%ebp,%ecx,4),%eax
180 movl 3144(%ebp,%edx,4),%edx
195 movl 72(%ebp,%eax,4),%eax
196 movl 1096(%ebp,%ebx,4),%ebx
198 movl 2120(%ebp,%ecx,4),%eax
200 movl 3144(%ebp,%edx,4),%edx
215 movl 72(%ebp,%eax,4),%eax
216 movl 1096(%ebp,%ebx,4),%ebx
218 movl 2120(%ebp,%ecx,4),%eax
220 movl 3144(%ebp,%edx,4),%edx
235 movl 72(%ebp,%eax,4),%eax
236 movl 1096(%ebp,%ebx,4),%ebx
238 movl 2120(%ebp,%ecx,4),%eax
240 movl 3144(%ebp,%edx,4),%edx
255 movl 72(%ebp,%eax,4),%eax
256 movl 1096(%ebp,%ebx,4),%ebx
258 movl 2120(%ebp,%ecx,4),%eax
260 movl 3144(%ebp,%edx,4),%edx
275 movl 72(%ebp,%eax,4),%eax
276 movl 1096(%ebp,%ebx,4),%ebx
278 movl 2120(%ebp,%ecx,4),%eax
280 movl 3144(%ebp,%edx,4),%edx
295 movl 72(%ebp,%eax,4),%eax
296 movl 1096(%ebp,%ebx,4),%ebx
298 movl 2120(%ebp,%ecx,4),%eax
300 movl 3144(%ebp,%edx,4),%edx
315 movl 72(%ebp,%eax,4),%eax
316 movl 1096(%ebp,%ebx,4),%ebx
318 movl 2120(%ebp,%ecx,4),%eax
320 movl 3144(%ebp,%edx,4),%edx
335 movl 72(%ebp,%eax,4),%eax
336 movl 1096(%ebp,%ebx,4),%ebx
338 movl 2120(%ebp,%ecx,4),%eax
340 movl 3144(%ebp,%edx,4),%edx
355 movl 72(%ebp,%eax,4),%eax
356 movl 1096(%ebp,%ebx,4),%ebx
358 movl 2120(%ebp,%ecx,4),%eax
360 movl 3144(%ebp,%edx,4),%edx
375 movl 72(%ebp,%eax,4),%eax
376 movl 1096(%ebp,%ebx,4),%ebx
378 movl 2120(%ebp,%ecx,4),%eax
380 movl 3144(%ebp,%edx,4),%edx
395 movl 72(%ebp,%eax,4),%eax
396 movl 1096(%ebp,%ebx,4),%ebx
398 movl 2120(%ebp,%ecx,4),%eax
400 movl 3144(%ebp,%edx,4),%edx
402 /* Load parameter 0 (16) enc=1 */
415 .size _C_LABEL(BF_encrypt),.L_BF_encrypt_end-_C_LABEL(BF_encrypt)
424 /* Load the 2 words */
442 movl 72(%ebp,%eax,4),%eax
443 movl 1096(%ebp,%ebx,4),%ebx
445 movl 2120(%ebp,%ecx,4),%eax
447 movl 3144(%ebp,%edx,4),%edx
462 movl 72(%ebp,%eax,4),%eax
463 movl 1096(%ebp,%ebx,4),%ebx
465 movl 2120(%ebp,%ecx,4),%eax
467 movl 3144(%ebp,%edx,4),%edx
482 movl 72(%ebp,%eax,4),%eax
483 movl 1096(%ebp,%ebx,4),%ebx
485 movl 2120(%ebp,%ecx,4),%eax
487 movl 3144(%ebp,%edx,4),%edx
502 movl 72(%ebp,%eax,4),%eax
503 movl 1096(%ebp,%ebx,4),%ebx
505 movl 2120(%ebp,%ecx,4),%eax
507 movl 3144(%ebp,%edx,4),%edx
522 movl 72(%ebp,%eax,4),%eax
523 movl 1096(%ebp,%ebx,4),%ebx
525 movl 2120(%ebp,%ecx,4),%eax
527 movl 3144(%ebp,%edx,4),%edx
542 movl 72(%ebp,%eax,4),%eax
543 movl 1096(%ebp,%ebx,4),%ebx
545 movl 2120(%ebp,%ecx,4),%eax
547 movl 3144(%ebp,%edx,4),%edx
562 movl 72(%ebp,%eax,4),%eax
563 movl 1096(%ebp,%ebx,4),%ebx
565 movl 2120(%ebp,%ecx,4),%eax
567 movl 3144(%ebp,%edx,4),%edx
582 movl 72(%ebp,%eax,4),%eax
583 movl 1096(%ebp,%ebx,4),%ebx
585 movl 2120(%ebp,%ecx,4),%eax
587 movl 3144(%ebp,%edx,4),%edx
602 movl 72(%ebp,%eax,4),%eax
603 movl 1096(%ebp,%ebx,4),%ebx
605 movl 2120(%ebp,%ecx,4),%eax
607 movl 3144(%ebp,%edx,4),%edx
622 movl 72(%ebp,%eax,4),%eax
623 movl 1096(%ebp,%ebx,4),%ebx
625 movl 2120(%ebp,%ecx,4),%eax
627 movl 3144(%ebp,%edx,4),%edx
642 movl 72(%ebp,%eax,4),%eax
643 movl 1096(%ebp,%ebx,4),%ebx
645 movl 2120(%ebp,%ecx,4),%eax
647 movl 3144(%ebp,%edx,4),%edx
662 movl 72(%ebp,%eax,4),%eax
663 movl 1096(%ebp,%ebx,4),%ebx
665 movl 2120(%ebp,%ecx,4),%eax
667 movl 3144(%ebp,%edx,4),%edx
682 movl 72(%ebp,%eax,4),%eax
683 movl 1096(%ebp,%ebx,4),%ebx
685 movl 2120(%ebp,%ecx,4),%eax
687 movl 3144(%ebp,%edx,4),%edx
702 movl 72(%ebp,%eax,4),%eax
703 movl 1096(%ebp,%ebx,4),%ebx
705 movl 2120(%ebp,%ecx,4),%eax
707 movl 3144(%ebp,%edx,4),%edx
722 movl 72(%ebp,%eax,4),%eax
723 movl 1096(%ebp,%ebx,4),%ebx
725 movl 2120(%ebp,%ecx,4),%eax
727 movl 3144(%ebp,%edx,4),%edx
742 movl 72(%ebp,%eax,4),%eax
743 movl 1096(%ebp,%ebx,4),%ebx
745 movl 2120(%ebp,%ecx,4),%eax
747 movl 3144(%ebp,%edx,4),%edx
749 /* Load parameter 0 (1) enc=0 */
762 .size _C_LABEL(BF_decrypt),.L_BF_decrypt_end-_C_LABEL(BF_decrypt)