authorgravatar for der.teufel.mail@gmail.comKrzysztof Wolicki <der.teufel.mail@gmail.com> 2023-03-30 22:05:22+02:00
committergravatar for der.teufel.mail@gmail.comKrzysztof Wolicki <der.teufel.mail@gmail.com> 2023-03-31 11:47:14+02:00
logb69578e19c85e65dbfdf92908416182abf2bede7
treebfd4fde87f106de3cc0c58b70432890a66a15a9a
parent652b005f9bf1836ac507d9ef58cf4b4319557ad8

autodoc: add new builtins


2 files changed, 32 insertions(+), 0 deletions(-)

lib/docs/main.js+12
...@@ -1267,6 +1267,18 @@ const NAV_MODES = {...@@ -1267,6 +1267,18 @@ const NAV_MODES = {
1267 payloadHtml += "frameSize";1267 payloadHtml += "frameSize";
1268 break;1268 break;
1269 }1269 }
1270 case "work_item_id": {
1271 payloadHtml += "workItemId";
1272 break;
1273 }
1274 case "work_group_size": {
1275 payloadHtml += "workGroupSize";
1276 break;
1277 }
1278 case "work_group_id": {
1279 payloadHtml += "workGroupId";
1280 break;
1281 }
1270 case "ptr_to_int": {1282 case "ptr_to_int": {
1271 payloadHtml += "ptrToInt";1283 payloadHtml += "ptrToInt";
1272 break;1284 break;
src/Autodoc.zig+20
...@@ -2991,6 +2991,26 @@ fn walkInstruction(...@@ -2991,6 +2991,26 @@ fn walkInstruction(
2991 .expr = .{ .builtinIndex = bin_index },2991 .expr = .{ .builtinIndex = bin_index },
2992 };2992 };
2993 },2993 },
2994 .work_item_id,
2995 .work_group_size,
2996 .work_group_id,
2997 => {
2998 const extra = file.zir.extraData(Zir.Inst.UnNode, extended.operand).data;
2999 const bin_index = self.exprs.items.len;
3000 try self.exprs.append(self.arena, .{ .builtin = .{ .param = 0 } });
3001 const param = try self.walkRef(file, parent_scope, parent_src, extra.operand, false);
3002
3003 const param_index = self.exprs.items.len;
3004 try self.exprs.append(self.arena, param.expr);
3005
3006 self.exprs.items[bin_index] = .{ .builtin = .{ .name = @tagName(extended.opcode), .param = param_index } };
3007
3008 return DocData.WalkResult{
3009 // from docs we know they return u32
3010 .typeRef = .{ .type = @enumToInt(Ref.u32_type) },
3011 .expr = .{ .builtinIndex = bin_index },
3012 };
3013 },
2994 .cmpxchg => {3014 .cmpxchg => {
2995 const extra = file.zir.extraData(Zir.Inst.Cmpxchg, extended.operand).data;3015 const extra = file.zir.extraData(Zir.Inst.Cmpxchg, extended.operand).data;
29963016