diff options
author | Jim Grosbach <grosbach@apple.com> | 2010-03-10 19:59:47 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2010-03-10 19:59:47 +0000 |
commit | 004453e85e72a2a2ea9a70fc6b7b368feb877c4c (patch) | |
tree | af392a15935a70052b3a42deb5397b77b7b23483 /lib/Target/ARM/Thumb1RegisterInfo.cpp | |
parent | 2cd9ffef6e74febd727f0b548c21ba3f4e5cd26f (diff) | |
download | external_llvm-004453e85e72a2a2ea9a70fc6b7b368feb877c4c.zip external_llvm-004453e85e72a2a2ea9a70fc6b7b368feb877c4c.tar.gz external_llvm-004453e85e72a2a2ea9a70fc6b7b368feb877c4c.tar.bz2 |
comment why we use custom epilogue for t1 functions using vaargs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98182 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/Thumb1RegisterInfo.cpp')
-rw-r--r-- | lib/Target/ARM/Thumb1RegisterInfo.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/ARM/Thumb1RegisterInfo.cpp b/lib/Target/ARM/Thumb1RegisterInfo.cpp index 6215d2f..49fd3fa 100644 --- a/lib/Target/ARM/Thumb1RegisterInfo.cpp +++ b/lib/Target/ARM/Thumb1RegisterInfo.cpp @@ -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; |