Blame src/mpi/romio/mpl/include/mpl_timer_gcc_ia64_cycle.h

Packit Service c5cf8c
/* -*- Mode: C; c-basic-offset:4 ; -*- */
Packit Service c5cf8c
/*
Packit Service c5cf8c
 *  (C) 2001 by Argonne National Laboratory.
Packit Service c5cf8c
 *      See COPYRIGHT in top-level directory.
Packit Service c5cf8c
 */
Packit Service c5cf8c
Packit Service c5cf8c
#ifndef MPL_TIMER_GCC_IA64_CYCLE_H_INCLUDED
Packit Service c5cf8c
#define MPL_TIMER_GCC_IA64_CYCLE_H_INCLUDED
Packit Service c5cf8c
Packit Service c5cf8c
static inline void MPL_wtime(MPL_time_t * timeval)
Packit Service c5cf8c
{
Packit Service c5cf8c
    MPL_time_t t_val;
Packit Service c5cf8c
Packit Service c5cf8c
#ifdef __INTEL_COMPILER
Packit Service c5cf8c
#include "ia64regs.h"
Packit Service c5cf8c
    t_val = __getReg(_IA64_REG_AR_ITC);
Packit Service c5cf8c
#else
Packit Service c5cf8c
    __asm__ __volatile__("mov %0=ar.itc":"=r"(t_val));
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
    *timeval = t_val;
Packit Service c5cf8c
Packit Service c5cf8c
    return MPL_TIMER_SUCCESS;
Packit Service c5cf8c
}
Packit Service c5cf8c
Packit Service c5cf8c
#endif /* MPL_TIMER_GCC_IA64_CYCLE_H_INCLUDED */