2013-05-16 Niels Möller <nisse@lysator.liu.se>
- * arm/aes.m4 (AES_ENCRYPT_ROUND, AES_DECRYPT): Moved macros to the
+ * arm/aes.m4 (AES_FINAL_ROUND_V6): New name, updated callers.
+ (AES_FINAL_ROUND_): ... old name. Also eliminated one uxtb
+ instruction.
+ (AES_ENCRYPT_ROUND, AES_DECRYPT): Moved macros to the
files using them.
- (AES_FINAL_ROUND): Eliminated one uxtb instruction.
* arm/v6/aes-encrypt-internal.asm: Use ALIGN macro. Use 16-byte
alignment for loops.
strb $2, [$1], #+1
>)
-C AES_FINAL_ROUND(a,b,c,d,key,res)
-define(<AES_FINAL_ROUND>, <
+C AES_FINAL_ROUND_V6(a,b,c,d,key,res)
+define(<AES_FINAL_ROUND_V6>, <
uxtb T0, $1
ldrb $6, [TABLE, T0]
uxtb T0, $2, ror #8
sub TABLE, TABLE, #AES_TABLE0
C Final round
- AES_FINAL_ROUND(X0, X3, X2, X1, KEY, W0)
- AES_FINAL_ROUND(X1, X0, X3, X2, KEY, W1)
- AES_FINAL_ROUND(X2, X1, X0, X3, KEY, W2)
- AES_FINAL_ROUND(X3, X2, X1, X0, KEY, W3)
+ AES_FINAL_ROUND_V6(X0, X3, X2, X1, KEY, W0)
+ AES_FINAL_ROUND_V6(X1, X0, X3, X2, KEY, W1)
+ AES_FINAL_ROUND_V6(X2, X1, X0, X3, KEY, W2)
+ AES_FINAL_ROUND_V6(X3, X2, X1, X0, KEY, W3)
pop {LENGTH, DST, SRC}
sub TABLE, TABLE, #AES_TABLE0
C Final round
- AES_FINAL_ROUND(X0, X1, X2, X3, KEY, W0)
- AES_FINAL_ROUND(X1, X2, X3, X0, KEY, W1)
- AES_FINAL_ROUND(X2, X3, X0, X1, KEY, W2)
- AES_FINAL_ROUND(X3, X0, X1, X2, KEY, W3)
+ AES_FINAL_ROUND_V6(X0, X1, X2, X3, KEY, W0)
+ AES_FINAL_ROUND_V6(X1, X2, X3, X0, KEY, W1)
+ AES_FINAL_ROUND_V6(X2, X3, X0, X1, KEY, W2)
+ AES_FINAL_ROUND_V6(X3, X0, X1, X2, KEY, W3)
pop {LENGTH, DST, SRC}