zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 26b63b022fdbc163642cf274a9ca87b0194bec7d (tree)
parent 4fd0500bb570572a89c8f342c6d9bdb4a69331a7
Author: Koakuma <koachan@protonmail.com>
Date:   Sun, 19 Jun 2022 18:57:28 +0700

stage2: sparc64: Add airMemset placeholder

Diffstat:
Msrc/arch/sparc64/CodeGen.zig | 16+++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/arch/sparc64/CodeGen.zig b/src/arch/sparc64/CodeGen.zig @@ -611,7 +611,7 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { .atomic_rmw => @panic("TODO try self.airAtomicRmw(inst)"), .atomic_load => @panic("TODO try self.airAtomicLoad(inst)"), .memcpy => @panic("TODO try self.airMemcpy(inst)"), - .memset => @panic("TODO try self.airMemset(inst)"), + .memset => try self.airMemset(inst), .set_union_tag => @panic("TODO try self.airSetUnionTag(inst)"), .get_union_tag => @panic("TODO try self.airGetUnionTag(inst)"), .clz => @panic("TODO try self.airClz(inst)"), @@ -1569,6 +1569,20 @@ fn airLoop(self: *Self, inst: Air.Inst.Index) !void { return self.finishAirBookkeeping(); } +fn airMemset(self: *Self, inst: Air.Inst.Index) !void { + const pl_op = self.air.instructions.items(.data)[inst].pl_op; + const extra = self.air.extraData(Air.Bin, pl_op.payload); + + const operand = pl_op.operand; + const value = extra.data.lhs; + const length = extra.data.rhs; + _ = operand; + _ = value; + _ = length; + + return self.fail("TODO implement airMemset for {}", .{self.target.cpu.arch}); +} + fn airNot(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: {