| ... | ... | @@ -615,7 +615,7 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { |
| 615 | 615 | .shuffle => @panic("TODO try self.airShuffle(inst)"), |
| 616 | 616 | .reduce => @panic("TODO try self.airReduce(inst)"), |
| 617 | 617 | .aggregate_init => try self.airAggregateInit(inst), |
| 618 | | .union_init => @panic("TODO try self.airUnionInit(inst)"), |
| 618 | .union_init => try self.airUnionInit(inst), |
| 619 | 619 | .prefetch => try self.airPrefetch(inst), |
| 620 | 620 | .mul_add => @panic("TODO try self.airMulAdd(inst)"), |
| 621 | 621 | .addrspace_cast => @panic("TODO try self.airAddrSpaceCast(int)"), |
| ... | ... | @@ -2427,6 +2427,13 @@ fn airUnaryMath(self: *Self, inst: Air.Inst.Index) !void { |
| 2427 | 2427 | return self.finishAir(inst, result, .{ un_op, .none, .none }); |
| 2428 | 2428 | } |
| 2429 | 2429 | |
| 2430 | fn airUnionInit(self: *Self, inst: Air.Inst.Index) !void { |
| 2431 | const ty_pl = self.air.instructions.items(.data)[inst].ty_pl; |
| 2432 | const extra = self.air.extraData(Air.UnionInit, ty_pl.payload).data; |
| 2433 | _ = extra; |
| 2434 | return self.fail("TODO implement airUnionInit for {}", .{self.target.cpu.arch}); |
| 2435 | } |
| 2436 | |
| 2430 | 2437 | fn airUnwrapErrErr(self: *Self, inst: Air.Inst.Index) !void { |
| 2431 | 2438 | const ty_op = self.air.instructions.items(.data)[inst].ty_op; |
| 2432 | 2439 | const result: MCValue = if (self.liveness.isUnused(inst)) .dead else result: { |