aboutsummaryrefslogtreecommitdiff
path: root/contrib/compiler-rt/lib/builtins
Commit message (Collapse)AuthorAgeFilesLines
* Move all sources from the llvm project into contrib/llvm-project.Dimitry Andric2019-12-20354-24972/+0
| | | | | | | | | | | | | This uses the new layout of the upstream repository, which was recently migrated to GitHub, and converted into a "monorepo". That is, most of the earlier separate sub-projects with their own branches and tags were consolidated into one top-level directory, and are now branched and tagged together. Updating the vendor area to match this layout is next. Notes: svn path=/head/; revision=355940
* Fix llvm-libunwind userspace build on ARMConrad Meyer2019-11-051-1/+16
| | | | | | | | | | | | | | | | | | | | GCC's libgcc exports a few ARM-specific symbols for ARM EABI, AEABI, or EHABI or whatever it's called. Export the same ones from LLVM-libunwind's libgcc_s, on ARM. As part of this, convert libgcc_s from a direct Version.map to one constructed from component Symbol.map files. This allows the ARM-specific Symbol.map to be included only on ARM. Fix ARM-only oddities in struct name/aliases in LLVM-libunwind to match non-ARM definitions and ARM-specific expectations in libcxxrt / libcompiler_rt. No functional change intended for non-ARM architectures. This commit does not actually flip the switch for ARM defaults from libgcc to llvm-libunwind, but makes it possible (to compile, anyway). Notes: svn path=/head/; revision=354347
* Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb, and openmpDimitry Andric2019-09-021-1/+1
| | | | | | | release_90 branch r369369, and update version numbers. Notes: svn path=/projects/clang900-import/; revision=351708
* Merge compiler-rt trunk r366426, resolve conflicts, and addDimitry Andric2019-08-22347-9777/+8639
| | | | | | | FREEBSD-Xlist. Notes: svn path=/projects/clang900-import/; revision=351401
* Merge compiler-rt trunk r351319, and resolve conflicts.Dimitry Andric2019-01-2223-123/+447
| | | | Notes: svn path=/projects/clang800-import/; revision=343311
* Merge compiler-rt trunk r338150, and resolve conflicts.Dimitry Andric2018-08-0239-49/+5609
| | | | Notes: svn path=/projects/clang700-import/; revision=337136
* Do not include float interfaces when using libsa.Warner Losh2018-02-231-0/+4
| | | | | | | | | | We don't support float in the boot loaders, so don't include interfaces for float or double in systems headers. In addition, take the unusual step of spiking double and float to prevent any more accidental seepage. Notes: svn path=/head/; revision=329859
* Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ toDimitry Andric2018-01-241-2/+11
| | | | | | | | | | | 6.0.0 (branches/release_60 r323338). MFC after: 3 months X-MFC-With: r327952 PR: 224669 Notes: svn path=/head/; revision=328381
* Merge compiler-rt trunk r321414 to contrib/compiler-rt.Dimitry Andric2017-12-241-0/+34
| | | | Notes: svn path=/projects/clang600-import/; revision=327138
* Merge compiler-rt trunk r321017 to contrib/compiler-rt.Dimitry Andric2017-12-2065-242/+295
| | | | Notes: svn path=/projects/clang600-import/; revision=327033
* Since this is contrib code, create an upstreamable version of myWarner Losh2017-12-051-1/+5
| | | | | | | | | | | change. Now on FreeBSD and NetBSD if _STANDALONE is defined, we include the kernel version with alloances for the quirky differences between the two. Sponsored by: Netflix Notes: svn path=/head/; revision=326600
* This isn't NetBSD specific code. Include these for any kernel /Warner Losh2017-12-051-2/+2
| | | | | | | | | standalone use. Tweak for FreeBSD's quirky limits.h stuff. Sponsored by: Netflix Notes: svn path=/head/; revision=326591
* Extend the workaround for LLVM bug 11663 to MIPS N32.John Baldwin2017-08-261-2/+3
| | | | | | | | | | | This fixes infinite recursion in /sbin/init for MIPS N32. Submitted by: Robert M. Kovacsics <rmk35@cam.ac.uk> MFC after: 1 week Sponsored by: DARPA / AFRL Notes: svn path=/head/; revision=322915
* Upgrade our copies of clang, llvm, lldb and compiler-rt to r311606 fromDimitry Andric2017-08-242-0/+18
| | | | | | | | | | | | | | the upstream release_50 branch. As of this version, lib/msun's trig test should also work correctly again (see bug 220989 for more information). PR: 220989 MFC after: 2 months X-MFC-with: r321369 Notes: svn path=/head/; revision=322855
* o Replace __riscv__ with __riscvRuslan Bukin2017-08-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o Replace __riscv64 with (__riscv && __riscv_xlen == 64) This is required to support new GCC 7.1 compiler. This is compatible with current GCC 6.1 compiler. RISC-V is extensible ISA and the idea here is to have built-in define per each extension, so together with __riscv we will have some subset of these as well (depending on -march string passed to compiler): __riscv_compressed __riscv_atomic __riscv_mul __riscv_div __riscv_muldiv __riscv_fdiv __riscv_fsqrt __riscv_float_abi_soft __riscv_float_abi_single __riscv_float_abi_double __riscv_cmodel_medlow __riscv_cmodel_medany __riscv_cmodel_pic __riscv_xlen Reviewed by: ngie Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D11901 Notes: svn path=/head/; revision=322168
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and updateDimitry Andric2017-07-191-29/+10
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=321238
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r307894, and updateDimitry Andric2017-07-132-356/+177
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=320970
* Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304149, and updateDimitry Andric2017-05-2920-21/+56
| | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=319164
* Merge ^/head r318560 through r318657.Dimitry Andric2017-05-223-2/+55
|\ | | | | | | Notes: svn path=/projects/clang500-import/; revision=318658
| * [libcompiler-rt] add bswapdi2/bswapsi2Adrian Chadd2017-05-213-2/+55
| | | | | | | | | | | | | | | | | | | | | | This is required for mips gcc 6.3 userland to build/run. Reviewed by: emaste, dim Approved by: emaste Differential Revision: https://reviews.freebsd.org/D10838 Notes: svn path=/head/; revision=318601
* | Merge llvm, clang, lld, lldb, compiler-rt and libc++ r303291, and updateDimitry Andric2017-05-181-1/+1
| | | | | | | | | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=318477
* | Merge llvm, clang, lld, lldb, compiler-rt and libc++ r303197, and updateDimitry Andric2017-05-1646-92/+307
| | | | | | | | | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=318384
* | Merge llvm, clang, lld, lldb, compiler-rt and libc++ r302418, and updateDimitry Andric2017-05-082-4/+2
| | | | | | | | | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=317969
* | Merge llvm, clang, lld, lldb, compiler-rt and libc++ r301441, and updateDimitry Andric2017-04-261-60/+234
| | | | | | | | | | | | | | build glue. Notes: svn path=/projects/clang500-import/; revision=317472
* | Merge compiler-rt trunk r300890, and update build glue.Dimitry Andric2017-04-2218-69/+610
|/ | | | Notes: svn path=/projects/clang500-import/; revision=317285
* Add an implementation of __ffssi2() derived from __ffsdi2().John Baldwin2017-04-052-0/+30
| | | | | | | | | | | | | Newer versions of GCC include an __ffssi2() symbol in libgcc and the compiler can emit calls to it in generated code. This is true for at least GCC 6.2 when compiling world for mips and mips64. Reviewed by: jmallett, dim Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D10086 Notes: svn path=/head/; revision=316511
* Revert r314907, and pull in r298713 from upstream compiler-rt trunk (byDimitry Andric2017-03-2614-67/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Weiming Zhao): builtins: Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA. Summary: Value of __ARM_ARCH_ISA_THUMB isn't based on the actual compilation mode (-mthumb, -marm), it reflect's capability of given CPU. Due to this: - use __tbumb__ and __thumb2__ insteand of __ARM_ARCH_ISA_THUMB - use '.thumb' directive consistently in all affected files - decorate all thumb functions using DEFINE_COMPILERRT_THUMB_FUNCTION() --------- Note: This patch doesn't fix broken Thumb1 variant of __udivsi3 ! Reviewers: weimingz, rengolin, compnerd Subscribers: aemerson, dim Differential Revision: https://reviews.llvm.org/D30938 Discussed with: mmel X-MFC-With: r314564 Notes: svn path=/head/; revision=316005
* Unbreak ARMv6 world.Michal Meloun2017-03-081-0/+3
| | | | | | | | | | The new compiler_rt library imported with clang 4.0.0 have several fatal issues (non-functional __udivsi3 for example) with ARM specific instrict functions. As temporary workaround, until upstream solve these problems, disable all thumb[1][2] related feature. Notes: svn path=/head/; revision=314907
* Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branchDimitry Andric2017-02-171-1/+1
| | | | | | | r295380, and update build glue. Notes: svn path=/projects/clang400-import/; revision=313894
* Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branchDimitry Andric2017-01-291-1/+1
| | | | | | | r293443, and update build glue. Notes: svn path=/projects/clang400-import/; revision=312967
* Merge compiler-rt release_40 branch r292009.Dimitry Andric2017-01-1435-7/+181
| | | | Notes: svn path=/projects/clang400-import/; revision=312198
* Merge compiler-rt trunk r291476.Dimitry Andric2017-01-092-9/+121
| | | | Notes: svn path=/projects/clang400-import/; revision=311836
* Merge compiler-rt r291274.Dimitry Andric2017-01-0814-26/+417
| | | | Notes: svn path=/projects/clang400-import/; revision=311697
* Update compiler-rt to release_39 branch r288513. Since this contains aDimitry Andric2016-12-022-0/+66
| | | | | | | | | rather unfortunate upstream workaround for an unwind header problem that does not exist on FreeBSD, but which causes an unnecessary warning for us, add some flags to the compiler-rt Makefile to suppress the warning. Notes: svn path=/projects/clang391-import/; revision=309441
* Update compiler-rt to 3.9.0 release, and update the build glue forDimitry Andric2016-09-03113-62/+1195
| | | | | | | libcompiler_rt and libclang_rt. Notes: svn path=/projects/clang390-import/; revision=305364
* Merge compiler-rt release_38 branch r258968.Dimitry Andric2016-02-0660-171/+950
| | | | | | | | Note that there is still a problem on amd64, causing SIGBUS in the early startup of Address Sanitizer. This is being investigated. Notes: svn path=/projects/clang380-import/; revision=295349
* Add support for RISC-V ISA.Ruslan Bukin2016-01-221-3/+5
| | | | | | | | | | Reviewed by: emaste Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D5021 Notes: svn path=/head/; revision=294577
* Merge ^/head r288197 through r288456.Dimitry Andric2015-10-014-0/+7
|\ | | | | | | Notes: svn path=/projects/clang370-import/; revision=288457
| * Annotate arm userspace assembler sources stating their tolerance toKonstantin Belousov2015-09-294-0/+7
| | | | | | | | | | | | | | | | | | | | the non-executable stack. Reviewed by: andrew Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=288373
* | Update compiler-rt to 3.7.0 release. This also includes the sanitizerDimitry Andric2015-09-1024-28/+424
|/ | | | | | | and profile libraries. Notes: svn path=/projects/clang370-import/; revision=287626
* compiler-rt: update __multc3 to upstream style and variable namesEd Maste2015-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 Notes: svn path=/head/; revision=286946
* Use __builtin_clzll to count the leading zero bits, the data is based onAndrew Turner2015-08-142-2/+2
| | | | | | | | | | long long so __builtin_clz will return an incorrect value. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D3375 Notes: svn path=/head/; revision=286779
* compiler-rt: add floatditf and floatunditfEd Maste2015-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 Notes: svn path=/head/; revision=281223
* compiler-rt: Implement multc3 - quad-precision complex multiplicationEd Maste2015-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 Notes: svn path=/head/; revision=281221
* Pull in r231972 from upstream compiler-rt trunk (by Jörg Sonnenberger):Dimitry Andric2015-03-211-0/+1
| | | | | | | | | | | Always include stddef.h to make sure size_t exists. From Alexander Esilevich. Requested by: andrew Notes: svn path=/head/; revision=280333
* Import compiler-rt r232125 by Joerg SonnenbergerEd Maste2015-03-171-0/+3
| | | | | | | We want single precision here. Notes: svn path=/head/; revision=280181
* For now, disable the __clear_cache implementation for mips inDimitry Andric2015-03-141-2/+2
| | | | | | | compiler-rt, since we do not yet have the required syscall. Notes: svn path=/projects/clang360-import/; revision=279998
* Merge ^/head r279893 through r279984.Dimitry Andric2015-03-1425-376/+329
|\ | | | | | | Notes: svn path=/projects/clang360-import/; revision=279985
| * Pull in r231965 from upstream compiler-rt trunk (by Jörg Sonnenberger):Dimitry Andric2015-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 Notes: svn path=/head/; revision=279981
* | Update compiler-rt to trunk r230183. This has some of our patchesDimitry Andric2015-02-221-4/+4
| | | | | | | | | | | | | | imported, so we have just a few small diffs against upstream left. Notes: svn path=/projects/clang360-import/; revision=279194