| ... | @@ -85046,13 +85046,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -85046,13 +85046,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85046 | .data = .{ .ip_index = old_inline_func }, | 85046 | .data = .{ .ip_index = old_inline_func }, |
| 85047 | }); | 85047 | }); |
| 85048 | }, | 85048 | }, |
| 85049 | .dbg_var_ptr, | 85049 | .dbg_var_ptr, .dbg_var_val, .dbg_arg_inline => |air_tag| if (use_old) try cg.airDbgVar(inst) else if (!cg.mod.strip) { |
| 85050 | .dbg_var_val, | | |
| 85051 | .dbg_arg_inline, | | |
| 85052 | => |air_tag| if (use_old) try cg.airDbgVar(inst) else if (!cg.mod.strip) { | | |
| 85053 | const pl_op = air_datas[@intFromEnum(inst)].pl_op; | 85050 | const pl_op = air_datas[@intFromEnum(inst)].pl_op; |
| 85054 | const air_name: Air.NullTerminatedString = @enumFromInt(pl_op.payload); | 85051 | const air_name: Air.NullTerminatedString = @enumFromInt(pl_op.payload); |
| 85055 | const ty = cg.typeOf(pl_op.operand); | 85052 | const op_ty = cg.typeOf(pl_op.operand); |
| | 85053 | const local_ty = switch (air_tag) { |
| | 85054 | else => unreachable, |
| | 85055 | .dbg_var_ptr => op_ty.childType(zcu), |
| | 85056 | .dbg_var_val, .dbg_arg_inline => op_ty, |
| | 85057 | }; |
| 85056 | var ops = try cg.tempsFromOperands(inst, .{pl_op.operand}); | 85058 | var ops = try cg.tempsFromOperands(inst, .{pl_op.operand}); |
| 85057 | var mcv = ops[0].tracking(cg).short; | 85059 | var mcv = ops[0].tracking(cg).short; |
| 85058 | switch (mcv) { | 85060 | switch (mcv) { |
| ... | @@ -85076,10 +85078,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -85076,10 +85078,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85076 | }, | 85078 | }, |
| 85077 | else => try cg.addString(air_name.toSlice(cg.air)), | 85079 | else => try cg.addString(air_name.toSlice(cg.air)), |
| 85078 | }, | 85080 | }, |
| 85079 | .type = ty.toIntern(), | 85081 | .type = local_ty.toIntern(), |
| 85080 | }); | 85082 | }); |
| 85081 | | 85083 | |
| 85082 | try cg.genLocalDebugInfo(air_tag, ty, ops[0].tracking(cg).short); | 85084 | try cg.genLocalDebugInfo(air_tag, local_ty, ops[0].tracking(cg).short); |
| 85083 | try ops[0].die(cg); | 85085 | try ops[0].die(cg); |
| 85084 | }, | 85086 | }, |
| 85085 | .is_null => if (use_old) try cg.airIsNull(inst) else { | 85087 | .is_null => if (use_old) try cg.airIsNull(inst) else { |
| ... | @@ -174364,7 +174366,12 @@ fn airDbgVar(cg: *CodeGen, inst: Air.Inst.Index) !void { | ... | @@ -174364,7 +174366,12 @@ fn airDbgVar(cg: *CodeGen, inst: Air.Inst.Index) !void { |
| 174364 | const air_tag = cg.air.instructions.items(.tag)[@intFromEnum(inst)]; | 174366 | const air_tag = cg.air.instructions.items(.tag)[@intFromEnum(inst)]; |
| 174365 | const pl_op = cg.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; | 174367 | const pl_op = cg.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; |
| 174366 | const air_name: Air.NullTerminatedString = @enumFromInt(pl_op.payload); | 174368 | const air_name: Air.NullTerminatedString = @enumFromInt(pl_op.payload); |
| 174367 | const ty = cg.typeOf(pl_op.operand); | 174369 | const op_ty = cg.typeOf(pl_op.operand); |
| | 174370 | const local_ty = switch (air_tag) { |
| | 174371 | else => unreachable, |
| | 174372 | .dbg_var_ptr => op_ty.childType(cg.pt.zcu), |
| | 174373 | .dbg_var_val, .dbg_arg_inline => op_ty, |
| | 174374 | }; |
| 174368 | | 174375 | |
| 174369 | try cg.mir_locals.append(cg.gpa, .{ | 174376 | try cg.mir_locals.append(cg.gpa, .{ |
| 174370 | .name = switch (air_name) { | 174377 | .name = switch (air_name) { |
| ... | @@ -174374,10 +174381,10 @@ fn airDbgVar(cg: *CodeGen, inst: Air.Inst.Index) !void { | ... | @@ -174374,10 +174381,10 @@ fn airDbgVar(cg: *CodeGen, inst: Air.Inst.Index) !void { |
| 174374 | }, | 174381 | }, |
| 174375 | else => try cg.addString(air_name.toSlice(cg.air)), | 174382 | else => try cg.addString(air_name.toSlice(cg.air)), |
| 174376 | }, | 174383 | }, |
| 174377 | .type = ty.toIntern(), | 174384 | .type = local_ty.toIntern(), |
| 174378 | }); | 174385 | }); |
| 174379 | | 174386 | |
| 174380 | try cg.genLocalDebugInfo(air_tag, ty, try cg.resolveInst(pl_op.operand)); | 174387 | try cg.genLocalDebugInfo(air_tag, local_ty, try cg.resolveInst(pl_op.operand)); |
| 174381 | return cg.finishAir(inst, .unreach, .{ pl_op.operand, .none, .none }); | 174388 | return cg.finishAir(inst, .unreach, .{ pl_op.operand, .none, .none }); |
| 174382 | } | 174389 | } |
| 174383 | | 174390 | |