Sync aes/asm with stable branch.
authorAndy Polyakov <appro@openssl.org>
Sat, 27 Dec 2008 13:37:45 +0000 (13:37 +0000)
committerAndy Polyakov <appro@openssl.org>
Sat, 27 Dec 2008 13:37:45 +0000 (13:37 +0000)
crypto/aes/asm/aes-586.pl
crypto/aes/asm/aes-x86_64.pl

index 89fa2617944b5658a967f2557667929c508eafef..3bc46a968e37c768fe5465c2dd32f56c03c771b0 100755 (executable)
@@ -955,8 +955,9 @@ my $mark=&DWP(60+240,"esp");        #copy of aes_key->rounds
 
     &align     (4);
     &set_label("enc_tail");
-       &push   ($key eq "edi" ? $key : "");    # push ivp
+       &mov    ($s0,$key eq "edi" ? $key : "");
        &mov    ($key,$_out);                   # load out
+       &push   ($s0);                          # push ivp
        &mov    ($s1,16);
        &sub    ($s1,$s2);
        &cmp    ($key,$acc);                    # compare with inp
index 6711b63f7f57aefc5e210dd60465c7324d40b5fd..f616f1751f7e773131a8b8bacc0fd2586d241882 100755 (executable)
@@ -1198,6 +1198,8 @@ AES_cbc_encrypt:
        ret
 .align 4
 .Lcbc_enc_tail:
+       mov     %rax,%r11
+       mov     %rcx,%r12
        mov     %r10,%rcx
        mov     $inp,%rsi
        mov     $out,%rdi
@@ -1208,6 +1210,8 @@ AES_cbc_encrypt:
        .long   0xF689AAF3              # rep stosb
        mov     $out,$inp               # this is not a mistake!
        movq    \$16,$_len              # len=16
+       mov     %r11,%rax
+       mov     %r12,%rcx
        jmp     .Lcbc_enc_loop          # one more spin...
 #----------------------------- DECRYPT -----------------------------#
 .align 16