| ... | @@ -73,10 +73,6 @@ mir_instructions: std.MultiArrayList(Mir.Inst) = .empty, | ... | @@ -73,10 +73,6 @@ mir_instructions: std.MultiArrayList(Mir.Inst) = .empty, |
| 73 | mir_extra: std.ArrayListUnmanaged(u32) = .empty, | 73 | mir_extra: std.ArrayListUnmanaged(u32) = .empty, |
| 74 | mir_table: std.ArrayListUnmanaged(Mir.Inst.Index) = .empty, | 74 | mir_table: std.ArrayListUnmanaged(Mir.Inst.Index) = .empty, |
| 75 | | 75 | |
| 76 | /// Byte offset within the source file of the ending curly. | | |
| 77 | end_di_line: u32, | | |
| 78 | end_di_column: u32, | | |
| 79 | | | |
| 80 | /// The value is an offset into the `Function` `code` from the beginning. | 76 | /// The value is an offset into the `Function` `code` from the beginning. |
| 81 | /// To perform the reloc, write 32-bit signed little-endian integer | 77 | /// To perform the reloc, write 32-bit signed little-endian integer |
| 82 | /// which is a relative jump, based on the address following the reloc. | 78 | /// which is a relative jump, based on the address following the reloc. |
| ... | @@ -912,8 +908,6 @@ pub fn generate( | ... | @@ -912,8 +908,6 @@ pub fn generate( |
| 912 | .err_ret_trace_reg = undefined, // populated after `resolveCallingConventionValues` | 908 | .err_ret_trace_reg = undefined, // populated after `resolveCallingConventionValues` |
| 913 | .fn_type = fn_type, | 909 | .fn_type = fn_type, |
| 914 | .src_loc = src_loc, | 910 | .src_loc = src_loc, |
| 915 | .end_di_line = func.rbrace_line, | | |
| 916 | .end_di_column = func.rbrace_column, | | |
| 917 | }; | 911 | }; |
| 918 | defer { | 912 | defer { |
| 919 | function.frame_allocs.deinit(gpa); | 913 | function.frame_allocs.deinit(gpa); |
| ... | @@ -1000,6 +994,16 @@ pub fn generate( | ... | @@ -1000,6 +994,16 @@ pub fn generate( |
| 1000 | else => |e| return e, | 994 | else => |e| return e, |
| 1001 | }; | 995 | }; |
| 1002 | | 996 | |
| | 997 | // Drop them off at the rbrace. |
| | 998 | if (debug_output != .none) _ = try function.addInst(.{ |
| | 999 | .tag = .pseudo, |
| | 1000 | .ops = .pseudo_dbg_line_line_column, |
| | 1001 | .data = .{ .line_column = .{ |
| | 1002 | .line = func.rbrace_line, |
| | 1003 | .column = func.rbrace_column, |
| | 1004 | } }, |
| | 1005 | }); |
| | 1006 | |
| 1003 | var mir: Mir = .{ | 1007 | var mir: Mir = .{ |
| 1004 | .instructions = function.mir_instructions.toOwnedSlice(), | 1008 | .instructions = function.mir_instructions.toOwnedSlice(), |
| 1005 | .extra = try function.mir_extra.toOwnedSlice(gpa), | 1009 | .extra = try function.mir_extra.toOwnedSlice(gpa), |
| ... | @@ -1076,8 +1080,6 @@ pub fn generateLazy( | ... | @@ -1076,8 +1080,6 @@ pub fn generateLazy( |
| 1076 | .err_ret_trace_reg = undefined, | 1080 | .err_ret_trace_reg = undefined, |
| 1077 | .fn_type = undefined, | 1081 | .fn_type = undefined, |
| 1078 | .src_loc = src_loc, | 1082 | .src_loc = src_loc, |
| 1079 | .end_di_line = undefined, // no debug info yet | | |
| 1080 | .end_di_column = undefined, // no debug info yet | | |
| 1081 | }; | 1083 | }; |
| 1082 | defer { | 1084 | defer { |
| 1083 | function.inst_tracking.deinit(gpa); | 1085 | function.inst_tracking.deinit(gpa); |
| ... | @@ -2381,16 +2383,6 @@ fn gen(self: *CodeGen) InnerError!void { | ... | @@ -2381,16 +2383,6 @@ fn gen(self: *CodeGen) InnerError!void { |
| 2381 | try self.genBody(self.air.getMainBody()); | 2383 | try self.genBody(self.air.getMainBody()); |
| 2382 | if (self.debug_output != .none) try self.asmPseudo(.pseudo_dbg_epilogue_begin_none); | 2384 | if (self.debug_output != .none) try self.asmPseudo(.pseudo_dbg_epilogue_begin_none); |
| 2383 | } | 2385 | } |
| 2384 | | | |
| 2385 | // Drop them off at the rbrace. | | |
| 2386 | if (self.debug_output != .none) _ = try self.addInst(.{ | | |
| 2387 | .tag = .pseudo, | | |
| 2388 | .ops = .pseudo_dbg_line_line_column, | | |
| 2389 | .data = .{ .line_column = .{ | | |
| 2390 | .line = self.end_di_line, | | |
| 2391 | .column = self.end_di_column, | | |
| 2392 | } }, | | |
| 2393 | }); | | |
| 2394 | } | 2386 | } |
| 2395 | | 2387 | |
| 2396 | fn checkInvariantsAfterAirInst(self: *CodeGen) void { | 2388 | fn checkInvariantsAfterAirInst(self: *CodeGen) void { |
| ... | @@ -2416,7 +2408,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2416,7 +2408,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2416 | } | 2408 | } |
| 2417 | | 2409 | |
| 2418 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | 2410 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2419 | @setEvalBranchQuota(15_100); | 2411 | @setEvalBranchQuota(15_800); |
| 2420 | const pt = cg.pt; | 2412 | const pt = cg.pt; |
| 2421 | const zcu = pt.zcu; | 2413 | const zcu = pt.zcu; |
| 2422 | const ip = &zcu.intern_pool; | 2414 | const ip = &zcu.intern_pool; |
| ... | @@ -2457,8 +2449,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2457,8 +2449,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2457 | .mul_sat => try cg.airMulSat(inst), | 2449 | .mul_sat => try cg.airMulSat(inst), |
| 2458 | .shl_sat => try cg.airShlSat(inst), | 2450 | .shl_sat => try cg.airShlSat(inst), |
| 2459 | | 2451 | |
| 2460 | .shl_with_overflow => try cg.airShlWithOverflow(inst), | | |
| 2461 | | | |
| 2462 | .bitcast => try cg.airBitCast(inst), | 2452 | .bitcast => try cg.airBitCast(inst), |
| 2463 | | 2453 | |
| 2464 | .splat => try cg.airSplat(inst), | 2454 | .splat => try cg.airSplat(inst), |
| ... | @@ -32923,455 +32913,3801 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -32923,455 +32913,3801 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32923 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .ui(0), ._, ._ }, | 32913 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .ui(0), ._, ._ }, |
| 32924 | } }, | 32914 | } }, |
| 32925 | }, .{ | 32915 | }, .{ |
| 32926 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 32916 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 32917 | .src_constraints = .{ |
| | 32918 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 32919 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 32920 | .any, |
| | 32921 | }, |
| | 32922 | .patterns = &.{ |
| | 32923 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 32924 | }, |
| | 32925 | .extra_temps = .{ |
| | 32926 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32927 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 32928 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 32929 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32930 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 32931 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 32932 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 32933 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 32934 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 32935 | .unused, |
| | 32936 | .unused, |
| | 32937 | }, |
| | 32938 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 32939 | .clobbers = .{ .eflags = true }, |
| | 32940 | .each = .{ .once = &.{ |
| | 32941 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 32942 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| | 32943 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 32944 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| | 32945 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 32946 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| | 32947 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 32948 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| | 32949 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 32950 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 32951 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 32952 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| | 32953 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| | 32954 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| | 32955 | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, |
| | 32956 | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, |
| | 32957 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| | 32958 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| | 32959 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| | 32960 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| | 32961 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| | 32962 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| | 32963 | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, |
| | 32964 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| | 32965 | .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, |
| | 32966 | .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ }, |
| | 32967 | .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, |
| | 32968 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 32969 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| | 32970 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 32971 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 32972 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 32973 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 32974 | .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 32975 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, |
| | 32976 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| | 32977 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp0q, ._, ._ }, |
| | 32978 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| | 32979 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .ui(0), ._, ._ }, |
| | 32980 | } }, |
| | 32981 | }, .{ |
| | 32982 | .required_features = .{ .@"64bit", null, null, null }, |
| | 32983 | .src_constraints = .{ |
| | 32984 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 32985 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 32986 | .any, |
| | 32987 | }, |
| | 32988 | .patterns = &.{ |
| | 32989 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 32990 | }, |
| | 32991 | .extra_temps = .{ |
| | 32992 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32993 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 32994 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 32995 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32996 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 32997 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 32998 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 32999 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 33000 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 33001 | .unused, |
| | 33002 | .unused, |
| | 33003 | }, |
| | 33004 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 33005 | .clobbers = .{ .eflags = true }, |
| | 33006 | .each = .{ .once = &.{ |
| | 33007 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 33008 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| | 33009 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 33010 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| | 33011 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 33012 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| | 33013 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 33014 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| | 33015 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 33016 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 33017 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 33018 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| | 33019 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| | 33020 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| | 33021 | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, |
| | 33022 | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, |
| | 33023 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| | 33024 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| | 33025 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| | 33026 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| | 33027 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| | 33028 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| | 33029 | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, |
| | 33030 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| | 33031 | .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, |
| | 33032 | .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ }, |
| | 33033 | .{ ._, ._ns, .j, .@"1b", ._, ._, ._ }, |
| | 33034 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 33035 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| | 33036 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 33037 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 33038 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 33039 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 33040 | .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 33041 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, |
| | 33042 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| | 33043 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp0q, ._, ._ }, |
| | 33044 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| | 33045 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .ui(0), ._, ._ }, |
| | 33046 | } }, |
| | 33047 | }, .{ |
| | 33048 | .required_features = .{ .@"64bit", .bmi2, .adx, null }, |
| | 33049 | .src_constraints = .{ |
| | 33050 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 33051 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 33052 | .any, |
| | 33053 | }, |
| | 33054 | .patterns = &.{ |
| | 33055 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 33056 | }, |
| | 33057 | .extra_temps = .{ |
| | 33058 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33059 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 33060 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33061 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33062 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 33063 | .{ .type = .isize, .kind = .{ .reg = .rcx } }, |
| | 33064 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33065 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33066 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33067 | .unused, |
| | 33068 | .unused, |
| | 33069 | }, |
| | 33070 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 33071 | .clobbers = .{ .eflags = true }, |
| | 33072 | .each = .{ .once = &.{ |
| | 33073 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 33074 | .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ }, |
| | 33075 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 33076 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 33077 | .{ .@"0:", ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 33078 | .{ ._, ._, .@"or", .tmp4q, .memi(.src0q, .tmp0), ._, ._ }, |
| | 33079 | .{ ._, ._z, .j, .@"2f", ._, ._, ._ }, |
| | 33080 | .{ ._, ._, .lea, .tmp5p, .leaad(.tmp0, .sub_src0_size, 8), ._, ._ }, |
| | 33081 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 33082 | .{ .@"1:", ._x, .mul, .tmp8q, .tmp7q, .leai(.tmp1q, .tmp5), ._ }, |
| | 33083 | .{ ._, ._x, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| | 33084 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp5, .add_src0_size, -8), .tmp7q, ._, ._ }, |
| | 33085 | .{ ._, ._rcxz, .j, .@"1f", ._, ._, ._ }, |
| | 33086 | .{ ._, ._x, .ado, .tmp8q, .memia(.dst0q, .tmp5, .add_src0_size), ._, ._ }, |
| | 33087 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| | 33088 | .{ ._, ._, .lea, .tmp5p, .lead(.tmp5, 8), ._, ._ }, |
| | 33089 | .{ ._, ._mp, .j, .@"1b", ._, ._, ._ }, |
| | 33090 | .{ .@"2:", ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ }, |
| | 33091 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 33092 | .{ .@"1:", ._, .mov, .tmp4d, .tmp0d, ._, ._ }, |
| | 33093 | .{ ._, ._x, .ado, .tmp8q, .tmp3q, ._, ._ }, |
| | 33094 | .{ ._, ._x, .adc, .tmp8q, .tmp3q, ._, ._ }, |
| | 33095 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| | 33096 | .{ .@"1:", ._, .@"or", .tmp8q, .leai(.tmp1q, .tmp4), ._, ._ }, |
| | 33097 | .{ .@"2:", ._, .sub, .tmp4d, .si(8), ._, ._ }, |
| | 33098 | .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, |
| | 33099 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 33100 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| | 33101 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 33102 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 33103 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| | 33104 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 33105 | .{ ._, ._, .bzhi, .tmp0q, .tmp1q, .tmp0q, ._ }, |
| | 33106 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| | 33107 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, |
| | 33108 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| | 33109 | } }, |
| | 33110 | }, .{ |
| | 33111 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| | 33112 | .src_constraints = .{ |
| | 33113 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 33114 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 33115 | .any, |
| | 33116 | }, |
| | 33117 | .patterns = &.{ |
| | 33118 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 33119 | }, |
| | 33120 | .extra_temps = .{ |
| | 33121 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33122 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 33123 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33124 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33125 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 33126 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 33127 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33128 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33129 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33130 | .unused, |
| | 33131 | .unused, |
| | 33132 | }, |
| | 33133 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 33134 | .clobbers = .{ .eflags = true }, |
| | 33135 | .each = .{ .once = &.{ |
| | 33136 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 33137 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| | 33138 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 33139 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| | 33140 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 33141 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| | 33142 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 33143 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| | 33144 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 33145 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 33146 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 33147 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| | 33148 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| | 33149 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| | 33150 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| | 33151 | .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ }, |
| | 33152 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| | 33153 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| | 33154 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| | 33155 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| | 33156 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| | 33157 | .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ }, |
| | 33158 | .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ }, |
| | 33159 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| | 33160 | .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, |
| | 33161 | .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ }, |
| | 33162 | .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, |
| | 33163 | .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ }, |
| | 33164 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| | 33165 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 33166 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 33167 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| | 33168 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 33169 | .{ ._, ._, .bzhi, .tmp0q, .tmp1q, .tmp0q, ._ }, |
| | 33170 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| | 33171 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, |
| | 33172 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| | 33173 | } }, |
| | 33174 | }, .{ |
| | 33175 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 33176 | .src_constraints = .{ |
| | 33177 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 33178 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 33179 | .any, |
| | 33180 | }, |
| | 33181 | .patterns = &.{ |
| | 33182 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 33183 | }, |
| | 33184 | .extra_temps = .{ |
| | 33185 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33186 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 33187 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33188 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33189 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 33190 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 33191 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33192 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33193 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33194 | .unused, |
| | 33195 | .unused, |
| | 33196 | }, |
| | 33197 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 33198 | .clobbers = .{ .eflags = true }, |
| | 33199 | .each = .{ .once = &.{ |
| | 33200 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 33201 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| | 33202 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 33203 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| | 33204 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 33205 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| | 33206 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 33207 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| | 33208 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 33209 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 33210 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 33211 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| | 33212 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| | 33213 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| | 33214 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| | 33215 | .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ }, |
| | 33216 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| | 33217 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| | 33218 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| | 33219 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| | 33220 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| | 33221 | .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ }, |
| | 33222 | .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ }, |
| | 33223 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| | 33224 | .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, |
| | 33225 | .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ }, |
| | 33226 | .{ ._, ._ns, .j, .@"1b", ._, ._, ._ }, |
| | 33227 | .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ }, |
| | 33228 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| | 33229 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 33230 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 33231 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| | 33232 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 33233 | .{ ._, ._, .bzhi, .tmp0q, .tmp1q, .tmp0q, ._ }, |
| | 33234 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| | 33235 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, |
| | 33236 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| | 33237 | } }, |
| | 33238 | }, .{ |
| | 33239 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 33240 | .src_constraints = .{ |
| | 33241 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 33242 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 33243 | .any, |
| | 33244 | }, |
| | 33245 | .patterns = &.{ |
| | 33246 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 33247 | }, |
| | 33248 | .extra_temps = .{ |
| | 33249 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33250 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 33251 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33252 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33253 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33254 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 33255 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33256 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 33257 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 33258 | .unused, |
| | 33259 | .unused, |
| | 33260 | }, |
| | 33261 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 33262 | .clobbers = .{ .eflags = true }, |
| | 33263 | .each = .{ .once = &.{ |
| | 33264 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 33265 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| | 33266 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 33267 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| | 33268 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 33269 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| | 33270 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 33271 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| | 33272 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 33273 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 33274 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 33275 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| | 33276 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| | 33277 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| | 33278 | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, |
| | 33279 | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, |
| | 33280 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| | 33281 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| | 33282 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| | 33283 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| | 33284 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| | 33285 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| | 33286 | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, |
| | 33287 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| | 33288 | .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, |
| | 33289 | .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ }, |
| | 33290 | .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, |
| | 33291 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 33292 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| | 33293 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 33294 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 33295 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 33296 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 33297 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, |
| | 33298 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| | 33299 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, |
| | 33300 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| | 33301 | } }, |
| | 33302 | }, .{ |
| | 33303 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33304 | .src_constraints = .{ |
| | 33305 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 33306 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 33307 | .any, |
| | 33308 | }, |
| | 33309 | .patterns = &.{ |
| | 33310 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| | 33311 | }, |
| | 33312 | .extra_temps = .{ |
| | 33313 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33314 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 33315 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33316 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33317 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33318 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 33319 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33320 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 33321 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| | 33322 | .unused, |
| | 33323 | .unused, |
| | 33324 | }, |
| | 33325 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 33326 | .clobbers = .{ .eflags = true }, |
| | 33327 | .each = .{ .once = &.{ |
| | 33328 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 33329 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| | 33330 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| | 33331 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| | 33332 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 33333 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| | 33334 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| | 33335 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| | 33336 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 33337 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 33338 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 33339 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| | 33340 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| | 33341 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| | 33342 | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, |
| | 33343 | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, |
| | 33344 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| | 33345 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| | 33346 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| | 33347 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| | 33348 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| | 33349 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| | 33350 | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, |
| | 33351 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| | 33352 | .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, |
| | 33353 | .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ }, |
| | 33354 | .{ ._, ._ns, .j, .@"1b", ._, ._, ._ }, |
| | 33355 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| | 33356 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| | 33357 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 33358 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 33359 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 33360 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 33361 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, |
| | 33362 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| | 33363 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, |
| | 33364 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| | 33365 | } }, |
| | 33366 | } }) catch |err| switch (err) { |
| | 33367 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| | 33368 | @tagName(air_tag), |
| | 33369 | ty_pl.ty.toType().fmt(pt), |
| | 33370 | ops[0].tracking(cg), |
| | 33371 | ops[1].tracking(cg), |
| | 33372 | }), |
| | 33373 | else => |e| return e, |
| | 33374 | }; |
| | 33375 | try res[0].withOverflow(&res[1], cg); |
| | 33376 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| | 33377 | }, |
| | 33378 | .shl_with_overflow => |air_tag| if (use_old) try cg.airShlWithOverflow(inst) else fallback: { |
| | 33379 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| | 33380 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| | 33381 | if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airShlWithOverflow(inst); |
| | 33382 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| | 33383 | var res: [2]Temp = undefined; |
| | 33384 | cg.select(&res, &.{ ty_pl.ty.toType(), .u1 }, &ops, comptime &.{ .{ |
| | 33385 | .src_constraints = .{ .{ .exact_signed_int = 8 }, .{ .unsigned_int = .byte }, .any }, |
| | 33386 | .patterns = &.{ |
| | 33387 | .{ .src = .{ .mut_mem, .{ .imm = 1 }, .none } }, |
| | 33388 | }, |
| | 33389 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .o } }, |
| | 33390 | .clobbers = .{ .eflags = true }, |
| | 33391 | .each = .{ .once = &.{ |
| | 33392 | .{ ._, ._l, .sa, .dst0b, .src1b, ._, ._ }, |
| | 33393 | } }, |
| | 33394 | }, .{ |
| | 33395 | .src_constraints = .{ .{ .exact_unsigned_int = 8 }, .{ .unsigned_int = .byte }, .any }, |
| | 33396 | .patterns = &.{ |
| | 33397 | .{ .src = .{ .mut_mem, .{ .imm = 1 }, .none } }, |
| | 33398 | }, |
| | 33399 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .c } }, |
| | 33400 | .clobbers = .{ .eflags = true }, |
| | 33401 | .each = .{ .once = &.{ |
| | 33402 | .{ ._, ._l, .sh, .dst0b, .src1b, ._, ._ }, |
| | 33403 | } }, |
| | 33404 | }, .{ |
| | 33405 | .src_constraints = .{ .{ .exact_signed_int = 8 }, .{ .unsigned_int = .byte }, .any }, |
| | 33406 | .patterns = &.{ |
| | 33407 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 33408 | }, |
| | 33409 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .o } }, |
| | 33410 | .clobbers = .{ .eflags = true }, |
| | 33411 | .each = .{ .once = &.{ |
| | 33412 | .{ ._, ._, .add, .dst0b, .src0b, ._, ._ }, |
| | 33413 | } }, |
| | 33414 | }, .{ |
| | 33415 | .src_constraints = .{ .{ .exact_unsigned_int = 8 }, .{ .unsigned_int = .byte }, .any }, |
| | 33416 | .patterns = &.{ |
| | 33417 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 33418 | }, |
| | 33419 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .c } }, |
| | 33420 | .clobbers = .{ .eflags = true }, |
| | 33421 | .each = .{ .once = &.{ |
| | 33422 | .{ ._, ._, .add, .dst0b, .src0b, ._, ._ }, |
| | 33423 | } }, |
| | 33424 | }, .{ |
| | 33425 | .src_constraints = .{ .{ .signed_int = .byte }, .{ .unsigned_int = .byte }, .any }, |
| | 33426 | .patterns = &.{ |
| | 33427 | .{ .src = .{ .to_gpr, .imm8, .none } }, |
| | 33428 | }, |
| | 33429 | .extra_temps = .{ |
| | 33430 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 33431 | .unused, |
| | 33432 | .unused, |
| | 33433 | .unused, |
| | 33434 | .unused, |
| | 33435 | .unused, |
| | 33436 | .unused, |
| | 33437 | .unused, |
| | 33438 | .unused, |
| | 33439 | .unused, |
| | 33440 | .unused, |
| | 33441 | }, |
| | 33442 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33443 | .clobbers = .{ .eflags = true }, |
| | 33444 | .each = .{ .once = &.{ |
| | 33445 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33446 | .{ ._, ._l, .sa, .tmp0b, .uia(8, .src0, .add_src1_sub_bit_size), ._, ._ }, |
| | 33447 | .{ ._, ._r, .sa, .tmp0b, .uia(8, .src0, .sub_bit_size), ._, ._ }, |
| | 33448 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33449 | .{ ._, ._r, .sa, .tmp0b, .src1b, ._, ._ }, |
| | 33450 | .{ ._, ._, .cmp, .tmp0b, .src0b, ._, ._ }, |
| | 33451 | } }, |
| | 33452 | }, .{ |
| | 33453 | .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any }, |
| | 33454 | .patterns = &.{ |
| | 33455 | .{ .src = .{ .to_gpr, .imm8, .none } }, |
| | 33456 | }, |
| | 33457 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .nbe } }, |
| | 33458 | .clobbers = .{ .eflags = true }, |
| | 33459 | .each = .{ .once = &.{ |
| | 33460 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 33461 | .{ ._, ._, .@"and", .dst0b, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 33462 | .{ ._, ._l, .sh, .dst0b, .src1b, ._, ._ }, |
| | 33463 | .{ ._, ._, .cmp, .src0b, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 33464 | } }, |
| | 33465 | }, .{ |
| | 33466 | .src_constraints = .{ .{ .exact_signed_int = 8 }, .{ .unsigned_int = .byte }, .any }, |
| | 33467 | .patterns = &.{ |
| | 33468 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33469 | }, |
| | 33470 | .extra_temps = .{ |
| | 33471 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 33472 | .unused, |
| | 33473 | .unused, |
| | 33474 | .unused, |
| | 33475 | .unused, |
| | 33476 | .unused, |
| | 33477 | .unused, |
| | 33478 | .unused, |
| | 33479 | .unused, |
| | 33480 | .unused, |
| | 33481 | .unused, |
| | 33482 | }, |
| | 33483 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33484 | .clobbers = .{ .eflags = true }, |
| | 33485 | .each = .{ .once = &.{ |
| | 33486 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33487 | .{ ._, ._l, .sa, .tmp0b, .src1b, ._, ._ }, |
| | 33488 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33489 | .{ ._, ._r, .sa, .tmp0b, .src1b, ._, ._ }, |
| | 33490 | .{ ._, ._, .cmp, .tmp0b, .src0b, ._, ._ }, |
| | 33491 | } }, |
| | 33492 | }, .{ |
| | 33493 | .src_constraints = .{ .{ .exact_unsigned_int = 8 }, .{ .unsigned_int = .byte }, .any }, |
| | 33494 | .patterns = &.{ |
| | 33495 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33496 | }, |
| | 33497 | .extra_temps = .{ |
| | 33498 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 33499 | .unused, |
| | 33500 | .unused, |
| | 33501 | .unused, |
| | 33502 | .unused, |
| | 33503 | .unused, |
| | 33504 | .unused, |
| | 33505 | .unused, |
| | 33506 | .unused, |
| | 33507 | .unused, |
| | 33508 | .unused, |
| | 33509 | }, |
| | 33510 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33511 | .clobbers = .{ .eflags = true }, |
| | 33512 | .each = .{ .once = &.{ |
| | 33513 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33514 | .{ ._, ._l, .sh, .tmp0b, .src1b, ._, ._ }, |
| | 33515 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33516 | .{ ._, ._r, .sh, .tmp0b, .src1b, ._, ._ }, |
| | 33517 | .{ ._, ._, .cmp, .tmp0b, .src0b, ._, ._ }, |
| | 33518 | } }, |
| | 33519 | }, .{ |
| | 33520 | .src_constraints = .{ .{ .signed_int = .byte }, .{ .unsigned_int = .byte }, .any }, |
| | 33521 | .patterns = &.{ |
| | 33522 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33523 | }, |
| | 33524 | .extra_temps = .{ |
| | 33525 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 33526 | .unused, |
| | 33527 | .unused, |
| | 33528 | .unused, |
| | 33529 | .unused, |
| | 33530 | .unused, |
| | 33531 | .unused, |
| | 33532 | .unused, |
| | 33533 | .unused, |
| | 33534 | .unused, |
| | 33535 | .unused, |
| | 33536 | }, |
| | 33537 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33538 | .clobbers = .{ .eflags = true }, |
| | 33539 | .each = .{ .once = &.{ |
| | 33540 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33541 | .{ ._, ._l, .sa, .tmp0b, .src1b, ._, ._ }, |
| | 33542 | .{ ._, ._l, .sa, .tmp0b, .uia(8, .src0, .sub_bit_size), ._, ._ }, |
| | 33543 | .{ ._, ._r, .sa, .tmp0b, .uia(8, .src0, .sub_bit_size), ._, ._ }, |
| | 33544 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33545 | .{ ._, ._r, .sa, .tmp0b, .src1b, ._, ._ }, |
| | 33546 | .{ ._, ._, .cmp, .tmp0b, .src0b, ._, ._ }, |
| | 33547 | } }, |
| | 33548 | }, .{ |
| | 33549 | .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any }, |
| | 33550 | .patterns = &.{ |
| | 33551 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33552 | }, |
| | 33553 | .extra_temps = .{ |
| | 33554 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 33555 | .unused, |
| | 33556 | .unused, |
| | 33557 | .unused, |
| | 33558 | .unused, |
| | 33559 | .unused, |
| | 33560 | .unused, |
| | 33561 | .unused, |
| | 33562 | .unused, |
| | 33563 | .unused, |
| | 33564 | .unused, |
| | 33565 | }, |
| | 33566 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33567 | .clobbers = .{ .eflags = true }, |
| | 33568 | .each = .{ .once = &.{ |
| | 33569 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33570 | .{ ._, ._l, .sh, .tmp0b, .src1b, ._, ._ }, |
| | 33571 | .{ ._, ._, .@"and", .tmp0b, .ua(.src0, .add_umax), ._, ._ }, |
| | 33572 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33573 | .{ ._, ._r, .sh, .tmp0b, .src1b, ._, ._ }, |
| | 33574 | .{ ._, ._, .cmp, .tmp0b, .src0b, ._, ._ }, |
| | 33575 | } }, |
| | 33576 | }, .{ |
| | 33577 | .src_constraints = .{ .{ .exact_signed_int = 16 }, .{ .unsigned_int = .byte }, .any }, |
| | 33578 | .patterns = &.{ |
| | 33579 | .{ .src = .{ .mut_mem, .{ .imm = 1 }, .none } }, |
| | 33580 | }, |
| | 33581 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .o } }, |
| | 33582 | .clobbers = .{ .eflags = true }, |
| | 33583 | .each = .{ .once = &.{ |
| | 33584 | .{ ._, ._l, .sa, .dst0w, .src1b, ._, ._ }, |
| | 33585 | } }, |
| | 33586 | }, .{ |
| | 33587 | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .{ .unsigned_int = .byte }, .any }, |
| | 33588 | .patterns = &.{ |
| | 33589 | .{ .src = .{ .mut_mem, .{ .imm = 1 }, .none } }, |
| | 33590 | }, |
| | 33591 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .c } }, |
| | 33592 | .clobbers = .{ .eflags = true }, |
| | 33593 | .each = .{ .once = &.{ |
| | 33594 | .{ ._, ._l, .sh, .dst0w, .src1b, ._, ._ }, |
| | 33595 | } }, |
| | 33596 | }, .{ |
| | 33597 | .src_constraints = .{ .{ .exact_signed_int = 8 }, .{ .unsigned_int = .byte }, .any }, |
| | 33598 | .patterns = &.{ |
| | 33599 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 33600 | }, |
| | 33601 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .o } }, |
| | 33602 | .clobbers = .{ .eflags = true }, |
| | 33603 | .each = .{ .once = &.{ |
| | 33604 | .{ ._, ._, .add, .dst0w, .src0w, ._, ._ }, |
| | 33605 | } }, |
| | 33606 | }, .{ |
| | 33607 | .src_constraints = .{ .{ .exact_unsigned_int = 8 }, .{ .unsigned_int = .byte }, .any }, |
| | 33608 | .patterns = &.{ |
| | 33609 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 33610 | }, |
| | 33611 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .c } }, |
| | 33612 | .clobbers = .{ .eflags = true }, |
| | 33613 | .each = .{ .once = &.{ |
| | 33614 | .{ ._, ._, .add, .dst0w, .src0w, ._, ._ }, |
| | 33615 | } }, |
| | 33616 | }, .{ |
| | 33617 | .src_constraints = .{ .{ .signed_int = .word }, .{ .unsigned_int = .byte }, .any }, |
| | 33618 | .patterns = &.{ |
| | 33619 | .{ .src = .{ .to_gpr, .imm8, .none } }, |
| | 33620 | }, |
| | 33621 | .extra_temps = .{ |
| | 33622 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 33623 | .unused, |
| | 33624 | .unused, |
| | 33625 | .unused, |
| | 33626 | .unused, |
| | 33627 | .unused, |
| | 33628 | .unused, |
| | 33629 | .unused, |
| | 33630 | .unused, |
| | 33631 | .unused, |
| | 33632 | .unused, |
| | 33633 | }, |
| | 33634 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33635 | .clobbers = .{ .eflags = true }, |
| | 33636 | .each = .{ .once = &.{ |
| | 33637 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33638 | .{ ._, ._l, .sa, .tmp0d, .uia(32, .src0, .add_src1_sub_bit_size), ._, ._ }, |
| | 33639 | .{ ._, ._r, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 33640 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33641 | .{ ._, ._r, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 33642 | .{ ._, ._, .cmp, .tmp0w, .src0w, ._, ._ }, |
| | 33643 | } }, |
| | 33644 | }, .{ |
| | 33645 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 33646 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .byte }, .any }, |
| | 33647 | .patterns = &.{ |
| | 33648 | .{ .src = .{ .to_gpr, .imm8, .none } }, |
| | 33649 | }, |
| | 33650 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .nbe } }, |
| | 33651 | .clobbers = .{ .eflags = true }, |
| | 33652 | .each = .{ .once = &.{ |
| | 33653 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 33654 | .{ ._, ._, .@"and", .dst0w, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 33655 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, |
| | 33656 | .{ ._, ._, .cmp, .src0w, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 33657 | } }, |
| | 33658 | }, .{ |
| | 33659 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .byte }, .any }, |
| | 33660 | .patterns = &.{ |
| | 33661 | .{ .src = .{ .to_gpr, .imm8, .none } }, |
| | 33662 | }, |
| | 33663 | .extra_temps = .{ |
| | 33664 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 33665 | .unused, |
| | 33666 | .unused, |
| | 33667 | .unused, |
| | 33668 | .unused, |
| | 33669 | .unused, |
| | 33670 | .unused, |
| | 33671 | .unused, |
| | 33672 | .unused, |
| | 33673 | .unused, |
| | 33674 | .unused, |
| | 33675 | }, |
| | 33676 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .nbe } }, |
| | 33677 | .clobbers = .{ .eflags = true }, |
| | 33678 | .each = .{ .once = &.{ |
| | 33679 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 33680 | .{ ._, ._, .@"and", .dst0d, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 33681 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, |
| | 33682 | .{ ._, ._, .cmp, .src0w, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 33683 | } }, |
| | 33684 | }, .{ |
| | 33685 | .src_constraints = .{ .{ .exact_signed_int = 16 }, .{ .unsigned_int = .byte }, .any }, |
| | 33686 | .patterns = &.{ |
| | 33687 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33688 | }, |
| | 33689 | .extra_temps = .{ |
| | 33690 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 33691 | .unused, |
| | 33692 | .unused, |
| | 33693 | .unused, |
| | 33694 | .unused, |
| | 33695 | .unused, |
| | 33696 | .unused, |
| | 33697 | .unused, |
| | 33698 | .unused, |
| | 33699 | .unused, |
| | 33700 | .unused, |
| | 33701 | }, |
| | 33702 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33703 | .clobbers = .{ .eflags = true }, |
| | 33704 | .each = .{ .once = &.{ |
| | 33705 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33706 | .{ ._, ._l, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 33707 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33708 | .{ ._, ._r, .sa, .tmp0w, .src1b, ._, ._ }, |
| | 33709 | .{ ._, ._, .cmp, .tmp0w, .src0w, ._, ._ }, |
| | 33710 | } }, |
| | 33711 | }, .{ |
| | 33712 | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .{ .unsigned_int = .byte }, .any }, |
| | 33713 | .patterns = &.{ |
| | 33714 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33715 | }, |
| | 33716 | .extra_temps = .{ |
| | 33717 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 33718 | .unused, |
| | 33719 | .unused, |
| | 33720 | .unused, |
| | 33721 | .unused, |
| | 33722 | .unused, |
| | 33723 | .unused, |
| | 33724 | .unused, |
| | 33725 | .unused, |
| | 33726 | .unused, |
| | 33727 | .unused, |
| | 33728 | }, |
| | 33729 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33730 | .clobbers = .{ .eflags = true }, |
| | 33731 | .each = .{ .once = &.{ |
| | 33732 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33733 | .{ ._, ._l, .sh, .tmp0d, .src1b, ._, ._ }, |
| | 33734 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33735 | .{ ._, ._r, .sh, .tmp0w, .src1b, ._, ._ }, |
| | 33736 | .{ ._, ._, .cmp, .tmp0w, .src0w, ._, ._ }, |
| | 33737 | } }, |
| | 33738 | }, .{ |
| | 33739 | .src_constraints = .{ .{ .signed_int = .word }, .{ .unsigned_int = .byte }, .any }, |
| | 33740 | .patterns = &.{ |
| | 33741 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33742 | }, |
| | 33743 | .extra_temps = .{ |
| | 33744 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 33745 | .unused, |
| | 33746 | .unused, |
| | 33747 | .unused, |
| | 33748 | .unused, |
| | 33749 | .unused, |
| | 33750 | .unused, |
| | 33751 | .unused, |
| | 33752 | .unused, |
| | 33753 | .unused, |
| | 33754 | .unused, |
| | 33755 | }, |
| | 33756 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33757 | .clobbers = .{ .eflags = true }, |
| | 33758 | .each = .{ .once = &.{ |
| | 33759 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33760 | .{ ._, ._l, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 33761 | .{ ._, ._l, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 33762 | .{ ._, ._r, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 33763 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33764 | .{ ._, ._r, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 33765 | .{ ._, ._, .cmp, .tmp0w, .src0w, ._, ._ }, |
| | 33766 | } }, |
| | 33767 | }, .{ |
| | 33768 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .byte }, .any }, |
| | 33769 | .patterns = &.{ |
| | 33770 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33771 | }, |
| | 33772 | .extra_temps = .{ |
| | 33773 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 33774 | .unused, |
| | 33775 | .unused, |
| | 33776 | .unused, |
| | 33777 | .unused, |
| | 33778 | .unused, |
| | 33779 | .unused, |
| | 33780 | .unused, |
| | 33781 | .unused, |
| | 33782 | .unused, |
| | 33783 | .unused, |
| | 33784 | }, |
| | 33785 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33786 | .clobbers = .{ .eflags = true }, |
| | 33787 | .each = .{ .once = &.{ |
| | 33788 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33789 | .{ ._, ._l, .sh, .tmp0d, .src1b, ._, ._ }, |
| | 33790 | .{ ._, ._, .@"and", .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 33791 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33792 | .{ ._, ._r, .sh, .tmp0d, .src1b, ._, ._ }, |
| | 33793 | .{ ._, ._, .cmp, .tmp0w, .src0w, ._, ._ }, |
| | 33794 | } }, |
| | 33795 | }, .{ |
| | 33796 | .src_constraints = .{ .{ .exact_signed_int = 32 }, .{ .unsigned_int = .byte }, .any }, |
| | 33797 | .patterns = &.{ |
| | 33798 | .{ .src = .{ .mut_mem, .{ .imm = 1 }, .none } }, |
| | 33799 | }, |
| | 33800 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .o } }, |
| | 33801 | .clobbers = .{ .eflags = true }, |
| | 33802 | .each = .{ .once = &.{ |
| | 33803 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 33804 | } }, |
| | 33805 | }, .{ |
| | 33806 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .{ .unsigned_int = .byte }, .any }, |
| | 33807 | .patterns = &.{ |
| | 33808 | .{ .src = .{ .mut_mem, .{ .imm = 1 }, .none } }, |
| | 33809 | }, |
| | 33810 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .c } }, |
| | 33811 | .clobbers = .{ .eflags = true }, |
| | 33812 | .each = .{ .once = &.{ |
| | 33813 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, |
| | 33814 | } }, |
| | 33815 | }, .{ |
| | 33816 | .src_constraints = .{ .{ .exact_signed_int = 32 }, .{ .unsigned_int = .byte }, .any }, |
| | 33817 | .patterns = &.{ |
| | 33818 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 33819 | }, |
| | 33820 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .o } }, |
| | 33821 | .clobbers = .{ .eflags = true }, |
| | 33822 | .each = .{ .once = &.{ |
| | 33823 | .{ ._, ._, .add, .dst0d, .src0d, ._, ._ }, |
| | 33824 | } }, |
| | 33825 | }, .{ |
| | 33826 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .{ .unsigned_int = .byte }, .any }, |
| | 33827 | .patterns = &.{ |
| | 33828 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 33829 | }, |
| | 33830 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .c } }, |
| | 33831 | .clobbers = .{ .eflags = true }, |
| | 33832 | .each = .{ .once = &.{ |
| | 33833 | .{ ._, ._, .add, .dst0d, .src0d, ._, ._ }, |
| | 33834 | } }, |
| | 33835 | }, .{ |
| | 33836 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .unsigned_int = .byte }, .any }, |
| | 33837 | .patterns = &.{ |
| | 33838 | .{ .src = .{ .to_gpr, .imm8, .none } }, |
| | 33839 | }, |
| | 33840 | .extra_temps = .{ |
| | 33841 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 33842 | .unused, |
| | 33843 | .unused, |
| | 33844 | .unused, |
| | 33845 | .unused, |
| | 33846 | .unused, |
| | 33847 | .unused, |
| | 33848 | .unused, |
| | 33849 | .unused, |
| | 33850 | .unused, |
| | 33851 | .unused, |
| | 33852 | }, |
| | 33853 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33854 | .clobbers = .{ .eflags = true }, |
| | 33855 | .each = .{ .once = &.{ |
| | 33856 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33857 | .{ ._, ._l, .sa, .tmp0d, .uia(32, .src0, .add_src1_sub_bit_size), ._, ._ }, |
| | 33858 | .{ ._, ._r, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 33859 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33860 | .{ ._, ._r, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 33861 | .{ ._, ._, .cmp, .tmp0d, .src0d, ._, ._ }, |
| | 33862 | } }, |
| | 33863 | }, .{ |
| | 33864 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .byte }, .any }, |
| | 33865 | .patterns = &.{ |
| | 33866 | .{ .src = .{ .to_gpr, .imm8, .none } }, |
| | 33867 | }, |
| | 33868 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .nbe } }, |
| | 33869 | .clobbers = .{ .eflags = true }, |
| | 33870 | .each = .{ .once = &.{ |
| | 33871 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 33872 | .{ ._, ._, .@"and", .dst0d, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 33873 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, |
| | 33874 | .{ ._, ._, .cmp, .src0d, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 33875 | } }, |
| | 33876 | }, .{ |
| | 33877 | .src_constraints = .{ .{ .exact_signed_int = 32 }, .{ .unsigned_int = .byte }, .any }, |
| | 33878 | .patterns = &.{ |
| | 33879 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33880 | }, |
| | 33881 | .extra_temps = .{ |
| | 33882 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 33883 | .unused, |
| | 33884 | .unused, |
| | 33885 | .unused, |
| | 33886 | .unused, |
| | 33887 | .unused, |
| | 33888 | .unused, |
| | 33889 | .unused, |
| | 33890 | .unused, |
| | 33891 | .unused, |
| | 33892 | .unused, |
| | 33893 | }, |
| | 33894 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33895 | .clobbers = .{ .eflags = true }, |
| | 33896 | .each = .{ .once = &.{ |
| | 33897 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33898 | .{ ._, ._l, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 33899 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33900 | .{ ._, ._r, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 33901 | .{ ._, ._, .cmp, .tmp0d, .src0d, ._, ._ }, |
| | 33902 | } }, |
| | 33903 | }, .{ |
| | 33904 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .{ .unsigned_int = .byte }, .any }, |
| | 33905 | .patterns = &.{ |
| | 33906 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33907 | }, |
| | 33908 | .extra_temps = .{ |
| | 33909 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33910 | .unused, |
| | 33911 | .unused, |
| | 33912 | .unused, |
| | 33913 | .unused, |
| | 33914 | .unused, |
| | 33915 | .unused, |
| | 33916 | .unused, |
| | 33917 | .unused, |
| | 33918 | .unused, |
| | 33919 | .unused, |
| | 33920 | }, |
| | 33921 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33922 | .clobbers = .{ .eflags = true }, |
| | 33923 | .each = .{ .once = &.{ |
| | 33924 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33925 | .{ ._, ._l, .sh, .tmp0d, .src1b, ._, ._ }, |
| | 33926 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33927 | .{ ._, ._r, .sh, .tmp0d, .src1b, ._, ._ }, |
| | 33928 | .{ ._, ._, .cmp, .tmp0d, .src0d, ._, ._ }, |
| | 33929 | } }, |
| | 33930 | }, .{ |
| | 33931 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .unsigned_int = .byte }, .any }, |
| | 33932 | .patterns = &.{ |
| | 33933 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33934 | }, |
| | 33935 | .extra_temps = .{ |
| | 33936 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 33937 | .unused, |
| | 33938 | .unused, |
| | 33939 | .unused, |
| | 33940 | .unused, |
| | 33941 | .unused, |
| | 33942 | .unused, |
| | 33943 | .unused, |
| | 33944 | .unused, |
| | 33945 | .unused, |
| | 33946 | .unused, |
| | 33947 | }, |
| | 33948 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33949 | .clobbers = .{ .eflags = true }, |
| | 33950 | .each = .{ .once = &.{ |
| | 33951 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33952 | .{ ._, ._l, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 33953 | .{ ._, ._l, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 33954 | .{ ._, ._r, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 33955 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33956 | .{ ._, ._r, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 33957 | .{ ._, ._, .cmp, .tmp0d, .src0d, ._, ._ }, |
| | 33958 | } }, |
| | 33959 | }, .{ |
| | 33960 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .byte }, .any }, |
| | 33961 | .patterns = &.{ |
| | 33962 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 33963 | }, |
| | 33964 | .extra_temps = .{ |
| | 33965 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33966 | .unused, |
| | 33967 | .unused, |
| | 33968 | .unused, |
| | 33969 | .unused, |
| | 33970 | .unused, |
| | 33971 | .unused, |
| | 33972 | .unused, |
| | 33973 | .unused, |
| | 33974 | .unused, |
| | 33975 | .unused, |
| | 33976 | }, |
| | 33977 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 33978 | .clobbers = .{ .eflags = true }, |
| | 33979 | .each = .{ .once = &.{ |
| | 33980 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 33981 | .{ ._, ._l, .sh, .tmp0d, .src1b, ._, ._ }, |
| | 33982 | .{ ._, ._, .@"and", .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 33983 | .{ ._, ._, .mov, .dst0d, .tmp0d, ._, ._ }, |
| | 33984 | .{ ._, ._r, .sh, .tmp0d, .src1b, ._, ._ }, |
| | 33985 | .{ ._, ._, .cmp, .tmp0d, .src0d, ._, ._ }, |
| | 33986 | } }, |
| | 33987 | }, .{ |
| | 33988 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33989 | .src_constraints = .{ .{ .exact_signed_int = 64 }, .{ .unsigned_int = .byte }, .any }, |
| | 33990 | .patterns = &.{ |
| | 33991 | .{ .src = .{ .mut_mem, .{ .imm = 1 }, .none } }, |
| | 33992 | }, |
| | 33993 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .o } }, |
| | 33994 | .clobbers = .{ .eflags = true }, |
| | 33995 | .each = .{ .once = &.{ |
| | 33996 | .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ }, |
| | 33997 | } }, |
| | 33998 | }, .{ |
| | 33999 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34000 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .{ .unsigned_int = .byte }, .any }, |
| | 34001 | .patterns = &.{ |
| | 34002 | .{ .src = .{ .mut_mem, .{ .imm = 1 }, .none } }, |
| | 34003 | }, |
| | 34004 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .c } }, |
| | 34005 | .clobbers = .{ .eflags = true }, |
| | 34006 | .each = .{ .once = &.{ |
| | 34007 | .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ }, |
| | 34008 | } }, |
| | 34009 | }, .{ |
| | 34010 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34011 | .src_constraints = .{ .{ .exact_signed_int = 64 }, .{ .unsigned_int = .byte }, .any }, |
| | 34012 | .patterns = &.{ |
| | 34013 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 34014 | }, |
| | 34015 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .o } }, |
| | 34016 | .clobbers = .{ .eflags = true }, |
| | 34017 | .each = .{ .once = &.{ |
| | 34018 | .{ ._, ._, .add, .dst0q, .src0q, ._, ._ }, |
| | 34019 | } }, |
| | 34020 | }, .{ |
| | 34021 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34022 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .{ .unsigned_int = .byte }, .any }, |
| | 34023 | .patterns = &.{ |
| | 34024 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 34025 | }, |
| | 34026 | .dst_temps = .{ .{ .ref = .src0 }, .{ .cc = .c } }, |
| | 34027 | .clobbers = .{ .eflags = true }, |
| | 34028 | .each = .{ .once = &.{ |
| | 34029 | .{ ._, ._, .add, .dst0q, .src0q, ._, ._ }, |
| | 34030 | } }, |
| | 34031 | }, .{ |
| | 34032 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34033 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .unsigned_int = .byte }, .any }, |
| | 34034 | .patterns = &.{ |
| | 34035 | .{ .src = .{ .to_gpr, .imm8, .none } }, |
| | 34036 | }, |
| | 34037 | .extra_temps = .{ |
| | 34038 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34039 | .unused, |
| | 34040 | .unused, |
| | 34041 | .unused, |
| | 34042 | .unused, |
| | 34043 | .unused, |
| | 34044 | .unused, |
| | 34045 | .unused, |
| | 34046 | .unused, |
| | 34047 | .unused, |
| | 34048 | .unused, |
| | 34049 | }, |
| | 34050 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 34051 | .clobbers = .{ .eflags = true }, |
| | 34052 | .each = .{ .once = &.{ |
| | 34053 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| | 34054 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .add_src1_sub_bit_size), ._, ._ }, |
| | 34055 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size), ._, ._ }, |
| | 34056 | .{ ._, ._, .mov, .dst0q, .tmp0q, ._, ._ }, |
| | 34057 | .{ ._, ._r, .sa, .tmp0q, .src1b, ._, ._ }, |
| | 34058 | .{ ._, ._, .cmp, .tmp0q, .src0q, ._, ._ }, |
| | 34059 | } }, |
| | 34060 | }, .{ |
| | 34061 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34062 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .byte }, .any }, |
| | 34063 | .patterns = &.{ |
| | 34064 | .{ .src = .{ .to_gpr, .imm8, .none } }, |
| | 34065 | }, |
| | 34066 | .extra_temps = .{ |
| | 34067 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34068 | .unused, |
| | 34069 | .unused, |
| | 34070 | .unused, |
| | 34071 | .unused, |
| | 34072 | .unused, |
| | 34073 | .unused, |
| | 34074 | .unused, |
| | 34075 | .unused, |
| | 34076 | .unused, |
| | 34077 | .unused, |
| | 34078 | }, |
| | 34079 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .nbe } }, |
| | 34080 | .clobbers = .{ .eflags = true }, |
| | 34081 | .each = .{ .once = &.{ |
| | 34082 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 34083 | .{ ._, ._, .mov, .dst0q, .src0q, ._, ._ }, |
| | 34084 | .{ ._, ._, .@"and", .dst0q, .tmp0q, ._, ._ }, |
| | 34085 | .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ }, |
| | 34086 | .{ ._, ._, .cmp, .src0q, .tmp0q, ._, ._ }, |
| | 34087 | } }, |
| | 34088 | }, .{ |
| | 34089 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34090 | .src_constraints = .{ .{ .exact_signed_int = 64 }, .{ .unsigned_int = .byte }, .any }, |
| | 34091 | .patterns = &.{ |
| | 34092 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 34093 | }, |
| | 34094 | .extra_temps = .{ |
| | 34095 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34096 | .unused, |
| | 34097 | .unused, |
| | 34098 | .unused, |
| | 34099 | .unused, |
| | 34100 | .unused, |
| | 34101 | .unused, |
| | 34102 | .unused, |
| | 34103 | .unused, |
| | 34104 | .unused, |
| | 34105 | .unused, |
| | 34106 | }, |
| | 34107 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 34108 | .clobbers = .{ .eflags = true }, |
| | 34109 | .each = .{ .once = &.{ |
| | 34110 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| | 34111 | .{ ._, ._l, .sa, .tmp0q, .src1b, ._, ._ }, |
| | 34112 | .{ ._, ._, .mov, .dst0q, .tmp0q, ._, ._ }, |
| | 34113 | .{ ._, ._r, .sa, .tmp0q, .src1b, ._, ._ }, |
| | 34114 | .{ ._, ._, .cmp, .tmp0q, .src0q, ._, ._ }, |
| | 34115 | } }, |
| | 34116 | }, .{ |
| | 34117 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34118 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .{ .unsigned_int = .byte }, .any }, |
| | 34119 | .patterns = &.{ |
| | 34120 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 34121 | }, |
| | 34122 | .extra_temps = .{ |
| | 34123 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34124 | .unused, |
| | 34125 | .unused, |
| | 34126 | .unused, |
| | 34127 | .unused, |
| | 34128 | .unused, |
| | 34129 | .unused, |
| | 34130 | .unused, |
| | 34131 | .unused, |
| | 34132 | .unused, |
| | 34133 | .unused, |
| | 34134 | }, |
| | 34135 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 34136 | .clobbers = .{ .eflags = true }, |
| | 34137 | .each = .{ .once = &.{ |
| | 34138 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| | 34139 | .{ ._, ._l, .sh, .tmp0q, .src1b, ._, ._ }, |
| | 34140 | .{ ._, ._, .mov, .dst0q, .tmp0q, ._, ._ }, |
| | 34141 | .{ ._, ._r, .sh, .tmp0q, .src1b, ._, ._ }, |
| | 34142 | .{ ._, ._, .cmp, .tmp0q, .src0q, ._, ._ }, |
| | 34143 | } }, |
| | 34144 | }, .{ |
| | 34145 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34146 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .unsigned_int = .byte }, .any }, |
| | 34147 | .patterns = &.{ |
| | 34148 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 34149 | }, |
| | 34150 | .extra_temps = .{ |
| | 34151 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34152 | .unused, |
| | 34153 | .unused, |
| | 34154 | .unused, |
| | 34155 | .unused, |
| | 34156 | .unused, |
| | 34157 | .unused, |
| | 34158 | .unused, |
| | 34159 | .unused, |
| | 34160 | .unused, |
| | 34161 | .unused, |
| | 34162 | }, |
| | 34163 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 34164 | .clobbers = .{ .eflags = true }, |
| | 34165 | .each = .{ .once = &.{ |
| | 34166 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| | 34167 | .{ ._, ._l, .sa, .tmp0q, .src1b, ._, ._ }, |
| | 34168 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size), ._, ._ }, |
| | 34169 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size), ._, ._ }, |
| | 34170 | .{ ._, ._, .mov, .dst0q, .tmp0q, ._, ._ }, |
| | 34171 | .{ ._, ._r, .sa, .tmp0q, .src1b, ._, ._ }, |
| | 34172 | .{ ._, ._, .cmp, .tmp0q, .src0q, ._, ._ }, |
| | 34173 | } }, |
| | 34174 | }, .{ |
| | 34175 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34176 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .byte }, .any }, |
| | 34177 | .patterns = &.{ |
| | 34178 | .{ .src = .{ .to_gpr, .{ .to_reg = .cl }, .none } }, |
| | 34179 | }, |
| | 34180 | .extra_temps = .{ |
| | 34181 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34182 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34183 | .unused, |
| | 34184 | .unused, |
| | 34185 | .unused, |
| | 34186 | .unused, |
| | 34187 | .unused, |
| | 34188 | .unused, |
| | 34189 | .unused, |
| | 34190 | .unused, |
| | 34191 | .unused, |
| | 34192 | }, |
| | 34193 | .dst_temps = .{ .{ .rc = .general_purpose }, .{ .cc = .ne } }, |
| | 34194 | .clobbers = .{ .eflags = true }, |
| | 34195 | .each = .{ .once = &.{ |
| | 34196 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ }, |
| | 34197 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| | 34198 | .{ ._, ._l, .sh, .tmp0q, .src1b, ._, ._ }, |
| | 34199 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, |
| | 34200 | .{ ._, ._, .mov, .dst0q, .tmp0q, ._, ._ }, |
| | 34201 | .{ ._, ._r, .sh, .tmp0q, .src1b, ._, ._ }, |
| | 34202 | .{ ._, ._, .cmp, .tmp0q, .src0q, ._, ._ }, |
| | 34203 | } }, |
| | 34204 | }, .{ |
| | 34205 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 34206 | .src_constraints = .{ |
| | 34207 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } }, |
| | 34208 | .{ .unsigned_int = .byte }, |
| | 34209 | .any, |
| | 34210 | }, |
| | 34211 | .patterns = &.{ |
| | 34212 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34213 | }, |
| | 34214 | .extra_temps = .{ |
| | 34215 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34216 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34217 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34218 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34219 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34220 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34221 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34222 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34223 | .unused, |
| | 34224 | .unused, |
| | 34225 | .unused, |
| | 34226 | }, |
| | 34227 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34228 | .clobbers = .{ .eflags = true }, |
| | 34229 | .each = .{ .once = &.{ |
| | 34230 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 34231 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 34232 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34233 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34234 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34235 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 34236 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 34237 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 34238 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 34239 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 34240 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 34241 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34242 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34243 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 34244 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 34245 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 34246 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34247 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 34248 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 34249 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34250 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 34251 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34252 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34253 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 34254 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 34255 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 34256 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34257 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34258 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 34259 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 34260 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34261 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34262 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34263 | .{ ._, ._, .mov, .tmp7q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 34264 | .{ ._, ._r, .sa, .tmp7q, .ui(63), ._, ._ }, |
| | 34265 | .{ ._, ._, .xor, .tmp7q, .tmp3q, ._, ._ }, |
| | 34266 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34267 | } }, |
| | 34268 | }, .{ |
| | 34269 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34270 | .src_constraints = .{ |
| | 34271 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } }, |
| | 34272 | .{ .unsigned_int = .byte }, |
| | 34273 | .any, |
| | 34274 | }, |
| | 34275 | .patterns = &.{ |
| | 34276 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34277 | }, |
| | 34278 | .extra_temps = .{ |
| | 34279 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34280 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34281 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34282 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34283 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34284 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34285 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34286 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34287 | .unused, |
| | 34288 | .unused, |
| | 34289 | .unused, |
| | 34290 | }, |
| | 34291 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34292 | .clobbers = .{ .eflags = true }, |
| | 34293 | .each = .{ .once = &.{ |
| | 34294 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 34295 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 34296 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34297 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34298 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34299 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 34300 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 34301 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 34302 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 34303 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 34304 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 34305 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34306 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34307 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 34308 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 34309 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 34310 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34311 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 34312 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 34313 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34314 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 34315 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34316 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34317 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 34318 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 34319 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 34320 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34321 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34322 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 34323 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 34324 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34325 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 34326 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34327 | .{ ._, ._, .mov, .tmp7q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 34328 | .{ ._, ._r, .sa, .tmp7q, .ui(63), ._, ._ }, |
| | 34329 | .{ ._, ._, .xor, .tmp7q, .tmp3q, ._, ._ }, |
| | 34330 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34331 | } }, |
| | 34332 | }, .{ |
| | 34333 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 34334 | .src_constraints = .{ |
| | 34335 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } }, |
| | 34336 | .{ .unsigned_int = .word }, |
| | 34337 | .any, |
| | 34338 | }, |
| | 34339 | .patterns = &.{ |
| | 34340 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34341 | }, |
| | 34342 | .extra_temps = .{ |
| | 34343 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34344 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34345 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34346 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34347 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34348 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34349 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34350 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34351 | .unused, |
| | 34352 | .unused, |
| | 34353 | .unused, |
| | 34354 | }, |
| | 34355 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34356 | .clobbers = .{ .eflags = true }, |
| | 34357 | .each = .{ .once = &.{ |
| | 34358 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 34359 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 34360 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34361 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34362 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34363 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 34364 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 34365 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 34366 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 34367 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 34368 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 34369 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34370 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34371 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 34372 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 34373 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 34374 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34375 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 34376 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 34377 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34378 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 34379 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34380 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34381 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 34382 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 34383 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 34384 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34385 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34386 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 34387 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 34388 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34389 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34390 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34391 | .{ ._, ._, .mov, .tmp7q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 34392 | .{ ._, ._r, .sa, .tmp7q, .ui(63), ._, ._ }, |
| | 34393 | .{ ._, ._, .xor, .tmp7q, .tmp3q, ._, ._ }, |
| | 34394 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34395 | } }, |
| | 34396 | }, .{ |
| | 34397 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34398 | .src_constraints = .{ |
| | 34399 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .xword } }, |
| | 34400 | .{ .unsigned_int = .word }, |
| | 34401 | .any, |
| | 34402 | }, |
| | 34403 | .patterns = &.{ |
| | 34404 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34405 | }, |
| | 34406 | .extra_temps = .{ |
| | 34407 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34408 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34409 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34410 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34411 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34412 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34413 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34414 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34415 | .unused, |
| | 34416 | .unused, |
| | 34417 | .unused, |
| | 34418 | }, |
| | 34419 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34420 | .clobbers = .{ .eflags = true }, |
| | 34421 | .each = .{ .once = &.{ |
| | 34422 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 34423 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 34424 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34425 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34426 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34427 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 34428 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 34429 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 34430 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 34431 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 34432 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 34433 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34434 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34435 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 34436 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 34437 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 34438 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34439 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 34440 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 34441 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34442 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 34443 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34444 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34445 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 34446 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 34447 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 34448 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34449 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34450 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 34451 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 34452 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34453 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 34454 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34455 | .{ ._, ._, .mov, .tmp7q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 34456 | .{ ._, ._r, .sa, .tmp7q, .ui(63), ._, ._ }, |
| | 34457 | .{ ._, ._, .xor, .tmp7q, .tmp3q, ._, ._ }, |
| | 34458 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34459 | } }, |
| | 34460 | }, .{ |
| | 34461 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 34462 | .src_constraints = .{ |
| | 34463 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 34464 | .{ .unsigned_int = .byte }, |
| | 34465 | .any, |
| | 34466 | }, |
| | 34467 | .patterns = &.{ |
| | 34468 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34469 | }, |
| | 34470 | .extra_temps = .{ |
| | 34471 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34472 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34473 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34474 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34475 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34476 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34477 | .unused, |
| | 34478 | .unused, |
| | 34479 | .unused, |
| | 34480 | .unused, |
| | 34481 | .unused, |
| | 34482 | }, |
| | 34483 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34484 | .clobbers = .{ .eflags = true }, |
| | 34485 | .each = .{ .once = &.{ |
| | 34486 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 34487 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 34488 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34489 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34490 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34491 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 34492 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34493 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 34494 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34495 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34496 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 34497 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 34498 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 34499 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 34500 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34501 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 34502 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34503 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34504 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 34505 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 34506 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 34507 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34508 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34509 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 34510 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 34511 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 34512 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34513 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34514 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 34515 | } }, |
| | 34516 | }, .{ |
| | 34517 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34518 | .src_constraints = .{ |
| | 34519 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 34520 | .{ .unsigned_int = .byte }, |
| | 34521 | .any, |
| | 34522 | }, |
| | 34523 | .patterns = &.{ |
| | 34524 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34525 | }, |
| | 34526 | .extra_temps = .{ |
| | 34527 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34528 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34529 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34530 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34531 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34532 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34533 | .unused, |
| | 34534 | .unused, |
| | 34535 | .unused, |
| | 34536 | .unused, |
| | 34537 | .unused, |
| | 34538 | }, |
| | 34539 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34540 | .clobbers = .{ .eflags = true }, |
| | 34541 | .each = .{ .once = &.{ |
| | 34542 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 34543 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 34544 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34545 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34546 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34547 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 34548 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34549 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 34550 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34551 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34552 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 34553 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 34554 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 34555 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 34556 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34557 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 34558 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34559 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34560 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 34561 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 34562 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 34563 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34564 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34565 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 34566 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 34567 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 34568 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 34569 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34570 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 34571 | } }, |
| | 34572 | }, .{ |
| | 34573 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 34574 | .src_constraints = .{ |
| | 34575 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 34576 | .{ .unsigned_int = .word }, |
| | 34577 | .any, |
| | 34578 | }, |
| | 34579 | .patterns = &.{ |
| | 34580 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34581 | }, |
| | 34582 | .extra_temps = .{ |
| | 34583 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34584 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34585 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34586 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34587 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34588 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34589 | .unused, |
| | 34590 | .unused, |
| | 34591 | .unused, |
| | 34592 | .unused, |
| | 34593 | .unused, |
| | 34594 | }, |
| | 34595 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34596 | .clobbers = .{ .eflags = true }, |
| | 34597 | .each = .{ .once = &.{ |
| | 34598 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 34599 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 34600 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34601 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34602 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34603 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 34604 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34605 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 34606 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34607 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34608 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 34609 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 34610 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 34611 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 34612 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34613 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 34614 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34615 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34616 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 34617 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 34618 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 34619 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34620 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34621 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 34622 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 34623 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 34624 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34625 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34626 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 34627 | } }, |
| | 34628 | }, .{ |
| | 34629 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34630 | .src_constraints = .{ |
| | 34631 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 34632 | .{ .unsigned_int = .word }, |
| | 34633 | .any, |
| | 34634 | }, |
| | 34635 | .patterns = &.{ |
| | 34636 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34637 | }, |
| | 34638 | .extra_temps = .{ |
| | 34639 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34640 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34641 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34642 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34643 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34644 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34645 | .unused, |
| | 34646 | .unused, |
| | 34647 | .unused, |
| | 34648 | .unused, |
| | 34649 | .unused, |
| | 34650 | }, |
| | 34651 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34652 | .clobbers = .{ .eflags = true }, |
| | 34653 | .each = .{ .once = &.{ |
| | 34654 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 34655 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 34656 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34657 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34658 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34659 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 34660 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34661 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 34662 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34663 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34664 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 34665 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 34666 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 34667 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 34668 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34669 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 34670 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34671 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34672 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 34673 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 34674 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 34675 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34676 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34677 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 34678 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 34679 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 34680 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 34681 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34682 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 34683 | } }, |
| | 34684 | }, .{ |
| | 34685 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 34686 | .src_constraints = .{ |
| | 34687 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, |
| | 34688 | .{ .unsigned_int = .byte }, |
| | 34689 | .any, |
| | 34690 | }, |
| | 34691 | .patterns = &.{ |
| | 34692 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34693 | }, |
| | 34694 | .extra_temps = .{ |
| | 34695 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34696 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34697 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34698 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34699 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34700 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34701 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34702 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34703 | .unused, |
| | 34704 | .unused, |
| | 34705 | .unused, |
| | 34706 | }, |
| | 34707 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34708 | .clobbers = .{ .eflags = true }, |
| | 34709 | .each = .{ .once = &.{ |
| | 34710 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 34711 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 34712 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34713 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34714 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34715 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 34716 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 34717 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 34718 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 34719 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 34720 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34721 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34722 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 34723 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 34724 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 34725 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34726 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 34727 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 34728 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34729 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 34730 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34731 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34732 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 34733 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 34734 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 34735 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34736 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34737 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 34738 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 34739 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34740 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34741 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34742 | .{ ._, ._, .mov, .tmp7q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 34743 | .{ ._, ._r, .sa, .tmp7q, .ui(63), ._, ._ }, |
| | 34744 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp7q, ._, ._ }, |
| | 34745 | .{ ._, ._, .xor, .tmp7q, .tmp3q, ._, ._ }, |
| | 34746 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34747 | } }, |
| | 34748 | }, .{ |
| | 34749 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34750 | .src_constraints = .{ |
| | 34751 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, |
| | 34752 | .{ .unsigned_int = .byte }, |
| | 34753 | .any, |
| | 34754 | }, |
| | 34755 | .patterns = &.{ |
| | 34756 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34757 | }, |
| | 34758 | .extra_temps = .{ |
| | 34759 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34760 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34761 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34762 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34763 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34764 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34765 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34766 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34767 | .unused, |
| | 34768 | .unused, |
| | 34769 | .unused, |
| | 34770 | }, |
| | 34771 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34772 | .clobbers = .{ .eflags = true }, |
| | 34773 | .each = .{ .once = &.{ |
| | 34774 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 34775 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 34776 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34777 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34778 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34779 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 34780 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 34781 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 34782 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 34783 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 34784 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34785 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34786 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 34787 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 34788 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 34789 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34790 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 34791 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 34792 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34793 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 34794 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34795 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34796 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 34797 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 34798 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 34799 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34800 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34801 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 34802 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 34803 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34804 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 34805 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34806 | .{ ._, ._, .mov, .tmp7q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 34807 | .{ ._, ._r, .sa, .tmp7q, .ui(63), ._, ._ }, |
| | 34808 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp7q, ._, ._ }, |
| | 34809 | .{ ._, ._, .xor, .tmp7q, .tmp3q, ._, ._ }, |
| | 34810 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34811 | } }, |
| | 34812 | }, .{ |
| | 34813 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 34814 | .src_constraints = .{ |
| | 34815 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, |
| | 34816 | .{ .unsigned_int = .word }, |
| | 34817 | .any, |
| | 34818 | }, |
| | 34819 | .patterns = &.{ |
| | 34820 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34821 | }, |
| | 34822 | .extra_temps = .{ |
| | 34823 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34824 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34825 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34826 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34827 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34828 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34829 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34830 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34831 | .unused, |
| | 34832 | .unused, |
| | 34833 | .unused, |
| | 34834 | }, |
| | 34835 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34836 | .clobbers = .{ .eflags = true }, |
| | 34837 | .each = .{ .once = &.{ |
| | 34838 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 34839 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 34840 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34841 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34842 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34843 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 34844 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 34845 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 34846 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 34847 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 34848 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34849 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34850 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 34851 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 34852 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 34853 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34854 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 34855 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 34856 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34857 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 34858 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34859 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34860 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 34861 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 34862 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 34863 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34864 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34865 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 34866 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 34867 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34868 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34869 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34870 | .{ ._, ._, .mov, .tmp7q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 34871 | .{ ._, ._r, .sa, .tmp7q, .ui(63), ._, ._ }, |
| | 34872 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp7q, ._, ._ }, |
| | 34873 | .{ ._, ._, .xor, .tmp7q, .tmp3q, ._, ._ }, |
| | 34874 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34875 | } }, |
| | 34876 | }, .{ |
| | 34877 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34878 | .src_constraints = .{ |
| | 34879 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }, |
| | 34880 | .{ .unsigned_int = .word }, |
| | 34881 | .any, |
| | 34882 | }, |
| | 34883 | .patterns = &.{ |
| | 34884 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34885 | }, |
| | 34886 | .extra_temps = .{ |
| | 34887 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34888 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34889 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34890 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34891 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34892 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34893 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34894 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 34895 | .unused, |
| | 34896 | .unused, |
| | 34897 | .unused, |
| | 34898 | }, |
| | 34899 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34900 | .clobbers = .{ .eflags = true }, |
| | 34901 | .each = .{ .once = &.{ |
| | 34902 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 34903 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 34904 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34905 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34906 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34907 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 34908 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 34909 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 34910 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 34911 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 34912 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34913 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34914 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 34915 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 34916 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 34917 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34918 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 34919 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 34920 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34921 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 34922 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34923 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34924 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 34925 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 34926 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 34927 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 34928 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34929 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 34930 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 34931 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34932 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 34933 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 34934 | .{ ._, ._, .mov, .tmp7q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 34935 | .{ ._, ._r, .sa, .tmp7q, .ui(63), ._, ._ }, |
| | 34936 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp7q, ._, ._ }, |
| | 34937 | .{ ._, ._, .xor, .tmp7q, .tmp3q, ._, ._ }, |
| | 34938 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 34939 | } }, |
| | 34940 | }, .{ |
| | 34941 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 34942 | .src_constraints = .{ |
| | 34943 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 34944 | .{ .unsigned_int = .byte }, |
| | 34945 | .any, |
| | 34946 | }, |
| | 34947 | .patterns = &.{ |
| | 34948 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 34949 | }, |
| | 34950 | .extra_temps = .{ |
| | 34951 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34952 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 34953 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 34954 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34955 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34956 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 34957 | .unused, |
| | 34958 | .unused, |
| | 34959 | .unused, |
| | 34960 | .unused, |
| | 34961 | .unused, |
| | 34962 | }, |
| | 34963 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 34964 | .clobbers = .{ .eflags = true }, |
| | 34965 | .each = .{ .once = &.{ |
| | 34966 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 34967 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 34968 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 34969 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 34970 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34971 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 34972 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 34973 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 34974 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 34975 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 34976 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 34977 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 34978 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 34979 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 34980 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 34981 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34982 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 34983 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 34984 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 34985 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 34986 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 34987 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 34988 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 34989 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34990 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 34991 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 34992 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 34993 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34994 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 34995 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 34996 | } }, |
| | 34997 | }, .{ |
| | 34998 | .required_features = .{ .@"64bit", null, null, null }, |
| | 34999 | .src_constraints = .{ |
| | 35000 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35001 | .{ .unsigned_int = .byte }, |
| | 35002 | .any, |
| | 35003 | }, |
| | 35004 | .patterns = &.{ |
| | 35005 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35006 | }, |
| | 35007 | .extra_temps = .{ |
| | 35008 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35009 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35010 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35011 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35012 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35013 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35014 | .unused, |
| | 35015 | .unused, |
| | 35016 | .unused, |
| | 35017 | .unused, |
| | 35018 | .unused, |
| | 35019 | }, |
| | 35020 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35021 | .clobbers = .{ .eflags = true }, |
| | 35022 | .each = .{ .once = &.{ |
| | 35023 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 35024 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35025 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35026 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35027 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35028 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35029 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35030 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35031 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35032 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35033 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35034 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35035 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35036 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 35037 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 35038 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35039 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 35040 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35041 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35042 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35043 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35044 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35045 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35046 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35047 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35048 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35049 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35050 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 35051 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35052 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 35053 | } }, |
| | 35054 | }, .{ |
| | 35055 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 35056 | .src_constraints = .{ |
| | 35057 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35058 | .{ .unsigned_int = .word }, |
| | 35059 | .any, |
| | 35060 | }, |
| | 35061 | .patterns = &.{ |
| | 35062 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35063 | }, |
| | 35064 | .extra_temps = .{ |
| | 35065 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35066 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35067 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35068 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35069 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35070 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35071 | .unused, |
| | 35072 | .unused, |
| | 35073 | .unused, |
| | 35074 | .unused, |
| | 35075 | .unused, |
| | 35076 | }, |
| | 35077 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35078 | .clobbers = .{ .eflags = true }, |
| | 35079 | .each = .{ .once = &.{ |
| | 35080 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 35081 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35082 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35083 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35084 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35085 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35086 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35087 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35088 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35089 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35090 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35091 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35092 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35093 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 35094 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 35095 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35096 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 35097 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35098 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35099 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35100 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35101 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35102 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35103 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35104 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35105 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35106 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35107 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 35108 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35109 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 35110 | } }, |
| | 35111 | }, .{ |
| | 35112 | .required_features = .{ .@"64bit", null, null, null }, |
| | 35113 | .src_constraints = .{ |
| | 35114 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35115 | .{ .unsigned_int = .word }, |
| | 35116 | .any, |
| | 35117 | }, |
| | 35118 | .patterns = &.{ |
| | 35119 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35120 | }, |
| | 35121 | .extra_temps = .{ |
| | 35122 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35123 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35124 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35125 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35126 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35127 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35128 | .unused, |
| | 35129 | .unused, |
| | 35130 | .unused, |
| | 35131 | .unused, |
| | 35132 | .unused, |
| | 35133 | }, |
| | 35134 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35135 | .clobbers = .{ .eflags = true }, |
| | 35136 | .each = .{ .once = &.{ |
| | 35137 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 35138 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35139 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35140 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35141 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35142 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35143 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35144 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35145 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35146 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35147 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35148 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35149 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35150 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 35151 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 35152 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35153 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 35154 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35155 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35156 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35157 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35158 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35159 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35160 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35161 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35162 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35163 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35164 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 35165 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35166 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 35167 | } }, |
| | 35168 | }, .{ |
| | 35169 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 35170 | .src_constraints = .{ |
| | 35171 | .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, |
| | 35172 | .{ .unsigned_int = .byte }, |
| | 35173 | .any, |
| | 35174 | }, |
| | 35175 | .patterns = &.{ |
| | 35176 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35177 | }, |
| | 35178 | .extra_temps = .{ |
| | 35179 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35180 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35181 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35182 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35183 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35184 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35185 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35186 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35187 | .unused, |
| | 35188 | .unused, |
| | 35189 | .unused, |
| | 35190 | }, |
| | 35191 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35192 | .clobbers = .{ .eflags = true }, |
| | 35193 | .each = .{ .once = &.{ |
| | 35194 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 35195 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35196 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35197 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35198 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35199 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 35200 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 35201 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 35202 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 35203 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 35204 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35205 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35206 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 35207 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 35208 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 35209 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 35210 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 35211 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 35212 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35213 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 35214 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35215 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35216 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 35217 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 35218 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 35219 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35220 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35221 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 35222 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 35223 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35224 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 35225 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35226 | .{ ._, ._, .mov, .tmp6q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35227 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| | 35228 | .{ ._, ._l, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 35229 | .{ ._, ._r, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 35230 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp6q, ._, ._ }, |
| | 35231 | .{ ._, ._, .xor, .tmp7q, .tmp6q, ._, ._ }, |
| | 35232 | .{ ._, ._r, .sa, .tmp6q, .ui(63), ._, ._ }, |
| | 35233 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp6q, ._, ._ }, |
| | 35234 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 35235 | .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ }, |
| | 35236 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| | 35237 | } }, |
| | 35238 | }, .{ |
| | 35239 | .required_features = .{ .@"64bit", null, null, null }, |
| | 35240 | .src_constraints = .{ |
| | 35241 | .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, |
| | 35242 | .{ .unsigned_int = .byte }, |
| | 35243 | .any, |
| | 35244 | }, |
| | 35245 | .patterns = &.{ |
| | 35246 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35247 | }, |
| | 35248 | .extra_temps = .{ |
| | 35249 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35250 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35251 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35252 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35253 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35254 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35255 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35256 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35257 | .unused, |
| | 35258 | .unused, |
| | 35259 | .unused, |
| | 35260 | }, |
| | 35261 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35262 | .clobbers = .{ .eflags = true }, |
| | 35263 | .each = .{ .once = &.{ |
| | 35264 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 35265 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35266 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35267 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35268 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35269 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 35270 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 35271 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 35272 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 35273 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 35274 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35275 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35276 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 35277 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 35278 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 35279 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 35280 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 35281 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 35282 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35283 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 35284 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35285 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35286 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 35287 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 35288 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 35289 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35290 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35291 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 35292 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 35293 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35294 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 35295 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35296 | .{ ._, ._, .mov, .tmp6q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35297 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| | 35298 | .{ ._, ._l, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 35299 | .{ ._, ._r, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 35300 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp6q, ._, ._ }, |
| | 35301 | .{ ._, ._, .xor, .tmp7q, .tmp6q, ._, ._ }, |
| | 35302 | .{ ._, ._r, .sa, .tmp6q, .ui(63), ._, ._ }, |
| | 35303 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp6q, ._, ._ }, |
| | 35304 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 35305 | .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ }, |
| | 35306 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| | 35307 | } }, |
| | 35308 | }, .{ |
| | 35309 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 35310 | .src_constraints = .{ |
| | 35311 | .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, |
| | 35312 | .{ .unsigned_int = .word }, |
| | 35313 | .any, |
| | 35314 | }, |
| | 35315 | .patterns = &.{ |
| | 35316 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35317 | }, |
| | 35318 | .extra_temps = .{ |
| | 35319 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35320 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35321 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35322 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35323 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35324 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35325 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35326 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35327 | .unused, |
| | 35328 | .unused, |
| | 35329 | .unused, |
| | 35330 | }, |
| | 35331 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35332 | .clobbers = .{ .eflags = true }, |
| | 35333 | .each = .{ .once = &.{ |
| | 35334 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 35335 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35336 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35337 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35338 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35339 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 35340 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 35341 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 35342 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 35343 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 35344 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35345 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35346 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 35347 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 35348 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 35349 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 35350 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 35351 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 35352 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35353 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 35354 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35355 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35356 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 35357 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 35358 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 35359 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35360 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35361 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 35362 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 35363 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35364 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 35365 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35366 | .{ ._, ._, .mov, .tmp6q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35367 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| | 35368 | .{ ._, ._l, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 35369 | .{ ._, ._r, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 35370 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp6q, ._, ._ }, |
| | 35371 | .{ ._, ._, .xor, .tmp7q, .tmp6q, ._, ._ }, |
| | 35372 | .{ ._, ._r, .sa, .tmp6q, .ui(63), ._, ._ }, |
| | 35373 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp6q, ._, ._ }, |
| | 35374 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 35375 | .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ }, |
| | 35376 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| | 35377 | } }, |
| | 35378 | }, .{ |
| | 35379 | .required_features = .{ .@"64bit", null, null, null }, |
| | 35380 | .src_constraints = .{ |
| | 35381 | .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, |
| | 35382 | .{ .unsigned_int = .word }, |
| | 35383 | .any, |
| | 35384 | }, |
| | 35385 | .patterns = &.{ |
| | 35386 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35387 | }, |
| | 35388 | .extra_temps = .{ |
| | 35389 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35390 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35391 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35392 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35393 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35394 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35395 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35396 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35397 | .unused, |
| | 35398 | .unused, |
| | 35399 | .unused, |
| | 35400 | }, |
| | 35401 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35402 | .clobbers = .{ .eflags = true }, |
| | 35403 | .each = .{ .once = &.{ |
| | 35404 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 35405 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35406 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35407 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35408 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35409 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 35410 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 35411 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 35412 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 35413 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 35414 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35415 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35416 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 35417 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 35418 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 35419 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 35420 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 35421 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 35422 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35423 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 35424 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35425 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35426 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 35427 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 35428 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 35429 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35430 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35431 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 35432 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 35433 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35434 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 35435 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35436 | .{ ._, ._, .mov, .tmp6q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35437 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| | 35438 | .{ ._, ._l, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 35439 | .{ ._, ._r, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 35440 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp6q, ._, ._ }, |
| | 35441 | .{ ._, ._, .xor, .tmp7q, .tmp6q, ._, ._ }, |
| | 35442 | .{ ._, ._r, .sa, .tmp6q, .ui(63), ._, ._ }, |
| | 35443 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp6q, ._, ._ }, |
| | 35444 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 35445 | .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ }, |
| | 35446 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| | 35447 | } }, |
| | 35448 | }, .{ |
| | 35449 | .required_features = .{ .@"64bit", .bmi, .slow_incdec, null }, |
| | 35450 | .src_constraints = .{ |
| | 35451 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35452 | .{ .unsigned_int = .byte }, |
| | 35453 | .any, |
| | 35454 | }, |
| | 35455 | .patterns = &.{ |
| | 35456 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35457 | }, |
| | 35458 | .extra_temps = .{ |
| | 35459 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35460 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35461 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35462 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35463 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35464 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35465 | .unused, |
| | 35466 | .unused, |
| | 35467 | .unused, |
| | 35468 | .unused, |
| | 35469 | .unused, |
| | 35470 | }, |
| | 35471 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35472 | .clobbers = .{ .eflags = true }, |
| | 35473 | .each = .{ .once = &.{ |
| | 35474 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 35475 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35476 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35477 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35478 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35479 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35480 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35481 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35482 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35483 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35484 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35485 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35486 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35487 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 35488 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 35489 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35490 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 35491 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35492 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35493 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35494 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35495 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35496 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35497 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35498 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35499 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35500 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35501 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 35502 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35503 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| | 35504 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35505 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| | 35506 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| | 35507 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp2q, ._, ._ }, |
| | 35508 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 35509 | } }, |
| | 35510 | }, .{ |
| | 35511 | .required_features = .{ .@"64bit", .bmi, null, null }, |
| | 35512 | .src_constraints = .{ |
| | 35513 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35514 | .{ .unsigned_int = .byte }, |
| | 35515 | .any, |
| | 35516 | }, |
| | 35517 | .patterns = &.{ |
| | 35518 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35519 | }, |
| | 35520 | .extra_temps = .{ |
| | 35521 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35522 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35523 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35524 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35525 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35526 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35527 | .unused, |
| | 35528 | .unused, |
| | 35529 | .unused, |
| | 35530 | .unused, |
| | 35531 | .unused, |
| | 35532 | }, |
| | 35533 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35534 | .clobbers = .{ .eflags = true }, |
| | 35535 | .each = .{ .once = &.{ |
| | 35536 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 35537 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35538 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35539 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35540 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35541 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35542 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35543 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35544 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35545 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35546 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35547 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35548 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35549 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 35550 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 35551 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35552 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 35553 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35554 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35555 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35556 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35557 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35558 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35559 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35560 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35561 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35562 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35563 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 35564 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35565 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| | 35566 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35567 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| | 35568 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| | 35569 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp2q, ._, ._ }, |
| | 35570 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 35571 | } }, |
| | 35572 | }, .{ |
| | 35573 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 35574 | .src_constraints = .{ |
| | 35575 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35576 | .{ .unsigned_int = .byte }, |
| | 35577 | .any, |
| | 35578 | }, |
| | 35579 | .patterns = &.{ |
| | 35580 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35581 | }, |
| | 35582 | .extra_temps = .{ |
| | 35583 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35584 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35585 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35586 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35587 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35588 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35589 | .unused, |
| | 35590 | .unused, |
| | 35591 | .unused, |
| | 35592 | .unused, |
| | 35593 | .unused, |
| | 35594 | }, |
| | 35595 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35596 | .clobbers = .{ .eflags = true }, |
| | 35597 | .each = .{ .once = &.{ |
| | 35598 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 35599 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35600 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35601 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35602 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35603 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35604 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35605 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35606 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35607 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35608 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35609 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35610 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35611 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 35612 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 35613 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35614 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 35615 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35616 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35617 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35618 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35619 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35620 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35621 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35622 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35623 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35624 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35625 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 35626 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35627 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| | 35628 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35629 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| | 35630 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 35631 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp3q, ._, ._ }, |
| | 35632 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 35633 | } }, |
| | 35634 | }, .{ |
| | 35635 | .required_features = .{ .@"64bit", null, null, null }, |
| | 35636 | .src_constraints = .{ |
| | 35637 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35638 | .{ .unsigned_int = .byte }, |
| | 35639 | .any, |
| | 35640 | }, |
| | 35641 | .patterns = &.{ |
| | 35642 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35643 | }, |
| | 35644 | .extra_temps = .{ |
| | 35645 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35646 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35647 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35648 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35649 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35650 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35651 | .unused, |
| | 35652 | .unused, |
| | 35653 | .unused, |
| | 35654 | .unused, |
| | 35655 | .unused, |
| | 35656 | }, |
| | 35657 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35658 | .clobbers = .{ .eflags = true }, |
| | 35659 | .each = .{ .once = &.{ |
| | 35660 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 35661 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35662 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35663 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35664 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35665 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35666 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35667 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35668 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35669 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35670 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35671 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35672 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35673 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 35674 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 35675 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35676 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 35677 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35678 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35679 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35680 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35681 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35682 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35683 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35684 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35685 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35686 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35687 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 35688 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35689 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| | 35690 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35691 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| | 35692 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 35693 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp3q, ._, ._ }, |
| | 35694 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 35695 | } }, |
| | 35696 | }, .{ |
| | 35697 | .required_features = .{ .@"64bit", .bmi, .slow_incdec, null }, |
| | 35698 | .src_constraints = .{ |
| | 35699 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35700 | .{ .unsigned_int = .word }, |
| | 35701 | .any, |
| | 35702 | }, |
| | 35703 | .patterns = &.{ |
| | 35704 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35705 | }, |
| | 35706 | .extra_temps = .{ |
| | 35707 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35708 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35709 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35710 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35711 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35712 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35713 | .unused, |
| | 35714 | .unused, |
| | 35715 | .unused, |
| | 35716 | .unused, |
| | 35717 | .unused, |
| | 35718 | }, |
| | 35719 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35720 | .clobbers = .{ .eflags = true }, |
| | 35721 | .each = .{ .once = &.{ |
| | 35722 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 35723 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35724 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35725 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35726 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35727 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35728 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35729 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35730 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35731 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35732 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35733 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35734 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35735 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 35736 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 35737 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35738 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 35739 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35740 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35741 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35742 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35743 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35744 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35745 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35746 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35747 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35748 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35749 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 35750 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35751 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| | 35752 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35753 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| | 35754 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| | 35755 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp2q, ._, ._ }, |
| | 35756 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 35757 | } }, |
| | 35758 | }, .{ |
| | 35759 | .required_features = .{ .@"64bit", .bmi, null, null }, |
| | 35760 | .src_constraints = .{ |
| | 35761 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35762 | .{ .unsigned_int = .word }, |
| | 35763 | .any, |
| | 35764 | }, |
| | 35765 | .patterns = &.{ |
| | 35766 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35767 | }, |
| | 35768 | .extra_temps = .{ |
| | 35769 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35770 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35771 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35772 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35773 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35774 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35775 | .unused, |
| | 35776 | .unused, |
| | 35777 | .unused, |
| | 35778 | .unused, |
| | 35779 | .unused, |
| | 35780 | }, |
| | 35781 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35782 | .clobbers = .{ .eflags = true }, |
| | 35783 | .each = .{ .once = &.{ |
| | 35784 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 35785 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35786 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35787 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35788 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35789 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35790 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35791 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35792 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35793 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35794 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35795 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35796 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35797 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 35798 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 35799 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35800 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 35801 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35802 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35803 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35804 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35805 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35806 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35807 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35808 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35809 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35810 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35811 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 35812 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35813 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| | 35814 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35815 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| | 35816 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| | 35817 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp2q, ._, ._ }, |
| | 35818 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 35819 | } }, |
| | 35820 | }, .{ |
| | 35821 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 35822 | .src_constraints = .{ |
| | 35823 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35824 | .{ .unsigned_int = .word }, |
| | 35825 | .any, |
| | 35826 | }, |
| | 35827 | .patterns = &.{ |
| | 35828 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35829 | }, |
| | 35830 | .extra_temps = .{ |
| | 35831 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35832 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35833 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35834 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35835 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35836 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35837 | .unused, |
| | 35838 | .unused, |
| | 35839 | .unused, |
| | 35840 | .unused, |
| | 35841 | .unused, |
| | 35842 | }, |
| | 35843 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35844 | .clobbers = .{ .eflags = true }, |
| | 35845 | .each = .{ .once = &.{ |
| | 35846 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 35847 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35848 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35849 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35850 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35851 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35852 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35853 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35854 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35855 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35856 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35857 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35858 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35859 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 35860 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 35861 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35862 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 35863 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35864 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35865 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35866 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35867 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35868 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35869 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35870 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35871 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35872 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35873 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 35874 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35875 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| | 35876 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35877 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| | 35878 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 35879 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp3q, ._, ._ }, |
| | 35880 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 35881 | } }, |
| | 35882 | }, .{ |
| | 35883 | .required_features = .{ .@"64bit", null, null, null }, |
| | 35884 | .src_constraints = .{ |
| | 35885 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| | 35886 | .{ .unsigned_int = .word }, |
| | 35887 | .any, |
| | 35888 | }, |
| | 35889 | .patterns = &.{ |
| | 35890 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35891 | }, |
| | 35892 | .extra_temps = .{ |
| | 35893 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35894 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35895 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35896 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35897 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35898 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 35899 | .unused, |
| | 35900 | .unused, |
| | 35901 | .unused, |
| | 35902 | .unused, |
| | 35903 | .unused, |
| | 35904 | }, |
| | 35905 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35906 | .clobbers = .{ .eflags = true }, |
| | 35907 | .each = .{ .once = &.{ |
| | 35908 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 35909 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 35910 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35911 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35912 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35913 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 35914 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 35915 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| | 35916 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 35917 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35918 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35919 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 35920 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 35921 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 35922 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 35923 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35924 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 35925 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35926 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35927 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 35928 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 35929 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 35930 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 35931 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35932 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 35933 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 35934 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 35935 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 35936 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 35937 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| | 35938 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 35939 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| | 35940 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 35941 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp3q, ._, ._ }, |
| | 35942 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 35943 | } }, |
| | 35944 | }, .{ |
| | 35945 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 35946 | .src_constraints = .{ |
| | 35947 | .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, |
| | 35948 | .{ .unsigned_int = .byte }, |
| | 35949 | .any, |
| | 35950 | }, |
| | 35951 | .patterns = &.{ |
| | 35952 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 35953 | }, |
| | 35954 | .extra_temps = .{ |
| | 35955 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35956 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 35957 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 35958 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35959 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35960 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35961 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35962 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 35963 | .unused, |
| | 35964 | .unused, |
| | 35965 | .unused, |
| | 35966 | }, |
| | 35967 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 35968 | .clobbers = .{ .eflags = true }, |
| | 35969 | .each = .{ .once = &.{ |
| | 35970 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 35971 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 35972 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 35973 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 35974 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35975 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 35976 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 35977 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 35978 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 35979 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 35980 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 35981 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 35982 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 35983 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 35984 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 35985 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 35986 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 35987 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 35988 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 35989 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35990 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 35991 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 35992 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 35993 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 35994 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 35995 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 35996 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 35997 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 35998 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 35999 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 36000 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 36001 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 36002 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 36003 | .{ ._, ._, .mov, .tmp6q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 36004 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| | 36005 | .{ ._, ._l, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 36006 | .{ ._, ._r, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 36007 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp6q, ._, ._ }, |
| | 36008 | .{ ._, ._, .xor, .tmp7q, .tmp6q, ._, ._ }, |
| | 36009 | .{ ._, ._r, .sa, .tmp6q, .ui(63), ._, ._ }, |
| | 36010 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 36011 | .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ }, |
| | 36012 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| | 36013 | } }, |
| | 36014 | }, .{ |
| | 36015 | .required_features = .{ .@"64bit", null, null, null }, |
| | 36016 | .src_constraints = .{ |
| | 36017 | .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, |
| | 36018 | .{ .unsigned_int = .byte }, |
| | 36019 | .any, |
| | 36020 | }, |
| | 36021 | .patterns = &.{ |
| | 36022 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 36023 | }, |
| | 36024 | .extra_temps = .{ |
| | 36025 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36026 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36027 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 36028 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36029 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36030 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36031 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36032 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36033 | .unused, |
| | 36034 | .unused, |
| | 36035 | .unused, |
| | 36036 | }, |
| | 36037 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 36038 | .clobbers = .{ .eflags = true }, |
| | 36039 | .each = .{ .once = &.{ |
| | 36040 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 36041 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 36042 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 36043 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36044 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36045 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 36046 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 36047 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 36048 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 36049 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 36050 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 36051 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 36052 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 36053 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 36054 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 36055 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 36056 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 36057 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 36058 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 36059 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 36060 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 36061 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 36062 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36063 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 36064 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 36065 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 36066 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 36067 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 36068 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 36069 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 36070 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 36071 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 36072 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 36073 | .{ ._, ._, .mov, .tmp6q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 36074 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| | 36075 | .{ ._, ._l, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 36076 | .{ ._, ._r, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 36077 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp6q, ._, ._ }, |
| | 36078 | .{ ._, ._, .xor, .tmp7q, .tmp6q, ._, ._ }, |
| | 36079 | .{ ._, ._r, .sa, .tmp6q, .ui(63), ._, ._ }, |
| | 36080 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 36081 | .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ }, |
| | 36082 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| | 36083 | } }, |
| | 36084 | }, .{ |
| | 36085 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 36086 | .src_constraints = .{ |
| | 36087 | .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, |
| | 36088 | .{ .unsigned_int = .word }, |
| | 36089 | .any, |
| | 36090 | }, |
| | 36091 | .patterns = &.{ |
| | 36092 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 36093 | }, |
| | 36094 | .extra_temps = .{ |
| | 36095 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36096 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36097 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 36098 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36099 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36100 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36101 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36102 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36103 | .unused, |
| | 36104 | .unused, |
| | 36105 | .unused, |
| | 36106 | }, |
| | 36107 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 36108 | .clobbers = .{ .eflags = true }, |
| | 36109 | .each = .{ .once = &.{ |
| | 36110 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 36111 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 36112 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 36113 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36114 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36115 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 36116 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 36117 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 36118 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 36119 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 36120 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 36121 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 36122 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 36123 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 36124 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 36125 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 36126 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 36127 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 36128 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 36129 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 36130 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 36131 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 36132 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36133 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 36134 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 36135 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 36136 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 36137 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 36138 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 36139 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 36140 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 36141 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 36142 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 36143 | .{ ._, ._, .mov, .tmp6q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 36144 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| | 36145 | .{ ._, ._l, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 36146 | .{ ._, ._r, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 36147 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp6q, ._, ._ }, |
| | 36148 | .{ ._, ._, .xor, .tmp7q, .tmp6q, ._, ._ }, |
| | 36149 | .{ ._, ._r, .sa, .tmp6q, .ui(63), ._, ._ }, |
| | 36150 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 36151 | .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ }, |
| | 36152 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| | 36153 | } }, |
| | 36154 | }, .{ |
| | 36155 | .required_features = .{ .@"64bit", null, null, null }, |
| | 36156 | .src_constraints = .{ |
| | 36157 | .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, |
| | 36158 | .{ .unsigned_int = .word }, |
| | 36159 | .any, |
| | 36160 | }, |
| | 36161 | .patterns = &.{ |
| | 36162 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 36163 | }, |
| | 36164 | .extra_temps = .{ |
| | 36165 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36166 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36167 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 36168 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36169 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36170 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36171 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36172 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 36173 | .unused, |
| | 36174 | .unused, |
| | 36175 | .unused, |
| | 36176 | }, |
| | 36177 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 36178 | .clobbers = .{ .eflags = true }, |
| | 36179 | .each = .{ .once = &.{ |
| | 36180 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 36181 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 36182 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 36183 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36184 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36185 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 36186 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 36187 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 36188 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 36189 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 36190 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 36191 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 36192 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 36193 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 36194 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 36195 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 36196 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 36197 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 36198 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 36199 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 36200 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 36201 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 36202 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36203 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 36204 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 36205 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 36206 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 36207 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 36208 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 36209 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 36210 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 36211 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 36212 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 36213 | .{ ._, ._, .mov, .tmp6q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 36214 | .{ ._, ._, .mov, .tmp7q, .tmp6q, ._, ._ }, |
| | 36215 | .{ ._, ._l, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 36216 | .{ ._, ._r, .sa, .tmp6q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 36217 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp6q, ._, ._ }, |
| | 36218 | .{ ._, ._, .xor, .tmp7q, .tmp6q, ._, ._ }, |
| | 36219 | .{ ._, ._r, .sa, .tmp6q, .ui(63), ._, ._ }, |
| | 36220 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 36221 | .{ ._, ._, .xor, .tmp6q, .tmp3q, ._, ._ }, |
| | 36222 | .{ ._, ._, .@"or", .tmp5q, .tmp6q, ._, ._ }, |
| | 36223 | } }, |
| | 36224 | }, .{ |
| | 36225 | .required_features = .{ .@"64bit", .bmi, .slow_incdec, null }, |
| | 36226 | .src_constraints = .{ |
| | 36227 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| | 36228 | .{ .unsigned_int = .byte }, |
| | 36229 | .any, |
| | 36230 | }, |
| | 36231 | .patterns = &.{ |
| | 36232 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 36233 | }, |
| | 36234 | .extra_temps = .{ |
| | 36235 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36236 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36237 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 36238 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 36239 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 36240 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 36241 | .unused, |
| | 36242 | .unused, |
| | 36243 | .unused, |
| | 36244 | .unused, |
| | 36245 | .unused, |
| | 36246 | }, |
| | 36247 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| | 36248 | .clobbers = .{ .eflags = true }, |
| | 36249 | .each = .{ .once = &.{ |
| | 36250 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 36251 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 36252 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 36253 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36254 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36255 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 36256 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 36257 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 36258 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 36259 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 36260 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 36261 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 36262 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 36263 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 36264 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 36265 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 36266 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 36267 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36268 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 36269 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 36270 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 36271 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 36272 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 36273 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 36274 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 36275 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 36276 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 36277 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 36278 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| | 36279 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 36280 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| | 36281 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| | 36282 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp2q, ._, ._ }, |
| | 36283 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 36284 | } }, |
| | 36285 | }, .{ |
| | 36286 | .required_features = .{ .@"64bit", .bmi, null, null }, |
| 32927 | .src_constraints = .{ | 36287 | .src_constraints = .{ |
| 32928 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, | 36288 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 32929 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, | 36289 | .{ .unsigned_int = .byte }, |
| 32930 | .any, | 36290 | .any, |
| 32931 | }, | 36291 | }, |
| 32932 | .patterns = &.{ | 36292 | .patterns = &.{ |
| 32933 | .{ .src = .{ .to_mem, .to_mem, .none } }, | 36293 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 32934 | }, | 36294 | }, |
| 32935 | .extra_temps = .{ | 36295 | .extra_temps = .{ |
| 32936 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 36296 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36297 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 32937 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 36298 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 32938 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36299 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 32939 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 32940 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36300 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 32941 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 32942 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36301 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 32943 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 36302 | .unused, |
| 32944 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 36303 | .unused, |
| | 36304 | .unused, |
| 32945 | .unused, | 36305 | .unused, |
| 32946 | .unused, | 36306 | .unused, |
| 32947 | }, | 36307 | }, |
| 32948 | .dst_temps = .{ .mem, .{ .cc = .nz } }, | 36308 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 32949 | .clobbers = .{ .eflags = true }, | 36309 | .clobbers = .{ .eflags = true }, |
| 32950 | .each = .{ .once = &.{ | 36310 | .each = .{ .once = &.{ |
| 32951 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | 36311 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| 32952 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, | 36312 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 32953 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 36313 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 32954 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, | 36314 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36315 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36316 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 32955 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 36317 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 32956 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, | 36318 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 32957 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | 36319 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 32958 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, | 36320 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 32959 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, | 36321 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 32960 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, | 36322 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 32961 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, | 36323 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| 32962 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, | 36324 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 32963 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, | 36325 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| 32964 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, | 36326 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| 32965 | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, | 36327 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 32966 | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, | 36328 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 32967 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | 36329 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 32968 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, | 36330 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 32969 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, | 36331 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 32970 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, | 36332 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 32971 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 36333 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 32972 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, | 36334 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 32973 | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, | 36335 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 32974 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, | 36336 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 32975 | .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, | 36337 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 32976 | .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ }, | 36338 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 32977 | .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, | 36339 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| 32978 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | 36340 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 32979 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, | 36341 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| 32980 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | 36342 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| 32981 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, | 36343 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp2q, ._, ._ }, |
| 32982 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, | 36344 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 32983 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, | | |
| 32984 | .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, | | |
| 32985 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, | | |
| 32986 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, | | |
| 32987 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp0q, ._, ._ }, | | |
| 32988 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, | | |
| 32989 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .ui(0), ._, ._ }, | | |
| 32990 | } }, | 36345 | } }, |
| 32991 | }, .{ | 36346 | }, .{ |
| 32992 | .required_features = .{ .@"64bit", null, null, null }, | 36347 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 32993 | .src_constraints = .{ | 36348 | .src_constraints = .{ |
| 32994 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, | 36349 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 32995 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, | 36350 | .{ .unsigned_int = .byte }, |
| 32996 | .any, | 36351 | .any, |
| 32997 | }, | 36352 | }, |
| 32998 | .patterns = &.{ | 36353 | .patterns = &.{ |
| 32999 | .{ .src = .{ .to_mem, .to_mem, .none } }, | 36354 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33000 | }, | 36355 | }, |
| 33001 | .extra_temps = .{ | 36356 | .extra_temps = .{ |
| 33002 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 36357 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36358 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33003 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 36359 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33004 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36360 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33005 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 33006 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36361 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33007 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 33008 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36362 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33009 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 36363 | .unused, |
| 33010 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 36364 | .unused, |
| | 36365 | .unused, |
| 33011 | .unused, | 36366 | .unused, |
| 33012 | .unused, | 36367 | .unused, |
| 33013 | }, | 36368 | }, |
| 33014 | .dst_temps = .{ .mem, .{ .cc = .nz } }, | 36369 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33015 | .clobbers = .{ .eflags = true }, | 36370 | .clobbers = .{ .eflags = true }, |
| 33016 | .each = .{ .once = &.{ | 36371 | .each = .{ .once = &.{ |
| 33017 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | 36372 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| 33018 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, | 36373 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33019 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 36374 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 33020 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, | 36375 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36376 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36377 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 33021 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 36378 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33022 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, | 36379 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 33023 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | 36380 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 33024 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, | 36381 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 33025 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, | 36382 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 33026 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, | 36383 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 33027 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, | 36384 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| 33028 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, | 36385 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 33029 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, | 36386 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 33030 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, | 36387 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| 33031 | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, | 36388 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 33032 | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, | 36389 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 33033 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | 36390 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 33034 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, | 36391 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 33035 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, | 36392 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 33036 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, | 36393 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 33037 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 36394 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 33038 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, | 36395 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 33039 | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, | 36396 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 33040 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, | 36397 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33041 | .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, | 36398 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 33042 | .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ }, | 36399 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 33043 | .{ ._, ._ns, .j, .@"1b", ._, ._, ._ }, | 36400 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 33044 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | 36401 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 33045 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, | 36402 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| 33046 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | 36403 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| 33047 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, | 36404 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp3q, ._, ._ }, |
| 33048 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, | 36405 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33049 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, | | |
| 33050 | .{ ._, ._, .@"or", .tmp2q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, | | |
| 33051 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, | | |
| 33052 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, | | |
| 33053 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -16), .tmp0q, ._, ._ }, | | |
| 33054 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, | | |
| 33055 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .ui(0), ._, ._ }, | | |
| 33056 | } }, | 36406 | } }, |
| 33057 | }, .{ | 36407 | }, .{ |
| 33058 | .required_features = .{ .@"64bit", .bmi2, .adx, null }, | 36408 | .required_features = .{ .@"64bit", null, null, null }, |
| 33059 | .src_constraints = .{ | 36409 | .src_constraints = .{ |
| 33060 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, | 36410 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 33061 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, | 36411 | .{ .unsigned_int = .byte }, |
| 33062 | .any, | 36412 | .any, |
| 33063 | }, | 36413 | }, |
| 33064 | .patterns = &.{ | 36414 | .patterns = &.{ |
| 33065 | .{ .src = .{ .to_mem, .to_mem, .none } }, | 36415 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33066 | }, | 36416 | }, |
| 33067 | .extra_temps = .{ | 36417 | .extra_temps = .{ |
| 33068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 36418 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36419 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33069 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 36420 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33070 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36421 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33071 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36422 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33072 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 33073 | .{ .type = .isize, .kind = .{ .reg = .rcx } }, | | |
| 33074 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 33075 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 33076 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36423 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33077 | .unused, | 36424 | .unused, |
| 33078 | .unused, | 36425 | .unused, |
| | 36426 | .unused, |
| | 36427 | .unused, |
| | 36428 | .unused, |
| 33079 | }, | 36429 | }, |
| 33080 | .dst_temps = .{ .mem, .{ .cc = .nz } }, | 36430 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33081 | .clobbers = .{ .eflags = true }, | 36431 | .clobbers = .{ .eflags = true }, |
| 33082 | .each = .{ .once = &.{ | 36432 | .each = .{ .once = &.{ |
| 33083 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, | 36433 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| 33084 | .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ }, | 36434 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33085 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 36435 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 36436 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36437 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36438 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 36439 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 36440 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 36441 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 36442 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 36443 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 36444 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 36445 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 36446 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 36447 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 36448 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 36449 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 36450 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36451 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 36452 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 36453 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 36454 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 36455 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 36456 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 36457 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 33086 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 36458 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33087 | .{ .@"0:", ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 36459 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 33088 | .{ ._, ._, .@"or", .tmp4q, .memi(.src0q, .tmp0), ._, ._ }, | 36460 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 33089 | .{ ._, ._z, .j, .@"2f", ._, ._, ._ }, | 36461 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 33090 | .{ ._, ._, .lea, .tmp5p, .leaad(.tmp0, .sub_src0_size, 8), ._, ._ }, | 36462 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 33091 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | 36463 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| 33092 | .{ .@"1:", ._x, .mul, .tmp8q, .tmp7q, .leai(.tmp1q, .tmp5), ._ }, | 36464 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| 33093 | .{ ._, ._x, .adc, .tmp7q, .tmp6q, ._, ._ }, | 36465 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp3q, ._, ._ }, |
| 33094 | .{ ._, ._, .mov, .memiad(.dst0q, .tmp5, .add_src0_size, -8), .tmp7q, ._, ._ }, | 36466 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33095 | .{ ._, ._rcxz, .j, .@"1f", ._, ._, ._ }, | | |
| 33096 | .{ ._, ._x, .ado, .tmp8q, .memia(.dst0q, .tmp5, .add_src0_size), ._, ._ }, | | |
| 33097 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, | | |
| 33098 | .{ ._, ._, .lea, .tmp5p, .lead(.tmp5, 8), ._, ._ }, | | |
| 33099 | .{ ._, ._mp, .j, .@"1b", ._, ._, ._ }, | | |
| 33100 | .{ .@"2:", ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ }, | | |
| 33101 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, | | |
| 33102 | .{ .@"1:", ._, .mov, .tmp4d, .tmp0d, ._, ._ }, | | |
| 33103 | .{ ._, ._x, .ado, .tmp8q, .tmp3q, ._, ._ }, | | |
| 33104 | .{ ._, ._x, .adc, .tmp8q, .tmp3q, ._, ._ }, | | |
| 33105 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, | | |
| 33106 | .{ .@"1:", ._, .@"or", .tmp8q, .leai(.tmp1q, .tmp4), ._, ._ }, | | |
| 33107 | .{ .@"2:", ._, .sub, .tmp4d, .si(8), ._, ._ }, | | |
| 33108 | .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, | | |
| 33109 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 33110 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, | | |
| 33111 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, | | |
| 33112 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, | | |
| 33113 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, | | |
| 33114 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, | | |
| 33115 | .{ ._, ._, .bzhi, .tmp0q, .tmp1q, .tmp0q, ._ }, | | |
| 33116 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, | | |
| 33117 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, | | |
| 33118 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, | | |
| 33119 | } }, | 36467 | } }, |
| 33120 | }, .{ | 36468 | }, .{ |
| 33121 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, | 36469 | .required_features = .{ .@"64bit", .bmi, .slow_incdec, null }, |
| 33122 | .src_constraints = .{ | 36470 | .src_constraints = .{ |
| 33123 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, | 36471 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 33124 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, | 36472 | .{ .unsigned_int = .word }, |
| 33125 | .any, | 36473 | .any, |
| 33126 | }, | 36474 | }, |
| 33127 | .patterns = &.{ | 36475 | .patterns = &.{ |
| 33128 | .{ .src = .{ .to_mem, .to_mem, .none } }, | 36476 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33129 | }, | 36477 | }, |
| 33130 | .extra_temps = .{ | 36478 | .extra_temps = .{ |
| 33131 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 36479 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36480 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33132 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 36481 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33133 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36482 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33134 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 33135 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 33136 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 33137 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 33138 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36483 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33139 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36484 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33140 | .unused, | 36485 | .unused, |
| 33141 | .unused, | 36486 | .unused, |
| | 36487 | .unused, |
| | 36488 | .unused, |
| | 36489 | .unused, |
| 33142 | }, | 36490 | }, |
| 33143 | .dst_temps = .{ .mem, .{ .cc = .nz } }, | 36491 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33144 | .clobbers = .{ .eflags = true }, | 36492 | .clobbers = .{ .eflags = true }, |
| 33145 | .each = .{ .once = &.{ | 36493 | .each = .{ .once = &.{ |
| 33146 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | 36494 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| 33147 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, | 36495 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33148 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 36496 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 33149 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, | 36497 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36498 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36499 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 33150 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 36500 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33151 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, | 36501 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 33152 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | 36502 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 33153 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, | 36503 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 33154 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, | 36504 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 33155 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, | 36505 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 33156 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, | 36506 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| 33157 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, | 36507 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 33158 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, | 36508 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 33159 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, | 36509 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| 33160 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | 36510 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 33161 | .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ }, | 36511 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 33162 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, | 36512 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 33163 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, | 36513 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 33164 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, | 36514 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 33165 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 36515 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 33166 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, | 36516 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 33167 | .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ }, | 36517 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 33168 | .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ }, | 36518 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 33169 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, | 36519 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33170 | .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, | | |
| 33171 | .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ }, | | |
| 33172 | .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, | | |
| 33173 | .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ }, | | |
| 33174 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, | | |
| 33175 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | 36520 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 33176 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, | 36521 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 33177 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, | 36522 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| 33178 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, | 36523 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 33179 | .{ ._, ._, .bzhi, .tmp0q, .tmp1q, .tmp0q, ._ }, | 36524 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| 33180 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, | 36525 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| 33181 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, | 36526 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp2q, ._, ._ }, |
| 33182 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, | 36527 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33183 | } }, | 36528 | } }, |
| 33184 | }, .{ | 36529 | }, .{ |
| 33185 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 36530 | .required_features = .{ .@"64bit", .bmi, null, null }, |
| 33186 | .src_constraints = .{ | 36531 | .src_constraints = .{ |
| 33187 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, | 36532 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 33188 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, | 36533 | .{ .unsigned_int = .word }, |
| 33189 | .any, | 36534 | .any, |
| 33190 | }, | 36535 | }, |
| 33191 | .patterns = &.{ | 36536 | .patterns = &.{ |
| 33192 | .{ .src = .{ .to_mem, .to_mem, .none } }, | 36537 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33193 | }, | 36538 | }, |
| 33194 | .extra_temps = .{ | 36539 | .extra_temps = .{ |
| 33195 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 36540 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36541 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33196 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 36542 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33197 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36543 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33198 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 33199 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | | |
| 33200 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 33201 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | | |
| 33202 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36544 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33203 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36545 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33204 | .unused, | 36546 | .unused, |
| 33205 | .unused, | 36547 | .unused, |
| | 36548 | .unused, |
| | 36549 | .unused, |
| | 36550 | .unused, |
| 33206 | }, | 36551 | }, |
| 33207 | .dst_temps = .{ .mem, .{ .cc = .nz } }, | 36552 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33208 | .clobbers = .{ .eflags = true }, | 36553 | .clobbers = .{ .eflags = true }, |
| 33209 | .each = .{ .once = &.{ | 36554 | .each = .{ .once = &.{ |
| 33210 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | 36555 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| 33211 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, | 36556 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33212 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 36557 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 33213 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, | 36558 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36559 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36560 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 33214 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 36561 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33215 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, | 36562 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 33216 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | 36563 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 33217 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, | 36564 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 33218 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, | 36565 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 33219 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, | 36566 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 33220 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, | 36567 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| 33221 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, | 36568 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 33222 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, | 36569 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| 33223 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, | 36570 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| 33224 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | 36571 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 33225 | .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ }, | 36572 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 33226 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, | 36573 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 33227 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, | 36574 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 33228 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, | 36575 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 33229 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 36576 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 33230 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, | 36577 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 33231 | .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ }, | 36578 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 33232 | .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ }, | 36579 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 33233 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, | 36580 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33234 | .{ .@"1:", ._, .@"or", .tmp5q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, | | |
| 33235 | .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ }, | | |
| 33236 | .{ ._, ._ns, .j, .@"1b", ._, ._, ._ }, | | |
| 33237 | .{ ._, ._, .@"or", .tmp2q, .tmp5q, ._, ._ }, | | |
| 33238 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, | | |
| 33239 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | 36581 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 33240 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, | 36582 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 33241 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, | 36583 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| 33242 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, | 36584 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 33243 | .{ ._, ._, .bzhi, .tmp0q, .tmp1q, .tmp0q, ._ }, | 36585 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| 33244 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, | 36586 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| 33245 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, | 36587 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp2q, ._, ._ }, |
| 33246 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, | 36588 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33247 | } }, | 36589 | } }, |
| 33248 | }, .{ | 36590 | }, .{ |
| 33249 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 36591 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 33250 | .src_constraints = .{ | 36592 | .src_constraints = .{ |
| 33251 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, | 36593 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 33252 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, | 36594 | .{ .unsigned_int = .word }, |
| 33253 | .any, | 36595 | .any, |
| 33254 | }, | 36596 | }, |
| 33255 | .patterns = &.{ | 36597 | .patterns = &.{ |
| 33256 | .{ .src = .{ .to_mem, .to_mem, .none } }, | 36598 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33257 | }, | 36599 | }, |
| 33258 | .extra_temps = .{ | 36600 | .extra_temps = .{ |
| 33259 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 36601 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36602 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33260 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 36603 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33261 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36604 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33262 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 33263 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36605 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33264 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 33265 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36606 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33266 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 36607 | .unused, |
| 33267 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 36608 | .unused, |
| | 36609 | .unused, |
| 33268 | .unused, | 36610 | .unused, |
| 33269 | .unused, | 36611 | .unused, |
| 33270 | }, | 36612 | }, |
| 33271 | .dst_temps = .{ .mem, .{ .cc = .nz } }, | 36613 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33272 | .clobbers = .{ .eflags = true }, | 36614 | .clobbers = .{ .eflags = true }, |
| 33273 | .each = .{ .once = &.{ | 36615 | .each = .{ .once = &.{ |
| 33274 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | 36616 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| 33275 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, | 36617 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33276 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 36618 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 33277 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, | 36619 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36620 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36621 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 33278 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 36622 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33279 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, | 36623 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 33280 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | 36624 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 33281 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, | 36625 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 33282 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, | 36626 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 33283 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, | 36627 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 33284 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, | 36628 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| 33285 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, | 36629 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 33286 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, | 36630 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 33287 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, | 36631 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| 33288 | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, | 36632 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 33289 | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, | 36633 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 33290 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | 36634 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 33291 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, | 36635 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 33292 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, | 36636 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 33293 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, | 36637 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 33294 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 36638 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 33295 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, | 36639 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 33296 | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, | 36640 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 33297 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, | 36641 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33298 | .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, | | |
| 33299 | .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ }, | | |
| 33300 | .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, | | |
| 33301 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 33302 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, | | |
| 33303 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | 36642 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 33304 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, | 36643 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 33305 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, | 36644 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 33306 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, | 36645 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 33307 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, | 36646 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| 33308 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, | 36647 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| 33309 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, | 36648 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp3q, ._, ._ }, |
| 33310 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, | 36649 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33311 | } }, | 36650 | } }, |
| 33312 | }, .{ | 36651 | }, .{ |
| 33313 | .required_features = .{ .@"64bit", null, null, null }, | 36652 | .required_features = .{ .@"64bit", null, null, null }, |
| 33314 | .src_constraints = .{ | 36653 | .src_constraints = .{ |
| 33315 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, | 36654 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 33316 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, | 36655 | .{ .unsigned_int = .word }, |
| 33317 | .any, | 36656 | .any, |
| 33318 | }, | 36657 | }, |
| 33319 | .patterns = &.{ | 36658 | .patterns = &.{ |
| 33320 | .{ .src = .{ .to_mem, .to_mem, .none } }, | 36659 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33321 | }, | 36660 | }, |
| 33322 | .extra_temps = .{ | 36661 | .extra_temps = .{ |
| 33323 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 36662 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 36663 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 33324 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 36664 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33325 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36665 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33326 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | | |
| 33327 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36666 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33328 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, | | |
| 33329 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 36667 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33330 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 36668 | .unused, |
| 33331 | .{ .type = .u64, .kind = .{ .reg = .rdx } }, | 36669 | .unused, |
| | 36670 | .unused, |
| 33332 | .unused, | 36671 | .unused, |
| 33333 | .unused, | 36672 | .unused, |
| 33334 | }, | 36673 | }, |
| 33335 | .dst_temps = .{ .mem, .{ .cc = .nz } }, | 36674 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33336 | .clobbers = .{ .eflags = true }, | 36675 | .clobbers = .{ .eflags = true }, |
| 33337 | .each = .{ .once = &.{ | 36676 | .each = .{ .once = &.{ |
| 33338 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | 36677 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| 33339 | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, | 36678 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33340 | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, | 36679 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 33341 | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, | 36680 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 36681 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 36682 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 33342 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 36683 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33343 | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, | 36684 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 33344 | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, | 36685 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 33345 | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, | 36686 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 33346 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, | 36687 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 33347 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, | 36688 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 33348 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, | 36689 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| 33349 | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, | 36690 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 33350 | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, | 36691 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| 33351 | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, | 36692 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| 33352 | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, | 36693 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 33353 | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, | 36694 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 33354 | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, | 36695 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 33355 | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, | 36696 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 33356 | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, | 36697 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 33357 | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, | 36698 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 33358 | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, | 36699 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 33359 | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, | 36700 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 33360 | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, | 36701 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 33361 | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, | 36702 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33362 | .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, | | |
| 33363 | .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ }, | | |
| 33364 | .{ ._, ._ns, .j, .@"1b", ._, ._, ._ }, | | |
| 33365 | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, | | |
| 33366 | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, | | |
| 33367 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | 36703 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 33368 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, | 36704 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 33369 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, | 36705 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 33370 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, | 36706 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 33371 | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, | 36707 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| 33372 | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, | 36708 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| 33373 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, | 36709 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp3q, ._, ._ }, |
| 33374 | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, | 36710 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33375 | } }, | 36711 | } }, |
| 33376 | } }) catch |err| switch (err) { | 36712 | } }) catch |err| switch (err) { |
| 33377 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | 36713 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| ... | @@ -104574,7 +107910,6 @@ fn genSetReg( | ... | @@ -104574,7 +107910,6 @@ fn genSetReg( |
| 104574 | .none, | 107910 | .none, |
| 104575 | .unreach, | 107911 | .unreach, |
| 104576 | .dead, | 107912 | .dead, |
| 104577 | .register_overflow, | | |
| 104578 | .elementwise_regs_then_frame, | 107913 | .elementwise_regs_then_frame, |
| 104579 | .reserved_frame, | 107914 | .reserved_frame, |
| 104580 | => unreachable, | 107915 | => unreachable, |
| ... | @@ -104886,6 +108221,39 @@ fn genSetReg( | ... | @@ -104886,6 +108221,39 @@ fn genSetReg( |
| 104886 | }, | 108221 | }, |
| 104887 | else => unreachable, | 108222 | else => unreachable, |
| 104888 | }), | 108223 | }), |
| | 108224 | .register_overflow => |src_reg_ov| { |
| | 108225 | const ip = &zcu.intern_pool; |
| | 108226 | const first_ty: Type = .fromInterned(first_ty: switch (ip.indexToKey(ty.toIntern())) { |
| | 108227 | .tuple_type => |tuple_type| { |
| | 108228 | const tuple_field_types = tuple_type.types.get(ip); |
| | 108229 | assert(tuple_field_types.len == 2 and tuple_field_types[1] == .u1_type); |
| | 108230 | break :first_ty tuple_field_types[0]; |
| | 108231 | }, |
| | 108232 | .opt_type => |opt_child| { |
| | 108233 | assert(!ty.optionalReprIsPayload(zcu)); |
| | 108234 | break :first_ty opt_child; |
| | 108235 | }, |
| | 108236 | else => std.debug.panic("{s}: {}\n", .{ @src().fn_name, ty.fmt(pt) }), |
| | 108237 | }); |
| | 108238 | const first_size: u31 = @intCast(first_ty.abiSize(zcu)); |
| | 108239 | const frame_size = std.math.ceilPowerOfTwoAssert(u32, abi_size); |
| | 108240 | const frame_index = try self.allocFrameIndex(.init(.{ |
| | 108241 | .size = frame_size, |
| | 108242 | .alignment = .fromNonzeroByteUnits(frame_size), |
| | 108243 | })); |
| | 108244 | try self.asmMemoryRegister(.{ ._, .mov }, .{ |
| | 108245 | .base = .{ .frame = frame_index }, |
| | 108246 | .mod = .{ .rm = .{ .size = .fromSize(first_size) } }, |
| | 108247 | }, registerAlias(src_reg_ov.reg, first_size)); |
| | 108248 | try self.asmSetccMemory(src_reg_ov.eflags, .{ |
| | 108249 | .base = .{ .frame = frame_index }, |
| | 108250 | .mod = .{ .rm = .{ .size = .byte, .disp = first_size } }, |
| | 108251 | }); |
| | 108252 | try self.asmRegisterMemory(.{ ._, .mov }, registerAlias(dst_reg, abi_size), .{ |
| | 108253 | .base = .{ .frame = frame_index }, |
| | 108254 | .mod = .{ .rm = .{ .size = .fromSize(frame_size) } }, |
| | 108255 | }); |
| | 108256 | }, |
| 104889 | .register_mask => |src_reg_mask| { | 108257 | .register_mask => |src_reg_mask| { |
| 104890 | assert(src_reg_mask.reg.class() == .sse); | 108258 | assert(src_reg_mask.reg.class() == .sse); |
| 104891 | const has_avx = self.hasFeature(.avx); | 108259 | const has_avx = self.hasFeature(.avx); |
| ... | @@ -115808,6 +119176,7 @@ const Select = struct { | ... | @@ -115808,6 +119176,7 @@ const Select = struct { |
| 115808 | | 119176 | |
| 115809 | const Src = union(enum) { | 119177 | const Src = union(enum) { |
| 115810 | none, | 119178 | none, |
| | 119179 | imm: i16, |
| 115811 | imm8, | 119180 | imm8, |
| 115812 | imm16, | 119181 | imm16, |
| 115813 | imm32, | 119182 | imm32, |
| ... | @@ -115855,6 +119224,10 @@ const Select = struct { | ... | @@ -115855,6 +119224,10 @@ const Select = struct { |
| 115855 | fn matches(src: Src, temp: Temp, cg: *CodeGen) bool { | 119224 | fn matches(src: Src, temp: Temp, cg: *CodeGen) bool { |
| 115856 | return switch (src) { | 119225 | return switch (src) { |
| 115857 | .none => temp.tracking(cg).short == .none, | 119226 | .none => temp.tracking(cg).short == .none, |
| | 119227 | .imm => |specific_imm| switch (temp.tracking(cg).short) { |
| | 119228 | .immediate => |imm| @as(i64, @bitCast(imm)) == specific_imm, |
| | 119229 | else => false, |
| | 119230 | }, |
| 115858 | .imm8 => switch (temp.tracking(cg).short) { | 119231 | .imm8 => switch (temp.tracking(cg).short) { |
| 115859 | .immediate => |imm| std.math.cast(u8, imm) != null or | 119232 | .immediate => |imm| std.math.cast(u8, imm) != null or |
| 115860 | std.math.cast(i8, @as(i64, @bitCast(imm))) != null, | 119233 | std.math.cast(i8, @as(i64, @bitCast(imm))) != null, |
| ... | @@ -115965,7 +119338,7 @@ const Select = struct { | ... | @@ -115965,7 +119338,7 @@ const Select = struct { |
| 115965 | | 119338 | |
| 115966 | fn convert(src: Src, temp: *Temp, cg: *CodeGen) InnerError!bool { | 119339 | fn convert(src: Src, temp: *Temp, cg: *CodeGen) InnerError!bool { |
| 115967 | return switch (src) { | 119340 | return switch (src) { |
| 115968 | .none, .imm8, .imm16, .imm32, .simm32 => false, | 119341 | .none, .imm, .imm8, .imm16, .imm32, .simm32 => false, |
| 115969 | .mem, .to_mem => try temp.toBase(false, cg), | 119342 | .mem, .to_mem => try temp.toBase(false, cg), |
| 115970 | .mut_mem, .to_mut_mem => try temp.toBase(true, cg), | 119343 | .mut_mem, .to_mut_mem => try temp.toBase(true, cg), |
| 115971 | .to_reg => |reg| try temp.toReg(reg, cg), | 119344 | .to_reg => |reg| try temp.toReg(reg, cg), |
| ... | @@ -116414,10 +119787,12 @@ const Select = struct { | ... | @@ -116414,10 +119787,12 @@ const Select = struct { |
| 116414 | dst0_elem_size, | 119787 | dst0_elem_size, |
| 116415 | src0_elem_size_mul_src1, | 119788 | src0_elem_size_mul_src1, |
| 116416 | src1, | 119789 | src1, |
| | 119790 | src1_sub_bit_size, |
| 116417 | log2_src0_elem_size, | 119791 | log2_src0_elem_size, |
| 116418 | smin, | 119792 | smin, |
| 116419 | smax, | 119793 | smax, |
| 116420 | umax, | 119794 | umax, |
| | 119795 | umax_shr_src1, |
| 116421 | repeat, | 119796 | repeat, |
| 116422 | }, | 119797 | }, |
| 116423 | op: enum(u2) { mul, div, div_8_down, rem_8_mul }, | 119798 | op: enum(u2) { mul, div, div_8_down, rem_8_mul }, |
| ... | @@ -116473,6 +119848,7 @@ const Select = struct { | ... | @@ -116473,6 +119848,7 @@ const Select = struct { |
| 116473 | const add_src1_div_8_down_4: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .div_8_down, .rhs = .@"4" }; | 119848 | const add_src1_div_8_down_4: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .div_8_down, .rhs = .@"4" }; |
| 116474 | const add_src1_rem_32: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"4" }; | 119849 | const add_src1_rem_32: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"4" }; |
| 116475 | const add_src1_rem_64: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"8" }; | 119850 | const add_src1_rem_64: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"8" }; |
| | 119851 | const add_src1_sub_bit_size: Adjust = .{ .sign = .pos, .lhs = .src1_sub_bit_size, .op = .mul, .rhs = .@"1" }; |
| 116476 | const add_log2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .log2_src0_elem_size, .op = .mul, .rhs = .@"1" }; | 119852 | const add_log2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .log2_src0_elem_size, .op = .mul, .rhs = .@"1" }; |
| 116477 | const add_dst0_elem_size: Adjust = .{ .sign = .pos, .lhs = .dst0_elem_size, .op = .mul, .rhs = .@"1" }; | 119853 | const add_dst0_elem_size: Adjust = .{ .sign = .pos, .lhs = .dst0_elem_size, .op = .mul, .rhs = .@"1" }; |
| 116478 | const add_elem_limbs: Adjust = .{ .sign = .pos, .lhs = .elem_limbs, .op = .mul, .rhs = .@"1" }; | 119854 | const add_elem_limbs: Adjust = .{ .sign = .pos, .lhs = .elem_limbs, .op = .mul, .rhs = .@"1" }; |
| ... | @@ -116480,6 +119856,7 @@ const Select = struct { | ... | @@ -116480,6 +119856,7 @@ const Select = struct { |
| 116480 | const sub_smin: Adjust = .{ .sign = .neg, .lhs = .smin, .op = .mul, .rhs = .@"1" }; | 119856 | const sub_smin: Adjust = .{ .sign = .neg, .lhs = .smin, .op = .mul, .rhs = .@"1" }; |
| 116481 | const add_umax: Adjust = .{ .sign = .pos, .lhs = .umax, .op = .mul, .rhs = .@"1" }; | 119857 | const add_umax: Adjust = .{ .sign = .pos, .lhs = .umax, .op = .mul, .rhs = .@"1" }; |
| 116482 | const sub_umax: Adjust = .{ .sign = .neg, .lhs = .umax, .op = .mul, .rhs = .@"1" }; | 119858 | const sub_umax: Adjust = .{ .sign = .neg, .lhs = .umax, .op = .mul, .rhs = .@"1" }; |
| | 119859 | const add_umax_shr_src1: Adjust = .{ .sign = .pos, .lhs = .umax_shr_src1, .op = .mul, .rhs = .@"1" }; |
| 116483 | const repeat: Adjust = .{ .sign = .pos, .lhs = .repeat, .op = .mul, .rhs = .@"1" }; | 119860 | const repeat: Adjust = .{ .sign = .pos, .lhs = .repeat, .op = .mul, .rhs = .@"1" }; |
| 116484 | }; | 119861 | }; |
| 116485 | const Ref = enum(u5) { | 119862 | const Ref = enum(u5) { |
| ... | @@ -117182,6 +120559,8 @@ const Select = struct { | ... | @@ -117182,6 +120559,8 @@ const Select = struct { |
| 117182 | .src0_elem_size_mul_src1 => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) * | 120559 | .src0_elem_size_mul_src1 => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) * |
| 117183 | Select.Operand.Ref.src1.valueOf(s).immediate), | 120560 | Select.Operand.Ref.src1.valueOf(s).immediate), |
| 117184 | .src1 => @intCast(Select.Operand.Ref.src1.valueOf(s).immediate), | 120561 | .src1 => @intCast(Select.Operand.Ref.src1.valueOf(s).immediate), |
| | 120562 | .src1_sub_bit_size => @as(SignedImm, @intCast(Select.Operand.Ref.src1.valueOf(s).immediate)) - |
| | 120563 | @as(SignedImm, @intCast(op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu))), |
| 117185 | .log2_src0_elem_size => @intCast(std.math.log2(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))), | 120564 | .log2_src0_elem_size => @intCast(std.math.log2(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))), |
| 117186 | .smin => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate( | 120565 | .smin => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate( |
| 117187 | -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), | 120566 | -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), |
| ... | @@ -117192,6 +120571,9 @@ const Select = struct { | ... | @@ -117192,6 +120571,9 @@ const Select = struct { |
| 117192 | .umax => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate( | 120571 | .umax => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate( |
| 117193 | -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), | 120572 | -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), |
| 117194 | )), | 120573 | )), |
| | 120574 | .umax_shr_src1 => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate( |
| | 120575 | Select.Operand.Ref.src1.valueOf(s).immediate -% op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), |
| | 120576 | )), |
| 117195 | .repeat => switch (SignedImm) { | 120577 | .repeat => switch (SignedImm) { |
| 117196 | else => unreachable, | 120578 | else => unreachable, |
| 117197 | i64 => return @as(i64, op.imm) << 32 | @as(u32, @bitCast(op.imm)), | 120579 | i64 => return @as(i64, op.imm) << 32 | @as(u32, @bitCast(op.imm)), |