diff --git a/sparc/aes.asm b/sparc/aes.asm index d9577add162eb6d1ddde81e05e9d70174e7c5d79..f51444ff250f256c6dc9d2f4751e40db2e888b44 100644 --- a/sparc/aes.asm +++ b/sparc/aes.asm @@ -14,7 +14,7 @@ include(`asm.m4') define(ctx, %i0) define(T, %i1) -define(length, %o4) +define(length, %i2) define(dst, %o3) define(src, %o2) @@ -25,8 +25,7 @@ _aes_crypt: save %sp, -136, %sp ! Why this moving around of the input parameters? - mov %i2, length - ! mov %i1, T + ! mov %i2, length mov %i3, dst cmp length, 0 be .Lend @@ -36,11 +35,11 @@ _aes_crypt: mov %l1, wtxt .Lblock_loop: ! Read src, and add initial subkey - mov -4, %i2 + mov -4, %o4 .Lsource_loop: - add %i2, 4, %i2 + add %o4, 4, %o4 - add %i2, src, %o5 + add %o4, src, %o5 ldub [%o5+3], %g2 ldub [%o5+2], %g3 @@ -48,16 +47,16 @@ _aes_crypt: ldub [%o5+1], %o0 sll %g3, 16, %g3 or %g2, %g3, %g2 - ldub [src+%i2], %o5 + ldub [src+%o4], %o5 sll %o0, 8, %o0 - ld [ctx+%i2], %g3 + ld [ctx+%o4], %g3 or %g2, %o0, %g2 or %g2, %o5, %g2 xor %g2, %g3, %g2 - cmp %i2, 12 + cmp %o4, 12 bleu .Lsource_loop - st %g2, [wtxt+%i2] + st %g2, [wtxt+%o4] ! ! Read a little-endian word ! ldub [src+3], %g2 @@ -79,7 +78,7 @@ _aes_crypt: ! xor %g3, %g2, %g2 ! ! add src, 4, src - ! st %g2, [wtxt+%i2] + ! st %g2, [wtxt+%o4] ! ! cmp %i3, 8 ! bleu .Lsource_loop @@ -104,7 +103,7 @@ _aes_crypt: ld [%i4-32], %g3 ! AES_SIDX2 - ld [%i4-16], %i2 + ld [%i4-16], %o4 ! wtxt[IDX1...] add %g4, %g3, %g3 ldub [%g3+2], %o0 @@ -117,12 +116,12 @@ _aes_crypt: ld [%g4+%i3], %o5 ! wtxt[IDX2...] - lduh [%g4+%i2], %g3 + lduh [%g4+%o4], %g3 and %o5, 255, %o5 ! wtxt[IDX3...] - ldub [%g4+%g2], %i2 + ldub [%g4+%g2], %o4 sll %o5, 2, %o5 add %o5, AES_TABLE0, %o5 @@ -134,9 +133,9 @@ _aes_crypt: sll %g3, 2, %g3 add %g3, AES_TABLE2, %g3 ld [T+%g3], %o0 - sll %i2, 2, %i2 - add %i2, AES_TABLE3, %i2 - ld [T+%i2], %g3 + sll %o4, 2, %o4 + add %o4, AES_TABLE3, %o4 + ld [T+%o4], %g3 xor %g2, %o5, %g2 xor %g2, %o0, %g2 @@ -154,12 +153,12 @@ _aes_crypt: add %g2, ctx, %o0 mov 0, %i5 mov %l1, %i3 - mov tmp, %i2 + mov tmp, %o4 .Lroundkey_loop: sll %i5, 2, %g2 ld [%o0], %o5 add %i5, 1, %i5 - ld [%i2+%g2], %g3 + ld [%o4+%g2], %g3 cmp %i5, 3 xor %g3, %o5, %g3 st %g3, [%i3+%g2] @@ -188,17 +187,17 @@ _aes_crypt: add %o1, 1, %o1 ld [%g1+%i5], %g2 sll %g3, 2, %g3 - lduh [%g1+%g3], %i2 + lduh [%g1+%g3], %o4 and %g2, 255, %g2 ld [%g4], %o5 - and %i2, 255, %i2 + and %o4, 255, %o4 ldub [T+%i3], %o0 sll %o5, 2, %o5 ldub [T+%g2], %g3 sll %o0, 8, %o0 ldub [%g1+%o5], %i3 or %g3, %o0, %g3 - ldub [T+%i2], %g2 + ldub [T+%o4], %g2 cmp %o1, 3 ldub [T+%i3], %o5 sll %g2, 16, %g2