]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
* sparc/aes.asm (idx, aes_encrypt): Multiplied tabled values by 4,
authorNiels Möller <nisse@lysator.liu.se>
Tue, 12 Feb 2002 01:57:38 +0000 (02:57 +0100)
committerNiels Möller <nisse@lysator.liu.se>
Tue, 12 Feb 2002 01:57:38 +0000 (02:57 +0100)
making it possible to get rid of some shifts in the inner loop.

Rev: src/nettle/sparc/aes.asm:1.10

sparc/aes.asm

index 97d2a253427cdbdef5872e8c0118933ce354ed9c..11d224cccf8d338d3abc555a4ffc8a1b928576e5 100644 (file)
@@ -133,10 +133,10 @@ key_addition32to8:
        .size   idx,64
 idx:
 define(idx_row,
-<      .long   $1
-       .long   $2
-       .long   $3
-       .long   $4
+<      .long   eval(4 * $1)
+       .long   eval(4 * $2)
+       .long   eval(4 * $3)
+       .long   eval(4 * $4)
 >)
 idx_row(0, 1, 2, 3)
 idx_row(1, 2, 3, 0)
@@ -218,11 +218,8 @@ aes_encrypt:
        sll     %o7, 2, %g2
        ! %o1 = idx[2][0]
        ld      [%g3-16], %o1
-       ! %o2 = 4 idx[3][0]
-       sll     %o0, 2, %o0
        ! %o3 = wtxt[idx[3][0]], byte => bits 24-31
        ldub    [%l0+%o0], %o3
-       sll     %o1, 2, %o1
        ! %o4 = wtxt[idx[2][0]], half-word???
        lduh    [%l0+%o1], %o4
        sll     %o3, 2, %o3
@@ -232,8 +229,6 @@ aes_encrypt:
        and     %o4, 255, %o4
        ! %o2 = dtbl[wtxt[idx[3][0]] >> 24]
        ld      [dtbl+%o3], %o2
-       ! %o0 = 4 idx[1][0]
-       sll     %o0, 2, %o0
        ! %o3 = dtbl[wtxt[idx[3][0]] >> 24] >> 24
        srl     %o2, 24, %o3
        ! %o4 = 4 ((wtxt[idx[2][0]] >> 16) & 0xff)
@@ -283,8 +278,10 @@ aes_encrypt:
        add     %o7, 1, %o7
        ! txt[j] (old j) = XX3 
        st      %o1, [%l4+%g2]
+
        ! j <= 3?
        cmp     %o7, 3
+
        bleu    .Lencrypt_inner
        ! %g3 = &idx[3][j]
        add     %g3, 4, %g3
@@ -321,27 +318,21 @@ aes_encrypt:
        mov     txt, %l0
        ! %g2 = &idx[3][0]
        add     g_idx, 48, %g2
-.LL63:
+.Lencrypt_final_inner:
        ! %o0 = idx[1][0]
        ld      [%g2-32], %o0
        ! %o5 = 4 j
        sll     %o7, 2, %o5
        ! %o2 = idx[2][0]
        ld      [%g2-16], %o2
-       ! %o0 = 4(idx[1][0])
-       sll     %o0, 2, %o0
        ! %o3 = wtxt[idx[1][0]]
        ld      [%g3+%o0], %o3
-       ! %o2 = 4 idx[2][0]
-       sll     %o2, 2, %o2
        ! %o4 = idx[3][0]
        ld      [%g2], %o4
        ! %o3 = wtxt[idx[1][0]] & 0xff00 
        and     %o3, %l3, %o3
        ! %o1 = wtxt[idx[2][0]]
        ld      [%g3+%o2], %o1
-       ! %o4 = 4 idx[3][0]
-       sll     %o4, 2, %o4
        ! %o0 = wtxt[idx[1][0]]
        ld      [%g3+%o5], %o0
        ! %o1 = wtxt[idx[2][0]] & 0xff0000
@@ -365,7 +356,7 @@ aes_encrypt:
        st      %o0, [%l0+%o5]
        ! j <= 3?
        cmp     %o7, 3
-       bleu    .LL63
+       bleu    .Lencrypt_final_inner
        ! %g2 = &idx[3][j]
        add     %g2, 4, %g2