| #ifndef __ALPHA_SPECIAL_INSNS_H | 
 | #define __ALPHA_SPECIAL_INSNS_H | 
 |  | 
 | enum implver_enum { | 
 | 	IMPLVER_EV4, | 
 | 	IMPLVER_EV5, | 
 | 	IMPLVER_EV6 | 
 | }; | 
 |  | 
 | #ifdef CONFIG_ALPHA_GENERIC | 
 | #define implver()				\ | 
 | ({ unsigned long __implver;			\ | 
 |    __asm__ ("implver %0" : "=r"(__implver));	\ | 
 |    (enum implver_enum) __implver; }) | 
 | #else | 
 | /* Try to eliminate some dead code.  */ | 
 | #ifdef CONFIG_ALPHA_EV4 | 
 | #define implver() IMPLVER_EV4 | 
 | #endif | 
 | #ifdef CONFIG_ALPHA_EV5 | 
 | #define implver() IMPLVER_EV5 | 
 | #endif | 
 | #if defined(CONFIG_ALPHA_EV6) | 
 | #define implver() IMPLVER_EV6 | 
 | #endif | 
 | #endif | 
 |  | 
 | enum amask_enum { | 
 | 	AMASK_BWX = (1UL << 0), | 
 | 	AMASK_FIX = (1UL << 1), | 
 | 	AMASK_CIX = (1UL << 2), | 
 | 	AMASK_MAX = (1UL << 8), | 
 | 	AMASK_PRECISE_TRAP = (1UL << 9), | 
 | }; | 
 |  | 
 | #define amask(mask)						\ | 
 | ({ unsigned long __amask, __input = (mask);			\ | 
 |    __asm__ ("amask %1,%0" : "=r"(__amask) : "rI"(__input));	\ | 
 |    __amask; }) | 
 |  | 
 | #endif /* __ALPHA_SPECIAL_INSNS_H */ |