authorgravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2022-06-19 18:57:28+07:00
committergravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2022-06-24 21:19:33+07:00
log26b63b022fdbc163642cf274a9ca87b0194bec7d
tree9b4468f30b976d5f0408842c5d1ad7aaa1860f3e
parent4fd0500bb570572a89c8f342c6d9bdb4a69331a7

stage2: sparc64: Add airMemset placeholder


1 files changed, 15 insertions(+), 1 deletions(-)

src/arch/sparc64/CodeGen.zig+15-1
......@@ -611,7 +611,7 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void {
611611 .atomic_rmw => @panic("TODO try self.airAtomicRmw(inst)"),
612612 .atomic_load => @panic("TODO try self.airAtomicLoad(inst)"),
613613 .memcpy => @panic("TODO try self.airMemcpy(inst)"),
614 .memset => @panic("TODO try self.airMemset(inst)"),
614 .memset => try self.airMemset(inst),
615615 .set_union_tag => @panic("TODO try self.airSetUnionTag(inst)"),
616616 .get_union_tag => @panic("TODO try self.airGetUnionTag(inst)"),
617617 .clz => @panic("TODO try self.airClz(inst)"),
......@@ -1569,6 +1569,20 @@ fn airLoop(self: *Self, inst: Air.Inst.Index) !void {
15691569 return self.finishAirBookkeeping();
15701570}
15711571
1572fn airMemset(self: *Self, inst: Air.Inst.Index) !void {
1573 const pl_op = self.air.instructions.items(.data)[inst].pl_op;
1574 const extra = self.air.extraData(Air.Bin, pl_op.payload);
1575
1576 const operand = pl_op.operand;
1577 const value = extra.data.lhs;
1578 const length = extra.data.rhs;
1579 _ = operand;
1580 _ = value;
1581 _ = length;
1582
1583 return self.fail("TODO implement airMemset for {}", .{self.target.cpu.arch});
1584}
1585
15721586fn airNot(self: *Self, inst: Air.Inst.Index) !void {
15731587 const ty_op = self.air.instructions.items(.data)[inst].ty_op;
15741588 const result: MCValue = if (self.liveness.isUnused(inst)) .dead else result: {