X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=sha256-asm.S;h=d9eb6b65a789a49a7dc730775685114f146ed53b;hb=8f855d283a31a468ea014774c4723a8b77b81644;hp=a9f7c431956721fbbcc783d894dad516ebcc2f76;hpb=17332291e15183d71d88ed868275e3cb53917180;p=avr-crypto-lib.git diff --git a/sha256-asm.S b/sha256-asm.S index a9f7c43..d9eb6b6 100644 --- a/sha256-asm.S +++ b/sha256-asm.S @@ -1,6 +1,6 @@ /* sha256-asm.S */ /* - This file is part of the This file is part of the AVR-Crypto-Lib. + This file is part of the AVR-Crypto-Lib. Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de) This program is free software: you can redistribute it and/or modify @@ -253,21 +253,24 @@ sha256_lastBlock_localSpace = (SHA256_BLOCK_BITS/8+1) sha256_lastBlock: - tst r20 - brne sha256_lastBlock_prolog cpi r21, 0x02 - brne sha256_lastBlock_prolog + brlo sha256_lastBlock_prolog push r25 push r24 push r23 push r22 + push r21 + push r20 rcall sha256_nextBlock + pop r20 + pop r21 pop r22 pop r23 pop r24 pop r25 - clr r21 - clr r22 + subi r21, 0x02 + subi r23, -2 + rjmp sha256_lastBlock sha256_lastBlock_prolog: /* allocate space on stack */ in r30, SPL