[WebAssembly] Implement __builtin_frame_address.

Differential Revision: http://reviews.llvm.org/D17307

llvm-svn: 261032
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp
index f38f635..76ea0d7 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp
@@ -108,11 +108,11 @@
     }
   }
   // Allocate locals for used physical registers
-  if (FrameInfo.getStackSize() > 0 || FrameInfo.adjustsStack()) {
+  bool HasFP = MF.getSubtarget().getFrameLowering()->hasFP(MF);
+  if (FrameInfo.getStackSize() > 0 || FrameInfo.adjustsStack() || HasFP) {
     DEBUG(dbgs() << "PReg SP " << CurReg << "\n");
     MFI.addPReg(WebAssembly::SP32, CurReg++);
   }
-  bool HasFP = MF.getSubtarget().getFrameLowering()->hasFP(MF);
   if (HasFP) {
     DEBUG(dbgs() << "PReg FP " << CurReg << "\n");
     MFI.addPReg(WebAssembly::FP32, CurReg++);