blob: 443a9b8ae19cef466c0226742a21a6496980bd94 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#if ARCH_x86_64
internal Profile *x86_start_profile(MemArena *arena, void (*callback)(), void *callback_arg)
{
ScratchArena scratch = scratch_start(arena);
Unused(scratch);
u64 start_high, start_low, end_high, end_low;
// GetCycles(start_high, start_low);
Profile *p = PushStruct(arena, Profile);
p->start = start_high - start_low;
callback(arg);
// GetCycles(end_high, end_low);
p->end = end_high - end_low;
return p;
// do the logging inline
{
Log("log the profile or something");
}
scratch_end(scratch);
}
#elif ARCH_ARM
#else
#error platform not supported for profiling
#endif
|