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 | 77f781405d734729afb4c34e15ab1d4e16f5a8c4 (patch) | |
tree | f92993aaeb3c5372b2935bc73f3b58231e8ad47f /llvm/lib | |
parent | e9b361b2e6efe7e632cd21c48327bc28306fb3cd (diff) | |
download | bcm5719-llvm-77f781405d734729afb4c34e15ab1d4e16f5a8c4.tar.gz bcm5719-llvm-77f781405d734729afb4c34e15ab1d4e16f5a8c4.zip |
comment why we use custom epilogue for t1 functions using vaargs.
llvm-svn: 98182
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/Thumb1RegisterInfo.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/Thumb1RegisterInfo.cpp b/llvm/lib/Target/ARM/Thumb1RegisterInfo.cpp index 6215d2fa82c..49fd3fa05be 100644 --- a/llvm/lib/Target/ARM/Thumb1RegisterInfo.cpp +++ b/llvm/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; |