]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
* sparc/aes.asm (key_addition32): First attempt at optimization.
authorNiels Möller <nisse@lysator.liu.se>
Mon, 11 Feb 2002 21:32:48 +0000 (22:32 +0100)
committerNiels Möller <nisse@lysator.liu.se>
Mon, 11 Feb 2002 21:32:48 +0000 (22:32 +0100)
Made it slower ;-)

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

sparc/aes.asm

index d54f8d963e38ab1e25e5d0e4c41cef5e9b1d2885..8860acb039f31066831b6de4aa78265424c7909b 100644 (file)
@@ -65,23 +65,47 @@ key_addition_8to32:
        .type   key_addition32,#function
        .proc   020
 key_addition32:
-       mov     %o0, %o4
+       ! Use %g2 and %g3 as temporaries, %o3 as counter
        mov     0, %o3
 .LL26:
-       sll     %o3, 2, %g2
-       ld      [%o1+%g2], %g3
+       ! Get *txt++
+       ld      [%o0], %g2
+       add     %o0, 4, %o0
+       ! Get *keys++
+       ld      [%o1], %g3
+       add     %o1, 4, %o1
+       xor     %g2, %g3, %g3
+       st      %g3, [%o2]
+       ! Incrementing %o2 in the delay slot
        add     %o3, 1, %o3
-       ld      [%o4+%g2], %o0
-       cmp     %o3, 3
-
-       xor     %g3, %o0, %g3
 
+       ! FIXME:         Unroll or inline?
+       cmp     %o3, 3
        bleu    .LL26
-       st      %g3, [%o2+%g2]
-
+       add     %o2, 4, %o2
+       
        retl
        nop
-.LLFE2:
+
+!      ! And three more times
+!      
+!      mov     %o0, %o4
+!      mov     0, %o3
+! .LL26:
+!      sll     %o3, 2, %g2
+!      ld      [%o1+%g2], %g3
+!      add     %o3, 1, %o3
+!      ld      [%o4+%g2], %o0
+!      cmp     %o3, 3
+! 
+!      xor     %g3, %o0, %g3
+! 
+!      bleu    .LL26
+!      st      %g3, [%o2+%g2]
+! 
+!      retl
+!      nop
+
 .LLfe2:
        .size   key_addition32,.LLfe2-key_addition32
        .align 4