| ... | @@ -166723,6 +166723,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166723,6 +166723,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166723 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166723 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166724 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, | 166724 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, |
| 166725 | } }, | 166725 | } }, |
| | 166726 | }, .{ |
| | 166727 | .required_features = .{ .avx, null, null, null }, |
| | 166728 | .src_constraints = .{ .any_int, .any, .any }, |
| | 166729 | .patterns = &.{ |
| | 166730 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 166731 | }, |
| | 166732 | .call_frame = .{ .alignment = .@"32" }, |
| | 166733 | .extra_temps = .{ |
| | 166734 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } } }, |
| | 166735 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, |
| | 166736 | .unused, |
| | 166737 | .unused, |
| | 166738 | .unused, |
| | 166739 | .unused, |
| | 166740 | .unused, |
| | 166741 | .unused, |
| | 166742 | .unused, |
| | 166743 | .unused, |
| | 166744 | .unused, |
| | 166745 | }, |
| | 166746 | .dst_temps = .{ .{ .cc = .nz }, .unused }, |
| | 166747 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, |
| | 166748 | .each = .{ .once = &.{ |
| | 166749 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 166750 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| | 166751 | .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ }, |
| | 166752 | } }, |
| 166726 | }, .{ | 166753 | }, .{ |
| 166727 | .required_features = .{ .sse, null, null, null }, | 166754 | .required_features = .{ .sse, null, null, null }, |
| 166728 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | 166755 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| ... | @@ -166749,6 +166776,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166749,6 +166776,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166749 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166776 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166750 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, | 166777 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, |
| 166751 | } }, | 166778 | } }, |
| | 166779 | }, .{ |
| | 166780 | .required_features = .{ .sse, null, null, null }, |
| | 166781 | .src_constraints = .{ .any_int, .any, .any }, |
| | 166782 | .patterns = &.{ |
| | 166783 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 166784 | }, |
| | 166785 | .call_frame = .{ .alignment = .@"16" }, |
| | 166786 | .extra_temps = .{ |
| | 166787 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } } }, |
| | 166788 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, |
| | 166789 | .unused, |
| | 166790 | .unused, |
| | 166791 | .unused, |
| | 166792 | .unused, |
| | 166793 | .unused, |
| | 166794 | .unused, |
| | 166795 | .unused, |
| | 166796 | .unused, |
| | 166797 | .unused, |
| | 166798 | }, |
| | 166799 | .dst_temps = .{ .{ .cc = .nz }, .unused }, |
| | 166800 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, |
| | 166801 | .each = .{ .once = &.{ |
| | 166802 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 166803 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| | 166804 | .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ }, |
| | 166805 | } }, |
| 166752 | }, .{ | 166806 | }, .{ |
| 166753 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | 166807 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 166754 | .patterns = &.{ | 166808 | .patterns = &.{ |
| ... | @@ -166774,6 +166828,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166774,6 +166828,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166774 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166828 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166775 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, | 166829 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, |
| 166776 | } }, | 166830 | } }, |
| | 166831 | }, .{ |
| | 166832 | .src_constraints = .{ .any_int, .any, .any }, |
| | 166833 | .patterns = &.{ |
| | 166834 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 166835 | }, |
| | 166836 | .call_frame = .{ .alignment = .@"8" }, |
| | 166837 | .extra_temps = .{ |
| | 166838 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } } }, |
| | 166839 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, |
| | 166840 | .unused, |
| | 166841 | .unused, |
| | 166842 | .unused, |
| | 166843 | .unused, |
| | 166844 | .unused, |
| | 166845 | .unused, |
| | 166846 | .unused, |
| | 166847 | .unused, |
| | 166848 | .unused, |
| | 166849 | }, |
| | 166850 | .dst_temps = .{ .{ .cc = .nz }, .unused }, |
| | 166851 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, |
| | 166852 | .each = .{ .once = &.{ |
| | 166853 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 166854 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| | 166855 | .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ }, |
| | 166856 | } }, |
| 166777 | } }) catch |err| switch (err) { | 166857 | } }) catch |err| switch (err) { |
| 166778 | error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{ | 166858 | error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{ |
| 166779 | @tagName(air_tag), | 166859 | @tagName(air_tag), |
| ... | @@ -166813,6 +166893,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166813,6 +166893,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166813 | .each = .{ .once = &.{ | 166893 | .each = .{ .once = &.{ |
| 166814 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166894 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166815 | } }, | 166895 | } }, |
| | 166896 | }, .{ |
| | 166897 | .required_features = .{ .avx, null, null, null }, |
| | 166898 | .src_constraints = .{ .any_int, .any, .any }, |
| | 166899 | .patterns = &.{ |
| | 166900 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 166901 | }, |
| | 166902 | .call_frame = .{ .alignment = .@"32" }, |
| | 166903 | .extra_temps = .{ |
| | 166904 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, |
| | 166905 | .unused, |
| | 166906 | .unused, |
| | 166907 | .unused, |
| | 166908 | .unused, |
| | 166909 | .unused, |
| | 166910 | .unused, |
| | 166911 | .unused, |
| | 166912 | .unused, |
| | 166913 | .unused, |
| | 166914 | .unused, |
| | 166915 | }, |
| | 166916 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .unused }, |
| | 166917 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, |
| | 166918 | .each = .{ .once = &.{ |
| | 166919 | .{ ._, ._, .lea, .dst0p0, .mem(.src0), ._, ._ }, |
| | 166920 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| | 166921 | } }, |
| 166816 | }, .{ | 166922 | }, .{ |
| 166817 | .required_features = .{ .sse, null, null, null }, | 166923 | .required_features = .{ .sse, null, null, null }, |
| 166818 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | 166924 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| ... | @@ -166838,6 +166944,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166838,6 +166944,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166838 | .each = .{ .once = &.{ | 166944 | .each = .{ .once = &.{ |
| 166839 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166945 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166840 | } }, | 166946 | } }, |
| | 166947 | }, .{ |
| | 166948 | .required_features = .{ .sse, null, null, null }, |
| | 166949 | .src_constraints = .{ .any_int, .any, .any }, |
| | 166950 | .patterns = &.{ |
| | 166951 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 166952 | }, |
| | 166953 | .call_frame = .{ .alignment = .@"16" }, |
| | 166954 | .extra_temps = .{ |
| | 166955 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, |
| | 166956 | .unused, |
| | 166957 | .unused, |
| | 166958 | .unused, |
| | 166959 | .unused, |
| | 166960 | .unused, |
| | 166961 | .unused, |
| | 166962 | .unused, |
| | 166963 | .unused, |
| | 166964 | .unused, |
| | 166965 | .unused, |
| | 166966 | }, |
| | 166967 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .unused }, |
| | 166968 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, |
| | 166969 | .each = .{ .once = &.{ |
| | 166970 | .{ ._, ._, .lea, .dst0p0, .mem(.src0), ._, ._ }, |
| | 166971 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| | 166972 | } }, |
| 166841 | }, .{ | 166973 | }, .{ |
| 166842 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | 166974 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 166843 | .patterns = &.{ | 166975 | .patterns = &.{ |
| ... | @@ -166862,6 +166994,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166862,6 +166994,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166862 | .each = .{ .once = &.{ | 166994 | .each = .{ .once = &.{ |
| 166863 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166995 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166864 | } }, | 166996 | } }, |
| | 166997 | }, .{ |
| | 166998 | .required_features = .{ .sse, null, null, null }, |
| | 166999 | .src_constraints = .{ .any_int, .any, .any }, |
| | 167000 | .patterns = &.{ |
| | 167001 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 167002 | }, |
| | 167003 | .call_frame = .{ .alignment = .@"8" }, |
| | 167004 | .extra_temps = .{ |
| | 167005 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, |
| | 167006 | .unused, |
| | 167007 | .unused, |
| | 167008 | .unused, |
| | 167009 | .unused, |
| | 167010 | .unused, |
| | 167011 | .unused, |
| | 167012 | .unused, |
| | 167013 | .unused, |
| | 167014 | .unused, |
| | 167015 | .unused, |
| | 167016 | }, |
| | 167017 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .unused }, |
| | 167018 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, |
| | 167019 | .each = .{ .once = &.{ |
| | 167020 | .{ ._, ._, .lea, .dst0p0, .mem(.src0), ._, ._ }, |
| | 167021 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| | 167022 | } }, |
| 166865 | } }) catch |err| switch (err) { | 167023 | } }) catch |err| switch (err) { |
| 166866 | error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{ | 167024 | error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{ |
| 166867 | @tagName(air_tag), | 167025 | @tagName(air_tag), |
| ... | @@ -166870,7 +167028,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166870,7 +167028,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166870 | }), | 167028 | }), |
| 166871 | else => |e| return e, | 167029 | else => |e| return e, |
| 166872 | }; | 167030 | }; |
| 166873 | try ops[0].toPair(&res[0], cg); | 167031 | if (res[0].tracking(cg).short != .register_pair) try ops[0].toPair(&res[0], cg); |
| 166874 | try res[0].finish(inst, &.{un_op}, &ops, cg); | 167032 | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| 166875 | }, | 167033 | }, |
| 166876 | .error_name => |air_tag| { | 167034 | .error_name => |air_tag| { |
| ... | @@ -169241,32 +169399,43 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { | ... | @@ -169241,32 +169399,43 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { |
| 169241 | const enum_ty: Type = .fromInterned(lazy_sym.ty); | 169399 | const enum_ty: Type = .fromInterned(lazy_sym.ty); |
| 169242 | wip_mir_log.debug("{f}.@tagName:", .{enum_ty.fmt(pt)}); | 169400 | wip_mir_log.debug("{f}.@tagName:", .{enum_ty.fmt(pt)}); |
| 169243 | | 169401 | |
| 169244 | const param_regs = abi.getCAbiIntParamRegs(.auto); | 169402 | const ret_regs = abi.getCAbiIntReturnRegs(.auto)[0..2].*; |
| 169245 | const param_locks = cg.register_manager.lockRegsAssumeUnused(2, param_regs[0..2].*); | 169403 | const ret_locks = cg.register_manager.lockRegsAssumeUnused(2, ret_regs); |
| 169246 | defer for (param_locks) |lock| cg.register_manager.unlockReg(lock); | 169404 | defer for (ret_locks) |lock| cg.register_manager.unlockReg(lock); |
| | 169405 | |
| | 169406 | const param_reg = abi.getCAbiIntParamRegs(.auto)[0]; |
| | 169407 | const param_lock = cg.register_manager.lockReg(param_reg); |
| | 169408 | defer if (param_lock) |lock| cg.register_manager.unlockReg(lock); |
| 169247 | | 169409 | |
| 169248 | const ret_mcv: MCValue = .{ .register_pair = param_regs[0..2].* }; | 169410 | const ret_mcv: MCValue = .{ .register_pair = ret_regs }; |
| 169249 | var enum_temp = try cg.tempInit(enum_ty, .{ .register = param_regs[0] }); | | |
| 169250 | | 169411 | |
| 169251 | const data_reg = try cg.register_manager.allocReg(null, abi.RegisterClass.gp); | 169412 | const data_reg = try cg.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 169252 | const data_lock = cg.register_manager.lockRegAssumeUnused(data_reg); | 169413 | const data_lock = cg.register_manager.lockRegAssumeUnused(data_reg); |
| 169253 | defer cg.register_manager.unlockReg(data_lock); | 169414 | defer cg.register_manager.unlockReg(data_lock); |
| 169254 | try cg.genLazySymbolRef(.lea, data_reg, .{ .kind = .const_data, .ty = lazy_sym.ty }); | 169415 | try cg.asmRegisterMemory(.{ ._, .lea }, data_reg.to64(), .{ |
| | 169416 | .base = .{ .lazy_sym = .{ .kind = .const_data, .ty = lazy_sym.ty } }, |
| | 169417 | }); |
| 169255 | | 169418 | |
| 169256 | var data_off: i32 = 0; | 169419 | var data_off: i32 = 0; |
| 169257 | const reset_index = cg.next_temp_index; | 169420 | const reset_index = cg.next_temp_index; |
| 169258 | const tag_names = ip.loadEnumType(lazy_sym.ty).names; | 169421 | const tag_names = ip.loadEnumType(lazy_sym.ty).names; |
| 169259 | for (0..tag_names.len) |tag_index| { | 169422 | for (0..tag_names.len) |tag_index| { |
| | 169423 | var enum_temp = try cg.tempInit(enum_ty, if (enum_ty.abiSize(zcu) <= @as(u4, switch (cg.target.cpu.arch) { |
| | 169424 | else => unreachable, |
| | 169425 | .x86 => 4, |
| | 169426 | .x86_64 => 8, |
| | 169427 | })) .{ .register = param_reg } else .{ .indirect = .{ .reg = param_reg } }); |
| | 169428 | |
| 169260 | const tag_name_len = tag_names.get(ip)[tag_index].length(ip); | 169429 | const tag_name_len = tag_names.get(ip)[tag_index].length(ip); |
| 169261 | var tag_temp = try cg.tempFromValue(try pt.enumValueFieldIndex(enum_ty, @intCast(tag_index))); | 169430 | var tag_temp = try cg.tempFromValue(try pt.enumValueFieldIndex(enum_ty, @intCast(tag_index))); |
| 169262 | const cc_temp = enum_temp.cmpInts(.neq, &tag_temp, cg) catch |err| switch (err) { | 169431 | const cc_temp = enum_temp.cmpInts(.neq, &tag_temp, cg) catch |err| switch (err) { |
| 169263 | error.SelectFailed => unreachable, | 169432 | error.SelectFailed => unreachable, |
| 169264 | else => |e| return e, | 169433 | else => |e| return e, |
| 169265 | }; | 169434 | }; |
| | 169435 | try enum_temp.die(cg); |
| 169266 | try tag_temp.die(cg); | 169436 | try tag_temp.die(cg); |
| 169267 | const skip_reloc = try cg.asmJccReloc(cc_temp.tracking(cg).short.eflags, undefined); | 169437 | const skip_reloc = try cg.asmJccReloc(cc_temp.tracking(cg).short.eflags, undefined); |
| 169268 | try cc_temp.die(cg); | 169438 | try cc_temp.die(cg); |
| 169269 | try cg.resetTemps(reset_index); | | |
| 169270 | | 169439 | |
| 169271 | try cg.genSetReg( | 169440 | try cg.genSetReg( |
| 169272 | ret_mcv.register_pair[0], | 169441 | ret_mcv.register_pair[0], |
| ... | @@ -169280,8 +169449,9 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { | ... | @@ -169280,8 +169449,9 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { |
| 169280 | cg.performReloc(skip_reloc); | 169449 | cg.performReloc(skip_reloc); |
| 169281 | | 169450 | |
| 169282 | data_off += @intCast(tag_name_len + 1); | 169451 | data_off += @intCast(tag_name_len + 1); |
| | 169452 | |
| | 169453 | try cg.resetTemps(reset_index); |
| 169283 | } | 169454 | } |
| 169284 | try enum_temp.die(cg); | | |
| 169285 | | 169455 | |
| 169286 | try cg.genSetReg(ret_mcv.register_pair[0], .usize, .{ .immediate = 0 }, .{}); | 169456 | try cg.genSetReg(ret_mcv.register_pair[0], .usize, .{ .immediate = 0 }, .{}); |
| 169287 | try cg.asmOpOnly(.{ ._, .ret }); | 169457 | try cg.asmOpOnly(.{ ._, .ret }); |
| ... | @@ -169290,12 +169460,16 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { | ... | @@ -169290,12 +169460,16 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { |
| 169290 | const err_ty: Type = .fromInterned(lazy_sym.ty); | 169460 | const err_ty: Type = .fromInterned(lazy_sym.ty); |
| 169291 | wip_mir_log.debug("{f}.@errorCast:", .{err_ty.fmt(pt)}); | 169461 | wip_mir_log.debug("{f}.@errorCast:", .{err_ty.fmt(pt)}); |
| 169292 | | 169462 | |
| 169293 | const param_regs = abi.getCAbiIntParamRegs(.auto); | 169463 | const ret_reg = abi.getCAbiIntReturnRegs(.auto)[0]; |
| 169294 | const param_locks = cg.register_manager.lockRegsAssumeUnused(2, param_regs[0..2].*); | 169464 | const ret_lock = cg.register_manager.lockRegAssumeUnused(ret_reg); |
| 169295 | defer for (param_locks) |lock| cg.register_manager.unlockReg(lock); | 169465 | defer cg.register_manager.unlockReg(ret_lock); |
| | 169466 | |
| | 169467 | const param_reg = abi.getCAbiIntParamRegs(.auto)[0]; |
| | 169468 | const param_lock = cg.register_manager.lockReg(param_reg); |
| | 169469 | defer if (param_lock) |lock| cg.register_manager.unlockReg(lock); |
| 169296 | | 169470 | |
| 169297 | const ret_mcv: MCValue = .{ .register = param_regs[0] }; | 169471 | const ret_mcv: MCValue = .{ .register = ret_reg }; |
| 169298 | const err_mcv: MCValue = .{ .register = param_regs[0] }; | 169472 | const err_mcv: MCValue = .{ .register = param_reg }; |
| 169299 | var err_temp = try cg.tempInit(err_ty, err_mcv); | 169473 | var err_temp = try cg.tempInit(err_ty, err_mcv); |
| 169300 | | 169474 | |
| 169301 | const ExpectedContents = [32]Mir.Inst.Index; | 169475 | const ExpectedContents = [32]Mir.Inst.Index; |
| ... | @@ -182010,37 +182184,6 @@ fn genInlineMemset( | ... | @@ -182010,37 +182184,6 @@ fn genInlineMemset( |
| 182010 | try self.asmOpOnly(.{ .@"rep _sb", .sto }); | 182184 | try self.asmOpOnly(.{ .@"rep _sb", .sto }); |
| 182011 | } | 182185 | } |
| 182012 | | 182186 | |
| 182013 | fn genLazySymbolRef( | | |
| 182014 | self: *CodeGen, | | |
| 182015 | comptime tag: Mir.Inst.Tag, | | |
| 182016 | reg: Register, | | |
| 182017 | lazy_sym: link.File.LazySymbol, | | |
| 182018 | ) InnerError!void { | | |
| 182019 | if (self.mod.pic) { | | |
| 182020 | switch (tag) { | | |
| 182021 | .lea, .call => try self.genSetReg(reg, .usize, .{ | | |
| 182022 | .lea_lazy_sym = lazy_sym, | | |
| 182023 | }, .{}), | | |
| 182024 | .mov => try self.genSetReg(reg, .usize, .{ | | |
| 182025 | .lea_lazy_sym = lazy_sym, | | |
| 182026 | }, .{}), | | |
| 182027 | else => unreachable, | | |
| 182028 | } | | |
| 182029 | switch (tag) { | | |
| 182030 | .lea, .mov => {}, | | |
| 182031 | .call => try self.asmRegister(.{ ._, .call }, reg), | | |
| 182032 | else => unreachable, | | |
| 182033 | } | | |
| 182034 | } else switch (tag) { | | |
| 182035 | .lea, .mov => try self.asmRegisterMemory(.{ ._, tag }, reg.to64(), .{ | | |
| 182036 | .base = .{ .lazy_sym = lazy_sym }, | | |
| 182037 | .mod = .{ .rm = .{ .size = .qword } }, | | |
| 182038 | }), | | |
| 182039 | .call => try self.asmImmediate(.{ ._, .call }, .{ .lazy_sym = lazy_sym }), | | |
| 182040 | else => unreachable, | | |
| 182041 | } | | |
| 182042 | } | | |
| 182043 | | | |
| 182044 | fn airBitCast(self: *CodeGen, inst: Air.Inst.Index) !void { | 182187 | fn airBitCast(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 182045 | const pt = self.pt; | 182188 | const pt = self.pt; |
| 182046 | const zcu = pt.zcu; | 182189 | const zcu = pt.zcu; |
| ... | @@ -193662,9 +193805,11 @@ const Select = struct { | ... | @@ -193662,9 +193805,11 @@ const Select = struct { |
| 193662 | const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0y } }; | 193805 | const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0y } }; |
| 193663 | const tmp0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 1 }; | 193806 | const tmp0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 1 }; |
| 193664 | const tmp0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 1 }; | 193807 | const tmp0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 1 }; |
| | 193808 | const tmp0p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0p }, .imm = 1 }; |
| 193665 | const tmp0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 1 }; | 193809 | const tmp0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 1 }; |
| 193666 | const tmp0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 2 }; | 193810 | const tmp0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 2 }; |
| 193667 | const tmp0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 2 }; | 193811 | const tmp0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 2 }; |
| | 193812 | const tmp0p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0p }, .imm = 2 }; |
| 193668 | const tmp0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 2 }; | 193813 | const tmp0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 2 }; |
| 193669 | | 193814 | |
| 193670 | const tmp1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1l } }; | 193815 | const tmp1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1l } }; |
| ... | @@ -193680,9 +193825,11 @@ const Select = struct { | ... | @@ -193680,9 +193825,11 @@ const Select = struct { |
| 193680 | const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1y } }; | 193825 | const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1y } }; |
| 193681 | const tmp1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 1 }; | 193826 | const tmp1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 1 }; |
| 193682 | const tmp1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 1 }; | 193827 | const tmp1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 1 }; |
| | 193828 | const tmp1p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1p }, .imm = 1 }; |
| 193683 | const tmp1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 1 }; | 193829 | const tmp1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 1 }; |
| 193684 | const tmp1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 2 }; | 193830 | const tmp1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 2 }; |
| 193685 | const tmp1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 2 }; | 193831 | const tmp1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 2 }; |
| | 193832 | const tmp1p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1p }, .imm = 2 }; |
| 193686 | const tmp1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 2 }; | 193833 | const tmp1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 2 }; |
| 193687 | | 193834 | |
| 193688 | const tmp2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2l } }; | 193835 | const tmp2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2l } }; |
| ... | @@ -193698,9 +193845,11 @@ const Select = struct { | ... | @@ -193698,9 +193845,11 @@ const Select = struct { |
| 193698 | const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2y } }; | 193845 | const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2y } }; |
| 193699 | const tmp2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 1 }; | 193846 | const tmp2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 1 }; |
| 193700 | const tmp2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 1 }; | 193847 | const tmp2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 1 }; |
| | 193848 | const tmp2p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2p }, .imm = 1 }; |
| 193701 | const tmp2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 1 }; | 193849 | const tmp2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 1 }; |
| 193702 | const tmp2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 2 }; | 193850 | const tmp2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 2 }; |
| 193703 | const tmp2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 2 }; | 193851 | const tmp2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 2 }; |
| | 193852 | const tmp2p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2p }, .imm = 2 }; |
| 193704 | const tmp2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 2 }; | 193853 | const tmp2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 2 }; |
| 193705 | | 193854 | |
| 193706 | const tmp3l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3l } }; | 193855 | const tmp3l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3l } }; |
| ... | @@ -193716,9 +193865,11 @@ const Select = struct { | ... | @@ -193716,9 +193865,11 @@ const Select = struct { |
| 193716 | const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3y } }; | 193865 | const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3y } }; |
| 193717 | const tmp3w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 1 }; | 193866 | const tmp3w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 1 }; |
| 193718 | const tmp3d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 1 }; | 193867 | const tmp3d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 1 }; |
| | 193868 | const tmp3p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3p }, .imm = 1 }; |
| 193719 | const tmp3q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 1 }; | 193869 | const tmp3q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 1 }; |
| 193720 | const tmp3w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 2 }; | 193870 | const tmp3w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 2 }; |
| 193721 | const tmp3d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 2 }; | 193871 | const tmp3d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 2 }; |
| | 193872 | const tmp3p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3p }, .imm = 2 }; |
| 193722 | const tmp3q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 2 }; | 193873 | const tmp3q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 2 }; |
| 193723 | | 193874 | |
| 193724 | const tmp4l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4l } }; | 193875 | const tmp4l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4l } }; |
| ... | @@ -193734,9 +193885,11 @@ const Select = struct { | ... | @@ -193734,9 +193885,11 @@ const Select = struct { |
| 193734 | const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4y } }; | 193885 | const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4y } }; |
| 193735 | const tmp4w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 1 }; | 193886 | const tmp4w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 1 }; |
| 193736 | const tmp4d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 1 }; | 193887 | const tmp4d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 1 }; |
| | 193888 | const tmp4p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4p }, .imm = 1 }; |
| 193737 | const tmp4q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 1 }; | 193889 | const tmp4q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 1 }; |
| 193738 | const tmp4w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 2 }; | 193890 | const tmp4w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 2 }; |
| 193739 | const tmp4d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 2 }; | 193891 | const tmp4d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 2 }; |
| | 193892 | const tmp4p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4p }, .imm = 2 }; |
| 193740 | const tmp4q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 2 }; | 193893 | const tmp4q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 2 }; |
| 193741 | | 193894 | |
| 193742 | const tmp5l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5l } }; | 193895 | const tmp5l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5l } }; |
| ... | @@ -193752,9 +193905,11 @@ const Select = struct { | ... | @@ -193752,9 +193905,11 @@ const Select = struct { |
| 193752 | const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5y } }; | 193905 | const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5y } }; |
| 193753 | const tmp5w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 1 }; | 193906 | const tmp5w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 1 }; |
| 193754 | const tmp5d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 1 }; | 193907 | const tmp5d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 1 }; |
| | 193908 | const tmp5p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5p }, .imm = 1 }; |
| 193755 | const tmp5q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 1 }; | 193909 | const tmp5q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 1 }; |
| 193756 | const tmp5w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 2 }; | 193910 | const tmp5w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 2 }; |
| 193757 | const tmp5d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 2 }; | 193911 | const tmp5d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 2 }; |
| | 193912 | const tmp5p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5p }, .imm = 2 }; |
| 193758 | const tmp5q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 2 }; | 193913 | const tmp5q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 2 }; |
| 193759 | | 193914 | |
| 193760 | const tmp6l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6l } }; | 193915 | const tmp6l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6l } }; |
| ... | @@ -193770,9 +193925,11 @@ const Select = struct { | ... | @@ -193770,9 +193925,11 @@ const Select = struct { |
| 193770 | const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6y } }; | 193925 | const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6y } }; |
| 193771 | const tmp6w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 1 }; | 193926 | const tmp6w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 1 }; |
| 193772 | const tmp6d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 1 }; | 193927 | const tmp6d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 1 }; |
| | 193928 | const tmp6p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6p }, .imm = 1 }; |
| 193773 | const tmp6q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 1 }; | 193929 | const tmp6q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 1 }; |
| 193774 | const tmp6w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 2 }; | 193930 | const tmp6w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 2 }; |
| 193775 | const tmp6d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 2 }; | 193931 | const tmp6d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 2 }; |
| | 193932 | const tmp6p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6p }, .imm = 2 }; |
| 193776 | const tmp6q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 2 }; | 193933 | const tmp6q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 2 }; |
| 193777 | | 193934 | |
| 193778 | const tmp7l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7l } }; | 193935 | const tmp7l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7l } }; |
| ... | @@ -193788,9 +193945,11 @@ const Select = struct { | ... | @@ -193788,9 +193945,11 @@ const Select = struct { |
| 193788 | const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7y } }; | 193945 | const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7y } }; |
| 193789 | const tmp7w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 1 }; | 193946 | const tmp7w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 1 }; |
| 193790 | const tmp7d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 1 }; | 193947 | const tmp7d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 1 }; |
| | 193948 | const tmp7p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7p }, .imm = 1 }; |
| 193791 | const tmp7q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 1 }; | 193949 | const tmp7q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 1 }; |
| 193792 | const tmp7w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 2 }; | 193950 | const tmp7w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 2 }; |
| 193793 | const tmp7d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 2 }; | 193951 | const tmp7d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 2 }; |
| | 193952 | const tmp7p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7p }, .imm = 2 }; |
| 193794 | const tmp7q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 2 }; | 193953 | const tmp7q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 2 }; |
| 193795 | | 193954 | |
| 193796 | const tmp8l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8l } }; | 193955 | const tmp8l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8l } }; |
| ... | @@ -193806,9 +193965,11 @@ const Select = struct { | ... | @@ -193806,9 +193965,11 @@ const Select = struct { |
| 193806 | const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8y } }; | 193965 | const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8y } }; |
| 193807 | const tmp8w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 1 }; | 193966 | const tmp8w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 1 }; |
| 193808 | const tmp8d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 1 }; | 193967 | const tmp8d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 1 }; |
| | 193968 | const tmp8p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8p }, .imm = 1 }; |
| 193809 | const tmp8q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 1 }; | 193969 | const tmp8q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 1 }; |
| 193810 | const tmp8w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 2 }; | 193970 | const tmp8w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 2 }; |
| 193811 | const tmp8d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 2 }; | 193971 | const tmp8d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 2 }; |
| | 193972 | const tmp8p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8p }, .imm = 2 }; |
| 193812 | const tmp8q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 2 }; | 193973 | const tmp8q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 2 }; |
| 193813 | | 193974 | |
| 193814 | const tmp9l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9l } }; | 193975 | const tmp9l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9l } }; |
| ... | @@ -193824,9 +193985,11 @@ const Select = struct { | ... | @@ -193824,9 +193985,11 @@ const Select = struct { |
| 193824 | const tmp9y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9y } }; | 193985 | const tmp9y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9y } }; |
| 193825 | const tmp9w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 1 }; | 193986 | const tmp9w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 1 }; |
| 193826 | const tmp9d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 1 }; | 193987 | const tmp9d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 1 }; |
| | 193988 | const tmp9p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9p }, .imm = 1 }; |
| 193827 | const tmp9q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 1 }; | 193989 | const tmp9q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 1 }; |
| 193828 | const tmp9w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 2 }; | 193990 | const tmp9w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 2 }; |
| 193829 | const tmp9d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 2 }; | 193991 | const tmp9d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 2 }; |
| | 193992 | const tmp9p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9p }, .imm = 2 }; |
| 193830 | const tmp9q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 2 }; | 193993 | const tmp9q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 2 }; |
| 193831 | | 193994 | |
| 193832 | const tmp10l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10l } }; | 193995 | const tmp10l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10l } }; |
| ... | @@ -193842,9 +194005,11 @@ const Select = struct { | ... | @@ -193842,9 +194005,11 @@ const Select = struct { |
| 193842 | const tmp10y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10y } }; | 194005 | const tmp10y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10y } }; |
| 193843 | const tmp10w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 1 }; | 194006 | const tmp10w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 1 }; |
| 193844 | const tmp10d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 1 }; | 194007 | const tmp10d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 1 }; |
| | 194008 | const tmp10p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10p }, .imm = 1 }; |
| 193845 | const tmp10q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 1 }; | 194009 | const tmp10q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 1 }; |
| 193846 | const tmp10w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 2 }; | 194010 | const tmp10w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 2 }; |
| 193847 | const tmp10d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 2 }; | 194011 | const tmp10d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 2 }; |
| | 194012 | const tmp10p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10p }, .imm = 2 }; |
| 193848 | const tmp10q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 2 }; | 194013 | const tmp10q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 2 }; |
| 193849 | | 194014 | |
| 193850 | const dst0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0l } }; | 194015 | const dst0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0l } }; |
| ... | @@ -193860,9 +194025,11 @@ const Select = struct { | ... | @@ -193860,9 +194025,11 @@ const Select = struct { |
| 193860 | const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0y } }; | 194025 | const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0y } }; |
| 193861 | const dst0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 1 }; | 194026 | const dst0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 1 }; |
| 193862 | const dst0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 1 }; | 194027 | const dst0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 1 }; |
| | 194028 | const dst0p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0p }, .imm = 1 }; |
| 193863 | const dst0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 1 }; | 194029 | const dst0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 1 }; |
| 193864 | const dst0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 2 }; | 194030 | const dst0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 2 }; |
| 193865 | const dst0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 2 }; | 194031 | const dst0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 2 }; |
| | 194032 | const dst0p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0p }, .imm = 2 }; |
| 193866 | const dst0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 2 }; | 194033 | const dst0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 2 }; |
| 193867 | | 194034 | |
| 193868 | const dst1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1l } }; | 194035 | const dst1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1l } }; |
| ... | @@ -193878,9 +194045,11 @@ const Select = struct { | ... | @@ -193878,9 +194045,11 @@ const Select = struct { |
| 193878 | const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1y } }; | 194045 | const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1y } }; |
| 193879 | const dst1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 1 }; | 194046 | const dst1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 1 }; |
| 193880 | const dst1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 1 }; | 194047 | const dst1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 1 }; |
| | 194048 | const dst1p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1p }, .imm = 1 }; |
| 193881 | const dst1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 1 }; | 194049 | const dst1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 1 }; |
| 193882 | const dst1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 2 }; | 194050 | const dst1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 2 }; |
| 193883 | const dst1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 2 }; | 194051 | const dst1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 2 }; |
| | 194052 | const dst1p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1p }, .imm = 2 }; |
| 193884 | const dst1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 2 }; | 194053 | const dst1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 2 }; |
| 193885 | | 194054 | |
| 193886 | const src0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0l } }; | 194055 | const src0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0l } }; |
| ... | @@ -193896,9 +194065,11 @@ const Select = struct { | ... | @@ -193896,9 +194065,11 @@ const Select = struct { |
| 193896 | const src0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0y } }; | 194065 | const src0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0y } }; |
| 193897 | const src0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 1 }; | 194066 | const src0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 1 }; |
| 193898 | const src0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 1 }; | 194067 | const src0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 1 }; |
| | 194068 | const src0p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0p }, .imm = 1 }; |
| 193899 | const src0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 1 }; | 194069 | const src0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 1 }; |
| 193900 | const src0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 2 }; | 194070 | const src0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 2 }; |
| 193901 | const src0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 2 }; | 194071 | const src0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 2 }; |
| | 194072 | const src0p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0p }, .imm = 2 }; |
| 193902 | const src0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 2 }; | 194073 | const src0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 2 }; |
| 193903 | | 194074 | |
| 193904 | const src1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1l } }; | 194075 | const src1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1l } }; |
| ... | @@ -193914,9 +194085,11 @@ const Select = struct { | ... | @@ -193914,9 +194085,11 @@ const Select = struct { |
| 193914 | const src1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1y } }; | 194085 | const src1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1y } }; |
| 193915 | const src1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 1 }; | 194086 | const src1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 1 }; |
| 193916 | const src1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 1 }; | 194087 | const src1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 1 }; |
| | 194088 | const src1p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1p }, .imm = 1 }; |
| 193917 | const src1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 1 }; | 194089 | const src1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 1 }; |
| 193918 | const src1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 2 }; | 194090 | const src1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 2 }; |
| 193919 | const src1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 2 }; | 194091 | const src1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 2 }; |
| | 194092 | const src1p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1p }, .imm = 2 }; |
| 193920 | const src1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 2 }; | 194093 | const src1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 2 }; |
| 193921 | | 194094 | |
| 193922 | const src2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2l } }; | 194095 | const src2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2l } }; |
| ... | @@ -193932,9 +194105,11 @@ const Select = struct { | ... | @@ -193932,9 +194105,11 @@ const Select = struct { |
| 193932 | const src2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2y } }; | 194105 | const src2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2y } }; |
| 193933 | const src2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 1 }; | 194106 | const src2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 1 }; |
| 193934 | const src2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 1 }; | 194107 | const src2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 1 }; |
| | 194108 | const src2p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2p }, .imm = 1 }; |
| 193935 | const src2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 1 }; | 194109 | const src2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 1 }; |
| 193936 | const src2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 2 }; | 194110 | const src2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 2 }; |
| 193937 | const src2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 2 }; | 194111 | const src2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 2 }; |
| | 194112 | const src2p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2p }, .imm = 2 }; |
| 193938 | const src2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 2 }; | 194113 | const src2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 2 }; |
| 193939 | | 194114 | |
| 193940 | fn si(imm: i32) Select.Operand { | 194115 | fn si(imm: i32) Select.Operand { |