Zig 0.17.0-dev (Split by item)

This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig library itself.

fixLastLimb

limb64.fixLastLimb
fn fixLastLimb(out_ptr: [*]u64, is_signed: bool, bits: u16) void

File

lib/compiler_rt/limb64.zig:53

Code

fn fixLastLimb(out_ptr: [*]u64, is_signed: bool, bits: u16) void {
    const limb_cnt = usedLimbCount(bits);
    const true_limb_cnt = limbCount(bits);
    if (limb_cnt == true_limb_cnt) return;
    const true_out = out_ptr[0..true_limb_cnt];

    const ms = limbGet(true_out, limb_cnt - 1);
    const sign: u64 = if (!is_signed or @as(i64, @bitCast(ms)) >= 0) 0 else ~@as(u64, 0);
    for (limb_cnt..true_limb_cnt) |i| {
        limbSet(true_out, i, sign);
    }
}