zig/std/special/compiler_rt
Andrew Kelley 1b5d61bee9 fix bitCast for big integers
and make bigfloat use __float128
2017-08-17 22:52:12 -04:00
..
README.md fix bitCast for big integers 2017-08-17 22:52:12 -04:00
comparetf2.zig fix big integer shifting by large number 2017-08-17 22:01:19 -04:00
fixuint.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunsdfdi.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunsdfdi_test.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunsdfsi.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunsdfsi_test.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunsdfti.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunsdfti_test.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunssfdi.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunssfdi_test.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunssfsi.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunssfsi_test.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunssfti.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunssfti_test.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunstfdi.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunstfdi_test.zig add compiler_rt functions for f128 2017-08-17 19:10:15 -04:00
fixunstfsi.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
fixunstfsi_test.zig fix bitCast for big integers 2017-08-17 22:52:12 -04:00
fixunstfti.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
index.zig add compiler_rt functions for f128 2017-08-17 19:10:15 -04:00
udivti3.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00
umodti3.zig compiler_rt implementations for __fixuns* functions 2017-08-16 19:07:35 -04:00

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.