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.