Lines Matching defs:ElfSecName
25 enum class ElfSecName : uint8_t {
60 explicit ElfSection(ElfSecName idx)
67 value_ = static_cast<ElfSecName>(idx);
73 value_ = ElfSecName::RODATA;
75 value_ = ElfSecName::RODATA_CST4;
77 value_ = ElfSecName::RODATA_CST8;
79 value_ = ElfSecName::RODATA_CST16;
81 value_ = ElfSecName::RODATA_CST32;
83 value_ = ElfSecName::TEXT;
85 value_ = ElfSecName::DATA;
87 value_ = ElfSecName::GOT;
89 value_ = ElfSecName::RELATEXT;
91 value_ = ElfSecName::STRTAB;
93 value_ = ElfSecName::SYMTAB;
95 value_ = ElfSecName::SHSTRTAB;
97 value_ = ElfSecName::LLVM_STACKMAP;
99 value_ = ElfSecName::ARK_STACKMAP;
101 value_ = ElfSecName::ARK_FUNCENTRY;
103 value_ = ElfSecName::ARK_ASMSTUB;
105 value_ = ElfSecName::ARK_MODULEINFO;
114 case ElfSecName::TEXT:
115 case ElfSecName::STRTAB:
116 case ElfSecName::SYMTAB:
117 case ElfSecName::SHSTRTAB:
118 case ElfSecName::ARK_FUNCENTRY:
119 case ElfSecName::ARK_ASMSTUB:
120 case ElfSecName::ARK_STACKMAP:
121 case ElfSecName::ARK_MODULEINFO: {
132 ElfSecName Value() const
139 if (value_ == ElfSecName::RELATEXT || value_ == ElfSecName::SYMTAB) {
148 return value_ == ElfSecName::SYMTAB ? 2 : 0;
153 std::map<ElfSecName, std::pair<unsigned, unsigned>> nameToTypeAndFlag = {
154 {ElfSecName::RODATA, {llvm::ELF::SHT_PROGBITS, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_MERGE}},
155 {ElfSecName::RODATA_CST4, {llvm::ELF::SHT_PROGBITS, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_MERGE}},
156 {ElfSecName::RODATA_CST8, {llvm::ELF::SHT_PROGBITS, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_MERGE}},
157 {ElfSecName::RODATA_CST16, {llvm::ELF::SHT_PROGBITS, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_MERGE}},
158 {ElfSecName::RODATA_CST32, {llvm::ELF::SHT_PROGBITS, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_MERGE}},
159 {ElfSecName::TEXT, {llvm::ELF::SHT_PROGBITS, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_EXECINSTR}},
160 {ElfSecName::ARK_ASMSTUB, {llvm::ELF::SHT_PROGBITS, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_EXECINSTR}},
161 {ElfSecName::DATA, {llvm::ELF::SHT_PROGBITS, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_WRITE}},
162 {ElfSecName::GOT, {llvm::ELF::SHT_PROGBITS, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_WRITE}},
163 {ElfSecName::RELATEXT, {llvm::ELF::SHT_RELA, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_WRITE}},
164 {ElfSecName::STRTAB, {llvm::ELF::SHT_STRTAB, llvm::ELF::SHF_ALLOC}},
165 {ElfSecName::SYMTAB, {llvm::ELF::SHT_SYMTAB, llvm::ELF::SHF_ALLOC}},
166 {ElfSecName::SHSTRTAB, {llvm::ELF::SHT_STRTAB, llvm::ELF::SHF_ALLOC}},
167 {ElfSecName::LLVM_STACKMAP, {llvm::ELF::SHT_RELA, llvm::ELF::SHF_ALLOC}},
168 {ElfSecName::ARK_FUNCENTRY, {llvm::ELF::SHF_WRITE, llvm::ELF::SHF_ALLOC}},
169 {ElfSecName::ARK_STACKMAP, {llvm::ELF::SHF_WRITE, llvm::ELF::SHF_ALLOC}},
170 {ElfSecName::ARK_MODULEINFO, {llvm::ELF::SHF_WRITE, llvm::ELF::SHF_ALLOC}},
203 ElfSecName GetElfEnumValue() const
216 return ElfSecName::RODATA <= value_ && value_ <= ElfSecName::RODATA_CST32;
220 ElfSecName value_ {ElfSecName::NONE};
224 static constexpr size_t AOTSecFeatureTable_[static_cast<size_t>(ElfSecName::SIZE)] = {