avr-libc: <util/parity.h>: Parity bit generation

avr-libc 2.1.0 Standard C library for AVR-GCC |

## AVR Libc Home Page |  | ## AVR Libc Development Pages
## Main Page | ## User Manual | ## Library Reference | ## FAQ | ## Example Projects

Loading...
Searching...
No Matches
Macros
<util/parity.h>: Parity bit generation

## Macros
#define | parity_even_bit(val)

## Detailed Description

#include <util/parity.h>
parity.h

This header file contains optimized assembler code to calculate the parity bit for a byte.

## Macro Definition Documentation

## ◆ parity_even_bit

#define parity_even_bit | ( |  | val | ) |

Value:
(__extension__({ \
unsigned char __t; \
__asm__ ( \
"mov __tmp_reg__,%0" "\n\t" \
"swap %0" "\n\t" \
"eor %0,__tmp_reg__" "\n\t" \
"mov __tmp_reg__,%0" "\n\t" \
"lsr %0" "\n\t" \
"lsr %0" "\n\t" \
"eor %0,__tmp_reg__" \
: "=r" (__t) \
: "0" ((unsigned char)(val)) \
: "r0" \
); \
(((__t + 1) >> 1) & 1); \
}))

Returns
  1 if `val` has an odd number of bits set.