diff options
author | Niels Möller <nisse@lysator.liu.se> | 2002-05-16 00:14:25 +0200 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2002-05-16 00:14:25 +0200 |
commit | 7eea78946756cf0b54c58d83741dce4123baaea8 (patch) | |
tree | a6d8fc1f45763f096c9478ea6b6fdc94ac53253e /sparc | |
parent | fd3f00eef8e51c56b34ac84cc519b70bd989c4e4 (diff) | |
download | nettle-7eea78946756cf0b54c58d83741dce4123baaea8.tar.gz |
(AES_FINAL_ROUND): New macro.
(_aes_crypt): Use AES_FINAL_ROUND for the first word if the final
round.
(_aes_crypt): And for the rest of the final round.
Rev: src/nettle/sparc/aes.asm:1.99
Diffstat (limited to 'sparc')
-rw-r--r-- | sparc/aes.asm | 225 |
1 files changed, 114 insertions, 111 deletions
diff --git a/sparc/aes.asm b/sparc/aes.asm index 63cdb31c..51021a90 100644 --- a/sparc/aes.asm +++ b/sparc/aes.asm @@ -285,122 +285,125 @@ C stb t0, [dst] C add dst, 4, dst C i = 1 - ld [IDX1+4], t1 ! 1 - - ldub [wtxt+t1], t1 ! 1 - - ld [wtxt+4], t0 ! 0 - ! IDX2(j) = j XOR 2 - lduh [wtxt+12], t2 ! 2 - and t0, 255, t0 ! 0 - ld [IDX3 + 4], t3 ! 3 - - and t2, 255, t2 ! 2 - ldub [T+t1], t1 ! 1 - ldub [T+t0], t0 ! 0 - sll t1, 8, t1 ! 1 - - ldub [wtxt+t3], t3 ! 3 - or t0, t1, t0 ! 0, 1 - ldub [T+t2], t2 ! 2 - ldub [T+t3], t3 ! 3 - - sll t2, 16, t2 ! 2 - or t0, t2, t0 ! 0, 1, 2 - ld [key + 4], t2 - sll t3, 24, t3 ! 3 - - or t0, t3, t0 ! 0, 1, 2, 3 - xor t0, t2, t0 - - srl t0, 24, t3 - srl t0, 16, t2 - srl t0, 8, t1 - stb t1, [dst+1] - - stb t3, [dst+3] - stb t2, [dst+2] - stb t0, [dst] - add dst, 4, dst + AES_FINAL_ROUND(4) ! i = 1 +C ld [IDX1+4], t1 ! 1 +C +C ldub [wtxt+t1], t1 ! 1 +C +C ld [wtxt+4], t0 ! 0 +C ! IDX2(j) = j XOR 2 +C lduh [wtxt+12], t2 ! 2 +C and t0, 255, t0 ! 0 +C ld [IDX3 + 4], t3 ! 3 +C +C and t2, 255, t2 ! 2 +C ldub [T+t1], t1 ! 1 +C ldub [T+t0], t0 ! 0 +C sll t1, 8, t1 ! 1 +C +C ldub [wtxt+t3], t3 ! 3 +C or t0, t1, t0 ! 0, 1 +C ldub [T+t2], t2 ! 2 +C ldub [T+t3], t3 ! 3 +C +C sll t2, 16, t2 ! 2 +C or t0, t2, t0 ! 0, 1, 2 +C ld [key + 4], t2 +C sll t3, 24, t3 ! 3 +C +C or t0, t3, t0 ! 0, 1, 2, 3 +C xor t0, t2, t0 +C +C srl t0, 24, t3 +C srl t0, 16, t2 +C srl t0, 8, t1 +C stb t1, [dst+1] +C +C stb t3, [dst+3] +C stb t2, [dst+2] +C stb t0, [dst] +C add dst, 4, dst C i = 2 - ld [IDX1+8], t1 ! 1 - - ldub [wtxt+t1], t1 ! 1 - - ld [wtxt+8], t0 ! 0 - ! IDX2(j) = j XOR 2 - lduh [wtxt+0], t2 ! 2 - and t0, 255, t0 ! 0 - ld [IDX3 + 8], t3 ! 3 - - and t2, 255, t2 ! 2 - ldub [T+t1], t1 ! 1 - ldub [T+t0], t0 ! 0 - sll t1, 8, t1 ! 1 - - ldub [wtxt+t3], t3 ! 3 - or t0, t1, t0 ! 0, 1 - ldub [T+t2], t2 ! 2 - ldub [T+t3], t3 ! 3 - - sll t2, 16, t2 ! 2 - or t0, t2, t0 ! 0, 1, 2 - ld [key + 8], t2 - sll t3, 24, t3 ! 3 - - or t0, t3, t0 ! 0, 1, 2, 3 - xor t0, t2, t0 - - srl t0, 24, t3 - srl t0, 16, t2 - srl t0, 8, t1 - stb t1, [dst+1] - - stb t3, [dst+3] - stb t2, [dst+2] - stb t0, [dst] - add dst, 4, dst + AES_FINAL_ROUND(8) ! i = 2 +C ld [IDX1+8], t1 ! 1 +C +C ldub [wtxt+t1], t1 ! 1 +C +C ld [wtxt+8], t0 ! 0 +C ! IDX2(j) = j XOR 2 +C lduh [wtxt+0], t2 ! 2 +C and t0, 255, t0 ! 0 +C ld [IDX3 + 8], t3 ! 3 +C +C and t2, 255, t2 ! 2 +C ldub [T+t1], t1 ! 1 +C ldub [T+t0], t0 ! 0 +C sll t1, 8, t1 ! 1 +C +C ldub [wtxt+t3], t3 ! 3 +C or t0, t1, t0 ! 0, 1 +C ldub [T+t2], t2 ! 2 +C ldub [T+t3], t3 ! 3 +C +C sll t2, 16, t2 ! 2 +C or t0, t2, t0 ! 0, 1, 2 +C ld [key + 8], t2 +C sll t3, 24, t3 ! 3 +C +C or t0, t3, t0 ! 0, 1, 2, 3 +C xor t0, t2, t0 +C +C srl t0, 24, t3 +C srl t0, 16, t2 +C srl t0, 8, t1 +C stb t1, [dst+1] +C +C stb t3, [dst+3] +C stb t2, [dst+2] +C stb t0, [dst] +C add dst, 4, dst C i = 3 - ld [IDX1+12], t1 ! 1 - - ldub [wtxt+t1], t1 ! 1 + AES_FINAL_ROUND(12) ! i = 3 +C ld [IDX1+12], t1 ! 1 +C +C ldub [wtxt+t1], t1 ! 1 +C +C ld [wtxt+12], t0 ! 0 +C ! IDX2(j) = j XOR 2 +C lduh [wtxt+4], t2 ! 2 +C and t0, 255, t0 ! 0 +C ld [IDX3 + 12], t3 ! 3 +C +C and t2, 255, t2 ! 2 +C ldub [T+t1], t1 ! 1 +C ldub [T+t0], t0 ! 0 +C sll t1, 8, t1 ! 1 +C +C ldub [wtxt+t3], t3 ! 3 +C or t0, t1, t0 ! 0, 1 +C ldub [T+t2], t2 ! 2 +C ldub [T+t3], t3 ! 3 +C +C sll t2, 16, t2 ! 2 +C or t0, t2, t0 ! 0, 1, 2 +C ld [key + 12], t2 +C sll t3, 24, t3 ! 3 +C +C or t0, t3, t0 ! 0, 1, 2, 3 +C xor t0, t2, t0 +C +C srl t0, 24, t3 +C srl t0, 16, t2 +C srl t0, 8, t1 +C stb t1, [dst+1] +C +C stb t3, [dst+3] +C stb t2, [dst+2] +C stb t0, [dst] +C add dst, 4, dst - ld [wtxt+12], t0 ! 0 - ! IDX2(j) = j XOR 2 - lduh [wtxt+4], t2 ! 2 - and t0, 255, t0 ! 0 - ld [IDX3 + 12], t3 ! 3 - - and t2, 255, t2 ! 2 - ldub [T+t1], t1 ! 1 - ldub [T+t0], t0 ! 0 - sll t1, 8, t1 ! 1 - - ldub [wtxt+t3], t3 ! 3 - or t0, t1, t0 ! 0, 1 - ldub [T+t2], t2 ! 2 - ldub [T+t3], t3 ! 3 - - sll t2, 16, t2 ! 2 - or t0, t2, t0 ! 0, 1, 2 - ld [key + 12], t2 - sll t3, 24, t3 ! 3 - - or t0, t3, t0 ! 0, 1, 2, 3 - xor t0, t2, t0 - - srl t0, 24, t3 - srl t0, 16, t2 - srl t0, 8, t1 - stb t1, [dst+1] - - stb t3, [dst+3] - stb t2, [dst+2] - stb t0, [dst] - add dst, 4, dst - C Unrolled final loop ends addcc length, -16, length |