summaryrefslogtreecommitdiffstats
path: root/lld/wasm/WriterUtils.cpp
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@google.com>2018-10-03 22:25:32 +0000
committerDerek Schuff <dschuff@google.com>2018-10-03 22:25:32 +0000
commit371842b85353ade5b5c342ca6049daabc16df310 (patch)
tree6468cb8ac173cf5692f287973fe3b0b9e1e333d8 /lld/wasm/WriterUtils.cpp
parent77a7a38006eed3dda8f63b1a352f3f60398bda41 (diff)
downloadbcm5719-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.cpp38
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();
}
OpenPOWER on IntegriCloud