aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorRobin Voetter <robin@voetter.nl>2021-01-19 01:29:01 +0100
committerRobin Voetter <robin@voetter.nl>2021-01-19 15:28:17 +0100
commit71ac82ecb028605545b67eaa50b34f4e2494de44 (patch)
tree1c59134020383b2aba81b91bed163c5279182acd /src/codegen
parent02c138fe7011346ebab5e4b24ba0f8575bb52173 (diff)
downloadzig-71ac82ecb028605545b67eaa50b34f4e2494de44.tar.gz
zig-71ac82ecb028605545b67eaa50b34f4e2494de44.zip
SPIR-V: Make emitting binary more efficient
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/spirv.zig6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig
index f0ebd49e1d..7e41913625 100644
--- a/src/codegen/spirv.zig
+++ b/src/codegen/spirv.zig
@@ -19,4 +19,10 @@ pub const SPIRVModule = struct {
pub fn genDecl(self: SPIRVModule, id: u32, code: *std.ArrayList(u32), decl: *Decl) !void {
}
+
+ pub fn writeInstruction(code: *std.ArrayList(u32), instr: spec.Opcode, args: []const u32) !void {
+ const word_count = @intCast(u32, args.len + 1);
+ try code.append((word_count << 16) | @enumToInt(instr));
+ try code.appendSlice(args);
+ }
};