1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
use u3;
use crate;
/// Invalidate the full L1 data cache.
///
/// ## Generics
///
/// - A: log2(ASSOCIATIVITY) rounded up to the next integer if necessary. For example, a 4-way
/// associative cache will have a value of 2 and a 8-way associative cache will have a value of
/// 3.
/// - N: log2(LINE LENGTH). For example, a 32-byte line length (4 words) will have a value of
/// 5.
/// - S: log2(NUM OF SETS). For systems with a fixed cache size, the number of sets can be
/// calculated using `CACHE SIZE / (LINE LENGTH * ASSOCIATIVITY)`.
/// For example, a 4-way associative 32kB L1 cache with a 32-byte line length (4 words) will
/// have 32768 / (32 * 4) == 256 sets and S will have a value of 8.
/// Clean the full L1 data cache.
///
/// ## Generics
///
/// - A: log2(ASSOCIATIVITY) rounded up to the next integer if necessary. For example, a 4-way
/// associative cache will have a value of 2 and a 8-way associative cache will have a value of
/// 3.
/// - N: log2(LINE LENGTH). For example, a 32-byte line length (4 words) will have a value of
/// 5.
/// - S: log2(NUM OF SETS). For systems with a fixed cache size, the number of sets can be
/// calculated using `CACHE SIZE / (LINE LENGTH * ASSOCIATIVITY)`.
/// For example, a 4-way associative 32kB L1 cache with a 32-byte line length (4 words) will
/// have 32768 / (32 * 4) == 256 sets and S will have a value of 8.
/// Clean and Invalidate the full L1 data cache.
///
/// ## Generics
///
/// - A: log2(ASSOCIATIVITY) rounded up to the next integer if necessary. For example, a 4-way
/// associative cache will have a value of 2 and a 8-way associative cache will have a value of
/// 3.
/// - N: log2(LINE LENGTH). For example, a 32-byte line length (4 words) will have a value of
/// 5.
/// - S: log2(NUM OF SETS). For systems with a fixed cache size, the number of sets can be
/// calculated using `CACHE SIZE / (LINE LENGTH * ASSOCIATIVITY)`.
/// For example, a 4-way associative 32kB L1 cache with a 32-byte line length (4 words) will
/// have 32768 / (32 * 4) == 256 sets and S will have a value of 8.
/// Invalidates a data cache line to the point of coherence.
///
/// See p.1735 of the ARMv7-A Architecture Reference Manual for more information.
/// Cleans a data cache line to the point of coherence.
///
/// See p.1735 of the ARMv7-A Architecture Reference Manual for more information.
/// Cleans and invalidates a data cache line to the point of coherence.
///
/// See p.1735 of the ARMv7-A Architecture Reference Manual for more information.