45 |
/** \def parity_even_bit |
/** \def parity_even_bit |
46 |
\ingroup avr_parity |
\ingroup avr_parity |
47 |
\returns 1 if \c val has an odd number of bits set. */ |
\returns 1 if \c val has an odd number of bits set. */ |
48 |
#define parity_even_bit(val) ({ \ |
#define parity_even_bit(val) \ |
49 |
|
(__extension__({ \ |
50 |
unsigned char __t; \ |
unsigned char __t; \ |
51 |
__asm__ ( \ |
__asm__ ( \ |
52 |
"mov __tmp_reg__,%0" "\n\t" \ |
"mov __tmp_reg__,%0" "\n\t" \ |
61 |
: "r0" \ |
: "r0" \ |
62 |
); \ |
); \ |
63 |
(((__t + 1) >> 1) & 1); \ |
(((__t + 1) >> 1) & 1); \ |
64 |
}) |
})) |
65 |
|
|
66 |
#endif /* _AVR_PARITY_H_ */ |
#endif /* _AVR_PARITY_H_ */ |