projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make x86_64 modules work under Win64/x64.
[openssl.git]
/
crypto
/
aes
/
asm
/
aes-x86_64.pl
diff --git
a/crypto/aes/asm/aes-x86_64.pl
b/crypto/aes/asm/aes-x86_64.pl
index a45fddb4e1d1fce5cc508009b7ce6268c7282863..995448a11057f4ce100e8ae8f11624f9e044bf74 100755
(executable)
--- a/
crypto/aes/asm/aes-x86_64.pl
+++ b/
crypto/aes/asm/aes-x86_64.pl
@@
-626,14
+626,13
@@
AES_encrypt:
call _x86_64_AES_encrypt_compact
call _x86_64_AES_encrypt_compact
- lea 16(%rsp),%rsp
- pop $out # restore out
+ mov 16(%rsp),$out # restore out
+ mov 24(%rsp),%rsp
mov $s0,0($out) # write output vector
mov $s1,4($out)
mov $s2,8($out)
mov $s3,12($out)
mov $s0,0($out) # write output vector
mov $s1,4($out)
mov $s2,8($out)
mov $s3,12($out)
- mov (%rsp),%rsp
pop %r15
pop %r14
pop %r13
pop %r15
pop %r14
pop %r13
@@
-1217,19
+1216,18
@@
AES_decrypt:
sub $sbox,%rbp
and \$0x300,%rbp
lea ($sbox,%rbp),$sbox
sub $sbox,%rbp
and \$0x300,%rbp
lea ($sbox,%rbp),$sbox
- shr \$3,%rbp
# recall "magic" constants!
+ shr \$3,%rbp # recall "magic" constants!
add %rbp,$sbox
call _x86_64_AES_decrypt_compact
add %rbp,$sbox
call _x86_64_AES_decrypt_compact
- lea 16(%rsp),%rsp
- pop $out # restore out
- mov $s0,0($out)
+ mov 16(%rsp),$out # restore out
+ mov 24(%rsp),%rsp
+ mov $s0,0($out)
# write output vector
mov $s1,4($out)
mov $s2,8($out)
mov $s3,12($out)
mov $s1,4($out)
mov $s2,8($out)
mov $s3,12($out)
- mov (%rsp),%rsp
pop %r15
pop %r14
pop %r13
pop %r15
pop %r14
pop %r13
@@
-1275,6
+1273,13
@@
$code.=<<___;
.type AES_set_encrypt_key,\@function,3
.align 16
AES_set_encrypt_key:
.type AES_set_encrypt_key,\@function,3
.align 16
AES_set_encrypt_key:
+ call _x86_64_AES_set_encrypt_key
+ ret
+.size AES_set_encrypt_key,.-AES_set_encrypt_key
+
+.type _x86_64_AES_set_encrypt_key,\@abi-omnipotent
+.align 16
+_x86_64_AES_set_encrypt_key:
push %rbx
push %rbp
push %rbx
push %rbp
@@
-1461,8
+1466,8
@@
$code.=<<___;
.Lexit:
pop %rbp
pop %rbx
.Lexit:
pop %rbp
pop %rbx
- ret
-.size
AES_set_encrypt_key,.-
AES_set_encrypt_key
+
.byte 0xf3,0xc3 # rep
ret
+.size
_x86_64_AES_set_encrypt_key,.-_x86_64_
AES_set_encrypt_key
___
sub deckey_ref()
___
sub deckey_ref()
@@
-1527,7
+1532,7
@@
$code.=<<___;
.align 16
AES_set_decrypt_key:
push %rdx # save key schedule
.align 16
AES_set_decrypt_key:
push %rdx # save key schedule
- call AES_set_encrypt_key
+ call
_x86_64_
AES_set_encrypt_key
cmp \$0,%eax
pop %r8 # restore key schedule
jne .Labort
cmp \$0,%eax
pop %r8 # restore key schedule
jne .Labort