| ... | @@ -1418,11 +1418,8 @@ pub const WipNav = struct { | ... | @@ -1418,11 +1418,8 @@ pub const WipNav = struct { |
| 1418 | const limb_index = bit / limb_bits; | 1418 | const limb_index = bit / limb_bits; |
| 1419 | const limb_shift: std.math.Log2Int(std.math.big.Limb) = @intCast(bit % limb_bits); | 1419 | const limb_shift: std.math.Log2Int(std.math.big.Limb) = @intCast(bit % limb_bits); |
| 1420 | const low_abs_part: u7 = @truncate(big_int.limbs[limb_index] >> limb_shift); | 1420 | const low_abs_part: u7 = @truncate(big_int.limbs[limb_index] >> limb_shift); |
| 1421 | const abs_part = if (limb_shift > limb_bits - 7) abs_part: { | 1421 | const abs_part = if (limb_shift > limb_bits - 7 and limb_index + 1 < big_int.limbs.len) abs_part: { |
| 1422 | const next_limb: std.math.big.Limb = if (limb_index + 1 < big_int.limbs.len) | 1422 | const high_abs_part: u7 = @truncate(big_int.limbs[limb_index + 1] << -%limb_shift); |
| 1423 | big_int.limbs[limb_index + 1] | | |
| 1424 | else if (big_int.positive) 0 else std.math.maxInt(std.math.big.Limb); | | |
| 1425 | const high_abs_part: u7 = @truncate(next_limb << -%limb_shift); | | |
| 1426 | break :abs_part high_abs_part | low_abs_part; | 1423 | break :abs_part high_abs_part | low_abs_part; |
| 1427 | } else low_abs_part; | 1424 | } else low_abs_part; |
| 1428 | const twos_comp_part = if (big_int.positive) abs_part else twos_comp_part: { | 1425 | const twos_comp_part = if (big_int.positive) abs_part else twos_comp_part: { |