aboutsummaryrefslogtreecommitdiff
path: root/src/arch/arm/CodeGen.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-03-16 20:40:16 +0200
committerGitHub <noreply@github.com>2022-03-16 20:40:16 +0200
commit49c0bb1f33044658909cae4351d931af497ee4e5 (patch)
treeabf9ecce7f08db5b5f92ed30e3fc3f40b926acc3 /src/arch/arm/CodeGen.zig
parentd4a7a9ac4cf64ef6bf0b1aed16282c3d8b47b431 (diff)
parentd83a26f068f42c6f9cafd25b7038b70553a496d8 (diff)
downloadzig-49c0bb1f33044658909cae4351d931af497ee4e5.tar.gz
zig-49c0bb1f33044658909cae4351d931af497ee4e5.zip
Merge pull request #11177 from Vexu/dbg_func
Add debug info for inlined calls
Diffstat (limited to 'src/arch/arm/CodeGen.zig')
-rw-r--r--src/arch/arm/CodeGen.zig12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/arch/arm/CodeGen.zig b/src/arch/arm/CodeGen.zig
index 5dda14a07d..0ccec1be88 100644
--- a/src/arch/arm/CodeGen.zig
+++ b/src/arch/arm/CodeGen.zig
@@ -646,6 +646,10 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void {
.dbg_var_val,
=> try self.airDbgVar(inst),
+ .dbg_inline_begin,
+ .dbg_inline_end,
+ => try self.airDbgInline(inst),
+
.call => try self.airCall(inst, .auto),
.call_always_tail => try self.airCall(inst, .always_tail),
.call_never_tail => try self.airCall(inst, .never_tail),
@@ -2835,6 +2839,14 @@ fn airDbgStmt(self: *Self, inst: Air.Inst.Index) !void {
return self.finishAirBookkeeping();
}
+fn airDbgInline(self: *Self, inst: Air.Inst.Index) !void {
+ const ty_pl = self.air.instructions.items(.data)[inst].ty_pl;
+ const function = self.air.values[ty_pl.payload].castTag(.function).?.data;
+ // TODO emit debug info for function change
+ _ = function;
+ return self.finishAir(inst, .dead, .{ .none, .none, .none });
+}
+
fn airDbgVar(self: *Self, inst: Air.Inst.Index) !void {
const pl_op = self.air.instructions.items(.data)[inst].pl_op;
const name = self.air.nullTerminatedString(pl_op.payload);