aboutsummaryrefslogtreecommitdiff
path: root/lib/compiler_rt
AgeCommit message (Collapse)Author
2022-08-24Merge pull request #12574 from Vexu/remove-bit-op-type-paramAndrew Kelley
stage2+stage1: remove type parameter from bit builtins
2022-08-23skip failing compiler-rt divxf3 tests on WindowsJakub Konka
2022-08-22stage2+stage1: remove type parameter from bit builtinsVeikka Tuominen
Closes #12529 Closes #12511 Closes #6835
2022-07-23stage2: implement `@setFloatMode`Veikka Tuominen
2022-07-13LLVM: implement signext/zeroext attributesAndrew Kelley
For calling convention ABI purposes, integer attributes and return values need to have an LLVM attribute signext or zeroext added sometimes. This commit implements that logic. It also implements a proof-of-concept of moving the F16T type from being a compiler_rt hack to being how the compiler lowers f16 in functions that need to match certain calling conventions. Closes #12054
2022-07-11Sema: allow `void` as an extern union field & fix invalid extern unionsVeikka Tuominen
2022-07-10compiler_rt: Slightly re-factor exports for Windows x86-64Cody Tapscott
This is just a cosmetic change. The goal is to keep the export logic relatively flat and centralized.
2022-07-10compiler_rt: Update Windows ABI for float<->int conversion routinesCody Tapscott
Starting with LLVM 14, the Libcalls to these functions are now lowered using a Vec(2, u64) instead of the standard ABI for i128 integers, so our compiler-rt implementation needs to be updated to expose the same ABI on Windows.
2022-07-07compiler_rt: enable __clear_cache for stage2Andrew Kelley
2022-07-06compiler_rt: RISC-V does not want gnu_f16_abiAndrew Kelley
2022-07-05compiler_rt: work around LLVM optimizing __muloti4 to call itselfAndrew Kelley
This is a workaround for https://github.com/llvm/llvm-project/issues/56403
2022-06-30stage2: lower float negation explicitlyAndrew Kelley
Rather than lowering float negation as `0.0 - x`. * Add AIR instruction for float negation. * Add compiler-rt functions for f128, f80 negation closes #11853
2022-06-19compiler-rt: fix logic for choosing `__gnu_{f2h,h2f}_ieee`Jakub Konka
Similar to wasm32-wasi-musl, Apple targets also want standard symbol names.
2022-06-17compiler-rt: fix logic for choosing `__gnu_{f2h,h2f}_ieee`Andrew Kelley
wasm32-wasi-musl wants the standard symbol names however Linux requires the `__gnu_*` flavors. I did not find any authoritative source on what decides which symbol flavors to use. If we run into more trouble in the future we can go back to having both.
2022-06-17compiler-rt: fix aeabi logicAndrew Kelley
Before, compiler-rt would have the wrong symbols for ARM targets.
2022-06-17compiler-rt: finish cleanupsAndrew Kelley
Finishes cleanups that I started in other commits in this branch. * Use common.linkage for all exports instead of redoing the logic in each file. * Remove pointless `@setRuntimeSafety` calls. * Avoid redundantly exporting multiple versions of functions. For example, if PPC wants `ceilf128` then don't also export `ceilq`; similarly if ARM wants `__aeabi_ddiv` then don't also export `__divdf3`. * Use `inline` for helper functions instead of making inline calls at callsites.
2022-06-17compiler-rt: musl ABI also needs __gnu_f2h_ieee etcAndrew Kelley
2022-06-17compiler-rt: gedf2 and gesf2Andrew Kelley
2022-06-17compiler-rt: fix testsAndrew Kelley
2022-06-17compiler-rt: use callconv(.AAPCS) on all __aeabi_ functionsAndrew Kelley
2022-06-17compiler-rt: move SPARC functions into appropriate compilation unitsAndrew Kelley
2022-06-17compiler-rt: break up functions even moreAndrew Kelley
The purpose of this branch is to switch to using an object file for each independent function, in order to make linking simpler - instead of relying on `-ffunction-sections` and `--gc-sections`, which involves the linker doing the work of linking everything and then undoing work via garbage collection, this will allow the linker to only include the compilation units that are depended on in the first place. This commit makes progress towards that goal.
2022-06-17compiler_rt: correctly export allrem and aullrem for i386-windows-msvcJakub Konka
2022-06-17compiler_rt: use single cache for libcompiler_rt.a static libJakub Konka
2022-06-17compiler_rt: compile each unit separately for improved archivingJakub Konka
2022-06-03compiler_rt: fix infinite loopVeikka Tuominen
2022-05-17Simplify `Copysign`alice
2022-05-13target: Rename sparcv9 -> sparc64Koakuma
Rename all references of sparcv9 to sparc64, to make Zig align more with other projects. Also, added new function to convert glibc arch name to Zig arch name, since it refers to the architecture as sparcv9. This is based on the suggestion by @kubkon in PR 11847. (https://github.com/ziglang/zig/pull/11487#pullrequestreview-963761757)
2022-05-08compiler_rt: avoid weak aliases on WindowsAndrew Kelley
When exporting math functions for Windows, we provide weak exports of 'l' variants rather than weak aliases. We still use aliases on other operating systems so that the 'l' variants have one less jump instruction in this case.
2022-05-06flatten lib/std/special and improve "pkg inside another" logicAndrew Kelley
stage2: change logic for detecting whether the main package is inside the std package. Previously it relied on realpath() which is not portable. This uses resolve() which is how imports already work. * stage2: fix cleanup bug when creating Module * flatten lib/std/special/* to lib/* - this was motivated by making main_pkg_is_inside_std false for compiler_rt & friends. * rename "mini libc" to "universal libc"