base/asm-common.h, symm/rijndael-x86ish-aesni.S: Better section switching.
[catacomb] / symm / rijndael-x86ish-aesni.S
index 2f6430b..3cca50f 100644 (file)
@@ -390,10 +390,10 @@ ENDFUNC
        // Arguments come in on the stack, and need to be collected.  We
        // don't have a shortage of registers.
 
-#  define K ecx
+#  define K eax
 #  define SRC edx
 #  define DST edx
-#  define NR eax
+#  define NR ecx
 
        mov     K, [esp + 4]
        mov     SRC, [esp + 8]
@@ -432,6 +432,9 @@ ENDFUNC
        movdqu  xmm1, [K]
        add     K, 16
        pxor    xmm0, xmm1
+#if CPUFAM_X86
+       mov     DST, [esp + 12]
+#endif
 
        // Dispatch to the correct code.
        cmp     NR, 10
@@ -509,9 +512,6 @@ ENDFUNC
 
        // Unpermute the ciphertext block and store it.
        pshufb  xmm0, xmm5
-#if CPUFAM_X86
-       mov     DST, [esp + 12]
-#endif
        movdqu  [DST], xmm0
 
        // And we're done.
@@ -545,6 +545,8 @@ bogus:      callext F(abort)
 ///--------------------------------------------------------------------------
 /// Data tables.
 
+       RODATA
+
        .align  16
 endswap_tab:
        .byte    3,  2,  1,  0