20#include "instrument.h"
23void __cyg_profile_func_enter(
void* func_address,
void* call_site)
32static volatile int g_WrittenFirst = 0;
35void __cyg_profile_func_enter(
void* func_address,
void* call_site) {
41 if (__sync_bool_compare_and_swap(&g_WrittenFirst, 0, 1)) {
43 flag |= INSTRUMENT_GLOBAL_LITE;
44 asm volatile(
"outb %%al, %%dx" ::
"d"(COM2),
"a"(flag));
49 record.data.
function =
reinterpret_cast<uintptr_t
>(func_address);
69 :
"d"(COM2),
"0"(record.buffer),
"1"(
sizeof record.buffer)