diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-04-29 12:23:46 +0300 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-04-30 01:06:01 +0300 |
| commit | 596f7df02e78adf334eed4a1f14eafa31ca611b9 (patch) | |
| tree | c2e3dc7082a0b0c8d870506820d10c708c906934 /src/AstGen.zig | |
| parent | 1d455896cb24165c5a3e0b3e10934c60a285589d (diff) | |
| download | zig-596f7df02e78adf334eed4a1f14eafa31ca611b9.tar.gz zig-596f7df02e78adf334eed4a1f14eafa31ca611b9.zip | |
Zir: turn extended func into func_extended
Diffstat (limited to 'src/AstGen.zig')
| -rw-r--r-- | src/AstGen.zig | 29 |
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); |
