]> granicus.if.org Git - clang/commit
[Sparc] Implement __builtin_setjmp, __builtin_longjmp back-end.
authorChris Dewhurst <chris.dewhurst@lero.ie>
Wed, 4 May 2016 09:33:30 +0000 (09:33 +0000)
committerChris Dewhurst <chris.dewhurst@lero.ie>
Wed, 4 May 2016 09:33:30 +0000 (09:33 +0000)
commit1cd57ede02811738529d9200de906cef0d08c738
treed8ca563720832400919b3becd36ef4fb7b488c2f
parent3006132971575978d3b6fb675ae864382dee688a
[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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268483 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Basic/Targets.cpp