--- arch/x86/crypto/aes-x86_64-asm_64.S | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) --- a/arch/x86/crypto/aes-x86_64-asm_64.S +++ b/arch/x86/crypto/aes-x86_64-asm_64.S @@ -117,6 +117,7 @@ FUNC: subq $24, R16; \ movzbl r1 ## L,r3 ## E; \ xorq R12,ra; \ movq R9,r1; \ + movq OFFSET+8(r8),R9; \ shrq $32,R12; \ xorl TAB+3072(,r7,4),r6 ## E;\ movl TAB+2048(,r3,4),r3 ## E;\ @@ -126,16 +127,17 @@ FUNC: subq $24, R16; \ xorl TAB(,r1,4),r3 ## E; \ movzbl r2 ## H,r1 ## E; \ movzbl r2 ## L,r7 ## E; \ + xorq R9,rc; \ movq R8,r2; \ + shrq $32,R9; \ xorq R12,rb; \ xorl TAB+3072(,r1,4),r3 ## E;\ xorl TAB+2048(,r7,4),r4 ## E;\ movzbl r2 ## H,r1 ## E; \ + xorq R9,rd; \ movzbl r2 ## L,r2 ## E; \ - xorl OFFSET+8(r8),rc ## E; \ - xorl OFFSET+12(r8),rd ## E; \ - xorl TAB+1024(,r1,4),r3 ## E;\ - xorl TAB(,r2,4),r4 ## E; + xorl TAB(,r2,4),r4 ## E; \ + xorl TAB+1024(,r1,4),r3 ## E; #define move_regs(r1,r2,r3,r4) \ movl r3 ## E,r1 ## E; \