aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKoakuma <koachan@protonmail.com>2022-10-14 22:26:48 +0700
committerKoakuma <koachan@protonmail.com>2022-12-10 21:11:14 +0700
commit4687bc2730c36e46b0edbc36ce18576fb8f3e1f4 (patch)
tree4ac45fc9e0438b252fca9f9ad5c7b4b5459a859d /src
parent0bc936685bbba38759b8029bada3c21b0ae2c353 (diff)
downloadzig-4687bc2730c36e46b0edbc36ce18576fb8f3e1f4.tar.gz
zig-4687bc2730c36e46b0edbc36ce18576fb8f3e1f4.zip
stage2: sparc64: Implement airUnionInit
Diffstat (limited to 'src')
-rw-r--r--src/arch/sparc64/CodeGen.zig9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/arch/sparc64/CodeGen.zig b/src/arch/sparc64/CodeGen.zig
index bec70fb7d8..8dfa30750b 100644
--- a/src/arch/sparc64/CodeGen.zig
+++ b/src/arch/sparc64/CodeGen.zig
@@ -615,7 +615,7 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void {
.shuffle => @panic("TODO try self.airShuffle(inst)"),
.reduce => @panic("TODO try self.airReduce(inst)"),
.aggregate_init => try self.airAggregateInit(inst),
- .union_init => @panic("TODO try self.airUnionInit(inst)"),
+ .union_init => try self.airUnionInit(inst),
.prefetch => try self.airPrefetch(inst),
.mul_add => @panic("TODO try self.airMulAdd(inst)"),
.addrspace_cast => @panic("TODO try self.airAddrSpaceCast(int)"),
@@ -2427,6 +2427,13 @@ fn airUnaryMath(self: *Self, inst: Air.Inst.Index) !void {
return self.finishAir(inst, result, .{ un_op, .none, .none });
}
+fn airUnionInit(self: *Self, inst: Air.Inst.Index) !void {
+ const ty_pl = self.air.instructions.items(.data)[inst].ty_pl;
+ const extra = self.air.extraData(Air.UnionInit, ty_pl.payload).data;
+ _ = extra;
+ return self.fail("TODO implement airUnionInit for {}", .{self.target.cpu.arch});
+}
+
fn airUnwrapErrErr(self: *Self, inst: Air.Inst.Index) !void {
const ty_op = self.air.instructions.items(.data)[inst].ty_op;
const result: MCValue = if (self.liveness.isUnused(inst)) .dead else result: {