Skip to content
Snippets Groups Projects
Commit bc5482c2 authored by Niels Möller's avatar Niels Möller
Browse files

Now almost as fast as the C code.

Rev: src/nettle/sparc/aes.asm:1.5
parent d70329ba
No related branches found
No related tags found
No related merge requests found
...@@ -59,7 +59,8 @@ key_addition_8to32: ...@@ -59,7 +59,8 @@ key_addition_8to32:
retl retl
nop nop
! FIXME: Inline, unroll? ! key_addition32(const uint32_t *txt, const uint32_t *keys, uint32_t *out)
.size key_addition_8to32,.LLfe1-key_addition_8to32 .size key_addition_8to32,.LLfe1-key_addition_8to32
.align 4 .align 4
.type key_addition32,#function .type key_addition32,#function
...@@ -67,27 +68,25 @@ key_addition_8to32: ...@@ -67,27 +68,25 @@ key_addition_8to32:
key_addition32: key_addition32:
! Use %g2 and %g3 as temporaries, %o3 as counter ! Use %g2 and %g3 as temporaries, %o3 as counter
mov 0, %o3 mov 0, %o3
! Decrement out, so we can increment the counter earlier in the loop
sub %o2, 4, %o2
.LL26: .LL26:
! Get *txt++ ! Get txt[i]
ld [%o0], %g2 ld [%o0+%o3], %g2
add %o0, 4, %o0 ! Get keys[i]
! Get *keys++ ld [%o1+%o3], %g3
ld [%o1], %g3 cmp %o3, 12
add %o1, 4, %o1 add %o3, 4, %o3
xor %g2, %g3, %g3 xor %g2, %g3, %g3
st %g3, [%o2]
! Incrementing %o2 in the delay slot
add %o3, 1, %o3
! FIXME: Unroll or inline?
cmp %o3, 3
bleu .LL26 bleu .LL26
add %o2, 4, %o2 st %g3, [%o2+%o3]
retl retl
nop nop
! ! And three more times
! !
! mov %o0, %o4 ! mov %o0, %o4
! mov 0, %o3 ! mov 0, %o3
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment