aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@google.com>2016-02-20 22:18:47 +0000
committerDerek Schuff <dschuff@google.com>2016-02-20 22:18:47 +0000
commit90dbb8cfc3617ce72a3b27282ba9f5fdaf79880e (patch)
treefa324dacd03990f92692bfd2bd6e681d752b4485 /llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
parentdc5f6aa4bb3dccbee230a10d3cf26294c5093dfe (diff)
downloadllvm-90dbb8cfc3617ce72a3b27282ba9f5fdaf79880e.zip
llvm-90dbb8cfc3617ce72a3b27282ba9f5fdaf79880e.tar.gz
llvm-90dbb8cfc3617ce72a3b27282ba9f5fdaf79880e.tar.bz2
[WebAssembly] Write stack pointer back to memory when FP is used
The stack pointer is bumped when there is a frame pointer or when there are static-size objects, but was only getting written back when there were static-size objects. llvm-svn: 261453
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
index 0e0cac4..cbf59d1 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
@@ -125,7 +125,7 @@ void WebAssemblyFrameLowering::emitPrologue(MachineFunction &MF,
WebAssembly::FP32)
.addReg(WebAssembly::SP32);
}
- if (StackSize) {
+ if (StackSize || hasFP(MF)) {
SPAddr = MRI.createVirtualRegister(&WebAssembly::I32RegClass);
// The SP32 register now has the new stacktop. Also write it back to memory.
BuildMI(MBB, InsertPt, DL, TII->get(WebAssembly::CONST_I32), SPAddr)