authorgravatar for paul.verigo@gmail.comPavel Verigo <paul.verigo@gmail.com> 2026-08-16 11:02:12+02:00
committergravatar for paul.verigo@gmail.comPavel Verigo <paul.verigo@gmail.com> 2026-08-23 03:57:05+02:00
log7def86c2f2a721815bd232b8d4fba7b6682345ae
tree2a36f68b448b7a4a5c79a25c4bca24964449c65f
parent069a009fbc6e34cc5a14cea037a2129cf4642434

compiler-rt: add @disableIntrinsics to memset


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

lib/compiler_rt.zig+8
......@@ -602,6 +602,8 @@ inline fn negXi2(comptime T: type, a: T) T {
602602}
603603
604604fn memsetSmallPowerOf2(d: [*]u8, b: u8, comptime size: usize) void {
605 @disableIntrinsics();
606
605607 if (size > @sizeOf(usize)) {
606608 d[0..size].* = @splat(b);
607609 } else {
......@@ -619,6 +621,8 @@ fn shortMemset(
619621 b: u8,
620622 len: usize,
621623) void {
624 @disableIntrinsics();
625
622626 if (log_min + 1 != log_max) {
623627 const mid = (log_min + log_max) / 2;
624628 if (len > 1 << mid) {
......@@ -635,6 +639,8 @@ fn shortMemset(
635639}
636640
637641fn fastMemset(dest: ?[*]u8, c: c_int, len: usize) callconv(.c) ?[*]u8 {
642 @disableIntrinsics();
643
638644 const b: u8 = @truncate(@as(c_uint, @bitCast(c)));
639645 const n = std.simd.suggestVectorLength(u8) orelse @sizeOf(usize);
640646
......@@ -668,6 +674,8 @@ fn fastMemset(dest: ?[*]u8, c: c_int, len: usize) callconv(.c) ?[*]u8 {
668674}
669675
670676fn smallMemset(dest: ?[*]u8, c: c_int, len: usize) callconv(.c) ?[*]u8 {
677 @disableIntrinsics();
678
671679 const b: u8 = @truncate(@as(c_uint, @bitCast(c)));
672680
673681 if (len != 0) {