From 45cd5a79b24ea75b4d746eae53d3eb8f84a63c2e Mon Sep 17 00:00:00 2001 From: Derek Schuff Date: Wed, 16 Dec 2015 20:43:06 +0000 Subject: [WebAssembly] Print an extra local decl when the user stack pointer is used Differential Revision: http://reviews.llvm.org/D15546 llvm-svn: 255815 --- llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp') diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp index 079c864..e853b76 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp @@ -26,6 +26,7 @@ #include "llvm/CodeGen/Analysis.h" #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/CodeGen/MachineConstantPool.h" +#include "llvm/CodeGen/MachineFrameInfo.h" #include "llvm/CodeGen/MachineInstr.h" #include "llvm/IR/DataLayout.h" #include "llvm/MC/MCContext.h" @@ -181,6 +182,11 @@ void WebAssemblyAsmPrinter::EmitFunctionBodyStart() { Local.addOperand(MCOperand::createImm(getRegType(VReg).SimpleTy)); AnyWARegs = true; } + if (MF->getFrameInfo()->getStackSize() > 0) { + // TODO: wasm64 + Local.addOperand(MCOperand::createImm(MVT::i32)); + AnyWARegs = true; + } if (AnyWARegs) EmitToStreamer(*OutStreamer, Local); -- cgit v1.1