1 1.1 kamil //===-- xray_powerpc64.inc --------------------------------------*- C++ -*-===// 2 1.1 kamil // 3 1.1 kamil // The LLVM Compiler Infrastructure 4 1.1 kamil // 5 1.1 kamil // This file is distributed under the University of Illinois Open Source 6 1.1 kamil // License. See LICENSE.TXT for details. 7 1.1 kamil // 8 1.1 kamil //===----------------------------------------------------------------------===// 9 1.1 kamil // 10 1.1 kamil // This file is a part of XRay, a dynamic runtime instrumentation system. 11 1.1 kamil // 12 1.1 kamil //===----------------------------------------------------------------------===// 13 1.1 kamil 14 1.1 kamil #include <cstdint> 15 1.1 kamil #include <mutex> 16 1.1 kamil #include <sys/platform/ppc.h> 17 1.1 kamil 18 1.1 kamil #include "xray_defs.h" 19 1.1 kamil 20 1.1 kamil namespace __xray { 21 1.1 kamil 22 1.1 kamil ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT { 23 1.1 kamil CPU = 0; 24 1.1 kamil return __ppc_get_timebase(); 25 1.1 kamil } 26 1.1 kamil 27 1.1 kamil inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT { 28 1.1 kamil static std::mutex M; 29 1.1 kamil std::lock_guard<std::mutex> Guard(M); 30 1.1 kamil return __ppc_get_timebase_freq(); 31 1.1 kamil } 32 1.1 kamil 33 1.1 kamil inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT { 34 1.1 kamil return true; 35 1.1 kamil } 36 1.1 kamil 37 1.1 kamil } // namespace __xray 38