diff options
| author | 2019-06-23 21:36:31 +0000 | |
|---|---|---|
| committer | 2019-06-23 21:36:31 +0000 | |
| commit | 23f101f37937a1bd4a29726cab2f76e0fb038b35 (patch) | |
| tree | f7da7d6b32c2e07114da399150bfa88d72187012 /gnu/llvm/lib/ObjectYAML/WasmYAML.cpp | |
| parent | sort previous; ok deraadt (diff) | |
| download | wireguard-openbsd-23f101f37937a1bd4a29726cab2f76e0fb038b35.tar.xz wireguard-openbsd-23f101f37937a1bd4a29726cab2f76e0fb038b35.zip | |
Import LLVM 8.0.0 release including clang, lld and lldb.
Diffstat (limited to 'gnu/llvm/lib/ObjectYAML/WasmYAML.cpp')
| -rw-r--r-- | gnu/llvm/lib/ObjectYAML/WasmYAML.cpp | 66 |
1 files changed, 53 insertions, 13 deletions
diff --git a/gnu/llvm/lib/ObjectYAML/WasmYAML.cpp b/gnu/llvm/lib/ObjectYAML/WasmYAML.cpp index 3c20bb74d50..47bf853e0d3 100644 --- a/gnu/llvm/lib/ObjectYAML/WasmYAML.cpp +++ b/gnu/llvm/lib/ObjectYAML/WasmYAML.cpp @@ -48,6 +48,16 @@ static void commonSectionMapping(IO &IO, WasmYAML::Section &Section) { IO.mapOptional("Relocations", Section.Relocations); } +static void sectionMapping(IO &IO, WasmYAML::DylinkSection &Section) { + commonSectionMapping(IO, Section); + IO.mapRequired("Name", Section.Name); + IO.mapRequired("MemorySize", Section.MemorySize); + IO.mapRequired("MemoryAlignment", Section.MemoryAlignment); + IO.mapRequired("TableSize", Section.TableSize); + IO.mapRequired("TableAlignment", Section.TableAlignment); + IO.mapRequired("Needed", Section.Needed); +} + static void sectionMapping(IO &IO, WasmYAML::NameSection &Section) { commonSectionMapping(IO, Section); IO.mapRequired("Name", Section.Name); @@ -100,6 +110,11 @@ static void sectionMapping(IO &IO, WasmYAML::GlobalSection &Section) { IO.mapOptional("Globals", Section.Globals); } +static void sectionMapping(IO &IO, WasmYAML::EventSection &Section) { + commonSectionMapping(IO, Section); + IO.mapOptional("Events", Section.Events); +} + static void sectionMapping(IO &IO, WasmYAML::ExportSection &Section) { commonSectionMapping(IO, Section); IO.mapOptional("Exports", Section.Exports); @@ -142,7 +157,11 @@ void MappingTraits<std::unique_ptr<WasmYAML::Section>>::mapping( } else { IO.mapRequired("Name", SectionName); } - if (SectionName == "linking") { + if (SectionName == "dylink") { + if (!IO.outputting()) + Section.reset(new WasmYAML::DylinkSection()); + sectionMapping(IO, *cast<WasmYAML::DylinkSection>(Section.get())); + } else if (SectionName == "linking") { if (!IO.outputting()) Section.reset(new WasmYAML::LinkingSection()); sectionMapping(IO, *cast<WasmYAML::LinkingSection>(Section.get())); @@ -187,6 +206,11 @@ void MappingTraits<std::unique_ptr<WasmYAML::Section>>::mapping( Section.reset(new WasmYAML::GlobalSection()); sectionMapping(IO, *cast<WasmYAML::GlobalSection>(Section.get())); break; + case wasm::WASM_SEC_EVENT: + if (!IO.outputting()) + Section.reset(new WasmYAML::EventSection()); + sectionMapping(IO, *cast<WasmYAML::EventSection>(Section.get())); + break; case wasm::WASM_SEC_EXPORT: if (!IO.outputting()) Section.reset(new WasmYAML::ExportSection()); @@ -227,6 +251,7 @@ void ScalarEnumerationTraits<WasmYAML::SectionType>::enumeration( ECase(TABLE); ECase(MEMORY); ECase(GLOBAL); + ECase(EVENT); ECase(EXPORT); ECase(START); ECase(ELEM); @@ -307,9 +332,12 @@ void MappingTraits<WasmYAML::Import>::mapping(IO &IO, } else if (Import.Kind == wasm::WASM_EXTERNAL_GLOBAL) { IO.mapRequired("GlobalType", Import.GlobalImport.Type); IO.mapRequired("GlobalMutable", Import.GlobalImport.Mutable); + } else if (Import.Kind == wasm::WASM_EXTERNAL_EVENT) { + IO.mapRequired("EventAttribute", Import.EventImport.Attribute); + IO.mapRequired("EventSigIndex", Import.EventImport.SigIndex); } else if (Import.Kind == wasm::WASM_EXTERNAL_TABLE) { IO.mapRequired("Table", Import.TableImport); - } else if (Import.Kind == wasm::WASM_EXTERNAL_MEMORY ) { + } else if (Import.Kind == wasm::WASM_EXTERNAL_MEMORY) { IO.mapRequired("Memory", Import.Memory); } else { llvm_unreachable("unhandled import type"); @@ -349,7 +377,7 @@ void MappingTraits<wasm::WasmInitExpr>::mapping(IO &IO, case wasm::WASM_OPCODE_F64_CONST: IO.mapRequired("Value", Expr.Value.Float64); break; - case wasm::WASM_OPCODE_GET_GLOBAL: + case wasm::WASM_OPCODE_GLOBAL_GET: IO.mapRequired("Index", Expr.Value.Global); break; } @@ -383,8 +411,8 @@ void MappingTraits<WasmYAML::ComdatEntry>::mapping( IO.mapRequired("Index", ComdatEntry.Index); } -void MappingTraits<WasmYAML::Comdat>::mapping( - IO &IO, WasmYAML::Comdat &Comdat) { +void MappingTraits<WasmYAML::Comdat>::mapping(IO &IO, + WasmYAML::Comdat &Comdat) { IO.mapRequired("Name", Comdat.Name); IO.mapRequired("Entries", Comdat.Entries); } @@ -399,6 +427,8 @@ void MappingTraits<WasmYAML::SymbolInfo>::mapping(IO &IO, IO.mapRequired("Function", Info.ElementIndex); } else if (Info.Kind == wasm::WASM_SYMBOL_TYPE_GLOBAL) { IO.mapRequired("Global", Info.ElementIndex); + } else if (Info.Kind == wasm::WASM_SYMBOL_TYPE_EVENT) { + IO.mapRequired("Event", Info.ElementIndex); } else if (Info.Kind == wasm::WASM_SYMBOL_TYPE_DATA) { if ((Info.Flags & wasm::WASM_SYMBOL_UNDEFINED) == 0) { IO.mapRequired("Segment", Info.DataRef.Segment); @@ -412,24 +442,31 @@ void MappingTraits<WasmYAML::SymbolInfo>::mapping(IO &IO, } } +void MappingTraits<WasmYAML::Event>::mapping(IO &IO, WasmYAML::Event &Event) { + IO.mapRequired("Index", Event.Index); + IO.mapRequired("Attribute", Event.Attribute); + IO.mapRequired("SigIndex", Event.SigIndex); +} + void ScalarBitSetTraits<WasmYAML::LimitFlags>::bitset( IO &IO, WasmYAML::LimitFlags &Value) { #define BCase(X) IO.bitSetCase(Value, #X, wasm::WASM_LIMITS_FLAG_##X) BCase(HAS_MAX); + BCase(IS_SHARED); #undef BCase } void ScalarBitSetTraits<WasmYAML::SegmentFlags>::bitset( - IO &IO, WasmYAML::SegmentFlags &Value) { -} + IO &IO, WasmYAML::SegmentFlags &Value) {} void ScalarBitSetTraits<WasmYAML::SymbolFlags>::bitset( IO &IO, WasmYAML::SymbolFlags &Value) { -#define BCaseMask(M, X) IO.maskedBitSetCase(Value, #X, wasm::WASM_SYMBOL_##X, wasm::WASM_SYMBOL_##M) - //BCaseMask(BINDING_MASK, BINDING_GLOBAL); +#define BCaseMask(M, X) \ + IO.maskedBitSetCase(Value, #X, wasm::WASM_SYMBOL_##X, wasm::WASM_SYMBOL_##M) + // BCaseMask(BINDING_MASK, BINDING_GLOBAL); BCaseMask(BINDING_MASK, BINDING_WEAK); BCaseMask(BINDING_MASK, BINDING_LOCAL); - //BCaseMask(VISIBILITY_MASK, VISIBILITY_DEFAULT); + // BCaseMask(VISIBILITY_MASK, VISIBILITY_DEFAULT); BCaseMask(VISIBILITY_MASK, VISIBILITY_HIDDEN); BCaseMask(UNDEFINED, UNDEFINED); #undef BCaseMask @@ -442,6 +479,7 @@ void ScalarEnumerationTraits<WasmYAML::SymbolKind>::enumeration( ECase(DATA); ECase(GLOBAL); ECase(SECTION); + ECase(EVENT); #undef ECase } @@ -452,7 +490,8 @@ void ScalarEnumerationTraits<WasmYAML::ValueType>::enumeration( ECase(I64); ECase(F32); ECase(F64); - ECase(ANYFUNC); + ECase(V128); + ECase(FUNCREF); ECase(FUNC); ECase(NORESULT); #undef ECase @@ -465,6 +504,7 @@ void ScalarEnumerationTraits<WasmYAML::ExportKind>::enumeration( ECase(TABLE); ECase(MEMORY); ECase(GLOBAL); + ECase(EVENT); #undef ECase } @@ -476,14 +516,14 @@ void ScalarEnumerationTraits<WasmYAML::Opcode>::enumeration( ECase(I64_CONST); ECase(F64_CONST); ECase(F32_CONST); - ECase(GET_GLOBAL); + ECase(GLOBAL_GET); #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); + ECase(FUNCREF); #undef ECase } |
