diff options
| author | Derek Schuff <dschuff@google.com> | 2018-10-03 22:25:32 +0000 |
|---|---|---|
| committer | Derek Schuff <dschuff@google.com> | 2018-10-03 22:25:32 +0000 |
| commit | 371842b85353ade5b5c342ca6049daabc16df310 (patch) | |
| tree | 6468cb8ac173cf5692f287973fe3b0b9e1e333d8 /lld/wasm/WriterUtils.cpp | |
| parent | 77a7a38006eed3dda8f63b1a352f3f60398bda41 (diff) | |
| download | bcm5719-llvm-371842b85353ade5b5c342ca6049daabc16df310.tar.gz bcm5719-llvm-371842b85353ade5b5c342ca6049daabc16df310.zip | |
[WebAssembly] Refactor use of signatures
Update use of WebAssemblySignature to go along with D52580
Differential Revision: https://reviews.llvm.org/D52622
llvm-svn: 343734
Diffstat (limited to 'lld/wasm/WriterUtils.cpp')
| -rw-r--r-- | lld/wasm/WriterUtils.cpp | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/lld/wasm/WriterUtils.cpp b/lld/wasm/WriterUtils.cpp index 949728b486e..a92da743d96 100644 --- a/lld/wasm/WriterUtils.cpp +++ b/lld/wasm/WriterUtils.cpp @@ -19,15 +19,15 @@ using namespace llvm; using namespace llvm::wasm; using namespace lld::wasm; -static const char *valueTypeToString(uint8_t Type) { +static const char *valueTypeToString(ValType Type) { switch (Type) { - case WASM_TYPE_I32: + case wasm::ValType::I32: return "i32"; - case WASM_TYPE_I64: + case wasm::ValType::I64: return "i64"; - case WASM_TYPE_F32: + case wasm::ValType::F32: return "f32"; - case WASM_TYPE_F64: + case wasm::ValType::F64: return "f64"; default: llvm_unreachable("invalid value type"); @@ -73,21 +73,20 @@ void wasm::writeU32(raw_ostream &OS, uint32_t Number, const Twine &Msg) { support::endian::write(OS, Number, support::little); } -void wasm::writeValueType(raw_ostream &OS, uint8_t Type, const Twine &Msg) { - writeU8(OS, Type, Msg + "[type: " + valueTypeToString(Type) + "]"); +void wasm::writeValueType(raw_ostream &OS, ValType Type, const Twine &Msg) { + writeU8(OS, static_cast<uint8_t>(Type), + Msg + "[type: " + valueTypeToString(Type) + "]"); } void wasm::writeSig(raw_ostream &OS, const WasmSignature &Sig) { writeU8(OS, WASM_TYPE_FUNC, "signature type"); - writeUleb128(OS, Sig.ParamTypes.size(), "param Count"); - for (uint8_t ParamType : Sig.ParamTypes) { + writeUleb128(OS, Sig.Params.size(), "param Count"); + for (ValType ParamType : Sig.Params) { writeValueType(OS, ParamType, "param type"); } - if (Sig.ReturnType == WASM_TYPE_NORESULT) { - writeUleb128(OS, 0, "result Count"); - } else { - writeUleb128(OS, 1, "result Count"); - writeValueType(OS, Sig.ReturnType, "result type"); + writeUleb128(OS, Sig.Returns.size(), "result Count"); + if (Sig.Returns.size()) { + writeValueType(OS, Sig.Returns[0], "result type"); } } @@ -117,7 +116,8 @@ void wasm::writeLimits(raw_ostream &OS, const WasmLimits &Limits) { } void wasm::writeGlobalType(raw_ostream &OS, const WasmGlobalType &Type) { - writeValueType(OS, Type.Type, "global type"); + // TODO: Update WasmGlobalType to use ValType and remove this cast. + writeValueType(OS, ValType(Type.Type), "global type"); writeU8(OS, Type.Mutable, "global mutable"); } @@ -195,16 +195,16 @@ std::string lld::toString(ValType Type) { std::string lld::toString(const WasmSignature &Sig) { SmallString<128> S("("); - for (uint32_t Type : Sig.ParamTypes) { + for (ValType Type : Sig.Params) { if (S.size() != 1) S += ", "; - S += toString(static_cast<ValType>(Type)); + S += toString(Type); } S += ") -> "; - if (Sig.ReturnType == WASM_TYPE_NORESULT) + if (Sig.Returns.size() == 0) S += "void"; else - S += toString(static_cast<ValType>(Sig.ReturnType)); + S += toString(Sig.Returns[0]); return S.str(); } |

