zig/lib/std/special/compiler_rt
Andrew Kelley b6bb0ee1ac Merge remote-tracking branch 'origin/master' into stage2-whole-file-astgen
Conflicts:
 * lib/std/os/linux/tls.zig
 * test/behavior/align.zig
 * test/behavior/atomics.zig
 * test/behavior/vector.zig
2021-05-08 10:53:22 -07:00
..
addXf3.zig Year++ 2020-12-31 15:45:24 -08:00
addXf3_test.zig Year++ 2020-12-31 15:45:24 -08:00
arm.zig zig fmt the std lib 2021-02-24 21:29:23 -07:00
ashldi3_test.zig Year++ 2020-12-31 15:45:24 -08:00
ashlti3_test.zig Year++ 2020-12-31 15:45:24 -08:00
ashrdi3_test.zig Year++ 2020-12-31 15:45:24 -08:00
ashrti3_test.zig Year++ 2020-12-31 15:45:24 -08:00
atomics.zig std: change @import("builtin") to std.builtin 2021-04-15 19:06:39 -07:00
aulldiv.zig Year++ 2020-12-31 15:45:24 -08:00
aullrem.zig Year++ 2020-12-31 15:45:24 -08:00
clear_cache.zig Year++ 2020-12-31 15:45:24 -08:00
clzsi2.zig compiler-rt: Better selection of __clzsi implementation 2021-05-04 18:45:52 +02:00
clzsi2_test.zig compiler-rt: Better selection of __clzsi implementation 2021-05-04 18:45:52 +02:00
comparedf2_test.zig Year++ 2020-12-31 15:45:24 -08:00
comparesf2_test.zig Year++ 2020-12-31 15:45:24 -08:00
compareXf2.zig std: fix compile errors caught by stage2 AstGen 2021-04-22 19:32:57 -07:00
divdf3.zig Year++ 2020-12-31 15:45:24 -08:00
divdf3_test.zig Year++ 2020-12-31 15:45:24 -08:00
divsf3.zig Year++ 2020-12-31 15:45:24 -08:00
divsf3_test.zig Year++ 2020-12-31 15:45:24 -08:00
divtf3.zig Year++ 2020-12-31 15:45:24 -08:00
divtf3_test.zig Year++ 2020-12-31 15:45:24 -08:00
divti3.zig Year++ 2020-12-31 15:45:24 -08:00
divti3_test.zig Year++ 2020-12-31 15:45:24 -08:00
emutls.zig implement emutls in compiler_rt 2021-01-12 05:39:46 +00:00
extendXfYf2.zig compiler-rt: Implement __extendhftf2 2021-04-15 18:21:58 +02:00
extendXfYf2_test.zig compiler-rt: Don't pass f16 around as arguments 2021-04-15 21:52:08 +02:00
fixdfdi.zig Year++ 2020-12-31 15:45:24 -08:00
fixdfdi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixdfsi.zig Year++ 2020-12-31 15:45:24 -08:00
fixdfsi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixdfti.zig Year++ 2020-12-31 15:45:24 -08:00
fixdfti_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixint.zig Year++ 2020-12-31 15:45:24 -08:00
fixint_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixsfdi.zig Year++ 2020-12-31 15:45:24 -08:00
fixsfdi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixsfsi.zig Year++ 2020-12-31 15:45:24 -08:00
fixsfsi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixsfti.zig Year++ 2020-12-31 15:45:24 -08:00
fixsfti_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixtfdi.zig Year++ 2020-12-31 15:45:24 -08:00
fixtfdi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixtfsi.zig Year++ 2020-12-31 15:45:24 -08:00
fixtfsi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixtfti.zig Year++ 2020-12-31 15:45:24 -08:00
fixtfti_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixuint.zig Year++ 2020-12-31 15:45:24 -08:00
fixunsdfdi.zig Year++ 2020-12-31 15:45:24 -08:00
fixunsdfdi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixunsdfsi.zig Year++ 2020-12-31 15:45:24 -08:00
fixunsdfsi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixunsdfti.zig Year++ 2020-12-31 15:45:24 -08:00
fixunsdfti_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixunssfdi.zig Year++ 2020-12-31 15:45:24 -08:00
fixunssfdi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixunssfsi.zig Year++ 2020-12-31 15:45:24 -08:00
fixunssfsi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixunssfti.zig Year++ 2020-12-31 15:45:24 -08:00
fixunssfti_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixunstfdi.zig Year++ 2020-12-31 15:45:24 -08:00
fixunstfdi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixunstfsi.zig Year++ 2020-12-31 15:45:24 -08:00
fixunstfsi_test.zig Year++ 2020-12-31 15:45:24 -08:00
fixunstfti.zig Year++ 2020-12-31 15:45:24 -08:00
fixunstfti_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatdidf.zig Year++ 2020-12-31 15:45:24 -08:00
floatdidf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatdisf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatditf.zig Year++ 2020-12-31 15:45:24 -08:00
floatditf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatsiXf.zig Year++ 2020-12-31 15:45:24 -08:00
floattidf.zig Year++ 2020-12-31 15:45:24 -08:00
floattidf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floattisf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floattitf.zig Year++ 2020-12-31 15:45:24 -08:00
floattitf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatundidf.zig Year++ 2020-12-31 15:45:24 -08:00
floatundidf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatundisf.zig Year++ 2020-12-31 15:45:24 -08:00
floatunditf.zig Year++ 2020-12-31 15:45:24 -08:00
floatunditf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatunsidf.zig Year++ 2020-12-31 15:45:24 -08:00
floatunsisf.zig Year++ 2020-12-31 15:45:24 -08:00
floatunsitf.zig Year++ 2020-12-31 15:45:24 -08:00
floatunsitf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatuntidf.zig Year++ 2020-12-31 15:45:24 -08:00
floatuntidf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatuntisf.zig Year++ 2020-12-31 15:45:24 -08:00
floatuntisf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatuntitf.zig Year++ 2020-12-31 15:45:24 -08:00
floatuntitf_test.zig Year++ 2020-12-31 15:45:24 -08:00
floatXisf.zig Year++ 2020-12-31 15:45:24 -08:00
int.zig Year++ 2020-12-31 15:45:24 -08:00
lshrdi3_test.zig Year++ 2020-12-31 15:45:24 -08:00
lshrti3_test.zig Year++ 2020-12-31 15:45:24 -08:00
modti3.zig Year++ 2020-12-31 15:45:24 -08:00
modti3_test.zig Year++ 2020-12-31 15:45:24 -08:00
muldi3.zig std: change @import("builtin") to std.builtin 2021-04-15 19:06:39 -07:00
muldi3_test.zig Year++ 2020-12-31 15:45:24 -08:00
mulodi4.zig Year++ 2020-12-31 15:45:24 -08:00
mulodi4_test.zig Year++ 2020-12-31 15:45:24 -08:00
muloti4.zig Year++ 2020-12-31 15:45:24 -08:00
muloti4_test.zig Year++ 2020-12-31 15:45:24 -08:00
multi3.zig std: change @import("builtin") to std.builtin 2021-04-15 19:06:39 -07:00
multi3_test.zig Year++ 2020-12-31 15:45:24 -08:00
mulXf3.zig Year++ 2020-12-31 15:45:24 -08:00
mulXf3_test.zig Year++ 2020-12-31 15:45:24 -08:00
negXf2.zig Year++ 2020-12-31 15:45:24 -08:00
popcountdi2.zig Year++ 2020-12-31 15:45:24 -08:00
popcountdi2_test.zig Year++ 2020-12-31 15:45:24 -08:00
README.md
shift.zig std: change @import("builtin") to std.builtin 2021-04-15 19:06:39 -07:00
sparc.zig std: fix compile errors caught by stage2 AstGen 2021-04-22 19:32:57 -07:00
stack_probe.zig std: change @import("builtin") to std.builtin 2021-04-15 19:06:39 -07:00
truncXfYf2.zig compiler-rt: Implement __trunctfhf2 2021-04-15 18:23:09 +02:00
truncXfYf2_test.zig compiler-rt: Implement __trunctfhf2 2021-04-15 18:23:09 +02:00
udivmod.zig std: change @import("builtin") to std.builtin 2021-04-15 19:06:39 -07:00
udivmoddi4_test.zig Year++ 2020-12-31 15:45:24 -08:00
udivmodti4.zig Year++ 2020-12-31 15:45:24 -08:00
udivmodti4_test.zig Year++ 2020-12-31 15:45:24 -08:00
udivti3.zig Year++ 2020-12-31 15:45:24 -08:00
umodti3.zig Year++ 2020-12-31 15:45:24 -08:00

This compiler-rt library is ported from LLVM.

It's needed because LLVM emits library calls to compiler-rt when hardware lacks functionality, for example, 64-bit integer multiplication on 32-bit x86.

This library is automatically built as-needed for the compilation target and then statically linked and therefore is a transparent dependency for the programmer.

Any bugs should be solved by trying to duplicate the bug upstream.

  • If the bug exists upstream, get it fixed with the LLVM team and then port the fix downstream to Zig.
  • If the bug only exists in Zig, something went wrong porting the code, and you can run the C code and Zig code side by side in a debugger to figure out what's happening differently.