From eb819e1eb8f604df5c9f263dc5dc09c8da778080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Sun, 16 Oct 2005 14:52:59 +0200 Subject: [PATCH] * sparc/machine.m4: Don't use m4 eval, instead rely on the assembler's arithmetic. Rev: src/nettle/sparc/machine.m4:1.12 --- sparc/machine.m4 | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/sparc/machine.m4 b/sparc/machine.m4 index 0817327a..7fc11ef2 100644 --- a/sparc/machine.m4 +++ b/sparc/machine.m4 @@ -1,9 +1,3 @@ -C FIXME: Do we need an OFFSET macro? Or is it fine to use expressions such as [%i1 + 0] - -C FIXME: How much can we rely on the assembler to be able to -C understand arithmetic expressions? Mayby we don't need to use m4 -C eval. - C Used as temporaries by the AES macros define(<TMP1>, <%g1>) define(<TMP2>, <%g2>) @@ -17,19 +11,19 @@ define(<T3>, <%o3>) C AES_LOAD(i, src, key, res) define(<AES_LOAD>, < - ldub [$2 + eval(4*$1)], $4 - ldub [$2 + eval(4*$1 + 1)], TMP1 - ldub [$2 + eval(4*$1 + 2)], TMP2 + ldub [$2 + 4*$1], $4 + ldub [$2 + 4*$1 + 1], TMP1 + ldub [$2 + 4*$1 + 2], TMP2 sll TMP1, 8, TMP1 or $4, TMP1, $4 - ldub [$2 + eval(4*$1+3)], TMP1 + ldub [$2 + 4*$1+3], TMP1 sll TMP2, 16, TMP2 or $4, TMP2, $4 sll TMP1, 24, TMP1 C Get subkey - ld [$3 + eval(4*$1)], TMP2 + ld [$3 + 4*$1], TMP2 or $4, TMP1, $4 xor $4, TMP2, $4>)dnl @@ -52,7 +46,7 @@ define(<AES_ROUND>, < ld [T2 + TMP1], TMP1 C 2 and TMP2, 0x3fc, TMP2 C 3 xor $7, TMP1, $7 C 2 E2 - ld [$6 + eval(4*$1)], TMP1 C 4 + ld [$6 + 4*$1], TMP1 C 4 ld [T3 + TMP2], TMP2 C 3 xor $7, TMP1, $7 C 4 E4 xor $7, TMP2, $7 C 3 E3 @@ -63,7 +57,7 @@ C Compute one word in the final round function. Output is converted to C octets and stored at dst. Relies on AES_SBOX being zero. define(<AES_FINAL_ROUND>, < C Load subkey - ld [$7 + eval(4*$1)], TMP3 + ld [$7 + 4*$1], TMP3 and $3, 0xff, TMP1 C 0 srl $4, 8, TMP2 C 1 @@ -71,20 +65,20 @@ define(<AES_FINAL_ROUND>, < and TMP2, 0xff, TMP2 C 1 xor TMP3, TMP1, TMP1 C 0 ldub [T + TMP2], TMP2 C 1 - stb TMP1, [$8 + eval(4*$1)] C 0 E0 + stb TMP1, [$8 + 4*$1] C 0 E0 srl $5, 16, TMP1 C 2 srl TMP3, 8, TMP3 C 1 and TMP1, 0xff, TMP1 C 2 xor TMP3, TMP2, TMP2 C 1 ldub [T + TMP1], TMP1 C 2 - stb TMP2, [$8 + eval(4*$1 + 1)] C 1 E1 + stb TMP2, [$8 + 4*$1 + 1] C 1 E1 srl $6, 24, TMP2 C 3 srl TMP3, 8, TMP3 C 2 ldub [T + TMP2], TMP2 C 3 xor TMP3, TMP1, TMP1 C 2 srl TMP3, 8, TMP3 C 3 - stb TMP1, [$8 + eval(4*$1 + 2)] C 2 E2 + stb TMP1, [$8 + 4*$1 + 2] C 2 E2 xor TMP3, TMP2, TMP2 C 3 - stb TMP2, [$8 + eval(4*$1 + 3)] C 3 E3 + stb TMP2, [$8 + 4*$1 + 3] C 3 E3 >) -- GitLab