autodoc: add new builtins

This commit is contained in:
Krzysztof Wolicki 2023-03-30 22:05:22 +02:00 committed by Krzysztof Wolicki
parent 652b005f9b
commit b69578e19c
2 changed files with 32 additions and 0 deletions

View File

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

View File

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