authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2024-02-18 11:36:16+01:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2024-02-18 14:11:03+01:00
log57b2b3df520cd8c243cb974636880c9f5ca3f117
treeab69cb3e52ea60e04a6039e919e089019cc212c7
parent3cafb9655a754743da695af41ef635b79d066127

Dwarf: use a user tag for padding


2 files changed, 71 insertions(+), 59 deletions(-)

lib/std/dwarf/TAG.zig+3
......@@ -116,3 +116,6 @@ pub const upc_relaxed_type = 0x8767;
116116// PGI (STMicroelectronics; extensions. No documentation available.
117117pub const PGI_kanji_type = 0xA000;
118118pub const PGI_interface_block = 0xA020;
119
120// ZIG extensions.
121pub const ZIG_padding = 0xfdb1;
src/link/Dwarf.zig+68-59
......@@ -140,11 +140,11 @@ pub const DeclState = struct {
140140 switch (ty.zigTypeTag(mod)) {
141141 .NoReturn => unreachable,
142142 .Void => {
143 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.pad1));
143 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.zero_bit_type));
144144 },
145145 .Bool => {
146146 try dbg_info_buffer.ensureUnusedCapacity(12);
147 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.base_type));
147 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.base_type));
148148 // DW.AT.encoding, DW.FORM.data1
149149 dbg_info_buffer.appendAssumeCapacity(DW.ATE.boolean);
150150 // DW.AT.byte_size, DW.FORM.udata
......@@ -155,7 +155,7 @@ pub const DeclState = struct {
155155 .Int => {
156156 const info = ty.intInfo(mod);
157157 try dbg_info_buffer.ensureUnusedCapacity(12);
158 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.base_type));
158 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.base_type));
159159 // DW.AT.encoding, DW.FORM.data1
160160 dbg_info_buffer.appendAssumeCapacity(switch (info.signedness) {
161161 .signed => DW.ATE.signed,
......@@ -169,7 +169,7 @@ pub const DeclState = struct {
169169 .Optional => {
170170 if (ty.isPtrLikeOptional(mod)) {
171171 try dbg_info_buffer.ensureUnusedCapacity(12);
172 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.base_type));
172 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.base_type));
173173 // DW.AT.encoding, DW.FORM.data1
174174 dbg_info_buffer.appendAssumeCapacity(DW.ATE.address);
175175 // DW.AT.byte_size, DW.FORM.udata
......@@ -180,7 +180,7 @@ pub const DeclState = struct {
180180 // Non-pointer optionals are structs: struct { .maybe = *, .val = * }
181181 const payload_ty = ty.optionalChild(mod);
182182 // DW.AT.structure_type
183 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.struct_type));
183 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.struct_type));
184184 // DW.AT.byte_size, DW.FORM.udata
185185 const abi_size = ty.abiSize(mod);
186186 try leb128.writeULEB128(dbg_info_buffer.writer(), abi_size);
......@@ -188,7 +188,7 @@ pub const DeclState = struct {
188188 try dbg_info_buffer.writer().print("{}\x00", .{ty.fmt(mod)});
189189 // DW.AT.member
190190 try dbg_info_buffer.ensureUnusedCapacity(7);
191 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.struct_member));
191 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_member));
192192 // DW.AT.name, DW.FORM.string
193193 dbg_info_buffer.appendSliceAssumeCapacity("maybe");
194194 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -200,7 +200,7 @@ pub const DeclState = struct {
200200 try dbg_info_buffer.ensureUnusedCapacity(6);
201201 dbg_info_buffer.appendAssumeCapacity(0);
202202 // DW.AT.member
203 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.struct_member));
203 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_member));
204204 // DW.AT.name, DW.FORM.string
205205 dbg_info_buffer.appendSliceAssumeCapacity("val");
206206 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -222,14 +222,14 @@ pub const DeclState = struct {
222222 const ptr_bytes: u8 = @intCast(@divExact(ptr_bits, 8));
223223 // DW.AT.structure_type
224224 try dbg_info_buffer.ensureUnusedCapacity(2);
225 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.struct_type));
225 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_type));
226226 // DW.AT.byte_size, DW.FORM.udata
227227 try leb128.writeULEB128(dbg_info_buffer.writer(), ty.abiSize(mod));
228228 // DW.AT.name, DW.FORM.string
229229 try dbg_info_buffer.writer().print("{}\x00", .{ty.fmt(mod)});
230230 // DW.AT.member
231231 try dbg_info_buffer.ensureUnusedCapacity(5);
232 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.struct_member));
232 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_member));
233233 // DW.AT.name, DW.FORM.string
234234 dbg_info_buffer.appendSliceAssumeCapacity("ptr");
235235 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -242,7 +242,7 @@ pub const DeclState = struct {
242242 try dbg_info_buffer.ensureUnusedCapacity(6);
243243 dbg_info_buffer.appendAssumeCapacity(0);
244244 // DW.AT.member
245 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.struct_member));
245 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_member));
246246 // DW.AT.name, DW.FORM.string
247247 dbg_info_buffer.appendSliceAssumeCapacity("len");
248248 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -257,7 +257,7 @@ pub const DeclState = struct {
257257 dbg_info_buffer.appendAssumeCapacity(0);
258258 } else {
259259 try dbg_info_buffer.ensureUnusedCapacity(5);
260 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.ptr_type));
260 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.ptr_type));
261261 // DW.AT.type, DW.FORM.ref4
262262 const index = dbg_info_buffer.items.len;
263263 try dbg_info_buffer.resize(index + 4);
......@@ -266,7 +266,7 @@ pub const DeclState = struct {
266266 },
267267 .Array => {
268268 // DW.AT.array_type
269 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.array_type));
269 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.array_type));
270270 // DW.AT.name, DW.FORM.string
271271 try dbg_info_buffer.writer().print("{}\x00", .{ty.fmt(mod)});
272272 // DW.AT.type, DW.FORM.ref4
......@@ -274,7 +274,7 @@ pub const DeclState = struct {
274274 try dbg_info_buffer.resize(index + 4);
275275 try self.addTypeRelocGlobal(atom_index, ty.childType(mod), @intCast(index));
276276 // DW.AT.subrange_type
277 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.array_dim));
277 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.array_dim));
278278 // DW.AT.type, DW.FORM.ref4
279279 index = dbg_info_buffer.items.len;
280280 try dbg_info_buffer.resize(index + 4);
......@@ -287,7 +287,7 @@ pub const DeclState = struct {
287287 },
288288 .Struct => {
289289 // DW.AT.structure_type
290 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.struct_type));
290 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.struct_type));
291291 // DW.AT.byte_size, DW.FORM.udata
292292 try leb128.writeULEB128(dbg_info_buffer.writer(), ty.abiSize(mod));
293293
......@@ -299,7 +299,7 @@ pub const DeclState = struct {
299299
300300 for (fields.types.get(ip), 0..) |field_ty, field_index| {
301301 // DW.AT.member
302 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.struct_member));
302 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.struct_member));
303303 // DW.AT.name, DW.FORM.string
304304 try dbg_info_buffer.writer().print("{d}\x00", .{field_index});
305305 // DW.AT.type, DW.FORM.ref4
......@@ -325,7 +325,7 @@ pub const DeclState = struct {
325325 for (struct_type.field_types.get(ip), struct_type.offsets.get(ip), 0..) |field_ty, field_off, field_index| {
326326 if (!Type.fromInterned(field_ty).hasRuntimeBits(mod)) continue;
327327 // DW.AT.member
328 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.struct_member));
328 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.struct_member));
329329 // DW.AT.name, DW.FORM.string
330330 try dbg_info_buffer.writer().print("{d}\x00", .{field_index});
331331 // DW.AT.type, DW.FORM.ref4
......@@ -345,7 +345,7 @@ pub const DeclState = struct {
345345 const field_name = ip.stringToSlice(field_name_ip);
346346 // DW.AT.member
347347 try dbg_info_buffer.ensureUnusedCapacity(field_name.len + 2);
348 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.struct_member));
348 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_member));
349349 // DW.AT.name, DW.FORM.string
350350 dbg_info_buffer.appendSliceAssumeCapacity(field_name);
351351 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -367,7 +367,7 @@ pub const DeclState = struct {
367367 },
368368 .Enum => {
369369 // DW.AT.enumeration_type
370 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.enum_type));
370 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.enum_type));
371371 // DW.AT.byte_size, DW.FORM.udata
372372 try leb128.writeULEB128(dbg_info_buffer.writer(), ty.abiSize(mod));
373373 // DW.AT.name, DW.FORM.string
......@@ -379,7 +379,7 @@ pub const DeclState = struct {
379379 const field_name = ip.stringToSlice(field_name_index);
380380 // DW.AT.enumerator
381381 try dbg_info_buffer.ensureUnusedCapacity(field_name.len + 2 + @sizeOf(u64));
382 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.enum_variant));
382 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.enum_variant));
383383 // DW.AT.name, DW.FORM.string
384384 dbg_info_buffer.appendSliceAssumeCapacity(field_name);
385385 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -409,7 +409,7 @@ pub const DeclState = struct {
409409 const is_tagged = layout.tag_size > 0;
410410 if (is_tagged) {
411411 // DW.AT.structure_type
412 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.struct_type));
412 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.struct_type));
413413 // DW.AT.byte_size, DW.FORM.udata
414414 try leb128.writeULEB128(dbg_info_buffer.writer(), layout.abi_size);
415415 // DW.AT.name, DW.FORM.string
......@@ -418,7 +418,7 @@ pub const DeclState = struct {
418418
419419 // DW.AT.member
420420 try dbg_info_buffer.ensureUnusedCapacity(9);
421 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.struct_member));
421 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_member));
422422 // DW.AT.name, DW.FORM.string
423423 dbg_info_buffer.appendSliceAssumeCapacity("payload");
424424 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -431,7 +431,7 @@ pub const DeclState = struct {
431431 }
432432
433433 // DW.AT.union_type
434 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.union_type));
434 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.union_type));
435435 // DW.AT.byte_size, DW.FORM.udata,
436436 try leb128.writeULEB128(dbg_info_buffer.writer(), layout.payload_size);
437437 // DW.AT.name, DW.FORM.string
......@@ -445,7 +445,7 @@ pub const DeclState = struct {
445445 for (union_obj.field_types.get(ip), union_obj.field_names.get(ip)) |field_ty, field_name| {
446446 if (!Type.fromInterned(field_ty).hasRuntimeBits(mod)) continue;
447447 // DW.AT.member
448 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.struct_member));
448 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.struct_member));
449449 // DW.AT.name, DW.FORM.string
450450 try dbg_info_buffer.appendSlice(ip.stringToSlice(field_name));
451451 try dbg_info_buffer.append(0);
......@@ -462,7 +462,7 @@ pub const DeclState = struct {
462462 if (is_tagged) {
463463 // DW.AT.member
464464 try dbg_info_buffer.ensureUnusedCapacity(5);
465 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.struct_member));
465 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_member));
466466 // DW.AT.name, DW.FORM.string
467467 dbg_info_buffer.appendSliceAssumeCapacity("tag");
468468 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -488,7 +488,7 @@ pub const DeclState = struct {
488488 const error_off = if (error_align.compare(.gte, payload_align)) 0 else payload_ty.abiSize(mod);
489489
490490 // DW.AT.structure_type
491 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.struct_type));
491 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.struct_type));
492492 // DW.AT.byte_size, DW.FORM.udata
493493 try leb128.writeULEB128(dbg_info_buffer.writer(), abi_size);
494494 // DW.AT.name, DW.FORM.string
......@@ -498,7 +498,7 @@ pub const DeclState = struct {
498498 if (!payload_ty.isNoReturn(mod)) {
499499 // DW.AT.member
500500 try dbg_info_buffer.ensureUnusedCapacity(7);
501 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.struct_member));
501 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_member));
502502 // DW.AT.name, DW.FORM.string
503503 dbg_info_buffer.appendSliceAssumeCapacity("value");
504504 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -513,7 +513,7 @@ pub const DeclState = struct {
513513 {
514514 // DW.AT.member
515515 try dbg_info_buffer.ensureUnusedCapacity(5);
516 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.struct_member));
516 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_member));
517517 // DW.AT.name, DW.FORM.string
518518 dbg_info_buffer.appendSliceAssumeCapacity("err");
519519 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -530,7 +530,7 @@ pub const DeclState = struct {
530530 },
531531 else => {
532532 log.debug("TODO implement .debug_info for type '{}'", .{ty.fmt(self.mod)});
533 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.pad1));
533 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.zero_bit_type));
534534 },
535535 }
536536 }
......@@ -565,7 +565,7 @@ pub const DeclState = struct {
565565 switch (loc) {
566566 .register => |reg| {
567567 try dbg_info.ensureUnusedCapacity(4);
568 dbg_info.appendAssumeCapacity(@intFromEnum(AbbrevKind.parameter));
568 dbg_info.appendAssumeCapacity(@intFromEnum(AbbrevCode.parameter));
569569 // DW.AT.location, DW.FORM.exprloc
570570 var expr_len = std.io.countingWriter(std.io.null_writer);
571571 if (reg < 32) {
......@@ -587,7 +587,7 @@ pub const DeclState = struct {
587587 const reg_bytes: u8 = @intCast(@divExact(reg_bits, 8));
588588 const abi_size = ty.abiSize(self.mod);
589589 try dbg_info.ensureUnusedCapacity(10);
590 dbg_info.appendAssumeCapacity(@intFromEnum(AbbrevKind.parameter));
590 dbg_info.appendAssumeCapacity(@intFromEnum(AbbrevCode.parameter));
591591 // DW.AT.location, DW.FORM.exprloc
592592 var expr_len = std.io.countingWriter(std.io.null_writer);
593593 for (regs, 0..) |reg, reg_i| {
......@@ -620,7 +620,7 @@ pub const DeclState = struct {
620620 },
621621 .stack => |info| {
622622 try dbg_info.ensureUnusedCapacity(9);
623 dbg_info.appendAssumeCapacity(@intFromEnum(AbbrevKind.parameter));
623 dbg_info.appendAssumeCapacity(@intFromEnum(AbbrevCode.parameter));
624624 // DW.AT.location, DW.FORM.exprloc
625625 var expr_len = std.io.countingWriter(std.io.null_writer);
626626 if (info.fp_register < 32) {
......@@ -649,7 +649,7 @@ pub const DeclState = struct {
649649 // where each argument is encoded as
650650 // <opcode> i:uleb128
651651 dbg_info.appendSliceAssumeCapacity(&.{
652 @intFromEnum(AbbrevKind.parameter),
652 @intFromEnum(AbbrevCode.parameter),
653653 DW.OP.WASM_location,
654654 DW.OP.WASM_local,
655655 });
......@@ -676,7 +676,7 @@ pub const DeclState = struct {
676676 const dbg_info = &self.dbg_info;
677677 const atom_index = self.di_atom_decls.get(owner_decl).?;
678678 const name_with_null = name.ptr[0 .. name.len + 1];
679 try dbg_info.append(@intFromEnum(AbbrevKind.variable));
679 try dbg_info.append(@intFromEnum(AbbrevCode.variable));
680680 const gpa = self.dwarf.allocator;
681681 const mod = self.mod;
682682 const target = mod.getTarget();
......@@ -991,8 +991,10 @@ pub const ExprlocRelocation = struct {
991991
992992pub const PtrWidth = enum { p32, p64 };
993993
994pub const AbbrevKind = enum(u8) {
995 compile_unit = 1,
994pub const AbbrevCode = enum(u8) {
995 null,
996 padding,
997 compile_unit,
996998 subprogram,
997999 subprogram_retvoid,
9981000 base_type,
......@@ -1002,7 +1004,7 @@ pub const AbbrevKind = enum(u8) {
10021004 enum_type,
10031005 enum_variant,
10041006 union_type,
1005 pad1,
1007 zero_bit_type,
10061008 parameter,
10071009 variable,
10081010 array_type,
......@@ -1162,7 +1164,7 @@ pub fn initDeclState(self: *Dwarf, mod: *Module, decl_index: InternPool.DeclInde
11621164 const fn_ret_type = decl.ty.fnReturnType(mod);
11631165 const fn_ret_has_bits = fn_ret_type.hasRuntimeBits(mod);
11641166 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(
1165 @as(AbbrevKind, if (fn_ret_has_bits) .subprogram else .subprogram_retvoid),
1167 @as(AbbrevCode, if (fn_ret_has_bits) .subprogram else .subprogram_retvoid),
11661168 ));
11671169 // These get overwritten after generating the machine code. These values are
11681170 // "relocations" and have to be in this fixed place so that functions can be
......@@ -1806,7 +1808,14 @@ pub fn writeDbgAbbrev(self: *Dwarf) !void {
18061808 // we can simply append these bytes.
18071809 // zig fmt: off
18081810 const abbrev_buf = [_]u8{
1809 @intFromEnum(AbbrevKind.compile_unit),
1811 @intFromEnum(AbbrevCode.padding),
1812 @as(u8, 0x80) | @as(u7, @truncate(DW.TAG.ZIG_padding >> 0)),
1813 @as(u8, 0x80) | @as(u7, @truncate(DW.TAG.ZIG_padding >> 7)),
1814 @as(u8, 0x00) | @as(u7, @intCast(DW.TAG.ZIG_padding >> 14)),
1815 DW.CHILDREN.no,
1816 0, 0,
1817
1818 @intFromEnum(AbbrevCode.compile_unit),
18101819 DW.TAG.compile_unit,
18111820 DW.CHILDREN.yes,
18121821 DW.AT.stmt_list, DW.FORM.sec_offset,
......@@ -1818,7 +1827,7 @@ pub fn writeDbgAbbrev(self: *Dwarf) !void {
18181827 DW.AT.language, DW.FORM.data2,
18191828 0, 0,
18201829
1821 @intFromEnum(AbbrevKind.subprogram),
1830 @intFromEnum(AbbrevCode.subprogram),
18221831 DW.TAG.subprogram,
18231832 DW.CHILDREN.yes,
18241833 DW.AT.low_pc, DW.FORM.addr,
......@@ -1828,7 +1837,7 @@ pub fn writeDbgAbbrev(self: *Dwarf) !void {
18281837 DW.AT.linkage_name, DW.FORM.string,
18291838 0, 0,
18301839
1831 @intFromEnum(AbbrevKind.subprogram_retvoid),
1840 @intFromEnum(AbbrevCode.subprogram_retvoid),
18321841 DW.TAG.subprogram,
18331842 DW.CHILDREN.yes,
18341843 DW.AT.low_pc, DW.FORM.addr,
......@@ -1837,25 +1846,25 @@ pub fn writeDbgAbbrev(self: *Dwarf) !void {
18371846 DW.AT.linkage_name, DW.FORM.string,
18381847 0, 0,
18391848
1840 @intFromEnum(AbbrevKind.base_type),
1849 @intFromEnum(AbbrevCode.base_type),
18411850 DW.TAG.base_type, DW.CHILDREN.no,
18421851 DW.AT.encoding, DW.FORM.data1,
18431852 DW.AT.byte_size, DW.FORM.udata,
18441853 DW.AT.name, DW.FORM.string,
18451854 0, 0,
18461855
1847 @intFromEnum(AbbrevKind.ptr_type),
1856 @intFromEnum(AbbrevCode.ptr_type),
18481857 DW.TAG.pointer_type, DW.CHILDREN.no,
18491858 DW.AT.type, DW.FORM.ref4,
18501859 0, 0,
18511860
1852 @intFromEnum(AbbrevKind.struct_type),
1861 @intFromEnum(AbbrevCode.struct_type),
18531862 DW.TAG.structure_type, DW.CHILDREN.yes,
18541863 DW.AT.byte_size, DW.FORM.udata,
18551864 DW.AT.name, DW.FORM.string,
18561865 0, 0,
18571866
1858 @intFromEnum(AbbrevKind.struct_member),
1867 @intFromEnum(AbbrevCode.struct_member),
18591868 DW.TAG.member,
18601869 DW.CHILDREN.no,
18611870 DW.AT.name, DW.FORM.string,
......@@ -1863,31 +1872,31 @@ pub fn writeDbgAbbrev(self: *Dwarf) !void {
18631872 DW.AT.data_member_location, DW.FORM.udata,
18641873 0, 0,
18651874
1866 @intFromEnum(AbbrevKind.enum_type),
1875 @intFromEnum(AbbrevCode.enum_type),
18671876 DW.TAG.enumeration_type,
18681877 DW.CHILDREN.yes,
18691878 DW.AT.byte_size, DW.FORM.udata,
18701879 DW.AT.name, DW.FORM.string,
18711880 0, 0,
18721881
1873 @intFromEnum(AbbrevKind.enum_variant),
1882 @intFromEnum(AbbrevCode.enum_variant),
18741883 DW.TAG.enumerator, DW.CHILDREN.no,
18751884 DW.AT.name, DW.FORM.string,
18761885 DW.AT.const_value, DW.FORM.data8,
18771886 0, 0,
18781887
1879 @intFromEnum(AbbrevKind.union_type),
1888 @intFromEnum(AbbrevCode.union_type),
18801889 DW.TAG.union_type, DW.CHILDREN.yes,
18811890 DW.AT.byte_size, DW.FORM.udata,
18821891 DW.AT.name, DW.FORM.string,
18831892 0, 0,
18841893
1885 @intFromEnum(AbbrevKind.pad1),
1894 @intFromEnum(AbbrevCode.zero_bit_type),
18861895 DW.TAG.unspecified_type,
18871896 DW.CHILDREN.no,
18881897 0, 0,
18891898
1890 @intFromEnum(AbbrevKind.parameter),
1899 @intFromEnum(AbbrevCode.parameter),
18911900 DW.TAG.formal_parameter,
18921901 DW.CHILDREN.no,
18931902 DW.AT.location, DW.FORM.exprloc,
......@@ -1895,7 +1904,7 @@ pub fn writeDbgAbbrev(self: *Dwarf) !void {
18951904 DW.AT.name, DW.FORM.string,
18961905 0, 0,
18971906
1898 @intFromEnum(AbbrevKind.variable),
1907 @intFromEnum(AbbrevCode.variable),
18991908 DW.TAG.variable,
19001909 DW.CHILDREN.no,
19011910 DW.AT.location, DW.FORM.exprloc,
......@@ -1903,14 +1912,14 @@ pub fn writeDbgAbbrev(self: *Dwarf) !void {
19031912 DW.AT.name, DW.FORM.string,
19041913 0, 0,
19051914
1906 @intFromEnum(AbbrevKind.array_type),
1915 @intFromEnum(AbbrevCode.array_type),
19071916 DW.TAG.array_type,
19081917 DW.CHILDREN.yes,
19091918 DW.AT.name, DW.FORM.string,
19101919 DW.AT.type, DW.FORM.ref4,
19111920 0, 0,
19121921
1913 @intFromEnum(AbbrevKind.array_dim),
1922 @intFromEnum(AbbrevCode.array_dim),
19141923 DW.TAG.subrange_type,
19151924 DW.CHILDREN.no,
19161925 DW.AT.type, DW.FORM.ref4,
......@@ -2007,7 +2016,7 @@ pub fn writeDbgInfoHeader(self: *Dwarf, zcu: *Module, low_pc: u64, high_pc: u64)
20072016 const comp_dir_strp = try self.strtab.insert(self.allocator, compile_unit_dir);
20082017 const producer_strp = try self.strtab.insert(self.allocator, link.producer_string);
20092018
2010 di_buf.appendAssumeCapacity(@intFromEnum(AbbrevKind.compile_unit));
2019 di_buf.appendAssumeCapacity(@intFromEnum(AbbrevCode.compile_unit));
20112020 self.writeOffsetAssumeCapacity(&di_buf, 0); // DW.AT.stmt_list, DW.FORM.sec_offset
20122021 self.writeAddrAssumeCapacity(&di_buf, low_pc);
20132022 self.writeAddrAssumeCapacity(&di_buf, high_pc);
......@@ -2226,7 +2235,7 @@ fn pwriteDbgInfoNops(
22262235 const tracy = trace(@src());
22272236 defer tracy.end();
22282237
2229 const page_of_nops = [1]u8{@intFromEnum(AbbrevKind.pad1)} ** 4096;
2238 const page_of_nops = [1]u8{@intFromEnum(AbbrevCode.padding)} ** 4096;
22302239 var vecs: [32]std.os.iovec_const = undefined;
22312240 var vec_index: usize = 0;
22322241 {
......@@ -2298,9 +2307,9 @@ fn writeDbgInfoNopsToArrayList(
22982307 buffer.items.len,
22992308 offset + content.len + next_padding_size + 1,
23002309 ));
2301 @memset(buffer.items[offset - prev_padding_size .. offset], @intFromEnum(AbbrevKind.pad1));
2310 @memset(buffer.items[offset - prev_padding_size .. offset], @intFromEnum(AbbrevCode.padding));
23022311 @memcpy(buffer.items[offset..][0..content.len], content);
2303 @memset(buffer.items[offset + content.len ..][0..next_padding_size], @intFromEnum(AbbrevKind.pad1));
2312 @memset(buffer.items[offset + content.len ..][0..next_padding_size], @intFromEnum(AbbrevCode.padding));
23042313
23052314 if (trailing_zero) {
23062315 buffer.items[offset + content.len + next_padding_size] = 0;
......@@ -2842,7 +2851,7 @@ fn addDbgInfoErrorSetNames(
28422851 const target_endian = target.cpu.arch.endian();
28432852
28442853 // DW.AT.enumeration_type
2845 try dbg_info_buffer.append(@intFromEnum(AbbrevKind.enum_type));
2854 try dbg_info_buffer.append(@intFromEnum(AbbrevCode.enum_type));
28462855 // DW.AT.byte_size, DW.FORM.udata
28472856 const abi_size = Type.anyerror.abiSize(mod);
28482857 try leb128.writeULEB128(dbg_info_buffer.writer(), abi_size);
......@@ -2853,7 +2862,7 @@ fn addDbgInfoErrorSetNames(
28532862 // DW.AT.enumerator
28542863 const no_error = "(no error)";
28552864 try dbg_info_buffer.ensureUnusedCapacity(no_error.len + 2 + @sizeOf(u64));
2856 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.enum_variant));
2865 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.enum_variant));
28572866 // DW.AT.name, DW.FORM.string
28582867 dbg_info_buffer.appendSliceAssumeCapacity(no_error);
28592868 dbg_info_buffer.appendAssumeCapacity(0);
......@@ -2865,7 +2874,7 @@ fn addDbgInfoErrorSetNames(
28652874 const error_name = mod.intern_pool.stringToSlice(error_name_ip);
28662875 // DW.AT.enumerator
28672876 try dbg_info_buffer.ensureUnusedCapacity(error_name.len + 2 + @sizeOf(u64));
2868 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevKind.enum_variant));
2877 dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.enum_variant));
28692878 // DW.AT.name, DW.FORM.string
28702879 dbg_info_buffer.appendSliceAssumeCapacity(error_name);
28712880 dbg_info_buffer.appendAssumeCapacity(0);