Loading...
Searching...
No Matches
Go to the documentation of this file.
24#ifndef __PFMLIB_COMP_IA64_H__
25#define __PFMLIB_COMP_IA64_H__
27#ifndef __PFMLIB_COMP_H__
28#error "you should never include this file directly, use pfmlib_comp.h"
32#error "you should not be including this file"
44#if defined(__ECC) && defined(__INTEL_COMPILER)
45#define LIBPFM_USING_INTEL_ECC_COMPILER 1
47#include <ia64intrin.h>
51#ifdef LIBPFM_USING_INTEL_ECC_COMPILER
53#define ia64_sum(void) __sum(1<<2)
54#define ia64_rum(void) __rum(1<<2)
55#define ia64_get_pmd(regnum) __getIndReg(_IA64_REG_INDR_PMD, (regnum))
56#define pfmlib_popcnt(v) _m64_popcnt(v)
58#elif defined(__GNUC__)
63 __asm__ __volatile__(
"sum psr.up;;" :::
"memory" );
69 __asm__ __volatile__(
"rum psr.up;;" :::
"memory" );
71static inline unsigned long
72ia64_get_pmd(
int regnum)
75 __asm__ __volatile__ (
"mov %0=pmd[%1]" :
"=r"(value) :
"r"(regnum));
79static inline unsigned long
83 __asm__ __volatile__ (
"popcnt %0=%1" :
"=r"(ret) :
"r"(v));
87#error "need to define a set of compiler-specific macros"