]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
Work in progress, source loop unrolling.
authorNiels Möller <nisse@lysator.liu.se>
Wed, 15 May 2002 23:27:31 +0000 (01:27 +0200)
committerNiels Möller <nisse@lysator.liu.se>
Wed, 15 May 2002 23:27:31 +0000 (01:27 +0200)
Rev: src/nettle/sparc/aes.asm:1.112

sparc/aes.asm

index e7d007741952b306e5d74d70b1a06afa35a6ab74..fd952c5ab1d80384856085a7565fb6992651cbf6 100644 (file)
@@ -66,19 +66,38 @@ define(t3, %o3)
 C AES_LOAD(i)
 C Get one word of input, XOR with first subkey, store in wtxt
 define(<AES_LOAD>, <
-       ldub    [src + $1], t0
-       ldub    [src + $1 + 1], t1
-       sll     t1, 8, t1
-       or      t0, t1, t0
-       ldub    [src + $1 + 2], t2
+       ldub    [src+3], t3
+       ldub    [src+2], t2
+       sll     t3, 24, t3
+       ldub    [src+1], t1
+       
        sll     t2, 16, t2
-       or      t0, t2, t0
-       ldub    [src + $1 + 3], t1
-       sll     t1, 24, t1
-       or      t0, t1, t0
-       ld      [key + $1], t2
-       xor     t0, t2, t0
-       st      t0, [wtxt + $1]
+       or      t3, t2, t3
+       ldub    [src], t0
+       sll     t1, 8, t1
+       
+       ! Get subkey
+       ld      [ctx + 0], t2
+       or      t3, t1, t3
+       or      t3, t0, t3
+       xor     t3, t2, t3
+       
+       st      t3, [wtxt+0]
+       add     src, 4, src
+       
+       C ldub  [src + $1], t0
+       C ldub  [src + $1 + 1], t1
+       C sll   t1, 8, t1
+       C or    t0, t1, t0
+       C ldub  [src + $1 + 2], t2
+       C sll   t2, 16, t2
+       C or    t0, t2, t0
+       C ldub  [src + $1 + 3], t1
+       C sll   t1, 24, t1
+       C or    t0, t1, t0
+       C ld    [key + $1], t2
+       C xor   t0, t2, t0
+       C st    t0, [wtxt + $1]
        >)dnl
 
 C AES_ROUND(i)
@@ -225,14 +244,12 @@ C .Lsource_loop:
        sll     t1, 8, t1
        
        ! Get subkey
-       ld      [src+%g2], t2
+       ld      [ctx + 0], t2
        or      t3, t1, t3
        or      t3, t0, t3
        xor     t3, t2, t3
        
-       C cmp   src, %g1
-       st      t3, [src+%g3]
-       C bleu  .Lsource_loop
+       st      t3, [wtxt+0]
        add     src, 4, src
 
        C i = 1
@@ -247,13 +264,13 @@ C .Lsource_loop:
        sll     t1, 8, t1
        
        ! Get subkey
-       ld      [src+%g2], t2
+       ld      [ctx + 4], t2
        or      t3, t1, t3
        or      t3, t0, t3
        xor     t3, t2, t3
        
        C cmp   src, %g1
-       st      t3, [src+%g3]
+       st      t3, [wtxt + 4]
        C bleu  .Lsource_loop
        add     src, 4, src
        C i = 2