Commit b69578e19c

Krzysztof Wolicki <der.teufel.mail@gmail.com>
2023-03-30 22:05:22
autodoc: add new builtins
1 parent 652b005
Changed files (2)
lib
docs
src
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;
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;