1 #ifndef __ALPHA_SPECIAL_INSNS_H 2 #define __ALPHA_SPECIAL_INSNS_H 3 4 enum 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 28 enum 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