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