summaryrefslogtreecommitdiffstats
path: root/contrib/compiler-rt
Commit message (Collapse)AuthorAgeFilesLines
* Add support for RISC-V ISA.br2016-01-222-5/+11
| | | | | | | Reviewed by: emaste Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D5021
* Merge ^/head r288197 through r288456.dim2015-10-014-0/+7
|\
| * Annotate arm userspace assembler sources stating their tolerance tokib2015-09-294-0/+7
| | | | | | | | | | | | | | the non-executable stack. Reviewed by: andrew Sponsored by: The FreeBSD Foundation
* | Update compiler-rt to 3.7.0 release. This also includes the sanitizerdim2015-09-10202-3067/+6585
|/ | | | and profile libraries.
* compiler-rt: update __multc3 to upstream style and variable namesemaste2015-08-191-44/+39
| | | | | | | | I introduced a local copy of __multc3 in r281221, which has now been committed upstream to compiler-rt in revision 245296. Update our version to match the changes made there. Sponsored by: The FreeBSD Foundation
* Use __builtin_clzll to count the leading zero bits, the data is based onandrew2015-08-142-2/+2
| | | | | | | long long so __builtin_clz will return an incorrect value. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D3375
* compiler-rt: add floatditf and floatunditfemaste2015-04-072-0/+92
| | | | | | | | | | These are long integer (di_int/du_int) to quad precision floating point conversions. They may be reworked based on upstream discussion. These versions are here to support arm64 world builds. Reviewed by: ed Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D2174
* compiler-rt: Implement multc3 - quad-precision complex multiplicationemaste2015-04-071-0/+73
| | | | | | | | | This may be reworked based on upstream discussion. This version is here to support arm64 world builds. Reviewed by: ed Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D2173
* Pull in r231972 from upstream compiler-rt trunk (by Jörg Sonnenberger):dim2015-03-211-0/+1
| | | | | | | | Always include stddef.h to make sure size_t exists. From Alexander Esilevich. Requested by: andrew
* Import compiler-rt r232125 by Joerg Sonnenbergeremaste2015-03-171-0/+3
| | | | We want single precision here.
* For now, disable the __clear_cache implementation for mips indim2015-03-141-2/+2
| | | | compiler-rt, since we do not yet have the required syscall.
* Merge ^/head r279893 through r279984.dim2015-03-1425-376/+329
|\
| * Pull in r231965 from upstream compiler-rt trunk (by Jörg Sonnenberger):dim2015-03-1425-376/+329
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor float to integer conversion to share the same code. 80bit Intel/PPC long double is excluded due to lacking support for the abstraction. Consistently provide saturation logic. Extend to long double on 128bit IEEE extended platforms. Initial patch with test cases from GuanHong Liu. Reviewed by Steve Canon. Differential Revision: http://reviews.llvm.org/D2804 Pull in r232107 from upstream compiler-rt trunk (by Ed Maste): Use signed int implementation for __fixint Requested by: emaste
* | Update compiler-rt to trunk r230183. This has some of our patchesdim2015-02-2276-773/+1298
| | | | | | | | imported, so we have just a few small diffs against upstream left.
* | Update compiler-rt to trunk r228651. This enables using Addressdim2015-02-22145-3316/+4920
|/ | | | Sanitizer and Undefined Behavior Sanitizer with clang 3.6.0.
* Remove the <netinet/ip_compat.h> include from one of the newly addeddim2015-01-141-1/+0
| | | | | | | sanitizer sources. It is apparently unnecessary, and causes trouble for people using WITHOUT_IPFILTER. Reported by: Pawel Biernacki <pawel.biernacki@gmail.com>, Kurt Lidl <lidl@pix.net>
* Pull in r225610 from upstream compiler-rt trunk (by Roman Divacky):dim2015-01-121-1/+6
| | | | Add FreeBSD support for __clear_cache.
* Update compiler-rt to trunk r224034. This brings a number of newdim2015-01-08650-1757/+97732
| | | | | builtins, and also the various sanitizers. Support for these will be added in a later commit.
* Mark __fixdfdi/__aeabi_d2lz with COMPILER_RT_ABI so it uses the correctandrew2014-04-061-1/+1
| | | | calling convention for __aeabi_* functions.
* Pull in r201909 from upstream compiler-rt trunk (by Joerg Sonnenberger):dim2014-02-2236-73/+77
| | | | | | | Introduce CRT_HAS_128BIT, currently for all __LP64__ platforms. Use it to enable the various functions for TI mode. This makes sure the correct primitives are also built for sparc64.
* Don't use the pcs attribute on compilers that don't support it. We canandrew2013-01-191-1/+9
| | | | revert this when we stop supporting old versions of gcc.
* Add a newline at the end of the file to stop gcc from complainingandrew2013-01-191-1/+2
|
* Import compiler-rt r172839.andrew2013-01-187-5/+64
| | | | | This brings in __aeabi_lcmp and __aeabi_ulcmp. It also fixes the spelling of __aeabi_f2lz. Both changes originated on the arm_eabi project branch.
* Import compiler-rt r160957.andrew2012-08-0887-124/+665
| | | | | | This is mostly a no-op other than for ARM where it adds missing __aeabi_mem* and __aeabi_*divmod functions. Even on ARM these will remain unused until the rest of the ARM EABI code is merged.
* Regenerate after r235388.marius2012-05-132-30/+24
|
* - Get rid of debugging support in order to get rid of the V8-specific Cmarius2012-05-131-20/+18
| | | | | | | | | | | compiler frame size used there so this whole thing is V8/V9-agnostic. - Use 32-bit function alignment as GCC does when using UltraSPARC I or higher optimizations. - Don't waste delay slots when possible. Unfortunately, this still doesn't make libcompiler_rt a viable replacement for libgcc on sparc64 though as once installed instead, buildworld times increase by nearly 60% (which isn't related to these assembler functions).
* Add SPARC64 version of div/mod written in assembly.ed2012-01-126-0/+924
| | | | | | | | This version is similar to the code shipped with libgcc. It is based on the code from the SPARC64 architecture manual, provided without any restrictions. Tested by: flo@
* Add a workaround to prevent endless recursion in compiler-rt.ed2012-01-121-0/+20
| | | | | | | | | | | | | | | SPARC and MIPS CPUs don't have special instructions to count leading/trailing zeroes. The compiler-rt library provides fallback rountines for these. The 64-bit routines, __clzdi2 and __ctzdi2, are implemented as simple wrappers around the compiler built-in __builtin_clz(), assuming these will expand to either 32-bit CPU instructions or calls to __clzsi2 and __ctzsi2. Unfortunately, our GCC 4.2 probably thinks that because the operand is stored in a 64-bit register, it might just be a better idea to invoke its 64-bit equivalent, simply resulting into endless recursion. Fix this by defining __builtin_clz and __builtin_ctz to __clzsi2 and __ctzsi2 explicitly.
* Import compiler-rt r147467.ed2012-01-032-3/+3
| | | | | The compiler-rt shipped with FreeBSD is now based on unmodified upstream sources.
* Upgrade libcompiler_rt to upstream revision 147390.ed2011-12-31149-897/+882
| | | | | | | | | This version of libcompiler_rt adds support for __mulo[sdt]i4(), which computes a multiply and its overflow flag. There are also a lot of cleanup fixes to headers that don't really affect us. Updating to this revision should make it a bit easier to contribute changes back to the LLVM developers.
* Upgrade libcompiler_rt from revision 117047 to 132478.ed2011-06-03201-536/+1346
| | | | | | | | | | | | | | | | | | | | | | It seems there have only been a small amount to the compiler-rt source code in the mean time. I'd rather have the code in sync as much as possible by the time we release 9.0. Changes: - The libcompiler_rt library is now dual licensed under both the University of Illinois "BSD-Like" license and the MIT license. - Our local modifications for using .hidden instead of .private_extern have been upstreamed, meaning our changes to lib/assembly.h can now be reverted. - A possible endless recursion in __modsi3() has been fixed. - Support for ARM EABI has been added, but it has no effect on FreeBSD (yet). - The functions __udivmodsi4 and __divmodsi4 have been added. Requested by: many, including bf@ and Pedro Giffuni
* Set symbol visibility to hidden.ed2010-11-111-3/+3
| | | | | | | Not doing so may cause all sorts of random libraries to expose libcompiler_rt's functions, which should of course not be done. Discussed with: kan, kib
* Import libcompiler_rt into HEAD and add Makefiles.ed2010-11-11207-0/+12384
Obtained from: user/ed/compiler-rt
OpenPOWER on IntegriCloud