From e0165d857140e97832425421e6b3c45dfcb2ed15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Mon, 25 Feb 2002 13:03:14 +0100 Subject: [PATCH] (_aes_crypt): Added some comments to the final_loop. Rev: src/nettle/sparc/aes.asm:1.50 --- sparc/aes.asm | 61 ++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/sparc/aes.asm b/sparc/aes.asm index 9dc4cc12..c69796e8 100644 --- a/sparc/aes.asm +++ b/sparc/aes.asm @@ -1,3 +1,4 @@ +! -*- mode: asm; asm-comment-char: ?!; -*- ! Used registers: %l0,1,2,3,4,5,6,7 ! %i0,1,2,3,4,5 (%i6=%fp, %i7 = return) ! %o0,1,2,3,4,5,7 (%o6=%sp) @@ -146,16 +147,13 @@ _aes_crypt: add idx, 4, idx ! Fetch roundkey - ! ld [ctx+round], t1 - ! add round, 4, round ld [key+i], t1 xor t0, t3, t0 ! 0, 1, 2, 3 - xor t0, t1, t0 + st t0, [tmp+i] cmp i, 8 bleu .Linner_loop - add i, 4, i ! switch roles for tmp and wtxt @@ -163,42 +161,45 @@ _aes_crypt: add round, 16, round add key, 16, key cmp round, nrounds + blu .Lround_loop xor tmp, diff, tmp ! final round mov 0, i - ! IDX3 - add T, 288, %g4 + ! SIDX3 + add T, AES_SIDX3, %g4 .Lfinal_loop: - ld [%g4-32], %g2 + ! Comments mark which j in T->sbox[Bj(wtxt[IDXj(i)])] + ! the instruction is part of + ld [%g4-32], %g2 ! 1 sll i, 2, %i5 - sll %g2, 2, %g2 - add wtxt, %g2, %g2 - ldub [%g2+2], %o3 - add %i5, dst, %o2 - ld [%g4-16], %g3 + + add wtxt, %g2, %g2 ! 1 + ldub [%g2+2], %o3 ! 1 + add %i5, dst, %o2 + ld [%g4-16], %g3 ! 2 add i, 1, i - ld [wtxt+%i5], %g2 - sll %g3, 2, %g3 - lduh [wtxt+%g3], %o4 - and %g2, 255, %g2 - ld [%g4], %o5 - and %o4, 255, %o4 - ldub [T+%o3], %o0 - sll %o5, 2, %o5 - ldub [T+%g2], %g3 - sll %o0, 8, %o0 - ldub [wtxt+%o5], %o3 - or %g3, %o0, %g3 - ldub [T+%o4], %g2 + ld [wtxt+%i5], %g2 ! 0 + + lduh [wtxt+%g3], %o4 ! 2 + and %g2, 255, %g2 ! 0 + ld [%g4], %o5 ! 3 + and %o4, 255, %o4 ! 2 + ldub [T+%o3], %o0 ! 1 + + ldub [T+%g2], %g3 ! 0 + sll %o0, 8, %o0 ! 1 + ldub [wtxt+%o5], %o3 ! 3 + or %g3, %o0, %g3 ! 0, 1 + ldub [T+%o4], %g2 ! 2 cmp i, 3 - ldub [T+%o3], %o5 - sll %g2, 16, %g2 - or %g3, %g2, %g3 + ldub [T+%o3], %o5 ! 3 + sll %g2, 16, %g2 ! 2 + or %g3, %g2, %g3 ! 0, 1, 2 ld [ctx + round], %g2 - sll %o5, 24, %o5 - or %g3, %o5, %g3 + sll %o5, 24, %o5 ! 3 + or %g3, %o5, %g3 ! 0, 1, 2, 3 xor %g3, %g2, %g3 srl %g3, 24, %o5 srl %g3, 16, %o0 -- GitLab