| ... | ... | @@ -2991,6 +2991,26 @@ fn walkInstruction( |
| 2991 | 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 | 3014 | .cmpxchg => { |
| 2995 | 3015 | const extra = file.zir.extraData(Zir.Inst.Cmpxchg, extended.operand).data; |
| 2996 | 3016 | |