/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __ALPHA_SPECIAL_INSNS_H #define __ALPHA_SPECIAL_INSNS_H enum implver_enum { IMPLVER_EV4, IMPLVER_EV5, IMPLVER_EV6 }; #ifdef [31mCONFIG_ALPHA_GENERIC[0m #define implver() \ ({ unsigned long __implver; \ __asm__ ("implver %0" : "=r"(__implver)); \ (enum implver_enum) __implver; }) #else /* Try to eliminate some dead code. */ #ifdef [31mCONFIG_ALPHA_EV4[0m #define implver() IMPLVER_EV4 #endif #ifdef [31mCONFIG_ALPHA_EV5[0m #define implver() IMPLVER_EV5 #endif #if defined([31mCONFIG_ALPHA_EV6[0m) #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 */ |