| ... | ... | @@ -103826,314 +103826,1260 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103826 | 103826 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 103827 | 103827 | const unrestricted_ty = ty_op.ty.toType(); |
| 103828 | 103828 | const restricted_ty = cg.typeOf(ty_op.operand); |
| 103829 | | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}) ++ .{try cg.tempInit(ty_op.ty.toType(), .none)}; |
| 103830 | | const res = res: switch (restricted_ty.restrictedRepr(zcu)) { |
| 103831 | | .indirect => { |
| 103832 | | if (zcu.comp.config.use_new_linker) switch (air_tag) { |
| 103833 | | else => unreachable, |
| 103834 | | .unwrap_restricted => {}, |
| 103835 | | .unwrap_restricted_safe => cg.select(&.{}, &.{}, &ops, &.{ .{ |
| 103836 | | .required_features = .{ .avx, .bmi2, null, null }, |
| 103837 | | .src_constraints = .{ .any, .po2_any, .any }, |
| 103838 | | .patterns = &.{ |
| 103839 | | .{ .src = .{ .mem, .none, .none } }, |
| 103840 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 103841 | | }, |
| 103842 | | .call_frame = .{ .alignment = .@"32" }, |
| 103843 | | .extra_temps = .{ |
| 103844 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103845 | | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103846 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103847 | | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 103848 | | .unused, |
| 103849 | | .unused, |
| 103850 | | .unused, |
| 103851 | | .unused, |
| 103852 | | .unused, |
| 103853 | | .unused, |
| 103854 | | .unused, |
| 103855 | | }, |
| 103856 | | .clobbers = .{ .eflags = true }, |
| 103857 | | .each = .{ .once = &.{ |
| 103858 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_ptr_size), ._, ._ }, |
| 103859 | | .{ ._, ._, .mov, .tmp2p, .src0p, ._, ._ }, |
| 103860 | | .{ ._, ._, .sub, .tmp2p, .tmp0p, ._, ._ }, |
| 103861 | | .{ ._, ._rx, .ro, .tmp2p, .tmp2p, .sa(.src1, .add_log2_size), ._ }, |
| 103862 | | .{ ._, ._, .cmp, .tmp2p, .leaa(.tmp0p, .sub_ptr_size), ._, ._ }, |
| 103863 | | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 103864 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103865 | | } }, |
| 103866 | | }, .{ |
| 103867 | | .required_features = .{ .avx, null, null, null }, |
| 103868 | | .src_constraints = .{ .any, .po2_any, .any }, |
| 103869 | | .patterns = &.{ |
| 103870 | | .{ .src = .{ .mem, .none, .none } }, |
| 103871 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 103872 | | }, |
| 103873 | | .call_frame = .{ .alignment = .@"32" }, |
| 103874 | | .extra_temps = .{ |
| 103875 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103876 | | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103877 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103878 | | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 103879 | | .unused, |
| 103880 | | .unused, |
| 103881 | | .unused, |
| 103882 | | .unused, |
| 103883 | | .unused, |
| 103884 | | .unused, |
| 103885 | | .unused, |
| 103886 | | }, |
| 103887 | | .clobbers = .{ .eflags = true }, |
| 103888 | | .each = .{ .once = &.{ |
| 103889 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_ptr_size), ._, ._ }, |
| 103890 | | .{ ._, ._, .mov, .tmp2p, .src0p, ._, ._ }, |
| 103891 | | .{ ._, ._, .sub, .tmp2p, .tmp0p, ._, ._ }, |
| 103892 | | .{ ._, ._r, .ro, .tmp2p, .sa(.src1, .add_log2_size), ._, ._ }, |
| 103893 | | .{ ._, ._, .cmp, .tmp2p, .leaa(.tmp0p, .sub_ptr_size), ._, ._ }, |
| 103894 | | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 103895 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103896 | | } }, |
| 103897 | | }, .{ |
| 103898 | | .required_features = .{ .avx, null, null, null }, |
| 103899 | | .patterns = &.{ |
| 103900 | | .{ .src = .{ .mem, .none, .none } }, |
| 103901 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 103902 | | }, |
| 103903 | | .call_frame = .{ .alignment = .@"32" }, |
| 103904 | | .extra_temps = .{ |
| 103905 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103906 | | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103907 | | .{ .type = .usize, .kind = .{ .reg = .rax } }, |
| 103908 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103909 | | .{ .type = .usize, .kind = .{ .reg = .rdx } }, |
| 103910 | | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 103911 | | .unused, |
| 103912 | | .unused, |
| 103913 | | .unused, |
| 103914 | | .unused, |
| 103915 | | .unused, |
| 103916 | | }, |
| 103917 | | .clobbers = .{ .eflags = true }, |
| 103918 | | .each = .{ .once = &.{ |
| 103919 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_ptr_size), ._, ._ }, |
| 103920 | | .{ ._, ._, .mov, .tmp2p, .src0p, ._, ._ }, |
| 103921 | | .{ ._, ._, .sub, .tmp2p, .tmp0p, ._, ._ }, |
| 103922 | | .{ ._, ._, .mov, .tmp3d, .sa(.src1, .add_size), ._, ._ }, |
| 103923 | | .{ ._, ._, .xor, .tmp4p, .tmp4p, ._, ._ }, |
| 103924 | | .{ ._, ._, .div, .tmp3p, ._, ._, ._ }, |
| 103925 | | .{ ._, ._, .@"test", .tmp4p, .tmp4p, ._, ._ }, |
| 103926 | | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 103927 | | .{ ._, ._, .cmp, .tmp2p, .leaa(.tmp0p, .sub_ptr_size), ._, ._ }, |
| 103928 | | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 103929 | | .{ .@"1:", ._, .call, .tmp5d, ._, ._, ._ }, |
| 103930 | | } }, |
| 103931 | | }, .{ |
| 103932 | | .required_features = .{ .sse, .bmi2, null, null }, |
| 103933 | | .src_constraints = .{ .any, .po2_any, .any }, |
| 103934 | | .patterns = &.{ |
| 103935 | | .{ .src = .{ .mem, .none, .none } }, |
| 103936 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 103937 | | }, |
| 103938 | | .call_frame = .{ .alignment = .@"16" }, |
| 103939 | | .extra_temps = .{ |
| 103940 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103941 | | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103942 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103943 | | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 103944 | | .unused, |
| 103945 | | .unused, |
| 103946 | | .unused, |
| 103947 | | .unused, |
| 103948 | | .unused, |
| 103949 | | .unused, |
| 103950 | | .unused, |
| 103951 | | }, |
| 103952 | | .clobbers = .{ .eflags = true }, |
| 103953 | | .each = .{ .once = &.{ |
| 103954 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_ptr_size), ._, ._ }, |
| 103955 | | .{ ._, ._, .mov, .tmp2p, .src0p, ._, ._ }, |
| 103956 | | .{ ._, ._, .sub, .tmp2p, .tmp0p, ._, ._ }, |
| 103957 | | .{ ._, ._rx, .ro, .tmp2p, .tmp2p, .sa(.src1, .add_log2_size), ._ }, |
| 103958 | | .{ ._, ._, .cmp, .tmp2p, .leaa(.tmp0p, .sub_ptr_size), ._, ._ }, |
| 103959 | | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 103960 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103961 | | } }, |
| 103962 | | }, .{ |
| 103963 | | .required_features = .{ .sse, null, null, null }, |
| 103964 | | .src_constraints = .{ .any, .po2_any, .any }, |
| 103965 | | .patterns = &.{ |
| 103966 | | .{ .src = .{ .mem, .none, .none } }, |
| 103967 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 103968 | | }, |
| 103969 | | .call_frame = .{ .alignment = .@"16" }, |
| 103970 | | .extra_temps = .{ |
| 103971 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103972 | | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103973 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103974 | | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 103975 | | .unused, |
| 103976 | | .unused, |
| 103977 | | .unused, |
| 103978 | | .unused, |
| 103979 | | .unused, |
| 103980 | | .unused, |
| 103981 | | .unused, |
| 103982 | | }, |
| 103983 | | .clobbers = .{ .eflags = true }, |
| 103984 | | .each = .{ .once = &.{ |
| 103985 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_ptr_size), ._, ._ }, |
| 103986 | | .{ ._, ._, .mov, .tmp2p, .src0p, ._, ._ }, |
| 103987 | | .{ ._, ._, .sub, .tmp2p, .tmp0p, ._, ._ }, |
| 103988 | | .{ ._, ._r, .ro, .tmp2p, .sa(.src1, .add_log2_size), ._, ._ }, |
| 103989 | | .{ ._, ._, .cmp, .tmp2p, .leaa(.tmp0p, .sub_ptr_size), ._, ._ }, |
| 103990 | | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 103991 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103992 | | } }, |
| 103993 | | }, .{ |
| 103994 | | .required_features = .{ .sse, null, null, null }, |
| 103995 | | .patterns = &.{ |
| 103996 | | .{ .src = .{ .mem, .none, .none } }, |
| 103997 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 103998 | | }, |
| 103999 | | .call_frame = .{ .alignment = .@"16" }, |
| 104000 | | .extra_temps = .{ |
| 104001 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104002 | | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104003 | | .{ .type = .usize, .kind = .{ .reg = .rax } }, |
| 104004 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104005 | | .{ .type = .usize, .kind = .{ .reg = .rdx } }, |
| 104006 | | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104007 | | .unused, |
| 104008 | | .unused, |
| 104009 | | .unused, |
| 104010 | | .unused, |
| 104011 | | .unused, |
| 104012 | | }, |
| 104013 | | .clobbers = .{ .eflags = true }, |
| 104014 | | .each = .{ .once = &.{ |
| 104015 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_ptr_size), ._, ._ }, |
| 104016 | | .{ ._, ._, .mov, .tmp2p, .src0p, ._, ._ }, |
| 104017 | | .{ ._, ._, .sub, .tmp2p, .tmp0p, ._, ._ }, |
| 104018 | | .{ ._, ._, .mov, .tmp3d, .sa(.src1, .add_size), ._, ._ }, |
| 104019 | | .{ ._, ._, .xor, .tmp4p, .tmp4p, ._, ._ }, |
| 104020 | | .{ ._, ._, .div, .tmp3p, ._, ._, ._ }, |
| 104021 | | .{ ._, ._, .@"test", .tmp4p, .tmp4p, ._, ._ }, |
| 104022 | | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 104023 | | .{ ._, ._, .cmp, .tmp2p, .leaa(.tmp0p, .sub_ptr_size), ._, ._ }, |
| 104024 | | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104025 | | .{ .@"1:", ._, .call, .tmp5d, ._, ._, ._ }, |
| 104026 | | } }, |
| 104027 | | }, .{ |
| 104028 | | .required_features = .{ .bmi2, null, null, null }, |
| 104029 | | .src_constraints = .{ .any, .po2_any, .any }, |
| 104030 | | .patterns = &.{ |
| 104031 | | .{ .src = .{ .mem, .none, .none } }, |
| 104032 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 104033 | | }, |
| 104034 | | .call_frame = .{ .alignment = .@"8" }, |
| 104035 | | .extra_temps = .{ |
| 104036 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104037 | | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104038 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104039 | | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104040 | | .unused, |
| 104041 | | .unused, |
| 104042 | | .unused, |
| 104043 | | .unused, |
| 104044 | | .unused, |
| 104045 | | .unused, |
| 104046 | | .unused, |
| 104047 | | }, |
| 104048 | | .clobbers = .{ .eflags = true }, |
| 104049 | | .each = .{ .once = &.{ |
| 104050 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_ptr_size), ._, ._ }, |
| 104051 | | .{ ._, ._, .mov, .tmp2p, .src0p, ._, ._ }, |
| 104052 | | .{ ._, ._, .sub, .tmp2p, .tmp0p, ._, ._ }, |
| 104053 | | .{ ._, ._rx, .ro, .tmp2p, .tmp2p, .sa(.src1, .add_log2_size), ._ }, |
| 104054 | | .{ ._, ._, .cmp, .tmp2p, .leaa(.tmp0p, .sub_ptr_size), ._, ._ }, |
| 104055 | | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104056 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 104057 | | } }, |
| 104058 | | }, .{ |
| 104059 | | .src_constraints = .{ .any, .po2_any, .any }, |
| 104060 | | .patterns = &.{ |
| 104061 | | .{ .src = .{ .mem, .none, .none } }, |
| 104062 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 104063 | | }, |
| 104064 | | .call_frame = .{ .alignment = .@"8" }, |
| 104065 | | .extra_temps = .{ |
| 104066 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104067 | | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104068 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104069 | | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104070 | | .unused, |
| 104071 | | .unused, |
| 104072 | | .unused, |
| 104073 | | .unused, |
| 104074 | | .unused, |
| 104075 | | .unused, |
| 104076 | | .unused, |
| 104077 | | }, |
| 104078 | | .clobbers = .{ .eflags = true }, |
| 104079 | | .each = .{ .once = &.{ |
| 104080 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_ptr_size), ._, ._ }, |
| 104081 | | .{ ._, ._, .mov, .tmp2p, .src0p, ._, ._ }, |
| 104082 | | .{ ._, ._, .sub, .tmp2p, .tmp0p, ._, ._ }, |
| 104083 | | .{ ._, ._r, .ro, .tmp2p, .sa(.src1, .add_log2_size), ._, ._ }, |
| 104084 | | .{ ._, ._, .cmp, .tmp2p, .leaa(.tmp0p, .sub_ptr_size), ._, ._ }, |
| 104085 | | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104086 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 104087 | | } }, |
| 104088 | | }, .{ |
| 104089 | | .patterns = &.{ |
| 104090 | | .{ .src = .{ .mem, .none, .none } }, |
| 104091 | | .{ .src = .{ .to_gpr, .none, .none } }, |
| 104092 | | }, |
| 104093 | | .call_frame = .{ .alignment = .@"8" }, |
| 104094 | | .extra_temps = .{ |
| 104095 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104096 | | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104097 | | .{ .type = .usize, .kind = .{ .reg = .rax } }, |
| 104098 | | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104099 | | .{ .type = .usize, .kind = .{ .reg = .rdx } }, |
| 104100 | | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104101 | | .unused, |
| 104102 | | .unused, |
| 104103 | | .unused, |
| 104104 | | .unused, |
| 104105 | | .unused, |
| 104106 | | }, |
| 104107 | | .clobbers = .{ .eflags = true }, |
| 104108 | | .each = .{ .once = &.{ |
| 104109 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_ptr_size), ._, ._ }, |
| 104110 | | .{ ._, ._, .mov, .tmp2p, .src0p, ._, ._ }, |
| 104111 | | .{ ._, ._, .sub, .tmp2p, .tmp0p, ._, ._ }, |
| 104112 | | .{ ._, ._, .mov, .tmp3d, .sa(.src1, .add_size), ._, ._ }, |
| 104113 | | .{ ._, ._, .xor, .tmp4p, .tmp4p, ._, ._ }, |
| 104114 | | .{ ._, ._, .div, .tmp3p, ._, ._, ._ }, |
| 104115 | | .{ ._, ._, .@"test", .tmp4p, .tmp4p, ._, ._ }, |
| 104116 | | .{ ._, ._nz, .j, .@"1f", ._, ._, ._ }, |
| 104117 | | .{ ._, ._, .cmp, .tmp2p, .leaa(.tmp0p, .sub_ptr_size), ._, ._ }, |
| 104118 | | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104119 | | .{ .@"1:", ._, .call, .tmp5d, ._, ._, ._ }, |
| 104120 | | } }, |
| 104121 | | } }) catch |err| switch (err) { |
| 104122 | | error.SelectFailed => return cg.fail("failed to select {t} {f} {f} {f}", .{ |
| 104123 | | air_tag, |
| 104124 | | unrestricted_ty.fmt(pt), |
| 104125 | | restricted_ty.fmt(pt), |
| 104126 | | ops[0].tracking(cg), |
| 104127 | | }), |
| 104128 | | else => |e| return e, |
| 104129 | | }, |
| 104130 | | }; |
| 104131 | | break :res try ops[0].load(unrestricted_ty, .{}, cg); |
| 104132 | | }, |
| 104133 | | .direct => ops[0], |
| 103829 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}) ++ .{ |
| 103830 | try cg.tempInit(.usize, .{ .immediate = unrestricted_ty.abiAlignment(zcu).forward(restricted_ty.abiSize(zcu)) }), |
| 103831 | }; |
| 103832 | var res: [1]Temp = undefined; |
| 103833 | cg.select(&res, &.{unrestricted_ty}, &ops, switch (air_tag) { |
| 103834 | else => unreachable, |
| 103835 | .unwrap_restricted => &.{ .{ |
| 103836 | .required_features = .{ .@"64bit", null, null, null }, |
| 103837 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 103838 | .patterns = &.{ |
| 103839 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 103840 | }, |
| 103841 | .extra_temps = .{ |
| 103842 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103843 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103844 | .unused, |
| 103845 | .unused, |
| 103846 | .unused, |
| 103847 | .unused, |
| 103848 | .unused, |
| 103849 | .unused, |
| 103850 | .unused, |
| 103851 | .unused, |
| 103852 | .unused, |
| 103853 | }, |
| 103854 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 103855 | .each = .{ .once = &.{ |
| 103856 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 103857 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 103858 | .{ ._, ._, .movzx, .dst0d, .leai(.tmp0b, .dst0), ._, ._ }, |
| 103859 | } }, |
| 103860 | }, .{ |
| 103861 | .required_features = .{ .@"64bit", null, null, null }, |
| 103862 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 103863 | .patterns = &.{ |
| 103864 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 103865 | }, |
| 103866 | .extra_temps = .{ |
| 103867 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103868 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103869 | .unused, |
| 103870 | .unused, |
| 103871 | .unused, |
| 103872 | .unused, |
| 103873 | .unused, |
| 103874 | .unused, |
| 103875 | .unused, |
| 103876 | .unused, |
| 103877 | .unused, |
| 103878 | }, |
| 103879 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 103880 | .each = .{ .once = &.{ |
| 103881 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 103882 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 103883 | .{ ._, ._, .movsx, .dst0d, .leai(.tmp0b, .dst0), ._, ._ }, |
| 103884 | } }, |
| 103885 | }, .{ |
| 103886 | .required_features = .{ .@"64bit", null, null, null }, |
| 103887 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| 103888 | .patterns = &.{ |
| 103889 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 103890 | }, |
| 103891 | .extra_temps = .{ |
| 103892 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103893 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103894 | .unused, |
| 103895 | .unused, |
| 103896 | .unused, |
| 103897 | .unused, |
| 103898 | .unused, |
| 103899 | .unused, |
| 103900 | .unused, |
| 103901 | .unused, |
| 103902 | .unused, |
| 103903 | }, |
| 103904 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 103905 | .each = .{ .once = &.{ |
| 103906 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 103907 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 103908 | .{ ._, ._, .movzx, .dst0d, .leasi(.tmp0w, .@"2", .dst0), ._, ._ }, |
| 103909 | } }, |
| 103910 | }, .{ |
| 103911 | .required_features = .{ .@"64bit", null, null, null }, |
| 103912 | .dst_constraints = .{ .{ .signed_int = .word }, .any }, |
| 103913 | .patterns = &.{ |
| 103914 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 103915 | }, |
| 103916 | .extra_temps = .{ |
| 103917 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103918 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103919 | .unused, |
| 103920 | .unused, |
| 103921 | .unused, |
| 103922 | .unused, |
| 103923 | .unused, |
| 103924 | .unused, |
| 103925 | .unused, |
| 103926 | .unused, |
| 103927 | .unused, |
| 103928 | }, |
| 103929 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 103930 | .each = .{ .once = &.{ |
| 103931 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 103932 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 103933 | .{ ._, ._, .movsx, .dst0d, .leasi(.tmp0w, .@"2", .dst0), ._, ._ }, |
| 103934 | } }, |
| 103935 | }, .{ |
| 103936 | .required_features = .{ .@"64bit", null, null, null }, |
| 103937 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 103938 | .patterns = &.{ |
| 103939 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 103940 | }, |
| 103941 | .extra_temps = .{ |
| 103942 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103943 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103944 | .unused, |
| 103945 | .unused, |
| 103946 | .unused, |
| 103947 | .unused, |
| 103948 | .unused, |
| 103949 | .unused, |
| 103950 | .unused, |
| 103951 | .unused, |
| 103952 | .unused, |
| 103953 | }, |
| 103954 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 103955 | .each = .{ .once = &.{ |
| 103956 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 103957 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 103958 | .{ ._, ._, .mov, .dst0d, .leasi(.tmp0d, .@"4", .dst0), ._, ._ }, |
| 103959 | } }, |
| 103960 | }, .{ |
| 103961 | .required_features = .{ .@"64bit", null, null, null }, |
| 103962 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 103963 | .patterns = &.{ |
| 103964 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 103965 | }, |
| 103966 | .extra_temps = .{ |
| 103967 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103968 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103969 | .unused, |
| 103970 | .unused, |
| 103971 | .unused, |
| 103972 | .unused, |
| 103973 | .unused, |
| 103974 | .unused, |
| 103975 | .unused, |
| 103976 | .unused, |
| 103977 | .unused, |
| 103978 | }, |
| 103979 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 103980 | .each = .{ .once = &.{ |
| 103981 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 103982 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 103983 | .{ ._, ._, .mov, .dst0q, .leasi(.tmp0q, .@"8", .dst0), ._, ._ }, |
| 103984 | } }, |
| 103985 | }, .{ |
| 103986 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 103987 | .patterns = &.{ |
| 103988 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 103989 | }, |
| 103990 | .extra_temps = .{ |
| 103991 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 103992 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 103993 | .unused, |
| 103994 | .unused, |
| 103995 | .unused, |
| 103996 | .unused, |
| 103997 | .unused, |
| 103998 | .unused, |
| 103999 | .unused, |
| 104000 | .unused, |
| 104001 | .unused, |
| 104002 | }, |
| 104003 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104004 | .each = .{ .once = &.{ |
| 104005 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104006 | .{ ._, ._, .movzx, .dst0d, .leai(.tmp0b, .src0), ._, ._ }, |
| 104007 | } }, |
| 104008 | }, .{ |
| 104009 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 104010 | .patterns = &.{ |
| 104011 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104012 | }, |
| 104013 | .extra_temps = .{ |
| 104014 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104015 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104016 | .unused, |
| 104017 | .unused, |
| 104018 | .unused, |
| 104019 | .unused, |
| 104020 | .unused, |
| 104021 | .unused, |
| 104022 | .unused, |
| 104023 | .unused, |
| 104024 | .unused, |
| 104025 | }, |
| 104026 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104027 | .each = .{ .once = &.{ |
| 104028 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104029 | .{ ._, ._, .movsx, .dst0d, .leai(.tmp0b, .src0), ._, ._ }, |
| 104030 | } }, |
| 104031 | }, .{ |
| 104032 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| 104033 | .patterns = &.{ |
| 104034 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104035 | }, |
| 104036 | .extra_temps = .{ |
| 104037 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104038 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104039 | .unused, |
| 104040 | .unused, |
| 104041 | .unused, |
| 104042 | .unused, |
| 104043 | .unused, |
| 104044 | .unused, |
| 104045 | .unused, |
| 104046 | .unused, |
| 104047 | .unused, |
| 104048 | }, |
| 104049 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104050 | .each = .{ .once = &.{ |
| 104051 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104052 | .{ ._, ._, .movzx, .dst0d, .leasi(.tmp0w, .@"2", .src0), ._, ._ }, |
| 104053 | } }, |
| 104054 | }, .{ |
| 104055 | .dst_constraints = .{ .{ .signed_int = .word }, .any }, |
| 104056 | .patterns = &.{ |
| 104057 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104058 | }, |
| 104059 | .extra_temps = .{ |
| 104060 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104061 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104062 | .unused, |
| 104063 | .unused, |
| 104064 | .unused, |
| 104065 | .unused, |
| 104066 | .unused, |
| 104067 | .unused, |
| 104068 | .unused, |
| 104069 | .unused, |
| 104070 | .unused, |
| 104071 | }, |
| 104072 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104073 | .each = .{ .once = &.{ |
| 104074 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104075 | .{ ._, ._, .movsx, .dst0d, .leasi(.tmp0w, .@"2", .src0), ._, ._ }, |
| 104076 | } }, |
| 104077 | }, .{ |
| 104078 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 104079 | .patterns = &.{ |
| 104080 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104081 | }, |
| 104082 | .extra_temps = .{ |
| 104083 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104084 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104085 | .unused, |
| 104086 | .unused, |
| 104087 | .unused, |
| 104088 | .unused, |
| 104089 | .unused, |
| 104090 | .unused, |
| 104091 | .unused, |
| 104092 | .unused, |
| 104093 | .unused, |
| 104094 | }, |
| 104095 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104096 | .each = .{ .once = &.{ |
| 104097 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104098 | .{ ._, ._, .mov, .dst0d, .leasi(.tmp0d, .@"4", .src0), ._, ._ }, |
| 104099 | } }, |
| 104100 | } }, |
| 104101 | .unwrap_restricted_safe => &.{ .{ |
| 104102 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104103 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 104104 | .patterns = &.{ |
| 104105 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104106 | }, |
| 104107 | .call_frame = .{ .alignment = .@"32" }, |
| 104108 | .extra_temps = .{ |
| 104109 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104110 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104111 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104112 | .unused, |
| 104113 | .unused, |
| 104114 | .unused, |
| 104115 | .unused, |
| 104116 | .unused, |
| 104117 | .unused, |
| 104118 | .unused, |
| 104119 | .unused, |
| 104120 | }, |
| 104121 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104122 | .clobbers = .{ .eflags = true }, |
| 104123 | .each = .{ .once = &.{ |
| 104124 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104125 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104126 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104127 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104128 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104129 | .{ ._, ._, .movzx, .dst0d, .leai(.tmp0b, .dst0), ._, ._ }, |
| 104130 | } }, |
| 104131 | }, .{ |
| 104132 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104133 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 104134 | .patterns = &.{ |
| 104135 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104136 | }, |
| 104137 | .call_frame = .{ .alignment = .@"16" }, |
| 104138 | .extra_temps = .{ |
| 104139 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104140 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104141 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104142 | .unused, |
| 104143 | .unused, |
| 104144 | .unused, |
| 104145 | .unused, |
| 104146 | .unused, |
| 104147 | .unused, |
| 104148 | .unused, |
| 104149 | .unused, |
| 104150 | }, |
| 104151 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104152 | .clobbers = .{ .eflags = true }, |
| 104153 | .each = .{ .once = &.{ |
| 104154 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104155 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104156 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104157 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104158 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104159 | .{ ._, ._, .movzx, .dst0d, .leai(.tmp0b, .dst0), ._, ._ }, |
| 104160 | } }, |
| 104161 | }, .{ |
| 104162 | .required_features = .{ .@"64bit", null, null, null }, |
| 104163 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 104164 | .patterns = &.{ |
| 104165 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104166 | }, |
| 104167 | .call_frame = .{ .alignment = .@"8" }, |
| 104168 | .extra_temps = .{ |
| 104169 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104170 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104171 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104172 | .unused, |
| 104173 | .unused, |
| 104174 | .unused, |
| 104175 | .unused, |
| 104176 | .unused, |
| 104177 | .unused, |
| 104178 | .unused, |
| 104179 | .unused, |
| 104180 | }, |
| 104181 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104182 | .clobbers = .{ .eflags = true }, |
| 104183 | .each = .{ .once = &.{ |
| 104184 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104185 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104186 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104187 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104188 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104189 | .{ ._, ._, .movzx, .dst0d, .leai(.tmp0b, .dst0), ._, ._ }, |
| 104190 | } }, |
| 104191 | }, .{ |
| 104192 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104193 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 104194 | .patterns = &.{ |
| 104195 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104196 | }, |
| 104197 | .call_frame = .{ .alignment = .@"32" }, |
| 104198 | .extra_temps = .{ |
| 104199 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104200 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104201 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104202 | .unused, |
| 104203 | .unused, |
| 104204 | .unused, |
| 104205 | .unused, |
| 104206 | .unused, |
| 104207 | .unused, |
| 104208 | .unused, |
| 104209 | .unused, |
| 104210 | }, |
| 104211 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104212 | .clobbers = .{ .eflags = true }, |
| 104213 | .each = .{ .once = &.{ |
| 104214 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104215 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104216 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104217 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104218 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104219 | .{ ._, ._, .movsx, .dst0d, .leai(.tmp0b, .dst0), ._, ._ }, |
| 104220 | } }, |
| 104221 | }, .{ |
| 104222 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104223 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 104224 | .patterns = &.{ |
| 104225 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104226 | }, |
| 104227 | .call_frame = .{ .alignment = .@"16" }, |
| 104228 | .extra_temps = .{ |
| 104229 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104230 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104231 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104232 | .unused, |
| 104233 | .unused, |
| 104234 | .unused, |
| 104235 | .unused, |
| 104236 | .unused, |
| 104237 | .unused, |
| 104238 | .unused, |
| 104239 | .unused, |
| 104240 | }, |
| 104241 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104242 | .clobbers = .{ .eflags = true }, |
| 104243 | .each = .{ .once = &.{ |
| 104244 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104245 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104246 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104247 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104248 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104249 | .{ ._, ._, .movsx, .dst0d, .leai(.tmp0b, .dst0), ._, ._ }, |
| 104250 | } }, |
| 104251 | }, .{ |
| 104252 | .required_features = .{ .@"64bit", null, null, null }, |
| 104253 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 104254 | .patterns = &.{ |
| 104255 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104256 | }, |
| 104257 | .call_frame = .{ .alignment = .@"8" }, |
| 104258 | .extra_temps = .{ |
| 104259 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104260 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104261 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104262 | .unused, |
| 104263 | .unused, |
| 104264 | .unused, |
| 104265 | .unused, |
| 104266 | .unused, |
| 104267 | .unused, |
| 104268 | .unused, |
| 104269 | .unused, |
| 104270 | }, |
| 104271 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104272 | .clobbers = .{ .eflags = true }, |
| 104273 | .each = .{ .once = &.{ |
| 104274 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104275 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104276 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104277 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104278 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104279 | .{ ._, ._, .movsx, .dst0d, .leai(.tmp0b, .dst0), ._, ._ }, |
| 104280 | } }, |
| 104281 | }, .{ |
| 104282 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104283 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| 104284 | .patterns = &.{ |
| 104285 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104286 | }, |
| 104287 | .call_frame = .{ .alignment = .@"32" }, |
| 104288 | .extra_temps = .{ |
| 104289 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104290 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104291 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104292 | .unused, |
| 104293 | .unused, |
| 104294 | .unused, |
| 104295 | .unused, |
| 104296 | .unused, |
| 104297 | .unused, |
| 104298 | .unused, |
| 104299 | .unused, |
| 104300 | }, |
| 104301 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104302 | .clobbers = .{ .eflags = true }, |
| 104303 | .each = .{ .once = &.{ |
| 104304 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104305 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104306 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104307 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104308 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104309 | .{ ._, ._, .movzx, .dst0d, .leasi(.tmp0w, .@"2", .dst0), ._, ._ }, |
| 104310 | } }, |
| 104311 | }, .{ |
| 104312 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104313 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| 104314 | .patterns = &.{ |
| 104315 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104316 | }, |
| 104317 | .call_frame = .{ .alignment = .@"16" }, |
| 104318 | .extra_temps = .{ |
| 104319 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104320 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104321 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104322 | .unused, |
| 104323 | .unused, |
| 104324 | .unused, |
| 104325 | .unused, |
| 104326 | .unused, |
| 104327 | .unused, |
| 104328 | .unused, |
| 104329 | .unused, |
| 104330 | }, |
| 104331 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104332 | .clobbers = .{ .eflags = true }, |
| 104333 | .each = .{ .once = &.{ |
| 104334 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104335 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104336 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104337 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104338 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104339 | .{ ._, ._, .movzx, .dst0d, .leasi(.tmp0w, .@"2", .dst0), ._, ._ }, |
| 104340 | } }, |
| 104341 | }, .{ |
| 104342 | .required_features = .{ .@"64bit", null, null, null }, |
| 104343 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| 104344 | .patterns = &.{ |
| 104345 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104346 | }, |
| 104347 | .call_frame = .{ .alignment = .@"8" }, |
| 104348 | .extra_temps = .{ |
| 104349 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104350 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104351 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104352 | .unused, |
| 104353 | .unused, |
| 104354 | .unused, |
| 104355 | .unused, |
| 104356 | .unused, |
| 104357 | .unused, |
| 104358 | .unused, |
| 104359 | .unused, |
| 104360 | }, |
| 104361 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104362 | .clobbers = .{ .eflags = true }, |
| 104363 | .each = .{ .once = &.{ |
| 104364 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104365 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104366 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104367 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104368 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104369 | .{ ._, ._, .movzx, .dst0d, .leasi(.tmp0w, .@"2", .dst0), ._, ._ }, |
| 104370 | } }, |
| 104371 | }, .{ |
| 104372 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104373 | .dst_constraints = .{ .{ .signed_int = .word }, .any }, |
| 104374 | .patterns = &.{ |
| 104375 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104376 | }, |
| 104377 | .call_frame = .{ .alignment = .@"32" }, |
| 104378 | .extra_temps = .{ |
| 104379 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104380 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104381 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104382 | .unused, |
| 104383 | .unused, |
| 104384 | .unused, |
| 104385 | .unused, |
| 104386 | .unused, |
| 104387 | .unused, |
| 104388 | .unused, |
| 104389 | .unused, |
| 104390 | }, |
| 104391 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104392 | .clobbers = .{ .eflags = true }, |
| 104393 | .each = .{ .once = &.{ |
| 104394 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104395 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104396 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104397 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104398 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104399 | .{ ._, ._, .movsx, .dst0d, .leasi(.tmp0w, .@"2", .dst0), ._, ._ }, |
| 104400 | } }, |
| 104401 | }, .{ |
| 104402 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104403 | .dst_constraints = .{ .{ .signed_int = .word }, .any }, |
| 104404 | .patterns = &.{ |
| 104405 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104406 | }, |
| 104407 | .call_frame = .{ .alignment = .@"16" }, |
| 104408 | .extra_temps = .{ |
| 104409 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104410 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104411 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104412 | .unused, |
| 104413 | .unused, |
| 104414 | .unused, |
| 104415 | .unused, |
| 104416 | .unused, |
| 104417 | .unused, |
| 104418 | .unused, |
| 104419 | .unused, |
| 104420 | }, |
| 104421 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104422 | .clobbers = .{ .eflags = true }, |
| 104423 | .each = .{ .once = &.{ |
| 104424 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104425 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104426 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104427 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104428 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104429 | .{ ._, ._, .movsx, .dst0d, .leasi(.tmp0w, .@"2", .dst0), ._, ._ }, |
| 104430 | } }, |
| 104431 | }, .{ |
| 104432 | .required_features = .{ .@"64bit", null, null, null }, |
| 104433 | .dst_constraints = .{ .{ .signed_int = .word }, .any }, |
| 104434 | .patterns = &.{ |
| 104435 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104436 | }, |
| 104437 | .call_frame = .{ .alignment = .@"8" }, |
| 104438 | .extra_temps = .{ |
| 104439 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104440 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104441 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104442 | .unused, |
| 104443 | .unused, |
| 104444 | .unused, |
| 104445 | .unused, |
| 104446 | .unused, |
| 104447 | .unused, |
| 104448 | .unused, |
| 104449 | .unused, |
| 104450 | }, |
| 104451 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104452 | .clobbers = .{ .eflags = true }, |
| 104453 | .each = .{ .once = &.{ |
| 104454 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104455 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104456 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104457 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104458 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104459 | .{ ._, ._, .movsx, .dst0d, .leasi(.tmp0w, .@"2", .dst0), ._, ._ }, |
| 104460 | } }, |
| 104461 | }, .{ |
| 104462 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104463 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 104464 | .patterns = &.{ |
| 104465 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104466 | }, |
| 104467 | .call_frame = .{ .alignment = .@"32" }, |
| 104468 | .extra_temps = .{ |
| 104469 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104470 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104471 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104472 | .unused, |
| 104473 | .unused, |
| 104474 | .unused, |
| 104475 | .unused, |
| 104476 | .unused, |
| 104477 | .unused, |
| 104478 | .unused, |
| 104479 | .unused, |
| 104480 | }, |
| 104481 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104482 | .clobbers = .{ .eflags = true }, |
| 104483 | .each = .{ .once = &.{ |
| 104484 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104485 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104486 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104487 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104488 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104489 | .{ ._, ._, .mov, .dst0d, .leasi(.tmp0d, .@"4", .dst0), ._, ._ }, |
| 104490 | } }, |
| 104491 | }, .{ |
| 104492 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104493 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 104494 | .patterns = &.{ |
| 104495 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104496 | }, |
| 104497 | .call_frame = .{ .alignment = .@"16" }, |
| 104498 | .extra_temps = .{ |
| 104499 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104500 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104501 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104502 | .unused, |
| 104503 | .unused, |
| 104504 | .unused, |
| 104505 | .unused, |
| 104506 | .unused, |
| 104507 | .unused, |
| 104508 | .unused, |
| 104509 | .unused, |
| 104510 | }, |
| 104511 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104512 | .clobbers = .{ .eflags = true }, |
| 104513 | .each = .{ .once = &.{ |
| 104514 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104515 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104516 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104517 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104518 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104519 | .{ ._, ._, .mov, .dst0d, .leasi(.tmp0d, .@"4", .dst0), ._, ._ }, |
| 104520 | } }, |
| 104521 | }, .{ |
| 104522 | .required_features = .{ .@"64bit", null, null, null }, |
| 104523 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 104524 | .patterns = &.{ |
| 104525 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104526 | }, |
| 104527 | .call_frame = .{ .alignment = .@"8" }, |
| 104528 | .extra_temps = .{ |
| 104529 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104530 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104531 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104532 | .unused, |
| 104533 | .unused, |
| 104534 | .unused, |
| 104535 | .unused, |
| 104536 | .unused, |
| 104537 | .unused, |
| 104538 | .unused, |
| 104539 | .unused, |
| 104540 | }, |
| 104541 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104542 | .clobbers = .{ .eflags = true }, |
| 104543 | .each = .{ .once = &.{ |
| 104544 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104545 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104546 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104547 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104548 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104549 | .{ ._, ._, .mov, .dst0d, .leasi(.tmp0d, .@"4", .dst0), ._, ._ }, |
| 104550 | } }, |
| 104551 | }, .{ |
| 104552 | .required_features = .{ .@"64bit", .avx, null, null }, |
| 104553 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 104554 | .patterns = &.{ |
| 104555 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104556 | }, |
| 104557 | .call_frame = .{ .alignment = .@"32" }, |
| 104558 | .extra_temps = .{ |
| 104559 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104560 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104561 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104562 | .unused, |
| 104563 | .unused, |
| 104564 | .unused, |
| 104565 | .unused, |
| 104566 | .unused, |
| 104567 | .unused, |
| 104568 | .unused, |
| 104569 | .unused, |
| 104570 | }, |
| 104571 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104572 | .clobbers = .{ .eflags = true }, |
| 104573 | .each = .{ .once = &.{ |
| 104574 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104575 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104576 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104577 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104578 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104579 | .{ ._, ._, .mov, .dst0q, .leasi(.tmp0q, .@"8", .dst0), ._, ._ }, |
| 104580 | } }, |
| 104581 | }, .{ |
| 104582 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 104583 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 104584 | .patterns = &.{ |
| 104585 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104586 | }, |
| 104587 | .call_frame = .{ .alignment = .@"16" }, |
| 104588 | .extra_temps = .{ |
| 104589 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104590 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104591 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104592 | .unused, |
| 104593 | .unused, |
| 104594 | .unused, |
| 104595 | .unused, |
| 104596 | .unused, |
| 104597 | .unused, |
| 104598 | .unused, |
| 104599 | .unused, |
| 104600 | }, |
| 104601 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104602 | .clobbers = .{ .eflags = true }, |
| 104603 | .each = .{ .once = &.{ |
| 104604 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104605 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104606 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104607 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104608 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104609 | .{ ._, ._, .mov, .dst0q, .leasi(.tmp0q, .@"8", .dst0), ._, ._ }, |
| 104610 | } }, |
| 104611 | }, .{ |
| 104612 | .required_features = .{ .@"64bit", null, null, null }, |
| 104613 | .dst_constraints = .{ .{ .int = .qword }, .any }, |
| 104614 | .patterns = &.{ |
| 104615 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104616 | }, |
| 104617 | .call_frame = .{ .alignment = .@"8" }, |
| 104618 | .extra_temps = .{ |
| 104619 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104620 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104621 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104622 | .unused, |
| 104623 | .unused, |
| 104624 | .unused, |
| 104625 | .unused, |
| 104626 | .unused, |
| 104627 | .unused, |
| 104628 | .unused, |
| 104629 | .unused, |
| 104630 | }, |
| 104631 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104632 | .clobbers = .{ .eflags = true }, |
| 104633 | .each = .{ .once = &.{ |
| 104634 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104635 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104636 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104637 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104638 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| 104639 | .{ ._, ._, .mov, .dst0q, .leasi(.tmp0q, .@"8", .dst0), ._, ._ }, |
| 104640 | } }, |
| 104641 | }, .{ |
| 104642 | .required_features = .{ .avx, null, null, null }, |
| 104643 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 104644 | .patterns = &.{ |
| 104645 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104646 | }, |
| 104647 | .call_frame = .{ .alignment = .@"32" }, |
| 104648 | .extra_temps = .{ |
| 104649 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104650 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104651 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104652 | .unused, |
| 104653 | .unused, |
| 104654 | .unused, |
| 104655 | .unused, |
| 104656 | .unused, |
| 104657 | .unused, |
| 104658 | .unused, |
| 104659 | .unused, |
| 104660 | }, |
| 104661 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104662 | .clobbers = .{ .eflags = true }, |
| 104663 | .each = .{ .once = &.{ |
| 104664 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104665 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104666 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104667 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104668 | .{ .@"0:", ._, .movzx, .dst0d, .leai(.tmp0b, .src0), ._, ._ }, |
| 104669 | } }, |
| 104670 | }, .{ |
| 104671 | .required_features = .{ .sse, null, null, null }, |
| 104672 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 104673 | .patterns = &.{ |
| 104674 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104675 | }, |
| 104676 | .call_frame = .{ .alignment = .@"16" }, |
| 104677 | .extra_temps = .{ |
| 104678 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104679 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104680 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104681 | .unused, |
| 104682 | .unused, |
| 104683 | .unused, |
| 104684 | .unused, |
| 104685 | .unused, |
| 104686 | .unused, |
| 104687 | .unused, |
| 104688 | .unused, |
| 104689 | }, |
| 104690 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104691 | .clobbers = .{ .eflags = true }, |
| 104692 | .each = .{ .once = &.{ |
| 104693 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104694 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104695 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104696 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104697 | .{ .@"0:", ._, .movzx, .dst0d, .leai(.tmp0b, .src0), ._, ._ }, |
| 104698 | } }, |
| 104699 | }, .{ |
| 104700 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 104701 | .patterns = &.{ |
| 104702 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104703 | }, |
| 104704 | .call_frame = .{ .alignment = .@"8" }, |
| 104705 | .extra_temps = .{ |
| 104706 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104707 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104708 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104709 | .unused, |
| 104710 | .unused, |
| 104711 | .unused, |
| 104712 | .unused, |
| 104713 | .unused, |
| 104714 | .unused, |
| 104715 | .unused, |
| 104716 | .unused, |
| 104717 | }, |
| 104718 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104719 | .clobbers = .{ .eflags = true }, |
| 104720 | .each = .{ .once = &.{ |
| 104721 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104722 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104723 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104724 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104725 | .{ .@"0:", ._, .movzx, .dst0d, .leai(.tmp0b, .src0), ._, ._ }, |
| 104726 | } }, |
| 104727 | }, .{ |
| 104728 | .required_features = .{ .avx, null, null, null }, |
| 104729 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 104730 | .patterns = &.{ |
| 104731 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104732 | }, |
| 104733 | .call_frame = .{ .alignment = .@"32" }, |
| 104734 | .extra_temps = .{ |
| 104735 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104736 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104737 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104738 | .unused, |
| 104739 | .unused, |
| 104740 | .unused, |
| 104741 | .unused, |
| 104742 | .unused, |
| 104743 | .unused, |
| 104744 | .unused, |
| 104745 | .unused, |
| 104746 | }, |
| 104747 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104748 | .clobbers = .{ .eflags = true }, |
| 104749 | .each = .{ .once = &.{ |
| 104750 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104751 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104752 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104753 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104754 | .{ .@"0:", ._, .movsx, .dst0d, .leai(.tmp0b, .src0), ._, ._ }, |
| 104755 | } }, |
| 104756 | }, .{ |
| 104757 | .required_features = .{ .sse, null, null, null }, |
| 104758 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 104759 | .patterns = &.{ |
| 104760 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104761 | }, |
| 104762 | .call_frame = .{ .alignment = .@"16" }, |
| 104763 | .extra_temps = .{ |
| 104764 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104765 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104766 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104767 | .unused, |
| 104768 | .unused, |
| 104769 | .unused, |
| 104770 | .unused, |
| 104771 | .unused, |
| 104772 | .unused, |
| 104773 | .unused, |
| 104774 | .unused, |
| 104775 | }, |
| 104776 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104777 | .clobbers = .{ .eflags = true }, |
| 104778 | .each = .{ .once = &.{ |
| 104779 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104780 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104781 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104782 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104783 | .{ .@"0:", ._, .movsx, .dst0d, .leai(.tmp0b, .src0), ._, ._ }, |
| 104784 | } }, |
| 104785 | }, .{ |
| 104786 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 104787 | .patterns = &.{ |
| 104788 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104789 | }, |
| 104790 | .call_frame = .{ .alignment = .@"8" }, |
| 104791 | .extra_temps = .{ |
| 104792 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104793 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104794 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104795 | .unused, |
| 104796 | .unused, |
| 104797 | .unused, |
| 104798 | .unused, |
| 104799 | .unused, |
| 104800 | .unused, |
| 104801 | .unused, |
| 104802 | .unused, |
| 104803 | }, |
| 104804 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104805 | .clobbers = .{ .eflags = true }, |
| 104806 | .each = .{ .once = &.{ |
| 104807 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104808 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104809 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104810 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104811 | .{ .@"0:", ._, .movsx, .dst0d, .leai(.tmp0b, .src0), ._, ._ }, |
| 104812 | } }, |
| 104813 | }, .{ |
| 104814 | .required_features = .{ .avx, null, null, null }, |
| 104815 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| 104816 | .patterns = &.{ |
| 104817 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104818 | }, |
| 104819 | .call_frame = .{ .alignment = .@"32" }, |
| 104820 | .extra_temps = .{ |
| 104821 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104822 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104823 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104824 | .unused, |
| 104825 | .unused, |
| 104826 | .unused, |
| 104827 | .unused, |
| 104828 | .unused, |
| 104829 | .unused, |
| 104830 | .unused, |
| 104831 | .unused, |
| 104832 | }, |
| 104833 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104834 | .clobbers = .{ .eflags = true }, |
| 104835 | .each = .{ .once = &.{ |
| 104836 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104837 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104838 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104839 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104840 | .{ .@"0:", ._, .movzx, .dst0d, .leasi(.tmp0w, .@"2", .src0), ._, ._ }, |
| 104841 | } }, |
| 104842 | }, .{ |
| 104843 | .required_features = .{ .sse, null, null, null }, |
| 104844 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| 104845 | .patterns = &.{ |
| 104846 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104847 | }, |
| 104848 | .call_frame = .{ .alignment = .@"16" }, |
| 104849 | .extra_temps = .{ |
| 104850 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104851 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104852 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104853 | .unused, |
| 104854 | .unused, |
| 104855 | .unused, |
| 104856 | .unused, |
| 104857 | .unused, |
| 104858 | .unused, |
| 104859 | .unused, |
| 104860 | .unused, |
| 104861 | }, |
| 104862 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104863 | .clobbers = .{ .eflags = true }, |
| 104864 | .each = .{ .once = &.{ |
| 104865 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104866 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104867 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104868 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104869 | .{ .@"0:", ._, .movzx, .dst0d, .leasi(.tmp0w, .@"2", .src0), ._, ._ }, |
| 104870 | } }, |
| 104871 | }, .{ |
| 104872 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| 104873 | .patterns = &.{ |
| 104874 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104875 | }, |
| 104876 | .call_frame = .{ .alignment = .@"8" }, |
| 104877 | .extra_temps = .{ |
| 104878 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104879 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104880 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104881 | .unused, |
| 104882 | .unused, |
| 104883 | .unused, |
| 104884 | .unused, |
| 104885 | .unused, |
| 104886 | .unused, |
| 104887 | .unused, |
| 104888 | .unused, |
| 104889 | }, |
| 104890 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104891 | .clobbers = .{ .eflags = true }, |
| 104892 | .each = .{ .once = &.{ |
| 104893 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104894 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104895 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104896 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104897 | .{ .@"0:", ._, .movzx, .dst0d, .leasi(.tmp0w, .@"2", .src0), ._, ._ }, |
| 104898 | } }, |
| 104899 | }, .{ |
| 104900 | .required_features = .{ .avx, null, null, null }, |
| 104901 | .dst_constraints = .{ .{ .signed_int = .word }, .any }, |
| 104902 | .patterns = &.{ |
| 104903 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104904 | }, |
| 104905 | .call_frame = .{ .alignment = .@"32" }, |
| 104906 | .extra_temps = .{ |
| 104907 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104908 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104909 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104910 | .unused, |
| 104911 | .unused, |
| 104912 | .unused, |
| 104913 | .unused, |
| 104914 | .unused, |
| 104915 | .unused, |
| 104916 | .unused, |
| 104917 | .unused, |
| 104918 | }, |
| 104919 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104920 | .clobbers = .{ .eflags = true }, |
| 104921 | .each = .{ .once = &.{ |
| 104922 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104923 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104924 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104925 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104926 | .{ .@"0:", ._, .movsx, .dst0d, .leasi(.tmp0w, .@"2", .src0), ._, ._ }, |
| 104927 | } }, |
| 104928 | }, .{ |
| 104929 | .required_features = .{ .sse, null, null, null }, |
| 104930 | .dst_constraints = .{ .{ .signed_int = .word }, .any }, |
| 104931 | .patterns = &.{ |
| 104932 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104933 | }, |
| 104934 | .call_frame = .{ .alignment = .@"16" }, |
| 104935 | .extra_temps = .{ |
| 104936 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104937 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104938 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104939 | .unused, |
| 104940 | .unused, |
| 104941 | .unused, |
| 104942 | .unused, |
| 104943 | .unused, |
| 104944 | .unused, |
| 104945 | .unused, |
| 104946 | .unused, |
| 104947 | }, |
| 104948 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104949 | .clobbers = .{ .eflags = true }, |
| 104950 | .each = .{ .once = &.{ |
| 104951 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104952 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104953 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104954 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104955 | .{ .@"0:", ._, .movsx, .dst0d, .leasi(.tmp0w, .@"2", .src0), ._, ._ }, |
| 104956 | } }, |
| 104957 | }, .{ |
| 104958 | .dst_constraints = .{ .{ .signed_int = .word }, .any }, |
| 104959 | .patterns = &.{ |
| 104960 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104961 | }, |
| 104962 | .call_frame = .{ .alignment = .@"8" }, |
| 104963 | .extra_temps = .{ |
| 104964 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104965 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104966 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104967 | .unused, |
| 104968 | .unused, |
| 104969 | .unused, |
| 104970 | .unused, |
| 104971 | .unused, |
| 104972 | .unused, |
| 104973 | .unused, |
| 104974 | .unused, |
| 104975 | }, |
| 104976 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 104977 | .clobbers = .{ .eflags = true }, |
| 104978 | .each = .{ .once = &.{ |
| 104979 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 104980 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 104981 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 104982 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104983 | .{ .@"0:", ._, .movsx, .dst0d, .leasi(.tmp0w, .@"2", .src0), ._, ._ }, |
| 104984 | } }, |
| 104985 | }, .{ |
| 104986 | .required_features = .{ .avx, null, null, null }, |
| 104987 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 104988 | .patterns = &.{ |
| 104989 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 104990 | }, |
| 104991 | .call_frame = .{ .alignment = .@"32" }, |
| 104992 | .extra_temps = .{ |
| 104993 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104994 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 104995 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 104996 | .unused, |
| 104997 | .unused, |
| 104998 | .unused, |
| 104999 | .unused, |
| 105000 | .unused, |
| 105001 | .unused, |
| 105002 | .unused, |
| 105003 | .unused, |
| 105004 | }, |
| 105005 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 105006 | .clobbers = .{ .eflags = true }, |
| 105007 | .each = .{ .once = &.{ |
| 105008 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 105009 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 105010 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 105011 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105012 | .{ .@"0:", ._, .mov, .dst0d, .leasi(.tmp0d, .@"4", .src0), ._, ._ }, |
| 105013 | } }, |
| 105014 | }, .{ |
| 105015 | .required_features = .{ .sse, null, null, null }, |
| 105016 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 105017 | .patterns = &.{ |
| 105018 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 105019 | }, |
| 105020 | .call_frame = .{ .alignment = .@"16" }, |
| 105021 | .extra_temps = .{ |
| 105022 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105023 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 105024 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 105025 | .unused, |
| 105026 | .unused, |
| 105027 | .unused, |
| 105028 | .unused, |
| 105029 | .unused, |
| 105030 | .unused, |
| 105031 | .unused, |
| 105032 | .unused, |
| 105033 | }, |
| 105034 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 105035 | .clobbers = .{ .eflags = true }, |
| 105036 | .each = .{ .once = &.{ |
| 105037 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 105038 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 105039 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 105040 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105041 | .{ .@"0:", ._, .mov, .dst0d, .leasi(.tmp0d, .@"4", .src0), ._, ._ }, |
| 105042 | } }, |
| 105043 | }, .{ |
| 105044 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 105045 | .patterns = &.{ |
| 105046 | .{ .src = .{ .to_gpr, .simm32, .none } }, |
| 105047 | }, |
| 105048 | .call_frame = .{ .alignment = .@"8" }, |
| 105049 | .extra_temps = .{ |
| 105050 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105051 | .{ .type = .usize, .kind = .{ .lazy_sym = .{ .kind = .deferred_const_data, .ref = .src0 } } }, |
| 105052 | .{ .type = .usize, .kind = .{ .panic_func = .corrupt_restricted_value } }, |
| 105053 | .unused, |
| 105054 | .unused, |
| 105055 | .unused, |
| 105056 | .unused, |
| 105057 | .unused, |
| 105058 | .unused, |
| 105059 | .unused, |
| 105060 | .unused, |
| 105061 | }, |
| 105062 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| 105063 | .clobbers = .{ .eflags = true }, |
| 105064 | .each = .{ .once = &.{ |
| 105065 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp1, .add_src1), ._, ._ }, |
| 105066 | .{ ._, ._, .cmp, .src0d, .leaa(.tmp0d, .sub_src1), ._, ._ }, |
| 105067 | .{ ._, ._b, .j, .@"0f", ._, ._, ._ }, |
| 105068 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105069 | .{ .@"0:", ._, .mov, .dst0d, .leasi(.tmp0d, .@"4", .src0), ._, ._ }, |
| 105070 | } }, |
| 105071 | } }, |
| 105072 | }) catch |err| switch (err) { |
| 105073 | error.SelectFailed => return cg.fail("failed to select {t} {f} {f} {f}", .{ |
| 105074 | air_tag, |
| 105075 | unrestricted_ty.fmt(pt), |
| 105076 | restricted_ty.fmt(pt), |
| 105077 | ops[0].tracking(cg), |
| 105078 | }), |
| 105079 | else => |e| return e, |
| 104134 | 105080 | }; |
| 104135 | 105081 | for (ops[1..]) |op| try op.die(cg); |
| 104136 | | try res.finish(inst, &.{ty_op.operand}, ops[0..1], cg); |
| 105082 | try res[0].finish(inst, &.{ty_op.operand}, ops[0..1], cg); |
| 104137 | 105083 | }, |
| 104138 | 105084 | .struct_field_ptr => { |
| 104139 | 105085 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| ... | ... | @@ -104306,7 +105252,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104306 | 105252 | .{ ._, ._, .bt, .src0d, .src1d, ._, ._ }, |
| 104307 | 105253 | } }, |
| 104308 | 105254 | }, .{ |
| 104309 | | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 105255 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 104310 | 105256 | .patterns = &.{ |
| 104311 | 105257 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 104312 | 105258 | }, |
| ... | ... | @@ -104315,32 +105261,68 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104315 | 105261 | .{ ._, ._, .movzx, .dst0d, .mema(.src0b, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 104316 | 105262 | } }, |
| 104317 | 105263 | }, .{ |
| 104318 | | .dst_constraints = .{ .{ .int = .byte }, .any }, |
| 105264 | .dst_constraints = .{ .{ .unsigned_int = .byte }, .any }, |
| 104319 | 105265 | .patterns = &.{ |
| 104320 | 105266 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 104321 | 105267 | }, |
| 104322 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 105268 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } }, .unused }, |
| 104323 | 105269 | .each = .{ .once = &.{ |
| 104324 | 105270 | .{ ._, ._, .movzx, .dst0d, .memi(.src0b, .src1), ._, ._ }, |
| 104325 | 105271 | } }, |
| 104326 | 105272 | }, .{ |
| 104327 | | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 105273 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 104328 | 105274 | .patterns = &.{ |
| 104329 | 105275 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 104330 | 105276 | }, |
| 104331 | 105277 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 104332 | 105278 | .each = .{ .once = &.{ |
| 104333 | | .{ ._, ._, .movzx, .dst0d, .mema(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 105279 | .{ ._, ._, .movsx, .dst0d, .mema(.src0b, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 104334 | 105280 | } }, |
| 104335 | 105281 | }, .{ |
| 104336 | | .dst_constraints = .{ .{ .int = .word }, .any }, |
| 105282 | .dst_constraints = .{ .{ .signed_int = .byte }, .any }, |
| 104337 | 105283 | .patterns = &.{ |
| 104338 | 105284 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 104339 | 105285 | }, |
| 105286 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } }, .unused }, |
| 105287 | .each = .{ .once = &.{ |
| 105288 | .{ ._, ._, .movsx, .dst0d, .memi(.src0b, .src1), ._, ._ }, |
| 105289 | } }, |
| 105290 | }, .{ |
| 105291 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| 105292 | .patterns = &.{ |
| 105293 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 105294 | }, |
| 104340 | 105295 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 105296 | .each = .{ .once = &.{ |
| 105297 | .{ ._, ._, .movzx, .dst0d, .mema(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 105298 | } }, |
| 105299 | }, .{ |
| 105300 | .dst_constraints = .{ .{ .unsigned_int = .word }, .any }, |
| 105301 | .patterns = &.{ |
| 105302 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 105303 | }, |
| 105304 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } }, .unused }, |
| 104341 | 105305 | .each = .{ .once = &.{ |
| 104342 | 105306 | .{ ._, ._, .movzx, .dst0d, .memsi(.src0w, .@"2", .src1), ._, ._ }, |
| 104343 | 105307 | } }, |
| 105308 | }, .{ |
| 105309 | .dst_constraints = .{ .{ .signed_int = .word }, .any }, |
| 105310 | .patterns = &.{ |
| 105311 | .{ .src = .{ .to_mem, .simm32, .none } }, |
| 105312 | }, |
| 105313 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 105314 | .each = .{ .once = &.{ |
| 105315 | .{ ._, ._, .movsx, .dst0d, .mema(.src0w, .add_src0_elem_size_mul_src1), ._, ._ }, |
| 105316 | } }, |
| 105317 | }, .{ |
| 105318 | .dst_constraints = .{ .{ .signed_int = .word }, .any }, |
| 105319 | .patterns = &.{ |
| 105320 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 105321 | }, |
| 105322 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } }, .unused }, |
| 105323 | .each = .{ .once = &.{ |
| 105324 | .{ ._, ._, .movsx, .dst0d, .memsi(.src0w, .@"2", .src1), ._, ._ }, |
| 105325 | } }, |
| 104344 | 105326 | }, .{ |
| 104345 | 105327 | .dst_constraints = .{ .{ .int = .dword }, .any }, |
| 104346 | 105328 | .patterns = &.{ |
| ... | ... | @@ -104355,7 +105337,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104355 | 105337 | .patterns = &.{ |
| 104356 | 105338 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 104357 | 105339 | }, |
| 104358 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 105340 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } }, .unused }, |
| 104359 | 105341 | .each = .{ .once = &.{ |
| 104360 | 105342 | .{ ._, ._, .mov, .dst0d, .memsi(.src0d, .@"4", .src1), ._, ._ }, |
| 104361 | 105343 | } }, |
| ... | ... | @@ -104375,7 +105357,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104375 | 105357 | .patterns = &.{ |
| 104376 | 105358 | .{ .src = .{ .to_mem, .to_gpr, .none } }, |
| 104377 | 105359 | }, |
| 104378 | | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 105360 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } }, .unused }, |
| 104379 | 105361 | .each = .{ .once = &.{ |
| 104380 | 105362 | .{ ._, ._, .mov, .dst0q, .memsi(.src0q, .@"8", .src1), ._, ._ }, |
| 104381 | 105363 | } }, |
| ... | ... | @@ -174389,28 +175371,26 @@ fn allocRegOrMemAdvanced(self: *CodeGen, ty: Type, inst: ?Air.Inst.Index, reg_ok |
| 174389 | 175371 | |
| 174390 | 175372 | if (reg_ok) need_mem: { |
| 174391 | 175373 | if (!std.math.isPowerOfTwo(abi_size)) break :need_mem; |
| 174392 | | const unrestricted_ty: Type = if (ty.unrestrictedType(zcu)) |unrestricted_ty| switch (ty.restrictedRepr(zcu)) { |
| 174393 | | .indirect => .usize, |
| 174394 | | .direct => unrestricted_ty, |
| 174395 | | } else ty; |
| 174396 | | if (abi_size <= @as(u32, max_abi_size: switch (unrestricted_ty.zigTypeTag(zcu)) { |
| 174397 | | .float => switch (ty.floatBits(self.target)) { |
| 174398 | | 16, 32, 64, 128 => 16, |
| 174399 | | 80 => break :need_mem, |
| 174400 | | else => unreachable, |
| 174401 | | }, |
| 174402 | | .vector => { |
| 174403 | | const elem_ty = ty.childType(zcu); |
| 174404 | | break :max_abi_size if (elem_ty.toIntern() == .bool_type) |
| 174405 | | 8 |
| 174406 | | else if (self.floatBits(elem_ty)) |float_bits| switch (float_bits) { |
| 174407 | | 16, 32, 64, 128 => self.vectorSize(.float), |
| 175374 | if (zcu.intern_pool.isRestrictedType(ty.toIntern()) or |
| 175375 | abi_size <= @as(u32, max_abi_size: switch (ty.zigTypeTag(zcu)) { |
| 175376 | .float => switch (ty.floatBits(self.target)) { |
| 175377 | 16, 32, 64, 128 => 16, |
| 174408 | 175378 | 80 => break :need_mem, |
| 174409 | 175379 | else => unreachable, |
| 174410 | | } else self.vectorSize(.int); |
| 174411 | | }, |
| 174412 | | else => 8, |
| 174413 | | })) { |
| 175380 | }, |
| 175381 | .vector => { |
| 175382 | const elem_ty = ty.childType(zcu); |
| 175383 | break :max_abi_size if (elem_ty.toIntern() == .bool_type) |
| 175384 | 8 |
| 175385 | else if (self.floatBits(elem_ty)) |float_bits| switch (float_bits) { |
| 175386 | 16, 32, 64, 128 => self.vectorSize(.float), |
| 175387 | 80 => break :need_mem, |
| 175388 | else => unreachable, |
| 175389 | } else self.vectorSize(.int); |
| 175390 | }, |
| 175391 | else => 8, |
| 175392 | })) |
| 175393 | { |
| 174414 | 175394 | if (self.register_manager.tryAllocReg(inst, self.regSetForType(ty))) |reg| { |
| 174415 | 175395 | return MCValue{ .register = registerAlias(reg, abi_size) }; |
| 174416 | 175396 | } |
| ... | ... | @@ -181410,7 +182390,6 @@ fn lowerValue(cg: *CodeGen, val: Value) Allocator.Error!MCValue { |
| 181410 | 182390 | .lea_nav => |nav| .{ .lea_nav = nav }, |
| 181411 | 182391 | .lea_uav => |uav| .{ .lea_uav = uav }, |
| 181412 | 182392 | .load_uav => |uav| .{ .load_uav = uav }, |
| 181413 | | .lea_lazy_sym => |lazy_sym| .{ .lea_lazy_sym = lazy_sym }, |
| 181414 | 182393 | }; |
| 181415 | 182394 | } |
| 181416 | 182395 | |
| ... | ... | @@ -189344,7 +190323,6 @@ const Select = struct { |
| 189344 | 190323 | ptr_size, |
| 189345 | 190324 | ptr_bit_size, |
| 189346 | 190325 | size, |
| 189347 | | log2_size, |
| 189348 | 190326 | src0_size, |
| 189349 | 190327 | dst0_size, |
| 189350 | 190328 | delta_size, |
| ... | ... | @@ -189379,7 +190357,6 @@ const Select = struct { |
| 189379 | 190357 | rhs: Memory.Scale, |
| 189380 | 190358 | |
| 189381 | 190359 | const none: Adjust = .{ .sign = .pos, .lhs = .none, .op = .mul, .rhs = .@"1" }; |
| 189382 | | const add_ptr_size: Adjust = .{ .sign = .pos, .lhs = .ptr_size, .op = .mul, .rhs = .@"1" }; |
| 189383 | 190360 | const sub_ptr_size: Adjust = .{ .sign = .neg, .lhs = .ptr_size, .op = .mul, .rhs = .@"1" }; |
| 189384 | 190361 | const add_ptr_bit_size: Adjust = .{ .sign = .pos, .lhs = .ptr_bit_size, .op = .mul, .rhs = .@"1" }; |
| 189385 | 190362 | const add_size: Adjust = .{ .sign = .pos, .lhs = .size, .op = .mul, .rhs = .@"1" }; |
| ... | ... | @@ -189388,7 +190365,6 @@ const Select = struct { |
| 189388 | 190365 | const sub_size_div_8: Adjust = .{ .sign = .neg, .lhs = .size, .op = .div, .rhs = .@"8" }; |
| 189389 | 190366 | const sub_size_div_4: Adjust = .{ .sign = .neg, .lhs = .size, .op = .div, .rhs = .@"4" }; |
| 189390 | 190367 | const sub_size: Adjust = .{ .sign = .neg, .lhs = .size, .op = .mul, .rhs = .@"1" }; |
| 189391 | | const add_log2_size: Adjust = .{ .sign = .pos, .lhs = .log2_size, .op = .mul, .rhs = .@"1" }; |
| 189392 | 190368 | const sub_src0_size_div_8: Adjust = .{ .sign = .neg, .lhs = .src0_size, .op = .div, .rhs = .@"8" }; |
| 189393 | 190369 | const sub_src0_size: Adjust = .{ .sign = .neg, .lhs = .src0_size, .op = .mul, .rhs = .@"1" }; |
| 189394 | 190370 | const add_src0_size: Adjust = .{ .sign = .pos, .lhs = .src0_size, .op = .mul, .rhs = .@"1" }; |
| ... | ... | @@ -189449,6 +190425,7 @@ const Select = struct { |
| 189449 | 190425 | const add_src1: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .mul, .rhs = .@"1" }; |
| 189450 | 190426 | const add_src1_rem_32: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"4" }; |
| 189451 | 190427 | const add_src1_rem_64: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"8" }; |
| 190428 | const sub_src1: Adjust = .{ .sign = .neg, .lhs = .src1, .op = .mul, .rhs = .@"1" }; |
| 189452 | 190429 | const add_src1_sub_bit_size: Adjust = .{ .sign = .pos, .lhs = .src1_sub_bit_size, .op = .mul, .rhs = .@"1" }; |
| 189453 | 190430 | const add_log2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .log2_src0_elem_size, .op = .mul, .rhs = .@"1" }; |
| 189454 | 190431 | const elem_mask: Adjust = .{ .sign = .pos, .lhs = .elem_mask, .op = .mul, .rhs = .@"1" }; |
| ... | ... | @@ -190323,7 +191300,6 @@ const Select = struct { |
| 190323 | 191300 | .none => 0, |
| 190324 | 191301 | .ptr_size => @divExact(s.cg.target.ptrBitWidth(), 8), |
| 190325 | 191302 | .ptr_bit_size => s.cg.target.ptrBitWidth(), |
| 190326 | | .log2_size => std.math.log2_int_ceil(u64, op.flags.base.ref.typeOf(s).abiSize(s.cg.pt.zcu)), |
| 190327 | 191303 | .size => @intCast(op.flags.base.ref.typeOf(s).abiSize(s.cg.pt.zcu)), |
| 190328 | 191304 | .src0_size => @intCast(Select.Operand.Ref.src0.typeOf(s).abiSize(s.cg.pt.zcu)), |
| 190329 | 191305 | .dst0_size => @intCast(Select.Operand.Ref.dst0.typeOf(s).abiSize(s.cg.pt.zcu)), |