コード例 #1
0
ファイル: config.cpp プロジェクト: sarnold/cbmc
void configt::ansi_ct::set_arch_spec_s390x()
{
  set_LP64();
  arch=ARCH_S390X;
  endianness=IS_BIG_ENDIAN;
  char_is_unsigned=true;
  NULL_is_zero=true;

  switch(mode)
  {
  case MODE_GCC_C:
  case MODE_GCC_CPP:
    defines.push_back("__s390x__");
    break;
  case MODE_VISUAL_STUDIO_C_CPP:
    assert(false); // not supported by Visual Studio
    break;
  case MODE_CODEWARRIOR_C_CPP:
  case MODE_ARM_C_CPP:
  case MODE_ANSI_C_CPP:
    break;
  case NO_MODE:
    assert(false);
  }
}
コード例 #2
0
ファイル: config.cpp プロジェクト: sarnold/cbmc
void configt::ansi_ct::set_arch_spec_ia64()
{
  set_LP64();
  arch=ARCH_IA64;
  long_double_width=16*8;
  endianness=IS_LITTLE_ENDIAN;
  char_is_unsigned=false;
  NULL_is_zero=true;

  switch(mode)
  {
  case MODE_GCC_C:
  case MODE_GCC_CPP:
    defines.push_back("__ia64__");
    defines.push_back("_IA64");
    defines.push_back("__IA64__");
    break;
  case MODE_VISUAL_STUDIO_C_CPP:
    defines.push_back("_M_IA64");
    break;
  case MODE_CODEWARRIOR_C_CPP:
  case MODE_ARM_C_CPP:
  case MODE_ANSI_C_CPP:
    break;
  case NO_MODE:
    assert(false);
  }
}
コード例 #3
0
ファイル: config.cpp プロジェクト: bkolb/cbmc
void configt::ansi_ct::set_arch_spec_alpha()
{
  set_LP64();
  endianness=endiannesst::IS_LITTLE_ENDIAN;
  long_double_width=16*8;
  char_is_unsigned=false;
  NULL_is_zero=true;

  switch(mode)
  {
  case flavourt::MODE_GCC_C:
  case flavourt::MODE_GCC_CPP:
    defines.push_back("__alpha__");
    break;
  case flavourt::MODE_VISUAL_STUDIO_C_CPP:
    defines.push_back("_M_ALPHA");
    break;
  case flavourt::MODE_CODEWARRIOR_C_CPP:
  case flavourt::MODE_ARM_C_CPP:
  case flavourt::MODE_ANSI_C_CPP:
    break;
  case flavourt::NO_MODE:
    assert(false);
  }
}
コード例 #4
0
ファイル: config.cpp プロジェクト: bkolb/cbmc
void configt::ansi_ct::set_arch_spec_power(const irep_idt &subarch)
{
  if(subarch=="powerpc")
    set_ILP32();
  else // ppc64 or ppc64le
    set_LP64();

  if(subarch=="ppc64le")
    endianness=endiannesst::IS_LITTLE_ENDIAN;
  else
    endianness=endiannesst::IS_BIG_ENDIAN;

  long_double_width=16*8;
  char_is_unsigned=true;
  NULL_is_zero=true;

  switch(mode)
  {
  case flavourt::MODE_GCC_C:
  case flavourt::MODE_GCC_CPP:
    defines.push_back("__powerpc");
    defines.push_back("__powerpc__");
    defines.push_back("__POWERPC__");
    defines.push_back("__ppc__");

    if(os==ost::OS_MACOS)
      defines.push_back("__BIG_ENDIAN__");

    if(subarch!="powerpc")
    {
      defines.push_back("__powerpc64");
      defines.push_back("__powerpc64__");
      defines.push_back("__PPC64__");
      defines.push_back("__ppc64__");
      if(subarch=="ppc64le")
      {
        defines.push_back("_CALL_ELF=2");
        defines.push_back("__LITTLE_ENDIAN__");
      }
      else
      {
        defines.push_back("_CALL_ELF=1");
        defines.push_back("__BIG_ENDIAN__");
      }
    }
    break;

  case flavourt::MODE_VISUAL_STUDIO_C_CPP:
    defines.push_back("_M_PPC");
    break;

  case flavourt::MODE_CODEWARRIOR_C_CPP:
  case flavourt::MODE_ARM_C_CPP:
  case flavourt::MODE_ANSI_C_CPP:
    break;

  case flavourt::NO_MODE:
    assert(false);
  }
}
コード例 #5
0
ファイル: config.cpp プロジェクト: sarnold/cbmc
void configt::ansi_ct::set_64()
{
  #ifdef _WIN32
  set_LLP64();
  #else
  set_LP64();
  #endif
}
コード例 #6
0
ファイル: config.cpp プロジェクト: sarnold/cbmc
void configt::ansi_ct::set_arch_spec_mips(const irep_idt &subarch)
{
  arch=ARCH_MIPS;

  if(subarch=="mipsel" ||
     subarch=="mips" ||
     subarch=="mipsn32el" ||
     subarch=="mipsn32")
  {
    set_ILP32();
    long_double_width=8*8;
  }
  else
  {
    set_LP64();
    long_double_width=16*8;
  }

  if(subarch=="mipsel" ||
     subarch=="mipsn32el" ||
     subarch=="mips64el")
    endianness=IS_LITTLE_ENDIAN;
  else
    endianness=IS_BIG_ENDIAN;

  char_is_unsigned=false;
  NULL_is_zero=true;

  switch(mode)
  {
  case MODE_GCC_C:
  case MODE_GCC_CPP:
    defines.push_back("__mips__");
    defines.push_back("mips");
    defines.push_back("_MIPS_SZPTR="+i2string(config.ansi_c.pointer_width));
    break;
  case MODE_VISUAL_STUDIO_C_CPP:
    assert(false); // not supported by Visual Studio
    break;
  case MODE_CODEWARRIOR_C_CPP:
  case MODE_ARM_C_CPP:
  case MODE_ANSI_C_CPP:
    break;
  case NO_MODE:
    assert(false);
  }
}
コード例 #7
0
ファイル: config.cpp プロジェクト: sarnold/cbmc
void configt::ansi_ct::set_arch_spec_arm(const irep_idt &subarch)
{
  if(subarch=="arm64")
  {
    set_LP64();
    long_double_width=16*8;
  }
  else
  {
    set_ILP32();
    long_double_width=8*8;
  }

  arch=ARCH_ARM;
  endianness=IS_LITTLE_ENDIAN;
  char_is_unsigned=true;
  NULL_is_zero=true;

  switch(mode)
  {
  case MODE_GCC_C:
  case MODE_GCC_CPP:
    if(subarch=="arm64")
      defines.push_back("__aarch64__");
    else
      defines.push_back("__arm__");
    if(subarch=="armhf")
      defines.push_back("__ARM_PCS_VFP");
    break;
  case MODE_VISUAL_STUDIO_C_CPP:
    defines.push_back("_M_ARM");
    break;
  case MODE_CODEWARRIOR_C_CPP:
  case MODE_ARM_C_CPP:
  case MODE_ANSI_C_CPP:
    break;
  case NO_MODE:
    assert(false);
  }
}
コード例 #8
0
ファイル: config.cpp プロジェクト: sarnold/cbmc
void configt::ansi_ct::set_arch_spec_sparc(const irep_idt &subarch)
{
  if(subarch=="sparc64")
  {
    set_LP64();
    long_double_width=16*8;
  }
  else
  {
    set_ILP32();
    long_double_width=16*8;
  }

  arch=ARCH_SPARC;
  endianness=IS_BIG_ENDIAN;
  char_is_unsigned=false;
  NULL_is_zero=true;

  switch(mode)
  {
  case MODE_GCC_C:
  case MODE_GCC_CPP:
    defines.push_back("__sparc__");
    if(subarch=="sparc64")
      defines.push_back("__arch64__");
    break;
  case MODE_VISUAL_STUDIO_C_CPP:
    assert(false); // not supported by Visual Studio
    break;
  case MODE_CODEWARRIOR_C_CPP:
  case MODE_ARM_C_CPP:
  case MODE_ANSI_C_CPP:
    break;
  case NO_MODE:
    assert(false);
  }
}
コード例 #9
0
ファイル: config.cpp プロジェクト: ashokkelur/CBMC-With-DSP-C
void configt::ansi_ct::set_64()
{
  set_LP64();
}