diff options
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp index a76cb81..f38f635 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp @@ -108,10 +108,15 @@ bool WebAssemblyRegNumbering::runOnMachineFunction(MachineFunction &MF) { } } // Allocate locals for used physical registers - if (FrameInfo.getStackSize() > 0) { + if (FrameInfo.getStackSize() > 0 || FrameInfo.adjustsStack()) { 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++); + } return true; } |