cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

special_insns.h (925B)


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