ROSS
amd64.c
Go to the documentation of this file.
1 #include <ross.h>
2 
3 #ifndef __GNUC__
4 # error gcc asm extensions required
5 #endif
6 #if ! (defined(__amd64__) || defined(__x86_64__))
7 # error only amd64 platform supported
8 #endif
9 
10 /*
11  * Our function below calls the "rdtsc" x86 assembly language function
12  * to obtain the current clock cycle value.
13  */
14 static const tw_optdef clock_opts [] =
15 {
16  TWOPT_GROUP("ROSS Timing"),
17  TWOPT_ULONGLONG("clock-rate", g_tw_clock_rate, "CPU Clock Rate"),
18  TWOPT_END()
19 };
20 
22 {
23  return clock_opts;
24 }
25 
26 
27 
28 void
30 {
31  me->clock_time = 0;
33 }
34 
37 {
39  return me->clock_time;
40 }
void tw_clock_init(tw_pe *me)
Definition: amd64.c:29
unsigned long long g_tw_clock_rate
Definition: ross-global.c:98
const tw_optdef * tw_clock_setup(void)
Definition: amd64.c:21
static tw_clock tw_clock_read(void)
Definition: aarch64.h:6
Holds the entire PE state.
Definition: ross-types.h:375
#define TWOPT_ULONGLONG(n, v, h)
Definition: tw-opts.h:29
tw_clock clock_offset
Initial clock value for this PE.
Definition: ross-types.h:396
tw_clock clock_time
Most recent clock value for this PE.
Definition: ross-types.h:397
static const tw_optdef clock_opts[]
Definition: amd64.c:14
#define TWOPT_END()
Definition: tw-opts.h:35
uint64_t tw_clock
Definition: aarch64.h:4
#define TWOPT_GROUP(h)
Definition: tw-opts.h:27
tw_clock tw_clock_now(tw_pe *me)
Definition: amd64.c:36