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

perf_event.h (802B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_SPARC_PERF_EVENT_H
      3#define __ASM_SPARC_PERF_EVENT_H
      4
      5#ifdef CONFIG_PERF_EVENTS
      6#include <asm/ptrace.h>
      7
      8#define perf_arch_fetch_caller_regs(regs, ip)		\
      9do {							\
     10	unsigned long _pstate, _asi, _pil, _i7, _fp;	\
     11	__asm__ __volatile__("rdpr %%pstate, %0\n\t"	\
     12			     "rd %%asi, %1\n\t"		\
     13			     "rdpr %%pil, %2\n\t"	\
     14			     "mov %%i7, %3\n\t"		\
     15			     "mov %%i6, %4\n\t"		\
     16			     : "=r" (_pstate),		\
     17			       "=r" (_asi),		\
     18			       "=r" (_pil),		\
     19			       "=r" (_i7),		\
     20			       "=r" (_fp));		\
     21	(regs)->tstate = (_pstate << 8) |		\
     22		(_asi << 24) | (_pil << 20);		\
     23	(regs)->tpc = (ip);				\
     24	(regs)->tnpc = (regs)->tpc + 4;			\
     25	(regs)->u_regs[UREG_I6] = _fp;			\
     26	(regs)->u_regs[UREG_I7] = _i7;			\
     27} while (0)
     28#endif
     29
     30#endif