Commit | Line | Data |
---|---|---|
a00736e9 SR |
1 | #ifndef _SPARC64_BACKOFF_H |
2 | #define _SPARC64_BACKOFF_H | |
3 | ||
4 | #define BACKOFF_LIMIT (4 * 1024) | |
5 | ||
6 | #ifdef CONFIG_SMP | |
7 | ||
8 | #define BACKOFF_SETUP(reg) \ | |
9 | mov 1, reg | |
10 | ||
11 | #define BACKOFF_SPIN(reg, tmp, label) \ | |
12 | mov reg, tmp; \ | |
13 | 88: brnz,pt tmp, 88b; \ | |
14 | sub tmp, 1, tmp; \ | |
15 | set BACKOFF_LIMIT, tmp; \ | |
16 | cmp reg, tmp; \ | |
17 | bg,pn %xcc, label; \ | |
18 | nop; \ | |
19 | ba,pt %xcc, label; \ | |
20 | sllx reg, 1, reg; | |
21 | ||
22 | #else | |
23 | ||
24 | #define BACKOFF_SETUP(reg) | |
25 | #define BACKOFF_SPIN(reg, tmp, label) \ | |
26 | ba,pt %xcc, label; \ | |
27 | nop; | |
28 | ||
29 | #endif | |
30 | ||
31 | #endif /* _SPARC64_BACKOFF_H */ |