6.11 __crc32b, __crc32h, __crc32w, __crc32d Intrinsic Function

Calculates a CRC32 checksum from a checksum (or initial value) crc and one item of data.

Note: The 32-bit Arm/Thumb instructions do not include CRC32X, so __crc32d is implemented as two calls to __crc32w.

These intrinsic functions are defined according to the Arm C Language Extensions (ACLE).

For XC32, __crc32d is not supported.

Suggested Replacement

__builtin_arm_crc32b
__builtin_arm_crc32h
__builtin_arm_crc32w

Caveats

None.

Examples

Consider migrating IAR code such as:
unsigned int __crc32b(unsigned int crc, unsigned char data);
 unsigned int __crc32h(unsigned int crc, unsigned short data); 
unsigned int __crc32w(unsigned int crc, unsigned int data); 
unsigned int __crc32d(unsigned int crc, unsigned long long data); 
to MPLAB XC codes similar to:
unsigned int __builtin_arm_crc32b(unsigned int crc, unsigned char data);
 unsigned int __builtin_arm _crc32h(unsigned int crc, unsigned short data); 
unsigned int __builtin_arm _crc32w(unsigned int crc, unsigned int data); 

Further Information

None.