// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: inst.proto

#ifndef PROTOBUF_inst_2eproto__INCLUDED
#define PROTOBUF_inst_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 2006000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)

namespace ProtoMessage {

// Internal implementation detail -- do not call these.
void  protobuf_AddDesc_inst_2eproto();
void protobuf_AssignDesc_inst_2eproto();
void protobuf_ShutdownFile_inst_2eproto();

class InstHeader;
class Inst;
class Inst_MemAccess;

enum Inst_InstType {
  Inst_InstType_None = 0,
  Inst_InstType_IntAlu = 1,
  Inst_InstType_IntMul = 2,
  Inst_InstType_IntDiv = 3,
  Inst_InstType_FloatAdd = 4,
  Inst_InstType_FloatCmp = 5,
  Inst_InstType_FloatCvt = 6,
  Inst_InstType_FloatMult = 7,
  Inst_InstType_FloatDiv = 8,
  Inst_InstType_FloatSqrt = 9,
  Inst_InstType_SIMDIntAdd = 10,
  Inst_InstType_SIMDIntAddAcc = 11,
  Inst_InstType_SIMDIntAlu = 12,
  Inst_InstType_SIMDIntCmp = 13,
  Inst_InstType_SIMDIntCvt = 14,
  Inst_InstType_SIMDMisc = 15,
  Inst_InstType_SIMDIntMult = 16,
  Inst_InstType_SIMDIntMultAcc = 17,
  Inst_InstType_SIMDIntShift = 18,
  Inst_InstType_SIMDIntShiftAcc = 19,
  Inst_InstType_SIMDSqrt = 20,
  Inst_InstType_SIMDFloatAdd = 21,
  Inst_InstType_SIMDFloatAlu = 22,
  Inst_InstType_SIMDFloatCmp = 23,
  Inst_InstType_SIMDFloatCvt = 24,
  Inst_InstType_SIMDFloatDiv = 25,
  Inst_InstType_SIMDFloatMisc = 26,
  Inst_InstType_SIMDFloatMult = 27,
  Inst_InstType_SIMDFloatMultAdd = 28,
  Inst_InstType_SIMDFloatSqrt = 29,
  Inst_InstType_MemRead = 30,
  Inst_InstType_MemWrite = 31,
  Inst_InstType_IprAccess = 32,
  Inst_InstType_InstPrefetch = 33
};
bool Inst_InstType_IsValid(int value);
const Inst_InstType Inst_InstType_InstType_MIN = Inst_InstType_None;
const Inst_InstType Inst_InstType_InstType_MAX = Inst_InstType_InstPrefetch;
const int Inst_InstType_InstType_ARRAYSIZE = Inst_InstType_InstType_MAX + 1;

const ::google::protobuf::EnumDescriptor* Inst_InstType_descriptor();
inline const ::std::string& Inst_InstType_Name(Inst_InstType value) {
  return ::google::protobuf::internal::NameOfEnum(
    Inst_InstType_descriptor(), value);
}
inline bool Inst_InstType_Parse(
    const ::std::string& name, Inst_InstType* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Inst_InstType>(
    Inst_InstType_descriptor(), name, value);
}
// ===================================================================

class InstHeader : public ::google::protobuf::Message {
 public:
  InstHeader();
  virtual ~InstHeader();

  InstHeader(const InstHeader& from);

  inline InstHeader& operator=(const InstHeader& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const InstHeader& default_instance();

  void Swap(InstHeader* other);

  // implements Message ----------------------------------------------

  InstHeader* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const InstHeader& from);
  void MergeFrom(const InstHeader& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required string obj_id = 1;
  inline bool has_obj_id() const;
  inline void clear_obj_id();
  static const int kObjIdFieldNumber = 1;
  inline const ::std::string& obj_id() const;
  inline void set_obj_id(const ::std::string& value);
  inline void set_obj_id(const char* value);
  inline void set_obj_id(const char* value, size_t size);
  inline ::std::string* mutable_obj_id();
  inline ::std::string* release_obj_id();
  inline void set_allocated_obj_id(::std::string* obj_id);

  // required uint32 ver = 2 [default = 0];
  inline bool has_ver() const;
  inline void clear_ver();
  static const int kVerFieldNumber = 2;
  inline ::google::protobuf::uint32 ver() const;
  inline void set_ver(::google::protobuf::uint32 value);

  // required uint64 tick_freq = 3;
  inline bool has_tick_freq() const;
  inline void clear_tick_freq();
  static const int kTickFreqFieldNumber = 3;
  inline ::google::protobuf::uint64 tick_freq() const;
  inline void set_tick_freq(::google::protobuf::uint64 value);

  // required bool has_mem = 4;
  inline bool has_has_mem() const;
  inline void clear_has_mem();
  static const int kHasMemFieldNumber = 4;
  inline bool has_mem() const;
  inline void set_has_mem(bool value);

  // @@protoc_insertion_point(class_scope:ProtoMessage.InstHeader)
 private:
  inline void set_has_obj_id();
  inline void clear_has_obj_id();
  inline void set_has_ver();
  inline void clear_has_ver();
  inline void set_has_tick_freq();
  inline void clear_has_tick_freq();
  inline void set_has_has_mem();
  inline void clear_has_has_mem();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* obj_id_;
  ::google::protobuf::uint64 tick_freq_;
  ::google::protobuf::uint32 ver_;
  bool has_mem_;
  friend void  protobuf_AddDesc_inst_2eproto();
  friend void protobuf_AssignDesc_inst_2eproto();
  friend void protobuf_ShutdownFile_inst_2eproto();

  void InitAsDefaultInstance();
  static InstHeader* default_instance_;
};
// -------------------------------------------------------------------

class Inst_MemAccess : public ::google::protobuf::Message {
 public:
  Inst_MemAccess();
  virtual ~Inst_MemAccess();

  Inst_MemAccess(const Inst_MemAccess& from);

  inline Inst_MemAccess& operator=(const Inst_MemAccess& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const Inst_MemAccess& default_instance();

  void Swap(Inst_MemAccess* other);

  // implements Message ----------------------------------------------

  Inst_MemAccess* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Inst_MemAccess& from);
  void MergeFrom(const Inst_MemAccess& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required uint64 addr = 1;
  inline bool has_addr() const;
  inline void clear_addr();
  static const int kAddrFieldNumber = 1;
  inline ::google::protobuf::uint64 addr() const;
  inline void set_addr(::google::protobuf::uint64 value);

  // required uint32 size = 2;
  inline bool has_size() const;
  inline void clear_size();
  static const int kSizeFieldNumber = 2;
  inline ::google::protobuf::uint32 size() const;
  inline void set_size(::google::protobuf::uint32 value);

  // optional uint32 mem_flags = 3;
  inline bool has_mem_flags() const;
  inline void clear_mem_flags();
  static const int kMemFlagsFieldNumber = 3;
  inline ::google::protobuf::uint32 mem_flags() const;
  inline void set_mem_flags(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:ProtoMessage.Inst.MemAccess)
 private:
  inline void set_has_addr();
  inline void clear_has_addr();
  inline void set_has_size();
  inline void clear_has_size();
  inline void set_has_mem_flags();
  inline void clear_has_mem_flags();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 addr_;
  ::google::protobuf::uint32 size_;
  ::google::protobuf::uint32 mem_flags_;
  friend void  protobuf_AddDesc_inst_2eproto();
  friend void protobuf_AssignDesc_inst_2eproto();
  friend void protobuf_ShutdownFile_inst_2eproto();

  void InitAsDefaultInstance();
  static Inst_MemAccess* default_instance_;
};
// -------------------------------------------------------------------

class Inst : public ::google::protobuf::Message {
 public:
  Inst();
  virtual ~Inst();

  Inst(const Inst& from);

  inline Inst& operator=(const Inst& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const Inst& default_instance();

  void Swap(Inst* other);

  // implements Message ----------------------------------------------

  Inst* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Inst& from);
  void MergeFrom(const Inst& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  typedef Inst_MemAccess MemAccess;

  typedef Inst_InstType InstType;
  static const InstType None = Inst_InstType_None;
  static const InstType IntAlu = Inst_InstType_IntAlu;
  static const InstType IntMul = Inst_InstType_IntMul;
  static const InstType IntDiv = Inst_InstType_IntDiv;
  static const InstType FloatAdd = Inst_InstType_FloatAdd;
  static const InstType FloatCmp = Inst_InstType_FloatCmp;
  static const InstType FloatCvt = Inst_InstType_FloatCvt;
  static const InstType FloatMult = Inst_InstType_FloatMult;
  static const InstType FloatDiv = Inst_InstType_FloatDiv;
  static const InstType FloatSqrt = Inst_InstType_FloatSqrt;
  static const InstType SIMDIntAdd = Inst_InstType_SIMDIntAdd;
  static const InstType SIMDIntAddAcc = Inst_InstType_SIMDIntAddAcc;
  static const InstType SIMDIntAlu = Inst_InstType_SIMDIntAlu;
  static const InstType SIMDIntCmp = Inst_InstType_SIMDIntCmp;
  static const InstType SIMDIntCvt = Inst_InstType_SIMDIntCvt;
  static const InstType SIMDMisc = Inst_InstType_SIMDMisc;
  static const InstType SIMDIntMult = Inst_InstType_SIMDIntMult;
  static const InstType SIMDIntMultAcc = Inst_InstType_SIMDIntMultAcc;
  static const InstType SIMDIntShift = Inst_InstType_SIMDIntShift;
  static const InstType SIMDIntShiftAcc = Inst_InstType_SIMDIntShiftAcc;
  static const InstType SIMDSqrt = Inst_InstType_SIMDSqrt;
  static const InstType SIMDFloatAdd = Inst_InstType_SIMDFloatAdd;
  static const InstType SIMDFloatAlu = Inst_InstType_SIMDFloatAlu;
  static const InstType SIMDFloatCmp = Inst_InstType_SIMDFloatCmp;
  static const InstType SIMDFloatCvt = Inst_InstType_SIMDFloatCvt;
  static const InstType SIMDFloatDiv = Inst_InstType_SIMDFloatDiv;
  static const InstType SIMDFloatMisc = Inst_InstType_SIMDFloatMisc;
  static const InstType SIMDFloatMult = Inst_InstType_SIMDFloatMult;
  static const InstType SIMDFloatMultAdd = Inst_InstType_SIMDFloatMultAdd;
  static const InstType SIMDFloatSqrt = Inst_InstType_SIMDFloatSqrt;
  static const InstType MemRead = Inst_InstType_MemRead;
  static const InstType MemWrite = Inst_InstType_MemWrite;
  static const InstType IprAccess = Inst_InstType_IprAccess;
  static const InstType InstPrefetch = Inst_InstType_InstPrefetch;
  static inline bool InstType_IsValid(int value) {
    return Inst_InstType_IsValid(value);
  }
  static const InstType InstType_MIN =
    Inst_InstType_InstType_MIN;
  static const InstType InstType_MAX =
    Inst_InstType_InstType_MAX;
  static const int InstType_ARRAYSIZE =
    Inst_InstType_InstType_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  InstType_descriptor() {
    return Inst_InstType_descriptor();
  }
  static inline const ::std::string& InstType_Name(InstType value) {
    return Inst_InstType_Name(value);
  }
  static inline bool InstType_Parse(const ::std::string& name,
      InstType* value) {
    return Inst_InstType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // required uint64 pc = 1;
  inline bool has_pc() const;
  inline void clear_pc();
  static const int kPcFieldNumber = 1;
  inline ::google::protobuf::uint64 pc() const;
  inline void set_pc(::google::protobuf::uint64 value);

  // required fixed32 inst = 2;
  inline bool has_inst() const;
  inline void clear_inst();
  static const int kInstFieldNumber = 2;
  inline ::google::protobuf::uint32 inst() const;
  inline void set_inst(::google::protobuf::uint32 value);

  // optional uint32 nodeid = 3;
  inline bool has_nodeid() const;
  inline void clear_nodeid();
  static const int kNodeidFieldNumber = 3;
  inline ::google::protobuf::uint32 nodeid() const;
  inline void set_nodeid(::google::protobuf::uint32 value);

  // optional uint32 cpuid = 4;
  inline bool has_cpuid() const;
  inline void clear_cpuid();
  static const int kCpuidFieldNumber = 4;
  inline ::google::protobuf::uint32 cpuid() const;
  inline void set_cpuid(::google::protobuf::uint32 value);

  // optional fixed64 tick = 5;
  inline bool has_tick() const;
  inline void clear_tick();
  static const int kTickFieldNumber = 5;
  inline ::google::protobuf::uint64 tick() const;
  inline void set_tick(::google::protobuf::uint64 value);

  // optional .ProtoMessage.Inst.InstType type = 6;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 6;
  inline ::ProtoMessage::Inst_InstType type() const;
  inline void set_type(::ProtoMessage::Inst_InstType value);

  // optional uint32 inst_flags = 7;
  inline bool has_inst_flags() const;
  inline void clear_inst_flags();
  static const int kInstFlagsFieldNumber = 7;
  inline ::google::protobuf::uint32 inst_flags() const;
  inline void set_inst_flags(::google::protobuf::uint32 value);

  // repeated .ProtoMessage.Inst.MemAccess mem_access = 8;
  inline int mem_access_size() const;
  inline void clear_mem_access();
  static const int kMemAccessFieldNumber = 8;
  inline const ::ProtoMessage::Inst_MemAccess& mem_access(int index) const;
  inline ::ProtoMessage::Inst_MemAccess* mutable_mem_access(int index);
  inline ::ProtoMessage::Inst_MemAccess* add_mem_access();
  inline const ::google::protobuf::RepeatedPtrField< ::ProtoMessage::Inst_MemAccess >&
      mem_access() const;
  inline ::google::protobuf::RepeatedPtrField< ::ProtoMessage::Inst_MemAccess >*
      mutable_mem_access();

  // @@protoc_insertion_point(class_scope:ProtoMessage.Inst)
 private:
  inline void set_has_pc();
  inline void clear_has_pc();
  inline void set_has_inst();
  inline void clear_has_inst();
  inline void set_has_nodeid();
  inline void clear_has_nodeid();
  inline void set_has_cpuid();
  inline void clear_has_cpuid();
  inline void set_has_tick();
  inline void clear_has_tick();
  inline void set_has_type();
  inline void clear_has_type();
  inline void set_has_inst_flags();
  inline void clear_has_inst_flags();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 pc_;
  ::google::protobuf::uint32 inst_;
  ::google::protobuf::uint32 nodeid_;
  ::google::protobuf::uint64 tick_;
  ::google::protobuf::uint32 cpuid_;
  int type_;
  ::google::protobuf::RepeatedPtrField< ::ProtoMessage::Inst_MemAccess > mem_access_;
  ::google::protobuf::uint32 inst_flags_;
  friend void  protobuf_AddDesc_inst_2eproto();
  friend void protobuf_AssignDesc_inst_2eproto();
  friend void protobuf_ShutdownFile_inst_2eproto();

  void InitAsDefaultInstance();
  static Inst* default_instance_;
};
// ===================================================================


// ===================================================================

// InstHeader

// required string obj_id = 1;
inline bool InstHeader::has_obj_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void InstHeader::set_has_obj_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void InstHeader::clear_has_obj_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void InstHeader::clear_obj_id() {
  if (obj_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    obj_id_->clear();
  }
  clear_has_obj_id();
}
inline const ::std::string& InstHeader::obj_id() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.InstHeader.obj_id)
  return *obj_id_;
}
inline void InstHeader::set_obj_id(const ::std::string& value) {
  set_has_obj_id();
  if (obj_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    obj_id_ = new ::std::string;
  }
  obj_id_->assign(value);
  // @@protoc_insertion_point(field_set:ProtoMessage.InstHeader.obj_id)
}
inline void InstHeader::set_obj_id(const char* value) {
  set_has_obj_id();
  if (obj_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    obj_id_ = new ::std::string;
  }
  obj_id_->assign(value);
  // @@protoc_insertion_point(field_set_char:ProtoMessage.InstHeader.obj_id)
}
inline void InstHeader::set_obj_id(const char* value, size_t size) {
  set_has_obj_id();
  if (obj_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    obj_id_ = new ::std::string;
  }
  obj_id_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:ProtoMessage.InstHeader.obj_id)
}
inline ::std::string* InstHeader::mutable_obj_id() {
  set_has_obj_id();
  if (obj_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    obj_id_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:ProtoMessage.InstHeader.obj_id)
  return obj_id_;
}
inline ::std::string* InstHeader::release_obj_id() {
  clear_has_obj_id();
  if (obj_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = obj_id_;
    obj_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void InstHeader::set_allocated_obj_id(::std::string* obj_id) {
  if (obj_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete obj_id_;
  }
  if (obj_id) {
    set_has_obj_id();
    obj_id_ = obj_id;
  } else {
    clear_has_obj_id();
    obj_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:ProtoMessage.InstHeader.obj_id)
}

// required uint32 ver = 2 [default = 0];
inline bool InstHeader::has_ver() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void InstHeader::set_has_ver() {
  _has_bits_[0] |= 0x00000002u;
}
inline void InstHeader::clear_has_ver() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void InstHeader::clear_ver() {
  ver_ = 0u;
  clear_has_ver();
}
inline ::google::protobuf::uint32 InstHeader::ver() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.InstHeader.ver)
  return ver_;
}
inline void InstHeader::set_ver(::google::protobuf::uint32 value) {
  set_has_ver();
  ver_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.InstHeader.ver)
}

// required uint64 tick_freq = 3;
inline bool InstHeader::has_tick_freq() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void InstHeader::set_has_tick_freq() {
  _has_bits_[0] |= 0x00000004u;
}
inline void InstHeader::clear_has_tick_freq() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void InstHeader::clear_tick_freq() {
  tick_freq_ = GOOGLE_ULONGLONG(0);
  clear_has_tick_freq();
}
inline ::google::protobuf::uint64 InstHeader::tick_freq() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.InstHeader.tick_freq)
  return tick_freq_;
}
inline void InstHeader::set_tick_freq(::google::protobuf::uint64 value) {
  set_has_tick_freq();
  tick_freq_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.InstHeader.tick_freq)
}

// required bool has_mem = 4;
inline bool InstHeader::has_has_mem() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void InstHeader::set_has_has_mem() {
  _has_bits_[0] |= 0x00000008u;
}
inline void InstHeader::clear_has_has_mem() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void InstHeader::clear_has_mem() {
  has_mem_ = false;
  clear_has_has_mem();
}
inline bool InstHeader::has_mem() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.InstHeader.has_mem)
  return has_mem_;
}
inline void InstHeader::set_has_mem(bool value) {
  set_has_has_mem();
  has_mem_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.InstHeader.has_mem)
}

// -------------------------------------------------------------------

// Inst_MemAccess

// required uint64 addr = 1;
inline bool Inst_MemAccess::has_addr() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Inst_MemAccess::set_has_addr() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Inst_MemAccess::clear_has_addr() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Inst_MemAccess::clear_addr() {
  addr_ = GOOGLE_ULONGLONG(0);
  clear_has_addr();
}
inline ::google::protobuf::uint64 Inst_MemAccess::addr() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.MemAccess.addr)
  return addr_;
}
inline void Inst_MemAccess::set_addr(::google::protobuf::uint64 value) {
  set_has_addr();
  addr_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.Inst.MemAccess.addr)
}

// required uint32 size = 2;
inline bool Inst_MemAccess::has_size() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Inst_MemAccess::set_has_size() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Inst_MemAccess::clear_has_size() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Inst_MemAccess::clear_size() {
  size_ = 0u;
  clear_has_size();
}
inline ::google::protobuf::uint32 Inst_MemAccess::size() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.MemAccess.size)
  return size_;
}
inline void Inst_MemAccess::set_size(::google::protobuf::uint32 value) {
  set_has_size();
  size_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.Inst.MemAccess.size)
}

// optional uint32 mem_flags = 3;
inline bool Inst_MemAccess::has_mem_flags() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Inst_MemAccess::set_has_mem_flags() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Inst_MemAccess::clear_has_mem_flags() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Inst_MemAccess::clear_mem_flags() {
  mem_flags_ = 0u;
  clear_has_mem_flags();
}
inline ::google::protobuf::uint32 Inst_MemAccess::mem_flags() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.MemAccess.mem_flags)
  return mem_flags_;
}
inline void Inst_MemAccess::set_mem_flags(::google::protobuf::uint32 value) {
  set_has_mem_flags();
  mem_flags_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.Inst.MemAccess.mem_flags)
}

// -------------------------------------------------------------------

// Inst

// required uint64 pc = 1;
inline bool Inst::has_pc() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Inst::set_has_pc() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Inst::clear_has_pc() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Inst::clear_pc() {
  pc_ = GOOGLE_ULONGLONG(0);
  clear_has_pc();
}
inline ::google::protobuf::uint64 Inst::pc() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.pc)
  return pc_;
}
inline void Inst::set_pc(::google::protobuf::uint64 value) {
  set_has_pc();
  pc_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.Inst.pc)
}

// required fixed32 inst = 2;
inline bool Inst::has_inst() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Inst::set_has_inst() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Inst::clear_has_inst() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Inst::clear_inst() {
  inst_ = 0u;
  clear_has_inst();
}
inline ::google::protobuf::uint32 Inst::inst() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.inst)
  return inst_;
}
inline void Inst::set_inst(::google::protobuf::uint32 value) {
  set_has_inst();
  inst_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.Inst.inst)
}

// optional uint32 nodeid = 3;
inline bool Inst::has_nodeid() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Inst::set_has_nodeid() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Inst::clear_has_nodeid() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Inst::clear_nodeid() {
  nodeid_ = 0u;
  clear_has_nodeid();
}
inline ::google::protobuf::uint32 Inst::nodeid() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.nodeid)
  return nodeid_;
}
inline void Inst::set_nodeid(::google::protobuf::uint32 value) {
  set_has_nodeid();
  nodeid_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.Inst.nodeid)
}

// optional uint32 cpuid = 4;
inline bool Inst::has_cpuid() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void Inst::set_has_cpuid() {
  _has_bits_[0] |= 0x00000008u;
}
inline void Inst::clear_has_cpuid() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void Inst::clear_cpuid() {
  cpuid_ = 0u;
  clear_has_cpuid();
}
inline ::google::protobuf::uint32 Inst::cpuid() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.cpuid)
  return cpuid_;
}
inline void Inst::set_cpuid(::google::protobuf::uint32 value) {
  set_has_cpuid();
  cpuid_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.Inst.cpuid)
}

// optional fixed64 tick = 5;
inline bool Inst::has_tick() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void Inst::set_has_tick() {
  _has_bits_[0] |= 0x00000010u;
}
inline void Inst::clear_has_tick() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void Inst::clear_tick() {
  tick_ = GOOGLE_ULONGLONG(0);
  clear_has_tick();
}
inline ::google::protobuf::uint64 Inst::tick() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.tick)
  return tick_;
}
inline void Inst::set_tick(::google::protobuf::uint64 value) {
  set_has_tick();
  tick_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.Inst.tick)
}

// optional .ProtoMessage.Inst.InstType type = 6;
inline bool Inst::has_type() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void Inst::set_has_type() {
  _has_bits_[0] |= 0x00000020u;
}
inline void Inst::clear_has_type() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void Inst::clear_type() {
  type_ = 0;
  clear_has_type();
}
inline ::ProtoMessage::Inst_InstType Inst::type() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.type)
  return static_cast< ::ProtoMessage::Inst_InstType >(type_);
}
inline void Inst::set_type(::ProtoMessage::Inst_InstType value) {
  assert(::ProtoMessage::Inst_InstType_IsValid(value));
  set_has_type();
  type_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.Inst.type)
}

// optional uint32 inst_flags = 7;
inline bool Inst::has_inst_flags() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void Inst::set_has_inst_flags() {
  _has_bits_[0] |= 0x00000040u;
}
inline void Inst::clear_has_inst_flags() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void Inst::clear_inst_flags() {
  inst_flags_ = 0u;
  clear_has_inst_flags();
}
inline ::google::protobuf::uint32 Inst::inst_flags() const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.inst_flags)
  return inst_flags_;
}
inline void Inst::set_inst_flags(::google::protobuf::uint32 value) {
  set_has_inst_flags();
  inst_flags_ = value;
  // @@protoc_insertion_point(field_set:ProtoMessage.Inst.inst_flags)
}

// repeated .ProtoMessage.Inst.MemAccess mem_access = 8;
inline int Inst::mem_access_size() const {
  return mem_access_.size();
}
inline void Inst::clear_mem_access() {
  mem_access_.Clear();
}
inline const ::ProtoMessage::Inst_MemAccess& Inst::mem_access(int index) const {
  // @@protoc_insertion_point(field_get:ProtoMessage.Inst.mem_access)
  return mem_access_.Get(index);
}
inline ::ProtoMessage::Inst_MemAccess* Inst::mutable_mem_access(int index) {
  // @@protoc_insertion_point(field_mutable:ProtoMessage.Inst.mem_access)
  return mem_access_.Mutable(index);
}
inline ::ProtoMessage::Inst_MemAccess* Inst::add_mem_access() {
  // @@protoc_insertion_point(field_add:ProtoMessage.Inst.mem_access)
  return mem_access_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::ProtoMessage::Inst_MemAccess >&
Inst::mem_access() const {
  // @@protoc_insertion_point(field_list:ProtoMessage.Inst.mem_access)
  return mem_access_;
}
inline ::google::protobuf::RepeatedPtrField< ::ProtoMessage::Inst_MemAccess >*
Inst::mutable_mem_access() {
  // @@protoc_insertion_point(field_mutable_list:ProtoMessage.Inst.mem_access)
  return &mem_access_;
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace ProtoMessage

#ifndef SWIG
namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::ProtoMessage::Inst_InstType> : ::google::protobuf::internal::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::ProtoMessage::Inst_InstType>() {
  return ::ProtoMessage::Inst_InstType_descriptor();
}

}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_inst_2eproto__INCLUDED
