diff options
| author | Jack O'Connor <[email protected]> | 2021-07-29 23:46:29 -0400 |
|---|---|---|
| committer | Jack O'Connor <[email protected]> | 2021-08-24 15:00:15 -0400 |
| commit | 080b3330159a19407dddb407dc917925ac40c4d3 (patch) | |
| tree | 704c94cbacc72015f7b40462d7137778c6c35b38 | |
| parent | b8e2dda186c69cece5412f8571bfabf14fd3d7ab (diff) | |
explicitly #error on big-endian ARM
| -rw-r--r-- | c/blake3_neon.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/c/blake3_neon.c b/c/blake3_neon.c index 46691f5..a6f6da9 100644 --- a/c/blake3_neon.c +++ b/c/blake3_neon.c @@ -2,7 +2,12 @@ #include <arm_neon.h> -// TODO: This is probably incorrect for big-endian ARM. How should that work? +#ifdef __ARM_BIG_ENDIAN +#error "This implementation only supports little-endian ARM." +// It might be that all we need for big-endian support here is to get the loads +// and stores right, but step zero would be finding a way to test it in CI. +#endif + INLINE uint32x4_t loadu_128(const uint8_t src[16]) { // vld1q_u32 has alignment requirements. Don't use it. uint32x4_t x; |
