From 001f3417071d4d6b08cc0dcd1dc03f5f90fe7623 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Sun, 6 Dec 2015 19:42:29 +0000 Subject: [PATCH] [WebAssembly] Factor out a TypeToString function, since we need it in multiple places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254884 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../InstPrinter/WebAssemblyInstPrinter.cpp | 32 +++++++++---------- .../InstPrinter/WebAssemblyInstPrinter.h | 7 ++++ .../WebAssembly/WebAssemblyAsmPrinter.cpp | 16 +--------- 3 files changed, 24 insertions(+), 31 deletions(-) diff --git a/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp b/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp index 9b94806c953..3a151dec16f 100644 --- a/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp +++ b/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp @@ -98,22 +98,7 @@ void WebAssemblyInstPrinter::printOperand(const MCInst *MI, unsigned OpNo, case WebAssembly::PARAM: case WebAssembly::RESULT: case WebAssembly::LOCAL: - switch (Op.getImm()) { - case MVT::i32: - O << "i32"; - break; - case MVT::i64: - O << "i64"; - break; - case MVT::f32: - O << "f32"; - break; - case MVT::f64: - O << "f64"; - break; - default: - llvm_unreachable("unexpected type"); - } + O << WebAssembly::TypeToString(MVT::SimpleValueType(Op.getImm())); break; default: O << Op.getImm(); @@ -126,3 +111,18 @@ void WebAssemblyInstPrinter::printOperand(const MCInst *MI, unsigned OpNo, Op.getExpr()->print(O, &MAI); } } + +const char *llvm::WebAssembly::TypeToString(MVT Ty) { + switch (Ty.SimpleTy) { + case MVT::i32: + return "i32"; + case MVT::i64: + return "i64"; + case MVT::f32: + return "f32"; + case MVT::f64: + return "f64"; + default: + llvm_unreachable("unsupported type"); + } +} diff --git a/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h b/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h index 319c8ee1d5d..20569da0b11 100644 --- a/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h +++ b/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h @@ -17,6 +17,7 @@ #include "llvm/MC/MCInstPrinter.h" #include "llvm/Support/raw_ostream.h" +#include "llvm/CodeGen/MachineValueType.h" namespace llvm { @@ -40,6 +41,12 @@ public: static const char *getRegisterName(unsigned RegNo); }; +namespace WebAssembly { + +const char *TypeToString(MVT Ty); + +} // end namespace WebAssembly + } // end namespace llvm #endif diff --git a/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp b/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp index cfabc21ea4d..1b175a7f8d5 100644 --- a/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp +++ b/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp @@ -115,21 +115,7 @@ std::string WebAssemblyAsmPrinter::regToString(const MachineOperand &MO) { } const char *WebAssemblyAsmPrinter::toString(MVT VT) const { - switch (VT.SimpleTy) { - default: - break; - case MVT::f32: - return "f32"; - case MVT::f64: - return "f64"; - case MVT::i32: - return "i32"; - case MVT::i64: - return "i64"; - } - DEBUG(dbgs() << "Invalid type " << EVT(VT).getEVTString() << '\n'); - llvm_unreachable("invalid type"); - return ""; + return WebAssembly::TypeToString(VT); } //===----------------------------------------------------------------------===// -- 2.34.1