diff --git a/internal/port.h b/internal/port.h index a695f76..b294f3a 100644 --- a/internal/port.h +++ b/internal/port.h @@ -53,13 +53,15 @@ namespace CLD2 { !defined(__ARM_ARCH_6Z__) && \ !defined(__ARM_ARCH_6ZK__) && \ !defined(__ARM_ARCH_6T2__) && \ - !defined(__ARM_ARCH_7__) && \ - !defined(__ARM_ARCH_7A__) && \ - !defined(__ARM_ARCH_7M__) && \ - !defined(__ARM_ARCH_7R__) - -// ARMv7 and newer support native unaligned accesses, but only of 16-bit -// and 32-bit values (not 64-bit); older versions either raise a fatal signal, + !defined(__ARM_ARCH_7__) && \ + !defined(__ARM_ARCH_7A__) && \ + !defined(__ARM_ARCH_7M__) && \ + !defined(__ARM_ARCH_7R__) && \ + !defined(__ARM_ARCH_8__) && \ + !defined(__ARM_ARCH_8A__) + +// ARMv7 and newer support native unaligned accesses, but only of 16-bit +// and 32-bit values (not 64-bit); older versions either raise a fatal signal, // do an unaligned read and rotate the words around a bit, or do the reads very // slowly (trip through kernel mode). There's no simple #define that says just // “ARMv7 or higher”, so we have to filter away all ARMv5 and ARMv6