diff options
author | Sam Clegg <sbc@chromium.org> | 2017-12-13 22:02:25 +0000 |
---|---|---|
committer | Sam Clegg <sbc@chromium.org> | 2017-12-13 22:02:25 +0000 |
commit | 0fc5599f529067a311bb39d19589d53b572d524d (patch) | |
tree | 862d0a0ce6d94049ec2eb24cd11d84b1e966c58c /llvm/lib/ObjectYAML/WasmYAML.cpp | |
parent | 580bc3c8fa1e01991e41174d513ab600f9015c51 (diff) | |
download | bcm5719-llvm-0fc5599f529067a311bb39d19589d53b572d524d.tar.gz bcm5719-llvm-0fc5599f529067a311bb39d19589d53b572d524d.zip |
[WebAssembly] Use bitfield types in wasm YAML representation
Differential Revision: https://reviews.llvm.org/D41202
llvm-svn: 320642
Diffstat (limited to 'llvm/lib/ObjectYAML/WasmYAML.cpp')
-rw-r--r-- | llvm/lib/ObjectYAML/WasmYAML.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/lib/ObjectYAML/WasmYAML.cpp b/llvm/lib/ObjectYAML/WasmYAML.cpp index 2f961cf68a0..c206a682b83 100644 --- a/llvm/lib/ObjectYAML/WasmYAML.cpp +++ b/llvm/lib/ObjectYAML/WasmYAML.cpp @@ -365,6 +365,28 @@ void MappingTraits<WasmYAML::SymbolInfo>::mapping(IO &IO, IO.mapRequired("Flags", Info.Flags); } +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); +#undef BCase +} + +void ScalarBitSetTraits<WasmYAML::SegmentFlags>::bitset( + 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); + BCaseMask(BINDING_MASK, BINDING_WEAK); + BCaseMask(BINDING_MASK, BINDING_LOCAL); + //BCaseMask(VISIBILITY_MASK, VISIBILITY_DEFAULT); + BCaseMask(VISIBILITY_MASK, VISIBILITY_HIDDEN); +#undef BCaseMask +} + void ScalarEnumerationTraits<WasmYAML::ValueType>::enumeration( IO &IO, WasmYAML::ValueType &Type) { #define ECase(X) IO.enumCase(Type, #X, wasm::WASM_TYPE_##X); |