2023-04-28 20:25:53 -07:00
|
|
|
#ifndef _GCC_ARM_ACLE_H
|
|
|
|
#define _GCC_ARM_ACLE_H
|
2023-05-08 21:38:30 -07:00
|
|
|
#ifdef __aarch64__
|
2023-04-28 20:25:53 -07:00
|
|
|
#include "libc/inttypes.h"
|
|
|
|
#include "libc/limits.h"
|
|
|
|
#include "libc/literal.h"
|
|
|
|
|
|
|
|
#pragma GCC push_options
|
|
|
|
|
|
|
|
#pragma GCC target("+nothing+crc")
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
__extension__ static __inline uint32_t __attribute__((__always_inline__))
|
|
|
|
__crc32b(uint32_t __a, uint8_t __b) {
|
|
|
|
return __builtin_aarch64_crc32b(__a, __b);
|
|
|
|
}
|
|
|
|
|
|
|
|
__extension__ static __inline uint32_t __attribute__((__always_inline__))
|
|
|
|
__crc32cb(uint32_t __a, uint8_t __b) {
|
|
|
|
return __builtin_aarch64_crc32cb(__a, __b);
|
|
|
|
}
|
|
|
|
|
|
|
|
__extension__ static __inline uint32_t __attribute__((__always_inline__))
|
|
|
|
__crc32ch(uint32_t __a, uint16_t __b) {
|
|
|
|
return __builtin_aarch64_crc32ch(__a, __b);
|
|
|
|
}
|
|
|
|
|
|
|
|
__extension__ static __inline uint32_t __attribute__((__always_inline__))
|
|
|
|
__crc32cw(uint32_t __a, uint32_t __b) {
|
|
|
|
return __builtin_aarch64_crc32cw(__a, __b);
|
|
|
|
}
|
|
|
|
|
|
|
|
__extension__ static __inline uint32_t __attribute__((__always_inline__))
|
|
|
|
__crc32cd(uint32_t __a, uint64_t __b) {
|
|
|
|
return __builtin_aarch64_crc32cx(__a, __b);
|
|
|
|
}
|
|
|
|
|
|
|
|
__extension__ static __inline uint32_t __attribute__((__always_inline__))
|
|
|
|
__crc32h(uint32_t __a, uint16_t __b) {
|
|
|
|
return __builtin_aarch64_crc32h(__a, __b);
|
|
|
|
}
|
|
|
|
|
|
|
|
__extension__ static __inline uint32_t __attribute__((__always_inline__))
|
|
|
|
__crc32w(uint32_t __a, uint32_t __b) {
|
|
|
|
return __builtin_aarch64_crc32w(__a, __b);
|
|
|
|
}
|
|
|
|
|
|
|
|
__extension__ static __inline uint32_t __attribute__((__always_inline__))
|
|
|
|
__crc32d(uint32_t __a, uint64_t __b) {
|
|
|
|
return __builtin_aarch64_crc32x(__a, __b);
|
|
|
|
}
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#pragma GCC pop_options
|
|
|
|
|
2023-05-08 21:38:30 -07:00
|
|
|
#endif /* __aarch64__ */
|
2023-04-28 20:25:53 -07:00
|
|
|
#endif
|