zig/lib/std/special/compiler_rt
momumi 7aac21c6f5 allow _ separators in number literals (stage 1)
* Underscores `_` may be placed between two digits in a int/float literal
* Consecutive underscores are not allowed
* Fixed parsing bug in exponents of hexadecimal float literals.
  Exponents should always be base 10, but hex characters would be parsed
  inside the exponent and everything after them would be ignored. eg:
  `0x1.0p1ab1` would be parsed as `0x1.0p1`.
2020-03-15 12:38:35 +10: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
ashlti3.zig short std.builtin enum literals in std lib 2020-03-01 13:57:41 -05:00
ashlti3_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04:00
ashrti3.zig short std.builtin enum literals in std lib 2020-03-01 13:57:41 -05:00
ashrti3_test.zig Fix remaining variadic formatted prints 2020-01-09 13:36:44 -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
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
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
compareXf2.zig remove uses of @ArgType and @IntType 2020-02-24 23:39:03 +02:00
divdf3.zig remove uses of @ArgType and @IntType 2020-02-24 23:39:03 +02: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
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 zig fmt and update extern fn to callconv(.C) 2020-01-06 15:34:50 -05:00
floatunditf_test.zig mv std/ lib/ 2019-09-25 23:35:41 -04: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
lshrti3.zig short std.builtin enum literals in std lib 2020-03-01 13:57:41 -05:00
lshrti3_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
modti3_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
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
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
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
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.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

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.