summaryrefslogtreecommitdiff
path: root/train_cmd.c
diff options
context:
space:
mode:
authorDarkvater <darkvater@openttd.org>2006-03-26 21:15:09 +0000
committerDarkvater <darkvater@openttd.org>2006-03-26 21:15:09 +0000
commita91c52e16909976b40951cf2893f2349e9ebf25d (patch)
tree07ce18ba583aad9caf062c352c2632ba1ea394c6 /train_cmd.c
parent4125aa21f8dfc72a60bf70b890b95c2187425112 (diff)
downloadopenttd-a91c52e16909976b40951cf2893f2349e9ebf25d.tar.xz
(svn r4125) - Feature: Add a general TIC() TOC() mechanism using rdtsc or something similar on non-i386 architectures to performance-tune (critical) code. Some systems are probably missing, but those can be added later.
Diffstat (limited to 'train_cmd.c')
-rw-r--r--train_cmd.c30
1 files changed, 2 insertions, 28 deletions
diff --git a/train_cmd.c b/train_cmd.c
index 245f37e3e..e5fd26772 100644
--- a/train_cmd.c
+++ b/train_cmd.c
@@ -2087,29 +2087,6 @@ static const byte _search_directions[6][4] = {
};
static const byte _pick_track_table[6] = {1, 3, 2, 2, 0, 0};
-#ifdef PF_BENCHMARK
-#if !defined(_MSC_VER)
-unsigned int _rdtsc()
-{
- unsigned int high, low;
-
- __asm__ __volatile__ ("rdtsc" : "=a" (low), "=d" (high));
- return low;
-}
-#else
-#ifndef _M_AMD64
-static unsigned int _declspec(naked) _rdtsc(void)
-{
- _asm {
- rdtsc
- ret
- }
-}
-#endif
-#endif
-#endif
-
-
/* choose a track */
static byte ChooseTrainTrack(Vehicle* v, TileIndex tile, DiagDirection enterdir, TrackdirBits trackdirbits)
@@ -2117,8 +2094,7 @@ static byte ChooseTrainTrack(Vehicle* v, TileIndex tile, DiagDirection enterdir,
TrainTrackFollowerData fd;
uint best_track;
#ifdef PF_BENCHMARK
- int time = _rdtsc();
- static float f;
+ TIC()
#endif
assert((trackdirbits & ~0x3F) == 0);
@@ -2171,9 +2147,7 @@ static byte ChooseTrainTrack(Vehicle* v, TileIndex tile, DiagDirection enterdir,
}
#ifdef PF_BENCHMARK
- time = _rdtsc() - time;
- f = f * 0.99 + 0.01 * time;
- printf("PF time = %d %f\n", time, f);
+ TOC("PF time = ", 1)
#endif
return best_track;