| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| From: Uros Bizjak <ubizjak@gmail.com> |
| Date: Thu, 27 Aug 2020 19:38:31 +0200 |
| Subject: [PATCH] crypto: poly1305-x86_64 - Use XORL r32,32 |
| |
| commit 7dfd1e01b3dfc13431b1b25720cf2692a7e111ef upstream. |
| |
| x86_64 zero extends 32bit operations, so for 64bit operands, |
| XORL r32,r32 is functionally equal to XORQ r64,r64, but avoids |
| a REX prefix byte when legacy registers are used. |
| |
| Signed-off-by: Uros Bizjak <ubizjak@gmail.com> |
| Cc: Herbert Xu <herbert@gondor.apana.org.au> |
| Cc: "David S. Miller" <davem@davemloft.net> |
| Acked-by: Jason A. Donenfeld <Jason@zx2c4.com> |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> |
| --- |
| arch/x86/crypto/poly1305-x86_64-cryptogams.pl | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/arch/x86/crypto/poly1305-x86_64-cryptogams.pl |
| +++ b/arch/x86/crypto/poly1305-x86_64-cryptogams.pl |
| @@ -246,7 +246,7 @@ $code.=<<___ if (!$kernel); |
| ___ |
| &declare_function("poly1305_init_x86_64", 32, 3); |
| $code.=<<___; |
| - xor %rax,%rax |
| + xor %eax,%eax |
| mov %rax,0($ctx) # initialize hash value |
| mov %rax,8($ctx) |
| mov %rax,16($ctx) |
| @@ -2869,7 +2869,7 @@ $code.=<<___; |
| .type poly1305_init_base2_44,\@function,3 |
| .align 32 |
| poly1305_init_base2_44: |
| - xor %rax,%rax |
| + xor %eax,%eax |
| mov %rax,0($ctx) # initialize hash value |
| mov %rax,8($ctx) |
| mov %rax,16($ctx) |
| @@ -3963,7 +3963,7 @@ xor128_decrypt_n_pad: |
| mov \$16,$len |
| sub %r10,$len |
| xor %eax,%eax |
| - xor %r11,%r11 |
| + xor %r11d,%r11d |
| .Loop_dec_byte: |
| mov ($inp,$otp),%r11b |
| mov ($otp),%al |
| @@ -4101,7 +4101,7 @@ avx_handler: |
| .long 0xa548f3fc # cld; rep movsq |
| |
| mov $disp,%rsi |
| - xor %rcx,%rcx # arg1, UNW_FLAG_NHANDLER |
| + xor %ecx,%ecx # arg1, UNW_FLAG_NHANDLER |
| mov 8(%rsi),%rdx # arg2, disp->ImageBase |
| mov 0(%rsi),%r8 # arg3, disp->ControlPc |
| mov 16(%rsi),%r9 # arg4, disp->FunctionEntry |