| ... | @@ -2984,13 +2984,33 @@ fn walkInstruction( | ... | @@ -2984,13 +2984,33 @@ fn walkInstruction( |
| 2984 | const param_index = self.exprs.items.len; | 2984 | const param_index = self.exprs.items.len; |
| 2985 | try self.exprs.append(self.arena, param.expr); | 2985 | try self.exprs.append(self.arena, param.expr); |
| 2986 | | 2986 | |
| 2987 | self.exprs.items[bin_index] = .{ .builtin = .{ .name = @tagName(tags[inst_index]), .param = param_index } }; | 2987 | self.exprs.items[bin_index] = .{ .builtin = .{ .name = @tagName(extended.opcode), .param = param_index } }; |
| 2988 | | 2988 | |
| 2989 | return DocData.WalkResult{ | 2989 | return DocData.WalkResult{ |
| 2990 | .typeRef = param.typeRef orelse .{ .type = @enumToInt(Ref.type_type) }, | 2990 | .typeRef = param.typeRef orelse .{ .type = @enumToInt(Ref.type_type) }, |
| 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; |
| 2996 | | 3016 | |