aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2009-05-12 23:59:14 +0000
committerJim Grosbach <grosbach@apple.com>2009-05-12 23:59:14 +0000
commitaeca45dd6f169a0cd7ca4bf012c26fbc0483f36b (patch)
tree62d60013bb864e868c6d5af3512a3b25a7493527 /llvm/lib/CodeGen/PrologEpilogInserter.cpp
parent85cca64dd759a1225544d58b54d612f99940b998 (diff)
downloadllvm-aeca45dd6f169a0cd7ca4bf012c26fbc0483f36b.zip
llvm-aeca45dd6f169a0cd7ca4bf012c26fbc0483f36b.tar.gz
llvm-aeca45dd6f169a0cd7ca4bf012c26fbc0483f36b.tar.bz2
Add support for GCC compatible builtin setjmp and longjmp intrinsics. This is
a supporting preliminary patch for GCC-compatible SjLJ exception handling. Note that these intrinsics are not designed to be invoked directly by the user, but rather used by the front-end as target hooks for exception handling. llvm-svn: 71610
Diffstat (limited to 'llvm/lib/CodeGen/PrologEpilogInserter.cpp')
-rw-r--r--llvm/lib/CodeGen/PrologEpilogInserter.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/llvm/lib/CodeGen/PrologEpilogInserter.cpp
index 6f95d1c..d9665cc 100644
--- a/llvm/lib/CodeGen/PrologEpilogInserter.cpp
+++ b/llvm/lib/CodeGen/PrologEpilogInserter.cpp
@@ -180,7 +180,7 @@ void PEI::calculateCalleeSavedRegisters(MachineFunction &Fn) {
std::vector<CalleeSavedInfo> CSI;
for (unsigned i = 0; CSRegs[i]; ++i) {
unsigned Reg = CSRegs[i];
- if (Fn.getRegInfo().isPhysRegUsed(Reg)) {
+ if (Fn.getRegInfo().isPhysRegUsed(Reg) || Fn.doesHaveBuiltinSetjmp()) {
// If the reg is modified, save it!
CSI.push_back(CalleeSavedInfo(Reg, CSRegClasses[i]));
} else {