diff --git a/include/endian.h b/include/endian.h new file mode 100644 index 0000000..612e2de --- /dev/null +++ b/include/endian.h @@ -0,0 +1,55 @@ +#ifndef __ENDIAN_H__ +# define __ENDIAN_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +/* Follow macros provided by GCC. */ +#define LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__ +#define BIG_ENDIAN __ORDER_BIG_ENDIAN__ +#define BYTE_ORDER __BYTE_ORDER__ + +#if BYTE_ORDER == LITTLE_ENDIAN + +#define htobe16(x) __builtin_bswap16(x) +#define htole16(x) (x) +#define be16toh(x) __builtin_bswap16(x) +#define le16toh(x) (x) + +#define htobe32(x) __builtin_bswap32(x) +#define htole32(x) (x) +#define be32toh(x) __builtin_bswap32(x) +#define le32toh(x) (x) + +#define htobe64(x) __builtin_bswap64(x) +#define htole64(x) (x) +#define be64toh(x) __builtin_bswap64(x) +#define le64toh(x) (x) + +#elif BYTE_ORDER == BIG_ENDIAN + +#define htobe16(x) (x) +#define htole16(x) __builtin_bswap16(x) +#define be16toh(x) (x) +#define le16toh(x) __builtin_bswap16(x) + +#define htobe32(x) (x) +#define htole32(x) __builtin_bswap32(x) +#define be32toh(x) (x) +#define le32toh(x) __builtin_bswap32(x) + +#define htobe64(x) (x) +#define htole64(x) __builtin_bswap64(x) +#define be64toh(x) (x) +#define le64toh(x) __builtin_bswap64(x) + +#endif /* LITTLE_ENDIAN vs. BIG_ENDIAN */ + +#ifdef __cplusplus +} +#endif + +#endif /*__ENDIAN_H__*/ diff --git a/include/target/sh-generic/endian.h b/include/target/sh-generic/endian.h deleted file mode 100644 index edec91f..0000000 --- a/include/target/sh-generic/endian.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef __ENDIAN_H__ -# define __ENDIAN_H__ - -/* CASIO calculators are configured as big-endian. */ - -#define htobe16(x) (x) -#define htole16(x) (__builtin_bswap16(x)) -#define be16toh(x) (x) -#define le16toh(x) (__builtin_bswap16(x)) - -#define htobe32(x) (x) -#define htole32(x) (__builtin_bswap32(x)) -#define be32toh(x) (x) -#define le32toh(x) (__builtin_bswap32(x)) - -#define htobe64(x) (x) -#define htole64(x) (__builtin_bswap64(x)) -#define be64toh(x) (x) -#define le64toh(x) (__builtin_bswap64(x)) - -#endif /*__ENDIAN_H__*/