38#include <bits/attribs.h>
103static __ATTR_ALWAYS_INLINE__
uint16_t
109 __asm__ __volatile__ (
114 "mov __tmp_reg__,%1" "\n\t"
117 "eor %1,__tmp_reg__" "\n\t"
118 "mov __tmp_reg__,%1" "\n\t"
120 "eor %1,__tmp_reg__" "\n\t"
121 "andi %1,0x07" "\n\t"
122 "mov __tmp_reg__,%A0" "\n\t"
125 "ror __tmp_reg__" "\n\t"
127 "mov %B0,__tmp_reg__" "\n\t"
129 "lsr __tmp_reg__" "\n\t"
131 "eor %B0,__tmp_reg__" "\n\t"
133 :
"=r" (__ret),
"=d" (__tmp)
134 :
"r" (__data),
"0" (__crc)
167static __ATTR_ALWAYS_INLINE__
uint16_t
175 __asm__ __volatile__ (
184 "andi %A0,0xf0" "\n\t"
185 "andi %B0,0x0f" "\n\t"
195 :
"=d" (__ret),
"=r" (__tmp1),
"=r" (__tmp2)
196 :
"r" (__data),
"0" (__crc)
230static __ATTR_ALWAYS_INLINE__
uint16_t
235 __asm__ __volatile__ (
238 "mov __tmp_reg__,%A0" "\n\t"
240 "andi %A0,0xf0" "\n\t"
241 "eor %A0,__tmp_reg__" "\n\t"
243 "mov __tmp_reg__,%B0" "\n\t"
248 "andi %A0,0x0f" "\n\t"
249 "eor __tmp_reg__,%A0" "\n\t"
258 "eor %A0,__tmp_reg__"
261 :
"r" (__data),
"0" (__crc)
295static __ATTR_ALWAYS_INLINE__
uint8_t
299 __asm__ __volatile__ (
308 :
"=r" (__crc),
"=d" (__i),
"=d" (__pattern)
309 :
"0" (__crc),
"r" (__data));
358static __ATTR_ALWAYS_INLINE__
uint8_t
362 __asm__ __volatile__ (
371 :
"=r" (__crc),
"=d" (__i),
"=d" (__pattern)
372 :
"0" (__crc),
"r" (__data));
unsigned int uint16_t
Definition: stdint.h:91
unsigned char uint8_t
Definition: stdint.h:81
static uint16_t _crc_xmodem_update(uint16_t __crc, uint8_t __data)
Definition: crc16.h:168
static uint16_t _crc_ccitt_update(uint16_t __crc, uint8_t __data)
Definition: crc16.h:231
static uint8_t _crc8_ccitt_update(uint8_t __crc, uint8_t __data)
Definition: crc16.h:359
static uint8_t _crc_ibutton_update(uint8_t __crc, uint8_t __data)
Definition: crc16.h:296
static uint16_t _crc16_update(uint16_t __crc, uint8_t __data)
Definition: crc16.h:104