From e2688c432fcffff53d7d356d7530a0b139c16286 Mon Sep 17 00:00:00 2001 From: Derek Schuff Date: Tue, 14 Mar 2017 20:23:22 +0000 Subject: [WebAssembly] Use LEB encoding for value types Previously we were using the encoded LEB hex values for the value types. This change uses the decoded negative value and the LEB encoder to write them out. Differential Revision: https://reviews.llvm.org/D30847 Patch by Sam Clegg llvm-svn: 297777 --- .../MCTargetDesc/WebAssemblyTargetStreamer.cpp | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp') diff --git a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp index 5a285935e2b..a499cc23a6b 100644 --- a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp +++ b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp @@ -152,30 +152,20 @@ void WebAssemblyTargetELFStreamer::emitIndirectFunctionType( void WebAssemblyTargetELFStreamer::emitGlobalImport(StringRef name) { } -static unsigned MVT2WasmType(MVT Ty) { - switch (Ty.SimpleTy) { - case MVT::i32: return wasm::WASM_TYPE_I32; - case MVT::i64: return wasm::WASM_TYPE_I64; - case MVT::f32: return wasm::WASM_TYPE_F32; - case MVT::f64: return wasm::WASM_TYPE_F64; - default: llvm_unreachable("unsupported type"); - } -} - void WebAssemblyTargetWasmStreamer::emitParam(MCSymbol *Symbol, ArrayRef Types) { - SmallVector Params; + SmallVector Params; for (MVT Ty : Types) - Params.push_back(MVT2WasmType(Ty)); + Params.push_back(WebAssembly::toValType(Ty)); cast(Symbol)->setParams(std::move(Params)); } void WebAssemblyTargetWasmStreamer::emitResult(MCSymbol *Symbol, ArrayRef Types) { - SmallVector Returns; + SmallVector Returns; for (MVT Ty : Types) - Returns.push_back(MVT2WasmType(Ty)); + Returns.push_back(WebAssembly::toValType(Ty)); cast(Symbol)->setReturns(std::move(Returns)); } -- cgit v1.2.3