#include "config.h"
#include "asm-common.h"
- .globl F(abort)
- .globl F(rijndael_rcon)
+ .extern F(abort)
+ .extern F(rijndael_rcon)
///--------------------------------------------------------------------------
/// Main code.
// r2 = pointer to key material
// r3 = key size in words
- stmfd sp!, {r4-r9, r14}
+ pushreg {r4-r9, r14}
// The initial round key material is taken directly from the input
// key, so copy it over. Unfortunately, the key material is not
bl endswap_block
// All done.
-9: ldmfd sp!, {r4-r9, pc}
+9: popreg {r4-r9, pc}
-endswap_block:
+ENDFUNC
+
+INTFUNC(endswap_block)
// End-swap R2 words starting at R1. R1 is clobbered; R2 is not.
// It's OK to work in 16-byte chunks.
+
mov r4, r2
0: vldmia r1, {d0, d1}
vrev32.8 q0, q0