void ScalarEnumerationTraits<WasmYAML::ComdatKind>::enumeration( IO &IO, WasmYAML::ComdatKind &Kind) { #define ECase(X) IO.enumCase(Kind, #X, wasm::WASM_COMDAT_##X); ECase(FUNCTION); ECase(DATA); #undef ECase }
void ScalarEnumerationTraits<WasmYAML::ExportKind>::enumeration( IO &IO, WasmYAML::ExportKind &Kind) { #define ECase(X) IO.enumCase(Kind, #X, wasm::WASM_EXTERNAL_##X); ECase(FUNCTION); ECase(TABLE); ECase(MEMORY); ECase(GLOBAL); #undef ECase }
void ScalarEnumerationTraits<ELFYAML::ELF_STV>::enumeration( IO &IO, ELFYAML::ELF_STV &Value) { #define ECase(X) IO.enumCase(Value, #X, ELF::X) ECase(STV_DEFAULT); ECase(STV_INTERNAL); ECase(STV_HIDDEN); ECase(STV_PROTECTED); #undef ECase }
void ScalarEnumerationTraits<ELFYAML::ELF_ELFDATA>::enumeration( IO &IO, ELFYAML::ELF_ELFDATA &Value) { #define ECase(X) IO.enumCase(Value, #X, ELF::X) // Since the semantics of ELFDATANONE is "invalid", just don't accept it // here. ECase(ELFDATA2LSB); ECase(ELFDATA2MSB); #undef ECase }
void ScalarEnumerationTraits<ELFYAML::MIPS_AFL_REG>::enumeration( IO &IO, ELFYAML::MIPS_AFL_REG &Value) { #define ECase(X) IO.enumCase(Value, #X, Mips::AFL_##X) ECase(REG_NONE); ECase(REG_32); ECase(REG_64); ECase(REG_128); #undef ECase }
void ScalarEnumerationTraits<ELFYAML::ELF_RSS>::enumeration( IO &IO, ELFYAML::ELF_RSS &Value) { #define ECase(X) IO.enumCase(Value, #X, ELF::X) ECase(RSS_UNDEF); ECase(RSS_GP); ECase(RSS_GP0); ECase(RSS_LOC); #undef ECase }
void ScalarEnumerationTraits<ELFYAML::ELF_PT>::enumeration( IO &IO, ELFYAML::ELF_PT &Value) { #define ECase(X) IO.enumCase(Value, #X, ELF::X) ECase(PT_NULL); ECase(PT_LOAD); ECase(PT_DYNAMIC); ECase(PT_INTERP); ECase(PT_NOTE); ECase(PT_SHLIB); ECase(PT_PHDR); ECase(PT_TLS); ECase(PT_GNU_EH_FRAME); #undef ECase IO.enumFallback<Hex32>(Value); }
void ScalarEnumerationTraits<ELFYAML::ELF_STT>::enumeration( IO &IO, ELFYAML::ELF_STT &Value) { #define ECase(X) IO.enumCase(Value, #X, ELF::X) ECase(STT_NOTYPE); ECase(STT_OBJECT); ECase(STT_FUNC); ECase(STT_SECTION); ECase(STT_FILE); ECase(STT_COMMON); ECase(STT_TLS); ECase(STT_GNU_IFUNC); #undef ECase }
void ScalarEnumerationTraits<ELFYAML::MIPS_ABI_FP>::enumeration( IO &IO, ELFYAML::MIPS_ABI_FP &Value) { #define ECase(X) IO.enumCase(Value, #X, Mips::Val_GNU_MIPS_ABI_##X) ECase(FP_ANY); ECase(FP_DOUBLE); ECase(FP_SINGLE); ECase(FP_SOFT); ECase(FP_OLD_64); ECase(FP_XX); ECase(FP_64); ECase(FP_64A); #undef ECase }
void ScalarEnumerationTraits<WasmYAML::ValueType>::enumeration( IO &IO, WasmYAML::ValueType &Type) { #define ECase(X) IO.enumCase(Type, #X, wasm::WASM_TYPE_##X); ECase(I32); ECase(I64); ECase(F32); ECase(F64); ECase(ANYFUNC); ECase(FUNC); ECase(NORESULT); #undef ECase }
void ScalarEnumerationTraits<WasmYAML::Opcode>::enumeration( IO &IO, WasmYAML::Opcode &Code) { #define ECase(X) IO.enumCase(Code, #X, wasm::WASM_OPCODE_##X); ECase(END); ECase(I32_CONST); ECase(I64_CONST); ECase(F64_CONST); ECase(F32_CONST); ECase(GET_GLOBAL); #undef ECase }
static void enumeration(IO &IO, COFF::MachineTypes &Value) { ECase(IMAGE_FILE_MACHINE_UNKNOWN); ECase(IMAGE_FILE_MACHINE_AM33); ECase(IMAGE_FILE_MACHINE_AMD64); ECase(IMAGE_FILE_MACHINE_ARM); ECase(IMAGE_FILE_MACHINE_ARMV7); ECase(IMAGE_FILE_MACHINE_EBC); ECase(IMAGE_FILE_MACHINE_I386); ECase(IMAGE_FILE_MACHINE_IA64); ECase(IMAGE_FILE_MACHINE_M32R); ECase(IMAGE_FILE_MACHINE_MIPS16); ECase(IMAGE_FILE_MACHINE_MIPSFPU); ECase(IMAGE_FILE_MACHINE_MIPSFPU16); ECase(IMAGE_FILE_MACHINE_POWERPC); ECase(IMAGE_FILE_MACHINE_POWERPCFP); ECase(IMAGE_FILE_MACHINE_R4000); ECase(IMAGE_FILE_MACHINE_SH3); ECase(IMAGE_FILE_MACHINE_SH3DSP); ECase(IMAGE_FILE_MACHINE_SH4); ECase(IMAGE_FILE_MACHINE_SH5); ECase(IMAGE_FILE_MACHINE_THUMB); ECase(IMAGE_FILE_MACHINE_WCEMIPSV2); }
static void enumeration(IO &IO, COFF::SymbolBaseType &Value) { ECase(IMAGE_SYM_TYPE_NULL); ECase(IMAGE_SYM_TYPE_VOID); ECase(IMAGE_SYM_TYPE_CHAR); ECase(IMAGE_SYM_TYPE_SHORT); ECase(IMAGE_SYM_TYPE_INT); ECase(IMAGE_SYM_TYPE_LONG); ECase(IMAGE_SYM_TYPE_FLOAT); ECase(IMAGE_SYM_TYPE_DOUBLE); ECase(IMAGE_SYM_TYPE_STRUCT); ECase(IMAGE_SYM_TYPE_UNION); ECase(IMAGE_SYM_TYPE_ENUM); ECase(IMAGE_SYM_TYPE_MOE); ECase(IMAGE_SYM_TYPE_BYTE); ECase(IMAGE_SYM_TYPE_WORD); ECase(IMAGE_SYM_TYPE_UINT); ECase(IMAGE_SYM_TYPE_DWORD); }
void ScalarEnumerationTraits<WasmYAML::SectionType>::enumeration( IO &IO, WasmYAML::SectionType &Type) { #define ECase(X) IO.enumCase(Type, #X, wasm::WASM_SEC_##X); ECase(CUSTOM); ECase(TYPE); ECase(IMPORT); ECase(FUNCTION); ECase(TABLE); ECase(MEMORY); ECase(GLOBAL); ECase(EXPORT); ECase(START); ECase(ELEM); ECase(CODE); ECase(DATA); #undef ECase }
std::error_code WasmObjectFile::getSectionName(DataRefImpl Sec, StringRef &Res) const { const wasm::WasmSection &S = Sections[Sec.d.a]; #define ECase(X) \ case wasm::WASM_SEC_##X: \ Res = #X; \ break switch (S.Type) { ECase(TYPE); ECase(IMPORT); ECase(FUNCTION); ECase(TABLE); ECase(MEMORY); ECase(GLOBAL); ECase(EXPORT); ECase(START); ECase(ELEM); ECase(CODE); ECase(DATA); case wasm::WASM_SEC_USER: Res = S.Name; break; default: return object_error::invalid_section_index; } #undef ECase return std::error_code(); }
void ScalarEnumerationTraits<ELFYAML::MIPS_AFL_EXT>::enumeration( IO &IO, ELFYAML::MIPS_AFL_EXT &Value) { #define ECase(X) IO.enumCase(Value, #X, Mips::AFL_##X) ECase(EXT_NONE); ECase(EXT_XLR); ECase(EXT_OCTEON2); ECase(EXT_OCTEONP); ECase(EXT_LOONGSON_3A); ECase(EXT_OCTEON); ECase(EXT_5900); ECase(EXT_4650); ECase(EXT_4010); ECase(EXT_4100); ECase(EXT_3900); ECase(EXT_10000); ECase(EXT_SB1); ECase(EXT_4111); ECase(EXT_4120); ECase(EXT_5400); ECase(EXT_5500); ECase(EXT_LOONGSON_2E); ECase(EXT_LOONGSON_2F); ECase(EXT_OCTEON3); #undef ECase }
static void enumeration(IO &IO, COFF::RelocationTypeX86 &Value) { ECase(IMAGE_REL_I386_ABSOLUTE); ECase(IMAGE_REL_I386_DIR16); ECase(IMAGE_REL_I386_REL16); ECase(IMAGE_REL_I386_DIR32); ECase(IMAGE_REL_I386_DIR32NB); ECase(IMAGE_REL_I386_SEG12); ECase(IMAGE_REL_I386_SECTION); ECase(IMAGE_REL_I386_SECREL); ECase(IMAGE_REL_I386_TOKEN); ECase(IMAGE_REL_I386_SECREL7); ECase(IMAGE_REL_I386_REL32); ECase(IMAGE_REL_AMD64_ABSOLUTE); ECase(IMAGE_REL_AMD64_ADDR64); ECase(IMAGE_REL_AMD64_ADDR32); ECase(IMAGE_REL_AMD64_ADDR32NB); ECase(IMAGE_REL_AMD64_REL32); ECase(IMAGE_REL_AMD64_REL32_1); ECase(IMAGE_REL_AMD64_REL32_2); ECase(IMAGE_REL_AMD64_REL32_3); ECase(IMAGE_REL_AMD64_REL32_4); ECase(IMAGE_REL_AMD64_REL32_5); ECase(IMAGE_REL_AMD64_SECTION); ECase(IMAGE_REL_AMD64_SECREL); ECase(IMAGE_REL_AMD64_SECREL7); ECase(IMAGE_REL_AMD64_TOKEN); ECase(IMAGE_REL_AMD64_SREL32); ECase(IMAGE_REL_AMD64_PAIR); ECase(IMAGE_REL_AMD64_SSPAN32); }
void ScalarEnumerationTraits<ELFYAML::ELF_EM>::enumeration( IO &IO, ELFYAML::ELF_EM &Value) { #define ECase(X) IO.enumCase(Value, #X, ELF::X) ECase(EM_NONE); ECase(EM_M32); ECase(EM_SPARC); ECase(EM_386); ECase(EM_68K); ECase(EM_88K); ECase(EM_IAMCU); ECase(EM_860); ECase(EM_MIPS); ECase(EM_S370); ECase(EM_MIPS_RS3_LE); ECase(EM_PARISC); ECase(EM_VPP500); ECase(EM_SPARC32PLUS); ECase(EM_960); ECase(EM_PPC); ECase(EM_PPC64); ECase(EM_S390); ECase(EM_SPU); ECase(EM_V800); ECase(EM_FR20); ECase(EM_RH32); ECase(EM_RCE); ECase(EM_ARM); ECase(EM_ALPHA); ECase(EM_SH); ECase(EM_SPARCV9); ECase(EM_TRICORE); ECase(EM_ARC); ECase(EM_H8_300); ECase(EM_H8_300H); ECase(EM_H8S); ECase(EM_H8_500); ECase(EM_IA_64); ECase(EM_MIPS_X); ECase(EM_COLDFIRE); ECase(EM_68HC12); ECase(EM_MMA); ECase(EM_PCP); ECase(EM_NCPU); ECase(EM_NDR1); ECase(EM_STARCORE); ECase(EM_ME16); ECase(EM_ST100); ECase(EM_TINYJ); ECase(EM_X86_64); ECase(EM_PDSP); ECase(EM_PDP10); ECase(EM_PDP11); ECase(EM_FX66); ECase(EM_ST9PLUS); ECase(EM_ST7); ECase(EM_68HC16); ECase(EM_68HC11); ECase(EM_68HC08); ECase(EM_68HC05); ECase(EM_SVX); ECase(EM_ST19); ECase(EM_VAX); ECase(EM_CRIS); ECase(EM_JAVELIN); ECase(EM_FIREPATH); ECase(EM_ZSP); ECase(EM_MMIX); ECase(EM_HUANY); ECase(EM_PRISM); ECase(EM_AVR); ECase(EM_FR30); ECase(EM_D10V); ECase(EM_D30V); ECase(EM_V850); ECase(EM_M32R); ECase(EM_MN10300); ECase(EM_MN10200); ECase(EM_PJ); ECase(EM_OPENRISC); ECase(EM_ARC_COMPACT); ECase(EM_XTENSA); ECase(EM_VIDEOCORE); ECase(EM_TMM_GPP); ECase(EM_NS32K); ECase(EM_TPC); ECase(EM_SNP1K); ECase(EM_ST200); ECase(EM_IP2K); ECase(EM_MAX); ECase(EM_CR); ECase(EM_F2MC16); ECase(EM_MSP430); ECase(EM_BLACKFIN); ECase(EM_SE_C33); ECase(EM_SEP); ECase(EM_ARCA); ECase(EM_UNICORE); ECase(EM_EXCESS); ECase(EM_DXP); ECase(EM_ALTERA_NIOS2); ECase(EM_CRX); ECase(EM_XGATE); ECase(EM_C166); ECase(EM_M16C); ECase(EM_DSPIC30F); ECase(EM_CE); ECase(EM_M32C); ECase(EM_TSK3000); ECase(EM_RS08); ECase(EM_SHARC); ECase(EM_ECOG2); ECase(EM_SCORE7); ECase(EM_DSP24); ECase(EM_VIDEOCORE3); ECase(EM_LATTICEMICO32); ECase(EM_SE_C17); ECase(EM_TI_C6000); ECase(EM_TI_C2000); ECase(EM_TI_C5500); ECase(EM_MMDSP_PLUS); ECase(EM_CYPRESS_M8C); ECase(EM_R32C); ECase(EM_TRIMEDIA); ECase(EM_HEXAGON); ECase(EM_8051); ECase(EM_STXP7X); ECase(EM_NDS32); ECase(EM_ECOG1); ECase(EM_ECOG1X); ECase(EM_MAXQ30); ECase(EM_XIMO16); ECase(EM_MANIK); ECase(EM_CRAYNV2); ECase(EM_RX); ECase(EM_METAG); ECase(EM_MCST_ELBRUS); ECase(EM_ECOG16); ECase(EM_CR16); ECase(EM_ETPU); ECase(EM_SLE9X); ECase(EM_L10M); ECase(EM_K10M); ECase(EM_AARCH64); ECase(EM_AVR32); ECase(EM_STM8); ECase(EM_TILE64); ECase(EM_TILEPRO); ECase(EM_CUDA); ECase(EM_TILEGX); ECase(EM_CLOUDSHIELD); ECase(EM_COREA_1ST); ECase(EM_COREA_2ND); ECase(EM_ARC_COMPACT2); ECase(EM_OPEN8); ECase(EM_RL78); ECase(EM_VIDEOCORE5); ECase(EM_78KOR); ECase(EM_56800EX); ECase(EM_AMDGPU); ECase(EM_RISCV); ECase(EM_LANAI); ECase(EM_BPF); #undef ECase }
static void enumeration(IO &IO, COFF::SectionCharacteristics &Value) { ECase(IMAGE_SCN_TYPE_NO_PAD); ECase(IMAGE_SCN_CNT_CODE); ECase(IMAGE_SCN_CNT_INITIALIZED_DATA); ECase(IMAGE_SCN_CNT_UNINITIALIZED_DATA); ECase(IMAGE_SCN_LNK_OTHER); ECase(IMAGE_SCN_LNK_INFO); ECase(IMAGE_SCN_LNK_REMOVE); ECase(IMAGE_SCN_LNK_COMDAT); ECase(IMAGE_SCN_GPREL); ECase(IMAGE_SCN_MEM_PURGEABLE); ECase(IMAGE_SCN_MEM_16BIT); ECase(IMAGE_SCN_MEM_LOCKED); ECase(IMAGE_SCN_MEM_PRELOAD); ECase(IMAGE_SCN_ALIGN_1BYTES); ECase(IMAGE_SCN_ALIGN_2BYTES); ECase(IMAGE_SCN_ALIGN_4BYTES); ECase(IMAGE_SCN_ALIGN_8BYTES); ECase(IMAGE_SCN_ALIGN_16BYTES); ECase(IMAGE_SCN_ALIGN_32BYTES); ECase(IMAGE_SCN_ALIGN_64BYTES); ECase(IMAGE_SCN_ALIGN_128BYTES); ECase(IMAGE_SCN_ALIGN_256BYTES); ECase(IMAGE_SCN_ALIGN_512BYTES); ECase(IMAGE_SCN_ALIGN_1024BYTES); ECase(IMAGE_SCN_ALIGN_2048BYTES); ECase(IMAGE_SCN_ALIGN_4096BYTES); ECase(IMAGE_SCN_ALIGN_8192BYTES); ECase(IMAGE_SCN_LNK_NRELOC_OVFL); ECase(IMAGE_SCN_MEM_DISCARDABLE); ECase(IMAGE_SCN_MEM_NOT_CACHED); ECase(IMAGE_SCN_MEM_NOT_PAGED); ECase(IMAGE_SCN_MEM_SHARED); ECase(IMAGE_SCN_MEM_EXECUTE); ECase(IMAGE_SCN_MEM_READ); ECase(IMAGE_SCN_MEM_WRITE); }
static void enumeration(IO &IO, COFF::SymbolStorageClass &Value) { ECase(IMAGE_SYM_CLASS_END_OF_FUNCTION); ECase(IMAGE_SYM_CLASS_NULL); ECase(IMAGE_SYM_CLASS_AUTOMATIC); ECase(IMAGE_SYM_CLASS_EXTERNAL); ECase(IMAGE_SYM_CLASS_STATIC); ECase(IMAGE_SYM_CLASS_REGISTER); ECase(IMAGE_SYM_CLASS_EXTERNAL_DEF); ECase(IMAGE_SYM_CLASS_LABEL); ECase(IMAGE_SYM_CLASS_UNDEFINED_LABEL); ECase(IMAGE_SYM_CLASS_MEMBER_OF_STRUCT); ECase(IMAGE_SYM_CLASS_ARGUMENT); ECase(IMAGE_SYM_CLASS_STRUCT_TAG); ECase(IMAGE_SYM_CLASS_MEMBER_OF_UNION); ECase(IMAGE_SYM_CLASS_UNION_TAG); ECase(IMAGE_SYM_CLASS_TYPE_DEFINITION); ECase(IMAGE_SYM_CLASS_UNDEFINED_STATIC); ECase(IMAGE_SYM_CLASS_ENUM_TAG); ECase(IMAGE_SYM_CLASS_MEMBER_OF_ENUM); ECase(IMAGE_SYM_CLASS_REGISTER_PARAM); ECase(IMAGE_SYM_CLASS_BIT_FIELD); ECase(IMAGE_SYM_CLASS_BLOCK); ECase(IMAGE_SYM_CLASS_FUNCTION); ECase(IMAGE_SYM_CLASS_END_OF_STRUCT); ECase(IMAGE_SYM_CLASS_FILE); ECase(IMAGE_SYM_CLASS_SECTION); ECase(IMAGE_SYM_CLASS_WEAK_EXTERNAL); ECase(IMAGE_SYM_CLASS_CLR_TOKEN); }
void ScalarEnumerationTraits<ELFYAML::ELF_SHN>::enumeration( IO &IO, ELFYAML::ELF_SHN &Value) { #define ECase(X) IO.enumCase(Value, #X, ELF::X) ECase(SHN_UNDEF); ECase(SHN_LORESERVE); ECase(SHN_LOPROC); ECase(SHN_HIPROC); ECase(SHN_LOOS); ECase(SHN_HIOS); ECase(SHN_ABS); ECase(SHN_COMMON); ECase(SHN_XINDEX); ECase(SHN_HIRESERVE); ECase(SHN_HEXAGON_SCOMMON); ECase(SHN_HEXAGON_SCOMMON_1); ECase(SHN_HEXAGON_SCOMMON_2); ECase(SHN_HEXAGON_SCOMMON_4); ECase(SHN_HEXAGON_SCOMMON_8); #undef ECase IO.enumFallback<Hex32>(Value); }
void ScalarEnumerationTraits<ELFYAML::ELF_SHT>::enumeration( IO &IO, ELFYAML::ELF_SHT &Value) { const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext()); assert(Object && "The IO context is not initialized"); #define ECase(X) IO.enumCase(Value, #X, ELF::X) ECase(SHT_NULL); ECase(SHT_PROGBITS); // No SHT_SYMTAB. Use the top-level `Symbols` key instead. // FIXME: Issue a diagnostic with this information. ECase(SHT_STRTAB); ECase(SHT_RELA); ECase(SHT_HASH); ECase(SHT_DYNAMIC); ECase(SHT_NOTE); ECase(SHT_NOBITS); ECase(SHT_REL); ECase(SHT_SHLIB); ECase(SHT_DYNSYM); ECase(SHT_INIT_ARRAY); ECase(SHT_FINI_ARRAY); ECase(SHT_PREINIT_ARRAY); ECase(SHT_GROUP); ECase(SHT_SYMTAB_SHNDX); ECase(SHT_LOOS); ECase(SHT_LLVM_ODRTAB); ECase(SHT_GNU_ATTRIBUTES); ECase(SHT_GNU_HASH); ECase(SHT_GNU_verdef); ECase(SHT_GNU_verneed); ECase(SHT_GNU_versym); ECase(SHT_HIOS); ECase(SHT_LOPROC); switch (Object->Header.Machine) { case ELF::EM_ARM: ECase(SHT_ARM_EXIDX); ECase(SHT_ARM_PREEMPTMAP); ECase(SHT_ARM_ATTRIBUTES); ECase(SHT_ARM_DEBUGOVERLAY); ECase(SHT_ARM_OVERLAYSECTION); break; case ELF::EM_HEXAGON: ECase(SHT_HEX_ORDERED); break; case ELF::EM_X86_64: ECase(SHT_X86_64_UNWIND); break; case ELF::EM_MIPS: ECase(SHT_MIPS_REGINFO); ECase(SHT_MIPS_OPTIONS); ECase(SHT_MIPS_ABIFLAGS); break; default: // Nothing to do. break; } #undef ECase }
void ScalarEnumerationTraits<ELFYAML::ELF_ELFOSABI>::enumeration( IO &IO, ELFYAML::ELF_ELFOSABI &Value) { #define ECase(X) IO.enumCase(Value, #X, ELF::X) ECase(ELFOSABI_NONE); ECase(ELFOSABI_HPUX); ECase(ELFOSABI_NETBSD); ECase(ELFOSABI_GNU); ECase(ELFOSABI_HURD); ECase(ELFOSABI_SOLARIS); ECase(ELFOSABI_AIX); ECase(ELFOSABI_IRIX); ECase(ELFOSABI_FREEBSD); ECase(ELFOSABI_TRU64); ECase(ELFOSABI_MODESTO); ECase(ELFOSABI_OPENBSD); ECase(ELFOSABI_OPENVMS); ECase(ELFOSABI_NSK); ECase(ELFOSABI_AROS); ECase(ELFOSABI_FENIXOS); ECase(ELFOSABI_CLOUDABI); ECase(ELFOSABI_AMDGPU_HSA); ECase(ELFOSABI_AMDGPU_PAL); ECase(ELFOSABI_AMDGPU_MESA3D); ECase(ELFOSABI_ARM); ECase(ELFOSABI_C6000_ELFABI); ECase(ELFOSABI_C6000_LINUX); ECase(ELFOSABI_STANDALONE); #undef ECase }
void ScalarEnumerationTraits<WasmYAML::TableType>::enumeration( IO &IO, WasmYAML::TableType &Type) { #define ECase(X) IO.enumCase(Type, #X, wasm::WASM_TYPE_##X); ECase(ANYFUNC); #undef ECase }
static void enumeration(IO &IO, COFF::SymbolComplexType &Value) { ECase(IMAGE_SYM_DTYPE_NULL); ECase(IMAGE_SYM_DTYPE_POINTER); ECase(IMAGE_SYM_DTYPE_FUNCTION); ECase(IMAGE_SYM_DTYPE_ARRAY); }