From 27be4f31402557972ae28d552f4ec4617357d454 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 14 Jul 2021 19:04:02 -0700 Subject: Sema: more AIR memory layout reworking progress Additionally: ZIR encoding for floats now supports float literals up to f64, not only f32. This is because we no longer need a source location for this instruction. --- src/Module.zig | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/Module.zig') diff --git a/src/Module.zig b/src/Module.zig index 0a082313b3..4bd48dad05 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -1226,6 +1226,17 @@ pub const Scope = struct { return block.src_decl.namespace.file_scope; } + pub fn addTy( + block: *Block, + tag: Air.Inst.Tag, + ty: Type, + ) error{OutOfMemory}!Air.Inst.Ref { + return block.addInst(.{ + .tag = tag, + .data = .{ .ty = ty }, + }); + } + pub fn addTyOp( block: *Block, tag: Air.Inst.Tag, @@ -1241,6 +1252,13 @@ pub const Scope = struct { }); } + pub fn addNoOp(block: *Block, tag: Air.Inst.Tag) error{OutOfMemory}!Air.Inst.Ref { + return block.addInst(.{ + .tag = tag, + .data = .no_op, + }); + } + pub fn addUnOp( block: *Block, tag: Air.Inst.Tag, @@ -1252,6 +1270,20 @@ pub const Scope = struct { }); } + pub fn addBr( + block: *Block, + target_block: Air.Inst.Index, + operand: Air.Inst.Ref, + ) error{OutOfMemory}!Air.Inst.Ref { + return block.addInst(.{ + .tag = .br, + .data = .{ .br = .{ + .block_inst = target_block, + .operand = operand, + } }, + }); + } + pub fn addBinOp( block: *Block, tag: Air.Inst.Tag, -- cgit v1.2.3