summaryrefslogtreecommitdiffstats
path: root/secure/lib/libcrypto/i386/bf-586.s
diff options
context:
space:
mode:
Diffstat (limited to 'secure/lib/libcrypto/i386/bf-586.s')
-rw-r--r--secure/lib/libcrypto/i386/bf-586.s205
1 files changed, 100 insertions, 105 deletions
diff --git a/secure/lib/libcrypto/i386/bf-586.s b/secure/lib/libcrypto/i386/bf-586.s
index 0965b1c..73e0042 100644
--- a/secure/lib/libcrypto/i386/bf-586.s
+++ b/secure/lib/libcrypto/i386/bf-586.s
@@ -1,9 +1,9 @@
# $FreeBSD$
- # Dont even think of reading this code
- # It was automatically generated by bf-586.pl
- # Which is a perl program used to generate the x86 assember for
- # any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
- # eric <eay@cryptsoft.com>
+
+
+
+
+
.file "bf-586.s"
.version "01.01"
@@ -20,7 +20,7 @@ BF_encrypt:
movl 16(%esp), %ebp
pushl %esi
pushl %edi
- # Load the 2 words
+
movl (%ebx), %edi
movl 4(%ebx), %esi
xorl %eax, %eax
@@ -28,7 +28,7 @@ BF_encrypt:
xorl %ecx, %ecx
xorl %ebx, %edi
- # Round 0
+
movl 4(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -48,7 +48,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 1
+
movl 8(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -68,7 +68,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 2
+
movl 12(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -88,7 +88,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 3
+
movl 16(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -108,7 +108,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 4
+
movl 20(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -128,7 +128,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 5
+
movl 24(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -148,7 +148,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 6
+
movl 28(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -168,7 +168,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 7
+
movl 32(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -188,7 +188,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 8
+
movl 36(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -208,7 +208,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 9
+
movl 40(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -228,7 +228,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 10
+
movl 44(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -248,7 +248,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 11
+
movl 48(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -268,7 +268,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 12
+
movl 52(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -288,7 +288,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 13
+
movl 56(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -308,7 +308,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 14
+
movl 60(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -328,7 +328,7 @@ BF_encrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 15
+
movl 64(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -345,7 +345,7 @@ BF_encrypt:
xorl %eax, %ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx, %ebx
- # Load parameter 0 (16) enc=1
+
movl 20(%esp), %eax
xorl %ebx, %edi
movl 68(%ebp), %edx
@@ -357,8 +357,8 @@ BF_encrypt:
popl %ebx
popl %ebp
ret
-.BF_encrypt_end:
- .size BF_encrypt,.BF_encrypt_end-BF_encrypt
+.L_BF_encrypt_end:
+ .size BF_encrypt,.L_BF_encrypt_end-BF_encrypt
.ident "BF_encrypt"
.text
.align 16
@@ -372,7 +372,7 @@ BF_decrypt:
movl 16(%esp), %ebp
pushl %esi
pushl %edi
- # Load the 2 words
+
movl (%ebx), %edi
movl 4(%ebx), %esi
xorl %eax, %eax
@@ -380,7 +380,7 @@ BF_decrypt:
xorl %ecx, %ecx
xorl %ebx, %edi
- # Round 16
+
movl 64(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -400,7 +400,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 15
+
movl 60(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -420,7 +420,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 14
+
movl 56(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -440,7 +440,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 13
+
movl 52(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -460,7 +460,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 12
+
movl 48(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -480,7 +480,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 11
+
movl 44(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -500,7 +500,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 10
+
movl 40(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -520,7 +520,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 9
+
movl 36(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -540,7 +540,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 8
+
movl 32(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -560,7 +560,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 7
+
movl 28(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -580,7 +580,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 6
+
movl 24(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -600,7 +600,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 5
+
movl 20(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -620,7 +620,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 4
+
movl 16(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -640,7 +640,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 3
+
movl 12(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -660,7 +660,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %edi
- # Round 2
+
movl 8(%ebp), %edx
movl %edi, %ebx
xorl %edx, %esi
@@ -680,7 +680,7 @@ BF_decrypt:
xorl %eax, %eax
xorl %ebx, %esi
- # Round 1
+
movl 4(%ebp), %edx
movl %esi, %ebx
xorl %edx, %edi
@@ -697,7 +697,7 @@ BF_decrypt:
xorl %eax, %ebx
movl 3144(%ebp,%edx,4),%edx
addl %edx, %ebx
- # Load parameter 0 (1) enc=0
+
movl 20(%esp), %eax
xorl %ebx, %edi
movl (%ebp), %edx
@@ -709,8 +709,8 @@ BF_decrypt:
popl %ebx
popl %ebp
ret
-.BF_decrypt_end:
- .size BF_decrypt,.BF_decrypt_end-BF_decrypt
+.L_BF_decrypt_end:
+ .size BF_decrypt,.L_BF_decrypt_end-BF_decrypt
.ident "BF_decrypt"
.text
.align 16
@@ -723,7 +723,7 @@ BF_cbc_encrypt:
pushl %esi
pushl %edi
movl 28(%esp), %ebp
- # getting iv ptr from parameter 4
+
movl 36(%esp), %ebx
movl (%ebx), %esi
movl 4(%ebx), %edi
@@ -734,9 +734,9 @@ BF_cbc_encrypt:
movl %esp, %ebx
movl 36(%esp), %esi
movl 40(%esp), %edi
- # getting encrypt flag from parameter 5
+
movl 56(%esp), %ecx
- # get and push parameter 3
+
movl 48(%esp), %eax
pushl %eax
pushl %ebx
@@ -752,18 +752,18 @@ BF_cbc_encrypt:
xorl %ecx, %eax
xorl %edx, %ebx
.byte 15
-.byte 200 # bswapl %eax
+.byte 200
.byte 15
-.byte 203 # bswapl %ebx
+.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_encrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
-.byte 200 # bswapl %eax
+.byte 200
.byte 15
-.byte 203 # bswapl %ebx
+.byte 203
movl %eax, (%edi)
movl %ebx, 4(%edi)
addl $8, %esi
@@ -774,43 +774,48 @@ BF_cbc_encrypt:
movl 52(%esp), %ebp
andl $7, %ebp
jz .L003finish
+ call .L004PIC_point
+.L004PIC_point:
+ popl %edx
+ leal .L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx
+ movl (%ecx,%ebp,4), %ebp
+ addl %edx, %ebp
xorl %ecx, %ecx
xorl %edx, %edx
- movl .L004cbc_enc_jmp_table(,%ebp,4),%ebp
jmp *%ebp
-.L005ej7:
+.L006ej7:
movb 6(%esi), %dh
sall $8, %edx
-.L006ej6:
+.L007ej6:
movb 5(%esi), %dh
-.L007ej5:
+.L008ej5:
movb 4(%esi), %dl
-.L008ej4:
+.L009ej4:
movl (%esi), %ecx
- jmp .L009ejend
-.L010ej3:
+ jmp .L010ejend
+.L011ej3:
movb 2(%esi), %ch
sall $8, %ecx
-.L011ej2:
+.L012ej2:
movb 1(%esi), %ch
-.L012ej1:
+.L013ej1:
movb (%esi), %cl
-.L009ejend:
+.L010ejend:
xorl %ecx, %eax
xorl %edx, %ebx
.byte 15
-.byte 200 # bswapl %eax
+.byte 200
.byte 15
-.byte 203 # bswapl %ebx
+.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_encrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
-.byte 200 # bswapl %eax
+.byte 200
.byte 15
-.byte 203 # bswapl %ebx
+.byte 203
movl %eax, (%edi)
movl %ebx, 4(%edi)
jmp .L003finish
@@ -819,23 +824,23 @@ BF_cbc_encrypt:
andl $4294967288, %ebp
movl 16(%esp), %eax
movl 20(%esp), %ebx
- jz .L013decrypt_finish
-.L014decrypt_loop:
+ jz .L014decrypt_finish
+.L015decrypt_loop:
movl (%esi), %eax
movl 4(%esi), %ebx
.byte 15
-.byte 200 # bswapl %eax
+.byte 200
.byte 15
-.byte 203 # bswapl %ebx
+.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_decrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
-.byte 200 # bswapl %eax
+.byte 200
.byte 15
-.byte 203 # bswapl %ebx
+.byte 203
movl 16(%esp), %ecx
movl 20(%esp), %edx
xorl %eax, %ecx
@@ -849,52 +854,52 @@ BF_cbc_encrypt:
addl $8, %esi
addl $8, %edi
subl $8, %ebp
- jnz .L014decrypt_loop
-.L013decrypt_finish:
+ jnz .L015decrypt_loop
+.L014decrypt_finish:
movl 52(%esp), %ebp
andl $7, %ebp
jz .L003finish
movl (%esi), %eax
movl 4(%esi), %ebx
.byte 15
-.byte 200 # bswapl %eax
+.byte 200
.byte 15
-.byte 203 # bswapl %ebx
+.byte 203
movl %eax, 8(%esp)
movl %ebx, 12(%esp)
call BF_decrypt
movl 8(%esp), %eax
movl 12(%esp), %ebx
.byte 15
-.byte 200 # bswapl %eax
+.byte 200
.byte 15
-.byte 203 # bswapl %ebx
+.byte 203
movl 16(%esp), %ecx
movl 20(%esp), %edx
xorl %eax, %ecx
xorl %ebx, %edx
movl (%esi), %eax
movl 4(%esi), %ebx
-.L015dj7:
+.L016dj7:
rorl $16, %edx
movb %dl, 6(%edi)
shrl $16, %edx
-.L016dj6:
+.L017dj6:
movb %dh, 5(%edi)
-.L017dj5:
+.L018dj5:
movb %dl, 4(%edi)
-.L018dj4:
+.L019dj4:
movl %ecx, (%edi)
- jmp .L019djend
-.L020dj3:
+ jmp .L020djend
+.L021dj3:
rorl $16, %ecx
movb %cl, 2(%edi)
sall $16, %ecx
-.L021dj2:
+.L022dj2:
movb %ch, 1(%esi)
-.L022dj1:
+.L023dj1:
movb %cl, (%esi)
-.L019djend:
+.L020djend:
jmp .L003finish
.align 16
.L003finish:
@@ -908,25 +913,15 @@ BF_cbc_encrypt:
popl %ebp
ret
.align 16
-.L004cbc_enc_jmp_table:
- .long 0
- .long .L012ej1
- .long .L011ej2
- .long .L010ej3
- .long .L008ej4
- .long .L007ej5
- .long .L006ej6
- .long .L005ej7
-.align 16
-.L023cbc_dec_jmp_table:
+.L005cbc_enc_jmp_table:
.long 0
- .long .L022dj1
- .long .L021dj2
- .long .L020dj3
- .long .L018dj4
- .long .L017dj5
- .long .L016dj6
- .long .L015dj7
+ .long .L013ej1-.L004PIC_point
+ .long .L012ej2-.L004PIC_point
+ .long .L011ej3-.L004PIC_point
+ .long .L009ej4-.L004PIC_point
+ .long .L008ej5-.L004PIC_point
+ .long .L007ej6-.L004PIC_point
+ .long .L006ej7-.L004PIC_point
.L_BF_cbc_encrypt_end:
.size BF_cbc_encrypt,.L_BF_cbc_encrypt_end-BF_cbc_encrypt
.ident "desasm.pl"
OpenPOWER on IntegriCloud