1b5d61bee9
and make bigfloat use __float128 |
||
---|---|---|
.. | ||
README.md | ||
comparetf2.zig | ||
fixuint.zig | ||
fixunsdfdi.zig | ||
fixunsdfdi_test.zig | ||
fixunsdfsi.zig | ||
fixunsdfsi_test.zig | ||
fixunsdfti.zig | ||
fixunsdfti_test.zig | ||
fixunssfdi.zig | ||
fixunssfdi_test.zig | ||
fixunssfsi.zig | ||
fixunssfsi_test.zig | ||
fixunssfti.zig | ||
fixunssfti_test.zig | ||
fixunstfdi.zig | ||
fixunstfdi_test.zig | ||
fixunstfsi.zig | ||
fixunstfsi_test.zig | ||
fixunstfti.zig | ||
index.zig | ||
udivti3.zig | ||
umodti3.zig |
README.md
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.
To test Zig's compiler-rt, run this command from the build directory:
make install && ./zig test ../std/special/compiler_rt/index.zig --library c
The --library c
argument omits compiler-rt from the generated test program,
which prevents duplicate symbol linker errors for all the compiler-rt builtins.