chacha/asm/chacha-*.pl: fix typos in tail processing.
[openssl.git] / crypto / chacha / asm / chacha-x86_64.pl
index 1a87cf8495abc7f3dba2016897c640b8b2ff2dc4..4b36b5825c4508ef20364d1052f376b6c4842152 100755 (executable)
@@ -219,6 +219,8 @@ $code.=<<___;
 .type  ChaCha20_ctr32,\@function,5
 .align 64
 ChaCha20_ctr32:
+       cmp     \$0,$len
+       je      .Lno_data
        mov     OPENSSL_ia32cap_P+4(%rip),%r10
        test    \$`1<<(41-32)`,%r10d
        jnz     .LChaCha20_ssse3
@@ -375,6 +377,7 @@ $code.=<<___;
        pop     %r12
        pop     %rbp
        pop     %rbx
+.Lno_data:
        ret
 .size  ChaCha20_ctr32,.-ChaCha20_ctr32
 ___
@@ -1541,13 +1544,13 @@ $code.=<<___;
        je              .Ldone4xop
 
        lea             0x40($inp),$inp         # inp+=64*3
-       vmovdqa         $xa2,0x00(%rsp)
+       vmovdqa         $xa3,0x00(%rsp)
        xor             %r10,%r10
-       vmovdqa         $xb2,0x10(%rsp)
+       vmovdqa         $xb3,0x10(%rsp)
        lea             0x40($out),$out         # out+=64*3
-       vmovdqa         $xc2,0x20(%rsp)
+       vmovdqa         $xc3,0x20(%rsp)
        sub             \$192,$len              # len-=64*3
-       vmovdqa         $xd2,0x30(%rsp)
+       vmovdqa         $xd3,0x30(%rsp)
 
 .Loop_tail4xop:
        movzb           ($inp,%r10),%eax