Fix Comments.
[oota-llvm.git] / lib / Target / ARM / Thumb1FrameLowering.cpp
index ad1edc8dd8f78ad2ce4684213fca7cffc1ff886e..d8481778c0daeac997bc0dacbcb0a85f0512bf78 100644 (file)
@@ -155,32 +155,10 @@ void Thumb1FrameLowering::emitPrologue(MachineFunction &MF) const {
   AFI->setGPRCalleeSavedArea2Size(GPRCS2Size);
   AFI->setDPRCalleeSavedAreaSize(DPRCSSize);
 
-  // If we need dynamic stack realignment, do it here. Be paranoid and make
-  // sure if we also have VLAs, we have a base pointer for frame access.
-  if (RegInfo->needsStackRealignment(MF)) {
-    // We cannot use sp as source/dest register here, thus we're emitting the
-    // following sequence:
-    // mov r4, sp
-    // lsrs r4, r4, Log2MaxAlign
-    // lsls r4, r4, Log2MaxAlign
-    // mov sp, r4
-    unsigned MaxAlign = MFI->getMaxAlignment();
-    unsigned Log2MaxAlign = Log2_32(MaxAlign);
-    AddDefaultPred(BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), ARM::R4)
-                   .addReg(ARM::SP, RegState::Kill));
-    AddDefaultPred(AddDefaultT1CC(BuildMI(MBB, MBBI, dl, TII.get(ARM::tLSRri),
-                                          ARM::R4))
-                   .addReg(ARM::R4, RegState::Kill)
-                   .addImm(Log2MaxAlign));
-    AddDefaultPred(AddDefaultT1CC(BuildMI(MBB, MBBI, dl, TII.get(ARM::tLSLri),
-                                          ARM::R4))
-                   .addReg(ARM::R4, RegState::Kill)
-                   .addImm(Log2MaxAlign));
-    AddDefaultPred(BuildMI(MBB, MBBI, dl, TII.get(ARM::tMOVr), ARM::SP)
-                   .addReg(ARM::R4, RegState::Kill));
-
-    AFI->setShouldRestoreSPFromFP(true);    
-  }
+  // Thumb1 does not currently support dynamic stack realignment.  Report a
+  // fatal error rather then silently generate bad code.
+  if (RegInfo->needsStackRealignment(MF))
+      report_fatal_error("Dynamic stack realignment not supported for thumb1.");
 
   // If we need a base pointer, set it up here. It's whatever the value
   // of the stack pointer is at this point. Any variable size objects