]> git.ipfire.org Git - people/arne_f/kernel.git/blame - arch/alpha/include/asm/special_insns.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[people/arne_f/kernel.git] / arch / alpha / include / asm / special_insns.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
ec221208
DH
2#ifndef __ALPHA_SPECIAL_INSNS_H
3#define __ALPHA_SPECIAL_INSNS_H
4
5enum 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
29enum 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 */