zig/std/special/compiler_rt
Andrew Kelley ade10387a5
breaking changes to the way targets work in zig
* CLI: `-target [name]` instead of `--target-*` args.
   This matches clang's API.
 * `builtin.Environ` renamed to `builtin.Abi`
   - likewise `builtin.environ` renamed to `builtin.abi`
 * stop hiding the concept of sub-arch. closes #1526
 * `zig targets` only shows available targets. closes #438
 * include all targets in readme, even those that don't
   print with `zig targets` but note they are Tier 4
 * refactor target.cpp and make the naming conventions
   more consistent
 * introduce the concept of a "default C ABI" for a given
   OS/Arch combo. As a rule of thumb, if the system compiler
   is clang or gcc then the default C ABI is the gnu ABI.
2019-02-26 15:58:10 -05:00
..
addXf3_test.zig Use official llvm mirror for compiler-rt commit ref 2019-02-15 17:37:55 +13:00
addXf3.zig Use official llvm mirror for compiler-rt commit ref 2019-02-15 17:37:55 +13:00
aulldiv.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
aullrem.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
comparetf2.zig Clean up outstanding compiler_rt todos 2018-07-03 13:22:12 +12:00
divti3_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
divti3.zig remove integer and float casting syntax 2018-06-17 02:57:07 -04:00
extendXfYf2_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
extendXfYf2.zig add f16 type 2018-06-27 16:20:04 +02:00
fixdfdi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixdfdi.zig Add add compiler_rt routines for float to signed integer conversion 2018-12-12 00:21:42 -05:00
fixdfsi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixdfsi.zig Add add compiler_rt routines for float to signed integer conversion 2018-12-12 00:21:42 -05:00
fixdfti_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixdfti.zig Add add compiler_rt routines for float to signed integer conversion 2018-12-12 00:21:42 -05:00
fixint_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixint.zig Add add compiler_rt routines for float to signed integer conversion 2018-12-12 00:21:42 -05:00
fixsfdi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixsfdi.zig Add add compiler_rt routines for float to signed integer conversion 2018-12-12 00:21:42 -05:00
fixsfsi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixsfsi.zig Add add compiler_rt routines for float to signed integer conversion 2018-12-12 00:21:42 -05:00
fixsfti_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixsfti.zig Add add compiler_rt routines for float to signed integer conversion 2018-12-12 00:21:42 -05:00
fixtfdi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixtfdi.zig Add add compiler_rt routines for float to signed integer conversion 2018-12-12 00:21:42 -05:00
fixtfsi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixtfsi.zig Add add compiler_rt routines for float to signed integer conversion 2018-12-12 00:21:42 -05:00
fixtfti_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixtfti.zig Add add compiler_rt routines for float to signed integer conversion 2018-12-12 00:21:42 -05:00
fixuint.zig Clean up outstanding compiler_rt todos 2018-07-03 13:22:12 +12:00
fixunsdfdi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixunsdfdi.zig behavior tests passing with new pointer deref syntax 2018-05-01 01:53:04 -04:00
fixunsdfsi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixunsdfsi.zig behavior tests passing with new pointer deref syntax 2018-05-01 01:53:04 -04:00
fixunsdfti_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixunsdfti.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunssfdi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixunssfdi.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunssfsi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixunssfsi.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunssfti_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixunssfti.zig behavior tests passing with new pointer deref syntax 2018-05-01 01:53:04 -04:00
fixunstfdi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixunstfdi.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunstfsi_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixunstfsi.zig syntax: functions require return type. remove -> 2018-01-25 04:10:11 -05:00
fixunstfti_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
fixunstfti.zig behavior tests passing with new pointer deref syntax 2018-05-01 01:53:04 -04:00
floattidf_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
floattidf.zig remove @minValue,@maxValue; add std.math.minInt,maxInt 2018-10-26 15:01:51 -04:00
floattisf_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
floattisf.zig remove @minValue,@maxValue; add std.math.minInt,maxInt 2018-10-26 15:01:51 -04:00
floattitf_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
floattitf.zig remove @minValue,@maxValue; add std.math.minInt,maxInt 2018-10-26 15:01:51 -04:00
floatunditf_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
floatunditf.zig Alignment fix and allow rudimentary f128 float printing 2018-06-30 21:58:59 +12:00
floatunsitf_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
floatunsitf.zig Clean up outstanding compiler_rt todos 2018-07-03 13:22:12 +12:00
floatuntidf_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
floatuntidf.zig remove @minValue,@maxValue; add std.math.minInt,maxInt 2018-10-26 15:01:51 -04:00
floatuntisf_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
floatuntisf.zig remove @minValue,@maxValue; add std.math.minInt,maxInt 2018-10-26 15:01:51 -04:00
floatuntitf_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
floatuntitf.zig remove @minValue,@maxValue; add std.math.minInt,maxInt 2018-10-26 15:01:51 -04:00
index.zig breaking changes to the way targets work in zig 2019-02-26 15:58:10 -05:00
muloti4_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
muloti4.zig Add windows x86_64 i128 abi workaround 2018-06-14 21:18:36 +12:00
multi3_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
multi3.zig New Zig formal grammar (#1685) 2018-11-13 05:08:37 -08:00
README.md add compiler-rt fns: udivmodti4, udivti3, umodti3 2017-08-18 16:26:09 -04:00
truncXfYf2_test.zig compiler-rt: Add __addtf3, __subtf3 and __truncdfhf2 2019-02-13 23:24:52 +13:00
truncXfYf2.zig compiler-rt: Add __addtf3, __subtf3 and __truncdfhf2 2019-02-13 23:24:52 +13:00
udivmod.zig remove integer and float casting syntax 2018-06-17 02:57:07 -04:00
udivmoddi4_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
udivmoddi4.zig use * for pointer type instead of & 2018-05-31 17:28:07 -04:00
udivmodti4_test.zig std.debug.assert: remove special case for test builds 2019-02-08 18:23:38 -05:00
udivmodti4.zig use * for pointer type instead of & 2018-05-31 17:28:07 -04:00
udivti3.zig use * for pointer type instead of & 2018-05-31 17:28:07 -04:00
umodti3.zig use * for pointer type instead of & 2018-05-31 17:28:07 -04: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.