From 652b005f9bf1836ac507d9ef58cf4b4319557ad8 Mon Sep 17 00:00:00 2001 From: Krzysztof Wolicki Date: Thu, 30 Mar 2023 22:03:58 +0200 Subject: [PATCH 1/2] autodoc: fix Extended builtin functions names rendering --- src/Autodoc.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Autodoc.zig b/src/Autodoc.zig index 15d90b104b..b4d704ded3 100644 --- a/src/Autodoc.zig +++ b/src/Autodoc.zig @@ -2984,7 +2984,7 @@ fn walkInstruction( const param_index = self.exprs.items.len; try self.exprs.append(self.arena, param.expr); - self.exprs.items[bin_index] = .{ .builtin = .{ .name = @tagName(tags[inst_index]), .param = param_index } }; + self.exprs.items[bin_index] = .{ .builtin = .{ .name = @tagName(extended.opcode), .param = param_index } }; return DocData.WalkResult{ .typeRef = param.typeRef orelse .{ .type = @enumToInt(Ref.type_type) }, From b69578e19c85e65dbfdf92908416182abf2bede7 Mon Sep 17 00:00:00 2001 From: Krzysztof Wolicki Date: Thu, 30 Mar 2023 22:05:22 +0200 Subject: [PATCH 2/2] autodoc: add new builtins --- lib/docs/main.js | 12 ++++++++++++ src/Autodoc.zig | 20 ++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/lib/docs/main.js b/lib/docs/main.js index fc99b2f861..280bdbde73 100644 --- a/lib/docs/main.js +++ b/lib/docs/main.js @@ -1267,6 +1267,18 @@ const NAV_MODES = { payloadHtml += "frameSize"; break; } + case "work_item_id": { + payloadHtml += "workItemId"; + break; + } + case "work_group_size": { + payloadHtml += "workGroupSize"; + break; + } + case "work_group_id": { + payloadHtml += "workGroupId"; + break; + } case "ptr_to_int": { payloadHtml += "ptrToInt"; break; diff --git a/src/Autodoc.zig b/src/Autodoc.zig index b4d704ded3..3a684a73b2 100644 --- a/src/Autodoc.zig +++ b/src/Autodoc.zig @@ -2991,6 +2991,26 @@ fn walkInstruction( .expr = .{ .builtinIndex = bin_index }, }; }, + .work_item_id, + .work_group_size, + .work_group_id, + => { + const extra = file.zir.extraData(Zir.Inst.UnNode, extended.operand).data; + const bin_index = self.exprs.items.len; + try self.exprs.append(self.arena, .{ .builtin = .{ .param = 0 } }); + const param = try self.walkRef(file, parent_scope, parent_src, extra.operand, false); + + const param_index = self.exprs.items.len; + try self.exprs.append(self.arena, param.expr); + + self.exprs.items[bin_index] = .{ .builtin = .{ .name = @tagName(extended.opcode), .param = param_index } }; + + return DocData.WalkResult{ + // from docs we know they return u32 + .typeRef = .{ .type = @enumToInt(Ref.u32_type) }, + .expr = .{ .builtinIndex = bin_index }, + }; + }, .cmpxchg => { const extra = file.zir.extraData(Zir.Inst.Cmpxchg, extended.operand).data;