| ... | @@ -166722,33 +166722,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166722,33 +166722,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166722 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166722 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166723 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, | 166723 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, |
| 166724 | } }, | 166724 | } }, |
| 166725 | }, .{ | | |
| 166726 | .required_features = .{ .avx, null, null, null }, | | |
| 166727 | .src_constraints = .{ .any_int, .any, .any }, | | |
| 166728 | .patterns = &.{ | | |
| 166729 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 166730 | }, | | |
| 166731 | .call_frame = .{ .alignment = .@"32" }, | | |
| 166732 | .extra_temps = .{ | | |
| 166733 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } } }, | | |
| 166734 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, | | |
| 166735 | .unused, | | |
| 166736 | .unused, | | |
| 166737 | .unused, | | |
| 166738 | .unused, | | |
| 166739 | .unused, | | |
| 166740 | .unused, | | |
| 166741 | .unused, | | |
| 166742 | .unused, | | |
| 166743 | .unused, | | |
| 166744 | }, | | |
| 166745 | .dst_temps = .{ .{ .cc = .nz }, .unused }, | | |
| 166746 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, | | |
| 166747 | .each = .{ .once = &.{ | | |
| 166748 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | | |
| 166749 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | | |
| 166750 | .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ }, | | |
| 166751 | } }, | | |
| 166752 | }, .{ | 166725 | }, .{ |
| 166753 | .required_features = .{ .sse, null, null, null }, | 166726 | .required_features = .{ .sse, null, null, null }, |
| 166754 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | 166727 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| ... | @@ -166775,33 +166748,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166775,33 +166748,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166775 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166748 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166776 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, | 166749 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, |
| 166777 | } }, | 166750 | } }, |
| 166778 | }, .{ | | |
| 166779 | .required_features = .{ .sse, null, null, null }, | | |
| 166780 | .src_constraints = .{ .any_int, .any, .any }, | | |
| 166781 | .patterns = &.{ | | |
| 166782 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 166783 | }, | | |
| 166784 | .call_frame = .{ .alignment = .@"16" }, | | |
| 166785 | .extra_temps = .{ | | |
| 166786 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } } }, | | |
| 166787 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, | | |
| 166788 | .unused, | | |
| 166789 | .unused, | | |
| 166790 | .unused, | | |
| 166791 | .unused, | | |
| 166792 | .unused, | | |
| 166793 | .unused, | | |
| 166794 | .unused, | | |
| 166795 | .unused, | | |
| 166796 | .unused, | | |
| 166797 | }, | | |
| 166798 | .dst_temps = .{ .{ .cc = .nz }, .unused }, | | |
| 166799 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, | | |
| 166800 | .each = .{ .once = &.{ | | |
| 166801 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | | |
| 166802 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | | |
| 166803 | .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ }, | | |
| 166804 | } }, | | |
| 166805 | }, .{ | 166751 | }, .{ |
| 166806 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | 166752 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 166807 | .patterns = &.{ | 166753 | .patterns = &.{ |
| ... | @@ -166827,32 +166773,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166827,32 +166773,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166827 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166773 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166828 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, | 166774 | .{ ._, ._, .@"test", .src0p, .src0p, ._, ._ }, |
| 166829 | } }, | 166775 | } }, |
| 166830 | }, .{ | | |
| 166831 | .src_constraints = .{ .any_int, .any, .any }, | | |
| 166832 | .patterns = &.{ | | |
| 166833 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 166834 | }, | | |
| 166835 | .call_frame = .{ .alignment = .@"8" }, | | |
| 166836 | .extra_temps = .{ | | |
| 166837 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } } }, | | |
| 166838 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, | | |
| 166839 | .unused, | | |
| 166840 | .unused, | | |
| 166841 | .unused, | | |
| 166842 | .unused, | | |
| 166843 | .unused, | | |
| 166844 | .unused, | | |
| 166845 | .unused, | | |
| 166846 | .unused, | | |
| 166847 | .unused, | | |
| 166848 | }, | | |
| 166849 | .dst_temps = .{ .{ .cc = .nz }, .unused }, | | |
| 166850 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, | | |
| 166851 | .each = .{ .once = &.{ | | |
| 166852 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | | |
| 166853 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, | | |
| 166854 | .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ }, | | |
| 166855 | } }, | | |
| 166856 | } }) catch |err| switch (err) { | 166776 | } }) catch |err| switch (err) { |
| 166857 | error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{ | 166777 | error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{ |
| 166858 | @tagName(air_tag), | 166778 | @tagName(air_tag), |
| ... | @@ -166892,32 +166812,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166892,32 +166812,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166892 | .each = .{ .once = &.{ | 166812 | .each = .{ .once = &.{ |
| 166893 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166813 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166894 | } }, | 166814 | } }, |
| 166895 | }, .{ | | |
| 166896 | .required_features = .{ .avx, null, null, null }, | | |
| 166897 | .src_constraints = .{ .any_int, .any, .any }, | | |
| 166898 | .patterns = &.{ | | |
| 166899 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 166900 | }, | | |
| 166901 | .call_frame = .{ .alignment = .@"32" }, | | |
| 166902 | .extra_temps = .{ | | |
| 166903 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, | | |
| 166904 | .unused, | | |
| 166905 | .unused, | | |
| 166906 | .unused, | | |
| 166907 | .unused, | | |
| 166908 | .unused, | | |
| 166909 | .unused, | | |
| 166910 | .unused, | | |
| 166911 | .unused, | | |
| 166912 | .unused, | | |
| 166913 | .unused, | | |
| 166914 | }, | | |
| 166915 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .unused }, | | |
| 166916 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, | | |
| 166917 | .each = .{ .once = &.{ | | |
| 166918 | .{ ._, ._, .lea, .dst0p0, .mem(.src0), ._, ._ }, | | |
| 166919 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | | |
| 166920 | } }, | | |
| 166921 | }, .{ | 166815 | }, .{ |
| 166922 | .required_features = .{ .sse, null, null, null }, | 166816 | .required_features = .{ .sse, null, null, null }, |
| 166923 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | 166817 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| ... | @@ -166943,32 +166837,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166943,32 +166837,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166943 | .each = .{ .once = &.{ | 166837 | .each = .{ .once = &.{ |
| 166944 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166838 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166945 | } }, | 166839 | } }, |
| 166946 | }, .{ | | |
| 166947 | .required_features = .{ .sse, null, null, null }, | | |
| 166948 | .src_constraints = .{ .any_int, .any, .any }, | | |
| 166949 | .patterns = &.{ | | |
| 166950 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 166951 | }, | | |
| 166952 | .call_frame = .{ .alignment = .@"16" }, | | |
| 166953 | .extra_temps = .{ | | |
| 166954 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, | | |
| 166955 | .unused, | | |
| 166956 | .unused, | | |
| 166957 | .unused, | | |
| 166958 | .unused, | | |
| 166959 | .unused, | | |
| 166960 | .unused, | | |
| 166961 | .unused, | | |
| 166962 | .unused, | | |
| 166963 | .unused, | | |
| 166964 | .unused, | | |
| 166965 | }, | | |
| 166966 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .unused }, | | |
| 166967 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, | | |
| 166968 | .each = .{ .once = &.{ | | |
| 166969 | .{ ._, ._, .lea, .dst0p0, .mem(.src0), ._, ._ }, | | |
| 166970 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | | |
| 166971 | } }, | | |
| 166972 | }, .{ | 166840 | }, .{ |
| 166973 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, | 166841 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 166974 | .patterns = &.{ | 166842 | .patterns = &.{ |
| ... | @@ -166993,32 +166861,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -166993,32 +166861,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 166993 | .each = .{ .once = &.{ | 166861 | .each = .{ .once = &.{ |
| 166994 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | 166862 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 166995 | } }, | 166863 | } }, |
| 166996 | }, .{ | | |
| 166997 | .required_features = .{ .sse, null, null, null }, | | |
| 166998 | .src_constraints = .{ .any_int, .any, .any }, | | |
| 166999 | .patterns = &.{ | | |
| 167000 | .{ .src = .{ .to_mem, .none, .none } }, | | |
| 167001 | }, | | |
| 167002 | .call_frame = .{ .alignment = .@"8" }, | | |
| 167003 | .extra_temps = .{ | | |
| 167004 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .code, .ref = .src0 } } }, | | |
| 167005 | .unused, | | |
| 167006 | .unused, | | |
| 167007 | .unused, | | |
| 167008 | .unused, | | |
| 167009 | .unused, | | |
| 167010 | .unused, | | |
| 167011 | .unused, | | |
| 167012 | .unused, | | |
| 167013 | .unused, | | |
| 167014 | .unused, | | |
| 167015 | }, | | |
| 167016 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .unused }, | | |
| 167017 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, | | |
| 167018 | .each = .{ .once = &.{ | | |
| 167019 | .{ ._, ._, .lea, .dst0p0, .mem(.src0), ._, ._ }, | | |
| 167020 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, | | |
| 167021 | } }, | | |
| 167022 | } }) catch |err| switch (err) { | 166864 | } }) catch |err| switch (err) { |
| 167023 | error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{ | 166865 | error.SelectFailed => return cg.fail("failed to select {s} {f} {f}", .{ |
| 167024 | @tagName(air_tag), | 166866 | @tagName(air_tag), |
| ... | @@ -167027,7 +166869,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -167027,7 +166869,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 167027 | }), | 166869 | }), |
| 167028 | else => |e| return e, | 166870 | else => |e| return e, |
| 167029 | }; | 166871 | }; |
| 167030 | if (res[0].tracking(cg).short != .register_pair) try ops[0].toPair(&res[0], cg); | 166872 | try ops[0].toPair(&res[0], cg); |
| 167031 | try res[0].finish(inst, &.{un_op}, &ops, cg); | 166873 | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| 167032 | }, | 166874 | }, |
| 167033 | .error_name => |air_tag| { | 166875 | .error_name => |air_tag| { |
| ... | @@ -169398,43 +169240,32 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { | ... | @@ -169398,43 +169240,32 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { |
| 169398 | const enum_ty: Type = .fromInterned(lazy_sym.ty); | 169240 | const enum_ty: Type = .fromInterned(lazy_sym.ty); |
| 169399 | wip_mir_log.debug("{f}.@tagName:", .{enum_ty.fmt(pt)}); | 169241 | wip_mir_log.debug("{f}.@tagName:", .{enum_ty.fmt(pt)}); |
| 169400 | | 169242 | |
| 169401 | const ret_regs = abi.getCAbiIntReturnRegs(.auto)[0..2].*; | 169243 | const param_regs = abi.getCAbiIntParamRegs(.auto); |
| 169402 | const ret_locks = cg.register_manager.lockRegsAssumeUnused(2, ret_regs); | 169244 | const param_locks = cg.register_manager.lockRegsAssumeUnused(2, param_regs[0..2].*); |
| 169403 | defer for (ret_locks) |lock| cg.register_manager.unlockReg(lock); | 169245 | defer for (param_locks) |lock| cg.register_manager.unlockReg(lock); |
| 169404 | | | |
| 169405 | const param_reg = abi.getCAbiIntParamRegs(.auto)[0]; | | |
| 169406 | const param_lock = cg.register_manager.lockReg(param_reg); | | |
| 169407 | defer if (param_lock) |lock| cg.register_manager.unlockReg(lock); | | |
| 169408 | | 169246 | |
| 169409 | const ret_mcv: MCValue = .{ .register_pair = ret_regs }; | 169247 | const ret_mcv: MCValue = .{ .register_pair = param_regs[0..2].* }; |
| | 169248 | var enum_temp = try cg.tempInit(enum_ty, .{ .register = param_regs[0] }); |
| 169410 | | 169249 | |
| 169411 | const data_reg = try cg.register_manager.allocReg(null, abi.RegisterClass.gp); | 169250 | const data_reg = try cg.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 169412 | const data_lock = cg.register_manager.lockRegAssumeUnused(data_reg); | 169251 | const data_lock = cg.register_manager.lockRegAssumeUnused(data_reg); |
| 169413 | defer cg.register_manager.unlockReg(data_lock); | 169252 | defer cg.register_manager.unlockReg(data_lock); |
| 169414 | try cg.asmRegisterMemory(.{ ._, .lea }, data_reg.to64(), .{ | 169253 | try cg.genLazySymbolRef(.lea, data_reg, .{ .kind = .const_data, .ty = lazy_sym.ty }); |
| 169415 | .base = .{ .lazy_sym = .{ .kind = .const_data, .ty = lazy_sym.ty } }, | | |
| 169416 | }); | | |
| 169417 | | 169254 | |
| 169418 | var data_off: i32 = 0; | 169255 | var data_off: i32 = 0; |
| 169419 | const reset_index = cg.next_temp_index; | 169256 | const reset_index = cg.next_temp_index; |
| 169420 | const tag_names = ip.loadEnumType(lazy_sym.ty).names; | 169257 | const tag_names = ip.loadEnumType(lazy_sym.ty).names; |
| 169421 | for (0..tag_names.len) |tag_index| { | 169258 | for (0..tag_names.len) |tag_index| { |
| 169422 | var enum_temp = try cg.tempInit(enum_ty, if (enum_ty.abiSize(zcu) <= @as(u4, switch (cg.target.cpu.arch) { | | |
| 169423 | else => unreachable, | | |
| 169424 | .x86 => 4, | | |
| 169425 | .x86_64 => 8, | | |
| 169426 | })) .{ .register = param_reg } else .{ .indirect = .{ .reg = param_reg } }); | | |
| 169427 | | | |
| 169428 | const tag_name_len = tag_names.get(ip)[tag_index].length(ip); | 169259 | const tag_name_len = tag_names.get(ip)[tag_index].length(ip); |
| 169429 | var tag_temp = try cg.tempFromValue(try pt.enumValueFieldIndex(enum_ty, @intCast(tag_index))); | 169260 | var tag_temp = try cg.tempFromValue(try pt.enumValueFieldIndex(enum_ty, @intCast(tag_index))); |
| 169430 | const cc_temp = enum_temp.cmpInts(.neq, &tag_temp, cg) catch |err| switch (err) { | 169261 | const cc_temp = enum_temp.cmpInts(.neq, &tag_temp, cg) catch |err| switch (err) { |
| 169431 | error.SelectFailed => unreachable, | 169262 | error.SelectFailed => unreachable, |
| 169432 | else => |e| return e, | 169263 | else => |e| return e, |
| 169433 | }; | 169264 | }; |
| 169434 | try enum_temp.die(cg); | | |
| 169435 | try tag_temp.die(cg); | 169265 | try tag_temp.die(cg); |
| 169436 | const skip_reloc = try cg.asmJccReloc(cc_temp.tracking(cg).short.eflags, undefined); | 169266 | const skip_reloc = try cg.asmJccReloc(cc_temp.tracking(cg).short.eflags, undefined); |
| 169437 | try cc_temp.die(cg); | 169267 | try cc_temp.die(cg); |
| | 169268 | try cg.resetTemps(reset_index); |
| 169438 | | 169269 | |
| 169439 | try cg.genSetReg( | 169270 | try cg.genSetReg( |
| 169440 | ret_mcv.register_pair[0], | 169271 | ret_mcv.register_pair[0], |
| ... | @@ -169448,9 +169279,8 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { | ... | @@ -169448,9 +169279,8 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { |
| 169448 | cg.performReloc(skip_reloc); | 169279 | cg.performReloc(skip_reloc); |
| 169449 | | 169280 | |
| 169450 | data_off += @intCast(tag_name_len + 1); | 169281 | data_off += @intCast(tag_name_len + 1); |
| 169451 | | | |
| 169452 | try cg.resetTemps(reset_index); | | |
| 169453 | } | 169282 | } |
| | 169283 | try enum_temp.die(cg); |
| 169454 | | 169284 | |
| 169455 | try cg.genSetReg(ret_mcv.register_pair[0], .usize, .{ .immediate = 0 }, .{}); | 169285 | try cg.genSetReg(ret_mcv.register_pair[0], .usize, .{ .immediate = 0 }, .{}); |
| 169456 | try cg.asmOpOnly(.{ ._, .ret }); | 169286 | try cg.asmOpOnly(.{ ._, .ret }); |
| ... | @@ -169459,16 +169289,12 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { | ... | @@ -169459,16 +169289,12 @@ fn genLazy(cg: *CodeGen, lazy_sym: link.File.LazySymbol) InnerError!void { |
| 169459 | const err_ty: Type = .fromInterned(lazy_sym.ty); | 169289 | const err_ty: Type = .fromInterned(lazy_sym.ty); |
| 169460 | wip_mir_log.debug("{f}.@errorCast:", .{err_ty.fmt(pt)}); | 169290 | wip_mir_log.debug("{f}.@errorCast:", .{err_ty.fmt(pt)}); |
| 169461 | | 169291 | |
| 169462 | const ret_reg = abi.getCAbiIntReturnRegs(.auto)[0]; | 169292 | const param_regs = abi.getCAbiIntParamRegs(.auto); |
| 169463 | const ret_lock = cg.register_manager.lockRegAssumeUnused(ret_reg); | 169293 | const param_locks = cg.register_manager.lockRegsAssumeUnused(2, param_regs[0..2].*); |
| 169464 | defer cg.register_manager.unlockReg(ret_lock); | 169294 | defer for (param_locks) |lock| cg.register_manager.unlockReg(lock); |
| 169465 | | | |
| 169466 | const param_reg = abi.getCAbiIntParamRegs(.auto)[0]; | | |
| 169467 | const param_lock = cg.register_manager.lockReg(param_reg); | | |
| 169468 | defer if (param_lock) |lock| cg.register_manager.unlockReg(lock); | | |
| 169469 | | 169295 | |
| 169470 | const ret_mcv: MCValue = .{ .register = ret_reg }; | 169296 | const ret_mcv: MCValue = .{ .register = param_regs[0] }; |
| 169471 | const err_mcv: MCValue = .{ .register = param_reg }; | 169297 | const err_mcv: MCValue = .{ .register = param_regs[0] }; |
| 169472 | var err_temp = try cg.tempInit(err_ty, err_mcv); | 169298 | var err_temp = try cg.tempInit(err_ty, err_mcv); |
| 169473 | | 169299 | |
| 169474 | const ExpectedContents = [32]Mir.Inst.Index; | 169300 | const ExpectedContents = [32]Mir.Inst.Index; |
| ... | @@ -182183,6 +182009,37 @@ fn genInlineMemset( | ... | @@ -182183,6 +182009,37 @@ fn genInlineMemset( |
| 182183 | try self.asmOpOnly(.{ .@"rep _sb", .sto }); | 182009 | try self.asmOpOnly(.{ .@"rep _sb", .sto }); |
| 182184 | } | 182010 | } |
| 182185 | | 182011 | |
| | 182012 | fn genLazySymbolRef( |
| | 182013 | self: *CodeGen, |
| | 182014 | comptime tag: Mir.Inst.Tag, |
| | 182015 | reg: Register, |
| | 182016 | lazy_sym: link.File.LazySymbol, |
| | 182017 | ) InnerError!void { |
| | 182018 | if (self.mod.pic) { |
| | 182019 | switch (tag) { |
| | 182020 | .lea, .call => try self.genSetReg(reg, .usize, .{ |
| | 182021 | .lea_lazy_sym = lazy_sym, |
| | 182022 | }, .{}), |
| | 182023 | .mov => try self.genSetReg(reg, .usize, .{ |
| | 182024 | .lea_lazy_sym = lazy_sym, |
| | 182025 | }, .{}), |
| | 182026 | else => unreachable, |
| | 182027 | } |
| | 182028 | switch (tag) { |
| | 182029 | .lea, .mov => {}, |
| | 182030 | .call => try self.asmRegister(.{ ._, .call }, reg), |
| | 182031 | else => unreachable, |
| | 182032 | } |
| | 182033 | } else switch (tag) { |
| | 182034 | .lea, .mov => try self.asmRegisterMemory(.{ ._, tag }, reg.to64(), .{ |
| | 182035 | .base = .{ .lazy_sym = lazy_sym }, |
| | 182036 | .mod = .{ .rm = .{ .size = .qword } }, |
| | 182037 | }), |
| | 182038 | .call => try self.asmImmediate(.{ ._, .call }, .{ .lazy_sym = lazy_sym }), |
| | 182039 | else => unreachable, |
| | 182040 | } |
| | 182041 | } |
| | 182042 | |
| 182186 | fn airBitCast(self: *CodeGen, inst: Air.Inst.Index) !void { | 182043 | fn airBitCast(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 182187 | const pt = self.pt; | 182044 | const pt = self.pt; |
| 182188 | const zcu = pt.zcu; | 182045 | const zcu = pt.zcu; |
| ... | @@ -193794,11 +193651,9 @@ const Select = struct { | ... | @@ -193794,11 +193651,9 @@ const Select = struct { |
| 193794 | const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0y } }; | 193651 | const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0y } }; |
| 193795 | const tmp0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 1 }; | 193652 | const tmp0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 1 }; |
| 193796 | const tmp0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 1 }; | 193653 | const tmp0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 1 }; |
| 193797 | const tmp0p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0p }, .imm = 1 }; | | |
| 193798 | const tmp0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 1 }; | 193654 | const tmp0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 1 }; |
| 193799 | const tmp0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 2 }; | 193655 | const tmp0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 2 }; |
| 193800 | const tmp0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 2 }; | 193656 | const tmp0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 2 }; |
| 193801 | const tmp0p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0p }, .imm = 2 }; | | |
| 193802 | const tmp0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 2 }; | 193657 | const tmp0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 2 }; |
| 193803 | | 193658 | |
| 193804 | const tmp1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1l } }; | 193659 | const tmp1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1l } }; |
| ... | @@ -193814,11 +193669,9 @@ const Select = struct { | ... | @@ -193814,11 +193669,9 @@ const Select = struct { |
| 193814 | const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1y } }; | 193669 | const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1y } }; |
| 193815 | const tmp1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 1 }; | 193670 | const tmp1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 1 }; |
| 193816 | const tmp1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 1 }; | 193671 | const tmp1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 1 }; |
| 193817 | const tmp1p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1p }, .imm = 1 }; | | |
| 193818 | const tmp1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 1 }; | 193672 | const tmp1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 1 }; |
| 193819 | const tmp1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 2 }; | 193673 | const tmp1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 2 }; |
| 193820 | const tmp1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 2 }; | 193674 | const tmp1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 2 }; |
| 193821 | const tmp1p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1p }, .imm = 2 }; | | |
| 193822 | const tmp1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 2 }; | 193675 | const tmp1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 2 }; |
| 193823 | | 193676 | |
| 193824 | const tmp2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2l } }; | 193677 | const tmp2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2l } }; |
| ... | @@ -193834,11 +193687,9 @@ const Select = struct { | ... | @@ -193834,11 +193687,9 @@ const Select = struct { |
| 193834 | const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2y } }; | 193687 | const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2y } }; |
| 193835 | const tmp2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 1 }; | 193688 | const tmp2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 1 }; |
| 193836 | const tmp2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 1 }; | 193689 | const tmp2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 1 }; |
| 193837 | const tmp2p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2p }, .imm = 1 }; | | |
| 193838 | const tmp2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 1 }; | 193690 | const tmp2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 1 }; |
| 193839 | const tmp2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 2 }; | 193691 | const tmp2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 2 }; |
| 193840 | const tmp2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 2 }; | 193692 | const tmp2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 2 }; |
| 193841 | const tmp2p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2p }, .imm = 2 }; | | |
| 193842 | const tmp2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 2 }; | 193693 | const tmp2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 2 }; |
| 193843 | | 193694 | |
| 193844 | const tmp3l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3l } }; | 193695 | const tmp3l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3l } }; |
| ... | @@ -193854,11 +193705,9 @@ const Select = struct { | ... | @@ -193854,11 +193705,9 @@ const Select = struct { |
| 193854 | const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3y } }; | 193705 | const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3y } }; |
| 193855 | const tmp3w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 1 }; | 193706 | const tmp3w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 1 }; |
| 193856 | const tmp3d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 1 }; | 193707 | const tmp3d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 1 }; |
| 193857 | const tmp3p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3p }, .imm = 1 }; | | |
| 193858 | const tmp3q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 1 }; | 193708 | const tmp3q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 1 }; |
| 193859 | const tmp3w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 2 }; | 193709 | const tmp3w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 2 }; |
| 193860 | const tmp3d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 2 }; | 193710 | const tmp3d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 2 }; |
| 193861 | const tmp3p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3p }, .imm = 2 }; | | |
| 193862 | const tmp3q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 2 }; | 193711 | const tmp3q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 2 }; |
| 193863 | | 193712 | |
| 193864 | const tmp4l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4l } }; | 193713 | const tmp4l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4l } }; |
| ... | @@ -193874,11 +193723,9 @@ const Select = struct { | ... | @@ -193874,11 +193723,9 @@ const Select = struct { |
| 193874 | const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4y } }; | 193723 | const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4y } }; |
| 193875 | const tmp4w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 1 }; | 193724 | const tmp4w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 1 }; |
| 193876 | const tmp4d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 1 }; | 193725 | const tmp4d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 1 }; |
| 193877 | const tmp4p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4p }, .imm = 1 }; | | |
| 193878 | const tmp4q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 1 }; | 193726 | const tmp4q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 1 }; |
| 193879 | const tmp4w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 2 }; | 193727 | const tmp4w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 2 }; |
| 193880 | const tmp4d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 2 }; | 193728 | const tmp4d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 2 }; |
| 193881 | const tmp4p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4p }, .imm = 2 }; | | |
| 193882 | const tmp4q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 2 }; | 193729 | const tmp4q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 2 }; |
| 193883 | | 193730 | |
| 193884 | const tmp5l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5l } }; | 193731 | const tmp5l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5l } }; |
| ... | @@ -193894,11 +193741,9 @@ const Select = struct { | ... | @@ -193894,11 +193741,9 @@ const Select = struct { |
| 193894 | const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5y } }; | 193741 | const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5y } }; |
| 193895 | const tmp5w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 1 }; | 193742 | const tmp5w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 1 }; |
| 193896 | const tmp5d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 1 }; | 193743 | const tmp5d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 1 }; |
| 193897 | const tmp5p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5p }, .imm = 1 }; | | |
| 193898 | const tmp5q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 1 }; | 193744 | const tmp5q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 1 }; |
| 193899 | const tmp5w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 2 }; | 193745 | const tmp5w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 2 }; |
| 193900 | const tmp5d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 2 }; | 193746 | const tmp5d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 2 }; |
| 193901 | const tmp5p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5p }, .imm = 2 }; | | |
| 193902 | const tmp5q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 2 }; | 193747 | const tmp5q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 2 }; |
| 193903 | | 193748 | |
| 193904 | const tmp6l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6l } }; | 193749 | const tmp6l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6l } }; |
| ... | @@ -193914,11 +193759,9 @@ const Select = struct { | ... | @@ -193914,11 +193759,9 @@ const Select = struct { |
| 193914 | const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6y } }; | 193759 | const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6y } }; |
| 193915 | const tmp6w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 1 }; | 193760 | const tmp6w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 1 }; |
| 193916 | const tmp6d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 1 }; | 193761 | const tmp6d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 1 }; |
| 193917 | const tmp6p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6p }, .imm = 1 }; | | |
| 193918 | const tmp6q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 1 }; | 193762 | const tmp6q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 1 }; |
| 193919 | const tmp6w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 2 }; | 193763 | const tmp6w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 2 }; |
| 193920 | const tmp6d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 2 }; | 193764 | const tmp6d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 2 }; |
| 193921 | const tmp6p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6p }, .imm = 2 }; | | |
| 193922 | const tmp6q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 2 }; | 193765 | const tmp6q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 2 }; |
| 193923 | | 193766 | |
| 193924 | const tmp7l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7l } }; | 193767 | const tmp7l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7l } }; |
| ... | @@ -193934,11 +193777,9 @@ const Select = struct { | ... | @@ -193934,11 +193777,9 @@ const Select = struct { |
| 193934 | const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7y } }; | 193777 | const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7y } }; |
| 193935 | const tmp7w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 1 }; | 193778 | const tmp7w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 1 }; |
| 193936 | const tmp7d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 1 }; | 193779 | const tmp7d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 1 }; |
| 193937 | const tmp7p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7p }, .imm = 1 }; | | |
| 193938 | const tmp7q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 1 }; | 193780 | const tmp7q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 1 }; |
| 193939 | const tmp7w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 2 }; | 193781 | const tmp7w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 2 }; |
| 193940 | const tmp7d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 2 }; | 193782 | const tmp7d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 2 }; |
| 193941 | const tmp7p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7p }, .imm = 2 }; | | |
| 193942 | const tmp7q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 2 }; | 193783 | const tmp7q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 2 }; |
| 193943 | | 193784 | |
| 193944 | const tmp8l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8l } }; | 193785 | const tmp8l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8l } }; |
| ... | @@ -193954,11 +193795,9 @@ const Select = struct { | ... | @@ -193954,11 +193795,9 @@ const Select = struct { |
| 193954 | const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8y } }; | 193795 | const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8y } }; |
| 193955 | const tmp8w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 1 }; | 193796 | const tmp8w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 1 }; |
| 193956 | const tmp8d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 1 }; | 193797 | const tmp8d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 1 }; |
| 193957 | const tmp8p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8p }, .imm = 1 }; | | |
| 193958 | const tmp8q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 1 }; | 193798 | const tmp8q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 1 }; |
| 193959 | const tmp8w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 2 }; | 193799 | const tmp8w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 2 }; |
| 193960 | const tmp8d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 2 }; | 193800 | const tmp8d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 2 }; |
| 193961 | const tmp8p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8p }, .imm = 2 }; | | |
| 193962 | const tmp8q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 2 }; | 193801 | const tmp8q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 2 }; |
| 193963 | | 193802 | |
| 193964 | const tmp9l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9l } }; | 193803 | const tmp9l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9l } }; |
| ... | @@ -193974,11 +193813,9 @@ const Select = struct { | ... | @@ -193974,11 +193813,9 @@ const Select = struct { |
| 193974 | const tmp9y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9y } }; | 193813 | const tmp9y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9y } }; |
| 193975 | const tmp9w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 1 }; | 193814 | const tmp9w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 1 }; |
| 193976 | const tmp9d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 1 }; | 193815 | const tmp9d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 1 }; |
| 193977 | const tmp9p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9p }, .imm = 1 }; | | |
| 193978 | const tmp9q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 1 }; | 193816 | const tmp9q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 1 }; |
| 193979 | const tmp9w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 2 }; | 193817 | const tmp9w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 2 }; |
| 193980 | const tmp9d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 2 }; | 193818 | const tmp9d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 2 }; |
| 193981 | const tmp9p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9p }, .imm = 2 }; | | |
| 193982 | const tmp9q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 2 }; | 193819 | const tmp9q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 2 }; |
| 193983 | | 193820 | |
| 193984 | const tmp10l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10l } }; | 193821 | const tmp10l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10l } }; |
| ... | @@ -193994,11 +193831,9 @@ const Select = struct { | ... | @@ -193994,11 +193831,9 @@ const Select = struct { |
| 193994 | const tmp10y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10y } }; | 193831 | const tmp10y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10y } }; |
| 193995 | const tmp10w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 1 }; | 193832 | const tmp10w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 1 }; |
| 193996 | const tmp10d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 1 }; | 193833 | const tmp10d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 1 }; |
| 193997 | const tmp10p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10p }, .imm = 1 }; | | |
| 193998 | const tmp10q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 1 }; | 193834 | const tmp10q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 1 }; |
| 193999 | const tmp10w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 2 }; | 193835 | const tmp10w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 2 }; |
| 194000 | const tmp10d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 2 }; | 193836 | const tmp10d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 2 }; |
| 194001 | const tmp10p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10p }, .imm = 2 }; | | |
| 194002 | const tmp10q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 2 }; | 193837 | const tmp10q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 2 }; |
| 194003 | | 193838 | |
| 194004 | const dst0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0l } }; | 193839 | const dst0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0l } }; |
| ... | @@ -194014,11 +193849,9 @@ const Select = struct { | ... | @@ -194014,11 +193849,9 @@ const Select = struct { |
| 194014 | const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0y } }; | 193849 | const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0y } }; |
| 194015 | const dst0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 1 }; | 193850 | const dst0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 1 }; |
| 194016 | const dst0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 1 }; | 193851 | const dst0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 1 }; |
| 194017 | const dst0p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0p }, .imm = 1 }; | | |
| 194018 | const dst0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 1 }; | 193852 | const dst0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 1 }; |
| 194019 | const dst0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 2 }; | 193853 | const dst0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 2 }; |
| 194020 | const dst0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 2 }; | 193854 | const dst0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 2 }; |
| 194021 | const dst0p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0p }, .imm = 2 }; | | |
| 194022 | const dst0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 2 }; | 193855 | const dst0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 2 }; |
| 194023 | | 193856 | |
| 194024 | const dst1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1l } }; | 193857 | const dst1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1l } }; |
| ... | @@ -194034,11 +193867,9 @@ const Select = struct { | ... | @@ -194034,11 +193867,9 @@ const Select = struct { |
| 194034 | const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1y } }; | 193867 | const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1y } }; |
| 194035 | const dst1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 1 }; | 193868 | const dst1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 1 }; |
| 194036 | const dst1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 1 }; | 193869 | const dst1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 1 }; |
| 194037 | const dst1p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1p }, .imm = 1 }; | | |
| 194038 | const dst1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 1 }; | 193870 | const dst1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 1 }; |
| 194039 | const dst1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 2 }; | 193871 | const dst1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 2 }; |
| 194040 | const dst1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 2 }; | 193872 | const dst1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 2 }; |
| 194041 | const dst1p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1p }, .imm = 2 }; | | |
| 194042 | const dst1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 2 }; | 193873 | const dst1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 2 }; |
| 194043 | | 193874 | |
| 194044 | const src0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0l } }; | 193875 | const src0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0l } }; |
| ... | @@ -194054,11 +193885,9 @@ const Select = struct { | ... | @@ -194054,11 +193885,9 @@ const Select = struct { |
| 194054 | const src0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0y } }; | 193885 | const src0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0y } }; |
| 194055 | const src0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 1 }; | 193886 | const src0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 1 }; |
| 194056 | const src0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 1 }; | 193887 | const src0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 1 }; |
| 194057 | const src0p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0p }, .imm = 1 }; | | |
| 194058 | const src0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 1 }; | 193888 | const src0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 1 }; |
| 194059 | const src0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 2 }; | 193889 | const src0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 2 }; |
| 194060 | const src0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 2 }; | 193890 | const src0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 2 }; |
| 194061 | const src0p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0p }, .imm = 2 }; | | |
| 194062 | const src0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 2 }; | 193891 | const src0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 2 }; |
| 194063 | | 193892 | |
| 194064 | const src1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1l } }; | 193893 | const src1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1l } }; |
| ... | @@ -194074,11 +193903,9 @@ const Select = struct { | ... | @@ -194074,11 +193903,9 @@ const Select = struct { |
| 194074 | const src1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1y } }; | 193903 | const src1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1y } }; |
| 194075 | const src1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 1 }; | 193904 | const src1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 1 }; |
| 194076 | const src1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 1 }; | 193905 | const src1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 1 }; |
| 194077 | const src1p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1p }, .imm = 1 }; | | |
| 194078 | const src1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 1 }; | 193906 | const src1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 1 }; |
| 194079 | const src1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 2 }; | 193907 | const src1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 2 }; |
| 194080 | const src1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 2 }; | 193908 | const src1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 2 }; |
| 194081 | const src1p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1p }, .imm = 2 }; | | |
| 194082 | const src1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 2 }; | 193909 | const src1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 2 }; |
| 194083 | | 193910 | |
| 194084 | const src2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2l } }; | 193911 | const src2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2l } }; |
| ... | @@ -194094,11 +193921,9 @@ const Select = struct { | ... | @@ -194094,11 +193921,9 @@ const Select = struct { |
| 194094 | const src2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2y } }; | 193921 | const src2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2y } }; |
| 194095 | const src2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 1 }; | 193922 | const src2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 1 }; |
| 194096 | const src2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 1 }; | 193923 | const src2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 1 }; |
| 194097 | const src2p0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2p }, .imm = 1 }; | | |
| 194098 | const src2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 1 }; | 193924 | const src2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 1 }; |
| 194099 | const src2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 2 }; | 193925 | const src2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 2 }; |
| 194100 | const src2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 2 }; | 193926 | const src2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 2 }; |
| 194101 | const src2p1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2p }, .imm = 2 }; | | |
| 194102 | const src2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 2 }; | 193927 | const src2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 2 }; |
| 194103 | | 193928 | |
| 194104 | fn si(imm: i32) Select.Operand { | 193929 | fn si(imm: i32) Select.Operand { |