25
25
*
26
26
* Locking interrupts looks like this:
27
27
*
28
- * rsil a15 , TOPLEVEL
28
+ * rsil a14 , TOPLEVEL
29
29
* <code>
30
- * wsr a15 , PS
30
+ * wsr a14 , PS
31
31
* rsync
32
32
*
33
- * Note that a15 is used here because the register allocation
33
+ * Note that a14 is used here because the register allocation
34
34
* done by the compiler is not guaranteed and a window overflow
35
35
* may not occur between the rsil and wsr instructions. By using
36
- * a15 in the rsil, the machine is guaranteed to be in a state
36
+ * a14 in the rsil, the machine is guaranteed to be in a state
37
37
* where no register reference will cause an overflow.
38
38
*/
39
39
@@ -185,15 +185,15 @@ static inline void arch_atomic_##op(int i, atomic_t * v) \
185
185
unsigned int vval; \
186
186
\
187
187
__asm__ __volatile__( \
188
- " rsil a15 , "__stringify(TOPLEVEL)"\n" \
188
+ " rsil a14 , "__stringify(TOPLEVEL)"\n" \
189
189
" l32i %[result], %[mem]\n" \
190
190
" " #op " %[result], %[result], %[i]\n" \
191
191
" s32i %[result], %[mem]\n" \
192
- " wsr a15 , ps\n" \
192
+ " wsr a14 , ps\n" \
193
193
" rsync\n" \
194
194
: [result] "=&a" (vval), [mem] "+m" (*v) \
195
195
: [i] "a" (i) \
196
- : "a15 ", "memory" \
196
+ : "a14 ", "memory" \
197
197
); \
198
198
} \
199
199
@@ -203,15 +203,15 @@ static inline int arch_atomic_##op##_return(int i, atomic_t * v) \
203
203
unsigned int vval; \
204
204
\
205
205
__asm__ __volatile__( \
206
- " rsil a15 ,"__stringify(TOPLEVEL)"\n" \
206
+ " rsil a14 ,"__stringify(TOPLEVEL)"\n" \
207
207
" l32i %[result], %[mem]\n" \
208
208
" " #op " %[result], %[result], %[i]\n" \
209
209
" s32i %[result], %[mem]\n" \
210
- " wsr a15 , ps\n" \
210
+ " wsr a14 , ps\n" \
211
211
" rsync\n" \
212
212
: [result] "=&a" (vval), [mem] "+m" (*v) \
213
213
: [i] "a" (i) \
214
- : "a15 ", "memory" \
214
+ : "a14 ", "memory" \
215
215
); \
216
216
\
217
217
return vval; \
@@ -223,16 +223,16 @@ static inline int arch_atomic_fetch_##op(int i, atomic_t * v) \
223
223
unsigned int tmp, vval; \
224
224
\
225
225
__asm__ __volatile__( \
226
- " rsil a15 ,"__stringify(TOPLEVEL)"\n" \
226
+ " rsil a14 ,"__stringify(TOPLEVEL)"\n" \
227
227
" l32i %[result], %[mem]\n" \
228
228
" " #op " %[tmp], %[result], %[i]\n" \
229
229
" s32i %[tmp], %[mem]\n" \
230
- " wsr a15 , ps\n" \
230
+ " wsr a14 , ps\n" \
231
231
" rsync\n" \
232
232
: [result] "=&a" (vval), [tmp] "=&a" (tmp), \
233
233
[mem] "+m" (*v) \
234
234
: [i] "a" (i) \
235
- : "a15 ", "memory" \
235
+ : "a14 ", "memory" \
236
236
); \
237
237
\
238
238
return vval; \
0 commit comments