]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
* sparc/aes.asm: Use that IDX2(j) == j ^ 2
authorNiels Möller <nisse@lysator.liu.se>
Sat, 16 Feb 2002 00:48:43 +0000 (01:48 +0100)
committerNiels Möller <nisse@lysator.liu.se>
Sat, 16 Feb 2002 00:48:43 +0000 (01:48 +0100)
Rev: src/nettle/sparc/aes.asm:1.42

sparc/aes.asm

index 59e18683b7fdeb2e3ea33e39cb8270403c87e27b..108c69d0e8b09be00bbd15bfc967d641b3042c7a 100644 (file)
@@ -123,7 +123,10 @@ _aes_crypt:
        ld      [idx-32], t1            ! 1
 
        ! AES_SIDX2
-       ld      [idx-16], t2            ! 2
+       ! ld    [idx-16], t2            ! 2
+       ! IDX2(j) = j XOR 2
+       xor     i, 8, t2
+       
        ! wtxt[IDX1...]
        add     wtxt, t1, t1            ! 1
        ldub    [t1+2], t1              ! 1
@@ -162,6 +165,9 @@ _aes_crypt:
        add     idx, 4, idx             
 
        ! Fetch roundkey
+       ! FIXME: We could save one instruction
+       ! if we kept a pointer to the current subkey,
+       ! indexed by i.
        ld      [ctx+round], t1
        add     round, 4, round
        
@@ -290,3 +296,36 @@ _aes_crypt:
        ! aes256 (ECB decrypt): 14.81s, 0.675MB/s
        ! aes256 (CBC encrypt): 22.65s, 0.442MB/s
        ! aes256 (CBC decrypt): 16.46s, 0.608MB/s
+
+       ! After implementing double buffering
+       ! aes128 (ECB encrypt): 12.59s, 0.794MB/s
+       ! aes128 (ECB decrypt): 10.56s, 0.947MB/s
+       ! aes128 (CBC encrypt): 17.91s, 0.558MB/s
+       ! aes128 (CBC decrypt): 12.30s, 0.813MB/s
+       ! 
+       ! aes192 (ECB encrypt): 15.03s, 0.665MB/s
+       ! aes192 (ECB decrypt): 12.56s, 0.796MB/s
+       ! aes192 (CBC encrypt): 20.30s, 0.493MB/s
+       ! aes192 (CBC decrypt): 14.26s, 0.701MB/s
+       ! 
+       ! aes256 (ECB encrypt): 17.30s, 0.578MB/s
+       ! aes256 (ECB decrypt): 14.51s, 0.689MB/s
+       ! aes256 (CBC encrypt): 22.75s, 0.440MB/s
+       ! aes256 (CBC decrypt): 16.35s, 0.612MB/s
+       
+       ! After reordering aes-encrypt.c and aes-decypt.c
+       ! (the order probably causes strange cache-effects):
+       ! aes128 (ECB encrypt): 9.21s, 1.086MB/s
+       ! aes128 (ECB decrypt): 11.13s, 0.898MB/s
+       ! aes128 (CBC encrypt): 14.12s, 0.708MB/s
+       ! aes128 (CBC decrypt): 13.77s, 0.726MB/s
+       ! 
+       ! aes192 (ECB encrypt): 10.86s, 0.921MB/s
+       ! aes192 (ECB decrypt): 13.17s, 0.759MB/s
+       ! aes192 (CBC encrypt): 15.74s, 0.635MB/s
+       ! aes192 (CBC decrypt): 15.91s, 0.629MB/s
+       ! 
+       ! aes256 (ECB encrypt): 12.71s, 0.787MB/s
+       ! aes256 (ECB decrypt): 15.38s, 0.650MB/s
+       ! aes256 (CBC encrypt): 17.49s, 0.572MB/s
+       ! aes256 (CBC decrypt): 17.87s, 0.560MB/s