SilcUInt64 silc_timer_tick(SilcTimer timer, SilcBool adjust)
{
#if defined(__GNUC__) || defined(__ICC)
SilcUInt64 silc_timer_tick(SilcTimer timer, SilcBool adjust)
{
#if defined(__GNUC__) || defined(__ICC)
SilcUInt64 x;
SilcUInt32 hi, lo;
asm volatile ("rdtsc" : "=a" (lo), "=d" (hi));
x = ((SilcUInt64)lo | ((SilcUInt64)hi << 32));
return adjust ? x - timer->sync_tdiff : x;
SilcUInt64 x;
SilcUInt32 hi, lo;
asm volatile ("rdtsc" : "=a" (lo), "=d" (hi));
x = ((SilcUInt64)lo | ((SilcUInt64)hi << 32));
return adjust ? x - timer->sync_tdiff : x;