X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=sha1%2Fsha1-asm.S;h=f479fcc27ca42db3a1e611dd830624ebf7d73f81;hb=deca11a7e7be5605c387aa2cd577e22925854ff8;hp=3b88ca15ede7efa38ec1dc35777e10c2c2a99db4;hpb=f26c4e0df2415993c0c85229cbab83f393526342;p=avr-crypto-lib.git diff --git a/sha1/sha1-asm.S b/sha1/sha1-asm.S index 3b88ca1..f479fcc 100644 --- a/sha1/sha1-asm.S +++ b/sha1/sha1-asm.S @@ -284,20 +284,20 @@ sha1_lastBlock: pop r25 subi r21, 2 ldi r19, 64 - sub r22, r19 - sbc r23, r1 + add r22, r19 + adc r23, r1 rjmp sha1_lastBlock sha1_lastBlock_prolog: /* allocate space on stack */ in r30, SPL in r31, SPH - in r1, SREG + in r0, SREG subi r30, lo8(64) sbci r31, hi8(64) /* ??? */ cli out SPL, r30 + out SREG, r0 out SPH, r31 - out SREG,r1 adiw r30, 1 /* SP points to next free byte on stack */ mov r18, r20 /* r20 = LSB(length) */ @@ -421,15 +421,14 @@ sha1_lastBlock_insert_length: sha1_lastBlock_epilog: in r30, SPL in r31, SPH - in r1, SREG + in r0, SREG adiw r30, 63 ; lo8(64) adiw r30, 1 ; hi8(64) cli out SPL, r30 + out SREG, r0 out SPH, r31 - out SREG,r1 clr r1 - clr r0 ret /**/ @@ -488,8 +487,8 @@ sha1_nextBlock: in r0, SREG cli ; we want to be uninterrupted while updating SP out SPL, r20 - out SPH, r21 out SREG, r0 + out SPH, r21 push r18 push r19 /* push old SP on new stack */ @@ -776,8 +775,8 @@ sha1_nextBlock_epilog: in r0, SREG cli ; we want to be uninterrupted while updating SP out SPL, r20 - out SPH, r21 out SREG, r0 + out SPH, r21 clr r1 pop r29