aboutsummaryrefslogtreecommitdiff
path: root/lib/compiler_rt/arm.zig
AgeCommit message (Collapse)Author
2025-09-11compiler-rt: export __aeabi_read_tp for arm-freebsdAlex Rønne Petersen
FreeBSD normally provides this symbol in libc, but it's in the FBSDprivate_1.0 namespace, so it doesn't get included in our abilists file. Fortunately, the implementation is identical for Linux and FreeBSD, so we can just provide it in compiler-rt. It's interesting to note that the same is not true for NetBSD where the implementation is more complex to support older Arm versions. But we do include the symbol in our abilists file for NetBSD libc, so that's fine. closes #25215
2025-07-16zig fmtAndrew Kelley
2025-03-05Remove uses of deprecated callconv aliasesLinus Groh
2025-01-25compiler-rt: Pass called functions into inline asm so the compiler sees the ↵Alex Rønne Petersen
usage.
2025-01-25compiler-rt: More accurately export Windows Arm functions.Alex Rønne Petersen
2024-12-13compiler-rt: Disable __aeabi_drsub test on armeb.Alex Rønne Petersen
https://github.com/ziglang/zig/issues/22061
2024-11-03std.Target: Replace isARM() with isArmOrThumb() and rename it to isArm().Alex Rønne Petersen
The old isARM() function was a portability trap. With the name it had, it seemed like the obviously correct function to use, but it didn't include Thumb. In the vast majority of cases where someone wants to ask "is the target Arm?", Thumb *should* be included. There are exactly 3 cases in the codebase where we do actually need to exclude Thumb, although one of those is in Aro and mirrors a check in Clang that is itself likely a bug. These rare cases can just add an extra isThumb() check.
2024-08-28compiler_rt: Export arm div helpers with correct names for thumb-linux-gnu.Alex Rønne Petersen
2024-08-27lib,test,tools,doc: update usages of @exportmlugg
2023-10-21compiler_rt: arm frsub, drsub with tests (#17629)matu3ba
Tests with +-0, numbers with accuracy 0.001, 0.000001, +-max for inf.
2023-07-31std: finish cleanup up asmJacob Young
This also required implementing the necessary syntax in the x86_64 backend.
2023-07-24Use builtin inference over @as where possibleZachary Raineri
2023-06-24all: migrate code to new cast builtin syntaxmlugg
Most of this migration was performed automatically with `zig fmt`. There were a few exceptions which I had to manually fix: * `@alignCast` and `@addrSpaceCast` cannot be automatically rewritten * `@truncate`'s fixup is incorrect for vectors * Test cases are not formatted, and their error locations change
2023-05-11compiler_rt: fix ARM memset signaturesfrmdstryr
2023-04-26compiler_rt: document ARM statusJan Philipp Hafer
This commit documents the status of Run-time ABI 2022Q3 for ARM excluding C++ helper functions.
2022-12-28compiler-rt: Set the symbol visibilityLuuk de Gram
When we're compiling compiler_rt for any WebAssembly target, we do not want to expose all the compiler-rt functions to the host runtime. By setting the visibility of all exports to `hidden`, we allow the linker to resolve the symbols during linktime, while not expose the functions to the host runtime. This also means the linker can properly garbage collect any compiler-rt function that does not get resolved. The symbol visibility for all target remains the same as before: `default`.
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: use callconv(.AAPCS) on all __aeabi_ functionsAndrew Kelley
2022-06-17compiler_rt: compile each unit separately for improved archivingJakub Konka
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"