zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit b69578e19c85e65dbfdf92908416182abf2bede7 (tree)
parent 652b005f9bf1836ac507d9ef58cf4b4319557ad8
Author: Krzysztof Wolicki <der.teufel.mail@gmail.com>
Date:   Thu, 30 Mar 2023 22:05:22 +0200

autodoc: add new builtins

Diffstat:
Mlib/docs/main.js | 12++++++++++++
Msrc/Autodoc.zig | 20++++++++++++++++++++
2 files changed, 32 insertions(+), 0 deletions(-)

diff --git 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 @@ -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;