umodti3.zig (846B) - Raw
1 const std = @import("std"); 2 const builtin = @import("builtin"); 3 const udivmod = @import("udivmod.zig").udivmod; 4 const common = @import("common.zig"); 5 6 pub const panic = common.panic; 7 8 comptime { 9 if (common.want_windows_v2u64_abi) { 10 @export(&__umodti3_windows_x86_64, .{ .name = "__umodti3", .linkage = common.linkage, .visibility = common.visibility }); 11 } else { 12 @export(&__umodti3, .{ .name = "__umodti3", .linkage = common.linkage, .visibility = common.visibility }); 13 } 14 } 15 16 pub fn __umodti3(a: u128, b: u128) callconv(.c) u128 { 17 var r: u128 = undefined; 18 _ = udivmod(u128, a, b, &r); 19 return r; 20 } 21 22 const v2u64 = @Vector(2, u64); 23 24 fn __umodti3_windows_x86_64(a: v2u64, b: v2u64) callconv(.c) v2u64 { 25 var r: u128 = undefined; 26 _ = udivmod(u128, @bitCast(a), @bitCast(b), &r); 27 return @bitCast(r); 28 }