1
1

Added support for cycle counter timer on Alpha and Sparc platforms

(thanks to George Bosilca)

This commit was SVN r21662.
Этот коммит содержится в:
Matthias Jurenz 2009-07-14 07:18:18 +00:00
родитель 957cdceb20
Коммит ea501084db
2 изменённых файлов: 13 добавлений и 6 удалений

Просмотреть файл

@ -1,5 +1,6 @@
5.4.9 5.4.9
- updated version of internal OTF to 1.3.12 (see extlib/otf/ChangeLog) - updated version of internal OTF to 1.3.12 (see extlib/otf/ChangeLog)
- added support for cycle counter timer on Alpha and Sparc platforms
- install header files to 'PREFIX/include/vampirtrace' by default to - install header files to 'PREFIX/include/vampirtrace' by default to
avoid conflicts with the OpenMPI integrated version of VT avoid conflicts with the OpenMPI integrated version of VT
- added configure option '--with[out]-bfd' to control usage of BFD - added configure option '--with[out]-bfd' to control usage of BFD

Просмотреть файл

@ -161,15 +161,21 @@ uint64_t vt_pform_wtime()
uint32_t highb = 0; uint32_t highb = 0;
do { do {
asm volatile ("mftbu %0" : "=r"(highb)); asm volatile ("mftbu %0" : "=r"(highb));
asm volatile ("mftb %0" : "=r"(low)); asm volatile ("mftb %0" : "=r"(low));
asm volatile ("mftbu %0" : "=r"(higha)); asm volatile ("mftbu %0" : "=r"(higha));
} while (highb != higha); } while (highb != higha);
clock_value = ((uint64_t)higha << 32) | (uint64_t)low; clock_value = ((uint64_t)higha << 32) | (uint64_t)low;
} }
# elif defined(__ia64__) # elif defined(__ia64__)
/* ... ITC */ /* ... ITC */
clock_value = __getReg(_IA64_REG_AR_ITC); clock_value = __getReg(_IA64_REG_AR_ITC);
# elif defined(__alpha__)
/* ... Alpha */
asm volatile ("rpcc %0" : "=r"(clock_value));
# elif defined(__sparc__)
/* ... Sparc */
asm ("rd %%tick, %0" : "=r"(clock_value));
# else # else
/* ... TSC */ /* ... TSC */
{ {