diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-03-11 13:12:32 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-03-11 13:12:32 +0200 |
| commit | cba68090a60c3de8eadbf8eb53e37620a1d66683 (patch) | |
| tree | 19d972a0c3cab03307218e9fb757fd3fdc44c8a3 /src/arch/wasm/CodeGen.zig | |
| parent | db4262417009c0060e09a8cf8af088b76320aad0 (diff) | |
| download | zig-cba68090a60c3de8eadbf8eb53e37620a1d66683.tar.gz zig-cba68090a60c3de8eadbf8eb53e37620a1d66683.zip | |
stage2: implement `@shuffle` at runtime
Diffstat (limited to 'src/arch/wasm/CodeGen.zig')
| -rw-r--r-- | src/arch/wasm/CodeGen.zig | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/arch/wasm/CodeGen.zig b/src/arch/wasm/CodeGen.zig index 3f28b87b55..6c54699831 100644 --- a/src/arch/wasm/CodeGen.zig +++ b/src/arch/wasm/CodeGen.zig @@ -1255,6 +1255,7 @@ fn genInst(self: *Self, inst: Air.Inst.Index) !WValue { .ret_ptr => self.airRetPtr(inst), .ret_load => self.airRetLoad(inst), .splat => self.airSplat(inst), + .shuffle => self.airShuffle(inst), .aggregate_init => self.airAggregateInit(inst), .union_init => self.airUnionInit(inst), .prefetch => self.airPrefetch(inst), @@ -2985,6 +2986,17 @@ fn airSplat(self: *Self, inst: Air.Inst.Index) InnerError!WValue { return self.fail("TODO: Implement wasm airSplat", .{}); } +fn airShuffle(self: *Self, inst: Air.Inst.Index) InnerError!WValue { + if (self.liveness.isUnused(inst)) return WValue{ .none = {} }; + + const ty_op = self.air.instructions.items(.data)[inst].ty_op; + const operand = try self.resolveInst(ty_op.operand); + + _ = ty_op; + _ = operand; + return self.fail("TODO: Implement wasm airShuffle", .{}); +} + fn airAggregateInit(self: *Self, inst: Air.Inst.Index) InnerError!WValue { if (self.liveness.isUnused(inst)) return WValue{ .none = {} }; |
