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); } }
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); } }
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); } }
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); } }
void configt::ansi_ct::set_64() { #ifdef _WIN32 set_LLP64(); #else set_LP64(); #endif }
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); } }
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); } }
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); } }
void configt::ansi_ct::set_64() { set_LP64(); }