aboutsummaryrefslogtreecommitdiff
path: root/src/AstGen.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-04-29 12:23:46 +0300
committerVeikka Tuominen <git@vexu.eu>2022-04-30 01:06:01 +0300
commit596f7df02e78adf334eed4a1f14eafa31ca611b9 (patch)
treec2e3dc7082a0b0c8d870506820d10c708c906934 /src/AstGen.zig
parent1d455896cb24165c5a3e0b3e10934c60a285589d (diff)
downloadzig-596f7df02e78adf334eed4a1f14eafa31ca611b9.tar.gz
zig-596f7df02e78adf334eed4a1f14eafa31ca611b9.zip
Zir: turn extended func into func_extended
Diffstat (limited to 'src/AstGen.zig')
-rw-r--r--src/AstGen.zig29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig
index b0cd976b00..f74a2b2d39 100644
--- a/src/AstGen.zig
+++ b/src/AstGen.zig
@@ -72,6 +72,7 @@ fn setExtra(astgen: *AstGen, index: usize, extra: anytype) void {
i32 => @bitCast(u32, @field(extra, field.name)),
Zir.Inst.Call.Flags => @bitCast(u32, @field(extra, field.name)),
Zir.Inst.SwitchBlock.Bits => @bitCast(u32, @field(extra, field.name)),
+ Zir.Inst.ExtendedFunc.Bits => @bitCast(u32, @field(extra, field.name)),
else => @compileError("bad field type"),
};
i += 1;
@@ -2245,6 +2246,7 @@ fn unusedResultExpr(gz: *GenZir, scope: *Scope, statement: Ast.Node.Index) Inner
.field_val_named,
.func,
.func_inferred,
+ .func_extended,
.int,
.int_big,
.float,
@@ -10023,10 +10025,18 @@ const GenZir = struct {
@boolToInt(args.cc != .none),
);
const payload_index = astgen.addExtraAssumeCapacity(Zir.Inst.ExtendedFunc{
- .src_node = gz.nodeIndexToRelative(args.src_node),
.param_block = args.param_block,
.ret_body_len = @intCast(u32, ret_ty.len),
.body_len = @intCast(u32, body.len),
+ .bits = .{
+ .is_var_args = args.is_var_args,
+ .is_inferred_error = args.is_inferred_error,
+ .has_lib_name = args.lib_name != 0,
+ .has_cc = args.cc != .none,
+ .has_align = args.align_inst != .none,
+ .is_test = args.is_test,
+ .is_extern = args.is_extern,
+ },
});
if (args.lib_name != 0) {
astgen.extra.appendAssumeCapacity(args.lib_name);
@@ -10050,19 +10060,10 @@ const GenZir = struct {
astgen.instructions.items(.data)[args.ret_br].@"break".block_inst = new_index;
}
astgen.instructions.appendAssumeCapacity(.{
- .tag = .extended,
- .data = .{ .extended = .{
- .opcode = .func,
- .small = @bitCast(u16, Zir.Inst.ExtendedFunc.Small{
- .is_var_args = args.is_var_args,
- .is_inferred_error = args.is_inferred_error,
- .has_lib_name = args.lib_name != 0,
- .has_cc = args.cc != .none,
- .has_align = args.align_inst != .none,
- .is_test = args.is_test,
- .is_extern = args.is_extern,
- }),
- .operand = payload_index,
+ .tag = .func_extended,
+ .data = .{ .pl_node = .{
+ .src_node = gz.nodeIndexToRelative(args.src_node),
+ .payload_index = payload_index,
} },
});
gz.instructions.appendAssumeCapacity(new_index);