zig/lib/std/special/compiler_rt
Andrew Kelley d9d8c42426
remove unnecessary `inline`
works around a bug triggered by previous commit
2020-03-31 11:18:11 -04:00
..
README.md mv std/ lib/ 2019-09-25 23:35:41 -04:00
addXf3.zig remove uses of `@ArgType` and `@IntType` 2020-02-24 23:39:03 +02:00
addXf3_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
arm.zig Minor changes to the ARM builtin fns 2020-01-16 12:50:53 -05:00
ashldi3_test.zig compiler-rt: Implement all the shift builtins 2020-03-30 10:58:47 -04:00
ashlti3_test.zig compiler-rt: Implement all the shift builtins 2020-03-30 10:58:47 -04:00
ashrdi3_test.zig compiler-rt: Implement all the shift builtins 2020-03-30 10:58:47 -04:00
ashrti3_test.zig compiler-rt: Implement all the shift builtins 2020-03-30 10:58:47 -04: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
clear_cache.zig remove unnecessary `inline` 2020-03-31 11:18:11 -04:00
clzsi2.zig compiler_rt: Fix clzsi2 implementation for Thumb1 2020-02-09 14:12:01 -05:00
clzsi2_test.zig Port clzsi2 from compiler_rt, required for using std.fmt.format on some ARM architecture. 2020-01-17 14:25:22 -05:00
compareXf2.zig remove uses of `@ArgType` and `@IntType` 2020-02-24 23:39:03 +02:00
comparedf2_test.zig Fix some tests broken by the renamed files 2020-01-19 09:31:45 +01:00
comparesf2_test.zig Fix some tests broken by the renamed files 2020-01-19 09:31:45 +01:00
divdf3.zig compiler-rt: Add __divtf3 2020-03-24 18:08:53 +01:00
divdf3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
divsf3.zig remove uses of `@ArgType` and `@IntType` 2020-02-24 23:39:03 +02:00
divsf3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
divtf3.zig compiler-rt: Add __divtf3 2020-03-24 18:08:53 +01:00
divtf3_test.zig compiler-rt: Add __divtf3 2020-03-24 18:08:53 +01:00
divti3.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
extendXfYf2.zig remove uses of `@ArgType` and `@IntType` 2020-02-24 23:39:03 +02:00
extendXfYf2_test.zig introduce operating system version ranges as part of the target 2020-02-28 14:51:53 -05:00
fixdfdi.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
fixdfdi_test.zig Fix remaining variadic formatted prints 2020-01-09 13:36:44 -05:00
fixdfsi.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
fixdfsi_test.zig Fix remaining variadic formatted prints 2020-01-09 13:36:44 -05:00
fixdfti.zig zig fmt and update `extern fn` to `callconv(.C)` 2020-01-06 15:34:50 -05:00
fixdfti_test.zig Fix remaining variadic formatted prints 2020-01-09 13:36:44 -05:00
fixint.zig remove uses of `@ArgType` and `@IntType` 2020-02-24 23:39:03 +02:00
fixint_test.zig Fix remaining variadic formatted prints 2020-01-09 13:36:44 -05:00
fixsfdi.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
fixsfdi_test.zig Fix remaining variadic formatted prints 2020-01-09 13:36:44 -05:00
fixsfsi.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
fixsfsi_test.zig Fix remaining variadic formatted prints 2020-01-09 13:36:44 -05:00
fixsfti.zig zig fmt and update `extern fn` to `callconv(.C)` 2020-01-06 15:34:50 -05:00
fixsfti_test.zig Fix remaining variadic formatted prints 2020-01-09 13:36:44 -05:00
fixtfdi.zig zig fmt and update `extern fn` to `callconv(.C)` 2020-01-06 15:34:50 -05:00
fixtfdi_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
fixtfsi.zig zig fmt and update `extern fn` to `callconv(.C)` 2020-01-06 15:34:50 -05:00
fixtfsi_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
fixtfti.zig zig fmt and update `extern fn` to `callconv(.C)` 2020-01-06 15:34:50 -05:00
fixtfti_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
fixuint.zig remove uses of `@ArgType` and `@IntType` 2020-02-24 23:39:03 +02:00
fixunsdfdi.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
fixunsdfdi_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
fixunsdfsi.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
fixunsdfsi_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
fixunsdfti_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
fixunssfdi.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
fixunssfdi_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
fixunssfsi.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
fixunssfsi_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
fixunssfti_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
fixunstfdi_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
fixunstfsi.zig zig fmt and update `extern fn` to `callconv(.C)` 2020-01-06 15:34:50 -05:00
fixunstfsi_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
fixunstfti.zig zig fmt and update `extern fn` to `callconv(.C)` 2020-01-06 15:34:50 -05:00
fixunstfti_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
floatdidf.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
floatdidf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floatsiXf.zig remove uses of `@ArgType` and `@IntType` 2020-02-24 23:39:03 +02:00
floattidf.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
floattisf.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
floattitf.zig zig fmt and update `extern fn` to `callconv(.C)` 2020-01-06 15:34:50 -05:00
floattitf_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
floatundidf.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
floatundidf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
floatundisf.zig allow `_` separators in number literals (stage 1) 2020-03-15 12:38:35 +10:00
floatunditf.zig compiler-rt: Fix __floatunditf 2020-03-27 20:10:59 +01:00
floatunditf_test.zig compiler-rt: Fix __floatunditf 2020-03-27 20:10:59 +01:00
floatunsidf.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
floatunsisf.zig Use the correct calling convention for AEABI intrinsics 2020-01-07 13:42:47 -05:00
floatunsitf.zig zig fmt and update `extern fn` to `callconv(.C)` 2020-01-06 15:34:50 -05:00
floatunsitf_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
floatuntidf_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
floatuntisf_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
floatuntitf_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
int.zig compiler_rt: fix mulsi3 test typo 2020-01-22 20:17:38 -05:00
lshrdi3_test.zig compiler-rt: Implement all the shift builtins 2020-03-30 10:58:47 -04:00
lshrti3_test.zig compiler-rt: Implement all the shift builtins 2020-03-30 10:58:47 -04:00
modti3.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
mulXf3.zig remove uses of `@ArgType` and `@IntType` 2020-02-24 23:39:03 +02:00
mulXf3_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
muldi3.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
mulodi4.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
muloti4.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
multi3.zig short std.builtin enum literals in std lib 2020-03-01 13:57:41 -05:00
multi3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
negXf2.zig remove uses of `@ArgType` and `@IntType` 2020-02-24 23:39:03 +02:00
popcountdi2.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
shift.zig compiler-rt: Implement all the shift builtins 2020-03-30 10:58:47 -04:00
stack_probe.zig Implement the callconv() annotation 2020-01-02 18:53:16 +01:00
truncXfYf2.zig compiler-rt: inline at call site to workaround a bug 2020-02-28 14:51:55 -05:00
truncXfYf2_test.zig update std lib to new Target API 2020-02-28 14:51:54 -05:00
udivmod.zig short std.builtin enum literals in std lib 2020-03-01 13:57:41 -05:00
udivmoddi4_test.zig Fix test case 2020-01-15 18:41:07 +01:00
udivmodti4.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
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

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.