098 aes-x86_64.pl module was erroneously enabled in Win64 build without

being adapted for Win64 ABI. Fix this.
This commit is contained in:
Andy Polyakov
2010-05-30 22:02:03 +00:00
parent 3416d11926
commit 18394ed50f

View File

@@ -751,7 +751,19 @@ $code.=<<___;
AES_set_encrypt_key: AES_set_encrypt_key:
push %rbx push %rbx
push %rbp push %rbp
sub \$8,%rsp
call _x86_64_AES_set_encrypt_key
mov 8(%rsp),%rbp
mov 16(%rsp),%rbx
add \$24,%rsp
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:
mov %esi,%ecx # %ecx=bits mov %esi,%ecx # %ecx=bits
mov %rdi,%rsi # %rsi=userKey mov %rdi,%rsi # %rsi=userKey
mov %rdx,%rdi # %rdi=key mov %rdx,%rdi # %rdi=key
@@ -938,10 +950,8 @@ $code.=<<___;
.Lbadpointer: .Lbadpointer:
mov \$-1,%rax mov \$-1,%rax
.Lexit: .Lexit:
pop %rbp .byte 0xf3,0xc3 # rep ret
pop %rbx .size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key
ret
.size AES_set_encrypt_key,.-AES_set_encrypt_key
___ ___
sub deckey() sub deckey()
@@ -973,15 +983,14 @@ $code.=<<___;
.type AES_set_decrypt_key,\@function,3 .type AES_set_decrypt_key,\@function,3
.align 16 .align 16
AES_set_decrypt_key: AES_set_decrypt_key:
push %rdx push %rbx
call AES_set_encrypt_key push %rbp
cmp \$0,%eax push %rdx # save key schedule
je .Lproceed
lea 24(%rsp),%rsp call _x86_64_AES_set_encrypt_key
ret
.Lproceed:
mov (%rsp),%r8 # restore key schedule mov (%rsp),%r8 # restore key schedule
mov %rbx,(%rsp) cmp \$0,%eax
jne .Labort
mov 240(%r8),%ecx # pull number of rounds mov 240(%r8),%ecx # pull number of rounds
xor %rdi,%rdi xor %rdi,%rdi
@@ -1023,7 +1032,10 @@ $code.=<<___;
jnz .Lpermute jnz .Lpermute
xor %rax,%rax xor %rax,%rax
pop %rbx .Labort:
mov 8(%rsp),%rbp
mov 16(%rsp),%rbx
add \$24,%rsp
ret ret
.size AES_set_decrypt_key,.-AES_set_decrypt_key .size AES_set_decrypt_key,.-AES_set_decrypt_key
___ ___