summaryrefslogtreecommitdiff
path: root/lib/builtins/i386
AgeCommit message (Collapse)Author
2016-08-23Delete remaining compiler-rt makefilesChris Bieneman
Summary: Since we can now build the builtins without a full toolchain these files should no longer be needed. This is the last vestige of autoconf! Reviewers: compnerd, iains, jroelofs Subscribers: dberris, llvm-commits Differential Revision: https://reviews.llvm.org/D23777 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@279539 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-22builtins: tag with noexecstackSaleem Abdulrasool
These routines do not require executable stacks. However, by default ELFish linkers may assume an executable stack on GNUish environments (and some non-GNU ones too!). The GNU extension to add a note to indicate a non-executable stack is honoured by these environments to mark the stack as non-executable (the compiler normally emits this directive on appropriate targets whenever possible). This allows normal builds from getting executable stacks due to linking to the compiler rt builtins. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@273500 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-03Support for 32-bit mingw-w64 in compiler-rt.Martell Malone
Add chkstk/alloca for gcc objects. Replace or instructions with test, the latter should be marginally more efficent, as it does not write to memory. Differential Revision: http://reviews.llvm.org/D14044 Patch by vadimcn git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@251928 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-17Add missing chkstk.S files from r242539Reid Kleckner
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@242540 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-10builtins: cleanup constant data section selectionSaleem Abdulrasool
Each of the object formats use a different directive for selecting the constant section. Use a macro to avoid the duplication across a number of files. Also correct a small macro mismatch on the Windows case (HIDDEN_DIRECTIVE -> HIDDEN). Patch by Vadim Chugunov! git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@223910 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-26builtins: add missed files from previous commitsSaleem Abdulrasool
This adds missed files in SVN r214033 for alignment and corrects a change from SVN r214034 for fixing compilation with GCC. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214039 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-26builtins: move the readonly constants into rodataSaleem Abdulrasool
Place the floating point constants into the read-only data section. This was already being done for x86_64, this simply mirrors the behaviour for i686. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214034 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-26builtins: correct constant alignmentsSaleem Abdulrasool
MMX/SSE instructions expect 128-bit alignment (16-byte) for constants that they reference. Correct the alignment on the constant values. Although it is quite possible for the data to end up aligned, there is no guarantee that this will occur unless it is explicitly aligned to the desired location. If the data ends up being unaligned, the resultant binary would fault at runtime due to the unaligned access. As an example, the follow would fault previously: cc -c lib/builtins/x86_64/floatundidf.S -o floatundidf.o cc -c test/builtins/Unit/floatundidf_test.c -o floatundidf_test.c ld -m elf_x86_64 floatundidf.o floatundidf_test.o -lc -o floatundidf However, if the object files were reversed, the data would end up aligned and the problem would go unnoticed. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214033 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-12CompilerRT: .align was supposed to be power-of-aligned in this caseSaleem Abdulrasool
Use .balign instead of .p2align 3. This should fix the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@208585 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-12[CompilerRT] use .p2align, .balign instead of .alignSaleem Abdulrasool
The .align statements in ARM assembly routines is actually meant to be a power of 2 alignment (e.g. .align 2 == 4 byte alignment, not 2). Switch to using .p2align. .p2align is guaranteed to be a power-of-two alignment always and much more explicit. The .align in the case of x86_64 is byte alignment, use .balign instead of .align. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@208578 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-14Move original compiler-rt functions (libgcc replacement) to lib/builtins ↵Alexey Samsonov
directory git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@201393 91177308-0d34-0410-b5e6-96231b3b80d8