From b21570cc1d1d3a519512c25bebedca33d0a1e6e5 Mon Sep 17 00:00:00 2001 From: Derek Schuff Date: Tue, 23 Feb 2016 21:25:17 +0000 Subject: [WebAssembly] Stackify code emitted by eliminateFrameIndex llvm-svn: 261685 --- llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp') diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp index 607fd6e79c2..bebc68eb6a1 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp @@ -84,14 +84,18 @@ void WebAssemblyRegisterInfo::eliminateFrameIndex( unsigned FIRegOperand = WebAssembly::SP32; if (FrameOffset) { - FIRegOperand = MRI.createVirtualRegister(&WebAssembly::I32RegClass); + auto *WFI = MF.getInfo(); + unsigned OffsetOp = MRI.createVirtualRegister(&WebAssembly::I32RegClass); BuildMI(MBB, MI, MI.getDebugLoc(), TII->get(WebAssembly::CONST_I32), - FIRegOperand) + OffsetOp) .addImm(FrameOffset); + WFI->stackifyVReg(OffsetOp); + FIRegOperand = MRI.createVirtualRegister(&WebAssembly::I32RegClass); BuildMI(MBB, MI, MI.getDebugLoc(), TII->get(WebAssembly::ADD_I32), FIRegOperand) .addReg(WebAssembly::SP32) - .addReg(FIRegOperand); + .addReg(OffsetOp); + WFI->stackifyVReg(FIRegOperand); } MI.getOperand(FIOperandNum).ChangeToRegister(FIRegOperand, /*IsDef=*/false); } -- cgit v1.2.3