1 
2 #if ACC_DEVICE_TYPE_nvidia
3 
4 #pragma acc routine nohost
clock(void)5 static int clock (void)
6 {
7   int thetime;
8 
9   asm __volatile__ ("mov.u32 %0, %%clock;" : "=r"(thetime));
10 
11   return thetime;
12 }
13 
14 #endif
15 
16 void
delay(unsigned long * d_o,unsigned long delay)17 delay (unsigned long *d_o, unsigned long delay)
18 {
19   int start, ticks;
20 
21   start = clock ();
22 
23   ticks = 0;
24 
25   while (ticks < delay)
26     ticks = clock () - start;
27 
28   return;
29 }
30 
31 void
delay2(unsigned long * d_o,unsigned long delay,unsigned long tid)32 delay2 (unsigned long *d_o, unsigned long delay, unsigned long tid)
33 {
34   int start, ticks;
35 
36   start = clock ();
37 
38   ticks = 0;
39 
40   while (ticks < delay)
41     ticks = clock () - start;
42 
43   d_o[0] = tid;
44 
45   return;
46 }
47