comment why we use custom epilogue for t1 functions using vaargs.
authorJim Grosbach <grosbach@apple.com>
Wed, 10 Mar 2010 19:59:47 +0000 (19:59 +0000)
committerJim Grosbach <grosbach@apple.com>
Wed, 10 Mar 2010 19:59:47 +0000 (19:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98182 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/Thumb1RegisterInfo.cpp

index 6215d2fa82c6f3ba11295ce73b3e39b4d7367a38..49fd3fa05be74257513215c553fd707329bb8354 100644 (file)
@@ -854,6 +854,11 @@ void Thumb1RegisterInfo::emitEpilogue(MachineFunction &MF,
   }
 
   if (VARegSaveSize) {
+    // Unlike T2 and ARM mode, the T1 pop instruction cannot restore
+    // to LR, and we can't pop the value directly to the PC since
+    // we need to update the SP after popping the value. Therefore, we
+    // pop the old LR into R3 as a temporary.
+
     // Move back past the callee-saved register restoration
     while (MBBI != MBB.end() && isCSRestore(MBBI, CSRegs))
       ++MBBI;