12
12
/// executed in Privileged modes.
13
13
#[ inline]
14
14
#[ target_feature( enable = "mclass" ) ]
15
+ #[ cfg_attr( test, assert_instr( cpsie) ) ]
15
16
pub unsafe fn __enable_irq ( ) {
16
17
asm ! ( "cpsie i" : : : "memory" : "volatile" ) ;
17
18
}
@@ -22,6 +23,7 @@ pub unsafe fn __enable_irq() {
22
23
/// executed in Privileged modes.
23
24
#[ inline]
24
25
#[ target_feature( enable = "mclass" ) ]
26
+ #[ cfg_attr( test, assert_instr( cpsid) ) ]
25
27
pub unsafe fn __disable_irq ( ) {
26
28
asm ! ( "cpsid i" : : : "memory" : "volatile" ) ;
27
29
}
@@ -31,6 +33,7 @@ pub unsafe fn __disable_irq() {
31
33
/// Returns the content of the Control Register.
32
34
#[ inline]
33
35
#[ target_feature( enable = "mclass" ) ]
36
+ #[ cfg_attr( test, assert_instr( mrs) ) ]
34
37
pub unsafe fn __get_CONTROL ( ) -> u32 {
35
38
let result: u32 ;
36
39
asm ! ( "mrs $0, CONTROL" : "=r" ( result) : : : "volatile" ) ;
@@ -42,6 +45,7 @@ pub unsafe fn __get_CONTROL() -> u32 {
42
45
/// Writes the given value to the Control Register.
43
46
#[ inline]
44
47
#[ target_feature( enable = "mclass" ) ]
48
+ #[ cfg_attr( test, assert_instr( msr) ) ]
45
49
pub unsafe fn __set_CONTROL ( control : u32 ) {
46
50
asm ! ( "msr CONTROL, $0" : : "r" ( control) : "memory" : "volatile" ) ;
47
51
}
@@ -51,6 +55,7 @@ pub unsafe fn __set_CONTROL(control: u32) {
51
55
/// Returns the content of the IPSR Register.
52
56
#[ inline]
53
57
#[ target_feature( enable = "mclass" ) ]
58
+ #[ cfg_attr( test, assert_instr( mrs) ) ]
54
59
pub unsafe fn __get_IPSR ( ) -> u32 {
55
60
let result: u32 ;
56
61
asm ! ( "mrs $0, IPSR" : "=r" ( result) : : : "volatile" ) ;
@@ -62,6 +67,7 @@ pub unsafe fn __get_IPSR() -> u32 {
62
67
/// Returns the content of the APSR Register.
63
68
#[ inline]
64
69
#[ target_feature( enable = "mclass" ) ]
70
+ #[ cfg_attr( test, assert_instr( mrs) ) ]
65
71
pub unsafe fn __get_APSR ( ) -> u32 {
66
72
let result: u32 ;
67
73
asm ! ( "mrs $0, APSR" : "=r" ( result) : : : "volatile" ) ;
@@ -73,6 +79,7 @@ pub unsafe fn __get_APSR() -> u32 {
73
79
/// Returns the content of the xPSR Register.
74
80
#[ inline]
75
81
#[ target_feature( enable = "mclass" ) ]
82
+ #[ cfg_attr( test, assert_instr( mrs) ) ]
76
83
pub unsafe fn __get_xPSR ( ) -> u32 {
77
84
let result: u32 ;
78
85
asm ! ( "mrs $0, XPSR" : "=r" ( result) : : : "volatile" ) ;
@@ -84,6 +91,7 @@ pub unsafe fn __get_xPSR() -> u32 {
84
91
/// Returns the current value of the Process Stack Pointer (PSP).
85
92
#[ inline]
86
93
#[ target_feature( enable = "mclass" ) ]
94
+ #[ cfg_attr( test, assert_instr( mrs) ) ]
87
95
pub unsafe fn __get_PSP ( ) -> u32 {
88
96
let result: u32 ;
89
97
asm ! ( "mrs $0, PSP" : "=r" ( result) : : : "volatile" ) ;
@@ -95,6 +103,7 @@ pub unsafe fn __get_PSP() -> u32 {
95
103
/// Assigns the given value to the Process Stack Pointer (PSP).
96
104
#[ inline]
97
105
#[ target_feature( enable = "mclass" ) ]
106
+ #[ cfg_attr( test, assert_instr( msr) ) ]
98
107
pub unsafe fn __set_PSP ( top_of_proc_stack : u32 ) {
99
108
asm ! ( "msr PSP, $0" : : "r" ( top_of_proc_stack) : : "volatile" ) ;
100
109
}
@@ -104,6 +113,7 @@ pub unsafe fn __set_PSP(top_of_proc_stack: u32) {
104
113
/// Returns the current value of the Main Stack Pointer (MSP).
105
114
#[ inline]
106
115
#[ target_feature( enable = "mclass" ) ]
116
+ #[ cfg_attr( test, assert_instr( mrs) ) ]
107
117
pub unsafe fn __get_MSP ( ) -> u32 {
108
118
let result: u32 ;
109
119
asm ! ( "mrs $0, MSP" : "=r" ( result) : : : "volatile" ) ;
@@ -115,6 +125,7 @@ pub unsafe fn __get_MSP() -> u32 {
115
125
/// Assigns the given value to the Main Stack Pointer (MSP).
116
126
#[ inline]
117
127
#[ target_feature( enable = "mclass" ) ]
128
+ #[ cfg_attr( test, assert_instr( msr) ) ]
118
129
pub unsafe fn __set_MSP ( top_of_main_stack : u32 ) {
119
130
asm ! ( "msr MSP, $0" : : "r" ( top_of_main_stack) : : "volatile" ) ;
120
131
}
@@ -125,6 +136,7 @@ pub unsafe fn __set_MSP(top_of_main_stack: u32) {
125
136
/// Register.
126
137
#[ inline]
127
138
#[ target_feature( enable = "mclass" ) ]
139
+ #[ cfg_attr( test, assert_instr( mrs) ) ]
128
140
pub unsafe fn __get_PRIMASK ( ) -> u32 {
129
141
let result: u32 ;
130
142
asm ! ( "mrs $0, PRIMASK" : "=r" ( result) : : "memory" : "volatile" ) ;
@@ -136,6 +148,7 @@ pub unsafe fn __get_PRIMASK() -> u32 {
136
148
/// Assigns the given value to the Priority Mask Register.
137
149
#[ inline]
138
150
#[ target_feature( enable = "mclass" ) ]
151
+ #[ cfg_attr( test, assert_instr( msr) ) ]
139
152
pub unsafe fn __set_PRIMASK ( pri_mask : u32 ) {
140
153
asm ! ( "msr PRIMASK, $0" : : "r" ( pri_mask) : : "volatile" ) ;
141
154
}
@@ -148,6 +161,7 @@ mod v7 {
148
161
/// executed in Privileged modes.
149
162
#[ inline]
150
163
#[ target_feature( enable = "mclass" ) ]
164
+ #[ cfg_attr( test, assert_instr( cpsie) ) ]
151
165
pub unsafe fn __enable_fault_irq ( ) {
152
166
asm ! ( "cpsie f" : : : "memory" : "volatile" ) ;
153
167
}
@@ -158,6 +172,7 @@ mod v7 {
158
172
/// executed in Privileged modes.
159
173
#[ inline]
160
174
#[ target_feature( enable = "mclass" ) ]
175
+ #[ cfg_attr( test, assert_instr( cpsid) ) ]
161
176
pub unsafe fn __disable_fault_irq ( ) {
162
177
asm ! ( "cpsid f" : : : "memory" : "volatile" ) ;
163
178
}
@@ -167,6 +182,7 @@ mod v7 {
167
182
/// Returns the current value of the Base Priority register.
168
183
#[ inline]
169
184
#[ target_feature( enable = "mclass" ) ]
185
+ #[ cfg_attr( test, assert_instr( mrs) ) ]
170
186
pub unsafe fn __get_BASEPRI ( ) -> u32 {
171
187
let result: u32 ;
172
188
asm ! ( "mrs $0, BASEPRI" : "=r" ( result) : : : "volatile" ) ;
@@ -178,6 +194,7 @@ mod v7 {
178
194
/// Assigns the given value to the Base Priority register.
179
195
#[ inline]
180
196
#[ target_feature( enable = "mclass" ) ]
197
+ #[ cfg_attr( test, assert_instr( msr) ) ]
181
198
pub unsafe fn __set_BASEPRI ( base_pri : u32 ) {
182
199
asm ! ( "msr BASEPRI, $0" : : "r" ( base_pri) : "memory" : "volatile" ) ;
183
200
}
@@ -189,6 +206,7 @@ mod v7 {
189
206
/// priority level.
190
207
#[ inline]
191
208
#[ target_feature( enable = "mclass" ) ]
209
+ #[ cfg_attr( test, assert_instr( mrs) ) ]
192
210
pub unsafe fn __set_BASEPRI_MAX ( base_pri : u32 ) {
193
211
asm ! ( "msr BASEPRI_MAX, $0" : : "r" ( base_pri) : "memory" : "volatile" ) ;
194
212
}
@@ -198,6 +216,7 @@ mod v7 {
198
216
/// Returns the current value of the Fault Mask register.
199
217
#[ inline]
200
218
#[ target_feature( enable = "mclass" ) ]
219
+ #[ cfg_attr( test, assert_instr( mrs) ) ]
201
220
pub unsafe fn __get_FAULTMASK ( ) -> u32 {
202
221
let result: u32 ;
203
222
asm ! ( "mrs $0, FAULTMASK" : "=r" ( result) : : : "volatile" ) ;
@@ -209,6 +228,7 @@ mod v7 {
209
228
/// Assigns the given value to the Fault Mask register.
210
229
#[ inline]
211
230
#[ target_feature( enable = "mclass" ) ]
231
+ #[ cfg_attr( test, assert_instr( msr) ) ]
212
232
pub unsafe fn __set_FAULTMASK ( fault_mask : u32 ) {
213
233
asm ! ( "msr FAULTMASK, $0" : : "r" ( fault_mask) : "memory" : "volatile" ) ;
214
234
}
@@ -225,6 +245,7 @@ pub use self::v7::*;
225
245
/// purposes.
226
246
#[ inline]
227
247
#[ target_feature( enable = "mclass" ) ]
248
+ #[ cfg_attr( test, assert_instr( nop) ) ]
228
249
pub unsafe fn __NOP ( ) {
229
250
asm ! ( "nop" : : : : "volatile" ) ;
230
251
}
@@ -235,6 +256,7 @@ pub unsafe fn __NOP() {
235
256
/// of a number of events occurs.
236
257
#[ inline]
237
258
#[ target_feature( enable = "mclass" ) ]
259
+ #[ cfg_attr( test, assert_instr( wfi) ) ]
238
260
pub unsafe fn __WFI ( ) {
239
261
asm ! ( "wfi" : : : : "volatile" ) ;
240
262
}
@@ -245,6 +267,7 @@ pub unsafe fn __WFI() {
245
267
/// low-power state until one of a number of events occurs.
246
268
#[ inline]
247
269
#[ target_feature( enable = "mclass" ) ]
270
+ #[ cfg_attr( test, assert_instr( wfe) ) ]
248
271
pub unsafe fn __WFE ( ) {
249
272
asm ! ( "wfe" : : : : "volatile" ) ;
250
273
}
@@ -255,6 +278,7 @@ pub unsafe fn __WFE() {
255
278
/// CPU.
256
279
#[ inline]
257
280
#[ target_feature( enable = "mclass" ) ]
281
+ #[ cfg_attr( test, assert_instr( sev) ) ]
258
282
pub unsafe fn __SEV ( ) {
259
283
asm ! ( "sev" : : : : "volatile" ) ;
260
284
}
@@ -266,6 +290,7 @@ pub unsafe fn __SEV() {
266
290
/// memory, after the instruction has been completed.
267
291
#[ inline]
268
292
#[ target_feature( enable = "mclass" ) ]
293
+ #[ cfg_attr( test, assert_instr( isb) ) ]
269
294
pub unsafe fn __ISB ( ) {
270
295
asm ! ( "isb 0xF" : : : "memory" : "volatile" ) ;
271
296
}
@@ -276,6 +301,7 @@ pub unsafe fn __ISB() {
276
301
/// explicit memory accesses before this instruction complete.
277
302
#[ inline]
278
303
#[ target_feature( enable = "mclass" ) ]
304
+ #[ cfg_attr( test, assert_instr( dsb) ) ]
279
305
pub unsafe fn __DSB ( ) {
280
306
asm ! ( "dsb 0xF" : : : "memory" : "volatile" ) ;
281
307
}
@@ -286,6 +312,7 @@ pub unsafe fn __DSB() {
286
312
/// after the instruction, without ensuring their completion.
287
313
#[ inline]
288
314
#[ target_feature( enable = "mclass" ) ]
315
+ #[ cfg_attr( test, assert_instr( dmb) ) ]
289
316
pub unsafe fn __DMB ( ) {
290
317
asm ! ( "dmb 0xF" : : : "memory" : "volatile" ) ;
291
318
}
0 commit comments