X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=threefish256_enc_asm.S;h=f18e7f4680a8dcd8ee48ba637c24ec9bf854115e;hb=7701e318e4e2bac7f84dbf6e368f1501814948fc;hp=7fe3471ff54c2a2c3e4ad77eaf323fb2e9a92181;hpb=4147d732efd04605764a2820d4478f33a0cdf1fa;p=avr-crypto-lib.git diff --git a/threefish256_enc_asm.S b/threefish256_enc_asm.S index 7fe3471..f18e7f4 100644 --- a/threefish256_enc_asm.S +++ b/threefish256_enc_asm.S @@ -1,4 +1,4 @@ -/* threefish_mix.S */ +/* threefish256_enc_asm.S */ /* This file is part of the AVR-Crypto-Lib. Copyright (C) 2009 Daniel Otte (daniel.otte@rub.de) @@ -103,6 +103,17 @@ threefish256_init: st Z+, A6 st Z+, A7 /* now the tweak */ + tst r23 + brne 3f + tst r22 + brne 3f + ldi r26, 3*8 +2: + st Z+, r1 + dec r26 + brne 2b + rjmp 9f +3: movw r26, r22 ld A0, X+ ld A1, X+ @@ -144,6 +155,7 @@ threefish256_init: ld r0, X+ eor A7, r0 st Z+, r0 + st Z+, A0 st Z+, A1 st Z+, A2 @@ -152,6 +164,7 @@ threefish256_init: st Z+, A5 st Z+, A6 st Z+, A7 +9: pop_range 14, 17 ret @@ -218,8 +231,7 @@ threefish256_enc: 2: ldi r30, lo8(threefish256_slut5) ldi r31, hi8(threefish256_slut5) - mov r26, S - add r30, r26 + add r30, S adc r31, r1 lpm IDX0, Z+ lpm IDX1, Z+