aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/crcutil/rdtsc.h
diff options
context:
space:
mode:
authormonster <monster@ydb.tech>2022-07-07 14:41:37 +0300
committermonster <monster@ydb.tech>2022-07-07 14:41:37 +0300
commit06e5c21a835c0e923506c4ff27929f34e00761c2 (patch)
tree75efcbc6854ef9bd476eb8bf00cc5c900da436a2 /contrib/libs/crcutil/rdtsc.h
parent03f024c4412e3aa613bb543cf1660176320ba8f4 (diff)
downloadydb-06e5c21a835c0e923506c4ff27929f34e00761c2.tar.gz
fix ya.make
Diffstat (limited to 'contrib/libs/crcutil/rdtsc.h')
-rw-r--r--contrib/libs/crcutil/rdtsc.h59
1 files changed, 0 insertions, 59 deletions
diff --git a/contrib/libs/crcutil/rdtsc.h b/contrib/libs/crcutil/rdtsc.h
deleted file mode 100644
index 57aea1f1fbb..00000000000
--- a/contrib/libs/crcutil/rdtsc.h
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2010 Google Inc. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Reads CPU cycle counter on AMD64 and I386 (for performance measurements).
-// Thanks to __rdtsc() intrinsic, it's easy with Microsoft and Intel
-// compilers, but real pain with GCC.
-
-#ifndef CRCUTIL_RDTSC_H_
-#define CRCUTIL_RDTSC_H_
-
-#include "platform.h"
-
-namespace crcutil {
-
-struct Rdtsc {
- static inline uint64 Get() {
-#if defined(_MSC_VER) && (HAVE_AMD64 || HAVE_I386)
- return __rdtsc();
-#elif defined(__GNUC__) && HAVE_AMD64
- int64 result;
- __asm__ volatile(
- "rdtsc\n"
- : "=a" (result));
- return result;
-#elif defined(__GNUC__) && HAVE_I386
- // If "low" and "high" are defined as "uint64" to
- // avoid explicit cast to uint64, GCC 4.5.0 in "-m32" mode
- // fails with "impossible register constraint" error
- // (no, it is not because one cannot use 64-bit value as argument
- // for 32-bit register, but because its register allocator
- // could not resolve a conflict under high register pressure).
- uint32 low;
- uint32 high;
- __asm__ volatile(
- "rdtsc\n"
- : "=a" (low), "=d" (high));
- return ((static_cast<uint64>(high) << 32) | low);
-#else
- // It is hard to find low overhead timer with
- // sub-millisecond resolution and granularity.
- return 0;
-#endif
- }
-};
-
-} // namespace crcutil
-
-#endif // CRCUTIL_RDTSC_H_