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:
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;