chacha20/SSSE3: clear XMM registers after use
authorJussi Kivilinna <jussi.kivilinna@iki.fi>
Mon, 12 May 2014 16:55:35 +0000 (19:55 +0300)
committerJussi Kivilinna <jussi.kivilinna@iki.fi>
Mon, 12 May 2014 16:55:35 +0000 (19:55 +0300)
* cipher/chacha20-ssse3-amd64.S (_gcry_chacha20_amd64_ssse3_blocks): On
return, clear XMM registers.
--

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
cipher/chacha20-ssse3-amd64.S

index aaa7e5b..50c2ff8 100644 (file)
@@ -594,9 +594,25 @@ _gcry_chacha20_amd64_ssse3_blocks:
 .Lchacha_blocks_ssse3_done:
        movdqu %xmm11, 48(%rdi)
        movq %rbp, %rsp
+       pxor %xmm15, %xmm15
+       pxor %xmm7, %xmm7
+       pxor %xmm14, %xmm14
+       pxor %xmm6, %xmm6
+       pxor %xmm13, %xmm13
+       pxor %xmm5, %xmm5
+       pxor %xmm12, %xmm12
+       pxor %xmm4, %xmm4
        popq %rbp
        popq %rbx
        movl $(63 + 512 + 16), %eax
+       pxor %xmm11, %xmm11
+       pxor %xmm3, %xmm3
+       pxor %xmm10, %xmm10
+       pxor %xmm2, %xmm2
+       pxor %xmm9, %xmm9
+       pxor %xmm1, %xmm1
+       pxor %xmm8, %xmm8
+       pxor %xmm0, %xmm0
        ret
 .size _gcry_chacha20_amd64_ssse3_blocks,.-_gcry_chacha20_amd64_ssse3_blocks;