diff --git a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp index d8bfed9dc0390..651f631c1ee55 100644 --- a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp +++ b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp @@ -317,8 +317,8 @@ void WebAssemblyInstPrinter::printOperand(const MCInst *MI, unsigned OpNo, const MCOperand &Op = MI->getOperand(OpNo); if (Op.isReg()) { const MCInstrDesc &Desc = MII.get(MI->getOpcode()); - unsigned WAReg = Op.getReg(); - if (int(WAReg) >= 0) + MCRegister WAReg = Op.getReg(); + if (int(WAReg.id()) >= 0) printRegName(O, WAReg); else if (OpNo >= Desc.getNumDefs() && !IsVariadicDef) O << "$pop" << WebAssembly::getWARegStackId(WAReg); diff --git a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h index fe9a4bada2430..5dc0e3aa91622 100644 --- a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h +++ b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h @@ -608,9 +608,9 @@ inline bool isLocalTee(unsigned Opc) { static const unsigned UnusedReg = -1u; // For a given stackified WAReg, return the id number to print with push/pop. -unsigned inline getWARegStackId(unsigned Reg) { - assert(Reg & INT32_MIN); - return Reg & INT32_MAX; +unsigned inline getWARegStackId(MCRegister Reg) { + assert(Reg.id() & INT32_MIN); + return Reg.id() & INT32_MAX; } } // end namespace WebAssembly