root/arch/alpha/include/asm/special_insns.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __ALPHA_SPECIAL_INSNS_H
   3 #define __ALPHA_SPECIAL_INSNS_H
   4 
   5 enum 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 
  29 enum 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 */

/* [<][>][^][v][top][bottom][index][help] */