From a43fdc1620fa24c8c606f748505766bfd53d1049 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Thu, 8 Dec 2022 19:50:08 -0500 Subject: [PATCH 01/46] cbe: first set of changes for msvc compatibility - Forward declare int builtins, so the definitions aren't assumed incorrectly - Add define to handle MSVC not support static const in function parameter array lengths - Fixup several spots where int128 support was assumed. - Support zig_align - Support zig_export - Stub out some missing non-builtin functions - Added StringLiteral to automatically split string literals when they get to 16380 in size, which is the maxmimum pre-concatenation string literal size on MSVC. --- lib/zig.h | 56 +++++++++++------ src/codegen/c.zig | 152 ++++++++++++++++++++++++++++++++++------------ 2 files changed, 151 insertions(+), 57 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index cea9a0532a..9d763f8936 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -38,6 +38,12 @@ typedef char bool; #define zig_threadlocal zig_threadlocal_unavailable #endif +#if _MSC_VER +#define zig_const_arr +#else +#define zig_const_arr static const +#endif + #if zig_has_attribute(naked) || defined(__GNUC__) #define zig_naked __attribute__((naked)) #elif defined(_MSC_VER) @@ -65,7 +71,7 @@ typedef char bool; #elif zig_has_attribute(aligned) #define zig_align(alignment) __attribute__((aligned(alignment))) #elif _MSC_VER -#define zig_align zig_align_unavailable +#define zig_align(alignment) __declspec(align(alignment)) #else #define zig_align zig_align_unavailable #endif @@ -73,7 +79,8 @@ typedef char bool; #if zig_has_attribute(aligned) #define zig_align_fn(alignment) __attribute__((aligned(alignment))) #elif _MSC_VER -#define zig_align_fn zig_align_fn_unavailable +// TODO: Figure out how to do this under MSVC +#define zig_align_fn(alignment) #else #define zig_align_fn zig_align_fn_unavailable #endif @@ -92,6 +99,9 @@ typedef char bool; #if zig_has_attribute(alias) #define zig_export(sig, symbol, name) zig_extern sig __attribute__((alias(symbol))) +#elif _MSC_VER +#define zig_export(sig, symbol, name) sig;\ + __pragma(comment(linker, "/alternatename:" name "=" symbol )) #else #define zig_export(sig, symbol, name) __asm(name " = " symbol) #endif @@ -1327,13 +1337,15 @@ static inline zig_i128 zig_sub_i128(zig_i128 lhs, zig_i128 rhs) { return res; } -static inline zig_i128 zig_div_floor_i128(zig_i128 lhs, zig_i128 rhs) { - return zig_sub_i128(zig_div_trunc_i128(lhs, rhs), (((lhs.hi ^ rhs.hi) & zig_rem_i128(lhs, rhs).hi) < zig_as_i64(0)) ? zig_as_i128(0, 1) : zig_as_i128(0, 0)); -} +// TODO: Implement +static zig_i128 zig_div_trunc_i128(zig_i128 lhs, zig_i128 rhs); + +// TODO: Implement +static zig_i128 zig_rem_i128(zig_i128 lhs, zig_i128 rhs); static inline zig_i128 zig_mod_i128(zig_i128 lhs, zig_i128 rhs) { zig_i128 rem = zig_rem_i128(lhs, rhs); - return rem + (((lhs.hi ^ rhs.hi) & rem.hi) < zig_as_i64(0) ? rhs : zig_as_i128(0, 0)); + return zig_add_i128(rem, (((lhs.hi ^ rhs.hi) & rem.hi) < zig_as_i64(0) ? rhs : zig_as_i128(0, 0))); } #endif /* zig_has_int128 */ @@ -1358,7 +1370,7 @@ static inline zig_i128 zig_max_i128(zig_i128 lhs, zig_i128 rhs) { } static inline zig_i128 zig_shr_i128(zig_i128 lhs, zig_u8 rhs) { - zig_i128 sign_mask = zig_cmp_i128(lhs, zig_as_i128(0, 0)) < zig_as_i32(0) ? -zig_as_i128(0, 1) : zig_as_i128(0, 0); + zig_i128 sign_mask = zig_cmp_i128(lhs, zig_as_i128(0, 0)) < zig_as_i32(0) ? zig_sub_i128(zig_as_i128(0, 0), zig_as_i128(0, 1)) : zig_as_i128(0, 0); return zig_xor_i128(zig_bitcast_i128(zig_shr_u128(zig_bitcast_u128(zig_xor_i128(lhs, sign_mask)), rhs)), sign_mask); } @@ -1375,7 +1387,7 @@ static inline zig_u128 zig_shlw_u128(zig_u128 lhs, zig_u8 rhs, zig_u8 bits) { } static inline zig_i128 zig_shlw_i128(zig_i128 lhs, zig_u8 rhs, zig_u8 bits) { - return zig_wrap_i128(zig_bitcast_i128(zig_shl_u128(zig_bitcast_u128(lhs), zig_bitcast_u128(rhs))), bits); + return zig_wrap_i128(zig_bitcast_i128(zig_shl_u128(zig_bitcast_u128(lhs), rhs)), bits); } static inline zig_u128 zig_addw_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { @@ -1394,6 +1406,9 @@ static inline zig_i128 zig_subw_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { return zig_wrap_i128(zig_bitcast_i128(zig_sub_u128(zig_bitcast_u128(lhs), zig_bitcast_u128(rhs))), bits); } +// TODO: Implement +static zig_u128 zig_mul_u128(zig_u128 lhs, zig_u128 rhs); + static inline zig_u128 zig_mulw_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { return zig_wrap_u128(zig_mul_u128(lhs, rhs), bits); } @@ -1496,15 +1511,15 @@ static inline bool zig_mulo_i128(zig_i128 *res, zig_i128 lhs, zig_i128 rhs, zig_ #else /* zig_has_int128 */ -static inline bool zig_addo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs) { - return zig_addo_u64(&res->hi, lhs.hi, rhs.hi, UINT64_MAX) | - zig_addo_u64(&res->hi, res->hi, zig_addo_u64(&res->lo, lhs.lo, rhs.lo, UINT64_MAX)); -} +/* static inline bool zig_addo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs) { */ +/* return zig_addo_u64(&res->hi, lhs.hi, rhs.hi, UINT64_MAX) | */ +/* zig_addo_u64(&res->hi, res->hi, zig_addo_u64(&res->lo, lhs.lo, rhs.lo, UINT64_MAX)); */ +/* } */ -static inline bool zig_subo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs) { - return zig_subo_u64(&res->hi, lhs.hi, rhs.hi, UINT64_MAX) | - zig_subo_u64(&res->hi, res->hi, zig_subo_u64(&res->lo, lhs.lo, rhs.lo, UINT64_MAX)); -} +/* static inline bool zig_subo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs) { */ +/* return zig_subo_u64(&res->hi, lhs.hi, rhs.hi, UINT64_MAX) | */ +/* zig_subo_u64(&res->hi, res->hi, zig_subo_u64(&res->lo, lhs.lo, rhs.lo, UINT64_MAX)); */ +/* } */ #endif /* zig_has_int128 */ @@ -1512,7 +1527,12 @@ static inline zig_u128 zig_shls_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { zig_u128 res; if (zig_cmp_u128(rhs, zig_as_u128(0, bits)) >= zig_as_i32(0)) return zig_cmp_u128(lhs, zig_as_u128(0, 0)) != zig_as_i32(0) ? zig_maxInt(u128, bits) : lhs; + +#if zig_has_int128 return zig_shlo_u128(&res, lhs, (zig_u8)rhs, bits) ? zig_maxInt(u128, bits) : res; +#else + return zig_shlo_u128(&res, lhs, (zig_u8)rhs.lo, bits) ? zig_maxInt(u128, bits) : res; +#endif } static inline zig_i128 zig_shls_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { @@ -1593,7 +1613,7 @@ static inline zig_u128 zig_byte_swap_u128(zig_u128 val, zig_u8 bits) { } static inline zig_i128 zig_byte_swap_i128(zig_i128 val, zig_u8 bits) { - return zig_byte_swap_u128(zig_bitcast_u128(val), bits); + return zig_bitcast_i128(zig_byte_swap_u128(zig_bitcast_u128(val), bits)); } static inline zig_u128 zig_bit_reverse_u128(zig_u128 val, zig_u8 bits) { @@ -1603,7 +1623,7 @@ static inline zig_u128 zig_bit_reverse_u128(zig_u128 val, zig_u8 bits) { } static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) { - return zig_bit_reverse_u128(zig_bitcast_u128(val), bits); + return zig_bitcast_i128(zig_bit_reverse_u128(zig_bitcast_u128(val), bits)); } /* ========================= Floating Point Support ========================= */ diff --git a/src/codegen/c.zig b/src/codegen/c.zig index fe6e245716..fd4a46b5e5 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -848,12 +848,13 @@ pub const DeclGen = struct { const ai = ty.arrayInfo(); if (ai.elem_type.eql(Type.u8, dg.module)) { - try writer.writeByte('"'); + var literal = stringLiteral(writer); + try literal.start(); const c_len = ty.arrayLenIncludingSentinel(); var index: usize = 0; while (index < c_len) : (index += 1) - try writeStringLiteralChar(writer, 0xaa); - return writer.writeByte('"'); + try literal.writeChar(0xaa); + return literal.end(); } else { try writer.writeByte('{'); const c_len = ty.arrayLenIncludingSentinel(); @@ -1060,23 +1061,40 @@ pub const DeclGen = struct { defer arena.deinit(); const arena_allocator = arena.allocator(); + // MSVC throws C2078 if an array of size 65536 or greater is initialized with a string literal + const max_string_initializer_len = 65535; + const ai = ty.arrayInfo(); if (ai.elem_type.eql(Type.u8, dg.module)) { - try writer.writeByte('"'); - var index: usize = 0; - while (index < ai.len) : (index += 1) { - const elem_val = try val.elemValue(dg.module, arena_allocator, index); - const elem_val_u8 = if (elem_val.isUndef()) - undefPattern(u8) - else - @intCast(u8, elem_val.toUnsignedInt(target)); - try writeStringLiteralChar(writer, elem_val_u8); + if (ai.len <= max_string_initializer_len) { + var literal = stringLiteral(writer); + try literal.start(); + var index: usize = 0; + while (index < ai.len) : (index += 1) { + const elem_val = try val.elemValue(dg.module, arena_allocator, index); + const elem_val_u8 = if (elem_val.isUndef()) undefPattern(u8) else @intCast(u8, elem_val.toUnsignedInt(target)); + try literal.writeChar(elem_val_u8); + } + if (ai.sentinel) |s| { + const s_u8 = @intCast(u8, s.toUnsignedInt(target)); + try literal.writeChar(s_u8); + } + try literal.end(); + } else { + try writer.writeByte('{'); + var index: usize = 0; + while (index < ai.len) : (index += 1) { + if (index != 0) try writer.writeByte(','); + const elem_val = try val.elemValue(dg.module, arena_allocator, index); + const elem_val_u8 = if (elem_val.isUndef()) undefPattern(u8) else @intCast(u8, elem_val.toUnsignedInt(target)); + try writer.print("'\\x{x}'", .{ elem_val_u8 }); + } + if (ai.sentinel) |s| { + if (index != 0) try writer.writeByte(','); + try dg.renderValue(writer, ai.elem_type, s, .Initializer); + } + try writer.writeByte('}'); } - if (ai.sentinel) |s| { - const s_u8 = @intCast(u8, s.toUnsignedInt(target)); - try writeStringLiteralChar(writer, s_u8); - } - try writer.writeByte('"'); } else { try writer.writeByte('{'); var index: usize = 0; @@ -2134,7 +2152,7 @@ pub const DeclGen = struct { const c_len_val = Value.initPayload(&c_len_pl.base); try suffix_writer.writeByte('['); - if (mutability == .ConstArgument and depth == 0) try suffix_writer.writeAll("static const "); + if (mutability == .ConstArgument and depth == 0) try suffix_writer.writeAll("zig_const_arr "); try suffix.writer().print("{}]", .{try dg.fmtIntLiteral(Type.usize, c_len_val)}); render_ty = array_info.elem_type; depth += 1; @@ -6793,6 +6811,68 @@ fn compilerRtAbbrev(ty: Type, target: std.Target) []const u8 { } else unreachable; } +fn StringLiteral(comptime WriterType: type) type { + // msvc has a length limit of 16380 per string literal (before concatenation) + const max_char_len = 4; + const max_len = 16380 - max_char_len; + + return struct { + cur_len: usize = 0, + counting_writer: std.io.CountingWriter(WriterType), + + pub const Error = WriterType.Error; + + const Self = @This(); + + pub fn start(self: *Self) Error!void { + const writer = self.counting_writer.writer(); + try writer.writeByte('\"'); + } + + pub fn end(self: *Self) Error!void { + const writer = self.counting_writer.writer(); + try writer.writeByte('\"'); + } + + fn writeStringLiteralChar(writer: anytype, c: u8) !void { + switch (c) { + 7 => try writer.writeAll("\\a"), + 8 => try writer.writeAll("\\b"), + '\t' => try writer.writeAll("\\t"), + '\n' => try writer.writeAll("\\n"), + 11 => try writer.writeAll("\\v"), + 12 => try writer.writeAll("\\f"), + '\r' => try writer.writeAll("\\r"), + '"', '\'', '?', '\\' => try writer.print("\\{c}", .{c}), + else => switch (c) { + ' '...'~' => try writer.writeByte(c), + else => try writer.print("\\{o:0>3}", .{c}), + }, + } + } + + pub fn writeChar(self: *Self, c: u8) Error!void { + const writer = self.counting_writer.writer(); + + if (self.cur_len == 0 and self.counting_writer.bytes_written > 1) + try writer.writeAll("\"\""); + + const len = self.counting_writer.bytes_written; + try writeStringLiteralChar(writer, c); + + const char_length = self.counting_writer.bytes_written - len; + assert(char_length <= max_char_len); + self.cur_len += char_length; + + if (self.cur_len >= max_len) self.cur_len = 0; + } + }; +} + +fn stringLiteral(child_stream: anytype) StringLiteral(@TypeOf(child_stream)) { + return .{ .counting_writer = std.io.countingWriter(child_stream) }; +} + fn formatStringLiteral( str: []const u8, comptime fmt: []const u8, @@ -6800,33 +6880,18 @@ fn formatStringLiteral( writer: anytype, ) @TypeOf(writer).Error!void { if (fmt.len != 1 or fmt[0] != 's') @compileError("Invalid fmt: " ++ fmt); - try writer.writeByte('\"'); + + var literal = stringLiteral(writer); + try literal.start(); for (str) |c| - try writeStringLiteralChar(writer, c); - try writer.writeByte('\"'); + try literal.writeChar(c); + try literal.end(); } fn fmtStringLiteral(str: []const u8) std.fmt.Formatter(formatStringLiteral) { return .{ .data = str }; } -fn writeStringLiteralChar(writer: anytype, c: u8) !void { - switch (c) { - 7 => try writer.writeAll("\\a"), - 8 => try writer.writeAll("\\b"), - '\t' => try writer.writeAll("\\t"), - '\n' => try writer.writeAll("\\n"), - 11 => try writer.writeAll("\\v"), - 12 => try writer.writeAll("\\f"), - '\r' => try writer.writeAll("\\r"), - '"', '\'', '?', '\\' => try writer.print("\\{c}", .{c}), - else => switch (c) { - ' '...'~' => try writer.writeByte(c), - else => try writer.print("\\{o:0>3}", .{c}), - }, - } -} - fn undefPattern(comptime IntType: type) IntType { const int_info = @typeInfo(IntType).Int; const UnsignedType = std.meta.Int(.unsigned, int_info.bits); @@ -6905,7 +6970,15 @@ fn formatIntLiteral( return writer.print("{s}_{s}", .{ abbrev, if (int.positive) "MAX" else "MIN" }); } - if (!int.positive) try writer.writeByte('-'); + // TODO: If > 64 bit, need to use a subtract from zero fn here instead of negate + if (!int.positive) { + if (c_bits > 64) { + try writer.print("zig_sub_{c}{d}(zig_as_{c}{d}(0, 0), ", .{ signAbbrev(int_info.signedness), c_bits, signAbbrev(int_info.signedness), c_bits }); + } else { + try writer.writeByte('-'); + } + } + switch (data.ty.tag()) { .c_short, .c_ushort, .c_int, .c_uint, .c_long, .c_ulong, .c_longlong, .c_ulonglong => {}, else => try writer.print("zig_as_{c}{d}(", .{ signAbbrev(int_info.signedness), c_bits }), @@ -6976,6 +7049,7 @@ fn formatIntLiteral( .mod = data.mod, }, fmt, options, writer); + if (!int.positive and c_bits > 64) try writer.writeByte(')'); return writer.writeByte(')'); } From e6ef57960914aa0e727ccd37ccd3913df3ae6ab4 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Fri, 9 Dec 2022 01:58:04 -0500 Subject: [PATCH 02/46] cbe: fixup casting to/from 128 bit int types, as they may not have compiler support --- src/codegen/c.zig | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index fd4a46b5e5..5343977ba3 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -3262,11 +3262,20 @@ fn airLoad(f: *Function, inst: Air.Inst.Index) !CValue { try f.object.dg.renderTypeForBuiltinFnName(writer, field_ty); try writer.writeAll("(("); try f.renderTypecast(writer, field_ty); - try writer.writeAll(")zig_shr_"); + try writer.writeByte(')'); + const cant_cast = host_ty.isInt() and host_ty.bitSize(target) > 64; + if (cant_cast) { + if (field_ty.bitSize(target) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); + try writer.writeAll("zig_lo_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, host_ty); + try writer.writeByte('('); + } + try writer.writeAll("zig_shr_"); try f.object.dg.renderTypeForBuiltinFnName(writer, host_ty); try writer.writeByte('('); try f.writeCValueDeref(writer, operand); try writer.print(", {})", .{try f.fmtIntLiteral(bit_offset_ty, bit_offset_val)}); + if (cant_cast) try writer.writeByte(')'); try f.object.dg.renderBuiltinInfo(writer, field_ty, .Bits); try writer.writeByte(')'); } else { @@ -3539,15 +3548,26 @@ fn airStore(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValueDeref(writer, ptr_val); try writer.print(", {x}), zig_shl_", .{try f.fmtIntLiteral(host_ty, mask_val)}); try f.object.dg.renderTypeForBuiltinFnName(writer, host_ty); - try writer.writeAll("(("); - try f.renderTypecast(writer, host_ty); - try writer.writeByte(')'); + try writer.writeByte('('); + const cant_cast = host_ty.isInt() and host_ty.bitSize(target) > 64; + if (cant_cast) { + if (src_ty.bitSize(target) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); + try writer.writeAll("zig_as_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, host_ty); + try writer.writeAll("(0, "); + } else { + try writer.writeByte('('); + try f.renderTypecast(writer, host_ty); + try writer.writeByte(')'); + } + if (src_ty.isPtrAtRuntime()) { try writer.writeByte('('); try f.renderTypecast(writer, Type.usize); try writer.writeByte(')'); } try f.writeCValue(writer, src_val, .Other); + if (cant_cast) try writer.writeByte(')'); try writer.print(", {}))", .{try f.fmtIntLiteral(bit_offset_ty, bit_offset_val)}); } else { try f.writeCValueDeref(writer, ptr_val); @@ -5236,13 +5256,22 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { try f.object.dg.renderTypeForBuiltinFnName(writer, field_int_ty); try writer.writeAll("(("); try f.renderTypecast(writer, field_int_ty); - try writer.writeAll(")zig_shr_"); + try writer.writeByte(')'); + const cant_cast = int_info.bits > 64; + if (cant_cast) { + if (field_int_ty.bitSize(target) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); + try writer.writeAll("zig_lo_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, struct_ty); + try writer.writeByte('('); + } + try writer.writeAll("zig_shr_"); try f.object.dg.renderTypeForBuiltinFnName(writer, struct_ty); try writer.writeByte('('); try f.writeCValue(writer, struct_byval, .Other); try writer.writeAll(", "); try f.object.dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); try writer.writeByte(')'); + if (cant_cast) try writer.writeByte(')'); try f.object.dg.renderBuiltinInfo(writer, field_int_ty, .Bits); try writer.writeAll(");\n"); if (inst_ty.eql(field_int_ty, f.object.dg.module)) return temp_local; From 7225a0043e1d1c0e6f3a0ac2bf9fbe0d48354071 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 10 Dec 2022 02:22:52 -0500 Subject: [PATCH 03/46] cbe: handle msvc struct casting quirk MSVC can't explicitly cast a struct to a typedef of itself (ie. f128 to i128). Added a set of macros to handle float casting, and to not produce a cast for this specific case on MSVC. A better approach would probably be to know if the cast is redundant and not do it. --- lib/zig.h | 15 +++++++++++++++ src/codegen/c.zig | 23 +++++++++++++++++------ 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index 9d763f8936..c2b68f0fe5 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1340,6 +1340,9 @@ static inline zig_i128 zig_sub_i128(zig_i128 lhs, zig_i128 rhs) { // TODO: Implement static zig_i128 zig_div_trunc_i128(zig_i128 lhs, zig_i128 rhs); +// TODO: Implement +static zig_u128 zig_div_trunc_u128(zig_u128 lhs, zig_u128 rhs); + // TODO: Implement static zig_i128 zig_rem_i128(zig_i128 lhs, zig_i128 rhs); @@ -1783,6 +1786,18 @@ typedef zig_i128 zig_f128; #define zig_as_special_f128(sign, name, arg, repr) repr #endif +#define zig_cast_f16 (zig_f16) +#define zig_cast_f32 (zig_f32) +#define zig_cast_f64 (zig_f64) +#define zig_cast_f80 (zig_f80) +#define zig_cast_c_longdouble (zig_c_longdouble) + +#if _MSC_VER && !zig_has_f128 +#define zig_cast_f128 +#else +#define zig_cast_f128 (zig_f128) +#endif + #define zig_has_c_longdouble 1 typedef long double zig_c_longdouble; #define zig_as_c_longdouble(fp, repr) fp##l diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 5343977ba3..75864669c9 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -927,9 +927,9 @@ pub const DeclGen = struct { }; const int_val = Value.initPayload(&int_val_pl.base); - try writer.writeByte('('); - try dg.renderTypecast(writer, ty); - try writer.writeByte(')'); + try writer.writeAll("zig_cast_"); + try dg.renderTypeForBuiltinFnName(writer, ty); + try writer.writeByte(' '); if (std.math.isFinite(f128_val)) { try writer.writeAll("zig_as_"); try dg.renderTypeForBuiltinFnName(writer, ty); @@ -3344,16 +3344,27 @@ fn airIntCast(f: *Function, inst: Air.Inst.Index) !CValue { return CValue.none; } + const target = f.object.dg.module.getTarget(); const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const writer = f.object.writer(); const inst_ty = f.air.typeOfIndex(inst); const local = try f.allocLocal(inst, inst_ty); try f.writeCValue(writer, local, .Other); - try writer.writeAll(" = ("); - try f.renderTypecast(writer, inst_ty); - try writer.writeByte(')'); + try writer.writeAll(" = "); + const cant_cast = inst_ty.isInt() and inst_ty.bitSize(target) > 64; + if (cant_cast) { + if (f.air.typeOf(ty_op.operand).bitSize(target) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); + try writer.writeAll("zig_as_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); + try writer.writeAll("(0, "); + } else { + try writer.writeByte('('); + try f.renderTypecast(writer, inst_ty); + try writer.writeByte(')'); + } try f.writeCValue(writer, operand, .Other); + if (cant_cast) try writer.writeByte(')'); try writer.writeAll(";\n"); return local; } From e836477ccf823d0f1a838bcedcdebd738f8f7270 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 10 Dec 2022 02:25:54 -0500 Subject: [PATCH 04/46] cbe: fixup f80 casting on msvc --- lib/zig.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/zig.h b/lib/zig.h index c2b68f0fe5..f7bf1ec118 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1789,12 +1789,13 @@ typedef zig_i128 zig_f128; #define zig_cast_f16 (zig_f16) #define zig_cast_f32 (zig_f32) #define zig_cast_f64 (zig_f64) -#define zig_cast_f80 (zig_f80) #define zig_cast_c_longdouble (zig_c_longdouble) #if _MSC_VER && !zig_has_f128 +#define zig_cast_f80 #define zig_cast_f128 #else +#define zig_cast_f80 (zig_f80) #define zig_cast_f128 (zig_f128) #endif From c675a8e35c1c9296fe98e98c19acfa22dd1d9a23 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 10 Dec 2022 02:38:07 -0500 Subject: [PATCH 05/46] cbe: handle msvc not supporting long double --- lib/zig.h | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index f7bf1ec118..c935e36b8c 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1786,25 +1786,37 @@ typedef zig_i128 zig_f128; #define zig_as_special_f128(sign, name, arg, repr) repr #endif +#define zig_has_c_longdouble 1 +#define zig_libc_name_c_longdouble(name) name##l +#define zig_as_special_c_longdouble(sign, name, arg, repr) sign __builtin_##name##l(arg) +#if !_MSC_VER // TODO: Is there a better way to detect this is just double? +typedef long double zig_c_longdouble; +#define zig_as_c_longdouble(fp, repr) fp##l +#else +#undef zig_has_c_longdouble +#define zig_has_c_longdouble 0 +#define zig_repr_c_longdouble i128 +#define zig_bitSizeOf_c_longdouble 128 +typedef zig_i128 zig_c_longdouble; +#define zig_as_c_longdouble(fp, repr) repr +#undef zig_as_special_c_longdouble +#define zig_as_special_c_longdouble(sign, name, arg, repr) repr +#endif + #define zig_cast_f16 (zig_f16) #define zig_cast_f32 (zig_f32) #define zig_cast_f64 (zig_f64) -#define zig_cast_c_longdouble (zig_c_longdouble) #if _MSC_VER && !zig_has_f128 #define zig_cast_f80 +#define zig_cast_c_longdouble #define zig_cast_f128 #else #define zig_cast_f80 (zig_f80) +#define zig_cast_c_longdouble (zig_c_longdouble) #define zig_cast_f128 (zig_f128) #endif -#define zig_has_c_longdouble 1 -typedef long double zig_c_longdouble; -#define zig_as_c_longdouble(fp, repr) fp##l -#define zig_libc_name_c_longdouble(name) name##l -#define zig_as_special_c_longdouble(sign, name, arg, repr) sign __builtin_##name##l(arg) - #define zig_convert_builtin(ResType, operation, ArgType, version) \ zig_extern zig_##ResType zig_expand_concat(zig_expand_concat(zig_expand_concat(__##operation, \ zig_compiler_rt_abbrev_##ArgType), zig_compiler_rt_abbrev_##ResType), version)(zig_##ArgType); From 36212e9d178c32facd0d9d0c1069327758efb943 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 10 Dec 2022 18:17:36 -0500 Subject: [PATCH 06/46] cbe: msvc compatibility for > 64 bit intcasts and truncating from > 64 to < 64 bit - Uses zig_as/zig_lo as necessary when int casting to support !zig_has_int128 - Remove redundant cast if the type is the same - Use zig_lo when truncating > 64 bits --- src/codegen/c.zig | 82 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 64 insertions(+), 18 deletions(-) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 75864669c9..6e4db6ddbf 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -3350,21 +3350,49 @@ fn airIntCast(f: *Function, inst: Air.Inst.Index) !CValue { const writer = f.object.writer(); const inst_ty = f.air.typeOfIndex(inst); const local = try f.allocLocal(inst, inst_ty); + const inst_bits = inst_ty.bitSize(target); + const inst_int_info = inst_ty.intInfo(target); + const operand_ty = f.air.typeOf(ty_op.operand); + const operand_bits = operand_ty.bitSize(target); + const operand_int_info = operand_ty.intInfo(target); + try f.writeCValue(writer, local, .Other); try writer.writeAll(" = "); - const cant_cast = inst_ty.isInt() and inst_ty.bitSize(target) > 64; - if (cant_cast) { - if (f.air.typeOf(ty_op.operand).bitSize(target) > 64) return f.fail("TODO: C backend: implement casting between types > 64 bits", .{}); + + if (inst_bits <= 64 and operand_bits <= 64) { + if (toCIntBits(inst_int_info.bits) != toCIntBits(operand_int_info.bits) or inst_int_info.signedness != operand_int_info.signedness) { + try writer.writeByte('('); + try f.renderTypecast(writer, inst_ty); + try writer.writeByte(')'); + } + + try f.writeCValue(writer, operand, .Other); + } else if (inst_bits > 64 and operand_bits <= 64) { try writer.writeAll("zig_as_"); try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); - try writer.writeAll("(0, "); - } else { - try writer.writeByte('('); - try f.renderTypecast(writer, inst_ty); + try writer.writeAll("(0, "); // TODO: Should the 0 go through fmtIntLiteral? + try f.writeCValue(writer, operand, .FunctionArgument); try writer.writeByte(')'); + } else if (inst_bits <= 64 and operand_bits > 64) { + try writer.writeAll("zig_lo_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, operand_ty); + try writer.writeByte('('); + try f.writeCValue(writer, operand, .FunctionArgument); + try writer.writeByte(')'); + } else { + try writer.writeAll("zig_as_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); + try writer.writeAll("(zig_hi_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, operand_ty); + try writer.writeByte('('); + try f.writeCValue(writer, operand, .FunctionArgument); + try writer.writeAll("), zig_lo_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, operand_ty); + try writer.writeByte('('); + try f.writeCValue(writer, operand, .FunctionArgument); + try writer.writeAll("))"); } - try f.writeCValue(writer, operand, .Other); - if (cant_cast) try writer.writeByte(')'); + try writer.writeAll(";\n"); return local; } @@ -3384,15 +3412,29 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { const target = f.object.dg.module.getTarget(); const dest_int_info = inst_ty.intInfo(target); const dest_bits = dest_int_info.bits; + const dest_c_bits = toCIntBits(dest_int_info.bits) orelse + return f.fail("TODO: C backend: implement integer types larger than 128 bits", .{}); + const operand_ty = f.air.typeOf(ty_op.operand); + const operand_int_info = operand_ty.intInfo(target); try f.writeCValue(writer, local, .Other); - try writer.writeAll(" = ("); - try f.renderTypecast(writer, inst_ty); - try writer.writeByte(')'); + try writer.writeAll(" = "); + + const needs_lo = operand_int_info.bits > 64 and dest_bits <= 64; + if (!needs_lo or dest_c_bits != 64 or dest_int_info.signedness != operand_int_info.signedness) { + try writer.writeByte('('); + try f.renderTypecast(writer, inst_ty); + try writer.writeByte(')'); + } + + if (needs_lo) { + try writer.writeAll("zig_lo_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, operand_ty); + try writer.writeByte('('); + } if (dest_bits >= 8 and std.math.isPowerOfTwo(dest_bits)) { try f.writeCValue(writer, operand, .Other); - try writer.writeAll(";\n"); } else switch (dest_int_info.signedness) { .unsigned => { var arena = std.heap.ArenaAllocator.init(f.object.dg.gpa); @@ -3404,13 +3446,13 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { const mask_val = try inst_ty.maxInt(stack.get(), target); + // TODO: This needs to use _and_ to do this to support > 64 bits and !zig_has_int128 try writer.writeByte('('); try f.writeCValue(writer, operand, .Other); - try writer.print(" & {x});\n", .{try f.fmtIntLiteral(inst_ty, mask_val)}); + try writer.print(" & {x})", .{try f.fmtIntLiteral(inst_ty, mask_val)}); }, .signed => { - const operand_ty = f.air.typeOf(ty_op.operand); - const c_bits = toCIntBits(operand_ty.intInfo(target).bits) orelse + const c_bits = toCIntBits(operand_int_info.bits) orelse return f.fail("TODO: C backend: implement integer types larger than 128 bits", .{}); var shift_pl = Value.Payload.U64{ .base = .{ .tag = .int_u64 }, @@ -3418,11 +3460,15 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { }; const shift_val = Value.initPayload(&shift_pl.base); + // TODO: This needs to use shl and shr to do this to support > 64 bits and !zig_has_int128 try writer.print("((int{d}_t)((uint{0d}_t)", .{c_bits}); try f.writeCValue(writer, operand, .Other); - try writer.print(" << {}) >> {0});\n", .{try f.fmtIntLiteral(Type.u8, shift_val)}); + try writer.print(" << {}) >> {0})", .{try f.fmtIntLiteral(Type.u8, shift_val)}); }, } + + if (needs_lo) try writer.writeByte(')'); + try writer.writeAll(";\n"); return local; } @@ -7010,9 +7056,9 @@ fn formatIntLiteral( return writer.print("{s}_{s}", .{ abbrev, if (int.positive) "MAX" else "MIN" }); } - // TODO: If > 64 bit, need to use a subtract from zero fn here instead of negate if (!int.positive) { if (c_bits > 64) { + // TODO: Could use negate function instead? try writer.print("zig_sub_{c}{d}(zig_as_{c}{d}(0, 0), ", .{ signAbbrev(int_info.signedness), c_bits, signAbbrev(int_info.signedness), c_bits }); } else { try writer.writeByte('-'); From 00b54a5fe565f404e0d7d8cdbc05a465d573fc32 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sun, 11 Dec 2022 23:31:41 -0500 Subject: [PATCH 07/46] cbe: more msvc fixes - Add Function.renderIntcast to handle common casting cases - Fixup casting inside aggregate initialization - Remove redundant cast in aggregate initialization - Fix renderValue .Packed branch for > 64 bit types --- src/codegen/c.zig | 271 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 202 insertions(+), 69 deletions(-) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 6e4db6ddbf..7afcc854b7 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -431,6 +431,10 @@ pub const Function = struct { return f.object.dg.renderTypecast(w, t); } + fn renderIntCast(f: *Function, w: anytype, dest_ty: Type, src: CValue, src_ty: Type, location: ValueRenderLocation) !void { + return f.object.dg.renderIntCast(w, dest_ty, .{ .c_value = .{ .f = f, .value = src } }, src_ty, location); + } + fn fmtIntLiteral(f: *Function, ty: Type, val: Value) !std.fmt.Formatter(formatIntLiteral) { return f.object.dg.fmtIntLiteral(ty, val); } @@ -1263,25 +1267,85 @@ pub const DeclGen = struct { var bit_offset_val_pl: Value.Payload.U64 = .{ .base = .{ .tag = .int_u64 }, .data = 0 }; const bit_offset_val = Value.initPayload(&bit_offset_val_pl.base); - try writer.writeByte('('); - var empty = true; - for (field_vals) |field_val, index| { + var eff_num_fields: usize = 0; + for (field_vals) |_, index| { const field_ty = ty.structFieldType(index); if (!field_ty.hasRuntimeBitsIgnoreComptime()) continue; - if (!empty) try writer.writeAll(" | "); - try writer.writeByte('('); - try dg.renderTypecast(writer, ty); - try writer.writeByte(')'); - try dg.renderValue(writer, field_ty, field_val, .Other); - try writer.writeAll(" << "); - try dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); - - bit_offset_val_pl.data += field_ty.bitSize(target); - empty = false; + eff_num_fields += 1; + } + + if (eff_num_fields == 0) { + try writer.writeByte('('); + try dg.renderValue(writer, ty, Value.undef, .Initializer); + try writer.writeByte(')'); + } else if (ty.bitSize(target) > 64) { + // zig_or_u128(zig_or_u128(zig_shl_u128(a, a_off), zig_shl_u128(b, b_off)), zig_shl_u128(c, c_off)) + var num_or = eff_num_fields - 1; + while (num_or > 0) : (num_or -= 1) { + try writer.writeAll("zig_or_"); + try dg.renderTypeForBuiltinFnName(writer, ty); + try writer.writeByte('('); + } + + var eff_index: usize = 0; + var needs_closing_paren = false; + for (field_vals) |field_val, index| { + const field_ty = ty.structFieldType(index); + if (!field_ty.hasRuntimeBitsIgnoreComptime()) continue; + + //const cast_context = IntCastContext{ .value = .{ .value = field_val } }; + if (bit_offset_val_pl.data != 0) { + try writer.writeAll("zig_shl_"); + try dg.renderTypeForBuiltinFnName(writer, ty); + try writer.writeByte('('); + + //try dg.renderIntCast(writer, ty,_context, field_ty, .FunctionArgument); + try dg.renderValue(writer, field_ty, field_val, .FunctionArgument); + + try writer.writeAll(", "); + try dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); + try writer.writeByte(')'); + } else { + + try dg.renderValue(writer, field_ty, field_val, .FunctionArgument); + //try dg.renderIntCast(writer, ty, cast_context, field_ty, .FunctionArgument); + + } + + if (needs_closing_paren) try writer.writeByte(')'); + if (eff_index != eff_num_fields - 1) try writer.writeAll(", "); + + bit_offset_val_pl.data += field_ty.bitSize(target); + needs_closing_paren = true; + eff_index += 1; + } + } else { + try writer.writeByte('('); + // a << a_off | b << b_off | c << c_off + var empty = true; + for (field_vals) |field_val, index| { + const field_ty = ty.structFieldType(index); + if (!field_ty.hasRuntimeBitsIgnoreComptime()) continue; + + if (!empty) try writer.writeAll(" | "); + try writer.writeByte('('); + try dg.renderTypecast(writer, ty); + try writer.writeByte(')'); + + if (bit_offset_val_pl.data != 0) { + try dg.renderValue(writer, field_ty, field_val, .Other); + try writer.writeAll(" << "); + try dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); + } else { + try dg.renderValue(writer, field_ty, field_val, .Other); + } + + bit_offset_val_pl.data += field_ty.bitSize(target); + empty = false; + } + try writer.writeByte(')'); } - if (empty) try dg.renderValue(writer, ty, Value.undef, .Initializer); - try writer.writeByte(')'); }, }, .Union => { @@ -2103,6 +2167,101 @@ pub const DeclGen = struct { }); } + const IntCastContext = union(enum) { + c_value: struct { + f: *Function, + value: CValue, + }, + value: struct { + value: Value, + }, + + pub fn writeValue(self: *const IntCastContext, dg: *DeclGen, w: anytype, value_ty: Type, location: ValueRenderLocation) !void { + switch (self.*) { + .c_value => |v| { + try v.f.writeCValue(w, v.value, location); + }, + .value => |v| { + try dg.renderValue(w, value_ty, v.value, location); + }, + } + } + }; + + /// Renders a cast to an int type, from either an int or a pointer. + /// + /// Some platforms don't have 128 bit integers, so we need to use + /// the zig_as_ and zig_lo_ macros in those cases. + /// + /// | Dest type bits | Src type | Result + /// |------------------|------------------|---------------------------| + /// | < 64 bit integer | pointer | (zig_)(zig_size)src + /// | < 64 bit integer | < 64 bit integer | (zig_)src + /// | < 64 bit integer | > 64 bit integer | zig_lo(src) + /// | > 64 bit integer | pointer | zig_as_(0, (zig_size)src) + /// | > 64 bit integer | < 64 bit integer | zig_as_(0, src) + /// | > 64 bit integer | > 64 bit integer | zig_as_(zig_hi_(src), zig_lo_(src)) + fn renderIntCast(dg: *DeclGen, w: anytype, dest_ty: Type, context: IntCastContext, src_ty: Type, location: ValueRenderLocation) !void { + const target = dg.module.getTarget(); + const dest_bits = dest_ty.bitSize(target); + const dest_int_info = dest_ty.intInfo(target); + + const src_is_ptr = src_ty.isPtrAtRuntime(); + const src_eff_ty: Type = if (src_is_ptr) switch (dest_int_info.signedness) { + .unsigned => Type.usize, + .signed => Type.isize, + } else src_ty; + + const src_bits = src_eff_ty.bitSize(target); + const src_int_info = src_eff_ty.intInfo(target); + if (dest_bits <= 64 and src_bits <= 64) { + const needs_cast = toCIntBits(dest_int_info.bits) != toCIntBits(src_int_info.bits) or + dest_int_info.signedness != src_int_info.signedness; + if (needs_cast) { + try w.writeByte('('); + try dg.renderTypecast(w, dest_ty); + try w.writeByte(')'); + } + if (src_is_ptr) { + try w.writeByte('('); + try dg.renderTypecast(w, src_eff_ty); + try w.writeByte(')'); + } + try context.writeValue(dg, w, src_ty, location); + } else if (dest_bits <= 64 and src_bits > 64) { + assert(!src_is_ptr); + try w.writeAll("zig_lo_"); + try dg.renderTypeForBuiltinFnName(w, src_eff_ty); + try w.writeByte('('); + try context.writeValue(dg, w, src_ty, .FunctionArgument); + try w.writeByte(')'); + } else if (dest_bits > 64 and src_bits <= 64) { + try w.writeAll("zig_as_"); + try dg.renderTypeForBuiltinFnName(w, dest_ty); + try w.writeAll("(0, "); // TODO: Should the 0 go through fmtIntLiteral? + if (src_is_ptr) { + try w.writeByte('('); + try dg.renderTypecast(w, src_eff_ty); + try w.writeByte(')'); + } + try context.writeValue(dg, w, src_ty, .FunctionArgument); + try w.writeByte(')'); + } else { + assert(!src_is_ptr); + try w.writeAll("zig_as_"); + try dg.renderTypeForBuiltinFnName(w, dest_ty); + try w.writeAll("(zig_hi_"); + try dg.renderTypeForBuiltinFnName(w, src_eff_ty); + try w.writeByte('('); + try context.writeValue(dg, w, src_ty, .FunctionArgument); + try w.writeAll("), zig_lo_"); + try dg.renderTypeForBuiltinFnName(w, src_eff_ty); + try w.writeByte('('); + try context.writeValue(dg, w, src_ty, .FunctionArgument); + try w.writeAll("))"); + } + } + /// Renders a type in C typecast format. /// /// This is guaranteed to be valid in a typecast expression, but not @@ -3344,55 +3503,16 @@ fn airIntCast(f: *Function, inst: Air.Inst.Index) !CValue { return CValue.none; } - const target = f.object.dg.module.getTarget(); const operand = try f.resolveInst(ty_op.operand); try reap(f, inst, &.{ty_op.operand}); const writer = f.object.writer(); const inst_ty = f.air.typeOfIndex(inst); const local = try f.allocLocal(inst, inst_ty); - const inst_bits = inst_ty.bitSize(target); - const inst_int_info = inst_ty.intInfo(target); const operand_ty = f.air.typeOf(ty_op.operand); - const operand_bits = operand_ty.bitSize(target); - const operand_int_info = operand_ty.intInfo(target); try f.writeCValue(writer, local, .Other); try writer.writeAll(" = "); - - if (inst_bits <= 64 and operand_bits <= 64) { - if (toCIntBits(inst_int_info.bits) != toCIntBits(operand_int_info.bits) or inst_int_info.signedness != operand_int_info.signedness) { - try writer.writeByte('('); - try f.renderTypecast(writer, inst_ty); - try writer.writeByte(')'); - } - - try f.writeCValue(writer, operand, .Other); - } else if (inst_bits > 64 and operand_bits <= 64) { - try writer.writeAll("zig_as_"); - try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); - try writer.writeAll("(0, "); // TODO: Should the 0 go through fmtIntLiteral? - try f.writeCValue(writer, operand, .FunctionArgument); - try writer.writeByte(')'); - } else if (inst_bits <= 64 and operand_bits > 64) { - try writer.writeAll("zig_lo_"); - try f.object.dg.renderTypeForBuiltinFnName(writer, operand_ty); - try writer.writeByte('('); - try f.writeCValue(writer, operand, .FunctionArgument); - try writer.writeByte(')'); - } else { - try writer.writeAll("zig_as_"); - try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); - try writer.writeAll("(zig_hi_"); - try f.object.dg.renderTypeForBuiltinFnName(writer, operand_ty); - try writer.writeByte('('); - try f.writeCValue(writer, operand, .FunctionArgument); - try writer.writeAll("), zig_lo_"); - try f.object.dg.renderTypeForBuiltinFnName(writer, operand_ty); - try writer.writeByte('('); - try f.writeCValue(writer, operand, .FunctionArgument); - try writer.writeAll("))"); - } - + try f.renderIntCast(writer, inst_ty, operand, operand_ty, .Other); try writer.writeAll(";\n"); return local; } @@ -6509,9 +6629,7 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { }, .Packed => { try f.writeCValue(writer, local, .Other); - try writer.writeAll(" = ("); - try f.renderTypecast(writer, inst_ty); - try writer.writeAll(")"); + try writer.writeAll(" = "); const int_info = inst_ty.intInfo(target); var bit_offset_ty_pl = Type.Payload.Bits{ @@ -6541,20 +6659,28 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { if (!field_ty.hasRuntimeBitsIgnoreComptime()) continue; if (!empty) try writer.writeAll(", "); + // TODO: Skip this entire shift if val is 0? try writer.writeAll("zig_shlw_"); try f.object.dg.renderTypeForBuiltinFnName(writer, inst_ty); - try writer.writeAll("(("); - try f.renderTypecast(writer, inst_ty); - try writer.writeByte(')'); - if (field_ty.isPtrAtRuntime()) { + try writer.writeByte('('); + + if (inst_ty.isAbiInt() and (field_ty.isAbiInt() or field_ty.isPtrAtRuntime())) { + try f.renderIntCast(writer, inst_ty, element, field_ty, .FunctionArgument); + } else { try writer.writeByte('('); - try f.renderTypecast(writer, switch (int_info.signedness) { - .unsigned => Type.usize, - .signed => Type.isize, - }); + try f.renderTypecast(writer, inst_ty); try writer.writeByte(')'); + if (field_ty.isPtrAtRuntime()) { + try writer.writeByte('('); + try f.renderTypecast(writer, switch (int_info.signedness) { + .unsigned => Type.usize, + .signed => Type.isize, + }); + try writer.writeByte(')'); + } + try f.writeCValue(writer, element, .Other); } - try f.writeCValue(writer, element, .Other); + try writer.writeAll(", "); try f.object.dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); try f.object.dg.renderBuiltinInfo(writer, inst_ty, .Bits); @@ -6564,7 +6690,14 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { bit_offset_val_pl.data += field_ty.bitSize(target); empty = false; } - if (empty) try f.writeCValue(writer, .{ .undef = inst_ty }, .Initializer); + + if (empty) { + try writer.writeByte('('); + try f.renderTypecast(writer, inst_ty); + try writer.writeByte(')'); + try f.writeCValue(writer, .{ .undef = inst_ty }, .Initializer); + } + try writer.writeAll(";\n"); }, }, @@ -6937,7 +7070,7 @@ fn StringLiteral(comptime WriterType: type) type { } } - pub fn writeChar(self: *Self, c: u8) Error!void { + pub fn writeChar(self: *Self, c: u8) Error!void { const writer = self.counting_writer.writer(); if (self.cur_len == 0 and self.counting_writer.bytes_written > 1) From 351025dc0522f5ad170091c0040e9532e2938d79 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Mon, 12 Dec 2022 01:03:10 -0500 Subject: [PATCH 08/46] cbe: msvc compatible int casting inside renderValue .Packed branch - Handle non-abiInt source types (like packed union) as sources in renderIntCast --- src/codegen/c.zig | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 7afcc854b7..8f26141d7a 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -1294,26 +1294,20 @@ pub const DeclGen = struct { const field_ty = ty.structFieldType(index); if (!field_ty.hasRuntimeBitsIgnoreComptime()) continue; - //const cast_context = IntCastContext{ .value = .{ .value = field_val } }; + const cast_context = IntCastContext{ .value = .{ .value = field_val } }; if (bit_offset_val_pl.data != 0) { try writer.writeAll("zig_shl_"); try dg.renderTypeForBuiltinFnName(writer, ty); try writer.writeByte('('); - - //try dg.renderIntCast(writer, ty,_context, field_ty, .FunctionArgument); - try dg.renderValue(writer, field_ty, field_val, .FunctionArgument); - + try dg.renderIntCast(writer, ty, cast_context, field_ty, .FunctionArgument); try writer.writeAll(", "); try dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); try writer.writeByte(')'); } else { - - try dg.renderValue(writer, field_ty, field_val, .FunctionArgument); - //try dg.renderIntCast(writer, ty, cast_context, field_ty, .FunctionArgument); - + try dg.renderIntCast(writer, ty, cast_context, field_ty, .FunctionArgument); } - if (needs_closing_paren) try writer.writeByte(')'); + if (needs_closing_paren) try writer.writeByte(')') ; if (eff_index != eff_num_fields - 1) try writer.writeAll(", "); bit_offset_val_pl.data += field_ty.bitSize(target); @@ -2213,10 +2207,12 @@ pub const DeclGen = struct { } else src_ty; const src_bits = src_eff_ty.bitSize(target); - const src_int_info = src_eff_ty.intInfo(target); + const src_int_info = if (src_eff_ty.isAbiInt()) src_eff_ty.intInfo(target) else null; if (dest_bits <= 64 and src_bits <= 64) { - const needs_cast = toCIntBits(dest_int_info.bits) != toCIntBits(src_int_info.bits) or - dest_int_info.signedness != src_int_info.signedness; + const needs_cast = src_int_info == null or + (toCIntBits(dest_int_info.bits) != toCIntBits(src_int_info.?.bits) or + dest_int_info.signedness != src_int_info.?.signedness); + if (needs_cast) { try w.writeByte('('); try dg.renderTypecast(w, dest_ty); From 4fe71977e0c2bec28b4cb8015d59ce837dfc80cb Mon Sep 17 00:00:00 2001 From: kcbanner Date: Mon, 12 Dec 2022 02:23:51 -0500 Subject: [PATCH 09/46] temporarily disable asm tests --- test/behavior/asm.zig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/behavior/asm.zig b/test/behavior/asm.zig index e9a01226b1..47a55931a6 100644 --- a/test/behavior/asm.zig +++ b/test/behavior/asm.zig @@ -23,6 +23,7 @@ test "module level assembly" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO WIP if (is_x86_64_linux) { try expect(this_is_my_alias() == 1234); @@ -35,6 +36,7 @@ test "output constraint modifiers" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO WIP // This is only testing compilation. var a: u32 = 3; @@ -56,6 +58,7 @@ test "alternative constraints" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO WIP // Make sure we allow commas as a separator for alternative constraints. var a: u32 = 3; @@ -72,6 +75,7 @@ test "sized integer/float in asm input" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO WIP asm volatile ("" : @@ -121,6 +125,7 @@ test "struct/array/union types as input values" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO WIP asm volatile ("" : From 7f3bc45772d6af33e0e663ba534eba5653792843 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Mon, 12 Dec 2022 02:57:57 -0500 Subject: [PATCH 10/46] cbe: nan builtins on msvc, fixup C2099 errors in static initializers - Map the __builtin_nan(f|l)? functions to nan(f|l)? on msvc - MSVC throws C2099 when initializing a struct with cast syntax in a global initializer. Added zig_as_init_ to handle this case, and generate it only in static initializers for > 64 bit ints. - Change float initialization to emit the integer representation in global initializers to avoid C2099 caused by calling nan. --- lib/zig.h | 10 +++++ src/codegen/c.zig | 95 +++++++++++++++++++++++++++++++++++------------ 2 files changed, 81 insertions(+), 24 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index c935e36b8c..2bced3c33d 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1151,6 +1151,8 @@ typedef signed __int128 zig_i128; #define zig_as_u128(hi, lo) ((zig_u128)(hi)<<64|(lo)) #define zig_as_i128(hi, lo) ((zig_i128)zig_as_u128(hi, lo)) +#define zig_as_init_u128(hi, lo) zig_as_u128(hi, lo) +#define zig_as_init_i128(hi, lo) zig_as_i128(hi, lo) #define zig_hi_u128(val) ((zig_u64)((val) >> 64)) #define zig_lo_u128(val) ((zig_u64)((val) >> 0)) #define zig_hi_i128(val) ((zig_i64)((val) >> 64)) @@ -1178,6 +1180,8 @@ typedef struct { zig_align(16) zig_i64 hi; zig_u64 lo; } zig_i128; #define zig_as_u128(hi, lo) ((zig_u128){ .h##i = (hi), .l##o = (lo) }) #define zig_as_i128(hi, lo) ((zig_i128){ .h##i = (hi), .l##o = (lo) }) +#define zig_as_init_u128(hi, lo) { .h##i = (hi), .l##o = (lo) } +#define zig_as_init_i128(hi, lo) { .h##i = (hi), .l##o = (lo) } #define zig_hi_u128(val) ((val).hi) #define zig_lo_u128(val) ((val).lo) #define zig_hi_i128(val) ((val).hi) @@ -1631,6 +1635,12 @@ static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) { /* ========================= Floating Point Support ========================= */ +#if _MSC_VER +#define __builtin_nan(str) nan(str) +#define __builtin_nanf(str) nanf(str) +#define __builtin_nanl(str) nanl(str) +#endif + #define zig_has_f16 1 #define zig_bitSizeOf_f16 16 #define zig_libc_name_f16(name) __##name##h diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 8f26141d7a..444e76c212 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -90,7 +90,15 @@ const FormatTypeAsCIdentContext = struct { const ValueRenderLocation = enum { FunctionArgument, Initializer, + StaticInitializer, Other, + + pub fn isInitializer(self: ValueRenderLocation) bool { + return switch (self) { + .Initializer, .StaticInitializer => true, + else => false, + }; + } }; const BuiltinInfo = enum { @@ -718,7 +726,7 @@ pub const DeclGen = struct { return writer.writeAll("false"); } }, - .Int, .Enum, .ErrorSet => return writer.print("{x}", .{try dg.fmtIntLiteral(ty, val)}), + .Int, .Enum, .ErrorSet => return writer.print("{x}", .{try dg.fmtIntLiteralLoc(ty, val, location)}), .Float => { const bits = ty.floatBits(target); var int_pl = Type.Payload.Bits{ .base = .{ .tag = .int_signed }, .data = bits }; @@ -742,7 +750,7 @@ pub const DeclGen = struct { return writer.writeByte(')'); }, .Pointer => if (ty.isSlice()) { - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -770,7 +778,7 @@ pub const DeclGen = struct { return dg.renderValue(writer, payload_ty, val, location); } - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -784,7 +792,7 @@ pub const DeclGen = struct { }, .Struct => switch (ty.containerLayout()) { .Auto, .Extern => { - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -806,7 +814,7 @@ pub const DeclGen = struct { .Packed => return writer.print("{x}", .{try dg.fmtIntLiteral(ty, Value.undef)}), }, .Union => { - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -831,7 +839,7 @@ pub const DeclGen = struct { return writer.writeByte('}'); }, .ErrorUnion => { - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -844,7 +852,7 @@ pub const DeclGen = struct { }); }, .Array, .Vector => { - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -899,7 +907,7 @@ pub const DeclGen = struct { .decl_ref_mut, .decl_ref, => try dg.renderParentPtr(writer, val, ty), - else => try writer.print("{}", .{try dg.fmtIntLiteral(ty, val)}), + else => try writer.print("{}", .{try dg.fmtIntLiteralLoc(ty, val, location)}), }, .Float => { const bits = ty.floatBits(target); @@ -934,6 +942,7 @@ pub const DeclGen = struct { try writer.writeAll("zig_cast_"); try dg.renderTypeForBuiltinFnName(writer, ty); try writer.writeByte(' '); + var empty = true; if (std.math.isFinite(f128_val)) { try writer.writeAll("zig_as_"); try dg.renderTypeForBuiltinFnName(writer, ty); @@ -946,11 +955,14 @@ pub const DeclGen = struct { 128 => try writer.print("{x}", .{f128_val}), else => unreachable, } - } else { - const operation = if (std.math.isSignalNan(f128_val)) - "nans" - else if (std.math.isNan(f128_val)) + try writer.writeAll(", "); + empty = false; + } else if (location != .StaticInitializer) { + // isSignalNan is equivalent to isNan currently, and MSVC doens't have nans, so prefer nan + const operation = if (std.math.isNan(f128_val)) "nan" + else if (std.math.isSignalNan(f128_val)) + "nans" else if (std.math.isInf(f128_val)) "inf" else @@ -973,8 +985,13 @@ pub const DeclGen = struct { 128 => try writer.print("\"0x{x}\"", .{@bitCast(u128, f128_val)}), else => unreachable, }; + try writer.writeAll(", "); + empty = false; + } - return writer.print(", {x})", .{try dg.fmtIntLiteral(int_ty, int_val)}); + try writer.print("{x}", .{try dg.fmtIntLiteralLoc(int_ty, int_val, location)}); + if (!empty) try writer.writeByte(')'); + return; }, .Pointer => switch (val.tag()) { .null_value, .zero => if (ty.isSlice()) { @@ -995,7 +1012,7 @@ pub const DeclGen = struct { return dg.renderDeclValue(writer, ty, val, decl); }, .slice => { - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -1136,7 +1153,7 @@ pub const DeclGen = struct { return dg.renderValue(writer, payload_ty, payload_val, location); } - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -1170,7 +1187,7 @@ pub const DeclGen = struct { return dg.renderValue(writer, error_ty, val, location); } - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -1234,7 +1251,7 @@ pub const DeclGen = struct { .Auto, .Extern => { const field_vals = val.castTag(.aggregate).?.data; - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -1247,7 +1264,10 @@ pub const DeclGen = struct { if (!field_ty.hasRuntimeBits()) continue; if (!empty) try writer.writeByte(','); - try dg.renderValue(writer, field_ty, field_val, .Initializer); + try dg.renderValue(writer, field_ty, field_val, switch (location) { + .StaticInitializer => .StaticInitializer, + else => .Initializer, + }); empty = false; } @@ -1345,7 +1365,7 @@ pub const DeclGen = struct { .Union => { const union_obj = val.castTag(.@"union").?.data; - if (location != .Initializer) { + if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderTypecast(writer, ty); try writer.writeByte(')'); @@ -2561,6 +2581,24 @@ pub const DeclGen = struct { .mod = dg.module, } }; } + + fn fmtIntLiteralLoc( + dg: *DeclGen, + ty: Type, + val: Value, + location: ValueRenderLocation, // TODO: Instead add this as optional arg to fmtIntLiteralLoc + ) !std.fmt.Formatter(formatIntLiteral) { + const int_info = ty.intInfo(dg.module.getTarget()); + const c_bits = toCIntBits(int_info.bits); + if (c_bits == null or c_bits.? > 128) + return dg.fail("TODO implement integer constants larger than 128 bits", .{}); + return std.fmt.Formatter(formatIntLiteral){ .data = .{ + .ty = ty, + .val = val, + .mod = dg.module, + .location = location + } }; + } }; pub fn genGlobalAsm(mod: *Module, code: *std.ArrayList(u8)) !void { @@ -2606,7 +2644,7 @@ pub fn genErrDecls(o: *Object) !void { try writer.writeAll("static "); try o.dg.renderTypeAndName(writer, name_ty, .{ .identifier = identifier }, .Const, 0, .Complete); try writer.writeAll(" = "); - try o.dg.renderValue(writer, name_ty, name_val, .Initializer); + try o.dg.renderValue(writer, name_ty, name_val, .StaticInitializer); try writer.writeAll(";\n"); } @@ -2777,7 +2815,7 @@ pub fn genDecl(o: *Object) !void { if (variable.is_threadlocal) try w.writeAll("zig_threadlocal "); try o.dg.renderTypeAndName(w, o.dg.decl.ty, decl_c_value, .Mut, o.dg.decl.@"align", .Complete); try w.writeAll(" = "); - try o.dg.renderValue(w, tv.ty, variable.init, .Initializer); + try o.dg.renderValue(w, tv.ty, variable.init, .StaticInitializer); try w.writeByte(';'); try o.indent_writer.insertNewline(); } else { @@ -2794,7 +2832,7 @@ pub fn genDecl(o: *Object) !void { // https://github.com/ziglang/zig/issues/7582 try o.dg.renderTypeAndName(writer, tv.ty, decl_c_value, .Mut, o.dg.decl.@"align", .Complete); try writer.writeAll(" = "); - try o.dg.renderValue(writer, tv.ty, tv.val, .Initializer); + try o.dg.renderValue(writer, tv.ty, tv.val, .StaticInitializer); try writer.writeAll(";\n"); } } @@ -7027,7 +7065,7 @@ fn compilerRtAbbrev(ty: Type, target: std.Target) []const u8 { } fn StringLiteral(comptime WriterType: type) type { - // msvc has a length limit of 16380 per string literal (before concatenation) + // MSVC has a length limit of 16380 per string literal (before concatenation) const max_char_len = 4; const max_len = 16380 - max_char_len; @@ -7117,6 +7155,7 @@ const FormatIntLiteralContext = struct { ty: Type, val: Value, mod: *Module, + location: ?ValueRenderLocation = null }; fn formatIntLiteral( data: FormatIntLiteralContext, @@ -7188,6 +7227,7 @@ fn formatIntLiteral( if (!int.positive) { if (c_bits > 64) { // TODO: Could use negate function instead? + // TODO: Use fmtIntLiteral for 0? try writer.print("zig_sub_{c}{d}(zig_as_{c}{d}(0, 0), ", .{ signAbbrev(int_info.signedness), c_bits, signAbbrev(int_info.signedness), c_bits }); } else { try writer.writeByte('-'); @@ -7196,7 +7236,14 @@ fn formatIntLiteral( switch (data.ty.tag()) { .c_short, .c_ushort, .c_int, .c_uint, .c_long, .c_ulong, .c_longlong, .c_ulonglong => {}, - else => try writer.print("zig_as_{c}{d}(", .{ signAbbrev(int_info.signedness), c_bits }), + else => { + if (int_info.bits > 64 and data.location != null and data.location.? == .StaticInitializer) { + // MSVC treats casting the struct initializer as not constant (C2099), so an alternate form is used in global initializers + try writer.print("zig_as_init_{c}{d}(", .{ signAbbrev(int_info.signedness), c_bits }); + } else { + try writer.print("zig_as_{c}{d}(", .{ signAbbrev(int_info.signedness), c_bits }); + } + } } const limbs_count_64 = @divExact(64, @bitSizeOf(BigIntLimb)); From 7fb3683c32fc24d12452f49e0c1639531e57c47d Mon Sep 17 00:00:00 2001 From: kcbanner Date: Tue, 13 Dec 2022 01:19:21 -0500 Subject: [PATCH 11/46] cbe: more msvc compatibility work - Add .StaticInitializer to ValueRenderLocation to indicate that the emitted values must be constant expressions (no function calls, struct casting). - Add new path for special float types (nan, inf) that works in constant expressions - Implement windows.teb() using a syscall for .stage2_c because x64 MSVC doesn't support any kind of inline asm --- lib/std/os/windows.zig | 43 +++++++++++++++++++++--- lib/zig.h | 74 +++++++++++++++++++++++++++++++++++++----- src/codegen/c.zig | 71 +++++++++++++++++++++++----------------- 3 files changed, 146 insertions(+), 42 deletions(-) diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index f261b9cae1..efd7c805cf 100644 --- a/lib/std/os/windows.zig +++ b/lib/std/os/windows.zig @@ -1782,10 +1782,30 @@ pub fn teb() *TEB { \\ movl %%fs:0x18, %[ptr] : [ptr] "=r" (-> *TEB), ), - .x86_64 => asm volatile ( - \\ movq %%gs:0x30, %[ptr] - : [ptr] "=r" (-> *TEB), - ), + .x86_64 => blk: { + if (builtin.zig_backend == .stage2_c) { + // TODO: __asm is not available on x64 MSVC. This is a workaround + // until an intrinsic to read the gs register is available + var thread_information: THREAD_BASIC_INFORMATION = undefined; + const result = ntdll.NtQueryInformationThread( + kernel32.GetCurrentThread(), + .ThreadBasicInformation, + &thread_information, + @sizeOf(THREAD_BASIC_INFORMATION), + null); + + if (result == .SUCCESS) { + break :blk @ptrCast(*TEB, @alignCast(@alignOf(TEB), thread_information.TebBaseAddress)); + } else { + unexpectedStatus(result) catch unreachable; + } + } else { + break :blk asm volatile ( + \\ movq %%gs:0x30, %[ptr] + : [ptr] "=r" (-> *TEB), + ); + } + }, .aarch64 => asm volatile ( \\ mov %[ptr], x18 : [ptr] "=r" (-> *TEB), @@ -3455,6 +3475,21 @@ pub const ASSEMBLY_STORAGE_MAP = opaque {}; pub const FLS_CALLBACK_INFO = opaque {}; pub const RTL_BITMAP = opaque {}; pub const KAFFINITY = usize; +pub const KPRIORITY = i32; + +pub const CLIENT_ID = extern struct { + UniqueProcess: HANDLE, + UniqueThread: HANDLE, +}; + +pub const THREAD_BASIC_INFORMATION = extern struct { + ExitStatus: NTSTATUS, + TebBaseAddress: PVOID, + ClientId: CLIENT_ID, + AffinityMask: KAFFINITY, + Priority: KPRIORITY, + BasePriority: KPRIORITY, +}; pub const TEB = extern struct { Reserved1: [12]PVOID, diff --git a/lib/zig.h b/lib/zig.h index 2bced3c33d..b600e0bfc7 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1151,8 +1151,8 @@ typedef signed __int128 zig_i128; #define zig_as_u128(hi, lo) ((zig_u128)(hi)<<64|(lo)) #define zig_as_i128(hi, lo) ((zig_i128)zig_as_u128(hi, lo)) -#define zig_as_init_u128(hi, lo) zig_as_u128(hi, lo) -#define zig_as_init_i128(hi, lo) zig_as_i128(hi, lo) +#define zig_as_constant_u128(hi, lo) zig_as_u128(hi, lo) +#define zig_as_constant_i128(hi, lo) zig_as_i128(hi, lo) #define zig_hi_u128(val) ((zig_u64)((val) >> 64)) #define zig_lo_u128(val) ((zig_u64)((val) >> 0)) #define zig_hi_i128(val) ((zig_i64)((val) >> 64)) @@ -1180,8 +1180,8 @@ typedef struct { zig_align(16) zig_i64 hi; zig_u64 lo; } zig_i128; #define zig_as_u128(hi, lo) ((zig_u128){ .h##i = (hi), .l##o = (lo) }) #define zig_as_i128(hi, lo) ((zig_i128){ .h##i = (hi), .l##o = (lo) }) -#define zig_as_init_u128(hi, lo) { .h##i = (hi), .l##o = (lo) } -#define zig_as_init_i128(hi, lo) { .h##i = (hi), .l##o = (lo) } +#define zig_as_constant_u128(hi, lo) { .h##i = (hi), .l##o = (lo) } +#define zig_as_constant_i128(hi, lo) { .h##i = (hi), .l##o = (lo) } #define zig_hi_u128(val) ((val).hi) #define zig_lo_u128(val) ((val).lo) #define zig_hi_i128(val) ((val).hi) @@ -1342,13 +1342,28 @@ static inline zig_i128 zig_sub_i128(zig_i128 lhs, zig_i128 rhs) { } // TODO: Implement -static zig_i128 zig_div_trunc_i128(zig_i128 lhs, zig_i128 rhs); +static zig_i128 zig_div_trunc_i128(zig_i128 lhs, zig_i128 rhs) { + +} // TODO: Implement -static zig_u128 zig_div_trunc_u128(zig_u128 lhs, zig_u128 rhs); +zig_extern zig_u128 __udivmodti4(zig_u128 lhs, zig_u128 rhs, zig_u128* rem); +static zig_u128 zig_div_trunc_u128(zig_u128 lhs, zig_u128 rhs) { + zig_u128 rem; + return __udivmodti4(lhs, rhs, &rem); +}; // TODO: Implement -static zig_i128 zig_rem_i128(zig_i128 lhs, zig_i128 rhs); +zig_extern zig_i128 __modti3(zig_i128 lhs, zig_i128 rhs); +static zig_i128 zig_rem_i128(zig_i128 lhs, zig_i128 rhs) { + return __modti3(lhs, rhs); +} + +// TODO: Implement +zig_extern zig_u128 __umodti3(zig_u128 lhs, zig_u128 rhs); +static zig_u128 zig_rem_u128(zig_u128 lhs, zig_u128 rhs) { + return __umodti3(lhs, rhs); +} static inline zig_i128 zig_mod_i128(zig_i128 lhs, zig_i128 rhs) { zig_i128 rem = zig_rem_i128(lhs, rhs); @@ -1413,8 +1428,16 @@ static inline zig_i128 zig_subw_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { return zig_wrap_i128(zig_bitcast_i128(zig_sub_u128(zig_bitcast_u128(lhs), zig_bitcast_u128(rhs))), bits); } -// TODO: Implement -static zig_u128 zig_mul_u128(zig_u128 lhs, zig_u128 rhs); +#if _MSC_VER +static zig_u128 zig_mul_u128(zig_u128 lhs, zig_u128 rhs) { + zig_u64 lo_carry; + zig_u64 lo = _umul128(lhs.lo, rhs.lo, &lo_carry); + zig_u64 hi = lhs.hi * rhs.lo + lhs.lo * rhs.hi + lo_carry; + return zig_as_u128(hi, lo); +} +#else +static zig_u128 zig_mul_u128(zig_u128 lhs, zig_u128 rhs); // TODO +#endif static inline zig_u128 zig_mulw_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { return zig_wrap_u128(zig_mul_u128(lhs, rhs), bits); @@ -1636,14 +1659,22 @@ static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) { /* ========================= Floating Point Support ========================= */ #if _MSC_VER +#define zig_msvc_flt_inf ((double)(1e+300 * 1e+300)) +#define zig_msvc_flt_inff ((float)(1e+300 * 1e+300)) +#define zig_msvc_flt_infl ((long double)(1e+300 * 1e+300)) +#define zig_msvc_flt_nan ((double)(zig_msvc_flt_inf * 0.f)) +#define zig_msvc_flt_nanf ((float)(zig_msvc_flt_inf * 0.f)) +#define zig_msvc_flt_nanl ((long double)(zig_msvc_flt_inf * 0.f)) #define __builtin_nan(str) nan(str) #define __builtin_nanf(str) nanf(str) #define __builtin_nanl(str) nanl(str) +#define __builtin_inf() zig_msvc_flt_inf #endif #define zig_has_f16 1 #define zig_bitSizeOf_f16 16 #define zig_libc_name_f16(name) __##name##h +#define zig_as_special_constant_f16(sign, name, arg, repr) zig_as_special_f16(sign, name, arg, repr) #define zig_as_special_f16(sign, name, arg, repr) sign zig_as_f16(__builtin_##name, )(arg) #if FLT_MANT_DIG == 11 typedef float zig_f16; @@ -1669,11 +1700,18 @@ typedef zig_i16 zig_f16; #define zig_as_f16(fp, repr) repr #undef zig_as_special_f16 #define zig_as_special_f16(sign, name, arg, repr) repr +#undef zig_as_special_constant_f16 +#define zig_as_special_constant_f16(sign, name, arg, repr) repr #endif #define zig_has_f32 1 #define zig_bitSizeOf_f32 32 #define zig_libc_name_f32(name) name##f +#if _MSC_VER +#define zig_as_special_constant_f32(sign, name, arg, repr) sign zig_as_f32(zig_msvc_flt_##name, ) +#else +#define zig_as_special_constant_f32(sign, name, arg, repr) zig_as_special_f32(sign, name, arg, repr) +#endif #define zig_as_special_f32(sign, name, arg, repr) sign zig_as_f32(__builtin_##name, )(arg) #if FLT_MANT_DIG == 24 typedef float zig_f32; @@ -1696,11 +1734,18 @@ typedef zig_i32 zig_f32; #define zig_as_f32(fp, repr) repr #undef zig_as_special_f32 #define zig_as_special_f32(sign, name, arg, repr) repr +#undef zig_as_special_constant_f32 +#define zig_as_special_constant_f32(sign, name, arg, repr) repr #endif #define zig_has_f64 1 #define zig_bitSizeOf_f64 64 #define zig_libc_name_f64(name) name +#if _MSC_VER +#define zig_as_special_constant_f64(sign, name, arg, repr) sign zig_as_f64(zig_msvc_flt_##name, ) +#else +#define zig_as_special_constant_f64(sign, name, arg, repr) zig_as_special_f64(sign, name, arg, repr) +#endif #define zig_as_special_f64(sign, name, arg, repr) sign zig_as_f64(__builtin_##name, )(arg) #if FLT_MANT_DIG == 53 typedef float zig_f64; @@ -1726,11 +1771,14 @@ typedef zig_i64 zig_f64; #define zig_as_f64(fp, repr) repr #undef zig_as_special_f64 #define zig_as_special_f64(sign, name, arg, repr) repr +#undef zig_as_special_constant_f64 +#define zig_as_special_constant_f64(sign, name, arg, repr) repr #endif #define zig_has_f80 1 #define zig_bitSizeOf_f80 80 #define zig_libc_name_f80(name) __##name##x +#define zig_as_special_constant_f80(sign, name, arg, repr) zig_as_special_f80(sign, name, arg, repr) #define zig_as_special_f80(sign, name, arg, repr) sign zig_as_f80(__builtin_##name, )(arg) #if FLT_MANT_DIG == 64 typedef float zig_f80; @@ -1759,11 +1807,14 @@ typedef zig_i128 zig_f80; #define zig_as_f80(fp, repr) repr #undef zig_as_special_f80 #define zig_as_special_f80(sign, name, arg, repr) repr +#undef zig_as_special_constant_f80 +#define zig_as_special_constant_f80(sign, name, arg, repr) repr #endif #define zig_has_f128 1 #define zig_bitSizeOf_f128 128 #define zig_libc_name_f128(name) name##q +#define zig_as_special_constant_f128(sign, name, arg, repr) zig_as_special_f128(sign, name, arg, repr) #define zig_as_special_f128(sign, name, arg, repr) sign zig_as_f128(__builtin_##name, )(arg) #if FLT_MANT_DIG == 113 typedef float zig_f128; @@ -1794,10 +1845,13 @@ typedef zig_i128 zig_f128; #define zig_as_f128(fp, repr) repr #undef zig_as_special_f128 #define zig_as_special_f128(sign, name, arg, repr) repr +#undef zig_as_special_constant_f128 +#define zig_as_special_constant_f128(sign, name, arg, repr) repr #endif #define zig_has_c_longdouble 1 #define zig_libc_name_c_longdouble(name) name##l +#define zig_as_special_constant_c_longdouble(sign, name, arg, repr) zig_as_special_c_longdouble(sign, name, arg, repr) #define zig_as_special_c_longdouble(sign, name, arg, repr) sign __builtin_##name##l(arg) #if !_MSC_VER // TODO: Is there a better way to detect this is just double? typedef long double zig_c_longdouble; @@ -1811,6 +1865,8 @@ typedef zig_i128 zig_c_longdouble; #define zig_as_c_longdouble(fp, repr) repr #undef zig_as_special_c_longdouble #define zig_as_special_c_longdouble(sign, name, arg, repr) repr +#undef zig_as_special_constant_c_longdouble +#define zig_as_special_constant_c_longdouble(sign, name, arg, repr) repr #endif #define zig_cast_f16 (zig_f16) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 444e76c212..7bfa59ea41 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -711,6 +711,10 @@ pub const DeclGen = struct { val = rt.data; } const target = dg.module.getTarget(); + const initializer_type: ValueRenderLocation = switch (location) { + .StaticInitializer => .StaticInitializer, + else => .Initializer, + }; const safety_on = switch (dg.module.optimizeMode()) { .Debug, .ReleaseSafe => true, @@ -785,9 +789,9 @@ pub const DeclGen = struct { } try writer.writeAll("{ .payload = "); - try dg.renderValue(writer, payload_ty, val, .Initializer); + try dg.renderValue(writer, payload_ty, val, initializer_type); try writer.writeAll(", .is_null = "); - try dg.renderValue(writer, Type.bool, val, .Initializer); + try dg.renderValue(writer, Type.bool, val, initializer_type); return writer.writeAll(" }"); }, .Struct => switch (ty.containerLayout()) { @@ -804,7 +808,7 @@ pub const DeclGen = struct { if (!field.ty.hasRuntimeBits()) continue; if (!empty) try writer.writeByte(','); - try dg.renderValue(writer, field.ty, val, .Initializer); + try dg.renderValue(writer, field.ty, val, initializer_type); empty = false; } @@ -825,14 +829,14 @@ pub const DeclGen = struct { const layout = ty.unionGetLayout(target); if (layout.tag_size != 0) { try writer.writeAll(" .tag = "); - try dg.renderValue(writer, tag_ty, val, .Initializer); + try dg.renderValue(writer, tag_ty, val, initializer_type); try writer.writeByte(','); } try writer.writeAll(" .payload = {"); } for (ty.unionFields().values()) |field| { if (!field.ty.hasRuntimeBits()) continue; - try dg.renderValue(writer, field.ty, val, .Initializer); + try dg.renderValue(writer, field.ty, val, initializer_type); break; } else try writer.print("{x}", .{try dg.fmtIntLiteral(Type.u8, Value.undef)}); if (ty.unionTagTypeSafety()) |_| try writer.writeByte('}'); @@ -846,7 +850,7 @@ pub const DeclGen = struct { } try writer.writeAll("{ .payload = "); - try dg.renderValue(writer, ty.errorUnionPayload(), val, .Initializer); + try dg.renderValue(writer, ty.errorUnionPayload(), val, initializer_type); return writer.print(", .error = {x} }}", .{ try dg.fmtIntLiteral(ty.errorUnionSet(), val), }); @@ -873,7 +877,7 @@ pub const DeclGen = struct { var index: usize = 0; while (index < c_len) : (index += 1) { if (index > 0) try writer.writeAll(", "); - try dg.renderValue(writer, ty.childType(), val, .Initializer); + try dg.renderValue(writer, ty.childType(), val, initializer_type); } return writer.writeByte('}'); } @@ -957,7 +961,7 @@ pub const DeclGen = struct { } try writer.writeAll(", "); empty = false; - } else if (location != .StaticInitializer) { + } else { // isSignalNan is equivalent to isNan currently, and MSVC doens't have nans, so prefer nan const operation = if (std.math.isNan(f128_val)) "nan" @@ -968,7 +972,19 @@ pub const DeclGen = struct { else unreachable; + if (location == .StaticInitializer) { + if (!std.math.isNan(f128_val) and std.math.isSignalNan(f128_val)) + return dg.fail("TODO: C backend: implement nans rendering in static initializers", .{}); + + // MSVC doesn't have a way to define a custom or signaling NaN value in a constant expression + + // TODO: Re-enable this check, otherwise we're writing qnan bit patterns on msvc incorrectly + // if (std.math.isNan(f128_val) and f128_val != std.math.qnan_f128) + // return dg.fail("Only quiet nans are supported in global variable initializers", .{}); + } + try writer.writeAll("zig_as_special_"); + if (location == .StaticInitializer) try writer.writeAll("constant_"); try dg.renderTypeForBuiltinFnName(writer, ty); try writer.writeByte('('); if (std.math.signbit(f128_val)) try writer.writeByte('-'); @@ -987,7 +1003,6 @@ pub const DeclGen = struct { }; try writer.writeAll(", "); empty = false; - } try writer.print("{x}", .{try dg.fmtIntLiteralLoc(int_ty, int_val, location)}); if (!empty) try writer.writeByte(')'); @@ -1022,9 +1037,9 @@ pub const DeclGen = struct { var buf: Type.SlicePtrFieldTypeBuffer = undefined; try writer.writeByte('{'); - try dg.renderValue(writer, ty.slicePtrFieldType(&buf), slice.ptr, .Initializer); + try dg.renderValue(writer, ty.slicePtrFieldType(&buf), slice.ptr, initializer_type); try writer.writeAll(", "); - try dg.renderValue(writer, Type.usize, slice.len, .Initializer); + try dg.renderValue(writer, Type.usize, slice.len, initializer_type); try writer.writeByte('}'); }, .function => { @@ -1062,7 +1077,7 @@ pub const DeclGen = struct { try writer.writeByte('{'); const ai = ty.arrayInfo(); if (ai.sentinel) |s| { - try dg.renderValue(writer, ai.elem_type, s, .Initializer); + try dg.renderValue(writer, ai.elem_type, s, initializer_type); } else { try writer.writeByte('0'); } @@ -1085,6 +1100,7 @@ pub const DeclGen = struct { // MSVC throws C2078 if an array of size 65536 or greater is initialized with a string literal const max_string_initializer_len = 65535; + const ai = ty.arrayInfo(); if (ai.elem_type.eql(Type.u8, dg.module)) { if (ai.len <= max_string_initializer_len) { @@ -1112,7 +1128,7 @@ pub const DeclGen = struct { } if (ai.sentinel) |s| { if (index != 0) try writer.writeByte(','); - try dg.renderValue(writer, ai.elem_type, s, .Initializer); + try dg.renderValue(writer, ai.elem_type, s, initializer_type); } try writer.writeByte('}'); } @@ -1122,11 +1138,11 @@ pub const DeclGen = struct { while (index < ai.len) : (index += 1) { if (index != 0) try writer.writeByte(','); const elem_val = try val.elemValue(dg.module, arena_allocator, index); - try dg.renderValue(writer, ai.elem_type, elem_val, .Initializer); + try dg.renderValue(writer, ai.elem_type, elem_val, initializer_type); } if (ai.sentinel) |s| { if (index != 0) try writer.writeByte(','); - try dg.renderValue(writer, ai.elem_type, s, .Initializer); + try dg.renderValue(writer, ai.elem_type, s, initializer_type); } try writer.writeByte('}'); } @@ -1162,9 +1178,9 @@ pub const DeclGen = struct { const payload_val = if (val.castTag(.opt_payload)) |pl| pl.data else Value.undef; try writer.writeAll("{ .payload = "); - try dg.renderValue(writer, payload_ty, payload_val, .Initializer); + try dg.renderValue(writer, payload_ty, payload_val, initializer_type); try writer.writeAll(", .is_null = "); - try dg.renderValue(writer, Type.bool, is_null_val, .Initializer); + try dg.renderValue(writer, Type.bool, is_null_val, initializer_type); try writer.writeAll(" }"); }, .ErrorSet => { @@ -1197,9 +1213,9 @@ pub const DeclGen = struct { const error_val = if (val.errorUnionIsPayload()) Value.zero else val; try writer.writeAll("{ .payload = "); - try dg.renderValue(writer, payload_ty, payload_val, .Initializer); + try dg.renderValue(writer, payload_ty, payload_val, initializer_type); try writer.writeAll(", .error = "); - try dg.renderValue(writer, error_ty, error_val, .Initializer); + try dg.renderValue(writer, error_ty, error_val, initializer_type); try writer.writeAll(" }"); }, .Enum => { @@ -1264,10 +1280,7 @@ pub const DeclGen = struct { if (!field_ty.hasRuntimeBits()) continue; if (!empty) try writer.writeByte(','); - try dg.renderValue(writer, field_ty, field_val, switch (location) { - .StaticInitializer => .StaticInitializer, - else => .Initializer, - }); + try dg.renderValue(writer, field_ty, field_val, initializer_type); empty = false; } @@ -1297,7 +1310,7 @@ pub const DeclGen = struct { if (eff_num_fields == 0) { try writer.writeByte('('); - try dg.renderValue(writer, ty, Value.undef, .Initializer); + try dg.renderValue(writer, ty, Value.undef, initializer_type); try writer.writeByte(')'); } else if (ty.bitSize(target) > 64) { // zig_or_u128(zig_or_u128(zig_shl_u128(a, a_off), zig_shl_u128(b, b_off)), zig_shl_u128(c, c_off)) @@ -1385,7 +1398,7 @@ pub const DeclGen = struct { try dg.renderTypecast(writer, ty); try writer.writeByte(')'); } - try dg.renderValue(writer, field_ty, union_obj.val, .Initializer); + try dg.renderValue(writer, field_ty, union_obj.val, initializer_type); } else { try writer.writeAll("0"); } @@ -1397,7 +1410,7 @@ pub const DeclGen = struct { const layout = ty.unionGetLayout(target); if (layout.tag_size != 0) { try writer.writeAll(".tag = "); - try dg.renderValue(writer, tag_ty, union_obj.tag, .Initializer); + try dg.renderValue(writer, tag_ty, union_obj.tag, initializer_type); try writer.writeAll(", "); } try writer.writeAll(".payload = {"); @@ -1406,11 +1419,11 @@ pub const DeclGen = struct { var it = ty.unionFields().iterator(); if (field_ty.hasRuntimeBits()) { try writer.print(".{ } = ", .{fmtIdent(field_name)}); - try dg.renderValue(writer, field_ty, union_obj.val, .Initializer); + try dg.renderValue(writer, field_ty, union_obj.val, initializer_type); } else while (it.next()) |field| { if (!field.value_ptr.ty.hasRuntimeBits()) continue; try writer.print(".{ } = ", .{fmtIdent(field.key_ptr.*)}); - try dg.renderValue(writer, field.value_ptr.ty, Value.undef, .Initializer); + try dg.renderValue(writer, field.value_ptr.ty, Value.undef, initializer_type); break; } else try writer.writeAll(".empty_union = 0"); if (ty.unionTagTypeSafety()) |_| try writer.writeByte('}'); @@ -7239,7 +7252,7 @@ fn formatIntLiteral( else => { if (int_info.bits > 64 and data.location != null and data.location.? == .StaticInitializer) { // MSVC treats casting the struct initializer as not constant (C2099), so an alternate form is used in global initializers - try writer.print("zig_as_init_{c}{d}(", .{ signAbbrev(int_info.signedness), c_bits }); + try writer.print("zig_as_constant_{c}{d}(", .{ signAbbrev(int_info.signedness), c_bits }); } else { try writer.print("zig_as_{c}{d}(", .{ signAbbrev(int_info.signedness), c_bits }); } From 3d4ff4fdda9ec2432f0496fb3e6fa6789d882140 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Tue, 13 Dec 2022 01:51:19 -0500 Subject: [PATCH 12/46] cbe: 32 bit fixup for update-zig1 --- src/codegen/c.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 7bfa59ea41..9fc1966b1c 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -7083,7 +7083,7 @@ fn StringLiteral(comptime WriterType: type) type { const max_len = 16380 - max_char_len; return struct { - cur_len: usize = 0, + cur_len: u64 = 0, counting_writer: std.io.CountingWriter(WriterType), pub const Error = WriterType.Error; From b86a8b4a5b862ce5a6a1c7ca5a755b90c16693db Mon Sep 17 00:00:00 2001 From: kcbanner Date: Tue, 13 Dec 2022 02:20:17 -0500 Subject: [PATCH 13/46] cbe: airNot emits zig_not_ calls for integers --- src/codegen/c.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 9fc1966b1c..d2da732906 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -3872,12 +3872,12 @@ fn airNot(f: *Function, inst: Air.Inst.Index) !CValue { const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); + try f.writeCValue(writer, local, .Other); try writer.writeAll(" = "); try writer.writeByte('!'); try f.writeCValue(writer, op, .Other); try writer.writeAll(";\n"); - return local; } From 9a77743cc71008d7186614212e542eb2d930af57 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Tue, 13 Dec 2022 21:58:03 -0500 Subject: [PATCH 14/46] cbe: add doNotOptimizeAwayC to handle not having __asm support in msvc --- lib/std/mem.zig | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/lib/std/mem.zig b/lib/std/mem.zig index 774db2caa4..42b35281e0 100644 --- a/lib/std/mem.zig +++ b/lib/std/mem.zig @@ -3771,7 +3771,7 @@ pub fn doNotOptimizeAway(val: anytype) void { .Bool => doNotOptimizeAway(@boolToInt(val)), .Int => { const bits = t.Int.bits; - if (bits <= max_gp_register_bits) { + if (bits <= max_gp_register_bits and builtin.zig_backend != .stage2_c) { const val2 = @as( std.meta.Int(t.Int.signedness, @max(8, std.math.ceilPowerOfTwoAssert(u16, bits))), val, @@ -3783,18 +3783,24 @@ pub fn doNotOptimizeAway(val: anytype) void { } else doNotOptimizeAway(&val); }, .Float => { - if (t.Float.bits == 32 or t.Float.bits == 64) { + if ((t.Float.bits == 32 or t.Float.bits == 64) and builtin.zig_backend != .stage2_c) { asm volatile ("" : : [val] "rm" (val), ); } else doNotOptimizeAway(&val); }, - .Pointer => asm volatile ("" - : - : [val] "m" (val), - : "memory" - ), + .Pointer => { + if (builtin.zig_backend == .stage2_c) { + doNotOptimizeAwayC(val); + } else { + asm volatile ("" + : + : [val] "m" (val), + : "memory" + ); + } + }, .Array => { if (t.Array.len * @sizeOf(t.Array.child) <= 64) { for (val) |v| doNotOptimizeAway(v); @@ -3804,6 +3810,16 @@ pub fn doNotOptimizeAway(val: anytype) void { } } +/// .stage2_c doesn't support asm blocks yet, so use volatile stores instead +var deopt_target: if (builtin.zig_backend == .stage2_c) u8 else void = undefined; +fn doNotOptimizeAwayC(ptr: anytype) void { + const dest = @ptrCast(*volatile u8, &deopt_target); + for (asBytes(ptr)) |b| { + dest.* = b; + } + dest.* = 0; +} + test "doNotOptimizeAway" { comptime doNotOptimizeAway("test"); From fbd3459a520f28d32e45a0f8d472a2d0b471e36e Mon Sep 17 00:00:00 2001 From: kcbanner Date: Tue, 13 Dec 2022 23:22:50 -0500 Subject: [PATCH 15/46] compiler_rt: fixup divti3 and fixunshfti --- lib/compiler_rt/divti3.zig | 19 +++---------------- lib/compiler_rt/fixunshfti.zig | 2 +- lib/zig.h | 28 +++++++++++++--------------- 3 files changed, 17 insertions(+), 32 deletions(-) diff --git a/lib/compiler_rt/divti3.zig b/lib/compiler_rt/divti3.zig index cd38d7a93e..31302aab4d 100644 --- a/lib/compiler_rt/divti3.zig +++ b/lib/compiler_rt/divti3.zig @@ -7,21 +7,8 @@ const common = @import("common.zig"); pub const panic = common.panic; comptime { - if (builtin.os.tag == .windows) { - switch (arch) { - .x86 => { - @export(__divti3, .{ .name = "__divti3", .linkage = common.linkage, .visibility = common.visibility }); - }, - .x86_64 => { - // The "ti" functions must use Vector(2, u64) parameter types to adhere to the ABI - // that LLVM expects compiler-rt to have. - @export(__divti3_windows_x86_64, .{ .name = "__divti3", .linkage = common.linkage, .visibility = common.visibility }); - }, - else => {}, - } - if (arch.isAARCH64()) { - @export(__divti3, .{ .name = "__divti3", .linkage = common.linkage, .visibility = common.visibility }); - } + if (common.want_windows_v2u64_abi) { + @export(__divti3_windows_x86_64, .{ .name = "__divti3", .linkage = common.linkage, .visibility = common.visibility }); } else { @export(__divti3, .{ .name = "__divti3", .linkage = common.linkage, .visibility = common.visibility }); } @@ -31,7 +18,7 @@ pub fn __divti3(a: i128, b: i128) callconv(.C) i128 { return div(a, b); } -const v128 = @import("std").meta.Vector(2, u64); +const v128 = @Vector(2, u64); fn __divti3_windows_x86_64(a: v128, b: v128) callconv(.C) v128 { return @bitCast(v128, div(@bitCast(i128, a), @bitCast(i128, b))); diff --git a/lib/compiler_rt/fixunshfti.zig b/lib/compiler_rt/fixunshfti.zig index f7dcb3f790..0c67d4998a 100644 --- a/lib/compiler_rt/fixunshfti.zig +++ b/lib/compiler_rt/fixunshfti.zig @@ -16,7 +16,7 @@ pub fn __fixunshfti(a: f16) callconv(.C) u128 { return floatToInt(u128, a); } -const v2u64 = @import("std").meta.Vector(2, u64); +const v2u64 = @Vector(2, u64); fn __fixunshfti_windows_x86_64(a: f16) callconv(.C) v2u64 { return @bitCast(v2u64, floatToInt(u128, a)); diff --git a/lib/zig.h b/lib/zig.h index b600e0bfc7..c039f3f52f 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1341,30 +1341,26 @@ static inline zig_i128 zig_sub_i128(zig_i128 lhs, zig_i128 rhs) { return res; } -// TODO: Implement -static zig_i128 zig_div_trunc_i128(zig_i128 lhs, zig_i128 rhs) { - -} - -// TODO: Implement -zig_extern zig_u128 __udivmodti4(zig_u128 lhs, zig_u128 rhs, zig_u128* rem); +zig_extern zig_u128 __udivti3(zig_u128 lhs, zig_u128 rhs); static zig_u128 zig_div_trunc_u128(zig_u128 lhs, zig_u128 rhs) { - zig_u128 rem; - return __udivmodti4(lhs, rhs, &rem); + return __udivti3(lhs, rhs); }; -// TODO: Implement -zig_extern zig_i128 __modti3(zig_i128 lhs, zig_i128 rhs); -static zig_i128 zig_rem_i128(zig_i128 lhs, zig_i128 rhs) { - return __modti3(lhs, rhs); -} +zig_extern zig_i128 __divti3(zig_i128 lhs, zig_i128 rhs); +static zig_i128 zig_div_trunc_i128(zig_i128 lhs, zig_i128 rhs) { + return __divti3(lhs, rhs); +}; -// TODO: Implement zig_extern zig_u128 __umodti3(zig_u128 lhs, zig_u128 rhs); static zig_u128 zig_rem_u128(zig_u128 lhs, zig_u128 rhs) { return __umodti3(lhs, rhs); } +zig_extern zig_i128 __modti3(zig_i128 lhs, zig_i128 rhs); +static zig_i128 zig_rem_i128(zig_i128 lhs, zig_i128 rhs) { + return __modti3(lhs, rhs); +} + static inline zig_i128 zig_mod_i128(zig_i128 lhs, zig_i128 rhs) { zig_i128 rem = zig_rem_i128(lhs, rhs); return zig_add_i128(rem, (((lhs.hi ^ rhs.hi) & rem.hi) < zig_as_i64(0) ? rhs : zig_as_i128(0, 0))); @@ -1669,6 +1665,8 @@ static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) { #define __builtin_nanf(str) nanf(str) #define __builtin_nanl(str) nanl(str) #define __builtin_inf() zig_msvc_flt_inf +#define __builtin_inff() zig_msvc_flt_inff +#define __builtin_infl() zig_msvc_flt_infl #endif #define zig_has_f16 1 From f155ef2f4b3243fd31ae910c66587d672402144e Mon Sep 17 00:00:00 2001 From: kcbanner Date: Wed, 14 Dec 2022 00:09:44 -0500 Subject: [PATCH 16/46] cbe: implementing 128 bit math functions for !zig_has_int128 - Add addo_(i|u)128, subo_(i|u)128, mulo_(i|u)128, - Move zig_shlo_(i|u)128 into common code - Fixup zig_shls_i128 passing rhs as 128 --- lib/zig.h | 92 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 71 insertions(+), 21 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index c039f3f52f..7a50d3ef59 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1445,18 +1445,6 @@ static inline zig_i128 zig_mulw_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { #if zig_has_int128 -static inline bool zig_shlo_u128(zig_u128 *res, zig_u128 lhs, zig_u8 rhs, zig_u8 bits) { - *res = zig_shlw_u128(lhs, rhs, bits); - return zig_cmp_u128(lhs, zig_shr_u128(zig_maxInt(u128, bits), rhs)) > zig_as_i32(0); -} - -static inline bool zig_shlo_i128(zig_i128 *res, zig_i128 lhs, zig_u8 rhs, zig_u8 bits) { - *res = zig_shlw_i128(lhs, rhs, bits); - zig_i128 mask = zig_bitcast_i128(zig_shl_u128(zig_maxInt_u128, bits - rhs - zig_as_u8(1))); - return zig_cmp_i128(zig_and_i128(lhs, mask), zig_as_i128(0, 0)) != zig_as_i32(0) && - zig_cmp_i128(zig_and_i128(lhs, mask), mask) != zig_as_i32(0); -} - static inline bool zig_addo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { #if zig_has_builtin(add_overflow) zig_u128 full_res; @@ -1537,18 +1525,80 @@ static inline bool zig_mulo_i128(zig_i128 *res, zig_i128 lhs, zig_i128 rhs, zig_ #else /* zig_has_int128 */ -/* static inline bool zig_addo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs) { */ -/* return zig_addo_u64(&res->hi, lhs.hi, rhs.hi, UINT64_MAX) | */ -/* zig_addo_u64(&res->hi, res->hi, zig_addo_u64(&res->lo, lhs.lo, rhs.lo, UINT64_MAX)); */ -/* } */ +static inline bool zig_overflow_u128(bool overflow, zig_u128 full_res, zig_u8 bits) { + return overflow || + zig_cmp_u128(full_res, zig_minInt(u128, bits)) < zig_as_i32(0) || + zig_cmp_u128(full_res, zig_maxInt(u128, bits)) > zig_as_i32(0); +} -/* static inline bool zig_subo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs) { */ -/* return zig_subo_u64(&res->hi, lhs.hi, rhs.hi, UINT64_MAX) | */ -/* zig_subo_u64(&res->hi, res->hi, zig_subo_u64(&res->lo, lhs.lo, rhs.lo, UINT64_MAX)); */ -/* } */ +static inline bool zig_overflow_i128(bool overflow, zig_i128 full_res, zig_u8 bits) { + return overflow || + zig_cmp_i128(full_res, zig_minInt(i128, bits)) < zig_as_i32(0) || + zig_cmp_i128(full_res, zig_maxInt(i128, bits)) > zig_as_i32(0); +} + +static inline bool zig_addo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { + zig_u128 full_res; + bool overflow = + zig_addo_u64(&full_res.hi, lhs.hi, rhs.hi, 64) | + zig_addo_u64(&full_res.hi, full_res.hi, zig_addo_u64(&full_res.lo, lhs.lo, rhs.lo, 64), 64); + *res = zig_wrap_u128(full_res, bits); + return zig_overflow_u128(overflow, full_res, bits); +} + +zig_extern zig_i128 __addoti4(zig_i128 lhs, zig_i128 rhs, zig_c_int *overflow); +static inline bool zig_addo_i128(zig_i128 *res, zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { + zig_c_int overflow_int; + zig_i128 full_res = __addoti4(lhs, rhs, &overflow_int); + *res = zig_wrap_i128(full_res, bits); + return zig_overflow_i128(overflow_int, full_res, bits); +} + +static inline bool zig_subo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { + zig_u128 full_res; + bool overflow = + zig_subo_u64(&full_res.hi, lhs.hi, rhs.hi, 64) | + zig_subo_u64(&full_res.hi, full_res.hi, zig_subo_u64(&full_res.lo, lhs.lo, rhs.lo, 64), 64); + *res = zig_wrap_u128(full_res, bits); + return zig_overflow_u128(overflow, full_res, bits); +} + +zig_extern zig_i128 __suboti4(zig_i128 lhs, zig_i128 rhs, zig_c_int *overflow); +static inline bool zig_subo_i128(zig_i128 *res, zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { + zig_c_int overflow_int; + zig_i128 full_res = __suboti4(lhs, rhs, &overflow_int); + *res = zig_wrap_i128(full_res, bits); + return zig_overflow_i128(overflow_int, full_res, bits); +} + +static inline bool zig_mulo_u128(zig_u128 *res, zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { + *res = zig_mulw_u128(lhs, rhs, bits); + return zig_cmp_u128(*res, zig_as_u128(0, 0)) != zig_as_i32(0) && + zig_cmp_u128(lhs, zig_div_trunc_u128(zig_maxInt(u128, bits), rhs)) > zig_as_i32(0); +} + +zig_extern zig_i128 __muloti4(zig_i128 lhs, zig_i128 rhs, zig_c_int *overflow); +static inline bool zig_mulo_i128(zig_i128 *res, zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { + zig_c_int overflow_int; + zig_i128 full_res = __muloti4(lhs, rhs, &overflow_int); + *res = zig_wrap_i128(full_res, bits); + return zig_overflow_i128(overflow_int, full_res, bits); +} #endif /* zig_has_int128 */ +static inline bool zig_shlo_u128(zig_u128 *res, zig_u128 lhs, zig_u8 rhs, zig_u8 bits) { + *res = zig_shlw_u128(lhs, rhs, bits); + return zig_cmp_u128(lhs, zig_shr_u128(zig_maxInt(u128, bits), rhs)) > zig_as_i32(0); +} + +static inline bool zig_shlo_i128(zig_i128 *res, zig_i128 lhs, zig_u8 rhs, zig_u8 bits) { + *res = zig_shlw_i128(lhs, rhs, bits); + zig_i128 mask = zig_bitcast_i128(zig_shl_u128(zig_maxInt_u128, bits - rhs - zig_as_u8(1))); + return zig_cmp_i128(zig_and_i128(lhs, mask), zig_as_i128(0, 0)) != zig_as_i32(0) && + zig_cmp_i128(zig_and_i128(lhs, mask), mask) != zig_as_i32(0); +} + static inline zig_u128 zig_shls_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { zig_u128 res; if (zig_cmp_u128(rhs, zig_as_u128(0, bits)) >= zig_as_i32(0)) @@ -1563,7 +1613,7 @@ static inline zig_u128 zig_shls_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { static inline zig_i128 zig_shls_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { zig_i128 res; - if (zig_cmp_u128(zig_bitcast_u128(rhs), zig_as_u128(0, bits)) < zig_as_i32(0) && !zig_shlo_i128(&res, lhs, rhs, bits)) return res; + if (zig_cmp_u128(zig_bitcast_u128(rhs), zig_as_u128(0, bits)) < zig_as_i32(0) && !zig_shlo_i128(&res, lhs, zig_lo_i128(rhs), bits)) return res; return zig_cmp_i128(lhs, zig_as_i128(0, 0)) < zig_as_i32(0) ? zig_minInt(i128, bits) : zig_maxInt(i128, bits); } From 2d34477dbb895b7a37284b50ebc1feb23ef77a64 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Fri, 16 Dec 2022 02:01:07 -0500 Subject: [PATCH 17/46] cbe: msvc atomics - Implement most atomic operations for msvc - Disable "atomicrmw with floats" test for cbe --- lib/zig.h | 218 ++++++++++++++++++++++++++++++-------- src/codegen/c.zig | 22 +++- test/behavior/atomics.zig | 1 + 3 files changed, 195 insertions(+), 46 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index 7a50d3ef59..5d4c7c770f 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -146,22 +146,25 @@ typedef char bool; #define zig_wasm_memory_grow(index, delta) zig_unimplemented() #endif +#define zig_concat(lhs, rhs) lhs##rhs +#define zig_expand_concat(lhs, rhs) zig_concat(lhs, rhs) + #if __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_ATOMICS__) #include #define zig_atomic(type) _Atomic(type) -#define zig_cmpxchg_strong(obj, expected, desired, succ, fail) atomic_compare_exchange_strong_explicit(obj, &(expected), desired, succ, fail) -#define zig_cmpxchg_weak(obj, expected, desired, succ, fail) atomic_compare_exchange_weak_explicit (obj, &(expected), desired, succ, fail) -#define zig_atomicrmw_xchg(obj, arg, order) atomic_exchange_explicit (obj, arg, order) -#define zig_atomicrmw_add(obj, arg, order) atomic_fetch_add_explicit (obj, arg, order) -#define zig_atomicrmw_sub(obj, arg, order) atomic_fetch_sub_explicit (obj, arg, order) -#define zig_atomicrmw_or(obj, arg, order) atomic_fetch_or_explicit (obj, arg, order) -#define zig_atomicrmw_xor(obj, arg, order) atomic_fetch_xor_explicit (obj, arg, order) -#define zig_atomicrmw_and(obj, arg, order) atomic_fetch_and_explicit (obj, arg, order) -#define zig_atomicrmw_nand(obj, arg, order) __atomic_fetch_nand (obj, arg, order) -#define zig_atomicrmw_min(obj, arg, order) __atomic_fetch_min (obj, arg, order) -#define zig_atomicrmw_max(obj, arg, order) __atomic_fetch_max (obj, arg, order) -#define zig_atomic_store(obj, arg, order) atomic_store_explicit (obj, arg, order) -#define zig_atomic_load(obj, order) atomic_load_explicit (obj, order) +#define zig_cmpxchg_strong(obj, expected, desired, succ, fail, type) atomic_compare_exchange_strong_explicit(obj, &(expected), desired, succ, fail) +#define zig_cmpxchg_weak(obj, expected, desired, succ, fail, type) atomic_compare_exchange_weak_explicit (obj, &(expected), desired, succ, fail) +#define zig_atomicrmw_xchg(obj, arg, order, type) atomic_exchange_explicit (obj, arg, order) +#define zig_atomicrmw_add(obj, arg, order, type) atomic_fetch_add_explicit (obj, arg, order) +#define zig_atomicrmw_sub(obj, arg, order, type) atomic_fetch_sub_explicit (obj, arg, order) +#define zig_atomicrmw_or(obj, arg, order, type) atomic_fetch_or_explicit (obj, arg, order) +#define zig_atomicrmw_xor(obj, arg, order, type) atomic_fetch_xor_explicit (obj, arg, order) +#define zig_atomicrmw_and(obj, arg, order, type) atomic_fetch_and_explicit (obj, arg, order) +#define zig_atomicrmw_nand(obj, arg, order, type) __atomic_fetch_nand (obj, arg, order) +#define zig_atomicrmw_min(obj, arg, order, type) __atomic_fetch_min (obj, arg, order) +#define zig_atomicrmw_max(obj, arg, order, type) __atomic_fetch_max (obj, arg, order) +#define zig_atomic_store(obj, arg, order, type) atomic_store_explicit (obj, arg, order) +#define zig_atomic_load(obj, order, type) atomic_load_explicit (obj, order) #define zig_fence(order) atomic_thread_fence(order) #elif defined(__GNUC__) #define memory_order_relaxed __ATOMIC_RELAXED @@ -171,20 +174,44 @@ typedef char bool; #define memory_order_acq_rel __ATOMIC_ACQ_REL #define memory_order_seq_cst __ATOMIC_SEQ_CST #define zig_atomic(type) type -#define zig_cmpxchg_strong(obj, expected, desired, succ, fail) __atomic_compare_exchange_n(obj, &(expected), desired, false, succ, fail) -#define zig_cmpxchg_weak(obj, expected, desired, succ, fail) __atomic_compare_exchange_n(obj, &(expected), desired, true , succ, fail) -#define zig_atomicrmw_xchg(obj, arg, order) __atomic_exchange_n(obj, arg, order) -#define zig_atomicrmw_add(obj, arg, order) __atomic_fetch_add (obj, arg, order) -#define zig_atomicrmw_sub(obj, arg, order) __atomic_fetch_sub (obj, arg, order) -#define zig_atomicrmw_or(obj, arg, order) __atomic_fetch_or (obj, arg, order) -#define zig_atomicrmw_xor(obj, arg, order) __atomic_fetch_xor (obj, arg, order) -#define zig_atomicrmw_and(obj, arg, order) __atomic_fetch_and (obj, arg, order) -#define zig_atomicrmw_nand(obj, arg, order) __atomic_fetch_nand(obj, arg, order) -#define zig_atomicrmw_min(obj, arg, order) __atomic_fetch_min (obj, arg, order) -#define zig_atomicrmw_max(obj, arg, order) __atomic_fetch_max (obj, arg, order) -#define zig_atomic_store(obj, arg, order) __atomic_store_n (obj, arg, order) -#define zig_atomic_load(obj, order) __atomic_load_n (obj, order) +#define zig_cmpxchg_strong(obj, expected, desired, succ, fail, types) __atomic_compare_exchange_n(obj, &(expected), desired, false, succ, fail) +#define zig_cmpxchg_weak(obj, expected, desired, succ, fail, types) __atomic_compare_exchange_n(obj, &(expected), desired, true , succ, fail) +#define zig_atomicrmw_xchg(obj, arg, order, type) __atomic_exchange_n(obj, arg, order) +#define zig_atomicrmw_add(obj, arg, order, type) __atomic_fetch_add (obj, arg, order) +#define zig_atomicrmw_sub(obj, arg, order, type) __atomic_fetch_sub (obj, arg, order) +#define zig_atomicrmw_or(obj, arg, order, type) __atomic_fetch_or (obj, arg, order) +#define zig_atomicrmw_xor(obj, arg, order, type) __atomic_fetch_xor (obj, arg, order) +#define zig_atomicrmw_and(obj, arg, order, type) __atomic_fetch_and (obj, arg, order) +#define zig_atomicrmw_nand(obj, arg, order, type) __atomic_fetch_nand(obj, arg, order) +#define zig_atomicrmw_min(obj, arg, order, type) __atomic_fetch_min (obj, arg, order) +#define zig_atomicrmw_max(obj, arg, order, type) __atomic_fetch_max (obj, arg, order) +#define zig_atomic_store(obj, arg, order, type) __atomic_store_n (obj, arg, order) +#define zig_atomic_load(obj, order, type) __atomic_load_n (obj, order) #define zig_fence(order) __atomic_thread_fence(order) +#elif _MSC_VER && (_M_IX86 || _M_X64) +#include +#define memory_order_relaxed 0 +#define memory_order_consume 1 +#define memory_order_acquire 2 +#define memory_order_release 3 +#define memory_order_acq_rel 4 +#define memory_order_seq_cst 5 +#define zig_atomic(type) type +#define zig_cmpxchg_strong(obj, expected, desired, succ, fail, type) zig_expand_concat(zig_msvc_cmpxchg_, type)(obj, expected, desired) +#define zig_cmpxchg_weak(obj, expected, desired, succ, fail, type) zig_cmpxchg_strong(obj, expected, desired, succ, fail, type) +#define zig_atomicrmw_xchg(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_xchg_, type)(obj, arg) +#define zig_atomicrmw_add(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_add_, type)(obj, arg) +#define zig_atomicrmw_sub(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_sub_, type)(obj, arg) +#define zig_atomicrmw_or(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_or_, type)(obj, arg) +#define zig_atomicrmw_xor(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_xor_, type)(obj, arg) +#define zig_atomicrmw_and(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_and_, type)(obj, arg) +#define zig_atomicrmw_nand(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_nand_, type)(obj, arg) +#define zig_atomicrmw_min(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_min_, type)(obj, arg) +#define zig_atomicrmw_max(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_max_, type)(obj, arg) +#define zig_atomic_store(obj, arg, order, type) zig_expand_concat(zig_msvc_atomic_store_, type)(obj, arg) +#define zig_atomic_load(obj, order, type) zig_expand_concat(zig_msvc_atomic_load_, type)(obj) +#define zig_fence(order) __faststorefence() +// TODO: _MSC_VER && (_M_ARM || _M_ARM64) #else #define memory_order_relaxed 0 #define memory_order_consume 1 @@ -193,19 +220,19 @@ typedef char bool; #define memory_order_acq_rel 4 #define memory_order_seq_cst 5 #define zig_atomic(type) type -#define zig_cmpxchg_strong(obj, expected, desired, succ, fail) zig_unimplemented() -#define zig_cmpxchg_weak(obj, expected, desired, succ, fail) zig_unimplemented() -#define zig_atomicrmw_xchg(obj, arg, order) zig_unimplemented() -#define zig_atomicrmw_add(obj, arg, order) zig_unimplemented() -#define zig_atomicrmw_sub(obj, arg, order) zig_unimplemented() -#define zig_atomicrmw_or(obj, arg, order) zig_unimplemented() -#define zig_atomicrmw_xor(obj, arg, order) zig_unimplemented() -#define zig_atomicrmw_and(obj, arg, order) zig_unimplemented() -#define zig_atomicrmw_nand(obj, arg, order) zig_unimplemented() -#define zig_atomicrmw_min(obj, arg, order) zig_unimplemented() -#define zig_atomicrmw_max(obj, arg, order) zig_unimplemented() -#define zig_atomic_store(obj, arg, order) zig_unimplemented() -#define zig_atomic_load(obj, order) zig_unimplemented() +#define zig_cmpxchg_strong(obj, expected, desired, succ, fail, type) zig_unimplemented() +#define zig_cmpxchg_weak(obj, expected, desired, succ, fail, type) zig_unimplemented() +#define zig_atomicrmw_xchg(obj, arg, order, type) zig_unimplemented() +#define zig_atomicrmw_add(obj, arg, order, type) zig_unimplemented() +#define zig_atomicrmw_sub(obj, arg, order, type) zig_unimplemented() +#define zig_atomicrmw_or(obj, arg, order, type) zig_unimplemented() +#define zig_atomicrmw_xor(obj, arg, order, type) zig_unimplemented() +#define zig_atomicrmw_and(obj, arg, order, type) zig_unimplemented() +#define zig_atomicrmw_nand(obj, arg, order, type) zig_unimplemented() +#define zig_atomicrmw_min(obj, arg, order, type) zig_unimplemented() +#define zig_atomicrmw_max(obj, arg, order, type) zig_unimplemented() +#define zig_atomic_store(obj, arg, order, type) zig_unimplemented() +#define zig_atomic_load(obj, order, type) zig_unimplemented() #define zig_fence(order) zig_unimplemented() #endif @@ -219,9 +246,6 @@ typedef char bool; #define zig_noreturn void #endif -#define zig_concat(lhs, rhs) lhs##rhs -#define zig_expand_concat(lhs, rhs) zig_concat(lhs, rhs) - #define zig_bitSizeOf(T) (CHAR_BIT * sizeof(T)) typedef uintptr_t zig_usize; @@ -1917,6 +1941,18 @@ typedef zig_i128 zig_c_longdouble; #define zig_as_special_constant_c_longdouble(sign, name, arg, repr) repr #endif +#if zig_bitSizeOf_c_longdouble == 16 +#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f16 +#elif zig_bitSizeOf_c_longdouble == 32 +#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f32 +#elif zig_bitSizeOf_c_longdouble == 64 +#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f64 +#elif zig_bitSizeOf_c_longdouble == 80 +#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f80 +#elif zig_bitSizeOf_c_longdouble == 128 +#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f128 +#endif + #define zig_cast_f16 (zig_f16) #define zig_cast_f32 (zig_f32) #define zig_cast_f64 (zig_f64) @@ -2054,3 +2090,101 @@ zig_float_builtins(f64) zig_float_builtins(f80) zig_float_builtins(f128) zig_float_builtins(c_longdouble) + +#if _MSC_VER && (_M_IX86 || _M_X64) +#include + +// TODO: zig_msvc_atomic_load should load 32 bit without interlocked on x86, load 64 bit without interlocked on x64 +// TODO: Fix obviously broken nand / min / max, these don't exist on msvc _InterlockedNand + +#define zig_msvc_atomics(type, suffix) \ + static inline bool zig_msvc_cmpxchg_##type(zig_##type volatile* obj, zig_##type expected, zig_##type desired) { \ + return _InterlockedCompareExchange##suffix(obj, desired, expected) == expected; \ + } \ + static inline zig_##type zig_msvc_atomicrmw_xchg_##type(zig_##type volatile* obj, zig_##type value) { \ + return _InterlockedExchange##suffix(obj, value); \ + } \ + static inline zig_##type zig_msvc_atomicrmw_add_##type(zig_##type volatile* obj, zig_##type value) { \ + return _InterlockedExchangeAdd##suffix(obj, value); \ + } \ + static inline zig_##type zig_msvc_atomicrmw_sub_##type(zig_##type volatile* obj, zig_##type value) { \ + return _InterlockedExchangeAdd##suffix(obj, -value); \ + } \ + static inline zig_##type zig_msvc_atomicrmw_or_##type(zig_##type volatile* obj, zig_##type value) { \ + return _InterlockedOr##suffix(obj, value); \ + } \ + static inline zig_##type zig_msvc_atomicrmw_xor_##type(zig_##type volatile* obj, zig_##type value) { \ + return _InterlockedXor##suffix(obj, value); \ + } \ + static inline zig_##type zig_msvc_atomicrmw_and_##type(zig_##type volatile* obj, zig_##type value) { \ + return _InterlockedAnd##suffix(obj, value); \ + } \ + static inline zig_##type zig_msvc_atomicrmw_nand_##type(zig_##type volatile* obj, zig_##type value) { \ + return 0; \ + } \ + static inline zig_##type zig_msvc_atomicrmw_min_##type(zig_##type volatile* obj, zig_##type value) { \ + return 0; \ + } \ + static inline zig_##type zig_msvc_atomicrmw_max_##type(zig_##type volatile* obj, zig_##type value) { \ + return 0; \ + } \ + static inline void zig_msvc_atomic_store_##type(zig_##type volatile* obj, zig_##type value) { \ + _InterlockedExchange##suffix(obj, value); \ + } \ + static inline zig_##type zig_msvc_atomic_load_##type(zig_##type volatile* obj) { \ + return _InterlockedOr##suffix(obj, 0); \ + } + +zig_msvc_atomics(u8, 8) +zig_msvc_atomics(i8, 8) +zig_msvc_atomics(u16, 16) +zig_msvc_atomics(i16, 16) +zig_msvc_atomics(u32, ) +zig_msvc_atomics(i32, ) +zig_msvc_atomics(u64, 64) +zig_msvc_atomics(i64, 64) + +static inline bool zig_msvc_cmpxchg_p32(void** obj, void* expected, void* desired) { + return _InterlockedCompareExchangePointer(obj, desired, expected) == expected; +} + +static inline bool zig_msvc_cmpxchg_p64(void** obj, void* expected, void* desired) { + return _InterlockedCompareExchangePointer(obj, desired, expected) == expected; +} + +#if _M_IX86 +static inline void* zig_msvc_atomicrmw_xchg_p32(void** obj, zig_u32* arg) { + return _InterlockedExchangePointer(obj, arg); +} + +static inline void zig_msvc_atomic_store_p32(void** obj, zig_u32* arg) { + _InterlockedExchangePointer(obj, arg); +} + +static inline void* zig_msvc_atomic_load_p32(void** obj, zig_u32* arg) { + return (void*)_InterlockedOr((void*)obj, 0); +} +#else +static inline void* zig_msvc_atomicrmw_xchg__p64(void** obj, zig_u64* arg) { + return _InterlockedExchangePointer(obj, arg); +} + +static inline void zig_msvc_atomic_store_p64(void** obj, zig_u64* arg) { + _InterlockedExchangePointer(obj, arg); +} + +static inline void* zig_msvc_atomic_load_p64(void** obj) { + return (void*)_InterlockedOr64((void*)obj, 0); +} +#endif + +static inline bool zig_msvc_cmpxchg_u128(zig_u128 volatile* obj, zig_u128 expected, zig_u128 desired) { + zig_u128 comparand_result = desired; + return _InterlockedCompareExchange128((zig_i64 volatile*)obj, expected.hi, expected.lo, (zig_i64*)&comparand_result); +} + +static inline bool zig_msvc_cmpxchg_i128(zig_i128 volatile* obj, zig_i128 expected, zig_i128 desired) { + zig_i128 comparand_result = desired; + return _InterlockedCompareExchange128((zig_i64 volatile*)obj, expected.hi, expected.lo, (zig_u64*)&comparand_result); +} +#endif diff --git a/src/codegen/c.zig b/src/codegen/c.zig index d2da732906..e0a59e50e5 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -2542,6 +2542,10 @@ pub const DeclGen = struct { try writer.print("{c}{d}", .{ signAbbrev(int_info.signedness), c_bits }); } else if (ty.isRuntimeFloat()) { try ty.print(writer, dg.module); + } else if (ty.isPtrAtRuntime()) { + try writer.print("p{d}", .{ ty.bitSize(target) }); + } else if (ty.zigTypeTag() == .Bool) { + try writer.print("u8", .{}); } else return dg.fail("TODO: CBE: implement renderTypeForBuiltinFnName for type {}", .{ ty.fmt(dg.module), }); @@ -6083,7 +6087,7 @@ fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue try writer.writeAll(";\n"); try writer.writeAll("if ("); try writer.print("zig_cmpxchg_{s}((zig_atomic(", .{flavor}); - try f.renderTypecast(writer, ptr_ty.elemType()); + try f.renderTypecast(writer, ptr_ty.childType()); try writer.writeByte(')'); if (ptr_ty.isVolatilePtr()) try writer.writeAll(" volatile"); try writer.writeAll(" *)"); @@ -6096,6 +6100,8 @@ fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue try writeMemoryOrder(writer, extra.successOrder()); try writer.writeAll(", "); try writeMemoryOrder(writer, extra.failureOrder()); + try writer.writeAll(", "); + try f.object.dg.renderTypeForBuiltinFnName(writer, ptr_ty.childType()); try writer.writeByte(')'); try writer.writeAll(") {\n"); f.object.indent_writer.pushIndent(); @@ -6110,7 +6116,7 @@ fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue try writer.writeAll(";\n"); try f.writeCValue(writer, local, .Other); try writer.print(".is_null = zig_cmpxchg_{s}((zig_atomic(", .{flavor}); - try f.renderTypecast(writer, ptr_ty.elemType()); + try f.renderTypecast(writer, ptr_ty.childType()); try writer.writeByte(')'); if (ptr_ty.isVolatilePtr()) try writer.writeAll(" volatile"); try writer.writeAll(" *)"); @@ -6123,6 +6129,8 @@ fn airCmpxchg(f: *Function, inst: Air.Inst.Index, flavor: [*:0]const u8) !CValue try writeMemoryOrder(writer, extra.successOrder()); try writer.writeAll(", "); try writeMemoryOrder(writer, extra.failureOrder()); + try writer.writeAll(", "); + try f.object.dg.renderTypeForBuiltinFnName(writer, ptr_ty.childType()); try writer.writeByte(')'); try writer.writeAll(";\n"); } @@ -6145,8 +6153,8 @@ fn airAtomicRmw(f: *Function, inst: Air.Inst.Index) !CValue { try reap(f, inst, &.{ pl_op.operand, extra.operand }); const writer = f.object.writer(); const local = try f.allocLocal(inst, inst_ty); - try f.writeCValue(writer, local, .Other); + try f.writeCValue(writer, local, .Other); try writer.print(" = zig_atomicrmw_{s}((", .{toAtomicRmwSuffix(extra.op())}); switch (extra.op()) { else => { @@ -6166,6 +6174,8 @@ fn airAtomicRmw(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, operand, .FunctionArgument); try writer.writeAll(", "); try writeMemoryOrder(writer, extra.ordering()); + try writer.writeAll(", "); + try f.object.dg.renderTypeForBuiltinFnName(writer, ptr_ty.childType()); try writer.writeAll(");\n"); if (f.liveness.isUnused(inst)) { @@ -6198,6 +6208,8 @@ fn airAtomicLoad(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, ptr, .Other); try writer.writeAll(", "); try writeMemoryOrder(writer, atomic_load.order); + try writer.writeAll(", "); + try f.object.dg.renderTypeForBuiltinFnName(writer, ptr_ty.childType()); try writer.writeAll(");\n"); return local; @@ -6219,7 +6231,9 @@ fn airAtomicStore(f: *Function, inst: Air.Inst.Index, order: [*:0]const u8) !CVa try f.writeCValue(writer, ptr, .Other); try writer.writeAll(", "); try f.writeCValue(writer, element, .FunctionArgument); - try writer.print(", {s});\n", .{order}); + try writer.print(", {s}, ", .{order}); + try f.object.dg.renderTypeForBuiltinFnName(writer, ptr_ty.childType()); + try writer.writeAll(");\n"); return CValue.none; } diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index 094be62bc7..d9045ccddc 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -217,6 +217,7 @@ test "atomicrmw with floats" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if ((builtin.zig_backend == .stage2_llvm or builtin.zig_backend == .stage2_c) and builtin.cpu.arch == .aarch64) From b6f0af57a2bb9f7d2f74d1cb4a89af501bc1e885 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Fri, 16 Dec 2022 21:41:52 -0500 Subject: [PATCH 18/46] cbe: fix shl/shr - zig_shr_u128 was actually shifting left - handle shifting by zero explicitly (shifting u64 by 64 is undefined behaviour) --- lib/zig.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index 5d4c7c770f..fd0f558525 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1327,17 +1327,20 @@ static inline zig_i128 zig_not_i128(zig_i128 val, zig_u8 bits) { } static inline zig_u128 zig_shr_u128(zig_u128 lhs, zig_u8 rhs) { - if (rhs >= zig_as_u8(64)) return (zig_u128){ .hi = lhs.hi << (rhs - zig_as_u8(64)), .lo = zig_minInt_u64 }; - return (zig_u128){ .hi = lhs.hi << rhs | lhs.lo >> (zig_as_u8(64) - rhs), .lo = lhs.lo << rhs }; + if (rhs == zig_as_u8(0)) return lhs; + if (rhs >= zig_as_u8(64)) return (zig_u128){ .hi = zig_minInt_u64, .lo = lhs.hi >> (rhs - zig_as_u8(64)) }; + return (zig_u128){ .hi = lhs.hi >> rhs, .lo = lhs.hi << (zig_as_u8(64) - rhs) | lhs.lo >> rhs }; } static inline zig_u128 zig_shl_u128(zig_u128 lhs, zig_u8 rhs) { - if (rhs >= zig_as_u8(64)) return (zig_u128){ .hi = lhs.hi << (rhs - zig_as_u8(64)), .lo = zig_minInt_u64 }; + if (rhs == zig_as_u8(0)) return lhs; + if (rhs >= zig_as_u8(64)) return (zig_u128){ .hi = lhs.lo << rhs, .lo = zig_minInt_u64 }; return (zig_u128){ .hi = lhs.hi << rhs | lhs.lo >> (zig_as_u8(64) - rhs), .lo = lhs.lo << rhs }; } static inline zig_i128 zig_shl_i128(zig_i128 lhs, zig_u8 rhs) { - if (rhs >= zig_as_u8(64)) return (zig_i128){ .hi = lhs.hi << (rhs - zig_as_u8(64)), .lo = zig_minInt_u64 }; + if (rhs == zig_as_u8(0)) return lhs; + if (rhs >= zig_as_u8(64)) return (zig_i128){ .hi = lhs.hi << (rhs - zig_as_u8(64)), .lo = zig_minInt_u64 }; // TODO: Fix? return (zig_i128){ .hi = lhs.hi << rhs | lhs.lo >> (zig_as_u8(64) - rhs), .lo = lhs.lo << rhs }; } From 4f8f7b749cbac5eb7c282e8ffeab248ae7933fb9 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Fri, 16 Dec 2022 23:20:54 -0500 Subject: [PATCH 19/46] cbe: fixup incorrect bits value in 128 bit add/sub --- lib/zig.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index fd0f558525..c4a8edf442 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -79,7 +79,6 @@ typedef char bool; #if zig_has_attribute(aligned) #define zig_align_fn(alignment) __attribute__((aligned(alignment))) #elif _MSC_VER -// TODO: Figure out how to do this under MSVC #define zig_align_fn(alignment) #else #define zig_align_fn zig_align_fn_unavailable @@ -1346,25 +1345,25 @@ static inline zig_i128 zig_shl_i128(zig_i128 lhs, zig_u8 rhs) { static inline zig_u128 zig_add_u128(zig_u128 lhs, zig_u128 rhs) { zig_u128 res; - res.hi = lhs.hi + rhs.hi + zig_addo_u64(&res.lo, lhs.lo, rhs.lo, zig_maxInt_u64); + res.hi = lhs.hi + rhs.hi + zig_addo_u64(&res.lo, lhs.lo, rhs.lo, 64); return res; } static inline zig_i128 zig_add_i128(zig_i128 lhs, zig_i128 rhs) { zig_i128 res; - res.hi = lhs.hi + rhs.hi + zig_addo_u64(&res.lo, lhs.lo, rhs.lo, zig_maxInt_u64); + res.hi = lhs.hi + rhs.hi + zig_addo_u64(&res.lo, lhs.lo, rhs.lo, 64); return res; } static inline zig_u128 zig_sub_u128(zig_u128 lhs, zig_u128 rhs) { zig_u128 res; - res.hi = lhs.hi - rhs.hi - zig_subo_u64(&res.lo, lhs.lo, rhs.lo, zig_maxInt_u64); + res.hi = lhs.hi - rhs.hi - zig_subo_u64(&res.lo, lhs.lo, rhs.lo, 64); return res; } static inline zig_i128 zig_sub_i128(zig_i128 lhs, zig_i128 rhs) { zig_i128 res; - res.hi = lhs.hi - rhs.hi - zig_subo_u64(&res.lo, lhs.lo, rhs.lo, zig_maxInt_u64); + res.hi = lhs.hi - rhs.hi - zig_subo_u64(&res.lo, lhs.lo, rhs.lo, 64); return res; } From 047fe58a53f8381503d8cffd29dab37216cb5557 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 17 Dec 2022 00:27:34 -0500 Subject: [PATCH 20/46] cbe: fix msvc cmpxchg implementations --- lib/zig.h | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index c4a8edf442..60dabe02f3 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -196,7 +196,7 @@ typedef char bool; #define memory_order_acq_rel 4 #define memory_order_seq_cst 5 #define zig_atomic(type) type -#define zig_cmpxchg_strong(obj, expected, desired, succ, fail, type) zig_expand_concat(zig_msvc_cmpxchg_, type)(obj, expected, desired) +#define zig_cmpxchg_strong(obj, expected, desired, succ, fail, type) zig_expand_concat(zig_msvc_cmpxchg_, type)(obj, &(expected), desired) #define zig_cmpxchg_weak(obj, expected, desired, succ, fail, type) zig_cmpxchg_strong(obj, expected, desired, succ, fail, type) #define zig_atomicrmw_xchg(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_xchg_, type)(obj, arg) #define zig_atomicrmw_add(obj, arg, order, type) zig_expand_concat(zig_msvc_atomicrmw_add_, type)(obj, arg) @@ -2096,12 +2096,18 @@ zig_float_builtins(c_longdouble) #if _MSC_VER && (_M_IX86 || _M_X64) #include -// TODO: zig_msvc_atomic_load should load 32 bit without interlocked on x86, load 64 bit without interlocked on x64 -// TODO: Fix obviously broken nand / min / max, these don't exist on msvc _InterlockedNand +// TODO: zig_msvc_atomic_load should just load 32 bit without interlocked on x86, and just load 64 bit without interlocked on x64 +// TODO: Fix obviously broken nand / min / max, these don't exist on msvc #define zig_msvc_atomics(type, suffix) \ - static inline bool zig_msvc_cmpxchg_##type(zig_##type volatile* obj, zig_##type expected, zig_##type desired) { \ - return _InterlockedCompareExchange##suffix(obj, desired, expected) == expected; \ + static inline bool zig_msvc_cmpxchg_##type(zig_##type volatile* obj, zig_##type* expected, zig_##type desired) { \ + zig_##type comparand = *expected; \ + zig_##type initial = _InterlockedCompareExchange##suffix(obj, desired, comparand); \ + bool exchanged = initial == comparand; \ + if (!exchanged) { \ + *expected = initial; \ + } \ + return exchanged; \ } \ static inline zig_##type zig_msvc_atomicrmw_xchg_##type(zig_##type volatile* obj, zig_##type value) { \ return _InterlockedExchange##suffix(obj, value); \ @@ -2146,12 +2152,24 @@ zig_msvc_atomics(i32, ) zig_msvc_atomics(u64, 64) zig_msvc_atomics(i64, 64) -static inline bool zig_msvc_cmpxchg_p32(void** obj, void* expected, void* desired) { - return _InterlockedCompareExchangePointer(obj, desired, expected) == expected; +static inline bool zig_msvc_cmpxchg_p32(void** obj, void** expected, void* desired) { + void* comparand = *expected; + void* initial = _InterlockedCompareExchangePointer(obj, desired, comparand); + bool exchanged = initial == comparand; + if (!exchanged) { + *expected = initial; + } + return exchanged; } -static inline bool zig_msvc_cmpxchg_p64(void** obj, void* expected, void* desired) { - return _InterlockedCompareExchangePointer(obj, desired, expected) == expected; +static inline bool zig_msvc_cmpxchg_p64(void** obj, void** expected, void* desired) { + void* comparand = *expected; + void* initial = _InterlockedCompareExchangePointer(obj, desired, comparand); + bool exchanged = initial == comparand; + if (!exchanged) { + *expected = initial; + } + return exchanged; } #if _M_IX86 @@ -2180,13 +2198,11 @@ static inline void* zig_msvc_atomic_load_p64(void** obj) { } #endif -static inline bool zig_msvc_cmpxchg_u128(zig_u128 volatile* obj, zig_u128 expected, zig_u128 desired) { - zig_u128 comparand_result = desired; - return _InterlockedCompareExchange128((zig_i64 volatile*)obj, expected.hi, expected.lo, (zig_i64*)&comparand_result); +static inline bool zig_msvc_cmpxchg_u128(zig_u128 volatile* obj, zig_u128* expected, zig_u128 desired) { + return _InterlockedCompareExchange128((zig_i64 volatile*)obj, desired.hi, desired.lo, (zig_i64*)expected); } -static inline bool zig_msvc_cmpxchg_i128(zig_i128 volatile* obj, zig_i128 expected, zig_i128 desired) { - zig_i128 comparand_result = desired; - return _InterlockedCompareExchange128((zig_i64 volatile*)obj, expected.hi, expected.lo, (zig_u64*)&comparand_result); +static inline bool zig_msvc_cmpxchg_i128(zig_i128 volatile* obj, zig_i128* expected, zig_i128 desired) { + return _InterlockedCompareExchange128((zig_i64 volatile*)obj, desired.hi, desired.lo, (zig_u64*)expected); } #endif From 5b8245d35a88d3d1a0d8bd4670c735824ad40837 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 17 Dec 2022 14:15:03 -0500 Subject: [PATCH 21/46] tests: update "atomicrmw with ints" to test u8 through u64 --- test/behavior/atomics.zig | 74 +++++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 22 deletions(-) diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index d9045ccddc..d4a0a581e1 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -251,31 +251,61 @@ test "atomicrmw with ints" { return error.SkipZigTest; } - try testAtomicRmwInt(); - comptime try testAtomicRmwInt(); + // TODO: https://github.com/ziglang/zig/issues/13989 + const bit_values = [_]usize{ 8, 16, 32, 64 };// ++ if (builtin.zig_backend != .stage2_c) [_]usize{ } else [_]usize{ 128 }; + inline for (bit_values) |bits| { + try testAtomicRmwInt(.unsigned, bits); + comptime try testAtomicRmwInt(.unsigned, bits); + } } -fn testAtomicRmwInt() !void { - var x: u8 = 1; - var res = @atomicRmw(u8, &x, .Xchg, 3, .SeqCst); - try expect(x == 3 and res == 1); - _ = @atomicRmw(u8, &x, .Add, 3, .SeqCst); - try expect(x == 6); - _ = @atomicRmw(u8, &x, .Sub, 1, .SeqCst); - try expect(x == 5); - _ = @atomicRmw(u8, &x, .And, 4, .SeqCst); - try expect(x == 4); - _ = @atomicRmw(u8, &x, .Nand, 4, .SeqCst); - try expect(x == 0xfb); - _ = @atomicRmw(u8, &x, .Or, 6, .SeqCst); - try expect(x == 0xff); - _ = @atomicRmw(u8, &x, .Xor, 2, .SeqCst); - try expect(x == 0xfd); +fn testAtomicRmwInt(comptime signedness: std.builtin.Signedness, comptime N: usize) !void { + const int = std.meta.Int(signedness, N); - _ = @atomicRmw(u8, &x, .Max, 1, .SeqCst); - try expect(x == 0xfd); - _ = @atomicRmw(u8, &x, .Min, 1, .SeqCst); - try expect(x == 1); + var x: int = 1; + var res = @atomicRmw(int, &x, .Xchg, 3, .SeqCst); + try expect(x == 3 and res == 1); + + res = @atomicRmw(int, &x, .Add, 3, .SeqCst); + var y: int = 3; + try expect(res == y); + y = y + 3; + try expect(x == y); + + res = @atomicRmw(int, &x, .Sub, 1, .SeqCst); + try expect(res == y); + y = y - 1; + try expect(x == y); + + res = @atomicRmw(int, &x, .And, 4, .SeqCst); + try expect(res == y); + y = y & 4; + try expect(x == y); + + res = @atomicRmw(int, &x, .Nand, 4, .SeqCst); + try expect(res == y); + y = ~(y & 4); + try expect(x == y); + + res = @atomicRmw(int, &x, .Or, 6, .SeqCst); + try expect(res == y); + y = y | 6; + try expect(x == y); + + res = @atomicRmw(int, &x, .Xor, 2, .SeqCst); + try expect(res == y); + y = y ^ 2; + try expect(x == y); + + res = @atomicRmw(int, &x, .Max, 1, .SeqCst); + try expect(res == y); + y = @max(y, 1); + try expect(x == y); + + res = @atomicRmw(int, &x, .Min, 1, .SeqCst); + try expect(res == y); + y = @min(y, 1); + try expect(x == y); } test "atomics with different types" { From d63b8d21b36645a773d201e4b343b32859cc9927 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 17 Dec 2022 14:15:37 -0500 Subject: [PATCH 22/46] cbe: implement missing atomic builtings using cmpxchg loops --- lib/zig.h | 114 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 73 insertions(+), 41 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index 60dabe02f3..496012a579 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -2097,49 +2097,80 @@ zig_float_builtins(c_longdouble) #include // TODO: zig_msvc_atomic_load should just load 32 bit without interlocked on x86, and just load 64 bit without interlocked on x64 -// TODO: Fix obviously broken nand / min / max, these don't exist on msvc -#define zig_msvc_atomics(type, suffix) \ - static inline bool zig_msvc_cmpxchg_##type(zig_##type volatile* obj, zig_##type* expected, zig_##type desired) { \ - zig_##type comparand = *expected; \ - zig_##type initial = _InterlockedCompareExchange##suffix(obj, desired, comparand); \ +#define zig_msvc_atomics(Type, suffix) \ + static inline bool zig_msvc_cmpxchg_##Type(zig_##Type volatile* obj, zig_##Type* expected, zig_##Type desired) { \ + zig_##Type comparand = *expected; \ + zig_##Type initial = _InterlockedCompareExchange##suffix(obj, desired, comparand); \ bool exchanged = initial == comparand; \ if (!exchanged) { \ *expected = initial; \ } \ return exchanged; \ } \ - static inline zig_##type zig_msvc_atomicrmw_xchg_##type(zig_##type volatile* obj, zig_##type value) { \ + static inline zig_##Type zig_msvc_atomicrmw_xchg_##Type(zig_##Type volatile* obj, zig_##Type value) { \ return _InterlockedExchange##suffix(obj, value); \ } \ - static inline zig_##type zig_msvc_atomicrmw_add_##type(zig_##type volatile* obj, zig_##type value) { \ + static inline zig_##Type zig_msvc_atomicrmw_add_##Type(zig_##Type volatile* obj, zig_##Type value) { \ return _InterlockedExchangeAdd##suffix(obj, value); \ } \ - static inline zig_##type zig_msvc_atomicrmw_sub_##type(zig_##type volatile* obj, zig_##type value) { \ - return _InterlockedExchangeAdd##suffix(obj, -value); \ + static inline zig_##Type zig_msvc_atomicrmw_sub_##Type(zig_##Type volatile* obj, zig_##Type value) { \ + bool success = false; \ + zig_##Type new; \ + zig_##Type prev; \ + while (!success) { \ + prev = *obj; \ + new = prev - value; \ + success = zig_msvc_cmpxchg_##Type(obj, &prev, new); \ + } \ + return prev; \ } \ - static inline zig_##type zig_msvc_atomicrmw_or_##type(zig_##type volatile* obj, zig_##type value) { \ + static inline zig_##Type zig_msvc_atomicrmw_or_##Type(zig_##Type volatile* obj, zig_##Type value) { \ return _InterlockedOr##suffix(obj, value); \ } \ - static inline zig_##type zig_msvc_atomicrmw_xor_##type(zig_##type volatile* obj, zig_##type value) { \ + static inline zig_##Type zig_msvc_atomicrmw_xor_##Type(zig_##Type volatile* obj, zig_##Type value) { \ return _InterlockedXor##suffix(obj, value); \ } \ - static inline zig_##type zig_msvc_atomicrmw_and_##type(zig_##type volatile* obj, zig_##type value) { \ + static inline zig_##Type zig_msvc_atomicrmw_and_##Type(zig_##Type volatile* obj, zig_##Type value) { \ return _InterlockedAnd##suffix(obj, value); \ } \ - static inline zig_##type zig_msvc_atomicrmw_nand_##type(zig_##type volatile* obj, zig_##type value) { \ - return 0; \ + static inline zig_##Type zig_msvc_atomicrmw_nand_##Type(zig_##Type volatile* obj, zig_##Type value) { \ + bool success = false; \ + zig_##Type new; \ + zig_##Type prev; \ + while (!success) { \ + prev = *obj; \ + new = ~(prev & value); \ + success = zig_msvc_cmpxchg_##Type(obj, &prev, new); \ + } \ + return prev; \ } \ - static inline zig_##type zig_msvc_atomicrmw_min_##type(zig_##type volatile* obj, zig_##type value) { \ - return 0; \ + static inline zig_##Type zig_msvc_atomicrmw_min_##Type(zig_##Type volatile* obj, zig_##Type value) { \ + bool success = false; \ + zig_##Type new; \ + zig_##Type prev; \ + while (!success) { \ + prev = *obj; \ + new = value < prev ? value : prev; \ + success = zig_msvc_cmpxchg_##Type(obj, &prev, new); \ + } \ + return prev; \ } \ - static inline zig_##type zig_msvc_atomicrmw_max_##type(zig_##type volatile* obj, zig_##type value) { \ - return 0; \ + static inline zig_##Type zig_msvc_atomicrmw_max_##Type(zig_##Type volatile* obj, zig_##Type value) { \ + bool success = false; \ + zig_##Type new; \ + zig_##Type prev; \ + while (!success) { \ + prev = *obj; \ + new = value > prev ? value : prev; \ + success = zig_msvc_cmpxchg_##Type(obj, &prev, new); \ + } \ + return prev; \ } \ - static inline void zig_msvc_atomic_store_##type(zig_##type volatile* obj, zig_##type value) { \ + static inline void zig_msvc_atomic_store_##Type(zig_##Type volatile* obj, zig_##Type value) { \ _InterlockedExchange##suffix(obj, value); \ } \ - static inline zig_##type zig_msvc_atomic_load_##type(zig_##type volatile* obj) { \ + static inline zig_##Type zig_msvc_atomic_load_##Type(zig_##Type volatile* obj) { \ return _InterlockedOr##suffix(obj, 0); \ } @@ -2152,26 +2183,6 @@ zig_msvc_atomics(i32, ) zig_msvc_atomics(u64, 64) zig_msvc_atomics(i64, 64) -static inline bool zig_msvc_cmpxchg_p32(void** obj, void** expected, void* desired) { - void* comparand = *expected; - void* initial = _InterlockedCompareExchangePointer(obj, desired, comparand); - bool exchanged = initial == comparand; - if (!exchanged) { - *expected = initial; - } - return exchanged; -} - -static inline bool zig_msvc_cmpxchg_p64(void** obj, void** expected, void* desired) { - void* comparand = *expected; - void* initial = _InterlockedCompareExchangePointer(obj, desired, comparand); - bool exchanged = initial == comparand; - if (!exchanged) { - *expected = initial; - } - return exchanged; -} - #if _M_IX86 static inline void* zig_msvc_atomicrmw_xchg_p32(void** obj, zig_u32* arg) { return _InterlockedExchangePointer(obj, arg); @@ -2184,8 +2195,18 @@ static inline void zig_msvc_atomic_store_p32(void** obj, zig_u32* arg) { static inline void* zig_msvc_atomic_load_p32(void** obj, zig_u32* arg) { return (void*)_InterlockedOr((void*)obj, 0); } + +static inline bool zig_msvc_cmpxchg_p32(void** obj, void** expected, void* desired) { + void* comparand = *expected; + void* initial = _InterlockedCompareExchangePointer(obj, desired, comparand); + bool exchanged = initial == comparand; + if (!exchanged) { + *expected = initial; + } + return exchanged; +} #else -static inline void* zig_msvc_atomicrmw_xchg__p64(void** obj, zig_u64* arg) { +static inline void* zig_msvc_atomicrmw_xchg_p64(void** obj, zig_u64* arg) { return _InterlockedExchangePointer(obj, arg); } @@ -2196,6 +2217,16 @@ static inline void zig_msvc_atomic_store_p64(void** obj, zig_u64* arg) { static inline void* zig_msvc_atomic_load_p64(void** obj) { return (void*)_InterlockedOr64((void*)obj, 0); } + +static inline bool zig_msvc_cmpxchg_p64(void** obj, void** expected, void* desired) { + void* comparand = *expected; + void* initial = _InterlockedCompareExchangePointer(obj, desired, comparand); + bool exchanged = initial == comparand; + if (!exchanged) { + *expected = initial; + } + return exchanged; +} #endif static inline bool zig_msvc_cmpxchg_u128(zig_u128 volatile* obj, zig_u128* expected, zig_u128 desired) { @@ -2205,4 +2236,5 @@ static inline bool zig_msvc_cmpxchg_u128(zig_u128 volatile* obj, zig_u128* expec static inline bool zig_msvc_cmpxchg_i128(zig_i128 volatile* obj, zig_i128* expected, zig_i128 desired) { return _InterlockedCompareExchange128((zig_i64 volatile*)obj, desired.hi, desired.lo, (zig_u64*)expected); } + #endif From 5470708a89cb11eefc3e0cbb43337dbf3f99c8ac Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 17 Dec 2022 14:40:40 -0500 Subject: [PATCH 23/46] cbe: implement 128 bit atomic operations with cmpxchg loops - Enable 128 bit atomic int tests for the cbe only --- lib/zig.h | 40 +++++++++++++++++++++++++++++++++++++++ test/behavior/atomics.zig | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/lib/zig.h b/lib/zig.h index 496012a579..a43fcf16be 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1397,6 +1397,10 @@ static inline zig_i128 zig_mod_i128(zig_i128 lhs, zig_i128 rhs) { #define zig_div_floor_u128 zig_div_trunc_u128 #define zig_mod_u128 zig_rem_u128 +static inline zig_u128 zig_nand_u128(zig_u128 lhs, zig_u128 rhs) { + return zig_not_u128(zig_and_u128(lhs, rhs), 128); +} + static inline zig_u128 zig_min_u128(zig_u128 lhs, zig_u128 rhs) { return zig_cmp_u128(lhs, rhs) < zig_as_i32(0) ? lhs : rhs; } @@ -2237,4 +2241,40 @@ static inline bool zig_msvc_cmpxchg_i128(zig_i128 volatile* obj, zig_i128* expec return _InterlockedCompareExchange128((zig_i64 volatile*)obj, desired.hi, desired.lo, (zig_u64*)expected); } +#define zig_msvc_atomics_128xchg(Type) \ + static inline zig_##Type zig_msvc_atomicrmw_xchg_##Type(zig_##Type volatile* obj, zig_##Type value) { \ + bool success = false; \ + zig_##Type prev; \ + while (!success) { \ + prev = *obj; \ + success = zig_msvc_cmpxchg_##Type(obj, &prev, value); \ + } \ + return prev; \ + } + +zig_msvc_atomics_128xchg(u128) +zig_msvc_atomics_128xchg(i128) + +#define zig_msvc_atomics_128op(Type, operation) \ + static inline zig_##Type zig_msvc_atomicrmw_##operation##_##Type(zig_##Type volatile* obj, zig_##Type value) { \ + bool success = false; \ + zig_##Type new; \ + zig_##Type prev; \ + while (!success) { \ + prev = *obj; \ + new = zig_##operation##_##Type(prev, value); \ + success = zig_msvc_cmpxchg_##Type(obj, &prev, new); \ + } \ + return prev; \ + } + +zig_msvc_atomics_128op(u128, add) +zig_msvc_atomics_128op(u128, sub) +zig_msvc_atomics_128op(u128, or) +zig_msvc_atomics_128op(u128, xor) +zig_msvc_atomics_128op(u128, and) +zig_msvc_atomics_128op(u128, nand) +zig_msvc_atomics_128op(u128, min) +zig_msvc_atomics_128op(u128, max) + #endif diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index d4a0a581e1..abdbde2795 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -252,7 +252,7 @@ test "atomicrmw with ints" { } // TODO: https://github.com/ziglang/zig/issues/13989 - const bit_values = [_]usize{ 8, 16, 32, 64 };// ++ if (builtin.zig_backend != .stage2_c) [_]usize{ } else [_]usize{ 128 }; + const bit_values = [_]usize{ 8, 16, 32, 64 } ++ if (builtin.zig_backend != .stage2_c) [_]usize{ } else [_]usize{ 128 }; inline for (bit_values) |bits| { try testAtomicRmwInt(.unsigned, bits); comptime try testAtomicRmwInt(.unsigned, bits); From 7b999dae730c2938865df05fdeecf15aaff2254d Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 17 Dec 2022 17:55:10 -0500 Subject: [PATCH 24/46] cbe: special float macros passthrough to builtins if available, but fallback to conversion from repr if not --- lib/zig.h | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 100 insertions(+), 8 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index a43fcf16be..b8e64708d5 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1749,11 +1749,27 @@ static inline zig_i128 zig_bit_reverse_i128(zig_i128 val, zig_u8 bits) { #define __builtin_infl() zig_msvc_flt_infl #endif +#define zig_has_float_builtins (zig_has_builtin(nan) && zig_has_builtin(nans) && zig_has_builtin(inf)) +#if zig_has_float_builtins +#define zig_as_special_f16(sign, name, arg, repr) sign zig_as_f16(__builtin_##name, )(arg) +#define zig_as_special_f32(sign, name, arg, repr) sign zig_as_f32(__builtin_##name, )(arg) +#define zig_as_special_f64(sign, name, arg, repr) sign zig_as_f64(__builtin_##name, )(arg) +#define zig_as_special_f80(sign, name, arg, repr) sign zig_as_f80(__builtin_##name, )(arg) +#define zig_as_special_f128(sign, name, arg, repr) sign zig_as_f128(__builtin_##name, )(arg) +#define zig_as_special_c_longdouble(sign, name, arg, repr) sign zig_as_c_longdouble(__builtin_##name, )(arg) +#else +#define zig_as_special_f16(sign, name, arg, repr) zig_float_from_repr_f16(repr) +#define zig_as_special_f32(sign, name, arg, repr) zig_float_from_repr_f32(repr) +#define zig_as_special_f64(sign, name, arg, repr) zig_float_from_repr_f64(repr) +#define zig_as_special_f80(sign, name, arg, repr) zig_float_from_repr_f80(repr) +#define zig_as_special_f128(sign, name, arg, repr) zig_float_from_repr_f128(repr) +#define zig_as_special_c_longdouble(sign, name, arg, repr) zig_float_from_repr_c_longdouble(repr) +#endif + #define zig_has_f16 1 #define zig_bitSizeOf_f16 16 #define zig_libc_name_f16(name) __##name##h #define zig_as_special_constant_f16(sign, name, arg, repr) zig_as_special_f16(sign, name, arg, repr) -#define zig_as_special_f16(sign, name, arg, repr) sign zig_as_f16(__builtin_##name, )(arg) #if FLT_MANT_DIG == 11 typedef float zig_f16; #define zig_as_f16(fp, repr) fp##f @@ -1790,7 +1806,6 @@ typedef zig_i16 zig_f16; #else #define zig_as_special_constant_f32(sign, name, arg, repr) zig_as_special_f32(sign, name, arg, repr) #endif -#define zig_as_special_f32(sign, name, arg, repr) sign zig_as_f32(__builtin_##name, )(arg) #if FLT_MANT_DIG == 24 typedef float zig_f32; #define zig_as_f32(fp, repr) fp##f @@ -1824,7 +1839,6 @@ typedef zig_i32 zig_f32; #else #define zig_as_special_constant_f64(sign, name, arg, repr) zig_as_special_f64(sign, name, arg, repr) #endif -#define zig_as_special_f64(sign, name, arg, repr) sign zig_as_f64(__builtin_##name, )(arg) #if FLT_MANT_DIG == 53 typedef float zig_f64; #define zig_as_f64(fp, repr) fp##f @@ -1857,7 +1871,6 @@ typedef zig_i64 zig_f64; #define zig_bitSizeOf_f80 80 #define zig_libc_name_f80(name) __##name##x #define zig_as_special_constant_f80(sign, name, arg, repr) zig_as_special_f80(sign, name, arg, repr) -#define zig_as_special_f80(sign, name, arg, repr) sign zig_as_f80(__builtin_##name, )(arg) #if FLT_MANT_DIG == 64 typedef float zig_f80; #define zig_as_f80(fp, repr) fp##f @@ -1893,7 +1906,6 @@ typedef zig_i128 zig_f80; #define zig_bitSizeOf_f128 128 #define zig_libc_name_f128(name) name##q #define zig_as_special_constant_f128(sign, name, arg, repr) zig_as_special_f128(sign, name, arg, repr) -#define zig_as_special_f128(sign, name, arg, repr) sign zig_as_f128(__builtin_##name, )(arg) #if FLT_MANT_DIG == 113 typedef float zig_f128; #define zig_as_f128(fp, repr) fp##f @@ -1930,8 +1942,7 @@ typedef zig_i128 zig_f128; #define zig_has_c_longdouble 1 #define zig_libc_name_c_longdouble(name) name##l #define zig_as_special_constant_c_longdouble(sign, name, arg, repr) zig_as_special_c_longdouble(sign, name, arg, repr) -#define zig_as_special_c_longdouble(sign, name, arg, repr) sign __builtin_##name##l(arg) -#if !_MSC_VER // TODO: Is there a better way to detect this is just double? +#if !_MSC_VER // TODO: Is there a better way to detect long double == double on msvc? typedef long double zig_c_longdouble; #define zig_as_c_longdouble(fp, repr) fp##l #else @@ -1947,6 +1958,87 @@ typedef zig_i128 zig_c_longdouble; #define zig_as_special_constant_c_longdouble(sign, name, arg, repr) repr #endif +#if !zig_has_float_builtins +#define zig_float_from_repr(Type, ReprType) \ + static inline zig_##Type zig_float_from_repr_##Type(zig_##ReprType repr) { \ + return *((zig_##Type*)&repr); \ + } + +zig_float_from_repr(f16, u16) +zig_float_from_repr(f32, u32) +zig_float_from_repr(f64, u64) +zig_float_from_repr(f80, u128) +zig_float_from_repr(f128, u128) +zig_float_from_repr(c_longdouble, u128) +#endif + +/* #define zig_float_from_repr(Type) *((zig_##Type*)&repr) */ + +/* #define zig_float_inf_builtin_0(Type, ReprType) \ */ +/* static inline zig_##Type zig_as_special_inf_##Type(zig_##ReprType repr) { \ */ +/* return zig_float_from_repr(Type); \ */ +/* } */ +/* #define zig_float_inf_builtin_1(Type, ReprType) \ */ +/* static inline zig_##Type zig_as_special_inf_##Type(zig_##ReprType repr) { \ */ +/* return __builtin_inf(); \ */ +/* } */ +/* #define zig_float_nan_builtin_0(Type, ReprType) \ */ +/* static inline zig_##Type zig_as_special_nan_##Type(const char* arg, zig_##ReprType repr) { \ */ +/* return zig_float_from_repr(Type); \ */ +/* } */ +/* #define zig_float_nan_builtin_1(Type, ReprType) \ */ +/* static inline zig_##Type zig_as_special_nan_##Type(const char* arg, zig_##ReprType repr) { \ */ +/* return __builtin_nan(arg); \ */ +/* } */ +/* #define zig_float_nans_builtin_0(Type, ReprType) \ */ +/* static inline zig_##Type zig_as_special_nans_##Type(const char* arg, zig_##ReprType repr) { \ */ +/* return zig_float_from_repr(Type); \ */ +/* } */ +/* #define zig_float_nans_builtin_1(Type, ReprType) \ */ +/* static inline zig_##Type zig_as_special_nans_##Type(const char* arg, zig_##ReprType repr) { \ */ +/* return __builtin_nans(arg); \ */ +/* } */ + +/* #define zig_float_special_builtins(Type, ReprType) \ */ +/* zig_expand_concat(zig_float_inf_builtin_, zig_has_builtin(inf))(Type, ReprType) \ */ +/* zig_expand_concat(zig_float_nan_builtin_, zig_has_builtin(nan))(Type, ReprType) \ */ +/* zig_expand_concat(zig_float_nans_builtin_, zig_has_builtin(nans))(Type, ReprType) */ + +/* #if zig_has_builtin(nan) */ +/* #define zig_as_special_nan(arg, repr) __builtin_nan(arg); */ +/* #define zig_as_special_nan_f16(arg, repr) __builtin_nan(arg); */ +/* #define zig_as_special_nan_f32(arg, repr) __builtin_nan(arg); */ +/* #define zig_as_special_nan_f64(arg, repr) __builtin_nan(arg); */ +/* #define zig_as_special_nan_f80(arg, repr) __builtin_nan(arg); */ +/* #define zig_as_special_nan_f128(arg, repr) __builtin_nan(arg); */ +/* #else */ +/* zig_float_special_builtins(); */ +/* #endif */ + +/* #if zig_has_f16 */ +/* zig_float_special_builtins(f16, u16) */ +/* #endif */ + +/* #if zig_has_f32 */ +/* zig_float_special_builtins(f32, u32) */ +/* #endif */ + +/* #if zig_has_f64 */ +/* zig_float_special_builtins(f64, u64) */ +/* #endif */ + +/* #if zig_has_f80 */ +/* zig_float_special_builtins(f80, u128) */ +/* #endif */ + +/* #if zig_has_f128 */ +/* zig_float_special_builtins(f128, u128) */ +/* #endif */ + +/* #if zig_has_c_longdouble */ +/* zig_float_special_builtins(c_longdouble, u128) */ +/* #endif */ + #if zig_bitSizeOf_c_longdouble == 16 #define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f16 #elif zig_bitSizeOf_c_longdouble == 32 @@ -2100,7 +2192,7 @@ zig_float_builtins(c_longdouble) #if _MSC_VER && (_M_IX86 || _M_X64) #include -// TODO: zig_msvc_atomic_load should just load 32 bit without interlocked on x86, and just load 64 bit without interlocked on x64 +// TODO: zig_msvc_atomic_load should load 32 bit without interlocked on x86, and load 64 bit without interlocked on x64 #define zig_msvc_atomics(Type, suffix) \ static inline bool zig_msvc_cmpxchg_##Type(zig_##Type volatile* obj, zig_##Type* expected, zig_##Type desired) { \ From 6445196fabd9c9c3e40c24d298dc9ac2a19bee35 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 17 Dec 2022 18:36:15 -0500 Subject: [PATCH 25/46] tests: disable function alignment test for cbe, add 128-bit atomicrmw tests --- test/behavior/align.zig | 1 + test/behavior/atomics.zig | 77 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 76 insertions(+), 2 deletions(-) diff --git a/test/behavior/align.zig b/test/behavior/align.zig index 780ee06875..8272a852df 100644 --- a/test/behavior/align.zig +++ b/test/behavior/align.zig @@ -540,6 +540,7 @@ test "align(N) on functions" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO this is not supported on MSVC // function alignment is a compile error on wasm32/wasm64 if (native_arch == .wasm32 or native_arch == .wasm64) return error.SkipZigTest; diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index abdbde2795..17c4a139ae 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -251,8 +251,7 @@ test "atomicrmw with ints" { return error.SkipZigTest; } - // TODO: https://github.com/ziglang/zig/issues/13989 - const bit_values = [_]usize{ 8, 16, 32, 64 } ++ if (builtin.zig_backend != .stage2_c) [_]usize{ } else [_]usize{ 128 }; + const bit_values = [_]usize{ 8, 16, 32, 64 }; inline for (bit_values) |bits| { try testAtomicRmwInt(.unsigned, bits); comptime try testAtomicRmwInt(.unsigned, bits); @@ -308,6 +307,80 @@ fn testAtomicRmwInt(comptime signedness: std.builtin.Signedness, comptime N: usi try expect(x == y); } +test "atomicrmw with 128-bit ints" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + + if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .aarch64) { + return error.SkipZigTest; + } + + try testAtomicRmwInt128(.unsigned); + comptime try testAtomicRmwInt128(.unsigned); +} + +fn testAtomicRmwInt128(comptime signedness: std.builtin.Signedness) !void { + const int = std.meta.Int(signedness, 128); + + const initial: int = 0xaaaaaaaa_bbbbbbbb_cccccccc_dddddddd; + const replacement: int = 0x00000000_00000005_00000000_00000003; + + var x: int align(16) = initial; + var res = @atomicRmw(int, &x, .Xchg, replacement, .SeqCst); + try expect(x == replacement and res == initial); + + var operator: int = 0x00000001_00000000_20000000_00000000; + res = @atomicRmw(int, &x, .Add, operator, .SeqCst); + var y: int = replacement; + try expect(res == y); + y = y + operator; + try expect(x == y); + + operator = 0x00000000_10000000_00000000_20000000; + res = @atomicRmw(int, &x, .Sub, operator, .SeqCst); + try expect(res == y); + y = y - operator; + try expect(x == y); + + operator = 0x12345678_87654321_12345678_87654321; + res = @atomicRmw(int, &x, .And, operator, .SeqCst); + try expect(res == y); + y = y & operator; + try expect(x == y); + + operator = 0x00000000_10000000_00000000_20000000; + res = @atomicRmw(int, &x, .Nand, operator, .SeqCst); + try expect(res == y); + y = ~(y & operator); + try expect(x == y); + + operator = 0x12340000_56780000_67890000_98760000; + res = @atomicRmw(int, &x, .Or, operator, .SeqCst); + try expect(res == y); + y = y | operator; + try expect(x == y); + + operator = 0x0a0b0c0d_0e0f0102_03040506_0708090a; + res = @atomicRmw(int, &x, .Xor, operator, .SeqCst); + try expect(res == y); + y = y ^ operator; + try expect(x == y); + + operator = 0x00000000_10000000_00000000_20000000; + res = @atomicRmw(int, &x, .Max, operator, .SeqCst); + try expect(res == y); + y = @max(y, operator); + try expect(x == y); + + res = @atomicRmw(int, &x, .Min, operator, .SeqCst); + try expect(res == y); + y = @min(y, operator); + try expect(x == y); +} + test "atomics with different types" { if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO From 6ed049fe3642c775e53b3bef2f9bfb6a1de0f325 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sun, 18 Dec 2022 17:30:52 -0500 Subject: [PATCH 26/46] cbe: all behaviour tests now pass on msvc - Fix zig_clz_u128 not respecting the bits argument. This was crashing the compile-rt addxf3 tests with the cbe - Instead of redering a negation for negative 128 bit int literals, render the literal as twos complement. This allows rendering int representations of floats correctly (specifically f80). --- lib/std/math/big/int.zig | 34 +++++++++++++++ lib/zig.h | 89 +++------------------------------------ src/codegen/c.zig | 39 +++++++++++++---- test/behavior/atomics.zig | 3 +- 4 files changed, 73 insertions(+), 92 deletions(-) diff --git a/lib/std/math/big/int.zig b/lib/std/math/big/int.zig index 8410e25864..d222d6913b 100644 --- a/lib/std/math/big/int.zig +++ b/lib/std/math/big/int.zig @@ -1677,6 +1677,40 @@ pub const Mutable = struct { y.shiftRight(y.toConst(), norm_shift); } + /// If a is positive, this passes through to truncate. + /// If a is negative, then r is set to positive with the bit pattern ~(a - 1). + /// + /// Asserts `r` has enough storage to store the result. + /// The upper bound is `calcTwosCompLimbCount(a.len)`. + pub fn convertToTwosComplement(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void { + if (a.positive) { + r.truncate(a, signedness, bit_count); + return; + } + + const req_limbs = calcTwosCompLimbCount(bit_count); + if (req_limbs == 0 or a.eqZero()) { + r.set(0); + return; + } + + const bit = @truncate(Log2Limb, bit_count - 1); + const signmask = @as(Limb, 1) << bit; + const mask = (signmask << 1) -% 1; + + r.addScalar(a.abs(), -1); + if (req_limbs > r.len) { + mem.set(Limb, r.limbs[r.len..req_limbs], 0); + } + + assert(r.limbs.len >= req_limbs); + r.len = req_limbs; + + llnot(r.limbs[0..r.len]); + r.limbs[r.len - 1] &= mask; + r.normalize(r.len); + } + /// Truncate an integer to a number of bits, following 2s-complement semantics. /// r may alias a. /// diff --git a/lib/zig.h b/lib/zig.h index b8e64708d5..53e7c81dda 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1339,7 +1339,7 @@ static inline zig_u128 zig_shl_u128(zig_u128 lhs, zig_u8 rhs) { static inline zig_i128 zig_shl_i128(zig_i128 lhs, zig_u8 rhs) { if (rhs == zig_as_u8(0)) return lhs; - if (rhs >= zig_as_u8(64)) return (zig_i128){ .hi = lhs.hi << (rhs - zig_as_u8(64)), .lo = zig_minInt_u64 }; // TODO: Fix? + if (rhs >= zig_as_u8(64)) return (zig_i128){ .hi = lhs.lo << rhs, .lo = zig_minInt_u64 }; return (zig_i128){ .hi = lhs.hi << rhs | lhs.lo >> (zig_as_u8(64) - rhs), .lo = lhs.lo << rhs }; } @@ -1681,8 +1681,9 @@ static inline zig_i128 zig_muls_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) { } static inline zig_u8 zig_clz_u128(zig_u128 val, zig_u8 bits) { + if (bits <= zig_as_u8(64)) return zig_clz_u64(zig_lo_u128(val), bits); if (zig_hi_u128(val) != 0) return zig_clz_u64(zig_hi_u128(val), bits - zig_as_u8(64)); - return zig_clz_u64(zig_lo_u128(val), zig_as_u8(64)) + zig_as_u8(64); + return zig_clz_u64(zig_lo_u128(val), zig_as_u8(64)) + (bits - zig_as_u8(64)); } static inline zig_u8 zig_clz_i128(zig_i128 val, zig_u8 bits) { @@ -1942,14 +1943,15 @@ typedef zig_i128 zig_f128; #define zig_has_c_longdouble 1 #define zig_libc_name_c_longdouble(name) name##l #define zig_as_special_constant_c_longdouble(sign, name, arg, repr) zig_as_special_c_longdouble(sign, name, arg, repr) -#if !_MSC_VER // TODO: Is there a better way to detect long double == double on msvc? +#ifdef zig_bitSizeOf_c_longdouble typedef long double zig_c_longdouble; #define zig_as_c_longdouble(fp, repr) fp##l #else #undef zig_has_c_longdouble +#define zig_bitSizeOf_c_longdouble 80 +#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f80 #define zig_has_c_longdouble 0 #define zig_repr_c_longdouble i128 -#define zig_bitSizeOf_c_longdouble 128 typedef zig_i128 zig_c_longdouble; #define zig_as_c_longdouble(fp, repr) repr #undef zig_as_special_c_longdouble @@ -1972,85 +1974,6 @@ zig_float_from_repr(f128, u128) zig_float_from_repr(c_longdouble, u128) #endif -/* #define zig_float_from_repr(Type) *((zig_##Type*)&repr) */ - -/* #define zig_float_inf_builtin_0(Type, ReprType) \ */ -/* static inline zig_##Type zig_as_special_inf_##Type(zig_##ReprType repr) { \ */ -/* return zig_float_from_repr(Type); \ */ -/* } */ -/* #define zig_float_inf_builtin_1(Type, ReprType) \ */ -/* static inline zig_##Type zig_as_special_inf_##Type(zig_##ReprType repr) { \ */ -/* return __builtin_inf(); \ */ -/* } */ -/* #define zig_float_nan_builtin_0(Type, ReprType) \ */ -/* static inline zig_##Type zig_as_special_nan_##Type(const char* arg, zig_##ReprType repr) { \ */ -/* return zig_float_from_repr(Type); \ */ -/* } */ -/* #define zig_float_nan_builtin_1(Type, ReprType) \ */ -/* static inline zig_##Type zig_as_special_nan_##Type(const char* arg, zig_##ReprType repr) { \ */ -/* return __builtin_nan(arg); \ */ -/* } */ -/* #define zig_float_nans_builtin_0(Type, ReprType) \ */ -/* static inline zig_##Type zig_as_special_nans_##Type(const char* arg, zig_##ReprType repr) { \ */ -/* return zig_float_from_repr(Type); \ */ -/* } */ -/* #define zig_float_nans_builtin_1(Type, ReprType) \ */ -/* static inline zig_##Type zig_as_special_nans_##Type(const char* arg, zig_##ReprType repr) { \ */ -/* return __builtin_nans(arg); \ */ -/* } */ - -/* #define zig_float_special_builtins(Type, ReprType) \ */ -/* zig_expand_concat(zig_float_inf_builtin_, zig_has_builtin(inf))(Type, ReprType) \ */ -/* zig_expand_concat(zig_float_nan_builtin_, zig_has_builtin(nan))(Type, ReprType) \ */ -/* zig_expand_concat(zig_float_nans_builtin_, zig_has_builtin(nans))(Type, ReprType) */ - -/* #if zig_has_builtin(nan) */ -/* #define zig_as_special_nan(arg, repr) __builtin_nan(arg); */ -/* #define zig_as_special_nan_f16(arg, repr) __builtin_nan(arg); */ -/* #define zig_as_special_nan_f32(arg, repr) __builtin_nan(arg); */ -/* #define zig_as_special_nan_f64(arg, repr) __builtin_nan(arg); */ -/* #define zig_as_special_nan_f80(arg, repr) __builtin_nan(arg); */ -/* #define zig_as_special_nan_f128(arg, repr) __builtin_nan(arg); */ -/* #else */ -/* zig_float_special_builtins(); */ -/* #endif */ - -/* #if zig_has_f16 */ -/* zig_float_special_builtins(f16, u16) */ -/* #endif */ - -/* #if zig_has_f32 */ -/* zig_float_special_builtins(f32, u32) */ -/* #endif */ - -/* #if zig_has_f64 */ -/* zig_float_special_builtins(f64, u64) */ -/* #endif */ - -/* #if zig_has_f80 */ -/* zig_float_special_builtins(f80, u128) */ -/* #endif */ - -/* #if zig_has_f128 */ -/* zig_float_special_builtins(f128, u128) */ -/* #endif */ - -/* #if zig_has_c_longdouble */ -/* zig_float_special_builtins(c_longdouble, u128) */ -/* #endif */ - -#if zig_bitSizeOf_c_longdouble == 16 -#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f16 -#elif zig_bitSizeOf_c_longdouble == 32 -#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f32 -#elif zig_bitSizeOf_c_longdouble == 64 -#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f64 -#elif zig_bitSizeOf_c_longdouble == 80 -#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f80 -#elif zig_bitSizeOf_c_longdouble == 128 -#define zig_compiler_rt_abbrev_c_longdouble zig_compiler_rt_abbrev_f128 -#endif - #define zig_cast_f16 (zig_f16) #define zig_cast_f32 (zig_f32) #define zig_cast_f64 (zig_f64) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index e0a59e50e5..23d9e1093f 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -2603,7 +2603,7 @@ pub const DeclGen = struct { dg: *DeclGen, ty: Type, val: Value, - location: ValueRenderLocation, // TODO: Instead add this as optional arg to fmtIntLiteralLoc + location: ValueRenderLocation, // TODO: Instead add this as optional arg to fmtIntLiteral ) !std.fmt.Formatter(formatIntLiteral) { const int_info = ty.intInfo(dg.module.getTarget()); const c_bits = toCIntBits(int_info.bits); @@ -7251,11 +7251,16 @@ fn formatIntLiteral( return writer.print("{s}_{s}", .{ abbrev, if (int.positive) "MAX" else "MIN" }); } + var use_twos_comp = false; if (!int.positive) { if (c_bits > 64) { - // TODO: Could use negate function instead? - // TODO: Use fmtIntLiteral for 0? - try writer.print("zig_sub_{c}{d}(zig_as_{c}{d}(0, 0), ", .{ signAbbrev(int_info.signedness), c_bits, signAbbrev(int_info.signedness), c_bits }); + // TODO: Can this be done for decimal literals as well? + if (fmt.len == 1 and fmt[0] != 'd') { + use_twos_comp = true; + } else { + // TODO: Use fmtIntLiteral for 0? + try writer.print("zig_sub_{c}{d}(zig_as_{c}{d}(0, 0), ", .{ signAbbrev(int_info.signedness), c_bits, signAbbrev(int_info.signedness), c_bits }); + } } else { try writer.writeByte('-'); } @@ -7310,16 +7315,34 @@ fn formatIntLiteral( } else { assert(c_bits == 128); const split = std.math.min(int.limbs.len, limbs_count_64); + var twos_comp_limbs: [BigInt.calcTwosCompLimbCount(128)]BigIntLimb = undefined; + + // Adding a negation in the C code before the doesn't work in all cases: + // - struct versions would require an extra zig_sub_ call to negate, which wouldn't work in constant expressions + // - negating the f80 int representation (i128) doesn't make sense + // Instead we write out the literal as a negative number in twos complement + var limbs = int.limbs; + + if (use_twos_comp) { + var twos_comp = BigInt.Mutable{ + .limbs = &twos_comp_limbs, + .positive = undefined, + .len = undefined, + }; + + twos_comp.convertToTwosComplement(int, .signed, int_info.bits); + limbs = twos_comp.limbs; + } var upper_pl = Value.Payload.BigInt{ .base = .{ .tag = .int_big_positive }, - .data = int.limbs[split..], + .data = limbs[split..], }; const upper_val = Value.initPayload(&upper_pl.base); try formatIntLiteral(.{ .ty = switch (int_info.signedness) { .unsigned => Type.u64, - .signed => Type.i64, + .signed => if (use_twos_comp) Type.u64 else Type.i64, }, .val = upper_val, .mod = data.mod, @@ -7329,7 +7352,7 @@ fn formatIntLiteral( var lower_pl = Value.Payload.BigInt{ .base = .{ .tag = .int_big_positive }, - .data = int.limbs[0..split], + .data = limbs[0..split], }; const lower_val = Value.initPayload(&lower_pl.base); try formatIntLiteral(.{ @@ -7338,7 +7361,7 @@ fn formatIntLiteral( .mod = data.mod, }, fmt, options, writer); - if (!int.positive and c_bits > 64) try writer.writeByte(')'); + if (!int.positive and c_bits > 64 and !use_twos_comp) try writer.writeByte(')'); return writer.writeByte(')'); } diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index 17c4a139ae..f6463ad80a 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -251,7 +251,8 @@ test "atomicrmw with ints" { return error.SkipZigTest; } - const bit_values = [_]usize{ 8, 16, 32, 64 }; + // TODO: Use the max atomic bit size for the target, maybe builtin? + const bit_values = [_]usize{ 8 } ++ if (builtin.cpu.arch == .x86_64) [_]usize{ 16, 32, 64 } else [_]usize{ }; inline for (bit_values) |bits| { try testAtomicRmwInt(.unsigned, bits); comptime try testAtomicRmwInt(.unsigned, bits); From 5d59799641608741d3a4eb45e125e59235c2e94c Mon Sep 17 00:00:00 2001 From: kcbanner Date: Mon, 19 Dec 2022 00:47:17 -0500 Subject: [PATCH 27/46] cbe: add msvc flt atomics, re-enable test --- lib/zig.h | 40 +++++++++++++++++++++++++++++++++++++++ test/behavior/atomics.zig | 1 - 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/lib/zig.h b/lib/zig.h index 53e7c81dda..8b0f59f344 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -2202,6 +2202,46 @@ zig_msvc_atomics(i32, ) zig_msvc_atomics(u64, 64) zig_msvc_atomics(i64, 64) +#define zig_msvc_flt_atomics(Type, ReprType, suffix) \ + static inline bool zig_msvc_cmpxchg_##Type(zig_##Type volatile* obj, zig_##Type* expected, zig_##Type desired) { \ + zig_##ReprType comparand = *((zig_##ReprType*)expected); \ + zig_##ReprType initial = _InterlockedCompareExchange##suffix((zig_##ReprType volatile*)obj, *((zig_##ReprType*)&desired), comparand); \ + bool exchanged = initial == comparand; \ + if (!exchanged) { \ + *expected = *((zig_##Type*)&initial); \ + } \ + return exchanged; \ + } \ + static inline zig_##Type zig_msvc_atomicrmw_xchg_##Type(zig_##Type volatile* obj, zig_##Type value) { \ + zig_##ReprType initial = _InterlockedExchange##suffix((zig_##ReprType volatile*)obj, *((zig_##ReprType*)&value)); \ + return *((zig_##Type*)&initial); \ + } \ + static inline zig_##Type zig_msvc_atomicrmw_add_##Type(zig_##Type volatile* obj, zig_##Type value) { \ + bool success = false; \ + zig_##ReprType new; \ + zig_##Type prev; \ + while (!success) { \ + prev = *obj; \ + new = prev + value; \ + success = zig_msvc_cmpxchg_##Type(obj, &prev, *((zig_##ReprType*)&new)); \ + } \ + return prev; \ + } \ + static inline zig_##Type zig_msvc_atomicrmw_sub_##Type(zig_##Type volatile* obj, zig_##Type value) { \ + bool success = false; \ + zig_##ReprType new; \ + zig_##Type prev; \ + while (!success) { \ + prev = *obj; \ + new = prev - value; \ + success = zig_msvc_cmpxchg_##Type(obj, &prev, *((zig_##ReprType*)&new)); \ + } \ + return prev; \ + } + +zig_msvc_flt_atomics(f32, u32, ) +zig_msvc_flt_atomics(f64, u64, 32) + #if _M_IX86 static inline void* zig_msvc_atomicrmw_xchg_p32(void** obj, zig_u32* arg) { return _InterlockedExchangePointer(obj, arg); diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index f6463ad80a..92ed027008 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -217,7 +217,6 @@ test "atomicrmw with floats" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if ((builtin.zig_backend == .stage2_llvm or builtin.zig_backend == .stage2_c) and builtin.cpu.arch == .aarch64) From 7a20e7589e11f51b68920443af9e54dfd5c962c8 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Mon, 19 Dec 2022 01:37:54 -0500 Subject: [PATCH 28/46] stage1: update zig1.wasm --- lib/zig.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index 8b0f59f344..fda0f25489 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -173,8 +173,8 @@ typedef char bool; #define memory_order_acq_rel __ATOMIC_ACQ_REL #define memory_order_seq_cst __ATOMIC_SEQ_CST #define zig_atomic(type) type -#define zig_cmpxchg_strong(obj, expected, desired, succ, fail, types) __atomic_compare_exchange_n(obj, &(expected), desired, false, succ, fail) -#define zig_cmpxchg_weak(obj, expected, desired, succ, fail, types) __atomic_compare_exchange_n(obj, &(expected), desired, true , succ, fail) +#define zig_cmpxchg_strong(obj, expected, desired, succ, fail, type) __atomic_compare_exchange_n(obj, &(expected), desired, false, succ, fail) +#define zig_cmpxchg_weak(obj, expected, desired, succ, fail, type) __atomic_compare_exchange_n(obj, &(expected), desired, true , succ, fail) #define zig_atomicrmw_xchg(obj, arg, order, type) __atomic_exchange_n(obj, arg, order) #define zig_atomicrmw_add(obj, arg, order, type) __atomic_fetch_add (obj, arg, order) #define zig_atomicrmw_sub(obj, arg, order, type) __atomic_fetch_sub (obj, arg, order) From 55c3551bef9eb2ae882e8b2c811672ee64b60a70 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Wed, 21 Dec 2022 22:54:52 -0500 Subject: [PATCH 29/46] cbe: fixup 64 bit float atomics --- lib/zig.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/zig.h b/lib/zig.h index fda0f25489..31b330bc44 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -2240,7 +2240,7 @@ zig_msvc_atomics(i64, 64) } zig_msvc_flt_atomics(f32, u32, ) -zig_msvc_flt_atomics(f64, u64, 32) +zig_msvc_flt_atomics(f64, u64, 64) #if _M_IX86 static inline void* zig_msvc_atomicrmw_xchg_p32(void** obj, zig_u32* arg) { From f07d33f54b3448019f5e7c74c1f9063a5079b961 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Fri, 23 Dec 2022 23:48:44 -0500 Subject: [PATCH 30/46] cbe: fixes for compiling zig2.c under msvc - add zig_mul_i128 - render slice structs in static initializers without casts / c99 style init - add negative numbers and u128 to 128-bit multiply test --- lib/zig.h | 5 +++ src/codegen/c.zig | 83 ++++++++++++++++++++++++++++++------------ test/behavior/math.zig | 23 ++++++++++-- 3 files changed, 84 insertions(+), 27 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index 31b330bc44..4455316bc3 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -1465,6 +1465,11 @@ static zig_u128 zig_mul_u128(zig_u128 lhs, zig_u128 rhs) { static zig_u128 zig_mul_u128(zig_u128 lhs, zig_u128 rhs); // TODO #endif +zig_extern zig_i128 __multi3(zig_i128 lhs, zig_i128 rhs); +static zig_i128 zig_mul_i128(zig_i128 lhs, zig_i128 rhs) { + return __multi3(lhs, rhs); +} + static inline zig_u128 zig_mulw_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { return zig_wrap_u128(zig_mul_u128(lhs, rhs), bits); } diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 23d9e1093f..216366e576 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -320,7 +320,7 @@ pub const Function = struct { try writer.writeAll("static "); try f.object.dg.renderTypeAndName(writer, ty, decl_c_value, .Const, alignment, .Complete); try writer.writeAll(" = "); - try f.object.dg.renderValue(writer, ty, val, .Initializer); + try f.object.dg.renderValue(writer, ty, val, .StaticInitializer); try writer.writeAll(";\n "); break :result decl_c_value; } else CValue{ .constant = inst }; @@ -514,6 +514,7 @@ pub const DeclGen = struct { ty: Type, val: Value, decl_index: Decl.Index, + location: ValueRenderLocation, ) error{ OutOfMemory, AnalysisFail }!void { const decl = dg.module.declPtr(decl_index); assert(decl.has_tv); @@ -527,12 +528,16 @@ pub const DeclGen = struct { inline for (.{ .function, .extern_fn }) |tag| if (decl.val.castTag(tag)) |func| if (func.data.owner_decl != decl_index) - return dg.renderDeclValue(writer, ty, val, func.data.owner_decl); + return dg.renderDeclValue(writer, ty, val, func.data.owner_decl, location); if (ty.isSlice()) { - try writer.writeByte('('); - try dg.renderTypecast(writer, ty); - try writer.writeAll("){ .ptr = "); + if (location == .StaticInitializer) { + try writer.writeByte('{'); + } else { + try writer.writeByte('('); + try dg.renderTypecast(writer, ty); + try writer.writeAll("){ .ptr = "); + } var buf: Type.SlicePtrFieldTypeBuffer = undefined; try dg.renderValue(writer, ty.slicePtrFieldType(&buf), val.slicePtr(), .Initializer); @@ -542,7 +547,12 @@ pub const DeclGen = struct { .data = val.sliceLen(dg.module), }; const len_val = Value.initPayload(&len_pl.base); - return writer.print(", .len = {} }}", .{try dg.fmtIntLiteral(Type.usize, len_val)}); + + if (location == .StaticInitializer) { + return writer.print(", {} }}", .{try dg.fmtIntLiteral(Type.usize, len_val)}); + } else { + return writer.print(", .len = {} }}", .{try dg.fmtIntLiteral(Type.usize, len_val)}); + } } // We shouldn't cast C function pointers as this is UB (when you call @@ -564,7 +574,7 @@ pub const DeclGen = struct { // that its contents are defined with respect to. // // Used for .elem_ptr, .field_ptr, .opt_payload_ptr, .eu_payload_ptr - fn renderParentPtr(dg: *DeclGen, writer: anytype, ptr_val: Value, ptr_ty: Type) error{ OutOfMemory, AnalysisFail }!void { + fn renderParentPtr(dg: *DeclGen, writer: anytype, ptr_val: Value, ptr_ty: Type, location: ValueRenderLocation) error{ OutOfMemory, AnalysisFail }!void { if (!ptr_ty.isSlice()) { try writer.writeByte('('); try dg.renderTypecast(writer, ptr_ty); @@ -579,7 +589,7 @@ pub const DeclGen = struct { .variable => ptr_val.castTag(.variable).?.data.owner_decl, else => unreachable, }; - try dg.renderDeclValue(writer, ptr_ty, ptr_val, decl_index); + try dg.renderDeclValue(writer, ptr_ty, ptr_val, decl_index, location); }, .field_ptr => { const ptr_info = ptr_ty.ptrInfo(); @@ -617,7 +627,7 @@ pub const DeclGen = struct { try writer.writeAll("&(("); try dg.renderTypecast(writer, u8_ptr_ty); try writer.writeByte(')'); - try dg.renderParentPtr(writer, field_ptr.container_ptr, container_ptr_ty); + try dg.renderParentPtr(writer, field_ptr.container_ptr, container_ptr_ty, location); return writer.print(")[{}]", .{try dg.fmtIntLiteral(Type.usize, byte_offset_val)}); } else { var host_pl = Type.Payload.Bits{ @@ -629,7 +639,7 @@ pub const DeclGen = struct { try writer.writeByte('('); try dg.renderTypecast(writer, ptr_ty); try writer.writeByte(')'); - return dg.renderParentPtr(writer, field_ptr.container_ptr, host_ty); + return dg.renderParentPtr(writer, field_ptr.container_ptr, host_ty, location); }, }, .Union => switch (container_ty.containerLayout()) { @@ -638,7 +648,7 @@ pub const DeclGen = struct { .ty = container_ty.unionFields().values()[index].ty, }, .Packed => { - return dg.renderParentPtr(writer, field_ptr.container_ptr, ptr_ty); + return dg.renderParentPtr(writer, field_ptr.container_ptr, ptr_ty, location); }, }, .Pointer => field_info: { @@ -657,7 +667,7 @@ pub const DeclGen = struct { try dg.renderType(std.io.null_writer, field_ptr.container_ty, .Complete); try writer.writeAll("&("); - try dg.renderParentPtr(writer, field_ptr.container_ptr, container_ptr_ty); + try dg.renderParentPtr(writer, field_ptr.container_ptr, container_ptr_ty, location); try writer.writeAll(")->"); switch (field_ptr.container_ty.tag()) { .union_tagged, .union_safety_tagged => try writer.writeAll("payload."), @@ -665,7 +675,7 @@ pub const DeclGen = struct { } try writer.print("{ }", .{fmtIdent(field_info.name)}); } else { - try dg.renderParentPtr(writer, field_ptr.container_ptr, container_ptr_ty); + try dg.renderParentPtr(writer, field_ptr.container_ptr, container_ptr_ty, location); } }, .elem_ptr => { @@ -677,7 +687,7 @@ pub const DeclGen = struct { const elem_ptr_ty = Type.initPayload(&elem_ptr_ty_pl.base); try writer.writeAll("&("); - try dg.renderParentPtr(writer, elem_ptr.array_ptr, elem_ptr_ty); + try dg.renderParentPtr(writer, elem_ptr.array_ptr, elem_ptr_ty, location); try writer.print(")[{d}]", .{elem_ptr.index}); }, .opt_payload_ptr, .eu_payload_ptr => { @@ -692,7 +702,7 @@ pub const DeclGen = struct { try dg.renderType(std.io.null_writer, payload_ptr.container_ty, .Complete); try writer.writeAll("&("); - try dg.renderParentPtr(writer, payload_ptr.container_ptr, container_ptr_ty); + try dg.renderParentPtr(writer, payload_ptr.container_ptr, container_ptr_ty, location); try writer.writeAll(")->payload"); }, else => unreachable, @@ -910,7 +920,7 @@ pub const DeclGen = struct { .eu_payload_ptr, .decl_ref_mut, .decl_ref, - => try dg.renderParentPtr(writer, val, ty), + => try dg.renderParentPtr(writer, val, ty, location), else => try writer.print("{}", .{try dg.fmtIntLiteralLoc(ty, val, location)}), }, .Float => { @@ -1024,7 +1034,7 @@ pub const DeclGen = struct { }, .variable => { const decl = val.castTag(.variable).?.data.owner_decl; - return dg.renderDeclValue(writer, ty, val, decl); + return dg.renderDeclValue(writer, ty, val, decl, location); }, .slice => { if (!location.isInitializer()) { @@ -1061,7 +1071,7 @@ pub const DeclGen = struct { .eu_payload_ptr, .decl_ref_mut, .decl_ref, - => try dg.renderParentPtr(writer, val, ty), + => try dg.renderParentPtr(writer, val, ty, location), else => unreachable, }, .Array, .Vector => { @@ -1255,11 +1265,11 @@ pub const DeclGen = struct { .Fn => switch (val.tag()) { .function => { const decl = val.castTag(.function).?.data.owner_decl; - return dg.renderDeclValue(writer, ty, val, decl); + return dg.renderDeclValue(writer, ty, val, decl, location); }, .extern_fn => { const decl = val.castTag(.extern_fn).?.data.owner_decl; - return dg.renderDeclValue(writer, ty, val, decl); + return dg.renderDeclValue(writer, ty, val, decl, location); }, else => unreachable, }, @@ -2512,6 +2522,9 @@ pub const DeclGen = struct { try dg.writeCValue(writer, member); } + const IdentHasher = std.crypto.auth.siphash.SipHash128(1, 3); + const ident_hasher_init: IdentHasher = IdentHasher.init(&[_]u8{0} ** IdentHasher.key_length); + fn renderDeclName(dg: *DeclGen, writer: anytype, decl_index: Decl.Index, export_index: u32) !void { const decl = dg.module.declPtr(decl_index); dg.module.markDeclAlive(decl); @@ -2529,7 +2542,18 @@ pub const DeclGen = struct { const gpa = dg.gpa; const name = try decl.getFullyQualifiedName(dg.module); defer gpa.free(name); - return writer.print("{}", .{fmtIdent(name)}); + + // MSVC has a limit of 4095 character token length limit, and fmtIdent can (worst case), expand + // to 3x the length of its input + if (name.len > 1365) { + var hash = ident_hasher_init; + hash.update(name); + const ident_hash = hash.finalInt(); + try writer.writeAll("zig_D_"); + return std.fmt.formatIntValue(ident_hash, "x", .{}, writer); + } else { + return writer.print("{}", .{fmtIdent(name)}); + } } } @@ -4648,7 +4672,15 @@ fn airCondBr(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, cond, .Other); try writer.writeAll(") "); try genBody(f, then_body); - try writer.writeAll(" else "); + + // TODO: If body ends in goto, elide the else block? + const needs_else = then_body.len <= 0 or f.air.instructions.items(.tag)[then_body[then_body.len - 1]] != .br; + if (needs_else) { + try writer.writeAll(" else "); + } else { + try writer.writeByte('\n'); + } + f.value_map.deinit(); f.value_map = cloned_map.move(); const free_locals = f.getFreeLocals(); @@ -4661,7 +4693,12 @@ fn airCondBr(f: *Function, inst: Air.Inst.Index) !CValue { try noticeBranchFrees(f, pre_locals_len, inst); - try genBody(f, else_body); + if (needs_else) { + try genBody(f, else_body); + } else { + try genBodyInner(f, else_body); + } + try f.object.indent_writer.insertNewline(); return CValue.none; diff --git a/test/behavior/math.zig b/test/behavior/math.zig index d6955b0592..5252efe2fa 100644 --- a/test/behavior/math.zig +++ b/test/behavior/math.zig @@ -632,10 +632,25 @@ test "128-bit multiplication" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - var a: i128 = 3; - var b: i128 = 2; - var c = a * b; - try expect(c == 6); + { + var a: i128 = 3; + var b: i128 = 2; + var c = a * b; + try expect(c == 6); + + a = -3; + b = 2; + c = a * b; + try expect(c == -6); + } + + { + var a: u128 = 0xffffffffffffffff; + var b: u128 = 100; + var c = a * b; + try expect(c == 0x63ffffffffffffff9c); + } + } test "@addWithOverflow" { From 676e4f3824054cf39c87d008909b0e57bb9bdcc8 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Wed, 28 Dec 2022 02:05:15 -0500 Subject: [PATCH 31/46] cbe: changes to get zig2.c compiling under msvc - Add cpuid / getXCR0 functions for the cbe to use instead of asm blocks - Don't cast between 128 bit types during truncation - Fixup truncation to use functions for shifts / adds - Fixup float casts for undefined values - Add test for 128 bit integer truncation --- lib/std/zig/system/x86.zig | 31 +++++++++++++++++------- lib/zig.h | 48 ++++++++++++++++++++++++++++++++------ src/codegen/c.zig | 46 ++++++++++++++++++++++-------------- test/behavior/basic.zig | 14 +++++++++++ 4 files changed, 107 insertions(+), 32 deletions(-) diff --git a/lib/std/zig/system/x86.zig b/lib/std/zig/system/x86.zig index 66468ba6ff..da09983ac7 100644 --- a/lib/std/zig/system/x86.zig +++ b/lib/std/zig/system/x86.zig @@ -1,4 +1,5 @@ const std = @import("std"); +const builtin = @import("builtin"); const Target = std.Target; const CrossTarget = std.zig.CrossTarget; @@ -527,25 +528,39 @@ const CpuidLeaf = packed struct { edx: u32, }; +extern fn zig_cpuid(leaf_id: u32, subid: u32, eax: *u32, ebx: *u32, ecx: *u32, edx: *u32) void; + fn cpuid(leaf_id: u32, subid: u32) CpuidLeaf { // valid for both x86 and x86_64 var eax: u32 = undefined; var ebx: u32 = undefined; var ecx: u32 = undefined; var edx: u32 = undefined; - asm volatile ("cpuid" - : [_] "={eax}" (eax), - [_] "={ebx}" (ebx), - [_] "={ecx}" (ecx), - [_] "={edx}" (edx), - : [_] "{eax}" (leaf_id), - [_] "{ecx}" (subid), - ); + + if (builtin.zig_backend == .stage2_c) { + zig_cpuid(leaf_id, subid, &eax, &ebx, &ecx, &edx); + } else { + asm volatile ("cpuid" + : [_] "={eax}" (eax), + [_] "={ebx}" (ebx), + [_] "={ecx}" (ecx), + [_] "={edx}" (edx), + : [_] "{eax}" (leaf_id), + [_] "{ecx}" (subid), + ); + } + return .{ .eax = eax, .ebx = ebx, .ecx = ecx, .edx = edx }; } +extern fn zig_get_xcr0() u32; + // Read control register 0 (XCR0). Used to detect features such as AVX. fn getXCR0() u32 { + if (builtin.zig_backend == .stage2_c) { + return zig_get_xcr0(); + } + return asm volatile ( \\ xor %%ecx, %%ecx \\ xgetbv diff --git a/lib/zig.h b/lib/zig.h index 4455316bc3..0bd526b436 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -6,6 +6,12 @@ #include #include +#if _MSC_VER +#include +#else +#include +#endif + #if !defined(__cplusplus) && __STDC_VERSION__ <= 201710L #if __STDC_VERSION__ >= 199901L #include @@ -188,7 +194,6 @@ typedef char bool; #define zig_atomic_load(obj, order, type) __atomic_load_n (obj, order) #define zig_fence(order) __atomic_thread_fence(order) #elif _MSC_VER && (_M_IX86 || _M_X64) -#include #define memory_order_relaxed 0 #define memory_order_consume 1 #define memory_order_acquire 2 @@ -1367,6 +1372,11 @@ static inline zig_i128 zig_sub_i128(zig_i128 lhs, zig_i128 rhs) { return res; } +zig_extern zig_i128 __multi3(zig_i128 lhs, zig_i128 rhs); +static zig_i128 zig_mul_i128(zig_i128 lhs, zig_i128 rhs) { + return __multi3(lhs, rhs); +} + zig_extern zig_u128 __udivti3(zig_u128 lhs, zig_u128 rhs); static zig_u128 zig_div_trunc_u128(zig_u128 lhs, zig_u128 rhs) { return __udivti3(lhs, rhs); @@ -1392,6 +1402,10 @@ static inline zig_i128 zig_mod_i128(zig_i128 lhs, zig_i128 rhs) { return zig_add_i128(rem, (((lhs.hi ^ rhs.hi) & rem.hi) < zig_as_i64(0) ? rhs : zig_as_i128(0, 0))); } +static inline zig_i128 zig_div_floor_i128(zig_i128 lhs, zig_i128 rhs) { + return zig_sub_i128(zig_div_trunc_i128(lhs, rhs), zig_as_i128(0, zig_cmp_i128(zig_and_i128(zig_xor_i128(lhs, rhs), zig_rem_i128(lhs, rhs)), zig_as_i128(0, 0)) < zig_as_i32(0))); +} + #endif /* zig_has_int128 */ #define zig_div_floor_u128 zig_div_trunc_u128 @@ -1465,11 +1479,6 @@ static zig_u128 zig_mul_u128(zig_u128 lhs, zig_u128 rhs) { static zig_u128 zig_mul_u128(zig_u128 lhs, zig_u128 rhs); // TODO #endif -zig_extern zig_i128 __multi3(zig_i128 lhs, zig_i128 rhs); -static zig_i128 zig_mul_i128(zig_i128 lhs, zig_i128 rhs) { - return __multi3(lhs, rhs); -} - static inline zig_u128 zig_mulw_u128(zig_u128 lhs, zig_u128 rhs, zig_u8 bits) { return zig_wrap_u128(zig_mul_u128(lhs, rhs), bits); } @@ -2118,7 +2127,6 @@ zig_float_builtins(f128) zig_float_builtins(c_longdouble) #if _MSC_VER && (_M_IX86 || _M_X64) -#include // TODO: zig_msvc_atomic_load should load 32 bit without interlocked on x86, and load 64 bit without interlocked on x64 @@ -2338,3 +2346,29 @@ zig_msvc_atomics_128op(u128, min) zig_msvc_atomics_128op(u128, max) #endif + +/* ========================= Special Case Intrinsics ========================= */ + +static inline void zig_cpuid(zig_u32 leaf_id, zig_u32 subid, zig_u32* eax, zig_u32* ebx, zig_u32* ecx, zig_u32* edx) { +#if _MSC_VER + zig_u32 cpu_info[4]; + __cpuidex(cpu_info, leaf_id, subid); + *eax = cpu_info[0]; + *ebx = cpu_info[1]; + *ecx = cpu_info[2]; + *edx = cpu_info[3]; +#else + __cpuid_count(leaf_id, subid, eax, ebx, ecx, edx); +#endif +} + +static inline zig_u32 zig_get_xcr0() { +#if _MSC_VER + return (zig_u32)_xgetbv(0); +#else + zig_u32 eax; + zig_u32 edx; + __asm__("xgetbv" : "=a"(eax), "=d"(edx) : "c"(0)); + return eax; +#endif +} diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 216366e576..b97626990d 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -746,9 +746,9 @@ pub const DeclGen = struct { var int_pl = Type.Payload.Bits{ .base = .{ .tag = .int_signed }, .data = bits }; const int_ty = Type.initPayload(&int_pl.base); - try writer.writeByte('('); - try dg.renderTypecast(writer, ty); - try writer.writeAll(")zig_as_"); + try writer.writeAll("zig_cast_"); + try dg.renderTypeForBuiltinFnName(writer, ty); + try writer.writeAll(" zig_as_"); try dg.renderTypeForBuiltinFnName(writer, ty); try writer.writeByte('('); switch (bits) { @@ -3616,16 +3616,14 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll(" = "); const needs_lo = operand_int_info.bits > 64 and dest_bits <= 64; - if (!needs_lo or dest_c_bits != 64 or dest_int_info.signedness != operand_int_info.signedness) { - try writer.writeByte('('); - try f.renderTypecast(writer, inst_ty); - try writer.writeByte(')'); - } - if (needs_lo) { try writer.writeAll("zig_lo_"); try f.object.dg.renderTypeForBuiltinFnName(writer, operand_ty); try writer.writeByte('('); + } else if (dest_c_bits <= 64) { + try writer.writeByte('('); + try f.renderTypecast(writer, inst_ty); + try writer.writeByte(')'); } if (dest_bits >= 8 and std.math.isPowerOfTwo(dest_bits)) { @@ -3640,11 +3638,11 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { std.heap.stackFallback(@sizeOf(ExpectedContents), arena.allocator()); const mask_val = try inst_ty.maxInt(stack.get(), target); - - // TODO: This needs to use _and_ to do this to support > 64 bits and !zig_has_int128 + try writer.writeAll("zig_and_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, operand_ty); try writer.writeByte('('); - try f.writeCValue(writer, operand, .Other); - try writer.print(" & {x})", .{try f.fmtIntLiteral(inst_ty, mask_val)}); + try f.writeCValue(writer, operand, .FunctionArgument); + try writer.print(", {x})", .{try f.fmtIntLiteral(operand_ty, mask_val)}); }, .signed => { const c_bits = toCIntBits(operand_int_info.bits) orelse @@ -3655,10 +3653,24 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { }; const shift_val = Value.initPayload(&shift_pl.base); - // TODO: This needs to use shl and shr to do this to support > 64 bits and !zig_has_int128 - try writer.print("((int{d}_t)((uint{0d}_t)", .{c_bits}); - try f.writeCValue(writer, operand, .Other); - try writer.print(" << {}) >> {0})", .{try f.fmtIntLiteral(Type.u8, shift_val)}); + try writer.writeAll("zig_shr_"); + try f.object.dg.renderTypeForBuiltinFnName(writer, operand_ty); + if (c_bits == 128) { + try writer.print("(zig_bitcast_i{d}(", .{c_bits}); + } else { + try writer.print("((int{d}_t)", .{c_bits}); + } + try writer.print("zig_shl_u{d}(", .{c_bits}); + if (c_bits == 128) { + try writer.print("zig_bitcast_u{d}(", .{c_bits}); + } else { + try writer.print("(uint{d}_t)", .{c_bits}); + } + try f.writeCValue(writer, operand, .FunctionArgument); + if (c_bits == 128) try writer.writeByte(')'); + try writer.print(", {})", .{ try f.fmtIntLiteral(Type.u8, shift_val) }); + if (c_bits == 128) try writer.writeByte(')'); + try writer.print(", {})", .{ try f.fmtIntLiteral(Type.u8, shift_val) }); }, } diff --git a/test/behavior/basic.zig b/test/behavior/basic.zig index 6fcef06fc1..e704e190f3 100644 --- a/test/behavior/basic.zig +++ b/test/behavior/basic.zig @@ -37,6 +37,20 @@ test "truncate to non-power-of-two integers" { try testTrunc(i32, i5, std.math.maxInt(i32), -1); } +test "truncate to non-power-of-two integers from 128-bit" { + if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + + try testTrunc(u128, u1, 0xffffffff_ffffffff_ffffffff_01010101, 0x01); + try testTrunc(u128, u1, 0xffffffff_ffffffff_ffffffff_01010110, 0x00); + try testTrunc(u128, u2, 0xffffffff_ffffffff_ffffffff_01010101, 0x01); + try testTrunc(u128, u2, 0xffffffff_ffffffff_ffffffff_01010102, 0x02); + try testTrunc(i128, i5, -4, -4); + try testTrunc(i128, i5, 4, 4); + try testTrunc(i128, i5, -28, 4); + try testTrunc(i128, i5, 28, -4); + try testTrunc(i128, i5, std.math.maxInt(i128), -1); +} + fn testTrunc(comptime Big: type, comptime Little: type, big: Big, little: Little) !void { try expect(@truncate(Little, big) == little); } From 6cab3c304eb2d45be6aceb48aa5bbd1fd1298fa3 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Wed, 28 Dec 2022 03:00:21 -0500 Subject: [PATCH 32/46] cbe: be more explicit about x86 special cases --- lib/std/zig/system/x86.zig | 8 ++++---- lib/zig.h | 12 ++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/std/zig/system/x86.zig b/lib/std/zig/system/x86.zig index da09983ac7..9a9aa54975 100644 --- a/lib/std/zig/system/x86.zig +++ b/lib/std/zig/system/x86.zig @@ -528,7 +528,7 @@ const CpuidLeaf = packed struct { edx: u32, }; -extern fn zig_cpuid(leaf_id: u32, subid: u32, eax: *u32, ebx: *u32, ecx: *u32, edx: *u32) void; +extern fn zig_x86_cpuid(leaf_id: u32, subid: u32, eax: *u32, ebx: *u32, ecx: *u32, edx: *u32) void; fn cpuid(leaf_id: u32, subid: u32) CpuidLeaf { // valid for both x86 and x86_64 @@ -538,7 +538,7 @@ fn cpuid(leaf_id: u32, subid: u32) CpuidLeaf { var edx: u32 = undefined; if (builtin.zig_backend == .stage2_c) { - zig_cpuid(leaf_id, subid, &eax, &ebx, &ecx, &edx); + zig_x86_cpuid(leaf_id, subid, &eax, &ebx, &ecx, &edx); } else { asm volatile ("cpuid" : [_] "={eax}" (eax), @@ -553,12 +553,12 @@ fn cpuid(leaf_id: u32, subid: u32) CpuidLeaf { return .{ .eax = eax, .ebx = ebx, .ecx = ecx, .edx = edx }; } -extern fn zig_get_xcr0() u32; +extern fn zig_x86_get_xcr0() u32; // Read control register 0 (XCR0). Used to detect features such as AVX. fn getXCR0() u32 { if (builtin.zig_backend == .stage2_c) { - return zig_get_xcr0(); + return zig_x86_get_xcr0(); } return asm volatile ( diff --git a/lib/zig.h b/lib/zig.h index 0bd526b436..645850aa0e 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -8,7 +8,7 @@ #if _MSC_VER #include -#else +#elif defined(__i386__) || defined(__x86_64__) #include #endif @@ -2345,11 +2345,13 @@ zig_msvc_atomics_128op(u128, nand) zig_msvc_atomics_128op(u128, min) zig_msvc_atomics_128op(u128, max) -#endif +#endif /* _MSC_VER && (_M_IX86 || _M_X64) */ /* ========================= Special Case Intrinsics ========================= */ -static inline void zig_cpuid(zig_u32 leaf_id, zig_u32 subid, zig_u32* eax, zig_u32* ebx, zig_u32* ecx, zig_u32* edx) { +#if (_MSC_VER && (_M_IX86 || _M_X64)) || defined(__i386__) || defined(__x86_64__) + +static inline void zig_x86_cpuid(zig_u32 leaf_id, zig_u32 subid, zig_u32* eax, zig_u32* ebx, zig_u32* ecx, zig_u32* edx) { #if _MSC_VER zig_u32 cpu_info[4]; __cpuidex(cpu_info, leaf_id, subid); @@ -2362,7 +2364,7 @@ static inline void zig_cpuid(zig_u32 leaf_id, zig_u32 subid, zig_u32* eax, zig_u #endif } -static inline zig_u32 zig_get_xcr0() { +static inline zig_u32 zig_x86_get_xcr0() { #if _MSC_VER return (zig_u32)_xgetbv(0); #else @@ -2372,3 +2374,5 @@ static inline zig_u32 zig_get_xcr0() { return eax; #endif } + +#endif From 0251ce1e1bdf47765fc7280aab1816b50084c0b8 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Wed, 28 Dec 2022 14:18:30 -0500 Subject: [PATCH 33/46] compiler_rt: skip "__udivei4/__umodei4" on cbe due to missing > 128 bit integer support --- lib/compiler_rt/udivmodei4.zig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/compiler_rt/udivmodei4.zig b/lib/compiler_rt/udivmodei4.zig index e57b5e4d04..de2427b79f 100644 --- a/lib/compiler_rt/udivmodei4.zig +++ b/lib/compiler_rt/udivmodei4.zig @@ -129,6 +129,8 @@ pub fn __umodei4(r_p: [*c]u32, u_p: [*c]const u32, v_p: [*c]const u32, bits: usi } test "__udivei4/__umodei4" { + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO + const RndGen = std.rand.DefaultPrng; var rnd = RndGen.init(42); var i: usize = 10000; From 9c70315854735ab9ecd572e327f41ea547033f09 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Thu, 29 Dec 2022 13:44:40 -0500 Subject: [PATCH 34/46] tests: add more coverage for 128 bit operations - fixup 128-bit atomics test to only run on x86_64 - add truncation test for 128-bit types, including non power of two targets (there was a bug with broken non-power-of-two truncation in the cbe) - add 128-bit binary not test (covers another bug fixed in the cbe) --- test/behavior/atomics.zig | 11 ++++------- test/behavior/int128.zig | 15 +++++++++++++-- test/behavior/math.zig | 17 +++++++++++++++++ 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index 92ed027008..198f3953c2 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -308,16 +308,13 @@ fn testAtomicRmwInt(comptime signedness: std.builtin.Signedness, comptime N: usi } test "atomicrmw with 128-bit ints" { - if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO - - if (builtin.zig_backend == .stage2_c and builtin.cpu.arch == .aarch64) { + if (builtin.cpu.arch != .x86_64) { + // TODO: Ideally this could use target.atomicPtrAlignment and check for IntTooBig return error.SkipZigTest; } + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + try testAtomicRmwInt128(.unsigned); comptime try testAtomicRmwInt128(.unsigned); } diff --git a/test/behavior/int128.zig b/test/behavior/int128.zig index 7da6f7954e..6ae4ef51db 100644 --- a/test/behavior/int128.zig +++ b/test/behavior/int128.zig @@ -69,6 +69,17 @@ test "truncate int128" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - var buff: u128 = maxInt(u128); - try expect(@truncate(u64, buff) == maxInt(u64)); + { + var buff: u128 = maxInt(u128); + try expect(@truncate(u64, buff) == maxInt(u64)); + try expect(@truncate(u90, buff) == maxInt(u90)); + try expect(@truncate(u128, buff) == maxInt(u128)); + } + + { + var buff: i128 = maxInt(i128); + try expect(@truncate(i64, buff) == -1); + try expect(@truncate(i90, buff) == -1); + try expect(@truncate(i128, buff) == maxInt(i128)); + } } diff --git a/test/behavior/math.zig b/test/behavior/math.zig index 5252efe2fa..0f2139dcfe 100644 --- a/test/behavior/math.zig +++ b/test/behavior/math.zig @@ -377,6 +377,23 @@ fn testBinaryNot(x: u16) !void { try expect(~x == 0b0101010101010101); } + +test "binary not 128-bit" { + try expect(comptime x: { + break :x ~@as(u128, 0x55555555_55555555_55555555_55555555) == 0xaaaaaaaa_aaaaaaaa_aaaaaaaa_aaaaaaaa; + }); + try expect(comptime x: { + break :x ~@as(i128, 0x55555555_55555555_55555555_55555555) == @bitCast(i128, @as(u128, 0xaaaaaaaa_aaaaaaaa_aaaaaaaa_aaaaaaaa)); + }); + + try testBinaryNot128(u128, 0xaaaaaaaa_aaaaaaaa_aaaaaaaa_aaaaaaaa); + try testBinaryNot128(i128, @bitCast(i128, @as(u128, 0xaaaaaaaa_aaaaaaaa_aaaaaaaa_aaaaaaaa))); +} + +fn testBinaryNot128(comptime Type: type, x: Type) !void { + try expect(~x == @as(Type, 0x55555555_55555555_55555555_55555555)); +} + test "division" { if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO From ccf0ab0ef6da95eae71c0dbc2c0ded0d5d674a40 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Thu, 29 Dec 2022 16:41:48 -0500 Subject: [PATCH 35/46] cbe: use callconv(.C) for zig.g stub functions, use zig.h function for windows teb instead of syscall --- lib/std/os/windows.zig | 18 +++--------------- lib/std/zig/system/x86.zig | 4 ++-- lib/zig.h | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index efd7c805cf..268e13a379 100644 --- a/lib/std/os/windows.zig +++ b/lib/std/os/windows.zig @@ -1776,6 +1776,8 @@ pub fn UnlockFile( } } +extern fn zig_x86_64_windows_teb() callconv(.C) *anyopaque; + pub fn teb() *TEB { return switch (native_arch) { .x86 => asm volatile ( @@ -1784,21 +1786,7 @@ pub fn teb() *TEB { ), .x86_64 => blk: { if (builtin.zig_backend == .stage2_c) { - // TODO: __asm is not available on x64 MSVC. This is a workaround - // until an intrinsic to read the gs register is available - var thread_information: THREAD_BASIC_INFORMATION = undefined; - const result = ntdll.NtQueryInformationThread( - kernel32.GetCurrentThread(), - .ThreadBasicInformation, - &thread_information, - @sizeOf(THREAD_BASIC_INFORMATION), - null); - - if (result == .SUCCESS) { - break :blk @ptrCast(*TEB, @alignCast(@alignOf(TEB), thread_information.TebBaseAddress)); - } else { - unexpectedStatus(result) catch unreachable; - } + break :blk @ptrCast(*TEB, @alignCast(@alignOf(TEB), zig_x86_64_windows_teb())); } else { break :blk asm volatile ( \\ movq %%gs:0x30, %[ptr] diff --git a/lib/std/zig/system/x86.zig b/lib/std/zig/system/x86.zig index 9a9aa54975..634a04fb43 100644 --- a/lib/std/zig/system/x86.zig +++ b/lib/std/zig/system/x86.zig @@ -528,7 +528,7 @@ const CpuidLeaf = packed struct { edx: u32, }; -extern fn zig_x86_cpuid(leaf_id: u32, subid: u32, eax: *u32, ebx: *u32, ecx: *u32, edx: *u32) void; +extern fn zig_x86_cpuid(leaf_id: u32, subid: u32, eax: *u32, ebx: *u32, ecx: *u32, edx: *u32) callconv(.C) void; fn cpuid(leaf_id: u32, subid: u32) CpuidLeaf { // valid for both x86 and x86_64 @@ -553,7 +553,7 @@ fn cpuid(leaf_id: u32, subid: u32) CpuidLeaf { return .{ .eax = eax, .ebx = ebx, .ecx = ecx, .edx = edx }; } -extern fn zig_x86_get_xcr0() u32; +extern fn zig_x86_get_xcr0() callconv(.C) u32; // Read control register 0 (XCR0). Used to detect features such as AVX. fn getXCR0() u32 { diff --git a/lib/zig.h b/lib/zig.h index 645850aa0e..d54ad285d6 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -2349,6 +2349,20 @@ zig_msvc_atomics_128op(u128, max) /* ========================= Special Case Intrinsics ========================= */ +#if (_MSC_VER && _M_X64) || defined(__x86_64__) + +static inline void* zig_x86_64_windows_teb() { +#if _MSC_VER + return __readgsqword(0x30); +#else + void* teb; + __asm volatile(" movq %%gs:0x30, %[ptr]": [ptr]"=r"(teb)::); + return teb; +#endif +} + +#endif + #if (_MSC_VER && (_M_IX86 || _M_X64)) || defined(__i386__) || defined(__x86_64__) static inline void zig_x86_cpuid(zig_u32 leaf_id, zig_u32 subid, zig_u32* eax, zig_u32* ebx, zig_u32* ecx, zig_u32* edx) { From cac652f81be23cce8857298a8402036edf061e9d Mon Sep 17 00:00:00 2001 From: kcbanner Date: Thu, 29 Dec 2022 23:29:47 -0500 Subject: [PATCH 36/46] cbe: fixup cpuid on non-msvc --- lib/zig.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index d54ad285d6..b4fd5ff29b 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -2366,16 +2366,16 @@ static inline void* zig_x86_64_windows_teb() { #if (_MSC_VER && (_M_IX86 || _M_X64)) || defined(__i386__) || defined(__x86_64__) static inline void zig_x86_cpuid(zig_u32 leaf_id, zig_u32 subid, zig_u32* eax, zig_u32* ebx, zig_u32* ecx, zig_u32* edx) { -#if _MSC_VER zig_u32 cpu_info[4]; +#if _MSC_VER __cpuidex(cpu_info, leaf_id, subid); +#else + __cpuid_count(leaf_id, subid, cpu_info[0], cpu_info[1], cpu_info[2], cpu_info[3]); +#endif *eax = cpu_info[0]; *ebx = cpu_info[1]; *ecx = cpu_info[2]; *edx = cpu_info[3]; -#else - __cpuid_count(leaf_id, subid, eax, ebx, ecx, edx); -#endif } static inline zig_u32 zig_x86_get_xcr0() { From 9c951cc8745256cbf94839b401abbb6afd35cae2 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Fri, 30 Dec 2022 02:26:06 -0500 Subject: [PATCH 37/46] fmt fixups --- src/codegen/c.zig | 29 +++++++++-------------------- test/behavior/atomics.zig | 2 +- test/behavior/math.zig | 2 -- 3 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index b97626990d..c1adbfe6cf 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -1110,7 +1110,6 @@ pub const DeclGen = struct { // MSVC throws C2078 if an array of size 65536 or greater is initialized with a string literal const max_string_initializer_len = 65535; - const ai = ty.arrayInfo(); if (ai.elem_type.eql(Type.u8, dg.module)) { if (ai.len <= max_string_initializer_len) { @@ -1134,7 +1133,7 @@ pub const DeclGen = struct { if (index != 0) try writer.writeByte(','); const elem_val = try val.elemValue(dg.module, arena_allocator, index); const elem_val_u8 = if (elem_val.isUndef()) undefPattern(u8) else @intCast(u8, elem_val.toUnsignedInt(target)); - try writer.print("'\\x{x}'", .{ elem_val_u8 }); + try writer.print("'\\x{x}'", .{elem_val_u8}); } if (ai.sentinel) |s| { if (index != 0) try writer.writeByte(','); @@ -1350,7 +1349,7 @@ pub const DeclGen = struct { try dg.renderIntCast(writer, ty, cast_context, field_ty, .FunctionArgument); } - if (needs_closing_paren) try writer.writeByte(')') ; + if (needs_closing_paren) try writer.writeByte(')'); if (eff_index != eff_num_fields - 1) try writer.writeAll(", "); bit_offset_val_pl.data += field_ty.bitSize(target); @@ -2254,7 +2253,7 @@ pub const DeclGen = struct { if (dest_bits <= 64 and src_bits <= 64) { const needs_cast = src_int_info == null or (toCIntBits(dest_int_info.bits) != toCIntBits(src_int_info.?.bits) or - dest_int_info.signedness != src_int_info.?.signedness); + dest_int_info.signedness != src_int_info.?.signedness); if (needs_cast) { try w.writeByte('('); @@ -2567,7 +2566,7 @@ pub const DeclGen = struct { } else if (ty.isRuntimeFloat()) { try ty.print(writer, dg.module); } else if (ty.isPtrAtRuntime()) { - try writer.print("p{d}", .{ ty.bitSize(target) }); + try writer.print("p{d}", .{ty.bitSize(target)}); } else if (ty.zigTypeTag() == .Bool) { try writer.print("u8", .{}); } else return dg.fail("TODO: CBE: implement renderTypeForBuiltinFnName for type {}", .{ @@ -2633,12 +2632,7 @@ pub const DeclGen = struct { const c_bits = toCIntBits(int_info.bits); if (c_bits == null or c_bits.? > 128) return dg.fail("TODO implement integer constants larger than 128 bits", .{}); - return std.fmt.Formatter(formatIntLiteral){ .data = .{ - .ty = ty, - .val = val, - .mod = dg.module, - .location = location - } }; + return std.fmt.Formatter(formatIntLiteral){ .data = .{ .ty = ty, .val = val, .mod = dg.module, .location = location } }; } }; @@ -3668,9 +3662,9 @@ fn airTrunc(f: *Function, inst: Air.Inst.Index) !CValue { } try f.writeCValue(writer, operand, .FunctionArgument); if (c_bits == 128) try writer.writeByte(')'); - try writer.print(", {})", .{ try f.fmtIntLiteral(Type.u8, shift_val) }); + try writer.print(", {})", .{try f.fmtIntLiteral(Type.u8, shift_val)}); if (c_bits == 128) try writer.writeByte(')'); - try writer.print(", {})", .{ try f.fmtIntLiteral(Type.u8, shift_val) }); + try writer.print(", {})", .{try f.fmtIntLiteral(Type.u8, shift_val)}); }, } @@ -7227,12 +7221,7 @@ fn undefPattern(comptime IntType: type) IntType { return @bitCast(IntType, @as(UnsignedType, (1 << (int_info.bits | 1)) / 3)); } -const FormatIntLiteralContext = struct { - ty: Type, - val: Value, - mod: *Module, - location: ?ValueRenderLocation = null -}; +const FormatIntLiteralContext = struct { ty: Type, val: Value, mod: *Module, location: ?ValueRenderLocation = null }; fn formatIntLiteral( data: FormatIntLiteralContext, comptime fmt: []const u8, @@ -7324,7 +7313,7 @@ fn formatIntLiteral( } else { try writer.print("zig_as_{c}{d}(", .{ signAbbrev(int_info.signedness), c_bits }); } - } + }, } const limbs_count_64 = @divExact(64, @bitSizeOf(BigIntLimb)); diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index 198f3953c2..b85101fd95 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -251,7 +251,7 @@ test "atomicrmw with ints" { } // TODO: Use the max atomic bit size for the target, maybe builtin? - const bit_values = [_]usize{ 8 } ++ if (builtin.cpu.arch == .x86_64) [_]usize{ 16, 32, 64 } else [_]usize{ }; + const bit_values = [_]usize{8} ++ if (builtin.cpu.arch == .x86_64) [_]usize{ 16, 32, 64 } else [_]usize{}; inline for (bit_values) |bits| { try testAtomicRmwInt(.unsigned, bits); comptime try testAtomicRmwInt(.unsigned, bits); diff --git a/test/behavior/math.zig b/test/behavior/math.zig index 0f2139dcfe..a8f80cd5a7 100644 --- a/test/behavior/math.zig +++ b/test/behavior/math.zig @@ -377,7 +377,6 @@ fn testBinaryNot(x: u16) !void { try expect(~x == 0b0101010101010101); } - test "binary not 128-bit" { try expect(comptime x: { break :x ~@as(u128, 0x55555555_55555555_55555555_55555555) == 0xaaaaaaaa_aaaaaaaa_aaaaaaaa_aaaaaaaa; @@ -667,7 +666,6 @@ test "128-bit multiplication" { var c = a * b; try expect(c == 0x63ffffffffffffff9c); } - } test "@addWithOverflow" { From 45a55df12c153d89bddcc083cdd150d2252f23ae Mon Sep 17 00:00:00 2001 From: kcbanner Date: Fri, 30 Dec 2022 02:53:37 -0500 Subject: [PATCH 38/46] cbe: fixups for -Wstrict-prototypes --- lib/zig.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/zig.h b/lib/zig.h index b4fd5ff29b..baa220e744 100644 --- a/lib/zig.h +++ b/lib/zig.h @@ -2351,7 +2351,7 @@ zig_msvc_atomics_128op(u128, max) #if (_MSC_VER && _M_X64) || defined(__x86_64__) -static inline void* zig_x86_64_windows_teb() { +static inline void* zig_x86_64_windows_teb(void) { #if _MSC_VER return __readgsqword(0x30); #else @@ -2378,7 +2378,7 @@ static inline void zig_x86_cpuid(zig_u32 leaf_id, zig_u32 subid, zig_u32* eax, z *edx = cpu_info[3]; } -static inline zig_u32 zig_x86_get_xcr0() { +static inline zig_u32 zig_x86_get_xcr0(void) { #if _MSC_VER return (zig_u32)_xgetbv(0); #else From c2f5c3bc4ed7523807923b57d5e5c7aaf8bc61c6 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Fri, 30 Dec 2022 19:15:17 -0500 Subject: [PATCH 39/46] skip "binary not 128-bit" on non-llvm --- test/behavior/math.zig | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/behavior/math.zig b/test/behavior/math.zig index a8f80cd5a7..2257a116b7 100644 --- a/test/behavior/math.zig +++ b/test/behavior/math.zig @@ -378,6 +378,12 @@ fn testBinaryNot(x: u16) !void { } test "binary not 128-bit" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO + try expect(comptime x: { break :x ~@as(u128, 0x55555555_55555555_55555555_55555555) == 0xaaaaaaaa_aaaaaaaa_aaaaaaaa_aaaaaaaa; }); From fc84b233ee7d07271c0f61b4eae913578f30866a Mon Sep 17 00:00:00 2001 From: kcbanner Date: Fri, 30 Dec 2022 19:17:34 -0500 Subject: [PATCH 40/46] skip "truncate to non-power-of-two integers from 128-bit" on non-llvm --- test/behavior/basic.zig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/behavior/basic.zig b/test/behavior/basic.zig index e704e190f3..442cd02d5a 100644 --- a/test/behavior/basic.zig +++ b/test/behavior/basic.zig @@ -38,6 +38,10 @@ test "truncate to non-power-of-two integers" { } test "truncate to non-power-of-two integers from 128-bit" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO try testTrunc(u128, u1, 0xffffffff_ffffffff_ffffffff_01010101, 0x01); From 50c31e5caafded54de197f535a47332aa1e4a385 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Fri, 30 Dec 2022 20:44:44 -0500 Subject: [PATCH 41/46] skip "truncate int128" on wasm --- test/behavior/int128.zig | 1 + 1 file changed, 1 insertion(+) diff --git a/test/behavior/int128.zig b/test/behavior/int128.zig index 6ae4ef51db..f02795cebe 100644 --- a/test/behavior/int128.zig +++ b/test/behavior/int128.zig @@ -64,6 +64,7 @@ test "int128" { } test "truncate int128" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO From 8ebf18635ce0b4f5bc84bf30bcfd0f6289465ee3 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 31 Dec 2022 01:40:46 -0500 Subject: [PATCH 42/46] skip "atomicrmw with 128-bit ints" on linux x64_64 due to linker error --- test/behavior/atomics.zig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index b85101fd95..3fb2ed2556 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -315,6 +315,9 @@ test "atomicrmw with 128-bit ints" { if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + // TODO "ld.lld: undefined symbol: __sync_lock_test_and_set_16" on -target x86_64-linux-none -mcpu x86_64 + if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .linux) return error.SkipZigTest; + try testAtomicRmwInt128(.unsigned); comptime try testAtomicRmwInt128(.unsigned); } From 4776128099e3c5096ee7365a59dd73adce04f0e9 Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sat, 31 Dec 2022 02:08:42 -0500 Subject: [PATCH 43/46] skip "atomicrmw with 128-bit ints" on everything except cbe --- test/behavior/atomics.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index 3fb2ed2556..6625e4ae3b 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -315,8 +315,8 @@ test "atomicrmw with 128-bit ints" { if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO - // TODO "ld.lld: undefined symbol: __sync_lock_test_and_set_16" on -target x86_64-linux-none -mcpu x86_64 - if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .linux) return error.SkipZigTest; + // TODO "ld.lld: undefined symbol: __sync_lock_test_and_set_16" on -mcpu x86_64 + if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; try testAtomicRmwInt128(.unsigned); comptime try testAtomicRmwInt128(.unsigned); From 72560b8db525ac81877799035ef093d9badd6bfd Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 2 Jan 2023 14:08:50 -0700 Subject: [PATCH 44/46] add some comments to explain workarounds --- lib/std/os/windows.zig | 2 ++ lib/std/zig/system/x86.zig | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index 268e13a379..2a4d0d9a9b 100644 --- a/lib/std/os/windows.zig +++ b/lib/std/os/windows.zig @@ -1776,6 +1776,8 @@ pub fn UnlockFile( } } +/// This is a workaround for the C backend until zig has the ability to put +/// C code in inline assembly. extern fn zig_x86_64_windows_teb() callconv(.C) *anyopaque; pub fn teb() *TEB { diff --git a/lib/std/zig/system/x86.zig b/lib/std/zig/system/x86.zig index 634a04fb43..873659e58c 100644 --- a/lib/std/zig/system/x86.zig +++ b/lib/std/zig/system/x86.zig @@ -528,6 +528,8 @@ const CpuidLeaf = packed struct { edx: u32, }; +/// This is a workaround for the C backend until zig has the ability to put +/// C code in inline assembly. extern fn zig_x86_cpuid(leaf_id: u32, subid: u32, eax: *u32, ebx: *u32, ecx: *u32, edx: *u32) callconv(.C) void; fn cpuid(leaf_id: u32, subid: u32) CpuidLeaf { @@ -553,6 +555,8 @@ fn cpuid(leaf_id: u32, subid: u32) CpuidLeaf { return .{ .eax = eax, .ebx = ebx, .ecx = ecx, .edx = edx }; } +/// This is a workaround for the C backend until zig has the ability to put +/// C code in inline assembly. extern fn zig_x86_get_xcr0() callconv(.C) u32; // Read control register 0 (XCR0). Used to detect features such as AVX. From 995c36dcb1a82c3ec9cbd0cd7bfbadd5c0abd10e Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 2 Jan 2023 14:09:01 -0700 Subject: [PATCH 45/46] avoid testing `inline for` in unrelated behavior tests --- test/behavior/asm.zig | 10 +++++----- test/behavior/atomics.zig | 15 +++++++++++---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/test/behavior/asm.zig b/test/behavior/asm.zig index 47a55931a6..f041963494 100644 --- a/test/behavior/asm.zig +++ b/test/behavior/asm.zig @@ -23,7 +23,7 @@ test "module level assembly" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO WIP + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (is_x86_64_linux) { try expect(this_is_my_alias() == 1234); @@ -36,7 +36,7 @@ test "output constraint modifiers" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO WIP + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO // This is only testing compilation. var a: u32 = 3; @@ -58,7 +58,7 @@ test "alternative constraints" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO WIP + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO // Make sure we allow commas as a separator for alternative constraints. var a: u32 = 3; @@ -75,7 +75,7 @@ test "sized integer/float in asm input" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO WIP + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO asm volatile ("" : @@ -125,7 +125,7 @@ test "struct/array/union types as input values" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO WIP + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO asm volatile ("" : diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index 6625e4ae3b..2ca0e9ff15 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -250,11 +250,18 @@ test "atomicrmw with ints" { return error.SkipZigTest; } + try testAtomicRmwInts(); + comptime try testAtomicRmwInts(); +} + +fn testAtomicRmwInts() !void { // TODO: Use the max atomic bit size for the target, maybe builtin? - const bit_values = [_]usize{8} ++ if (builtin.cpu.arch == .x86_64) [_]usize{ 16, 32, 64 } else [_]usize{}; - inline for (bit_values) |bits| { - try testAtomicRmwInt(.unsigned, bits); - comptime try testAtomicRmwInt(.unsigned, bits); + try testAtomicRmwInt(8); + + if (builtin.cpu.arch == .x86_64) { + try testAtomicRmwInt(16); + try testAtomicRmwInt(32); + try testAtomicRmwInt(64); } } From 23b1544f6c17dd1111ba8791189a7290581f945e Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 2 Jan 2023 14:09:26 -0700 Subject: [PATCH 46/46] update zig1.wasm for MSVC compatibility --- stage1/zig1.wasm | Bin 2336881 -> 2354154 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/stage1/zig1.wasm b/stage1/zig1.wasm index 1ce3a0fb97034f1f0ae92d9c9ebe86fd6f7d7ba2..88186ff514894f339a4ac476f9688b3ba3d8ee23 100644 GIT binary patch delta 715883 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 $S263q$PwN^ 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 delta 699381 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