summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorChris Dewhurst <chris.dewhurst@lero.ie>2016-05-04 09:33:30 +0000
committerChris Dewhurst <chris.dewhurst@lero.ie>2016-05-04 09:33:30 +0000
commit69fa1926dbbfe0e1238a287f59d7f363e062f87b (patch)
tree2652c0b401f22e0764b95fedc76524c76e976d69 /clang/lib
parent04468f291456533fe85a0a30755a01b7d3087f58 (diff)
downloadbcm5719-llvm-69fa1926dbbfe0e1238a287f59d7f363e062f87b.tar.gz
bcm5719-llvm-69fa1926dbbfe0e1238a287f59d7f363e062f87b.zip
[Sparc] Implement __builtin_setjmp, __builtin_longjmp back-end.
This code implements builtin_setjmp and builtin_longjmp exception handling intrinsics for 32-bit Sparc back-ends. The code started as a mash-up of the PowerPC and X86 versions, although there are sufficient differences to both that had to be made for Sparc handling. Note: I have manual tests running. I'll work on a unit test and add that to the rest of this diff in the next day. Also, this implementation is only for 32-bit Sparc. I haven't focussed on a 64-bit version, although I have left the code in a prepared state for implementing this, including detecting pointer size and comments indicating where I suspect there may be differences. Differential Revision: http://reviews.llvm.org/D19798 llvm-svn: 268483
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Basic/Targets.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1df35ab8465..6b26d14dc5a 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -6447,6 +6447,10 @@ public:
}
}
}
+
+ bool hasSjLjLowering() const override {
+ return true;
+ }
};
// SPARCV8el is the 32-bit little-endian mode selected by Triple::sparcel.
OpenPOWER on IntegriCloud