| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
the non-executable stack.
Reviewed by: andrew
Sponsored by: The FreeBSD Foundation
|
|/
|
|
| |
and profile libraries.
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
long long so __builtin_clz will return an incorrect value.
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D3375
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
Always include stddef.h to make sure size_t exists.
From Alexander Esilevich.
Requested by: andrew
|
|
|
|
| |
We want single precision here.
|
|
|
|
| |
compiler-rt, since we do not yet have the required syscall.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
imported, so we have just a few small diffs against upstream left.
|
|/
|
|
| |
Sanitizer and Undefined Behavior Sanitizer with clang 3.6.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>
|
|
|
|
| |
Add FreeBSD support for __clear_cache.
|
|
|
|
|
| |
builtins, and also the various sanitizers. Support for these will be
added in a later commit.
|
|
|
|
| |
calling convention for __aeabi_* functions.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
revert this when we stop supporting old versions of gcc.
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The compiler-rt shipped with FreeBSD is now based on unmodified upstream
sources.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
Obtained from: user/ed/compiler-rt
|