]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | /* SPDX-License-Identifier: BSD-3-Clause |
2 | * Copyright(c) 2015 Cavium, Inc | |
3 | */ | |
4 | ||
5 | #ifndef _RTE_PREFETCH_ARM_64_H_ | |
6 | #define _RTE_PREFETCH_ARM_64_H_ | |
7 | ||
8 | #ifdef __cplusplus | |
9 | extern "C" { | |
10 | #endif | |
11 | ||
12 | #include <rte_common.h> | |
13 | #include "generic/rte_prefetch.h" | |
14 | ||
15 | static inline void rte_prefetch0(const volatile void *p) | |
16 | { | |
17 | asm volatile ("PRFM PLDL1KEEP, [%0]" : : "r" (p)); | |
18 | } | |
19 | ||
20 | static inline void rte_prefetch1(const volatile void *p) | |
21 | { | |
22 | asm volatile ("PRFM PLDL2KEEP, [%0]" : : "r" (p)); | |
23 | } | |
24 | ||
25 | static inline void rte_prefetch2(const volatile void *p) | |
26 | { | |
27 | asm volatile ("PRFM PLDL3KEEP, [%0]" : : "r" (p)); | |
28 | } | |
29 | ||
30 | static inline void rte_prefetch_non_temporal(const volatile void *p) | |
31 | { | |
32 | asm volatile ("PRFM PLDL1STRM, [%0]" : : "r" (p)); | |
33 | } | |
34 | ||
35 | #ifdef __cplusplus | |
36 | } | |
37 | #endif | |
38 | ||
39 | #endif /* _RTE_PREFETCH_ARM_64_H_ */ |