| ... | ... | @@ -73,10 +73,6 @@ mir_instructions: std.MultiArrayList(Mir.Inst) = .empty, |
| 73 | 73 | mir_extra: std.ArrayListUnmanaged(u32) = .empty, |
| 74 | 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 | 76 | /// The value is an offset into the `Function` `code` from the beginning. |
| 81 | 77 | /// To perform the reloc, write 32-bit signed little-endian integer |
| 82 | 78 | /// which is a relative jump, based on the address following the reloc. |
| ... | ... | @@ -912,8 +908,6 @@ pub fn generate( |
| 912 | 908 | .err_ret_trace_reg = undefined, // populated after `resolveCallingConventionValues` |
| 913 | 909 | .fn_type = fn_type, |
| 914 | 910 | .src_loc = src_loc, |
| 915 | | .end_di_line = func.rbrace_line, |
| 916 | | .end_di_column = func.rbrace_column, |
| 917 | 911 | }; |
| 918 | 912 | defer { |
| 919 | 913 | function.frame_allocs.deinit(gpa); |
| ... | ... | @@ -1000,6 +994,16 @@ pub fn generate( |
| 1000 | 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 | 1007 | var mir: Mir = .{ |
| 1004 | 1008 | .instructions = function.mir_instructions.toOwnedSlice(), |
| 1005 | 1009 | .extra = try function.mir_extra.toOwnedSlice(gpa), |
| ... | ... | @@ -1076,8 +1080,6 @@ pub fn generateLazy( |
| 1076 | 1080 | .err_ret_trace_reg = undefined, |
| 1077 | 1081 | .fn_type = undefined, |
| 1078 | 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 | 1084 | defer { |
| 1083 | 1085 | function.inst_tracking.deinit(gpa); |
| ... | ... | @@ -2381,16 +2383,6 @@ fn gen(self: *CodeGen) InnerError!void { |
| 2381 | 2383 | try self.genBody(self.air.getMainBody()); |
| 2382 | 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 | 2388 | fn checkInvariantsAfterAirInst(self: *CodeGen) void { |
| ... | ... | @@ -2416,7 +2408,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2416 | 2408 | } |
| 2417 | 2409 | |
| 2418 | 2410 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2419 | | @setEvalBranchQuota(15_100); |
| 2411 | @setEvalBranchQuota(15_800); |
| 2420 | 2412 | const pt = cg.pt; |
| 2421 | 2413 | const zcu = pt.zcu; |
| 2422 | 2414 | const ip = &zcu.intern_pool; |
| ... | ... | @@ -2457,8 +2449,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2457 | 2449 | .mul_sat => try cg.airMulSat(inst), |
| 2458 | 2450 | .shl_sat => try cg.airShlSat(inst), |
| 2459 | 2451 | |
| 2460 | | .shl_with_overflow => try cg.airShlWithOverflow(inst), |
| 2461 | | |
| 2462 | 2452 | .bitcast => try cg.airBitCast(inst), |
| 2463 | 2453 | |
| 2464 | 2454 | .splat => try cg.airSplat(inst), |
| ... | ... | @@ -32923,455 +32913,3801 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32923 | 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 | 36287 | .src_constraints = .{ |
| 32928 | | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| 32929 | | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| 36288 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 36289 | .{ .unsigned_int = .byte }, |
| 32930 | 36290 | .any, |
| 32931 | 36291 | }, |
| 32932 | 36292 | .patterns = &.{ |
| 32933 | | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 36293 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 32934 | 36294 | }, |
| 32935 | 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 | 36298 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 32938 | 36299 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 32939 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32940 | 36300 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 32941 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 32942 | 36301 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 32943 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 32944 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 36302 | .unused, |
| 36303 | .unused, |
| 36304 | .unused, |
| 32945 | 36305 | .unused, |
| 32946 | 36306 | .unused, |
| 32947 | 36307 | }, |
| 32948 | 36308 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 32949 | 36309 | .clobbers = .{ .eflags = true }, |
| 32950 | 36310 | .each = .{ .once = &.{ |
| 32951 | | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 32952 | | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| 32953 | | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 32954 | | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| 36311 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| 36312 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 36313 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 36314 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 36315 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36316 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 32955 | 36317 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 32956 | | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| 32957 | | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| 32958 | | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 32959 | | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 32960 | | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| 32961 | | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| 32962 | | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| 32963 | | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| 32964 | | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| 32965 | | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, |
| 32966 | | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, |
| 32967 | | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| 32968 | | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| 32969 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| 32970 | | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| 32971 | | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 32972 | | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| 32973 | | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, |
| 32974 | | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| 32975 | | .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, |
| 32976 | | .{ .@"2:", ._, .sub, .tmp3d, .si(1), ._, ._ }, |
| 32977 | | .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, |
| 32978 | | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| 32979 | | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 32980 | | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 32981 | | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 32982 | | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| 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), ._, ._ }, |
| 36318 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 36319 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 36320 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 36321 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 36322 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 36323 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| 36324 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 36325 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| 36326 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| 36327 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 36328 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36329 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 36330 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 36331 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 36332 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 36333 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 36334 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 36335 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 36336 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 36337 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 36338 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 36339 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| 36340 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 36341 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| 36342 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| 36343 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp2q, ._, ._ }, |
| 36344 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 32990 | 36345 | } }, |
| 32991 | 36346 | }, .{ |
| 32992 | | .required_features = .{ .@"64bit", null, null, null }, |
| 36347 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 32993 | 36348 | .src_constraints = .{ |
| 32994 | | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| 32995 | | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| 36349 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 36350 | .{ .unsigned_int = .byte }, |
| 32996 | 36351 | .any, |
| 32997 | 36352 | }, |
| 32998 | 36353 | .patterns = &.{ |
| 32999 | | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 36354 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33000 | 36355 | }, |
| 33001 | 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 | 36359 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33004 | 36360 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33005 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33006 | 36361 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33007 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 33008 | 36362 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33009 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 33010 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 36363 | .unused, |
| 36364 | .unused, |
| 36365 | .unused, |
| 33011 | 36366 | .unused, |
| 33012 | 36367 | .unused, |
| 33013 | 36368 | }, |
| 33014 | 36369 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33015 | 36370 | .clobbers = .{ .eflags = true }, |
| 33016 | 36371 | .each = .{ .once = &.{ |
| 33017 | | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33018 | | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| 33019 | | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 33020 | | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| 36372 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| 36373 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 36374 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 36375 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 36376 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36377 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 33021 | 36378 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33022 | | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| 33023 | | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| 33024 | | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 33025 | | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 33026 | | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| 33027 | | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| 33028 | | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| 33029 | | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| 33030 | | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| 33031 | | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, |
| 33032 | | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, |
| 33033 | | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| 33034 | | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| 33035 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| 33036 | | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| 33037 | | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 33038 | | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| 33039 | | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, |
| 33040 | | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| 33041 | | .{ .@"1:", ._, .@"or", .tmp8q, .leasi(.tmp1q, .@"8", .tmp3), ._, ._ }, |
| 33042 | | .{ .@"2:", ._c, .de, .tmp3d, ._, ._, ._ }, |
| 33043 | | .{ ._, ._ns, .j, .@"1b", ._, ._, ._ }, |
| 33044 | | .{ ._, ._, .@"or", .tmp2q, .tmp8q, ._, ._ }, |
| 33045 | | .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, |
| 33046 | | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 33047 | | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 33048 | | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| 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), ._, ._ }, |
| 36379 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 36380 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 36381 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 36382 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 36383 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 36384 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| 36385 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 36386 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 36387 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| 36388 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 36389 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36390 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 36391 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 36392 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 36393 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 36394 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 36395 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 36396 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 36397 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 36398 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 36399 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 36400 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 36401 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 36402 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| 36403 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| 36404 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp3q, ._, ._ }, |
| 36405 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33056 | 36406 | } }, |
| 33057 | 36407 | }, .{ |
| 33058 | | .required_features = .{ .@"64bit", .bmi2, .adx, null }, |
| 36408 | .required_features = .{ .@"64bit", null, null, null }, |
| 33059 | 36409 | .src_constraints = .{ |
| 33060 | 36410 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 33061 | | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 36411 | .{ .unsigned_int = .byte }, |
| 33062 | 36412 | .any, |
| 33063 | 36413 | }, |
| 33064 | 36414 | .patterns = &.{ |
| 33065 | | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 36415 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33066 | 36416 | }, |
| 33067 | 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 | 36420 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33070 | 36421 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33071 | 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 | 36423 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33077 | 36424 | .unused, |
| 33078 | 36425 | .unused, |
| 36426 | .unused, |
| 36427 | .unused, |
| 36428 | .unused, |
| 33079 | 36429 | }, |
| 33080 | 36430 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33081 | 36431 | .clobbers = .{ .eflags = true }, |
| 33082 | 36432 | .each = .{ .once = &.{ |
| 33083 | | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 33084 | | .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ }, |
| 33085 | | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 36433 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| 36434 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 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 | 36458 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33087 | | .{ .@"0:", ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33088 | | .{ ._, ._, .@"or", .tmp4q, .memi(.src0q, .tmp0), ._, ._ }, |
| 33089 | | .{ ._, ._z, .j, .@"2f", ._, ._, ._ }, |
| 33090 | | .{ ._, ._, .lea, .tmp5p, .leaad(.tmp0, .sub_src0_size, 8), ._, ._ }, |
| 33091 | | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| 33092 | | .{ .@"1:", ._x, .mul, .tmp8q, .tmp7q, .leai(.tmp1q, .tmp5), ._ }, |
| 33093 | | .{ ._, ._x, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| 33094 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp5, .add_src0_size, -8), .tmp7q, ._, ._ }, |
| 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, ._, ._ }, |
| 36459 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 36460 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 36461 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 36462 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 36463 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| 36464 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| 36465 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp3q, ._, ._ }, |
| 36466 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33119 | 36467 | } }, |
| 33120 | 36468 | }, .{ |
| 33121 | | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 36469 | .required_features = .{ .@"64bit", .bmi, .slow_incdec, null }, |
| 33122 | 36470 | .src_constraints = .{ |
| 33123 | 36471 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 33124 | | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 36472 | .{ .unsigned_int = .word }, |
| 33125 | 36473 | .any, |
| 33126 | 36474 | }, |
| 33127 | 36475 | .patterns = &.{ |
| 33128 | | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 36476 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33129 | 36477 | }, |
| 33130 | 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 | 36481 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33133 | 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 | 36483 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33139 | 36484 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33140 | 36485 | .unused, |
| 33141 | 36486 | .unused, |
| 36487 | .unused, |
| 36488 | .unused, |
| 36489 | .unused, |
| 33142 | 36490 | }, |
| 33143 | 36491 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33144 | 36492 | .clobbers = .{ .eflags = true }, |
| 33145 | 36493 | .each = .{ .once = &.{ |
| 33146 | | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33147 | | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| 33148 | | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 33149 | | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| 36494 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| 36495 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 36496 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 36497 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 36498 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36499 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 33150 | 36500 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33151 | | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| 33152 | | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| 33153 | | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 33154 | | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 33155 | | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| 33156 | | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| 33157 | | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| 33158 | | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| 33159 | | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| 33160 | | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| 33161 | | .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ }, |
| 33162 | | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| 33163 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| 33164 | | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| 33165 | | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 33166 | | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| 33167 | | .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ }, |
| 33168 | | .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ }, |
| 33169 | | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| 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), ._, ._ }, |
| 36501 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 36502 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 36503 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 36504 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 36505 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 36506 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| 36507 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 36508 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 36509 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| 36510 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 36511 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36512 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 36513 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 36514 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 36515 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 36516 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 36517 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 36518 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 36519 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33175 | 36520 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 33176 | 36521 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 33177 | | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| 33178 | | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 33179 | | .{ ._, ._, .bzhi, .tmp0q, .tmp1q, .tmp0q, ._ }, |
| 33180 | | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| 33181 | | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, |
| 33182 | | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| 36522 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| 36523 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 36524 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| 36525 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| 36526 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp2q, ._, ._ }, |
| 36527 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33183 | 36528 | } }, |
| 33184 | 36529 | }, .{ |
| 33185 | | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 36530 | .required_features = .{ .@"64bit", .bmi, null, null }, |
| 33186 | 36531 | .src_constraints = .{ |
| 33187 | 36532 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 33188 | | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 36533 | .{ .unsigned_int = .word }, |
| 33189 | 36534 | .any, |
| 33190 | 36535 | }, |
| 33191 | 36536 | .patterns = &.{ |
| 33192 | | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 36537 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33193 | 36538 | }, |
| 33194 | 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 | 36542 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33197 | 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 | 36544 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33203 | 36545 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33204 | 36546 | .unused, |
| 33205 | 36547 | .unused, |
| 36548 | .unused, |
| 36549 | .unused, |
| 36550 | .unused, |
| 33206 | 36551 | }, |
| 33207 | 36552 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33208 | 36553 | .clobbers = .{ .eflags = true }, |
| 33209 | 36554 | .each = .{ .once = &.{ |
| 33210 | | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33211 | | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| 33212 | | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 33213 | | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| 36555 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| 36556 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 36557 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 36558 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 36559 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36560 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 33214 | 36561 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33215 | | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| 33216 | | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| 33217 | | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 33218 | | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 33219 | | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| 33220 | | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| 33221 | | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| 33222 | | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| 33223 | | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| 33224 | | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| 33225 | | .{ .@"2:", ._x, .mul, .tmp8q, .tmp7q, .leasi(.tmp1q, .@"8", .tmp3), ._ }, |
| 33226 | | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| 33227 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| 33228 | | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| 33229 | | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 33230 | | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| 33231 | | .{ ._, ._, .adc, .tmp5d, .tmp5d, ._, ._ }, |
| 33232 | | .{ ._, ._, .@"or", .tmp5q, .tmp8q, ._, ._ }, |
| 33233 | | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| 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), ._, ._ }, |
| 36562 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 36563 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 36564 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 36565 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 36566 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 36567 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| 36568 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 36569 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| 36570 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| 36571 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 36572 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36573 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 36574 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 36575 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 36576 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 36577 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 36578 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 36579 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 36580 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33239 | 36581 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 33240 | 36582 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 33241 | | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| 33242 | | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 33243 | | .{ ._, ._, .bzhi, .tmp0q, .tmp1q, .tmp0q, ._ }, |
| 33244 | | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| 33245 | | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, |
| 33246 | | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| 36583 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax), ._, ._ }, |
| 36584 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 36585 | .{ ._, ._, .andn, .tmp5q, .tmp2q, .tmp3q, ._ }, |
| 36586 | .{ ._, ._, .@"and", .tmp2q, .tmp3q, ._, ._ }, |
| 36587 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp2q, ._, ._ }, |
| 36588 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33247 | 36589 | } }, |
| 33248 | 36590 | }, .{ |
| 33249 | 36591 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 33250 | 36592 | .src_constraints = .{ |
| 33251 | 36593 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 33252 | | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 36594 | .{ .unsigned_int = .word }, |
| 33253 | 36595 | .any, |
| 33254 | 36596 | }, |
| 33255 | 36597 | .patterns = &.{ |
| 33256 | | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 36598 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33257 | 36599 | }, |
| 33258 | 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 | 36603 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33261 | 36604 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33262 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33263 | 36605 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33264 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 33265 | 36606 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33266 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 33267 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 36607 | .unused, |
| 36608 | .unused, |
| 36609 | .unused, |
| 33268 | 36610 | .unused, |
| 33269 | 36611 | .unused, |
| 33270 | 36612 | }, |
| 33271 | 36613 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33272 | 36614 | .clobbers = .{ .eflags = true }, |
| 33273 | 36615 | .each = .{ .once = &.{ |
| 33274 | | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33275 | | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| 33276 | | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 33277 | | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| 36616 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| 36617 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 36618 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 36619 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 36620 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36621 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 33278 | 36622 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33279 | | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| 33280 | | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| 33281 | | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 33282 | | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 33283 | | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| 33284 | | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| 33285 | | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| 33286 | | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| 33287 | | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| 33288 | | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, |
| 33289 | | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, |
| 33290 | | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| 33291 | | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| 33292 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| 33293 | | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| 33294 | | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 33295 | | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| 33296 | | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, |
| 33297 | | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| 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), ._, ._ }, |
| 36623 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 36624 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 36625 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 36626 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 36627 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 36628 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| 36629 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 36630 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 36631 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| 36632 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 36633 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36634 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 36635 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 36636 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 36637 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 36638 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 36639 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 36640 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 36641 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33303 | 36642 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 33304 | 36643 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 33305 | | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| 33306 | | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 33307 | | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, |
| 33308 | | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| 33309 | | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, |
| 33310 | | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| 36644 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 36645 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 36646 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| 36647 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| 36648 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp3q, ._, ._ }, |
| 36649 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33311 | 36650 | } }, |
| 33312 | 36651 | }, .{ |
| 33313 | 36652 | .required_features = .{ .@"64bit", null, null, null }, |
| 33314 | 36653 | .src_constraints = .{ |
| 33315 | 36654 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 33316 | | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 36655 | .{ .unsigned_int = .word }, |
| 33317 | 36656 | .any, |
| 33318 | 36657 | }, |
| 33319 | 36658 | .patterns = &.{ |
| 33320 | | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 36659 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 33321 | 36660 | }, |
| 33322 | 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 | 36664 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 33325 | 36665 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33326 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33327 | 36666 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33328 | | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 33329 | 36667 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 33330 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 33331 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 36668 | .unused, |
| 36669 | .unused, |
| 36670 | .unused, |
| 33332 | 36671 | .unused, |
| 33333 | 36672 | .unused, |
| 33334 | 36673 | }, |
| 33335 | 36674 | .dst_temps = .{ .mem, .{ .cc = .nz } }, |
| 33336 | 36675 | .clobbers = .{ .eflags = true }, |
| 33337 | 36676 | .each = .{ .once = &.{ |
| 33338 | | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 33339 | | .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, |
| 33340 | | .{ ._, ._, .xor, .tmp2d, .tmp2d, ._, ._ }, |
| 33341 | | .{ .@"0:", ._, .lea, .tmp3p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, |
| 36677 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| 36678 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 36679 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 36680 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 36681 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36682 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 33342 | 36683 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 33343 | | .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, |
| 33344 | | .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, |
| 33345 | | .{ ._, ._, .@"or", .tmp4q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 33346 | | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 33347 | | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| 33348 | | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| 33349 | | .{ .@"1:", ._, .adc, .tmp8q, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), ._, ._ }, |
| 33350 | | .{ ._, ._, .adc, .tmp5b, .si(0), ._, ._ }, |
| 33351 | | .{ ._, ._, .mov, .tmp6q, .tmp8q, ._, ._ }, |
| 33352 | | .{ .@"2:", ._, .mov, .tmp7q, .tmp4q, ._, ._ }, |
| 33353 | | .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp3), ._, ._, ._ }, |
| 33354 | | .{ ._, ._l, .sh, .tmp5b, .ui(4), ._, ._ }, |
| 33355 | | .{ ._, ._, .adc, .tmp7q, .tmp6q, ._, ._ }, |
| 33356 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp3, .add_src0_size), .tmp7q, ._, ._ }, |
| 33357 | | .{ ._, ._c, .in, .tmp3p, ._, ._, ._ }, |
| 33358 | | .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, |
| 33359 | | .{ ._, ._, .mov, .tmp3d, .tmp0d, ._, ._ }, |
| 33360 | | .{ ._, ._, .adc, .tmp8q, .si(0), ._, ._ }, |
| 33361 | | .{ ._, ._mp, .j, .@"2f", ._, ._, ._ }, |
| 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), ._, ._ }, |
| 36684 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| 36685 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| 36686 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| 36687 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| 36688 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| 36689 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| 36690 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 36691 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| 36692 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| 36693 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 36694 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 36695 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 36696 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 36697 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 36698 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 36699 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 36700 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 36701 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 36702 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 33367 | 36703 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 33368 | 36704 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 33369 | | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| 33370 | | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 33371 | | .{ ._, ._, .@"and", .tmp0q, .tmp1q, ._, ._ }, |
| 33372 | | .{ ._, ._r, .sh, .tmp1q, .ua(.src0, .add_bit_size_rem_64), ._, ._ }, |
| 33373 | | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp0q, ._, ._ }, |
| 33374 | | .{ ._, ._, .@"or", .tmp2q, .tmp1q, ._, ._ }, |
| 36705 | .{ ._, ._, .mov, .tmp3q, .ua(.src0, .add_umax), ._, ._ }, |
| 36706 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| 36707 | .{ ._, ._, .@"and", .tmp3q, .tmp5q, ._, ._ }, |
| 36708 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| 36709 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp3q, ._, ._ }, |
| 36710 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 33375 | 36711 | } }, |
| 33376 | 36712 | } }) catch |err| switch (err) { |
| 33377 | 36713 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| ... | ... | @@ -104574,7 +107910,6 @@ fn genSetReg( |
| 104574 | 107910 | .none, |
| 104575 | 107911 | .unreach, |
| 104576 | 107912 | .dead, |
| 104577 | | .register_overflow, |
| 104578 | 107913 | .elementwise_regs_then_frame, |
| 104579 | 107914 | .reserved_frame, |
| 104580 | 107915 | => unreachable, |
| ... | ... | @@ -104886,6 +108221,39 @@ fn genSetReg( |
| 104886 | 108221 | }, |
| 104887 | 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 | 108257 | .register_mask => |src_reg_mask| { |
| 104890 | 108258 | assert(src_reg_mask.reg.class() == .sse); |
| 104891 | 108259 | const has_avx = self.hasFeature(.avx); |
| ... | ... | @@ -115808,6 +119176,7 @@ const Select = struct { |
| 115808 | 119176 | |
| 115809 | 119177 | const Src = union(enum) { |
| 115810 | 119178 | none, |
| 119179 | imm: i16, |
| 115811 | 119180 | imm8, |
| 115812 | 119181 | imm16, |
| 115813 | 119182 | imm32, |
| ... | ... | @@ -115855,6 +119224,10 @@ const Select = struct { |
| 115855 | 119224 | fn matches(src: Src, temp: Temp, cg: *CodeGen) bool { |
| 115856 | 119225 | return switch (src) { |
| 115857 | 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 | 119231 | .imm8 => switch (temp.tracking(cg).short) { |
| 115859 | 119232 | .immediate => |imm| std.math.cast(u8, imm) != null or |
| 115860 | 119233 | std.math.cast(i8, @as(i64, @bitCast(imm))) != null, |
| ... | ... | @@ -115965,7 +119338,7 @@ const Select = struct { |
| 115965 | 119338 | |
| 115966 | 119339 | fn convert(src: Src, temp: *Temp, cg: *CodeGen) InnerError!bool { |
| 115967 | 119340 | return switch (src) { |
| 115968 | | .none, .imm8, .imm16, .imm32, .simm32 => false, |
| 119341 | .none, .imm, .imm8, .imm16, .imm32, .simm32 => false, |
| 115969 | 119342 | .mem, .to_mem => try temp.toBase(false, cg), |
| 115970 | 119343 | .mut_mem, .to_mut_mem => try temp.toBase(true, cg), |
| 115971 | 119344 | .to_reg => |reg| try temp.toReg(reg, cg), |
| ... | ... | @@ -116414,10 +119787,12 @@ const Select = struct { |
| 116414 | 119787 | dst0_elem_size, |
| 116415 | 119788 | src0_elem_size_mul_src1, |
| 116416 | 119789 | src1, |
| 119790 | src1_sub_bit_size, |
| 116417 | 119791 | log2_src0_elem_size, |
| 116418 | 119792 | smin, |
| 116419 | 119793 | smax, |
| 116420 | 119794 | umax, |
| 119795 | umax_shr_src1, |
| 116421 | 119796 | repeat, |
| 116422 | 119797 | }, |
| 116423 | 119798 | op: enum(u2) { mul, div, div_8_down, rem_8_mul }, |
| ... | ... | @@ -116473,6 +119848,7 @@ const Select = struct { |
| 116473 | 119848 | const add_src1_div_8_down_4: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .div_8_down, .rhs = .@"4" }; |
| 116474 | 119849 | const add_src1_rem_32: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"4" }; |
| 116475 | 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 | 119852 | const add_log2_src0_elem_size: Adjust = .{ .sign = .pos, .lhs = .log2_src0_elem_size, .op = .mul, .rhs = .@"1" }; |
| 116477 | 119853 | const add_dst0_elem_size: Adjust = .{ .sign = .pos, .lhs = .dst0_elem_size, .op = .mul, .rhs = .@"1" }; |
| 116478 | 119854 | const add_elem_limbs: Adjust = .{ .sign = .pos, .lhs = .elem_limbs, .op = .mul, .rhs = .@"1" }; |
| ... | ... | @@ -116480,6 +119856,7 @@ const Select = struct { |
| 116480 | 119856 | const sub_smin: Adjust = .{ .sign = .neg, .lhs = .smin, .op = .mul, .rhs = .@"1" }; |
| 116481 | 119857 | const add_umax: Adjust = .{ .sign = .pos, .lhs = .umax, .op = .mul, .rhs = .@"1" }; |
| 116482 | 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 | 119860 | const repeat: Adjust = .{ .sign = .pos, .lhs = .repeat, .op = .mul, .rhs = .@"1" }; |
| 116484 | 119861 | }; |
| 116485 | 119862 | const Ref = enum(u5) { |
| ... | ... | @@ -117182,6 +120559,8 @@ const Select = struct { |
| 117182 | 120559 | .src0_elem_size_mul_src1 => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) * |
| 117183 | 120560 | Select.Operand.Ref.src1.valueOf(s).immediate), |
| 117184 | 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 | 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 | 120565 | .smin => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate( |
| 117187 | 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 | 120571 | .umax => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate( |
| 117193 | 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 | 120577 | .repeat => switch (SignedImm) { |
| 117196 | 120578 | else => unreachable, |
| 117197 | 120579 | i64 => return @as(i64, op.imm) << 32 | @as(u32, @bitCast(op.imm)), |