]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
ec221208 DH |
2 | #ifndef __ALPHA_SPECIAL_INSNS_H |
3 | #define __ALPHA_SPECIAL_INSNS_H | |
4 | ||
5 | enum implver_enum { | |
6 | IMPLVER_EV4, | |
7 | IMPLVER_EV5, | |
8 | IMPLVER_EV6 | |
9 | }; | |
10 | ||
11 | #ifdef CONFIG_ALPHA_GENERIC | |
12 | #define implver() \ | |
13 | ({ unsigned long __implver; \ | |
14 | __asm__ ("implver %0" : "=r"(__implver)); \ | |
15 | (enum implver_enum) __implver; }) | |
16 | #else | |
17 | /* Try to eliminate some dead code. */ | |
18 | #ifdef CONFIG_ALPHA_EV4 | |
19 | #define implver() IMPLVER_EV4 | |
20 | #endif | |
21 | #ifdef CONFIG_ALPHA_EV5 | |
22 | #define implver() IMPLVER_EV5 | |
23 | #endif | |
24 | #if defined(CONFIG_ALPHA_EV6) | |
25 | #define implver() IMPLVER_EV6 | |
26 | #endif | |
27 | #endif | |
28 | ||
29 | enum amask_enum { | |
30 | AMASK_BWX = (1UL << 0), | |
31 | AMASK_FIX = (1UL << 1), | |
32 | AMASK_CIX = (1UL << 2), | |
33 | AMASK_MAX = (1UL << 8), | |
34 | AMASK_PRECISE_TRAP = (1UL << 9), | |
35 | }; | |
36 | ||
37 | #define amask(mask) \ | |
38 | ({ unsigned long __amask, __input = (mask); \ | |
39 | __asm__ ("amask %1,%0" : "=r"(__amask) : "rI"(__input)); \ | |
40 | __amask; }) | |
41 | ||
42 | #endif /* __ALPHA_SPECIAL_INSNS_H */ |