Commit | Line | Data |
---|---|---|
24f287e4 DM |
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 | cmp reg, BACKOFF_LIMIT; \ | |
16 | bg,pn %xcc, label; \ | |
17 | nop; \ | |
18 | ba,pt %xcc, label; \ | |
19 | sllx reg, 1, reg; | |
20 | ||
21 | #else | |
22 | ||
23 | #define BACKOFF_SETUP(reg) | |
0aa031d9 DM |
24 | #define BACKOFF_SPIN(reg, tmp, label) \ |
25 | ba,pt %xcc, label; \ | |
26 | nop; | |
24f287e4 DM |
27 | |
28 | #endif | |
29 | ||
30 | #endif /* _SPARC64_BACKOFF_H */ |