1 /* clock.c
2  * Support file for nvptx in newlib.
3  */
4 #include <picolibc.h>
5 
6 #include <time.h>
7 
8 clock_t
clock()9 clock ()
10 {
11   unsigned long long now;
12 #if __PTX_SM__ >= 310
13   asm volatile("mov.u64 %0, %%globaltimer;" : "=r"(now));
14   return now/((1000000000ull)/CLOCKS_PER_SEC);
15 #else
16   asm volatile("mov.u64 %0, %%clock64;" : "=r"(now));
17   // Assume a GPU base clock frequency of 1250MHz.
18   return now/((1250000000ull)/CLOCKS_PER_SEC);
19 #endif
20 }
21