Hello,

Please consider the following patch. I believe that saving bit 0 of
the __crc register into T is unnecessary, as the LSR instruction will
automatically save the same bit into C.

Regards,
-- 
Krzysztof Kościuszkiewicz
Skype: dr.vee,  Gadu: 111851,  Jabber: [EMAIL PROTECTED]
"Simplicity is the ultimate sophistication" -- Leonardo da Vinci
diff -Naur -U 8 avr-libc-1.6.4/include/util/crc16.h avr-libc-1.6.4.new/include/util/crc16.h
--- avr-libc-1.6.4/include/util/crc16.h	2007-01-23 15:32:48.000000000 +0000
+++ avr-libc-1.6.4.new/include/util/crc16.h	2008-11-17 22:21:56.000000000 +0000
@@ -317,19 +317,18 @@
 static __inline__ uint8_t
 _crc_ibutton_update(uint8_t __crc, uint8_t __data)
 {
 	uint8_t __i, __pattern;
 	__asm__ __volatile__ (
 		"	eor	%0, %4" "\n\t"
 		"	ldi	%1, 8" "\n\t"
 		"	ldi	%2, 0x8C" "\n\t"
-		"1:	bst	%0, 0" "\n\t"
-		"	lsr	%0" "\n\t"
-		"	brtc	2f" "\n\t"
+		"1:	lsr	%0" "\n\t"
+		"	brcc	2f" "\n\t"
 		"	eor	%0, %2" "\n\t"
 		"2:	dec	%1" "\n\t"
 		"	brne	1b" "\n\t"
 		: "=r" (__crc), "=d" (__i), "=d" (__pattern)
 		: "0" (__crc), "r" (__data));
 	return __crc;
 }
 
_______________________________________________
AVR-libc-dev mailing list
AVR-libc-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-libc-dev

Reply via email to