zig/lib/std/special/compiler_rt
2020-01-06 19:08:15 -05:00
..
arm Implement the callconv() annotation 2020-01-02 18:53:16 +01:00
addXf3_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
addXf3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
ashlti3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
ashlti3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
ashrti3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
ashrti3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
aulldiv.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
aullrem.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
comparedf2_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
comparedf2.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
comparesf2_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
comparesf2.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
comparetf2.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
divdf3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
divdf3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
divsf3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
divsf3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
divti3_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
divti3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
extendXfYf2_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
extendXfYf2.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixdfdi_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixdfdi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixdfsi_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixdfsi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixdfti_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixdfti.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixint_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixint.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixsfdi_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixsfdi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixsfsi_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixsfsi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixsfti_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixsfti.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixtfdi_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixtfdi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixtfsi_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixtfsi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixtfti_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixtfti.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixuint.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixunsdfdi_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
fixunsdfdi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixunsdfsi_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
fixunsdfsi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixunsdfti_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
fixunsdfti.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixunssfdi_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
fixunssfdi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixunssfsi_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
fixunssfsi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixunssfti_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
fixunssfti.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixunstfdi_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
fixunstfdi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixunstfsi_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixunstfsi.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
fixunstfti_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
fixunstfti.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floatdidf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floatdidf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floatsiXf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floattidf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floattidf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floattisf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floattisf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floattitf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floattitf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floatundidf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floatundidf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floatundisf.zig Add more compiler-rt functions for ARM platform 2020-01-06 19:08:15 -05:00
floatunditf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floatunditf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floatunsidf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floatunsisf.zig Add more compiler-rt functions for ARM platform 2020-01-06 19:08:15 -05:00
floatunsitf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floatunsitf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floatuntidf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floatuntidf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floatuntisf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floatuntisf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floatuntitf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floatuntitf.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
lshrti3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
lshrti3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
modti3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
modti3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
muldi3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
muldi3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
mulodi4_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
mulodi4.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
muloti4_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
muloti4.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
multi3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
multi3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
mulXf3_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
mulXf3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
negXf2.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
popcountdi2_test.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
popcountdi2.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
README.md mv std/ lib/ 2019-09-25 23:35:41 -04:00
stack_probe.zig Implement the callconv() annotation 2020-01-02 18:53:16 +01:00
truncXfYf2_test.zig update tests to new format API 2019-12-09 00:05:21 -05:00
truncXfYf2.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
udivmod.zig update the codebase to use @as 2019-11-08 15:57:24 -05:00
udivmoddi4_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
udivmoddi4.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
udivmodti4_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
udivmodti4.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
udivti3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
umodti3.zig zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05: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.