--- arch/x86/crypto/aes-x86_64-asm_64.S | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) --- a/arch/x86/crypto/aes-x86_64-asm_64.S +++ b/arch/x86/crypto/aes-x86_64-asm_64.S @@ -49,13 +49,17 @@ #define R9 %r9 #define R10 %r10 #define R11 %r11 +#define R12 %r12 +#define R15 %r15 +#define R16 %rsp #define prologue(FUNC,KEY,B128,B192,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11) \ .global FUNC; \ .type FUNC,@function; \ .align 8; \ -FUNC: movq r1,r2; \ - movq r3,r4; \ +FUNC: subq $8, R16; \ + movq r3, r4; \ + movq r1, (R16); \ leaq BASE+KEY+48+4(r8),r9; \ movq r10,r11; \ movl (r7),r5 ## E; \ @@ -74,7 +78,8 @@ FUNC: movq r1,r2; \ leaq 32(r9),r9; #define epilogue(r1,r2,r3,r4,r5,r6,r7,r8,r9) \ - movq r1,r2; \ + movq (R16),r2; \ + addq $8,R16; \ movq r3,r4; \ movl r5 ## E,(r9); \ movl r6 ## E,4(r9); \