]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
* sparc/machine.m4: Don't use m4 eval, instead rely on the
authorNiels Möller <nisse@lysator.liu.se>
Sun, 16 Oct 2005 12:52:59 +0000 (14:52 +0200)
committerNiels Möller <nisse@lysator.liu.se>
Sun, 16 Oct 2005 12:52:59 +0000 (14:52 +0200)
assembler's arithmetic.

Rev: src/nettle/sparc/machine.m4:1.12

sparc/machine.m4

index 0817327aa96fc6817ea874f24b280d7261441f88..7fc11ef21baa045b0766c8cba0b6463aaf0981ac 100644 (file)
@@ -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
 >)