X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/8ae4c946c49862151bf7fd6ae65b116ec62be606..70bc6059902c30dcbd1cddbdb628e4bcbd9cc6f5:/symm/rijndael-x86ish-aesni.S diff --git a/symm/rijndael-x86ish-aesni.S b/symm/rijndael-x86ish-aesni.S index 12d4267f..27f09bc4 100644 --- a/symm/rijndael-x86ish-aesni.S +++ b/symm/rijndael-x86ish-aesni.S @@ -165,7 +165,10 @@ FUNC(rijndael_setup_x86ish_aesni) // We'll need the index registers, which belong to the caller in this // ABI. push rsi + .seh_pushreg rsi push rdi + .seh_pushreg rdi + .seh_endprologue // Move arguments to more useful places. mov SI, r8 // key material @@ -391,10 +394,6 @@ ENDFUNC .macro encdec op, aes, koff FUNC(rijndael_\op\()_x86ish_aesni) - // Find the magic endianness-swapping table. - ldgot ecx - movdqa xmm5, [INTADDR(endswap_tab, ecx)] - #if CPUFAM_X86 // Arguments come in on the stack, and need to be collected. We // don't have a shortage of registers. @@ -424,8 +423,13 @@ ENDFUNC # define SRC rdx # define DST r8 # define NR eax + .seh_endprologue #endif + // Find the magic endianness-swapping table. + ldgot ecx + movdqa xmm5, [INTADDR(endswap_tab, ecx)] + // Initial setup. movdqu xmm0, [SRC] pshufb xmm0, xmm5