diff options
| author | Koakuma <koachan@protonmail.com> | 2022-10-14 22:28:03 +0700 |
|---|---|---|
| committer | Koakuma <koachan@protonmail.com> | 2022-12-10 21:11:14 +0700 |
| commit | ef532ada8ada987a5b66db630b374520d04553d8 (patch) | |
| tree | 9cffbee5e3d72477776b2367e774aaabdc60990f /src | |
| parent | 4687bc2730c36e46b0edbc36ce18576fb8f3e1f4 (diff) | |
| download | zig-ef532ada8ada987a5b66db630b374520d04553d8.tar.gz zig-ef532ada8ada987a5b66db630b374520d04553d8.zip | |
stage2: sparc64: Implement airSplat
Diffstat (limited to 'src')
| -rw-r--r-- | src/arch/sparc64/CodeGen.zig | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/arch/sparc64/CodeGen.zig b/src/arch/sparc64/CodeGen.zig index 8dfa30750b..2e8b186909 100644 --- a/src/arch/sparc64/CodeGen.zig +++ b/src/arch/sparc64/CodeGen.zig @@ -610,7 +610,7 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { .bit_reverse => @panic("TODO try self.airBitReverse(inst)"), .tag_name => try self.airTagName(inst), .error_name => try self.airErrorName(inst), - .splat => @panic("TODO try self.airSplat(inst)"), + .splat => try self.airSplat(inst), .select => @panic("TODO try self.airSelect(inst)"), .shuffle => @panic("TODO try self.airShuffle(inst)"), .reduce => @panic("TODO try self.airReduce(inst)"), @@ -2292,6 +2292,12 @@ fn airSlicePtr(self: *Self, inst: Air.Inst.Index) !void { return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); } +fn airSplat(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 return self.fail("TODO implement airSplat for {}", .{self.target.cpu.arch}); + return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); +} + fn airStore(self: *Self, inst: Air.Inst.Index) !void { const bin_op = self.air.instructions.items(.data)[inst].bin_op; const ptr = try self.resolveInst(bin_op.lhs); |
