]> git.cryptolib.org Git - avr-crypto-lib.git/commitdiff
fixing two bugs in twister (asm)
authorbg <bg@b1d182e4-1ff8-0310-901f-bddb46175740>
Thu, 14 May 2009 13:54:17 +0000 (13:54 +0000)
committerbg <bg@b1d182e4-1ff8-0310-901f-bddb46175740>
Thu, 14 May 2009 13:54:17 +0000 (13:54 +0000)
twister-big-asm.S
twister-small-asm.S

index e6e769125f74f722335ffac56ff4d521f7ce3a87..a274cf4763b732e1241196fcc3c5cec2d584a10f 100644 (file)
@@ -405,10 +405,11 @@ twister_big_lastBlock:
 3:
        tst r18
        breq 4f
+31:
        st Z+, r0
        ld r0, X+
        dec r18
-       
+       brne 31b
 4:     
        mov r18, LEN_SAVE0
        andi r18, 0x07
@@ -423,11 +424,13 @@ twister_big_lastBlock:
 
 5:
        st Z+, r20      
+       tst r19
+       breq 7f
 6:     
        st Z+, r1
        dec r19
        brne 6b
-       
+7:     
        movw r24, CTX_SAVE0
        movw r22, TMP_SAVE0
        rcall twister_big_nextBlock
index b5167ef6082d4265720eef8597f557ecca0e0f95..6cfda293836a90d48f48881f68d04b830c26c079 100644 (file)
@@ -123,15 +123,15 @@ twister_small_lastBlock:
        movw r30, TMP_SAVE0     
        ldi r20, 0x80
        sub r19, r18 /* r18: bytes to copy, r19: bytes to clear */
-       
+
        ld r0, X+       
-3:
-       tst r18
+3:     tst r18
        breq 4f
+31:
        st Z+, r0
        ld r0, X+
        dec r18
-       
+       brne 31b
 4:     
        mov r18, LEN_SAVE0
        andi r18, 0x07
@@ -146,11 +146,14 @@ twister_small_lastBlock:
 
 5:
        st Z+, r20      
+
+       tst r19
+       breq 7f
 6:     
        st Z+, r1
        dec r19
        brne 6b
-       
+7:     
        movw r24, CTX_SAVE0
        movw r22, TMP_SAVE0
        rcall twister_small_nextBlock