aboutsummaryrefslogtreecommitdiffstats
path: root/test/spass/clock.c
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2014-11-27 15:37:32 +0100
committerBernhard Schommer <bernhardschommer@gmail.com>2014-11-27 15:37:32 +0100
commit56690956f52349c3398b3de6f8ec3987501e9034 (patch)
tree5fc98e863bb41018084b2110f0ae950189a7b7d6 /test/spass/clock.c
parent853a40b117495ebf883593633f680cd5c92f5951 (diff)
parentc3b615f875ed2cf8418453c79c4621d2dc61b0a0 (diff)
downloadcompcert-56690956f52349c3398b3de6f8ec3987501e9034.tar.gz
compcert-56690956f52349c3398b3de6f8ec3987501e9034.zip
Merge branch 'master' into dwarf
Diffstat (limited to 'test/spass/clock.c')
-rw-r--r--test/spass/clock.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/test/spass/clock.c b/test/spass/clock.c
index 7106669a..d9472338 100644
--- a/test/spass/clock.c
+++ b/test/spass/clock.c
@@ -104,7 +104,7 @@ void clock_StartCounter(CLOCK_CLOCKS ClockCounter)
**********************************************************/
{
#ifndef CLOCK_NO_TIMING
- ftime(&(clock_Counters[ClockCounter]));
+ gettimeofday(&(clock_Counters[ClockCounter]), NULL);
#endif
}
@@ -121,7 +121,7 @@ void clock_StopPassedTime(CLOCK_CLOCKS ClockCounter)
{
#ifndef CLOCK_NO_TIMING
CLOCK_TMS newtime;
- ftime(&newtime);
+ gettimeofday(&newtime, NULL);
clock_Akku[ClockCounter] = clock_GetSeconds(ClockCounter);
#endif
}
@@ -139,7 +139,7 @@ void clock_StopAddPassedTime(CLOCK_CLOCKS ClockCounter)
{
#ifndef CLOCK_NO_TIMING
CLOCK_TMS newtime;
- ftime(&newtime);
+ gettimeofday(&newtime, NULL);
clock_Akku[ClockCounter] += clock_GetSeconds(ClockCounter);
#endif
}
@@ -157,13 +157,21 @@ float clock_GetSeconds(CLOCK_CLOCKS ClockCounter)
{
#ifndef CLOCK_NO_TIMING
CLOCK_TMS newtime;
- ftime(&newtime);
- return ((float) (newtime.time - clock_Counters[ClockCounter].time)
- + (((newtime.millitm - clock_Counters[ClockCounter].millitm))
- /(float)1000));
-#else
+ time_t seconds_passed;
+ long microseconds_passed;
+
+ gettimeofday(&newtime, NULL);
+
+ seconds_passed = newtime.tv_sec - clock_Counters[ClockCounter].tv_sec;
+ microseconds_passed = newtime.tv_usec - clock_Counters[ClockCounter].tv_usec;
+
+ return ((float) seconds_passed
+ + (microseconds_passed /(float)1000000));
+
+#else /* CLOCK_NO_TIMING */
return 0;
-#endif
+#endif /* ! CLOCK_NO_TIMING */
+
}
#ifdef WIN