/* This file is autogenerated by tracetool, do not edit. */
/* You must include this file after the inclusion of helper.h */

#ifndef TRACE_ROOT_GENERATED_TCG_TRACERS_H
#define TRACE_ROOT_GENERATED_TCG_TRACERS_H

#include "exec/helper-proto.h"
#include "trace-root.h"

static inline void trace_guest_mem_before_tcg(CPUState * __cpu, TCGv_env __tcg___cpu, TCGv vaddr, uint8_t info)
{
    trace_guest_mem_before_trans(__cpu, info);
    if (trace_event_get_vcpu_state(__cpu, TRACE_GUEST_MEM_BEFORE_EXEC)) {
        gen_helper_trace_guest_mem_before_exec(__tcg___cpu, vaddr, info);
    }
}

#endif /* TRACE_ROOT_GENERATED_TCG_TRACERS_H */
