Skip to content

Commit

Permalink
Merge pull request tideways#50 from skilld-labs/powerpc64
Browse files Browse the repository at this point in the history
Fix build on ppc64le
  • Loading branch information
beberlei authored Mar 24, 2018
2 parents 83d7c15 + fc7e495 commit 7f987ca
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
10 changes: 10 additions & 0 deletions timer.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,18 @@ static zend_always_inline uint64 time_milliseconds(int source, double timebase_f
return 0;
#endif
case TIDEWAYS_XHPROF_CLOCK_TSC:
#if defined(__i386__)
int64_t ret;
__asm__ volatile("rdtsc" : "=A"(ret));
return ret;
#elif defined(__x86_64__) || defined(__amd64__)
asm volatile("rdtsc" : "=a" (a), "=d" (d));
(val) = ((uint64)a) | (((uint64)d)<<32);
#elif defined(__powerpc__) || defined(__ppc__)
asm volatile ("mftb %0" : "=r" (val));
#else
#error You need to define CycleTimer for your OS and CPU
#endif
return val / timebase_factor;

default:
Expand Down
2 changes: 2 additions & 0 deletions tracing.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ static const char digits[] = "0123456789abcdef";
void tracing_determine_clock_source(TSRMLS_D) {
#ifdef __APPLE__
TXRG(clock_source) = TIDEWAYS_XHPROF_CLOCK_MACH;
#elif defined(__powerpc__) || defined(__ppc__)
TXRG(clock_source) = TIDEWAYS_XHPROF_CLOCK_TSC;
#elif defined(PHP_WIN32)
TXRG(clock_source) = TIDEWAYS_XHPROF_CLOCK_QPC;
#else
Expand Down

0 comments on commit 7f987ca

Please sign in to comment.