Non-executable stack in asm.
[openssl.git] / crypto / aes / asm / aes-x86_64.pl
index c75e0ea..a757b47 100755 (executable)
@@ -42,7 +42,8 @@ $verticalspin=1;      # unlike 32-bit version $verticalspin performs
                        # ~15% better on both AMD and Intel cores
 $speed_limit=512;      # see aes-586.pl for details
 
-$code=".text\n";
+$code=".section .note.GNU-stack,\"\",\@progbits\n";
+$code.=".text\n";
 
 $s0="%eax";
 $s1="%ebx";
@@ -1990,6 +1991,8 @@ AES_cbc_encrypt:
 
 .align 4
 .Lcbc_slow_enc_tail:
+       mov     %rax,%r11
+       mov     %rcx,%r12
        mov     %r10,%rcx
        mov     $inp,%rsi
        mov     $out,%rdi
@@ -2000,6 +2003,8 @@ AES_cbc_encrypt:
        .long   0x9066AAF3              # rep stosb
        mov     $out,$inp               # this is not a mistake!
        mov     \$16,%r10               # len=16
+       mov     %r11,%rax
+       mov     %r12,%rcx
        jmp     .Lcbc_slow_enc_loop     # one more spin...
 #--------------------------- SLOW DECRYPT ---------------------------#
 .align 16