]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - test_src/circularbytebuffer-asm.S
new skipjack test
[avr-crypto-lib.git] / test_src / circularbytebuffer-asm.S
index bd0d3109f32d2e6c04bc892ad272d25b6687de7f..199c86a38327cf38292f840b9d48ac9318b1c738 100644 (file)
@@ -229,6 +229,8 @@ circularbytebuffer_get_lifo:
  *     }
  *
  * param cb:  r24:r25
+ * return:    r24
+ * modifys:   r22-r27,r30,r31
  */
 .global circularbytebuffer_get_fifo
 circularbytebuffer_get_fifo:
@@ -285,6 +287,7 @@ circularbytebuffer_append:
        ldd r23, Z+BUFFER_SIZE_OFFSET
        cp r22, r23
        brne 10f
+5:
        ldi r24, 1
        ret
 10:
@@ -341,14 +344,15 @@ circularbytebuffer_push:
        ldd r22, Z+FILLCOUNT_OFFSET
        ldd r23, Z+BUFFER_SIZE_OFFSET
        cp r22, r23
-       brne 10f
-       ldi r24, 1
-       ret
+       brlo 10f
+       rjmp 5b
+;      ldi r24, 1
+;      ret
 10:
-       clt
-       tst r22
-       brne 11f
-       set
+;      clt
+;      tst r22
+;      brne 11f
+;      set
 11:    
        inc r22
        std Z+FILLCOUNT_OFFSET, r22
@@ -366,7 +370,7 @@ circularbytebuffer_push:
 20:
        std Z+HEAD_OFFSET, r26
        std Z+HEAD_OFFSET+1, r27
-       brtc 30b
-       std Z+TAIL_OFFSET, r26
-       std Z+TAIL_OFFSET+1, r27
+;      brtc 30b
+;      std Z+TAIL_OFFSET, r26
+;      std Z+TAIL_OFFSET+1, r27
        rjmp 30b