diff options
Diffstat (limited to 'include/asm-generic')
| -rw-r--r-- | include/asm-generic/simd.h | 14 | ||||
| -rw-r--r-- | include/asm-generic/word-at-a-time.h | 8 |
2 files changed, 22 insertions, 0 deletions
diff --git a/include/asm-generic/simd.h b/include/asm-generic/simd.h new file mode 100644 index 000000000000..f57eb7b5c23b --- /dev/null +++ b/include/asm-generic/simd.h | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | |||
| 2 | #include <linux/hardirq.h> | ||
| 3 | |||
| 4 | /* | ||
| 5 | * may_use_simd - whether it is allowable at this time to issue SIMD | ||
| 6 | * instructions or access the SIMD register file | ||
| 7 | * | ||
| 8 | * As architectures typically don't preserve the SIMD register file when | ||
| 9 | * taking an interrupt, !in_interrupt() should be a reasonable default. | ||
| 10 | */ | ||
| 11 | static __must_check inline bool may_use_simd(void) | ||
| 12 | { | ||
| 13 | return !in_interrupt(); | ||
| 14 | } | ||
diff --git a/include/asm-generic/word-at-a-time.h b/include/asm-generic/word-at-a-time.h index 3f21f1b72e45..d3909effd725 100644 --- a/include/asm-generic/word-at-a-time.h +++ b/include/asm-generic/word-at-a-time.h | |||
| @@ -49,4 +49,12 @@ static inline bool has_zero(unsigned long val, unsigned long *data, const struct | |||
| 49 | return (val + c->high_bits) & ~rhs; | 49 | return (val + c->high_bits) & ~rhs; |
| 50 | } | 50 | } |
| 51 | 51 | ||
| 52 | #ifndef zero_bytemask | ||
| 53 | #ifdef CONFIG_64BIT | ||
| 54 | #define zero_bytemask(mask) (~0ul << fls64(mask)) | ||
| 55 | #else | ||
| 56 | #define zero_bytemask(mask) (~0ul << fls(mask)) | ||
| 57 | #endif /* CONFIG_64BIT */ | ||
| 58 | #endif /* zero_bytemask */ | ||
| 59 | |||
| 52 | #endif /* _ASM_WORD_AT_A_TIME_H */ | 60 | #endif /* _ASM_WORD_AT_A_TIME_H */ |
