X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fstat%2Fstat_timing.h;h=517f20167be7968008198bd1d6d34e449a8ad3c2;hb=04321ea9f9ac1185bd7092813c34683aa15cd05f;hp=e93d5e66aa6913c92fd4cd3824626d044866ef66;hpb=bd0527dc2b3757a255a5375a6815b26919a7852c;p=libfirm diff --git a/ir/stat/stat_timing.h b/ir/stat/stat_timing.h index e93d5e66a..517f20167 100644 --- a/ir/stat/stat_timing.h +++ b/ir/stat/stat_timing.h @@ -26,21 +26,18 @@ #ifndef FIRM_STAT_TIMING_H #define FIRM_STAT_TIMING_H -#ifdef __i386__ - -#ifdef __GNUC__ +#if defined(__i386__) || defined(_M_IX86) +#if defined(__GNUC__) typedef unsigned long long timing_ticks_t; static inline timing_ticks_t __timing_ticks(void) { timing_ticks_t result; __asm__ __volatile__ ("rdtsc" : "=A" (result)); return result; } -#else -#if define _MSC_VER +#elif defined(_MSC_VER) /* win32 implementation using rdtsc */ typedef unsigned __int64 timing_ticks_t; static __inline timing_ticks_t __timing_ticks(void) { __asm { rdtsc } } #else #error need a 64bit int type #endif -#endif #define timing_ticks(t) ((t) = __timing_ticks()) #define timing_ticks_init(t) ((t) = 0) @@ -56,7 +53,7 @@ static __inline timing_ticks_t __timing_ticks(void) { __asm { rdtsc } } typedef struct timeval timing_ticks_t; #define timing_ticks(t) (gettimeofday(&(t), NULL)) -#define timing_ticks_init(t) ((t).tv_sec = 0, (t).tv_usec = 0) +#define timing_ticks_init(t) memset(&(t), 0, sizeof(t)) /* * This shamelessly stolen and modified from glibc's