authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-08-31 01:39:20-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-08-31 01:39:20-04:00
log156a84e80ff68441fcc630b1bfbc3eb7d881b267
tree22beb01aa7934ee6efaafdcf37c806010a948727
parent021155db5b3cdbe524806ed549d96bb56e611a01

compiler-rt: add __aeabi_uldivmod


1 files changed, 17 insertions(+), 0 deletions(-)

std/special/compiler_rt/index.zig+17
......@@ -36,6 +36,23 @@ export fn __umoddi3(a: u64, b: u64) -> u64 {
3636 return r;
3737}
3838
39const AeabiUlDivModResult = extern struct {
40 quot: u64,
41 rem: u64,
42};
43export fn __aeabi_uldivmod(numerator: u64, denominator: u64) -> AeabiUlDivModResult {
44 @setDebugSafety(this, is_test);
45 if (comptime isArmArch()) {
46 @setGlobalLinkage(__aeabi_uldivmod, builtin.GlobalLinkage.LinkOnce);
47 var result: AeabiUlDivModResult = undefined;
48 result.quot = __udivmoddi4(numerator, denominator, &result.rem);
49 return result;
50 }
51
52 @setGlobalLinkage(__aeabi_uldivmod, builtin.GlobalLinkage.Internal);
53 unreachable;
54}
55
3956fn isArmArch() -> bool {
4057 return switch (builtin.arch) {
4158 builtin.Arch.armv8_2a,