| ... | @@ -2414,7 +2414,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2414,7 +2414,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2414 | } | 2414 | } |
| 2415 | | 2415 | |
| 2416 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | 2416 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2417 | @setEvalBranchQuota(4_600); | 2417 | @setEvalBranchQuota(5_500); |
| 2418 | const pt = cg.pt; | 2418 | const pt = cg.pt; |
| 2419 | const zcu = pt.zcu; | 2419 | const zcu = pt.zcu; |
| 2420 | const ip = &zcu.intern_pool; | 2420 | const ip = &zcu.intern_pool; |
| ... | @@ -21970,9 +21970,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -21970,9 +21970,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 21970 | .dst_temps = .{.mem}, | 21970 | .dst_temps = .{.mem}, |
| 21971 | .clobbers = .{ .eflags = true }, | 21971 | .clobbers = .{ .eflags = true }, |
| 21972 | .each = .{ .once = &.{ | 21972 | .each = .{ .once = &.{ |
| 21973 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_size), ._, ._ }, | 21973 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 21974 | .{ .@"0:", .v_ps, .mova, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_size), ._, ._ }, | 21974 | .{ .@"0:", .v_ps, .mova, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 21975 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_size), .tmp1y, .rm(.{}), ._ }, | 21975 | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 21976 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 21976 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 21977 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 21977 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 21978 | } }, | 21978 | } }, |
| ... | @@ -22355,9 +22355,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -22355,9 +22355,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22355 | .dst_temps = .{.mem}, | 22355 | .dst_temps = .{.mem}, |
| 22356 | .clobbers = .{ .eflags = true }, | 22356 | .clobbers = .{ .eflags = true }, |
| 22357 | .each = .{ .once = &.{ | 22357 | .each = .{ .once = &.{ |
| 22358 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_size), ._, ._ }, | 22358 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 22359 | .{ .@"0:", .v_ps, .cvtpd2, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_size), ._, ._ }, | 22359 | .{ .@"0:", .v_ps, .cvtpd2, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 22360 | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ }, | 22360 | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 22361 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 22361 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 22362 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 22362 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 22363 | } }, | 22363 | } }, |
| ... | @@ -22382,9 +22382,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -22382,9 +22382,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 22382 | .dst_temps = .{.mem}, | 22382 | .dst_temps = .{.mem}, |
| 22383 | .clobbers = .{ .eflags = true }, | 22383 | .clobbers = .{ .eflags = true }, |
| 22384 | .each = .{ .once = &.{ | 22384 | .each = .{ .once = &.{ |
| 22385 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_size), ._, ._ }, | 22385 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 22386 | .{ .@"0:", ._ps, .cvtpd2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_size), ._, ._ }, | 22386 | .{ .@"0:", ._ps, .cvtpd2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 22387 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1x, ._, ._ }, | 22387 | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 22388 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 22388 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 22389 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 22389 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 22390 | } }, | 22390 | } }, |
| ... | @@ -23292,9 +23292,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -23292,9 +23292,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23292 | .dst_temps = .{.mem}, | 23292 | .dst_temps = .{.mem}, |
| 23293 | .clobbers = .{ .eflags = true }, | 23293 | .clobbers = .{ .eflags = true }, |
| 23294 | .each = .{ .once = &.{ | 23294 | .each = .{ .once = &.{ |
| 23295 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 23295 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 23296 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 23296 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 23297 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | 23297 | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 23298 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 23298 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 23299 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 23299 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 23300 | } }, | 23300 | } }, |
| ... | @@ -23500,13 +23500,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -23500,13 +23500,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23500 | .dst_temps = .{.mem}, | 23500 | .dst_temps = .{.mem}, |
| 23501 | .clobbers = .{ .eflags = true }, | 23501 | .clobbers = .{ .eflags = true }, |
| 23502 | .each = .{ .once = &.{ | 23502 | .each = .{ .once = &.{ |
| 23503 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 23503 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 23504 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 23504 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 23505 | .{ ._, .v_pd, .cvtps2, .tmp2y, .tmp1x, ._, ._ }, | 23505 | .{ ._, .v_pd, .cvtps2, .tmp2y, .tmp1x, ._, ._ }, |
| 23506 | .{ ._, .v_f128, .extract, .tmp1x, .tmp1y, .ui(1), ._ }, | 23506 | .{ ._, .v_f128, .extract, .tmp1x, .tmp1y, .ui(1), ._ }, |
| 23507 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp2y, ._, ._ }, | 23507 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 23508 | .{ ._, .v_pd, .cvtps2, .tmp2y, .tmp1x, ._, ._ }, | 23508 | .{ ._, .v_pd, .cvtps2, .tmp2y, .tmp1x, ._, ._ }, |
| 23509 | .{ ._, .v_pd, .mova, .memsiad(.dst0y, .@"4", .tmp0, .add_size, 32), .tmp2y, ._, ._ }, | 23509 | .{ ._, .v_pd, .mova, .memsiad(.dst0y, .@"4", .tmp0, .add_unaligned_size, 32), .tmp2y, ._, ._ }, |
| 23510 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 23510 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 23511 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 23511 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 23512 | } }, | 23512 | } }, |
| ... | @@ -23975,9 +23975,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -23975,9 +23975,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23975 | .dst_temps = .{.mem}, | 23975 | .dst_temps = .{.mem}, |
| 23976 | .clobbers = .{ .eflags = true }, | 23976 | .clobbers = .{ .eflags = true }, |
| 23977 | .each = .{ .once = &.{ | 23977 | .each = .{ .once = &.{ |
| 23978 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 23978 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 23979 | .{ .@"0:", .v_pd, .cvtps2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 23979 | .{ .@"0:", .v_pd, .cvtps2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 23980 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | 23980 | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 23981 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 23981 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 23982 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 23982 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 23983 | } }, | 23983 | } }, |
| ... | @@ -24002,9 +24002,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24002,9 +24002,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24002 | .dst_temps = .{.mem}, | 24002 | .dst_temps = .{.mem}, |
| 24003 | .clobbers = .{ .eflags = true }, | 24003 | .clobbers = .{ .eflags = true }, |
| 24004 | .each = .{ .once = &.{ | 24004 | .each = .{ .once = &.{ |
| 24005 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 24005 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 24006 | .{ .@"0:", ._pd, .cvtps2, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 24006 | .{ .@"0:", ._pd, .cvtps2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 24007 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 24007 | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 24008 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 24008 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 24009 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 24009 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 24010 | } }, | 24010 | } }, |
| ... | @@ -24077,6 +24077,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24077,6 +24077,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24077 | .unused, | 24077 | .unused, |
| 24078 | }, | 24078 | }, |
| 24079 | .dst_temps = .{.mem}, | 24079 | .dst_temps = .{.mem}, |
| | 24080 | .clobbers = .{ .eflags = true }, |
| 24080 | .each = .{ .once = &.{ | 24081 | .each = .{ .once = &.{ |
| 24081 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 24082 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 24082 | .{ .@"0:", .f_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 24083 | .{ .@"0:", .f_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| ... | @@ -24237,6 +24238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24237,6 +24238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24237 | .unused, | 24238 | .unused, |
| 24238 | }, | 24239 | }, |
| 24239 | .dst_temps = .{.mem}, | 24240 | .dst_temps = .{.mem}, |
| | 24241 | .clobbers = .{ .eflags = true }, |
| 24240 | .each = .{ .once = &.{ | 24242 | .each = .{ .once = &.{ |
| 24241 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 24243 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 24242 | .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, | 24244 | .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| ... | @@ -24724,6 +24726,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24724,6 +24726,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24724 | .unused, | 24726 | .unused, |
| 24725 | }, | 24727 | }, |
| 24726 | .dst_temps = .{.mem}, | 24728 | .dst_temps = .{.mem}, |
| | 24729 | .clobbers = .{ .eflags = true }, |
| 24727 | .each = .{ .once = &.{ | 24730 | .each = .{ .once = &.{ |
| 24728 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 24731 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24729 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 24732 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -24749,6 +24752,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24749,6 +24752,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24749 | .unused, | 24752 | .unused, |
| 24750 | }, | 24753 | }, |
| 24751 | .dst_temps = .{.mem}, | 24754 | .dst_temps = .{.mem}, |
| | 24755 | .clobbers = .{ .eflags = true }, |
| 24752 | .each = .{ .once = &.{ | 24756 | .each = .{ .once = &.{ |
| 24753 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 24757 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24754 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 24758 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -24847,6 +24851,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24847,6 +24851,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24847 | .unused, | 24851 | .unused, |
| 24848 | }, | 24852 | }, |
| 24849 | .dst_temps = .{.mem}, | 24853 | .dst_temps = .{.mem}, |
| | 24854 | .clobbers = .{ .eflags = true }, |
| 24850 | .each = .{ .once = &.{ | 24855 | .each = .{ .once = &.{ |
| 24851 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 24856 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24852 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 24857 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -24872,6 +24877,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24872,6 +24877,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24872 | .unused, | 24877 | .unused, |
| 24873 | }, | 24878 | }, |
| 24874 | .dst_temps = .{.mem}, | 24879 | .dst_temps = .{.mem}, |
| | 24880 | .clobbers = .{ .eflags = true }, |
| 24875 | .each = .{ .once = &.{ | 24881 | .each = .{ .once = &.{ |
| 24876 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 24882 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24877 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 24883 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -24898,6 +24904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24898,6 +24904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24898 | .unused, | 24904 | .unused, |
| 24899 | }, | 24905 | }, |
| 24900 | .dst_temps = .{.mem}, | 24906 | .dst_temps = .{.mem}, |
| | 24907 | .clobbers = .{ .eflags = true }, |
| 24901 | .each = .{ .once = &.{ | 24908 | .each = .{ .once = &.{ |
| 24902 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 24909 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24903 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 24910 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -24923,6 +24930,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24923,6 +24930,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24923 | .unused, | 24930 | .unused, |
| 24924 | }, | 24931 | }, |
| 24925 | .dst_temps = .{.mem}, | 24932 | .dst_temps = .{.mem}, |
| | 24933 | .clobbers = .{ .eflags = true }, |
| 24926 | .each = .{ .once = &.{ | 24934 | .each = .{ .once = &.{ |
| 24927 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 24935 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24928 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 24936 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -24949,6 +24957,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24949,6 +24957,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24949 | .unused, | 24957 | .unused, |
| 24950 | }, | 24958 | }, |
| 24951 | .dst_temps = .{.mem}, | 24959 | .dst_temps = .{.mem}, |
| | 24960 | .clobbers = .{ .eflags = true }, |
| 24952 | .each = .{ .once = &.{ | 24961 | .each = .{ .once = &.{ |
| 24953 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 24962 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24954 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 24963 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| ... | @@ -24976,6 +24985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -24976,6 +24985,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24976 | .unused, | 24985 | .unused, |
| 24977 | }, | 24986 | }, |
| 24978 | .dst_temps = .{.mem}, | 24987 | .dst_temps = .{.mem}, |
| | 24988 | .clobbers = .{ .eflags = true }, |
| 24979 | .each = .{ .once = &.{ | 24989 | .each = .{ .once = &.{ |
| 24980 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 24990 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 24981 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 24991 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| ... | @@ -25089,6 +25099,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -25089,6 +25099,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25089 | .unused, | 25099 | .unused, |
| 25090 | }, | 25100 | }, |
| 25091 | .dst_temps = .{.mem}, | 25101 | .dst_temps = .{.mem}, |
| | 25102 | .clobbers = .{ .eflags = true }, |
| 25092 | .each = .{ .once = &.{ | 25103 | .each = .{ .once = &.{ |
| 25093 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 25104 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25094 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 25105 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -25114,6 +25125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -25114,6 +25125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25114 | .unused, | 25125 | .unused, |
| 25115 | }, | 25126 | }, |
| 25116 | .dst_temps = .{.mem}, | 25127 | .dst_temps = .{.mem}, |
| | 25128 | .clobbers = .{ .eflags = true }, |
| 25117 | .each = .{ .once = &.{ | 25129 | .each = .{ .once = &.{ |
| 25118 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 25130 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25119 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 25131 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -25139,6 +25151,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -25139,6 +25151,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25139 | .unused, | 25151 | .unused, |
| 25140 | }, | 25152 | }, |
| 25141 | .dst_temps = .{.mem}, | 25153 | .dst_temps = .{.mem}, |
| | 25154 | .clobbers = .{ .eflags = true }, |
| 25142 | .each = .{ .once = &.{ | 25155 | .each = .{ .once = &.{ |
| 25143 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 25156 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25144 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 25157 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -25164,6 +25177,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -25164,6 +25177,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25164 | .unused, | 25177 | .unused, |
| 25165 | }, | 25178 | }, |
| 25166 | .dst_temps = .{.mem}, | 25179 | .dst_temps = .{.mem}, |
| | 25180 | .clobbers = .{ .eflags = true }, |
| 25167 | .each = .{ .once = &.{ | 25181 | .each = .{ .once = &.{ |
| 25168 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 25182 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25169 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 25183 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| ... | @@ -25235,6 +25249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -25235,6 +25249,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25235 | .unused, | 25249 | .unused, |
| 25236 | }, | 25250 | }, |
| 25237 | .dst_temps = .{.mem}, | 25251 | .dst_temps = .{.mem}, |
| | 25252 | .clobbers = .{ .eflags = true }, |
| 25238 | .each = .{ .once = &.{ | 25253 | .each = .{ .once = &.{ |
| 25239 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 25254 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25240 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, | 25255 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -25260,6 +25275,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -25260,6 +25275,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25260 | .unused, | 25275 | .unused, |
| 25261 | }, | 25276 | }, |
| 25262 | .dst_temps = .{.mem}, | 25277 | .dst_temps = .{.mem}, |
| | 25278 | .clobbers = .{ .eflags = true }, |
| 25263 | .each = .{ .once = &.{ | 25279 | .each = .{ .once = &.{ |
| 25264 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 25280 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25265 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, | 25281 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -25285,6 +25301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -25285,6 +25301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25285 | .unused, | 25301 | .unused, |
| 25286 | }, | 25302 | }, |
| 25287 | .dst_temps = .{.mem}, | 25303 | .dst_temps = .{.mem}, |
| | 25304 | .clobbers = .{ .eflags = true }, |
| 25288 | .each = .{ .once = &.{ | 25305 | .each = .{ .once = &.{ |
| 25289 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 25306 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25290 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, | 25307 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -25310,6 +25327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -25310,6 +25327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25310 | .unused, | 25327 | .unused, |
| 25311 | }, | 25328 | }, |
| 25312 | .dst_temps = .{.mem}, | 25329 | .dst_temps = .{.mem}, |
| | 25330 | .clobbers = .{ .eflags = true }, |
| 25313 | .each = .{ .once = &.{ | 25331 | .each = .{ .once = &.{ |
| 25314 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 25332 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25315 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 25333 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| ... | @@ -25358,6 +25376,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -25358,6 +25376,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 25358 | .unused, | 25376 | .unused, |
| 25359 | }, | 25377 | }, |
| 25360 | .dst_temps = .{.mem}, | 25378 | .dst_temps = .{.mem}, |
| | 25379 | .clobbers = .{ .eflags = true }, |
| 25361 | .each = .{ .once = &.{ | 25380 | .each = .{ .once = &.{ |
| 25362 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, | 25381 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 25363 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, | 25382 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| ... | @@ -26157,7 +26176,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26157,7 +26176,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26157 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, | 26176 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 26158 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }}, | 26177 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }}, |
| 26159 | .patterns = &.{ | 26178 | .patterns = &.{ |
| 26160 | .{ .src = .{ .mem, .none } }, | 26179 | .{ .src = .{ .to_mem, .none } }, |
| 26161 | }, | 26180 | }, |
| 26162 | .extra_temps = .{ | 26181 | .extra_temps = .{ |
| 26163 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26182 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26171,10 +26190,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26171,10 +26190,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26171 | .unused, | 26190 | .unused, |
| 26172 | }, | 26191 | }, |
| 26173 | .dst_temps = .{.mem}, | 26192 | .dst_temps = .{.mem}, |
| | 26193 | .clobbers = .{ .eflags = true }, |
| 26174 | .each = .{ .once = &.{ | 26194 | .each = .{ .once = &.{ |
| 26175 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26195 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26176 | .{ .@"0:", .vp_w, .movsxb, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 26196 | .{ .@"0:", .vp_w, .movsxb, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26177 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | 26197 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26178 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 26198 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 26179 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26199 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26180 | } }, | 26200 | } }, |
| ... | @@ -26183,7 +26203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26183,7 +26203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26183 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any }, | 26203 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .byte } }, .any }, |
| 26184 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }}, | 26204 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }}, |
| 26185 | .patterns = &.{ | 26205 | .patterns = &.{ |
| 26186 | .{ .src = .{ .mem, .none } }, | 26206 | .{ .src = .{ .to_mem, .none } }, |
| 26187 | }, | 26207 | }, |
| 26188 | .extra_temps = .{ | 26208 | .extra_temps = .{ |
| 26189 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26209 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26197,10 +26217,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26197,10 +26217,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26197 | .unused, | 26217 | .unused, |
| 26198 | }, | 26218 | }, |
| 26199 | .dst_temps = .{.mem}, | 26219 | .dst_temps = .{.mem}, |
| | 26220 | .clobbers = .{ .eflags = true }, |
| 26200 | .each = .{ .once = &.{ | 26221 | .each = .{ .once = &.{ |
| 26201 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26222 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26202 | .{ .@"0:", .vp_w, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 26223 | .{ .@"0:", .vp_w, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26203 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | 26224 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26204 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 26225 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 26205 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26226 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26206 | } }, | 26227 | } }, |
| ... | @@ -26209,7 +26230,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26209,7 +26230,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26209 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, | 26230 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26210 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, | 26231 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| 26211 | .patterns = &.{ | 26232 | .patterns = &.{ |
| 26212 | .{ .src = .{ .mem, .none } }, | 26233 | .{ .src = .{ .to_mem, .none } }, |
| 26213 | }, | 26234 | }, |
| 26214 | .extra_temps = .{ | 26235 | .extra_temps = .{ |
| 26215 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26236 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26223,10 +26244,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26223,10 +26244,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26223 | .unused, | 26244 | .unused, |
| 26224 | }, | 26245 | }, |
| 26225 | .dst_temps = .{.mem}, | 26246 | .dst_temps = .{.mem}, |
| | 26247 | .clobbers = .{ .eflags = true }, |
| 26226 | .each = .{ .once = &.{ | 26248 | .each = .{ .once = &.{ |
| 26227 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26249 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26228 | .{ .@"0:", .vp_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 26250 | .{ .@"0:", .vp_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26229 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 26251 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26230 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 26252 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26231 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26253 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26232 | } }, | 26254 | } }, |
| ... | @@ -26235,7 +26257,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26235,7 +26257,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26235 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, | 26257 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26236 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }}, | 26258 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }}, |
| 26237 | .patterns = &.{ | 26259 | .patterns = &.{ |
| 26238 | .{ .src = .{ .mem, .none } }, | 26260 | .{ .src = .{ .to_mem, .none } }, |
| 26239 | }, | 26261 | }, |
| 26240 | .extra_temps = .{ | 26262 | .extra_temps = .{ |
| 26241 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26263 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26249,10 +26271,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26249,10 +26271,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26249 | .unused, | 26271 | .unused, |
| 26250 | }, | 26272 | }, |
| 26251 | .dst_temps = .{.mem}, | 26273 | .dst_temps = .{.mem}, |
| | 26274 | .clobbers = .{ .eflags = true }, |
| 26252 | .each = .{ .once = &.{ | 26275 | .each = .{ .once = &.{ |
| 26253 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26276 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26254 | .{ .@"0:", .vp_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 26277 | .{ .@"0:", .vp_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26255 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 26278 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26256 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 26279 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26257 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26280 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26258 | } }, | 26281 | } }, |
| ... | @@ -26261,7 +26284,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26261,7 +26284,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26261 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, | 26284 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26262 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, | 26285 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| 26263 | .patterns = &.{ | 26286 | .patterns = &.{ |
| 26264 | .{ .src = .{ .mem, .none } }, | 26287 | .{ .src = .{ .to_mem, .none } }, |
| 26265 | }, | 26288 | }, |
| 26266 | .extra_temps = .{ | 26289 | .extra_temps = .{ |
| 26267 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26290 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26275,10 +26298,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26275,10 +26298,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26275 | .unused, | 26298 | .unused, |
| 26276 | }, | 26299 | }, |
| 26277 | .dst_temps = .{.mem}, | 26300 | .dst_temps = .{.mem}, |
| | 26301 | .clobbers = .{ .eflags = true }, |
| 26278 | .each = .{ .once = &.{ | 26302 | .each = .{ .once = &.{ |
| 26279 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26303 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26280 | .{ .@"0:", .p_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 26304 | .{ .@"0:", .p_w, .movsxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26281 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 26305 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26282 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 26306 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26283 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26307 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26284 | } }, | 26308 | } }, |
| ... | @@ -26287,7 +26311,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26287,7 +26311,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26287 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, | 26311 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26288 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }}, | 26312 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }}, |
| 26289 | .patterns = &.{ | 26313 | .patterns = &.{ |
| 26290 | .{ .src = .{ .mem, .none } }, | 26314 | .{ .src = .{ .to_mem, .none } }, |
| 26291 | }, | 26315 | }, |
| 26292 | .extra_temps = .{ | 26316 | .extra_temps = .{ |
| 26293 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26317 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26301,10 +26325,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26301,10 +26325,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26301 | .unused, | 26325 | .unused, |
| 26302 | }, | 26326 | }, |
| 26303 | .dst_temps = .{.mem}, | 26327 | .dst_temps = .{.mem}, |
| | 26328 | .clobbers = .{ .eflags = true }, |
| 26304 | .each = .{ .once = &.{ | 26329 | .each = .{ .once = &.{ |
| 26305 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26330 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26306 | .{ .@"0:", .p_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 26331 | .{ .@"0:", .p_w, .movzxb, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26307 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 26332 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26308 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 26333 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26309 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26334 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26310 | } }, | 26335 | } }, |
| ... | @@ -26327,6 +26352,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26327,6 +26352,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26327 | .unused, | 26352 | .unused, |
| 26328 | }, | 26353 | }, |
| 26329 | .dst_temps = .{.mem}, | 26354 | .dst_temps = .{.mem}, |
| | 26355 | .clobbers = .{ .eflags = true }, |
| 26330 | .each = .{ .once = &.{ | 26356 | .each = .{ .once = &.{ |
| 26331 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 26357 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26332 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 26358 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -26352,6 +26378,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26352,6 +26378,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26352 | .unused, | 26378 | .unused, |
| 26353 | }, | 26379 | }, |
| 26354 | .dst_temps = .{.mem}, | 26380 | .dst_temps = .{.mem}, |
| | 26381 | .clobbers = .{ .eflags = true }, |
| 26355 | .each = .{ .once = &.{ | 26382 | .each = .{ .once = &.{ |
| 26356 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 26383 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26357 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 26384 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -26378,6 +26405,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26378,6 +26405,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26378 | .unused, | 26405 | .unused, |
| 26379 | }, | 26406 | }, |
| 26380 | .dst_temps = .{.mem}, | 26407 | .dst_temps = .{.mem}, |
| | 26408 | .clobbers = .{ .eflags = true }, |
| 26381 | .each = .{ .once = &.{ | 26409 | .each = .{ .once = &.{ |
| 26382 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 26410 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26383 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 26411 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -26403,6 +26431,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26403,6 +26431,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26403 | .unused, | 26431 | .unused, |
| 26404 | }, | 26432 | }, |
| 26405 | .dst_temps = .{.mem}, | 26433 | .dst_temps = .{.mem}, |
| | 26434 | .clobbers = .{ .eflags = true }, |
| 26406 | .each = .{ .once = &.{ | 26435 | .each = .{ .once = &.{ |
| 26407 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 26436 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26408 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 26437 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -26537,7 +26566,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26537,7 +26566,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26537 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, | 26566 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26538 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, | 26567 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, |
| 26539 | .patterns = &.{ | 26568 | .patterns = &.{ |
| 26540 | .{ .src = .{ .mem, .none } }, | 26569 | .{ .src = .{ .to_mem, .none } }, |
| 26541 | }, | 26570 | }, |
| 26542 | .extra_temps = .{ | 26571 | .extra_temps = .{ |
| 26543 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26572 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26551,10 +26580,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26551,10 +26580,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26551 | .unused, | 26580 | .unused, |
| 26552 | }, | 26581 | }, |
| 26553 | .dst_temps = .{.mem}, | 26582 | .dst_temps = .{.mem}, |
| | 26583 | .clobbers = .{ .eflags = true }, |
| 26554 | .each = .{ .once = &.{ | 26584 | .each = .{ .once = &.{ |
| 26555 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26585 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26556 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 26586 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26557 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, | 26587 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26558 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 26588 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26559 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26589 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26560 | } }, | 26590 | } }, |
| ... | @@ -26563,7 +26593,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26563,7 +26593,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26563 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, | 26593 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, .any }, |
| 26564 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }}, | 26594 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }}, |
| 26565 | .patterns = &.{ | 26595 | .patterns = &.{ |
| 26566 | .{ .src = .{ .mem, .none } }, | 26596 | .{ .src = .{ .to_mem, .none } }, |
| 26567 | }, | 26597 | }, |
| 26568 | .extra_temps = .{ | 26598 | .extra_temps = .{ |
| 26569 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26599 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26577,10 +26607,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26577,10 +26607,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26577 | .unused, | 26607 | .unused, |
| 26578 | }, | 26608 | }, |
| 26579 | .dst_temps = .{.mem}, | 26609 | .dst_temps = .{.mem}, |
| | 26610 | .clobbers = .{ .eflags = true }, |
| 26580 | .each = .{ .once = &.{ | 26611 | .each = .{ .once = &.{ |
| 26581 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26612 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26582 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 26613 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26583 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, | 26614 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26584 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 26615 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 26585 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26616 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26586 | } }, | 26617 | } }, |
| ... | @@ -26589,7 +26620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26589,7 +26620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26589 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, | 26620 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26590 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | 26621 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 26591 | .patterns = &.{ | 26622 | .patterns = &.{ |
| 26592 | .{ .src = .{ .mem, .none } }, | 26623 | .{ .src = .{ .to_mem, .none } }, |
| 26593 | }, | 26624 | }, |
| 26594 | .extra_temps = .{ | 26625 | .extra_temps = .{ |
| 26595 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26626 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26603,10 +26634,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26603,10 +26634,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26603 | .unused, | 26634 | .unused, |
| 26604 | }, | 26635 | }, |
| 26605 | .dst_temps = .{.mem}, | 26636 | .dst_temps = .{.mem}, |
| | 26637 | .clobbers = .{ .eflags = true }, |
| 26606 | .each = .{ .once = &.{ | 26638 | .each = .{ .once = &.{ |
| 26607 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26639 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26608 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | 26640 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26609 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | 26641 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26610 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 26642 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26611 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26643 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26612 | } }, | 26644 | } }, |
| ... | @@ -26615,7 +26647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26615,7 +26647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26615 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 26647 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26616 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, | 26648 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, |
| 26617 | .patterns = &.{ | 26649 | .patterns = &.{ |
| 26618 | .{ .src = .{ .mem, .none } }, | 26650 | .{ .src = .{ .to_mem, .none } }, |
| 26619 | }, | 26651 | }, |
| 26620 | .extra_temps = .{ | 26652 | .extra_temps = .{ |
| 26621 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26653 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26629,10 +26661,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26629,10 +26661,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26629 | .unused, | 26661 | .unused, |
| 26630 | }, | 26662 | }, |
| 26631 | .dst_temps = .{.mem}, | 26663 | .dst_temps = .{.mem}, |
| | 26664 | .clobbers = .{ .eflags = true }, |
| 26632 | .each = .{ .once = &.{ | 26665 | .each = .{ .once = &.{ |
| 26633 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26666 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26634 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | 26667 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26635 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | 26668 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26636 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 26669 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26637 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26670 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26638 | } }, | 26671 | } }, |
| ... | @@ -26641,7 +26674,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26641,7 +26674,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26641 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, | 26674 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26642 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | 26675 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 26643 | .patterns = &.{ | 26676 | .patterns = &.{ |
| 26644 | .{ .src = .{ .mem, .none } }, | 26677 | .{ .src = .{ .to_mem, .none } }, |
| 26645 | }, | 26678 | }, |
| 26646 | .extra_temps = .{ | 26679 | .extra_temps = .{ |
| 26647 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26680 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26655,10 +26688,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26655,10 +26688,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26655 | .unused, | 26688 | .unused, |
| 26656 | }, | 26689 | }, |
| 26657 | .dst_temps = .{.mem}, | 26690 | .dst_temps = .{.mem}, |
| | 26691 | .clobbers = .{ .eflags = true }, |
| 26658 | .each = .{ .once = &.{ | 26692 | .each = .{ .once = &.{ |
| 26659 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26693 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26660 | .{ .@"0:", .p_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | 26694 | .{ .@"0:", .p_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26661 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | 26695 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26662 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 26696 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26663 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26697 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26664 | } }, | 26698 | } }, |
| ... | @@ -26667,7 +26701,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26667,7 +26701,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26667 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 26701 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26668 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, | 26702 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, |
| 26669 | .patterns = &.{ | 26703 | .patterns = &.{ |
| 26670 | .{ .src = .{ .mem, .none } }, | 26704 | .{ .src = .{ .to_mem, .none } }, |
| 26671 | }, | 26705 | }, |
| 26672 | .extra_temps = .{ | 26706 | .extra_temps = .{ |
| 26673 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26707 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26681,10 +26715,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26681,10 +26715,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26681 | .unused, | 26715 | .unused, |
| 26682 | }, | 26716 | }, |
| 26683 | .dst_temps = .{.mem}, | 26717 | .dst_temps = .{.mem}, |
| | 26718 | .clobbers = .{ .eflags = true }, |
| 26684 | .each = .{ .once = &.{ | 26719 | .each = .{ .once = &.{ |
| 26685 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26720 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26686 | .{ .@"0:", .p_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | 26721 | .{ .@"0:", .p_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26687 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | 26722 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26688 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 26723 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26689 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26724 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26690 | } }, | 26725 | } }, |
| ... | @@ -26707,6 +26742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26707,6 +26742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26707 | .unused, | 26742 | .unused, |
| 26708 | }, | 26743 | }, |
| 26709 | .dst_temps = .{.mem}, | 26744 | .dst_temps = .{.mem}, |
| | 26745 | .clobbers = .{ .eflags = true }, |
| 26710 | .each = .{ .once = &.{ | 26746 | .each = .{ .once = &.{ |
| 26711 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 26747 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26712 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 26748 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -26732,6 +26768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26732,6 +26768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26732 | .unused, | 26768 | .unused, |
| 26733 | }, | 26769 | }, |
| 26734 | .dst_temps = .{.mem}, | 26770 | .dst_temps = .{.mem}, |
| | 26771 | .clobbers = .{ .eflags = true }, |
| 26735 | .each = .{ .once = &.{ | 26772 | .each = .{ .once = &.{ |
| 26736 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 26773 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26737 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 26774 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -26758,6 +26795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26758,6 +26795,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26758 | .unused, | 26795 | .unused, |
| 26759 | }, | 26796 | }, |
| 26760 | .dst_temps = .{.mem}, | 26797 | .dst_temps = .{.mem}, |
| | 26798 | .clobbers = .{ .eflags = true }, |
| 26761 | .each = .{ .once = &.{ | 26799 | .each = .{ .once = &.{ |
| 26762 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 26800 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26763 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 26801 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -26783,6 +26821,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26783,6 +26821,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26783 | .unused, | 26821 | .unused, |
| 26784 | }, | 26822 | }, |
| 26785 | .dst_temps = .{.mem}, | 26823 | .dst_temps = .{.mem}, |
| | 26824 | .clobbers = .{ .eflags = true }, |
| 26786 | .each = .{ .once = &.{ | 26825 | .each = .{ .once = &.{ |
| 26787 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 26826 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26788 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 26827 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -26920,7 +26959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26920,7 +26959,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26920 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, | 26959 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26921 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, | 26960 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, |
| 26922 | .patterns = &.{ | 26961 | .patterns = &.{ |
| 26923 | .{ .src = .{ .mem, .none } }, | 26962 | .{ .src = .{ .to_mem, .none } }, |
| 26924 | }, | 26963 | }, |
| 26925 | .extra_temps = .{ | 26964 | .extra_temps = .{ |
| 26926 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26965 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26934,10 +26973,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26934,10 +26973,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26934 | .unused, | 26973 | .unused, |
| 26935 | }, | 26974 | }, |
| 26936 | .dst_temps = .{.mem}, | 26975 | .dst_temps = .{.mem}, |
| | 26976 | .clobbers = .{ .eflags = true }, |
| 26937 | .each = .{ .once = &.{ | 26977 | .each = .{ .once = &.{ |
| 26938 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 26978 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26939 | .{ .@"0:", .vp_q, .movsxb, .tmp1y, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | 26979 | .{ .@"0:", .vp_q, .movsxb, .tmp1y, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26940 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_size), .tmp1y, ._, ._ }, | 26980 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26941 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 26981 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26942 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 26982 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26943 | } }, | 26983 | } }, |
| ... | @@ -26946,7 +26986,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26946,7 +26986,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26946 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, | 26986 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .byte } }, .any }, |
| 26947 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, | 26987 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, |
| 26948 | .patterns = &.{ | 26988 | .patterns = &.{ |
| 26949 | .{ .src = .{ .mem, .none } }, | 26989 | .{ .src = .{ .to_mem, .none } }, |
| 26950 | }, | 26990 | }, |
| 26951 | .extra_temps = .{ | 26991 | .extra_temps = .{ |
| 26952 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 26992 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26960,10 +27000,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26960,10 +27000,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26960 | .unused, | 27000 | .unused, |
| 26961 | }, | 27001 | }, |
| 26962 | .dst_temps = .{.mem}, | 27002 | .dst_temps = .{.mem}, |
| | 27003 | .clobbers = .{ .eflags = true }, |
| 26963 | .each = .{ .once = &.{ | 27004 | .each = .{ .once = &.{ |
| 26964 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27005 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26965 | .{ .@"0:", .vp_q, .movzxb, .tmp1y, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | 27006 | .{ .@"0:", .vp_q, .movzxb, .tmp1y, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26966 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_size), .tmp1y, ._, ._ }, | 27007 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 26967 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 27008 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 26968 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27009 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26969 | } }, | 27010 | } }, |
| ... | @@ -26972,7 +27013,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26972,7 +27013,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26972 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, | 27013 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, |
| 26973 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | 27014 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 26974 | .patterns = &.{ | 27015 | .patterns = &.{ |
| 26975 | .{ .src = .{ .mem, .none } }, | 27016 | .{ .src = .{ .to_mem, .none } }, |
| 26976 | }, | 27017 | }, |
| 26977 | .extra_temps = .{ | 27018 | .extra_temps = .{ |
| 26978 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27019 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -26986,10 +27027,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26986,10 +27027,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26986 | .unused, | 27027 | .unused, |
| 26987 | }, | 27028 | }, |
| 26988 | .dst_temps = .{.mem}, | 27029 | .dst_temps = .{.mem}, |
| | 27030 | .clobbers = .{ .eflags = true }, |
| 26989 | .each = .{ .once = &.{ | 27031 | .each = .{ .once = &.{ |
| 26990 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27032 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 26991 | .{ .@"0:", .vp_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | 27033 | .{ .@"0:", .vp_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 26992 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, | 27034 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 26993 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 27035 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 26994 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27036 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 26995 | } }, | 27037 | } }, |
| ... | @@ -26998,7 +27040,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -26998,7 +27040,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26998 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, | 27040 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 26999 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | 27041 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 27000 | .patterns = &.{ | 27042 | .patterns = &.{ |
| 27001 | .{ .src = .{ .mem, .none } }, | 27043 | .{ .src = .{ .to_mem, .none } }, |
| 27002 | }, | 27044 | }, |
| 27003 | .extra_temps = .{ | 27045 | .extra_temps = .{ |
| 27004 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27046 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27012,10 +27054,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27012,10 +27054,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27012 | .unused, | 27054 | .unused, |
| 27013 | }, | 27055 | }, |
| 27014 | .dst_temps = .{.mem}, | 27056 | .dst_temps = .{.mem}, |
| | 27057 | .clobbers = .{ .eflags = true }, |
| 27015 | .each = .{ .once = &.{ | 27058 | .each = .{ .once = &.{ |
| 27016 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27059 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27017 | .{ .@"0:", .vp_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | 27060 | .{ .@"0:", .vp_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27018 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, | 27061 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27019 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 27062 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 27020 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27063 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27021 | } }, | 27064 | } }, |
| ... | @@ -27024,7 +27067,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27024,7 +27067,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27024 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, | 27067 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .byte } }, .any }, |
| 27025 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | 27068 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 27026 | .patterns = &.{ | 27069 | .patterns = &.{ |
| 27027 | .{ .src = .{ .mem, .none } }, | 27070 | .{ .src = .{ .to_mem, .none } }, |
| 27028 | }, | 27071 | }, |
| 27029 | .extra_temps = .{ | 27072 | .extra_temps = .{ |
| 27030 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27073 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27038,10 +27081,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27038,10 +27081,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27038 | .unused, | 27081 | .unused, |
| 27039 | }, | 27082 | }, |
| 27040 | .dst_temps = .{.mem}, | 27083 | .dst_temps = .{.mem}, |
| | 27084 | .clobbers = .{ .eflags = true }, |
| 27041 | .each = .{ .once = &.{ | 27085 | .each = .{ .once = &.{ |
| 27042 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27086 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27043 | .{ .@"0:", .p_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | 27087 | .{ .@"0:", .p_q, .movsxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27044 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, | 27088 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27045 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 27089 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 27046 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27090 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27047 | } }, | 27091 | } }, |
| ... | @@ -27050,7 +27094,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27050,7 +27094,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27050 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, | 27094 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 27051 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | 27095 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 27052 | .patterns = &.{ | 27096 | .patterns = &.{ |
| 27053 | .{ .src = .{ .mem, .none } }, | 27097 | .{ .src = .{ .to_mem, .none } }, |
| 27054 | }, | 27098 | }, |
| 27055 | .extra_temps = .{ | 27099 | .extra_temps = .{ |
| 27056 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27100 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27064,10 +27108,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27064,10 +27108,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27064 | .unused, | 27108 | .unused, |
| 27065 | }, | 27109 | }, |
| 27066 | .dst_temps = .{.mem}, | 27110 | .dst_temps = .{.mem}, |
| | 27111 | .clobbers = .{ .eflags = true }, |
| 27067 | .each = .{ .once = &.{ | 27112 | .each = .{ .once = &.{ |
| 27068 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27113 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27069 | .{ .@"0:", .p_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_size), ._, ._ }, | 27114 | .{ .@"0:", .p_q, .movzxb, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27070 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_size), .tmp1x, ._, ._ }, | 27115 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27071 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, | 27116 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 27072 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27117 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27073 | } }, | 27118 | } }, |
| ... | @@ -27090,6 +27135,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27090,6 +27135,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27090 | .unused, | 27135 | .unused, |
| 27091 | }, | 27136 | }, |
| 27092 | .dst_temps = .{.mem}, | 27137 | .dst_temps = .{.mem}, |
| | 27138 | .clobbers = .{ .eflags = true }, |
| 27093 | .each = .{ .once = &.{ | 27139 | .each = .{ .once = &.{ |
| 27094 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 27140 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27095 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 27141 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -27116,6 +27162,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27116,6 +27162,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27116 | .unused, | 27162 | .unused, |
| 27117 | }, | 27163 | }, |
| 27118 | .dst_temps = .{.mem}, | 27164 | .dst_temps = .{.mem}, |
| | 27165 | .clobbers = .{ .eflags = true }, |
| 27119 | .each = .{ .once = &.{ | 27166 | .each = .{ .once = &.{ |
| 27120 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 27167 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27121 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 27168 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -27142,6 +27189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27142,6 +27189,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27142 | .unused, | 27189 | .unused, |
| 27143 | }, | 27190 | }, |
| 27144 | .dst_temps = .{.mem}, | 27191 | .dst_temps = .{.mem}, |
| | 27192 | .clobbers = .{ .eflags = true }, |
| 27145 | .each = .{ .once = &.{ | 27193 | .each = .{ .once = &.{ |
| 27146 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 27194 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27147 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 27195 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -27167,6 +27215,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27167,6 +27215,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27167 | .unused, | 27215 | .unused, |
| 27168 | }, | 27216 | }, |
| 27169 | .dst_temps = .{.mem}, | 27217 | .dst_temps = .{.mem}, |
| | 27218 | .clobbers = .{ .eflags = true }, |
| 27170 | .each = .{ .once = &.{ | 27219 | .each = .{ .once = &.{ |
| 27171 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 27220 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27172 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, | 27221 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -27301,6 +27350,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27301,6 +27350,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27301 | .unused, | 27350 | .unused, |
| 27302 | }, | 27351 | }, |
| 27303 | .dst_temps = .{.mem}, | 27352 | .dst_temps = .{.mem}, |
| | 27353 | .clobbers = .{ .eflags = true }, |
| 27304 | .each = .{ .once = &.{ | 27354 | .each = .{ .once = &.{ |
| 27305 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 27355 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27306 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 27356 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | @@ -27331,6 +27381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27331,6 +27381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27331 | .unused, | 27381 | .unused, |
| 27332 | }, | 27382 | }, |
| 27333 | .dst_temps = .{.mem}, | 27383 | .dst_temps = .{.mem}, |
| | 27384 | .clobbers = .{ .eflags = true }, |
| 27334 | .each = .{ .once = &.{ | 27385 | .each = .{ .once = &.{ |
| 27335 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 27386 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27336 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 27387 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | @@ -27361,6 +27412,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27361,6 +27412,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27361 | .unused, | 27412 | .unused, |
| 27362 | }, | 27413 | }, |
| 27363 | .dst_temps = .{.mem}, | 27414 | .dst_temps = .{.mem}, |
| | 27415 | .clobbers = .{ .eflags = true }, |
| 27364 | .each = .{ .once = &.{ | 27416 | .each = .{ .once = &.{ |
| 27365 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 27417 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27366 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 27418 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | @@ -27391,6 +27443,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27391,6 +27443,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27391 | .unused, | 27443 | .unused, |
| 27392 | }, | 27444 | }, |
| 27393 | .dst_temps = .{.mem}, | 27445 | .dst_temps = .{.mem}, |
| | 27446 | .clobbers = .{ .eflags = true }, |
| 27394 | .each = .{ .once = &.{ | 27447 | .each = .{ .once = &.{ |
| 27395 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 27448 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27396 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 27449 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | @@ -27526,7 +27579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27526,7 +27579,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27526 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, | 27579 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| 27527 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, | 27580 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, |
| 27528 | .patterns = &.{ | 27581 | .patterns = &.{ |
| 27529 | .{ .src = .{ .mem, .none } }, | 27582 | .{ .src = .{ .to_mem, .none } }, |
| 27530 | }, | 27583 | }, |
| 27531 | .extra_temps = .{ | 27584 | .extra_temps = .{ |
| 27532 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27585 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27540,10 +27593,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27540,10 +27593,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27540 | .unused, | 27593 | .unused, |
| 27541 | }, | 27594 | }, |
| 27542 | .dst_temps = .{.mem}, | 27595 | .dst_temps = .{.mem}, |
| | 27596 | .clobbers = .{ .eflags = true }, |
| 27543 | .each = .{ .once = &.{ | 27597 | .each = .{ .once = &.{ |
| 27544 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27598 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27545 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 27599 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27546 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | 27600 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 27547 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 27601 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 27548 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27602 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27549 | } }, | 27603 | } }, |
| ... | @@ -27552,7 +27606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27552,7 +27606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27552 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any }, | 27606 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, .any }, |
| 27553 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }}, | 27607 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }}, |
| 27554 | .patterns = &.{ | 27608 | .patterns = &.{ |
| 27555 | .{ .src = .{ .mem, .none } }, | 27609 | .{ .src = .{ .to_mem, .none } }, |
| 27556 | }, | 27610 | }, |
| 27557 | .extra_temps = .{ | 27611 | .extra_temps = .{ |
| 27558 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27612 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27566,10 +27620,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27566,10 +27620,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27566 | .unused, | 27620 | .unused, |
| 27567 | }, | 27621 | }, |
| 27568 | .dst_temps = .{.mem}, | 27622 | .dst_temps = .{.mem}, |
| | 27623 | .clobbers = .{ .eflags = true }, |
| 27569 | .each = .{ .once = &.{ | 27624 | .each = .{ .once = &.{ |
| 27570 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27625 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27571 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 27626 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27572 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | 27627 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 27573 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 27628 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 27574 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27629 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27575 | } }, | 27630 | } }, |
| ... | @@ -27578,7 +27633,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27578,7 +27633,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27578 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | 27633 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27579 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | 27634 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 27580 | .patterns = &.{ | 27635 | .patterns = &.{ |
| 27581 | .{ .src = .{ .mem, .none } }, | 27636 | .{ .src = .{ .to_mem, .none } }, |
| 27582 | }, | 27637 | }, |
| 27583 | .extra_temps = .{ | 27638 | .extra_temps = .{ |
| 27584 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27639 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27592,10 +27647,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27592,10 +27647,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27592 | .unused, | 27647 | .unused, |
| 27593 | }, | 27648 | }, |
| 27594 | .dst_temps = .{.mem}, | 27649 | .dst_temps = .{.mem}, |
| | 27650 | .clobbers = .{ .eflags = true }, |
| 27595 | .each = .{ .once = &.{ | 27651 | .each = .{ .once = &.{ |
| 27596 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27652 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27597 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 27653 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27598 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 27654 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27599 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 27655 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27600 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27656 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27601 | } }, | 27657 | } }, |
| ... | @@ -27604,7 +27660,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27604,7 +27660,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27604 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, | 27660 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27605 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, | 27661 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, |
| 27606 | .patterns = &.{ | 27662 | .patterns = &.{ |
| 27607 | .{ .src = .{ .mem, .none } }, | 27663 | .{ .src = .{ .to_mem, .none } }, |
| 27608 | }, | 27664 | }, |
| 27609 | .extra_temps = .{ | 27665 | .extra_temps = .{ |
| 27610 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27666 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27618,10 +27674,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27618,10 +27674,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27618 | .unused, | 27674 | .unused, |
| 27619 | }, | 27675 | }, |
| 27620 | .dst_temps = .{.mem}, | 27676 | .dst_temps = .{.mem}, |
| | 27677 | .clobbers = .{ .eflags = true }, |
| 27621 | .each = .{ .once = &.{ | 27678 | .each = .{ .once = &.{ |
| 27622 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27679 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27623 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 27680 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27624 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 27681 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27625 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 27682 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27626 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27683 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27627 | } }, | 27684 | } }, |
| ... | @@ -27630,7 +27687,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27630,7 +27687,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27630 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | 27687 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27631 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, | 27688 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| 27632 | .patterns = &.{ | 27689 | .patterns = &.{ |
| 27633 | .{ .src = .{ .mem, .none } }, | 27690 | .{ .src = .{ .to_mem, .none } }, |
| 27634 | }, | 27691 | }, |
| 27635 | .extra_temps = .{ | 27692 | .extra_temps = .{ |
| 27636 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27693 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27644,10 +27701,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27644,10 +27701,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27644 | .unused, | 27701 | .unused, |
| 27645 | }, | 27702 | }, |
| 27646 | .dst_temps = .{.mem}, | 27703 | .dst_temps = .{.mem}, |
| | 27704 | .clobbers = .{ .eflags = true }, |
| 27647 | .each = .{ .once = &.{ | 27705 | .each = .{ .once = &.{ |
| 27648 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27706 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27649 | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 27707 | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27650 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 27708 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27651 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 27709 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27652 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27710 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27653 | } }, | 27711 | } }, |
| ... | @@ -27656,7 +27714,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27656,7 +27714,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27656 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, | 27714 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27657 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, | 27715 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }}, |
| 27658 | .patterns = &.{ | 27716 | .patterns = &.{ |
| 27659 | .{ .src = .{ .mem, .none } }, | 27717 | .{ .src = .{ .to_mem, .none } }, |
| 27660 | }, | 27718 | }, |
| 27661 | .extra_temps = .{ | 27719 | .extra_temps = .{ |
| 27662 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27720 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27670,10 +27728,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27670,10 +27728,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27670 | .unused, | 27728 | .unused, |
| 27671 | }, | 27729 | }, |
| 27672 | .dst_temps = .{.mem}, | 27730 | .dst_temps = .{.mem}, |
| | 27731 | .clobbers = .{ .eflags = true }, |
| 27673 | .each = .{ .once = &.{ | 27732 | .each = .{ .once = &.{ |
| 27674 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27733 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27675 | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 27734 | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27676 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 27735 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27677 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 27736 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27678 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27737 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27679 | } }, | 27738 | } }, |
| ... | @@ -27695,6 +27754,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27695,6 +27754,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27695 | .unused, | 27754 | .unused, |
| 27696 | }, | 27755 | }, |
| 27697 | .dst_temps = .{.mem}, | 27756 | .dst_temps = .{.mem}, |
| | 27757 | .clobbers = .{ .eflags = true }, |
| 27698 | .each = .{ .once = &.{ | 27758 | .each = .{ .once = &.{ |
| 27699 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 27759 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27700 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 27760 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -27720,6 +27780,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27720,6 +27780,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27720 | .unused, | 27780 | .unused, |
| 27721 | }, | 27781 | }, |
| 27722 | .dst_temps = .{.mem}, | 27782 | .dst_temps = .{.mem}, |
| | 27783 | .clobbers = .{ .eflags = true }, |
| 27723 | .each = .{ .once = &.{ | 27784 | .each = .{ .once = &.{ |
| 27724 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 27785 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27725 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 27786 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -27854,7 +27915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27854,7 +27915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27854 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, | 27915 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27855 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, | 27916 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, |
| 27856 | .patterns = &.{ | 27917 | .patterns = &.{ |
| 27857 | .{ .src = .{ .mem, .none } }, | 27918 | .{ .src = .{ .to_mem, .none } }, |
| 27858 | }, | 27919 | }, |
| 27859 | .extra_temps = .{ | 27920 | .extra_temps = .{ |
| 27860 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27921 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27868,10 +27929,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27868,10 +27929,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27868 | .unused, | 27929 | .unused, |
| 27869 | }, | 27930 | }, |
| 27870 | .dst_temps = .{.mem}, | 27931 | .dst_temps = .{.mem}, |
| | 27932 | .clobbers = .{ .eflags = true }, |
| 27871 | .each = .{ .once = &.{ | 27933 | .each = .{ .once = &.{ |
| 27872 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27934 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27873 | .{ .@"0:", .vp_q, .movsxw, .tmp1y, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 27935 | .{ .@"0:", .vp_q, .movsxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27874 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, | 27936 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 27875 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 27937 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27876 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27938 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27877 | } }, | 27939 | } }, |
| ... | @@ -27880,7 +27942,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27880,7 +27942,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27880 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, | 27942 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .word } }, .any }, |
| 27881 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, | 27943 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, |
| 27882 | .patterns = &.{ | 27944 | .patterns = &.{ |
| 27883 | .{ .src = .{ .mem, .none } }, | 27945 | .{ .src = .{ .to_mem, .none } }, |
| 27884 | }, | 27946 | }, |
| 27885 | .extra_temps = .{ | 27947 | .extra_temps = .{ |
| 27886 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27948 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27894,10 +27956,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27894,10 +27956,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27894 | .unused, | 27956 | .unused, |
| 27895 | }, | 27957 | }, |
| 27896 | .dst_temps = .{.mem}, | 27958 | .dst_temps = .{.mem}, |
| | 27959 | .clobbers = .{ .eflags = true }, |
| 27897 | .each = .{ .once = &.{ | 27960 | .each = .{ .once = &.{ |
| 27898 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27961 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27899 | .{ .@"0:", .vp_q, .movzxw, .tmp1y, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 27962 | .{ .@"0:", .vp_q, .movzxw, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27900 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_size), .tmp1y, ._, ._ }, | 27963 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 27901 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 27964 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 27902 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27965 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27903 | } }, | 27966 | } }, |
| ... | @@ -27906,7 +27969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27906,7 +27969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27906 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | 27969 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| 27907 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | 27970 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 27908 | .patterns = &.{ | 27971 | .patterns = &.{ |
| 27909 | .{ .src = .{ .mem, .none } }, | 27972 | .{ .src = .{ .to_mem, .none } }, |
| 27910 | }, | 27973 | }, |
| 27911 | .extra_temps = .{ | 27974 | .extra_temps = .{ |
| 27912 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 27975 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27920,10 +27983,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27920,10 +27983,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27920 | .unused, | 27983 | .unused, |
| 27921 | }, | 27984 | }, |
| 27922 | .dst_temps = .{.mem}, | 27985 | .dst_temps = .{.mem}, |
| | 27986 | .clobbers = .{ .eflags = true }, |
| 27923 | .each = .{ .once = &.{ | 27987 | .each = .{ .once = &.{ |
| 27924 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 27988 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27925 | .{ .@"0:", .vp_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | 27989 | .{ .@"0:", .vp_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27926 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | 27990 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27927 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 27991 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 27928 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 27992 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27929 | } }, | 27993 | } }, |
| ... | @@ -27932,7 +27996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27932,7 +27996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27932 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, | 27996 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, |
| 27933 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | 27997 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 27934 | .patterns = &.{ | 27998 | .patterns = &.{ |
| 27935 | .{ .src = .{ .mem, .none } }, | 27999 | .{ .src = .{ .to_mem, .none } }, |
| 27936 | }, | 28000 | }, |
| 27937 | .extra_temps = .{ | 28001 | .extra_temps = .{ |
| 27938 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 28002 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27946,10 +28010,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27946,10 +28010,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27946 | .unused, | 28010 | .unused, |
| 27947 | }, | 28011 | }, |
| 27948 | .dst_temps = .{.mem}, | 28012 | .dst_temps = .{.mem}, |
| | 28013 | .clobbers = .{ .eflags = true }, |
| 27949 | .each = .{ .once = &.{ | 28014 | .each = .{ .once = &.{ |
| 27950 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 28015 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27951 | .{ .@"0:", .vp_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | 28016 | .{ .@"0:", .vp_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27952 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | 28017 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27953 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 28018 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 27954 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 28019 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27955 | } }, | 28020 | } }, |
| ... | @@ -27958,7 +28023,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27958,7 +28023,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27958 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, | 28023 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .word } }, .any }, |
| 27959 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | 28024 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 27960 | .patterns = &.{ | 28025 | .patterns = &.{ |
| 27961 | .{ .src = .{ .mem, .none } }, | 28026 | .{ .src = .{ .to_mem, .none } }, |
| 27962 | }, | 28027 | }, |
| 27963 | .extra_temps = .{ | 28028 | .extra_temps = .{ |
| 27964 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 28029 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27972,10 +28037,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27972,10 +28037,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27972 | .unused, | 28037 | .unused, |
| 27973 | }, | 28038 | }, |
| 27974 | .dst_temps = .{.mem}, | 28039 | .dst_temps = .{.mem}, |
| | 28040 | .clobbers = .{ .eflags = true }, |
| 27975 | .each = .{ .once = &.{ | 28041 | .each = .{ .once = &.{ |
| 27976 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 28042 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 27977 | .{ .@"0:", .p_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | 28043 | .{ .@"0:", .p_q, .movsxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 27978 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | 28044 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 27979 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 28045 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 27980 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 28046 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 27981 | } }, | 28047 | } }, |
| ... | @@ -27984,7 +28050,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27984,7 +28050,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27984 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, | 28050 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, |
| 27985 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | 28051 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 27986 | .patterns = &.{ | 28052 | .patterns = &.{ |
| 27987 | .{ .src = .{ .mem, .none } }, | 28053 | .{ .src = .{ .to_mem, .none } }, |
| 27988 | }, | 28054 | }, |
| 27989 | .extra_temps = .{ | 28055 | .extra_temps = .{ |
| 27990 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 28056 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -27998,10 +28064,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -27998,10 +28064,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 27998 | .unused, | 28064 | .unused, |
| 27999 | }, | 28065 | }, |
| 28000 | .dst_temps = .{.mem}, | 28066 | .dst_temps = .{.mem}, |
| | 28067 | .clobbers = .{ .eflags = true }, |
| 28001 | .each = .{ .once = &.{ | 28068 | .each = .{ .once = &.{ |
| 28002 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 28069 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28003 | .{ .@"0:", .p_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_size), ._, ._ }, | 28070 | .{ .@"0:", .p_q, .movzxw, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28004 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_size), .tmp1x, ._, ._ }, | 28071 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 28005 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, | 28072 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 28006 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 28073 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28007 | } }, | 28074 | } }, |
| ... | @@ -28024,6 +28091,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28024,6 +28091,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28024 | .unused, | 28091 | .unused, |
| 28025 | }, | 28092 | }, |
| 28026 | .dst_temps = .{.mem}, | 28093 | .dst_temps = .{.mem}, |
| | 28094 | .clobbers = .{ .eflags = true }, |
| 28027 | .each = .{ .once = &.{ | 28095 | .each = .{ .once = &.{ |
| 28028 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 28096 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28029 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 28097 | .{ .@"0:", ._, .movsx, .tmp1q, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -28050,6 +28118,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28050,6 +28118,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28050 | .unused, | 28118 | .unused, |
| 28051 | }, | 28119 | }, |
| 28052 | .dst_temps = .{.mem}, | 28120 | .dst_temps = .{.mem}, |
| | 28121 | .clobbers = .{ .eflags = true }, |
| 28053 | .each = .{ .once = &.{ | 28122 | .each = .{ .once = &.{ |
| 28054 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 28123 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28055 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, | 28124 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -28181,6 +28250,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28181,6 +28250,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28181 | .unused, | 28250 | .unused, |
| 28182 | }, | 28251 | }, |
| 28183 | .dst_temps = .{.mem}, | 28252 | .dst_temps = .{.mem}, |
| | 28253 | .clobbers = .{ .eflags = true }, |
| 28184 | .each = .{ .once = &.{ | 28254 | .each = .{ .once = &.{ |
| 28185 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 28255 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28186 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 28256 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | @@ -28211,6 +28281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28211,6 +28281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28211 | .unused, | 28281 | .unused, |
| 28212 | }, | 28282 | }, |
| 28213 | .dst_temps = .{.mem}, | 28283 | .dst_temps = .{.mem}, |
| | 28284 | .clobbers = .{ .eflags = true }, |
| 28214 | .each = .{ .once = &.{ | 28285 | .each = .{ .once = &.{ |
| 28215 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 28286 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28216 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 28287 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | @@ -28346,7 +28417,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28346,7 +28417,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28346 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, | 28417 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 28347 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, | 28418 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, |
| 28348 | .patterns = &.{ | 28419 | .patterns = &.{ |
| 28349 | .{ .src = .{ .mem, .none } }, | 28420 | .{ .src = .{ .to_mem, .none } }, |
| 28350 | }, | 28421 | }, |
| 28351 | .extra_temps = .{ | 28422 | .extra_temps = .{ |
| 28352 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 28423 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -28360,10 +28431,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28360,10 +28431,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28360 | .unused, | 28431 | .unused, |
| 28361 | }, | 28432 | }, |
| 28362 | .dst_temps = .{.mem}, | 28433 | .dst_temps = .{.mem}, |
| | 28434 | .clobbers = .{ .eflags = true }, |
| 28363 | .each = .{ .once = &.{ | 28435 | .each = .{ .once = &.{ |
| 28364 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 28436 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28365 | .{ .@"0:", .vp_q, .movsxd, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 28437 | .{ .@"0:", .vp_q, .movsxd, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28366 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | 28438 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 28367 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 28439 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 28368 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 28440 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28369 | } }, | 28441 | } }, |
| ... | @@ -28372,7 +28444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28372,7 +28444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28372 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, | 28444 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, .any }, |
| 28373 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, | 28445 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .yword, .is = .qword } }}, |
| 28374 | .patterns = &.{ | 28446 | .patterns = &.{ |
| 28375 | .{ .src = .{ .mem, .none } }, | 28447 | .{ .src = .{ .to_mem, .none } }, |
| 28376 | }, | 28448 | }, |
| 28377 | .extra_temps = .{ | 28449 | .extra_temps = .{ |
| 28378 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 28450 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -28386,10 +28458,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28386,10 +28458,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28386 | .unused, | 28458 | .unused, |
| 28387 | }, | 28459 | }, |
| 28388 | .dst_temps = .{.mem}, | 28460 | .dst_temps = .{.mem}, |
| | 28461 | .clobbers = .{ .eflags = true }, |
| 28389 | .each = .{ .once = &.{ | 28462 | .each = .{ .once = &.{ |
| 28390 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 28463 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28391 | .{ .@"0:", .vp_q, .movzxd, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ }, | 28464 | .{ .@"0:", .vp_q, .movzxd, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28392 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_size), .tmp1y, ._, ._ }, | 28465 | .{ ._, .v_dqa, .mov, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 28393 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, | 28466 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 28394 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 28467 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28395 | } }, | 28468 | } }, |
| ... | @@ -28398,7 +28471,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28398,7 +28471,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28398 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, | 28471 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 28399 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | 28472 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 28400 | .patterns = &.{ | 28473 | .patterns = &.{ |
| 28401 | .{ .src = .{ .mem, .none } }, | 28474 | .{ .src = .{ .to_mem, .none } }, |
| 28402 | }, | 28475 | }, |
| 28403 | .extra_temps = .{ | 28476 | .extra_temps = .{ |
| 28404 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 28477 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -28412,10 +28485,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28412,10 +28485,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28412 | .unused, | 28485 | .unused, |
| 28413 | }, | 28486 | }, |
| 28414 | .dst_temps = .{.mem}, | 28487 | .dst_temps = .{.mem}, |
| | 28488 | .clobbers = .{ .eflags = true }, |
| 28415 | .each = .{ .once = &.{ | 28489 | .each = .{ .once = &.{ |
| 28416 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 28490 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28417 | .{ .@"0:", .vp_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 28491 | .{ .@"0:", .vp_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28418 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 28492 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 28419 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 28493 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 28420 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 28494 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28421 | } }, | 28495 | } }, |
| ... | @@ -28424,7 +28498,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28424,7 +28498,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28424 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, | 28498 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .word } }, .any }, |
| 28425 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | 28499 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 28426 | .patterns = &.{ | 28500 | .patterns = &.{ |
| 28427 | .{ .src = .{ .mem, .none } }, | 28501 | .{ .src = .{ .to_mem, .none } }, |
| 28428 | }, | 28502 | }, |
| 28429 | .extra_temps = .{ | 28503 | .extra_temps = .{ |
| 28430 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 28504 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -28438,10 +28512,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28438,10 +28512,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28438 | .unused, | 28512 | .unused, |
| 28439 | }, | 28513 | }, |
| 28440 | .dst_temps = .{.mem}, | 28514 | .dst_temps = .{.mem}, |
| | 28515 | .clobbers = .{ .eflags = true }, |
| 28441 | .each = .{ .once = &.{ | 28516 | .each = .{ .once = &.{ |
| 28442 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 28517 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28443 | .{ .@"0:", .vp_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 28518 | .{ .@"0:", .vp_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28444 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 28519 | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 28445 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 28520 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 28446 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 28521 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28447 | } }, | 28522 | } }, |
| ... | @@ -28450,7 +28525,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28450,7 +28525,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28450 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, | 28525 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 28451 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, | 28526 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| 28452 | .patterns = &.{ | 28527 | .patterns = &.{ |
| 28453 | .{ .src = .{ .mem, .none } }, | 28528 | .{ .src = .{ .to_mem, .none } }, |
| 28454 | }, | 28529 | }, |
| 28455 | .extra_temps = .{ | 28530 | .extra_temps = .{ |
| 28456 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 28531 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -28464,10 +28539,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28464,10 +28539,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28464 | .unused, | 28539 | .unused, |
| 28465 | }, | 28540 | }, |
| 28466 | .dst_temps = .{.mem}, | 28541 | .dst_temps = .{.mem}, |
| | 28542 | .clobbers = .{ .eflags = true }, |
| 28467 | .each = .{ .once = &.{ | 28543 | .each = .{ .once = &.{ |
| 28468 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 28544 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28469 | .{ .@"0:", .p_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 28545 | .{ .@"0:", .p_q, .movsxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28470 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 28546 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 28471 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 28547 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 28472 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 28548 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28473 | } }, | 28549 | } }, |
| ... | @@ -28476,7 +28552,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28476,7 +28552,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28476 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .dword } }, .any }, | 28552 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .dword } }, .any }, |
| 28477 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, | 28553 | .dst_constraints = .{.{ .multiple_scalar_int = .{ .of = .xword, .is = .qword } }}, |
| 28478 | .patterns = &.{ | 28554 | .patterns = &.{ |
| 28479 | .{ .src = .{ .mem, .none } }, | 28555 | .{ .src = .{ .to_mem, .none } }, |
| 28480 | }, | 28556 | }, |
| 28481 | .extra_temps = .{ | 28557 | .extra_temps = .{ |
| 28482 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 28558 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| ... | @@ -28490,10 +28566,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28490,10 +28566,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28490 | .unused, | 28566 | .unused, |
| 28491 | }, | 28567 | }, |
| 28492 | .dst_temps = .{.mem}, | 28568 | .dst_temps = .{.mem}, |
| | 28569 | .clobbers = .{ .eflags = true }, |
| 28493 | .each = .{ .once = &.{ | 28570 | .each = .{ .once = &.{ |
| 28494 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, | 28571 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28495 | .{ .@"0:", .p_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ }, | 28572 | .{ .@"0:", .p_q, .movzxd, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 28496 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_size), .tmp1x, ._, ._ }, | 28573 | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 28497 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, | 28574 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 28498 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 28575 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 28499 | } }, | 28576 | } }, |
| ... | @@ -28516,6 +28593,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28516,6 +28593,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28516 | .unused, | 28593 | .unused, |
| 28517 | }, | 28594 | }, |
| 28518 | .dst_temps = .{.mem}, | 28595 | .dst_temps = .{.mem}, |
| | 28596 | .clobbers = .{ .eflags = true }, |
| 28519 | .each = .{ .once = &.{ | 28597 | .each = .{ .once = &.{ |
| 28520 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 28598 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28521 | .{ .@"0:", ._, .movsxd, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 28599 | .{ .@"0:", ._, .movsxd, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -28542,6 +28620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28542,6 +28620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28542 | .unused, | 28620 | .unused, |
| 28543 | }, | 28621 | }, |
| 28544 | .dst_temps = .{.mem}, | 28622 | .dst_temps = .{.mem}, |
| | 28623 | .clobbers = .{ .eflags = true }, |
| 28545 | .each = .{ .once = &.{ | 28624 | .each = .{ .once = &.{ |
| 28546 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 28625 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28547 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, | 28626 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| ... | @@ -28670,6 +28749,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28670,6 +28749,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28670 | .unused, | 28749 | .unused, |
| 28671 | }, | 28750 | }, |
| 28672 | .dst_temps = .{.mem}, | 28751 | .dst_temps = .{.mem}, |
| | 28752 | .clobbers = .{ .eflags = true }, |
| 28673 | .each = .{ .once = &.{ | 28753 | .each = .{ .once = &.{ |
| 28674 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 28754 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28675 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 28755 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | @@ -28700,6 +28780,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28700,6 +28780,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28700 | .unused, | 28780 | .unused, |
| 28701 | }, | 28781 | }, |
| 28702 | .dst_temps = .{.mem}, | 28782 | .dst_temps = .{.mem}, |
| | 28783 | .clobbers = .{ .eflags = true }, |
| 28703 | .each = .{ .once = &.{ | 28784 | .each = .{ .once = &.{ |
| 28704 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, | 28785 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 28705 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, | 28786 | .{ ._, ._, .lea, .tmp1q, .mem(.dst0), ._, ._ }, |
| ... | @@ -28714,7 +28795,5049 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28714,7 +28795,5049 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28714 | }, .{ | 28795 | }, .{ |
| 28715 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 28796 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 28716 | .src_constraints = .{ .any_scalar_signed_int, .any }, | 28797 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 28717 | .dst_constraints = .{.any_scalar_signed_int}, | 28798 | .dst_constraints = .{.any_scalar_signed_int}, |
| | 28799 | .patterns = &.{ |
| | 28800 | .{ .src = .{ .to_mem, .none } }, |
| | 28801 | }, |
| | 28802 | .extra_temps = .{ |
| | 28803 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 28804 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 28805 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 28806 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 28807 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| | 28808 | .unused, |
| | 28809 | .unused, |
| | 28810 | .unused, |
| | 28811 | .unused, |
| | 28812 | }, |
| | 28813 | .dst_temps = .{.mem}, |
| | 28814 | .clobbers = .{ .eflags = true }, |
| | 28815 | .each = .{ .once = &.{ |
| | 28816 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 28817 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 28818 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 28819 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| | 28820 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 28821 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, |
| | 28822 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 28823 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, |
| | 28824 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| | 28825 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 28826 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 28827 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 28828 | } }, |
| | 28829 | }, .{ |
| | 28830 | .required_features = .{ .@"64bit", null, null, null }, |
| | 28831 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 28832 | .dst_constraints = .{.any_scalar_signed_int}, |
| | 28833 | .patterns = &.{ |
| | 28834 | .{ .src = .{ .to_mem, .none } }, |
| | 28835 | }, |
| | 28836 | .extra_temps = .{ |
| | 28837 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 28838 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 28839 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 28840 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 28841 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| | 28842 | .unused, |
| | 28843 | .unused, |
| | 28844 | .unused, |
| | 28845 | .unused, |
| | 28846 | }, |
| | 28847 | .dst_temps = .{.mem}, |
| | 28848 | .clobbers = .{ .eflags = true }, |
| | 28849 | .each = .{ .once = &.{ |
| | 28850 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 28851 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 28852 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 28853 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, |
| | 28854 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 28855 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, |
| | 28856 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 28857 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, |
| | 28858 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| | 28859 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 28860 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 28861 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 28862 | } }, |
| | 28863 | }, .{ |
| | 28864 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 28865 | .src_constraints = .{ .any_scalar_int, .any }, |
| | 28866 | .dst_constraints = .{.any_scalar_int}, |
| | 28867 | .patterns = &.{ |
| | 28868 | .{ .src = .{ .to_mem, .none } }, |
| | 28869 | }, |
| | 28870 | .extra_temps = .{ |
| | 28871 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 28872 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 28873 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 28874 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 28875 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 28876 | .unused, |
| | 28877 | .unused, |
| | 28878 | .unused, |
| | 28879 | .unused, |
| | 28880 | }, |
| | 28881 | .dst_temps = .{.mem}, |
| | 28882 | .clobbers = .{ .eflags = true }, |
| | 28883 | .each = .{ .once = &.{ |
| | 28884 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 28885 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 28886 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 28887 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| | 28888 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 28889 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 28890 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| | 28891 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 28892 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 28893 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 28894 | } }, |
| | 28895 | }, .{ |
| | 28896 | .required_features = .{ .@"64bit", null, null, null }, |
| | 28897 | .src_constraints = .{ .any_scalar_int, .any }, |
| | 28898 | .dst_constraints = .{.any_scalar_int}, |
| | 28899 | .patterns = &.{ |
| | 28900 | .{ .src = .{ .to_mem, .none } }, |
| | 28901 | }, |
| | 28902 | .extra_temps = .{ |
| | 28903 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 28904 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 28905 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 28906 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 28907 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 28908 | .unused, |
| | 28909 | .unused, |
| | 28910 | .unused, |
| | 28911 | .unused, |
| | 28912 | }, |
| | 28913 | .dst_temps = .{.mem}, |
| | 28914 | .clobbers = .{ .eflags = true }, |
| | 28915 | .each = .{ .once = &.{ |
| | 28916 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 28917 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 28918 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 28919 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, |
| | 28920 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 28921 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 28922 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, |
| | 28923 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 28924 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 28925 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 28926 | } }, |
| | 28927 | } }) catch |err| switch (err) { |
| | 28928 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| | 28929 | @tagName(air_tag), |
| | 28930 | dst_ty.fmt(pt), |
| | 28931 | src_ty.fmt(pt), |
| | 28932 | ops[0].tracking(cg), |
| | 28933 | }), |
| | 28934 | else => |e| return e, |
| | 28935 | }; |
| | 28936 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| | 28937 | }, |
| | 28938 | .trunc => |air_tag| if (use_old) try cg.airTrunc(inst) else { |
| | 28939 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| | 28940 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| | 28941 | var res: [1]Temp = undefined; |
| | 28942 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| | 28943 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| | 28944 | .dst_constraints = .{.{ .exact_signed_int = 1 }}, |
| | 28945 | .patterns = &.{ |
| | 28946 | .{ .src = .{ .to_mut_gpr, .none } }, |
| | 28947 | }, |
| | 28948 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 28949 | .clobbers = .{ .eflags = true }, |
| | 28950 | .each = .{ .once = &.{ |
| | 28951 | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, |
| | 28952 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| | 28953 | } }, |
| | 28954 | }, .{ |
| | 28955 | .src_constraints = .{ .any_signed_int, .any }, |
| | 28956 | .dst_constraints = .{.{ .exact_signed_int = 1 }}, |
| | 28957 | .patterns = &.{ |
| | 28958 | .{ .src = .{ .to_mem, .none } }, |
| | 28959 | }, |
| | 28960 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 28961 | .clobbers = .{ .eflags = true }, |
| | 28962 | .each = .{ .once = &.{ |
| | 28963 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| | 28964 | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, |
| | 28965 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, |
| | 28966 | } }, |
| | 28967 | }, .{ |
| | 28968 | .src_constraints = .{ .{ .int = .gpr }, .any }, |
| | 28969 | .dst_constraints = .{.{ .exact_int = 8 }}, |
| | 28970 | .patterns = &.{ |
| | 28971 | .{ .src = .{ .to_mut_gpr, .none } }, |
| | 28972 | }, |
| | 28973 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 28974 | .each = .{ .once = &.{} }, |
| | 28975 | }, .{ |
| | 28976 | .src_constraints = .{ .any_signed_int, .any }, |
| | 28977 | .dst_constraints = .{.{ .exact_signed_int = 8 }}, |
| | 28978 | .patterns = &.{ |
| | 28979 | .{ .src = .{ .to_mem, .none } }, |
| | 28980 | }, |
| | 28981 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 28982 | .each = .{ .once = &.{ |
| | 28983 | .{ ._, ._, .movsx, .dst0d, .mem(.src0b), ._, ._ }, |
| | 28984 | } }, |
| | 28985 | }, .{ |
| | 28986 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 28987 | .dst_constraints = .{.{ .exact_unsigned_int = 8 }}, |
| | 28988 | .patterns = &.{ |
| | 28989 | .{ .src = .{ .to_mem, .none } }, |
| | 28990 | }, |
| | 28991 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 28992 | .each = .{ .once = &.{ |
| | 28993 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| | 28994 | } }, |
| | 28995 | }, .{ |
| | 28996 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| | 28997 | .dst_constraints = .{.{ .signed_int = .byte }}, |
| | 28998 | .patterns = &.{ |
| | 28999 | .{ .src = .{ .to_mut_gpr, .none } }, |
| | 29000 | }, |
| | 29001 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29002 | .clobbers = .{ .eflags = true }, |
| | 29003 | .each = .{ .once = &.{ |
| | 29004 | .{ ._, ._l, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 29005 | .{ ._, ._r, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 29006 | } }, |
| | 29007 | }, .{ |
| | 29008 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| | 29009 | .dst_constraints = .{.{ .unsigned_int = .byte }}, |
| | 29010 | .patterns = &.{ |
| | 29011 | .{ .src = .{ .to_mut_gpr, .none } }, |
| | 29012 | }, |
| | 29013 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29014 | .clobbers = .{ .eflags = true }, |
| | 29015 | .each = .{ .once = &.{ |
| | 29016 | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 29017 | } }, |
| | 29018 | }, .{ |
| | 29019 | .src_constraints = .{ .any_int, .any }, |
| | 29020 | .dst_constraints = .{.{ .unsigned_int = .byte }}, |
| | 29021 | .patterns = &.{ |
| | 29022 | .{ .src = .{ .to_mem, .none } }, |
| | 29023 | }, |
| | 29024 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29025 | .clobbers = .{ .eflags = true }, |
| | 29026 | .each = .{ .once = &.{ |
| | 29027 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, |
| | 29028 | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 29029 | } }, |
| | 29030 | }, .{ |
| | 29031 | .src_constraints = .{ .{ .int = .gpr }, .any }, |
| | 29032 | .dst_constraints = .{.{ .exact_int = 16 }}, |
| | 29033 | .patterns = &.{ |
| | 29034 | .{ .src = .{ .to_mut_gpr, .none } }, |
| | 29035 | }, |
| | 29036 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29037 | .each = .{ .once = &.{} }, |
| | 29038 | }, .{ |
| | 29039 | .src_constraints = .{ .any_signed_int, .any }, |
| | 29040 | .dst_constraints = .{.{ .exact_signed_int = 16 }}, |
| | 29041 | .patterns = &.{ |
| | 29042 | .{ .src = .{ .to_mem, .none } }, |
| | 29043 | }, |
| | 29044 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29045 | .each = .{ .once = &.{ |
| | 29046 | .{ ._, ._, .movsx, .dst0d, .mem(.src0w), ._, ._ }, |
| | 29047 | } }, |
| | 29048 | }, .{ |
| | 29049 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 29050 | .dst_constraints = .{.{ .exact_unsigned_int = 16 }}, |
| | 29051 | .patterns = &.{ |
| | 29052 | .{ .src = .{ .to_mem, .none } }, |
| | 29053 | }, |
| | 29054 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29055 | .each = .{ .once = &.{ |
| | 29056 | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, |
| | 29057 | } }, |
| | 29058 | }, .{ |
| | 29059 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 29060 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| | 29061 | .dst_constraints = .{.{ .unsigned_int = .word }}, |
| | 29062 | .patterns = &.{ |
| | 29063 | .{ .src = .{ .to_mut_gpr, .none } }, |
| | 29064 | }, |
| | 29065 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29066 | .clobbers = .{ .eflags = true }, |
| | 29067 | .each = .{ .once = &.{ |
| | 29068 | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, |
| | 29069 | } }, |
| | 29070 | }, .{ |
| | 29071 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 29072 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 29073 | .dst_constraints = .{.{ .unsigned_int = .word }}, |
| | 29074 | .patterns = &.{ |
| | 29075 | .{ .src = .{ .to_mem, .none } }, |
| | 29076 | }, |
| | 29077 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29078 | .clobbers = .{ .eflags = true }, |
| | 29079 | .each = .{ .once = &.{ |
| | 29080 | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, |
| | 29081 | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, |
| | 29082 | } }, |
| | 29083 | }, .{ |
| | 29084 | .src_constraints = .{ .{ .int = .gpr }, .any }, |
| | 29085 | .dst_constraints = .{.{ .exact_int = 32 }}, |
| | 29086 | .patterns = &.{ |
| | 29087 | .{ .src = .{ .to_mut_gpr, .none } }, |
| | 29088 | }, |
| | 29089 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29090 | .each = .{ .once = &.{} }, |
| | 29091 | }, .{ |
| | 29092 | .src_constraints = .{ .any_int, .any }, |
| | 29093 | .dst_constraints = .{.{ .exact_int = 32 }}, |
| | 29094 | .patterns = &.{ |
| | 29095 | .{ .src = .{ .to_mem, .none } }, |
| | 29096 | }, |
| | 29097 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29098 | .each = .{ .once = &.{ |
| | 29099 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| | 29100 | } }, |
| | 29101 | }, .{ |
| | 29102 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| | 29103 | .dst_constraints = .{.{ .signed_int = .dword }}, |
| | 29104 | .patterns = &.{ |
| | 29105 | .{ .src = .{ .to_mut_gpr, .none } }, |
| | 29106 | }, |
| | 29107 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29108 | .clobbers = .{ .eflags = true }, |
| | 29109 | .each = .{ .once = &.{ |
| | 29110 | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 29111 | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 29112 | } }, |
| | 29113 | }, .{ |
| | 29114 | .src_constraints = .{ .any_signed_int, .any }, |
| | 29115 | .dst_constraints = .{.{ .signed_int = .dword }}, |
| | 29116 | .patterns = &.{ |
| | 29117 | .{ .src = .{ .to_mem, .none } }, |
| | 29118 | }, |
| | 29119 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29120 | .clobbers = .{ .eflags = true }, |
| | 29121 | .each = .{ .once = &.{ |
| | 29122 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| | 29123 | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 29124 | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 29125 | } }, |
| | 29126 | }, .{ |
| | 29127 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| | 29128 | .dst_constraints = .{.{ .unsigned_int = .dword }}, |
| | 29129 | .patterns = &.{ |
| | 29130 | .{ .src = .{ .to_mut_gpr, .none } }, |
| | 29131 | }, |
| | 29132 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29133 | .clobbers = .{ .eflags = true }, |
| | 29134 | .each = .{ .once = &.{ |
| | 29135 | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 29136 | } }, |
| | 29137 | }, .{ |
| | 29138 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 29139 | .dst_constraints = .{.{ .unsigned_int = .dword }}, |
| | 29140 | .patterns = &.{ |
| | 29141 | .{ .src = .{ .to_mem, .none } }, |
| | 29142 | }, |
| | 29143 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29144 | .clobbers = .{ .eflags = true }, |
| | 29145 | .each = .{ .once = &.{ |
| | 29146 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, |
| | 29147 | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 29148 | } }, |
| | 29149 | }, .{ |
| | 29150 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29151 | .src_constraints = .{ .any_int, .any }, |
| | 29152 | .dst_constraints = .{.{ .exact_int = 64 }}, |
| | 29153 | .patterns = &.{ |
| | 29154 | .{ .src = .{ .to_mem, .none } }, |
| | 29155 | }, |
| | 29156 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29157 | .each = .{ .once = &.{ |
| | 29158 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, |
| | 29159 | } }, |
| | 29160 | }, .{ |
| | 29161 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29162 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, |
| | 29163 | .dst_constraints = .{.{ .signed_int = .qword }}, |
| | 29164 | .patterns = &.{ |
| | 29165 | .{ .src = .{ .to_mut_gpr, .none } }, |
| | 29166 | }, |
| | 29167 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29168 | .clobbers = .{ .eflags = true }, |
| | 29169 | .each = .{ .once = &.{ |
| | 29170 | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 29171 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 29172 | } }, |
| | 29173 | }, .{ |
| | 29174 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29175 | .src_constraints = .{ .any_signed_int, .any }, |
| | 29176 | .dst_constraints = .{.{ .signed_int = .qword }}, |
| | 29177 | .patterns = &.{ |
| | 29178 | .{ .src = .{ .to_mem, .none } }, |
| | 29179 | }, |
| | 29180 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29181 | .clobbers = .{ .eflags = true }, |
| | 29182 | .each = .{ .once = &.{ |
| | 29183 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, |
| | 29184 | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 29185 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 29186 | } }, |
| | 29187 | }, .{ |
| | 29188 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 29189 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| | 29190 | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| | 29191 | .patterns = &.{ |
| | 29192 | .{ .src = .{ .mem, .none } }, |
| | 29193 | .{ .src = .{ .to_gpr, .none } }, |
| | 29194 | }, |
| | 29195 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29196 | .clobbers = .{ .eflags = true }, |
| | 29197 | .each = .{ .once = &.{ |
| | 29198 | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 29199 | .{ ._, ._, .bzhi, .dst0q, .src0q, .dst0q, ._ }, |
| | 29200 | } }, |
| | 29201 | }, .{ |
| | 29202 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 29203 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 29204 | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| | 29205 | .patterns = &.{ |
| | 29206 | .{ .src = .{ .to_mem, .none } }, |
| | 29207 | }, |
| | 29208 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29209 | .clobbers = .{ .eflags = true }, |
| | 29210 | .each = .{ .once = &.{ |
| | 29211 | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 29212 | .{ ._, ._, .bzhi, .dst0q, .mem(.src0q), .dst0q, ._ }, |
| | 29213 | } }, |
| | 29214 | }, .{ |
| | 29215 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29216 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, |
| | 29217 | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| | 29218 | .patterns = &.{ |
| | 29219 | .{ .src = .{ .mem, .none } }, |
| | 29220 | .{ .src = .{ .to_gpr, .none } }, |
| | 29221 | }, |
| | 29222 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29223 | .clobbers = .{ .eflags = true }, |
| | 29224 | .each = .{ .once = &.{ |
| | 29225 | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 29226 | .{ ._, ._, .@"and", .dst0q, .src0q, ._, ._ }, |
| | 29227 | } }, |
| | 29228 | }, .{ |
| | 29229 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29230 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 29231 | .dst_constraints = .{.{ .unsigned_int = .qword }}, |
| | 29232 | .patterns = &.{ |
| | 29233 | .{ .src = .{ .to_mem, .none } }, |
| | 29234 | }, |
| | 29235 | .dst_temps = .{.{ .rc = .general_purpose }}, |
| | 29236 | .clobbers = .{ .eflags = true }, |
| | 29237 | .each = .{ .once = &.{ |
| | 29238 | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 29239 | .{ ._, ._, .@"and", .dst0q, .mem(.src0q), ._, ._ }, |
| | 29240 | } }, |
| | 29241 | }, .{ |
| | 29242 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29243 | .src_constraints = .{ .any_int, .any }, |
| | 29244 | .dst_constraints = .{.{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }}, |
| | 29245 | .patterns = &.{ |
| | 29246 | .{ .src = .{ .to_mem, .none } }, |
| | 29247 | }, |
| | 29248 | .extra_temps = .{ |
| | 29249 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 29250 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 29251 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 29252 | .unused, |
| | 29253 | .unused, |
| | 29254 | .unused, |
| | 29255 | .unused, |
| | 29256 | .unused, |
| | 29257 | .unused, |
| | 29258 | }, |
| | 29259 | .dst_temps = .{.mem}, |
| | 29260 | .each = .{ .once = &.{ |
| | 29261 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 29262 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 29263 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ }, |
| | 29264 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 29265 | } }, |
| | 29266 | }, .{ |
| | 29267 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29268 | .src_constraints = .{ .any_signed_int, .any }, |
| | 29269 | .dst_constraints = .{.{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| | 29270 | .patterns = &.{ |
| | 29271 | .{ .src = .{ .to_mem, .none } }, |
| | 29272 | }, |
| | 29273 | .extra_temps = .{ |
| | 29274 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 29275 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 29276 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 29277 | .unused, |
| | 29278 | .unused, |
| | 29279 | .unused, |
| | 29280 | .unused, |
| | 29281 | .unused, |
| | 29282 | .unused, |
| | 29283 | }, |
| | 29284 | .dst_temps = .{.mem}, |
| | 29285 | .clobbers = .{ .eflags = true }, |
| | 29286 | .each = .{ .once = &.{ |
| | 29287 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 29288 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 29289 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 29290 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 29291 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| | 29292 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| | 29293 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 29294 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| | 29295 | } }, |
| | 29296 | }, .{ |
| | 29297 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29298 | .src_constraints = .{ .any_signed_int, .any }, |
| | 29299 | .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| | 29300 | .patterns = &.{ |
| | 29301 | .{ .src = .{ .to_mem, .none } }, |
| | 29302 | }, |
| | 29303 | .extra_temps = .{ |
| | 29304 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 29305 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 29306 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 29307 | .unused, |
| | 29308 | .unused, |
| | 29309 | .unused, |
| | 29310 | .unused, |
| | 29311 | .unused, |
| | 29312 | .unused, |
| | 29313 | }, |
| | 29314 | .dst_temps = .{.mem}, |
| | 29315 | .clobbers = .{ .eflags = true }, |
| | 29316 | .each = .{ .once = &.{ |
| | 29317 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 29318 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 29319 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 29320 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 29321 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| | 29322 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 29323 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 29324 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| | 29325 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 29326 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| | 29327 | } }, |
| | 29328 | }, .{ |
| | 29329 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29330 | .src_constraints = .{ .any_signed_int, .any }, |
| | 29331 | .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }}, |
| | 29332 | .patterns = &.{ |
| | 29333 | .{ .src = .{ .to_mem, .none } }, |
| | 29334 | }, |
| | 29335 | .extra_temps = .{ |
| | 29336 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 29337 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 29338 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 29339 | .unused, |
| | 29340 | .unused, |
| | 29341 | .unused, |
| | 29342 | .unused, |
| | 29343 | .unused, |
| | 29344 | .unused, |
| | 29345 | }, |
| | 29346 | .dst_temps = .{.mem}, |
| | 29347 | .clobbers = .{ .eflags = true }, |
| | 29348 | .each = .{ .once = &.{ |
| | 29349 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 29350 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 29351 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 29352 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 29353 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 29354 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 29355 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 29356 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| | 29357 | } }, |
| | 29358 | }, .{ |
| | 29359 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29360 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 29361 | .dst_constraints = .{.{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| | 29362 | .patterns = &.{ |
| | 29363 | .{ .src = .{ .to_mem, .none } }, |
| | 29364 | }, |
| | 29365 | .extra_temps = .{ |
| | 29366 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 29367 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 29368 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 29369 | .unused, |
| | 29370 | .unused, |
| | 29371 | .unused, |
| | 29372 | .unused, |
| | 29373 | .unused, |
| | 29374 | .unused, |
| | 29375 | }, |
| | 29376 | .dst_temps = .{.mem}, |
| | 29377 | .each = .{ .once = &.{ |
| | 29378 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 29379 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 29380 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 29381 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 29382 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| | 29383 | } }, |
| | 29384 | }, .{ |
| | 29385 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 29386 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 29387 | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| | 29388 | .patterns = &.{ |
| | 29389 | .{ .src = .{ .to_mem, .none } }, |
| | 29390 | }, |
| | 29391 | .extra_temps = .{ |
| | 29392 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 29393 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 29394 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 29395 | .unused, |
| | 29396 | .unused, |
| | 29397 | .unused, |
| | 29398 | .unused, |
| | 29399 | .unused, |
| | 29400 | .unused, |
| | 29401 | }, |
| | 29402 | .dst_temps = .{.mem}, |
| | 29403 | .clobbers = .{ .eflags = true }, |
| | 29404 | .each = .{ .once = &.{ |
| | 29405 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 29406 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 29407 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 29408 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 29409 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| | 29410 | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -16), .tmp2q, ._ }, |
| | 29411 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp2q, ._, ._ }, |
| | 29412 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| | 29413 | } }, |
| | 29414 | }, .{ |
| | 29415 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 29416 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 29417 | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| | 29418 | .patterns = &.{ |
| | 29419 | .{ .src = .{ .to_mem, .none } }, |
| | 29420 | }, |
| | 29421 | .extra_temps = .{ |
| | 29422 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 29423 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 29424 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 29425 | .unused, |
| | 29426 | .unused, |
| | 29427 | .unused, |
| | 29428 | .unused, |
| | 29429 | .unused, |
| | 29430 | .unused, |
| | 29431 | }, |
| | 29432 | .dst_temps = .{.mem}, |
| | 29433 | .clobbers = .{ .eflags = true }, |
| | 29434 | .each = .{ .once = &.{ |
| | 29435 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 29436 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 29437 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 29438 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 29439 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| | 29440 | .{ ._, ._, .bzhi, .tmp2q, .memad(.src0q, .add_size, -8), .tmp2q, ._ }, |
| | 29441 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp2q, ._, ._ }, |
| | 29442 | } }, |
| | 29443 | }, .{ |
| | 29444 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29445 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 29446 | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| | 29447 | .patterns = &.{ |
| | 29448 | .{ .src = .{ .to_mem, .none } }, |
| | 29449 | }, |
| | 29450 | .extra_temps = .{ |
| | 29451 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 29452 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 29453 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 29454 | .unused, |
| | 29455 | .unused, |
| | 29456 | .unused, |
| | 29457 | .unused, |
| | 29458 | .unused, |
| | 29459 | .unused, |
| | 29460 | }, |
| | 29461 | .dst_temps = .{.mem}, |
| | 29462 | .clobbers = .{ .eflags = true }, |
| | 29463 | .each = .{ .once = &.{ |
| | 29464 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 29465 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 29466 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 29467 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 29468 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 29469 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| | 29470 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, |
| | 29471 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| | 29472 | } }, |
| | 29473 | }, .{ |
| | 29474 | .required_features = .{ .@"64bit", null, null, null }, |
| | 29475 | .src_constraints = .{ .any_unsigned_int, .any }, |
| | 29476 | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| | 29477 | .patterns = &.{ |
| | 29478 | .{ .src = .{ .to_mem, .none } }, |
| | 29479 | }, |
| | 29480 | .extra_temps = .{ |
| | 29481 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 29482 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 29483 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 29484 | .unused, |
| | 29485 | .unused, |
| | 29486 | .unused, |
| | 29487 | .unused, |
| | 29488 | .unused, |
| | 29489 | .unused, |
| | 29490 | }, |
| | 29491 | .dst_temps = .{.mem}, |
| | 29492 | .clobbers = .{ .eflags = true }, |
| | 29493 | .each = .{ .once = &.{ |
| | 29494 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| | 29495 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| | 29496 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 29497 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 29498 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 29499 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 29500 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, |
| | 29501 | } }, |
| | 29502 | }, .{ |
| | 29503 | .required_features = .{ .avx, null, null, null }, |
| | 29504 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 29505 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }}, |
| | 29506 | .patterns = &.{ |
| | 29507 | .{ .src = .{ .to_sse, .none } }, |
| | 29508 | }, |
| | 29509 | .extra_temps = .{ |
| | 29510 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 29511 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 29512 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 29513 | .unused, |
| | 29514 | .unused, |
| | 29515 | .unused, |
| | 29516 | .unused, |
| | 29517 | .unused, |
| | 29518 | .unused, |
| | 29519 | }, |
| | 29520 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 29521 | .each = .{ .once = &.{ |
| | 29522 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 29523 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 29524 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 29525 | .{ ._, .vp_b, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| | 29526 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| | 29527 | } }, |
| | 29528 | }, .{ |
| | 29529 | .required_features = .{ .avx, null, null, null }, |
| | 29530 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 29531 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| | 29532 | .patterns = &.{ |
| | 29533 | .{ .src = .{ .to_sse, .none } }, |
| | 29534 | }, |
| | 29535 | .extra_temps = .{ |
| | 29536 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 29537 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 29538 | .unused, |
| | 29539 | .unused, |
| | 29540 | .unused, |
| | 29541 | .unused, |
| | 29542 | .unused, |
| | 29543 | .unused, |
| | 29544 | .unused, |
| | 29545 | }, |
| | 29546 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 29547 | .each = .{ .once = &.{ |
| | 29548 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 29549 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 29550 | } }, |
| | 29551 | }, .{ |
| | 29552 | .required_features = .{ .sse2, null, null, null }, |
| | 29553 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 29554 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }}, |
| | 29555 | .patterns = &.{ |
| | 29556 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 29557 | }, |
| | 29558 | .extra_temps = .{ |
| | 29559 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 29560 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 29561 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 29562 | .unused, |
| | 29563 | .unused, |
| | 29564 | .unused, |
| | 29565 | .unused, |
| | 29566 | .unused, |
| | 29567 | .unused, |
| | 29568 | }, |
| | 29569 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29570 | .each = .{ .once = &.{ |
| | 29571 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 29572 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 29573 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 29574 | .{ ._, .p_b, .add, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 29575 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 29576 | } }, |
| | 29577 | }, .{ |
| | 29578 | .required_features = .{ .sse2, null, null, null }, |
| | 29579 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 29580 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| | 29581 | .patterns = &.{ |
| | 29582 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 29583 | }, |
| | 29584 | .extra_temps = .{ |
| | 29585 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 29586 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 29587 | .unused, |
| | 29588 | .unused, |
| | 29589 | .unused, |
| | 29590 | .unused, |
| | 29591 | .unused, |
| | 29592 | .unused, |
| | 29593 | .unused, |
| | 29594 | }, |
| | 29595 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29596 | .each = .{ .once = &.{ |
| | 29597 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 29598 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 29599 | } }, |
| | 29600 | }, .{ |
| | 29601 | .required_features = .{ .sse, null, null, null }, |
| | 29602 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 29603 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| | 29604 | .patterns = &.{ |
| | 29605 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 29606 | }, |
| | 29607 | .extra_temps = .{ |
| | 29608 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 29609 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 29610 | .unused, |
| | 29611 | .unused, |
| | 29612 | .unused, |
| | 29613 | .unused, |
| | 29614 | .unused, |
| | 29615 | .unused, |
| | 29616 | .unused, |
| | 29617 | }, |
| | 29618 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 29619 | .each = .{ .once = &.{ |
| | 29620 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 29621 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 29622 | } }, |
| | 29623 | }, .{ |
| | 29624 | .required_features = .{ .avx2, null, null, null }, |
| | 29625 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, |
| | 29626 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .byte } }}, |
| | 29627 | .patterns = &.{ |
| | 29628 | .{ .src = .{ .to_sse, .none } }, |
| | 29629 | }, |
| | 29630 | .extra_temps = .{ |
| | 29631 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 29632 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 29633 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 29634 | .unused, |
| | 29635 | .unused, |
| | 29636 | .unused, |
| | 29637 | .unused, |
| | 29638 | .unused, |
| | 29639 | .unused, |
| | 29640 | }, |
| | 29641 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 29642 | .each = .{ .once = &.{ |
| | 29643 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 29644 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 29645 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 29646 | .{ ._, .vp_b, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 29647 | .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 29648 | } }, |
| | 29649 | }, .{ |
| | 29650 | .required_features = .{ .avx2, null, null, null }, |
| | 29651 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, |
| | 29652 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } }}, |
| | 29653 | .patterns = &.{ |
| | 29654 | .{ .src = .{ .to_sse, .none } }, |
| | 29655 | }, |
| | 29656 | .extra_temps = .{ |
| | 29657 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 29658 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 29659 | .unused, |
| | 29660 | .unused, |
| | 29661 | .unused, |
| | 29662 | .unused, |
| | 29663 | .unused, |
| | 29664 | .unused, |
| | 29665 | .unused, |
| | 29666 | }, |
| | 29667 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 29668 | .each = .{ .once = &.{ |
| | 29669 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 29670 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 29671 | } }, |
| | 29672 | }, .{ |
| | 29673 | .required_features = .{ .avx2, null, null, null }, |
| | 29674 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }, .any }, |
| | 29675 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } }}, |
| | 29676 | .patterns = &.{ |
| | 29677 | .{ .src = .{ .to_mem, .none } }, |
| | 29678 | }, |
| | 29679 | .extra_temps = .{ |
| | 29680 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29681 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| | 29682 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| | 29683 | .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } }, |
| | 29684 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 29685 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 29686 | .unused, |
| | 29687 | .unused, |
| | 29688 | .unused, |
| | 29689 | }, |
| | 29690 | .dst_temps = .{.mem}, |
| | 29691 | .clobbers = .{ .eflags = true }, |
| | 29692 | .each = .{ .once = &.{ |
| | 29693 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| | 29694 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| | 29695 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 29696 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| | 29697 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29698 | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| | 29699 | .{ ._, .vp_b, .add, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| | 29700 | .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| | 29701 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ }, |
| | 29702 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 29703 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 29704 | } }, |
| | 29705 | }, .{ |
| | 29706 | .required_features = .{ .avx2, null, null, null }, |
| | 29707 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }, .any }, |
| | 29708 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } }}, |
| | 29709 | .patterns = &.{ |
| | 29710 | .{ .src = .{ .to_mem, .none } }, |
| | 29711 | }, |
| | 29712 | .extra_temps = .{ |
| | 29713 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29714 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| | 29715 | .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, |
| | 29716 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 29717 | .unused, |
| | 29718 | .unused, |
| | 29719 | .unused, |
| | 29720 | .unused, |
| | 29721 | .unused, |
| | 29722 | }, |
| | 29723 | .dst_temps = .{.mem}, |
| | 29724 | .clobbers = .{ .eflags = true }, |
| | 29725 | .each = .{ .once = &.{ |
| | 29726 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 29727 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| | 29728 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29729 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| | 29730 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| | 29731 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 29732 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 29733 | } }, |
| | 29734 | }, .{ |
| | 29735 | .required_features = .{ .avx, null, null, null }, |
| | 29736 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 29737 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }}, |
| | 29738 | .patterns = &.{ |
| | 29739 | .{ .src = .{ .to_mem, .none } }, |
| | 29740 | }, |
| | 29741 | .extra_temps = .{ |
| | 29742 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29743 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| | 29744 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| | 29745 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| | 29746 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 29747 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 29748 | .unused, |
| | 29749 | .unused, |
| | 29750 | .unused, |
| | 29751 | }, |
| | 29752 | .dst_temps = .{.mem}, |
| | 29753 | .clobbers = .{ .eflags = true }, |
| | 29754 | .each = .{ .once = &.{ |
| | 29755 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| | 29756 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 29757 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 29758 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 29759 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29760 | .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| | 29761 | .{ ._, .vp_b, .add, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| | 29762 | .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| | 29763 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 29764 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 29765 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 29766 | } }, |
| | 29767 | }, .{ |
| | 29768 | .required_features = .{ .avx, null, null, null }, |
| | 29769 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 29770 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| | 29771 | .patterns = &.{ |
| | 29772 | .{ .src = .{ .to_mem, .none } }, |
| | 29773 | }, |
| | 29774 | .extra_temps = .{ |
| | 29775 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29776 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| | 29777 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| | 29778 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 29779 | .unused, |
| | 29780 | .unused, |
| | 29781 | .unused, |
| | 29782 | .unused, |
| | 29783 | .unused, |
| | 29784 | }, |
| | 29785 | .dst_temps = .{.mem}, |
| | 29786 | .clobbers = .{ .eflags = true }, |
| | 29787 | .each = .{ .once = &.{ |
| | 29788 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 29789 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 29790 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29791 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| | 29792 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 29793 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 29794 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 29795 | } }, |
| | 29796 | }, .{ |
| | 29797 | .required_features = .{ .sse2, null, null, null }, |
| | 29798 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 29799 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }}, |
| | 29800 | .patterns = &.{ |
| | 29801 | .{ .src = .{ .to_mem, .none } }, |
| | 29802 | }, |
| | 29803 | .extra_temps = .{ |
| | 29804 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29805 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| | 29806 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| | 29807 | .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } }, |
| | 29808 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 29809 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 29810 | .unused, |
| | 29811 | .unused, |
| | 29812 | .unused, |
| | 29813 | }, |
| | 29814 | .dst_temps = .{.mem}, |
| | 29815 | .clobbers = .{ .eflags = true }, |
| | 29816 | .each = .{ .once = &.{ |
| | 29817 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| | 29818 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 29819 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 29820 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 29821 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29822 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ }, |
| | 29823 | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 29824 | .{ ._, .p_b, .add, .tmp3x, .tmp2x, ._, ._ }, |
| | 29825 | .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ }, |
| | 29826 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 29827 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 29828 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 29829 | } }, |
| | 29830 | }, .{ |
| | 29831 | .required_features = .{ .sse2, null, null, null }, |
| | 29832 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 29833 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| | 29834 | .patterns = &.{ |
| | 29835 | .{ .src = .{ .to_mem, .none } }, |
| | 29836 | }, |
| | 29837 | .extra_temps = .{ |
| | 29838 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29839 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| | 29840 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| | 29841 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 29842 | .unused, |
| | 29843 | .unused, |
| | 29844 | .unused, |
| | 29845 | .unused, |
| | 29846 | .unused, |
| | 29847 | }, |
| | 29848 | .dst_temps = .{.mem}, |
| | 29849 | .clobbers = .{ .eflags = true }, |
| | 29850 | .each = .{ .once = &.{ |
| | 29851 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 29852 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 29853 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29854 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| | 29855 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 29856 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 29857 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 29858 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 29859 | } }, |
| | 29860 | }, .{ |
| | 29861 | .required_features = .{ .sse, null, null, null }, |
| | 29862 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, .any }, |
| | 29863 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }}, |
| | 29864 | .patterns = &.{ |
| | 29865 | .{ .src = .{ .to_mem, .none } }, |
| | 29866 | }, |
| | 29867 | .extra_temps = .{ |
| | 29868 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29869 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| | 29870 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| | 29871 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 29872 | .unused, |
| | 29873 | .unused, |
| | 29874 | .unused, |
| | 29875 | .unused, |
| | 29876 | .unused, |
| | 29877 | }, |
| | 29878 | .dst_temps = .{.mem}, |
| | 29879 | .clobbers = .{ .eflags = true }, |
| | 29880 | .each = .{ .once = &.{ |
| | 29881 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 29882 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 29883 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29884 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| | 29885 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 29886 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 29887 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 29888 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 29889 | } }, |
| | 29890 | }, .{ |
| | 29891 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 29892 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 29893 | .dst_constraints = .{.{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }}, |
| | 29894 | .patterns = &.{ |
| | 29895 | .{ .src = .{ .to_mem, .none } }, |
| | 29896 | }, |
| | 29897 | .extra_temps = .{ |
| | 29898 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29899 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 29900 | .unused, |
| | 29901 | .unused, |
| | 29902 | .unused, |
| | 29903 | .unused, |
| | 29904 | .unused, |
| | 29905 | .unused, |
| | 29906 | .unused, |
| | 29907 | }, |
| | 29908 | .dst_temps = .{.mem}, |
| | 29909 | .clobbers = .{ .eflags = true }, |
| | 29910 | .each = .{ .once = &.{ |
| | 29911 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29912 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 29913 | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, |
| | 29914 | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, |
| | 29915 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 29916 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 29917 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 29918 | } }, |
| | 29919 | }, .{ |
| | 29920 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 29921 | .dst_constraints = .{.{ .multiple_scalar_exact_signed_int = .{ .of = .byte, .is = 1 } }}, |
| | 29922 | .patterns = &.{ |
| | 29923 | .{ .src = .{ .to_mem, .none } }, |
| | 29924 | }, |
| | 29925 | .extra_temps = .{ |
| | 29926 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29927 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 29928 | .unused, |
| | 29929 | .unused, |
| | 29930 | .unused, |
| | 29931 | .unused, |
| | 29932 | .unused, |
| | 29933 | .unused, |
| | 29934 | .unused, |
| | 29935 | }, |
| | 29936 | .dst_temps = .{.mem}, |
| | 29937 | .clobbers = .{ .eflags = true }, |
| | 29938 | .each = .{ .once = &.{ |
| | 29939 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29940 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 29941 | .{ ._, ._, .@"and", .tmp1b, .si(1), ._, ._ }, |
| | 29942 | .{ ._, ._, .neg, .tmp1b, ._, ._, ._ }, |
| | 29943 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 29944 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 29945 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 29946 | } }, |
| | 29947 | }, .{ |
| | 29948 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 29949 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 29950 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| | 29951 | .patterns = &.{ |
| | 29952 | .{ .src = .{ .to_mem, .none } }, |
| | 29953 | }, |
| | 29954 | .extra_temps = .{ |
| | 29955 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29956 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 29957 | .unused, |
| | 29958 | .unused, |
| | 29959 | .unused, |
| | 29960 | .unused, |
| | 29961 | .unused, |
| | 29962 | .unused, |
| | 29963 | .unused, |
| | 29964 | }, |
| | 29965 | .dst_temps = .{.mem}, |
| | 29966 | .clobbers = .{ .eflags = true }, |
| | 29967 | .each = .{ .once = &.{ |
| | 29968 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29969 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 29970 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 29971 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 29972 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 29973 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 29974 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 29975 | } }, |
| | 29976 | }, .{ |
| | 29977 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 29978 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| | 29979 | .patterns = &.{ |
| | 29980 | .{ .src = .{ .to_mem, .none } }, |
| | 29981 | }, |
| | 29982 | .extra_temps = .{ |
| | 29983 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 29984 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 29985 | .unused, |
| | 29986 | .unused, |
| | 29987 | .unused, |
| | 29988 | .unused, |
| | 29989 | .unused, |
| | 29990 | .unused, |
| | 29991 | .unused, |
| | 29992 | }, |
| | 29993 | .dst_temps = .{.mem}, |
| | 29994 | .clobbers = .{ .eflags = true }, |
| | 29995 | .each = .{ .once = &.{ |
| | 29996 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 29997 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 29998 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 29999 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30000 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30001 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30002 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30003 | } }, |
| | 30004 | }, .{ |
| | 30005 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30006 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 30007 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30008 | .patterns = &.{ |
| | 30009 | .{ .src = .{ .to_mem, .none } }, |
| | 30010 | }, |
| | 30011 | .extra_temps = .{ |
| | 30012 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30013 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30014 | .unused, |
| | 30015 | .unused, |
| | 30016 | .unused, |
| | 30017 | .unused, |
| | 30018 | .unused, |
| | 30019 | .unused, |
| | 30020 | .unused, |
| | 30021 | }, |
| | 30022 | .dst_temps = .{.mem}, |
| | 30023 | .clobbers = .{ .eflags = true }, |
| | 30024 | .each = .{ .once = &.{ |
| | 30025 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30026 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30027 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 30028 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30029 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30030 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30031 | } }, |
| | 30032 | }, .{ |
| | 30033 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any }, |
| | 30034 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30035 | .patterns = &.{ |
| | 30036 | .{ .src = .{ .to_mem, .none } }, |
| | 30037 | }, |
| | 30038 | .extra_temps = .{ |
| | 30039 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30040 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30041 | .unused, |
| | 30042 | .unused, |
| | 30043 | .unused, |
| | 30044 | .unused, |
| | 30045 | .unused, |
| | 30046 | .unused, |
| | 30047 | .unused, |
| | 30048 | }, |
| | 30049 | .dst_temps = .{.mem}, |
| | 30050 | .clobbers = .{ .eflags = true }, |
| | 30051 | .each = .{ .once = &.{ |
| | 30052 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30053 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30054 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 30055 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30056 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30057 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30058 | } }, |
| | 30059 | }, .{ |
| | 30060 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30061 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| | 30062 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| | 30063 | .patterns = &.{ |
| | 30064 | .{ .src = .{ .to_mem, .none } }, |
| | 30065 | }, |
| | 30066 | .extra_temps = .{ |
| | 30067 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30068 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30069 | .unused, |
| | 30070 | .unused, |
| | 30071 | .unused, |
| | 30072 | .unused, |
| | 30073 | .unused, |
| | 30074 | .unused, |
| | 30075 | .unused, |
| | 30076 | }, |
| | 30077 | .dst_temps = .{.mem}, |
| | 30078 | .clobbers = .{ .eflags = true }, |
| | 30079 | .each = .{ .once = &.{ |
| | 30080 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30081 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30082 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30083 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30084 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30085 | } }, |
| | 30086 | }, .{ |
| | 30087 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| | 30088 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| | 30089 | .patterns = &.{ |
| | 30090 | .{ .src = .{ .to_mem, .none } }, |
| | 30091 | }, |
| | 30092 | .extra_temps = .{ |
| | 30093 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30094 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30095 | .unused, |
| | 30096 | .unused, |
| | 30097 | .unused, |
| | 30098 | .unused, |
| | 30099 | .unused, |
| | 30100 | .unused, |
| | 30101 | .unused, |
| | 30102 | }, |
| | 30103 | .dst_temps = .{.mem}, |
| | 30104 | .clobbers = .{ .eflags = true }, |
| | 30105 | .each = .{ .once = &.{ |
| | 30106 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30107 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30108 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30109 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30110 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30111 | } }, |
| | 30112 | }, .{ |
| | 30113 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30114 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| | 30115 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| | 30116 | .patterns = &.{ |
| | 30117 | .{ .src = .{ .to_mem, .none } }, |
| | 30118 | }, |
| | 30119 | .extra_temps = .{ |
| | 30120 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30121 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 30122 | .unused, |
| | 30123 | .unused, |
| | 30124 | .unused, |
| | 30125 | .unused, |
| | 30126 | .unused, |
| | 30127 | .unused, |
| | 30128 | .unused, |
| | 30129 | }, |
| | 30130 | .dst_temps = .{.mem}, |
| | 30131 | .clobbers = .{ .eflags = true }, |
| | 30132 | .each = .{ .once = &.{ |
| | 30133 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30134 | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30135 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30136 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30137 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30138 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30139 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30140 | } }, |
| | 30141 | }, .{ |
| | 30142 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| | 30143 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| | 30144 | .patterns = &.{ |
| | 30145 | .{ .src = .{ .to_mem, .none } }, |
| | 30146 | }, |
| | 30147 | .extra_temps = .{ |
| | 30148 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30149 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 30150 | .unused, |
| | 30151 | .unused, |
| | 30152 | .unused, |
| | 30153 | .unused, |
| | 30154 | .unused, |
| | 30155 | .unused, |
| | 30156 | .unused, |
| | 30157 | }, |
| | 30158 | .dst_temps = .{.mem}, |
| | 30159 | .clobbers = .{ .eflags = true }, |
| | 30160 | .each = .{ .once = &.{ |
| | 30161 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30162 | .{ .@"0:", ._, .movsx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30163 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30164 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30165 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30166 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30167 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30168 | } }, |
| | 30169 | }, .{ |
| | 30170 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30171 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| | 30172 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30173 | .patterns = &.{ |
| | 30174 | .{ .src = .{ .to_mem, .none } }, |
| | 30175 | }, |
| | 30176 | .extra_temps = .{ |
| | 30177 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30178 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30179 | .unused, |
| | 30180 | .unused, |
| | 30181 | .unused, |
| | 30182 | .unused, |
| | 30183 | .unused, |
| | 30184 | .unused, |
| | 30185 | .unused, |
| | 30186 | }, |
| | 30187 | .dst_temps = .{.mem}, |
| | 30188 | .clobbers = .{ .eflags = true }, |
| | 30189 | .each = .{ .once = &.{ |
| | 30190 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30191 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30192 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 30193 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30194 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30195 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30196 | } }, |
| | 30197 | }, .{ |
| | 30198 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| | 30199 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30200 | .patterns = &.{ |
| | 30201 | .{ .src = .{ .to_mem, .none } }, |
| | 30202 | }, |
| | 30203 | .extra_temps = .{ |
| | 30204 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30205 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30206 | .unused, |
| | 30207 | .unused, |
| | 30208 | .unused, |
| | 30209 | .unused, |
| | 30210 | .unused, |
| | 30211 | .unused, |
| | 30212 | .unused, |
| | 30213 | }, |
| | 30214 | .dst_temps = .{.mem}, |
| | 30215 | .clobbers = .{ .eflags = true }, |
| | 30216 | .each = .{ .once = &.{ |
| | 30217 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30218 | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0b, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30219 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 30220 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30221 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30222 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30223 | } }, |
| | 30224 | }, .{ |
| | 30225 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30226 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 30227 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| | 30228 | .patterns = &.{ |
| | 30229 | .{ .src = .{ .to_mem, .none } }, |
| | 30230 | }, |
| | 30231 | .extra_temps = .{ |
| | 30232 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30233 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30234 | .unused, |
| | 30235 | .unused, |
| | 30236 | .unused, |
| | 30237 | .unused, |
| | 30238 | .unused, |
| | 30239 | .unused, |
| | 30240 | .unused, |
| | 30241 | }, |
| | 30242 | .dst_temps = .{.mem}, |
| | 30243 | .clobbers = .{ .eflags = true }, |
| | 30244 | .each = .{ .once = &.{ |
| | 30245 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30246 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30247 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30248 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30249 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30250 | } }, |
| | 30251 | }, .{ |
| | 30252 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 30253 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| | 30254 | .patterns = &.{ |
| | 30255 | .{ .src = .{ .to_mem, .none } }, |
| | 30256 | }, |
| | 30257 | .extra_temps = .{ |
| | 30258 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30259 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30260 | .unused, |
| | 30261 | .unused, |
| | 30262 | .unused, |
| | 30263 | .unused, |
| | 30264 | .unused, |
| | 30265 | .unused, |
| | 30266 | .unused, |
| | 30267 | }, |
| | 30268 | .dst_temps = .{.mem}, |
| | 30269 | .clobbers = .{ .eflags = true }, |
| | 30270 | .each = .{ .once = &.{ |
| | 30271 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30272 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30273 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30274 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30275 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30276 | } }, |
| | 30277 | }, .{ |
| | 30278 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30279 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 30280 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| | 30281 | .patterns = &.{ |
| | 30282 | .{ .src = .{ .to_mem, .none } }, |
| | 30283 | }, |
| | 30284 | .extra_temps = .{ |
| | 30285 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30286 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 30287 | .unused, |
| | 30288 | .unused, |
| | 30289 | .unused, |
| | 30290 | .unused, |
| | 30291 | .unused, |
| | 30292 | .unused, |
| | 30293 | .unused, |
| | 30294 | }, |
| | 30295 | .dst_temps = .{.mem}, |
| | 30296 | .clobbers = .{ .eflags = true }, |
| | 30297 | .each = .{ .once = &.{ |
| | 30298 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30299 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30300 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30301 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30302 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30303 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30304 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30305 | } }, |
| | 30306 | }, .{ |
| | 30307 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 30308 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| | 30309 | .patterns = &.{ |
| | 30310 | .{ .src = .{ .to_mem, .none } }, |
| | 30311 | }, |
| | 30312 | .extra_temps = .{ |
| | 30313 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30314 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 30315 | .unused, |
| | 30316 | .unused, |
| | 30317 | .unused, |
| | 30318 | .unused, |
| | 30319 | .unused, |
| | 30320 | .unused, |
| | 30321 | .unused, |
| | 30322 | }, |
| | 30323 | .dst_temps = .{.mem}, |
| | 30324 | .clobbers = .{ .eflags = true }, |
| | 30325 | .each = .{ .once = &.{ |
| | 30326 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30327 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30328 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30329 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30330 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30331 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30332 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30333 | } }, |
| | 30334 | }, .{ |
| | 30335 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| | 30336 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 30337 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30338 | .patterns = &.{ |
| | 30339 | .{ .src = .{ .to_mem, .none } }, |
| | 30340 | }, |
| | 30341 | .extra_temps = .{ |
| | 30342 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30343 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30344 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30345 | .unused, |
| | 30346 | .unused, |
| | 30347 | .unused, |
| | 30348 | .unused, |
| | 30349 | .unused, |
| | 30350 | .unused, |
| | 30351 | }, |
| | 30352 | .dst_temps = .{.mem}, |
| | 30353 | .clobbers = .{ .eflags = true }, |
| | 30354 | .each = .{ .once = &.{ |
| | 30355 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30356 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 30357 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 30358 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 30359 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30360 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30361 | } }, |
| | 30362 | }, .{ |
| | 30363 | .required_features = .{ .bmi2, null, null, null }, |
| | 30364 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 30365 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30366 | .patterns = &.{ |
| | 30367 | .{ .src = .{ .to_mem, .none } }, |
| | 30368 | }, |
| | 30369 | .extra_temps = .{ |
| | 30370 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30371 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30372 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30373 | .unused, |
| | 30374 | .unused, |
| | 30375 | .unused, |
| | 30376 | .unused, |
| | 30377 | .unused, |
| | 30378 | .unused, |
| | 30379 | }, |
| | 30380 | .dst_temps = .{.mem}, |
| | 30381 | .clobbers = .{ .eflags = true }, |
| | 30382 | .each = .{ .once = &.{ |
| | 30383 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30384 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 30385 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 30386 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 30387 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30388 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30389 | } }, |
| | 30390 | }, .{ |
| | 30391 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30392 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 30393 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30394 | .patterns = &.{ |
| | 30395 | .{ .src = .{ .to_mem, .none } }, |
| | 30396 | }, |
| | 30397 | .extra_temps = .{ |
| | 30398 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30399 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30400 | .unused, |
| | 30401 | .unused, |
| | 30402 | .unused, |
| | 30403 | .unused, |
| | 30404 | .unused, |
| | 30405 | .unused, |
| | 30406 | .unused, |
| | 30407 | }, |
| | 30408 | .dst_temps = .{.mem}, |
| | 30409 | .clobbers = .{ .eflags = true }, |
| | 30410 | .each = .{ .once = &.{ |
| | 30411 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30412 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30413 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 30414 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30415 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30416 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30417 | } }, |
| | 30418 | }, .{ |
| | 30419 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 30420 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30421 | .patterns = &.{ |
| | 30422 | .{ .src = .{ .to_mem, .none } }, |
| | 30423 | }, |
| | 30424 | .extra_temps = .{ |
| | 30425 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30426 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30427 | .unused, |
| | 30428 | .unused, |
| | 30429 | .unused, |
| | 30430 | .unused, |
| | 30431 | .unused, |
| | 30432 | .unused, |
| | 30433 | .unused, |
| | 30434 | }, |
| | 30435 | .dst_temps = .{.mem}, |
| | 30436 | .clobbers = .{ .eflags = true }, |
| | 30437 | .each = .{ .once = &.{ |
| | 30438 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30439 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30440 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 30441 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30442 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30443 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30444 | } }, |
| | 30445 | }, .{ |
| | 30446 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30447 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 30448 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| | 30449 | .patterns = &.{ |
| | 30450 | .{ .src = .{ .to_mem, .none } }, |
| | 30451 | }, |
| | 30452 | .extra_temps = .{ |
| | 30453 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30454 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30455 | .unused, |
| | 30456 | .unused, |
| | 30457 | .unused, |
| | 30458 | .unused, |
| | 30459 | .unused, |
| | 30460 | .unused, |
| | 30461 | .unused, |
| | 30462 | }, |
| | 30463 | .dst_temps = .{.mem}, |
| | 30464 | .clobbers = .{ .eflags = true }, |
| | 30465 | .each = .{ .once = &.{ |
| | 30466 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30467 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30468 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30469 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30470 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30471 | } }, |
| | 30472 | }, .{ |
| | 30473 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 30474 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| | 30475 | .patterns = &.{ |
| | 30476 | .{ .src = .{ .to_mem, .none } }, |
| | 30477 | }, |
| | 30478 | .extra_temps = .{ |
| | 30479 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30480 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30481 | .unused, |
| | 30482 | .unused, |
| | 30483 | .unused, |
| | 30484 | .unused, |
| | 30485 | .unused, |
| | 30486 | .unused, |
| | 30487 | .unused, |
| | 30488 | }, |
| | 30489 | .dst_temps = .{.mem}, |
| | 30490 | .clobbers = .{ .eflags = true }, |
| | 30491 | .each = .{ .once = &.{ |
| | 30492 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30493 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30494 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30495 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30496 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30497 | } }, |
| | 30498 | }, .{ |
| | 30499 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30500 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 30501 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| | 30502 | .patterns = &.{ |
| | 30503 | .{ .src = .{ .to_mem, .none } }, |
| | 30504 | }, |
| | 30505 | .extra_temps = .{ |
| | 30506 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30507 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 30508 | .unused, |
| | 30509 | .unused, |
| | 30510 | .unused, |
| | 30511 | .unused, |
| | 30512 | .unused, |
| | 30513 | .unused, |
| | 30514 | .unused, |
| | 30515 | }, |
| | 30516 | .dst_temps = .{.mem}, |
| | 30517 | .clobbers = .{ .eflags = true }, |
| | 30518 | .each = .{ .once = &.{ |
| | 30519 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30520 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30521 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30522 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30523 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30524 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30525 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30526 | } }, |
| | 30527 | }, .{ |
| | 30528 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 30529 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| | 30530 | .patterns = &.{ |
| | 30531 | .{ .src = .{ .to_mem, .none } }, |
| | 30532 | }, |
| | 30533 | .extra_temps = .{ |
| | 30534 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30535 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 30536 | .unused, |
| | 30537 | .unused, |
| | 30538 | .unused, |
| | 30539 | .unused, |
| | 30540 | .unused, |
| | 30541 | .unused, |
| | 30542 | .unused, |
| | 30543 | }, |
| | 30544 | .dst_temps = .{.mem}, |
| | 30545 | .clobbers = .{ .eflags = true }, |
| | 30546 | .each = .{ .once = &.{ |
| | 30547 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30548 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30549 | .{ ._, ._l, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30550 | .{ ._, ._r, .sa, .tmp1b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30551 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30552 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30553 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30554 | } }, |
| | 30555 | }, .{ |
| | 30556 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| | 30557 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 30558 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30559 | .patterns = &.{ |
| | 30560 | .{ .src = .{ .to_mem, .none } }, |
| | 30561 | }, |
| | 30562 | .extra_temps = .{ |
| | 30563 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30564 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30565 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30566 | .unused, |
| | 30567 | .unused, |
| | 30568 | .unused, |
| | 30569 | .unused, |
| | 30570 | .unused, |
| | 30571 | .unused, |
| | 30572 | }, |
| | 30573 | .dst_temps = .{.mem}, |
| | 30574 | .clobbers = .{ .eflags = true }, |
| | 30575 | .each = .{ .once = &.{ |
| | 30576 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30577 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 30578 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 30579 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 30580 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30581 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30582 | } }, |
| | 30583 | }, .{ |
| | 30584 | .required_features = .{ .bmi2, null, null, null }, |
| | 30585 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 30586 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30587 | .patterns = &.{ |
| | 30588 | .{ .src = .{ .to_mem, .none } }, |
| | 30589 | }, |
| | 30590 | .extra_temps = .{ |
| | 30591 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30592 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30593 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30594 | .unused, |
| | 30595 | .unused, |
| | 30596 | .unused, |
| | 30597 | .unused, |
| | 30598 | .unused, |
| | 30599 | .unused, |
| | 30600 | }, |
| | 30601 | .dst_temps = .{.mem}, |
| | 30602 | .clobbers = .{ .eflags = true }, |
| | 30603 | .each = .{ .once = &.{ |
| | 30604 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30605 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 30606 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 30607 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 30608 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30609 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30610 | } }, |
| | 30611 | }, .{ |
| | 30612 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30613 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 30614 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30615 | .patterns = &.{ |
| | 30616 | .{ .src = .{ .to_mem, .none } }, |
| | 30617 | }, |
| | 30618 | .extra_temps = .{ |
| | 30619 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30620 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30621 | .unused, |
| | 30622 | .unused, |
| | 30623 | .unused, |
| | 30624 | .unused, |
| | 30625 | .unused, |
| | 30626 | .unused, |
| | 30627 | .unused, |
| | 30628 | }, |
| | 30629 | .dst_temps = .{.mem}, |
| | 30630 | .clobbers = .{ .eflags = true }, |
| | 30631 | .each = .{ .once = &.{ |
| | 30632 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30633 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30634 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 30635 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30636 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30637 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30638 | } }, |
| | 30639 | }, .{ |
| | 30640 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 30641 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30642 | .patterns = &.{ |
| | 30643 | .{ .src = .{ .to_mem, .none } }, |
| | 30644 | }, |
| | 30645 | .extra_temps = .{ |
| | 30646 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30647 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30648 | .unused, |
| | 30649 | .unused, |
| | 30650 | .unused, |
| | 30651 | .unused, |
| | 30652 | .unused, |
| | 30653 | .unused, |
| | 30654 | .unused, |
| | 30655 | }, |
| | 30656 | .dst_temps = .{.mem}, |
| | 30657 | .clobbers = .{ .eflags = true }, |
| | 30658 | .each = .{ .once = &.{ |
| | 30659 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30660 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 30661 | .{ ._, ._, .@"and", .tmp1b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 30662 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| | 30663 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30664 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30665 | } }, |
| | 30666 | }, .{ |
| | 30667 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30668 | .src_constraints = .{ .any_scalar_int, .any }, |
| | 30669 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| | 30670 | .patterns = &.{ |
| | 30671 | .{ .src = .{ .to_mem, .none } }, |
| | 30672 | }, |
| | 30673 | .extra_temps = .{ |
| | 30674 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30675 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 30676 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30677 | .unused, |
| | 30678 | .unused, |
| | 30679 | .unused, |
| | 30680 | .unused, |
| | 30681 | .unused, |
| | 30682 | .unused, |
| | 30683 | }, |
| | 30684 | .dst_temps = .{.mem}, |
| | 30685 | .clobbers = .{ .eflags = true }, |
| | 30686 | .each = .{ .once = &.{ |
| | 30687 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30688 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 30689 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 30690 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 30691 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 30692 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30693 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30694 | } }, |
| | 30695 | }, .{ |
| | 30696 | .src_constraints = .{ .any_scalar_int, .any }, |
| | 30697 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .byte, .is = 8 } }}, |
| | 30698 | .patterns = &.{ |
| | 30699 | .{ .src = .{ .to_mem, .none } }, |
| | 30700 | }, |
| | 30701 | .extra_temps = .{ |
| | 30702 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30703 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 30704 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30705 | .unused, |
| | 30706 | .unused, |
| | 30707 | .unused, |
| | 30708 | .unused, |
| | 30709 | .unused, |
| | 30710 | .unused, |
| | 30711 | }, |
| | 30712 | .dst_temps = .{.mem}, |
| | 30713 | .clobbers = .{ .eflags = true }, |
| | 30714 | .each = .{ .once = &.{ |
| | 30715 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30716 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 30717 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 30718 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 30719 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 30720 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30721 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30722 | } }, |
| | 30723 | }, .{ |
| | 30724 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30725 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 30726 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| | 30727 | .patterns = &.{ |
| | 30728 | .{ .src = .{ .to_mem, .none } }, |
| | 30729 | }, |
| | 30730 | .extra_temps = .{ |
| | 30731 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30732 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 30733 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 30734 | .unused, |
| | 30735 | .unused, |
| | 30736 | .unused, |
| | 30737 | .unused, |
| | 30738 | .unused, |
| | 30739 | .unused, |
| | 30740 | }, |
| | 30741 | .dst_temps = .{.mem}, |
| | 30742 | .clobbers = .{ .eflags = true }, |
| | 30743 | .each = .{ .once = &.{ |
| | 30744 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30745 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 30746 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 30747 | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30748 | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30749 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 30750 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 30751 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30752 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30753 | } }, |
| | 30754 | }, .{ |
| | 30755 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 30756 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }}, |
| | 30757 | .patterns = &.{ |
| | 30758 | .{ .src = .{ .to_mem, .none } }, |
| | 30759 | }, |
| | 30760 | .extra_temps = .{ |
| | 30761 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30762 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 30763 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 30764 | .unused, |
| | 30765 | .unused, |
| | 30766 | .unused, |
| | 30767 | .unused, |
| | 30768 | .unused, |
| | 30769 | .unused, |
| | 30770 | }, |
| | 30771 | .dst_temps = .{.mem}, |
| | 30772 | .clobbers = .{ .eflags = true }, |
| | 30773 | .each = .{ .once = &.{ |
| | 30774 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30775 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 30776 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 30777 | .{ ._, ._l, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30778 | .{ ._, ._r, .sa, .tmp2b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, |
| | 30779 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 30780 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 30781 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30782 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30783 | } }, |
| | 30784 | }, .{ |
| | 30785 | .required_features = .{ .bmi2, .slow_incdec, null, null }, |
| | 30786 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 30787 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30788 | .patterns = &.{ |
| | 30789 | .{ .src = .{ .to_mem, .none } }, |
| | 30790 | }, |
| | 30791 | .extra_temps = .{ |
| | 30792 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30793 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 30794 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30795 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30796 | .unused, |
| | 30797 | .unused, |
| | 30798 | .unused, |
| | 30799 | .unused, |
| | 30800 | .unused, |
| | 30801 | }, |
| | 30802 | .dst_temps = .{.mem}, |
| | 30803 | .clobbers = .{ .eflags = true }, |
| | 30804 | .each = .{ .once = &.{ |
| | 30805 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30806 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 30807 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 30808 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| | 30809 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| | 30810 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 30811 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30812 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30813 | } }, |
| | 30814 | }, .{ |
| | 30815 | .required_features = .{ .bmi2, null, null, null }, |
| | 30816 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 30817 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30818 | .patterns = &.{ |
| | 30819 | .{ .src = .{ .to_mem, .none } }, |
| | 30820 | }, |
| | 30821 | .extra_temps = .{ |
| | 30822 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30823 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 30824 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30825 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30826 | .unused, |
| | 30827 | .unused, |
| | 30828 | .unused, |
| | 30829 | .unused, |
| | 30830 | .unused, |
| | 30831 | }, |
| | 30832 | .dst_temps = .{.mem}, |
| | 30833 | .clobbers = .{ .eflags = true }, |
| | 30834 | .each = .{ .once = &.{ |
| | 30835 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30836 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 30837 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 30838 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| | 30839 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| | 30840 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 30841 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30842 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30843 | } }, |
| | 30844 | }, .{ |
| | 30845 | .required_features = .{ .slow_incdec, null, null, null }, |
| | 30846 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 30847 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30848 | .patterns = &.{ |
| | 30849 | .{ .src = .{ .to_mem, .none } }, |
| | 30850 | }, |
| | 30851 | .extra_temps = .{ |
| | 30852 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30853 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 30854 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30855 | .unused, |
| | 30856 | .unused, |
| | 30857 | .unused, |
| | 30858 | .unused, |
| | 30859 | .unused, |
| | 30860 | .unused, |
| | 30861 | }, |
| | 30862 | .dst_temps = .{.mem}, |
| | 30863 | .clobbers = .{ .eflags = true }, |
| | 30864 | .each = .{ .once = &.{ |
| | 30865 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30866 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 30867 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 30868 | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 30869 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 30870 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 30871 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 30872 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 30873 | } }, |
| | 30874 | }, .{ |
| | 30875 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 30876 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }}, |
| | 30877 | .patterns = &.{ |
| | 30878 | .{ .src = .{ .to_mem, .none } }, |
| | 30879 | }, |
| | 30880 | .extra_temps = .{ |
| | 30881 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 30882 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 30883 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 30884 | .unused, |
| | 30885 | .unused, |
| | 30886 | .unused, |
| | 30887 | .unused, |
| | 30888 | .unused, |
| | 30889 | .unused, |
| | 30890 | }, |
| | 30891 | .dst_temps = .{.mem}, |
| | 30892 | .clobbers = .{ .eflags = true }, |
| | 30893 | .each = .{ .once = &.{ |
| | 30894 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 30895 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 30896 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 30897 | .{ ._, ._, .@"and", .tmp2b, .sa(.dst0, .add_umax), ._, ._ }, |
| | 30898 | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| | 30899 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 30900 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 30901 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 30902 | } }, |
| | 30903 | }, .{ |
| | 30904 | .required_features = .{ .avx, null, null, null }, |
| | 30905 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 30906 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| | 30907 | .patterns = &.{ |
| | 30908 | .{ .src = .{ .to_sse, .none } }, |
| | 30909 | }, |
| | 30910 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 30911 | .each = .{ .once = &.{ |
| | 30912 | .{ ._, .vp_w, .sll, .dst0x, .src0x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 30913 | .{ ._, .vp_w, .sra, .dst0x, .dst0x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 30914 | } }, |
| | 30915 | }, .{ |
| | 30916 | .required_features = .{ .avx, null, null, null }, |
| | 30917 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 30918 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| | 30919 | .patterns = &.{ |
| | 30920 | .{ .src = .{ .to_sse, .none } }, |
| | 30921 | }, |
| | 30922 | .extra_temps = .{ |
| | 30923 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 30924 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 30925 | .unused, |
| | 30926 | .unused, |
| | 30927 | .unused, |
| | 30928 | .unused, |
| | 30929 | .unused, |
| | 30930 | .unused, |
| | 30931 | .unused, |
| | 30932 | }, |
| | 30933 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 30934 | .each = .{ .once = &.{ |
| | 30935 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 30936 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 30937 | } }, |
| | 30938 | }, .{ |
| | 30939 | .required_features = .{ .sse2, null, null, null }, |
| | 30940 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 30941 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| | 30942 | .patterns = &.{ |
| | 30943 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 30944 | }, |
| | 30945 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 30946 | .each = .{ .once = &.{ |
| | 30947 | .{ ._, .p_w, .sll, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| | 30948 | .{ ._, .p_w, .sra, .dst0x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| | 30949 | } }, |
| | 30950 | }, .{ |
| | 30951 | .required_features = .{ .sse2, null, null, null }, |
| | 30952 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 30953 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| | 30954 | .patterns = &.{ |
| | 30955 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 30956 | }, |
| | 30957 | .extra_temps = .{ |
| | 30958 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 30959 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 30960 | .unused, |
| | 30961 | .unused, |
| | 30962 | .unused, |
| | 30963 | .unused, |
| | 30964 | .unused, |
| | 30965 | .unused, |
| | 30966 | .unused, |
| | 30967 | }, |
| | 30968 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 30969 | .each = .{ .once = &.{ |
| | 30970 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 30971 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 30972 | } }, |
| | 30973 | }, .{ |
| | 30974 | .required_features = .{ .sse, null, null, null }, |
| | 30975 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 30976 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| | 30977 | .patterns = &.{ |
| | 30978 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 30979 | }, |
| | 30980 | .extra_temps = .{ |
| | 30981 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 30982 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 30983 | .unused, |
| | 30984 | .unused, |
| | 30985 | .unused, |
| | 30986 | .unused, |
| | 30987 | .unused, |
| | 30988 | .unused, |
| | 30989 | .unused, |
| | 30990 | }, |
| | 30991 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 30992 | .each = .{ .once = &.{ |
| | 30993 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 30994 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 30995 | } }, |
| | 30996 | }, .{ |
| | 30997 | .required_features = .{ .avx2, null, null, null }, |
| | 30998 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, |
| | 30999 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .word } }}, |
| | 31000 | .patterns = &.{ |
| | 31001 | .{ .src = .{ .to_sse, .none } }, |
| | 31002 | }, |
| | 31003 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 31004 | .each = .{ .once = &.{ |
| | 31005 | .{ ._, .vp_w, .sll, .dst0y, .src0y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 31006 | .{ ._, .vp_w, .sra, .dst0y, .dst0y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 31007 | } }, |
| | 31008 | }, .{ |
| | 31009 | .required_features = .{ .avx2, null, null, null }, |
| | 31010 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, |
| | 31011 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } }}, |
| | 31012 | .patterns = &.{ |
| | 31013 | .{ .src = .{ .to_sse, .none } }, |
| | 31014 | }, |
| | 31015 | .extra_temps = .{ |
| | 31016 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 31017 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 31018 | .unused, |
| | 31019 | .unused, |
| | 31020 | .unused, |
| | 31021 | .unused, |
| | 31022 | .unused, |
| | 31023 | .unused, |
| | 31024 | .unused, |
| | 31025 | }, |
| | 31026 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 31027 | .each = .{ .once = &.{ |
| | 31028 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 31029 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 31030 | } }, |
| | 31031 | }, .{ |
| | 31032 | .required_features = .{ .avx2, null, null, null }, |
| | 31033 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }, .any }, |
| | 31034 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } }}, |
| | 31035 | .patterns = &.{ |
| | 31036 | .{ .src = .{ .to_mem, .none } }, |
| | 31037 | }, |
| | 31038 | .extra_temps = .{ |
| | 31039 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31040 | .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } }, |
| | 31041 | .unused, |
| | 31042 | .unused, |
| | 31043 | .unused, |
| | 31044 | .unused, |
| | 31045 | .unused, |
| | 31046 | .unused, |
| | 31047 | .unused, |
| | 31048 | }, |
| | 31049 | .dst_temps = .{.mem}, |
| | 31050 | .clobbers = .{ .eflags = true }, |
| | 31051 | .each = .{ .once = &.{ |
| | 31052 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31053 | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31054 | .{ ._, .vp_w, .sll, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 31055 | .{ ._, .vp_w, .sra, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 31056 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| | 31057 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 31058 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31059 | } }, |
| | 31060 | }, .{ |
| | 31061 | .required_features = .{ .avx2, null, null, null }, |
| | 31062 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }, .any }, |
| | 31063 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } }}, |
| | 31064 | .patterns = &.{ |
| | 31065 | .{ .src = .{ .to_mem, .none } }, |
| | 31066 | }, |
| | 31067 | .extra_temps = .{ |
| | 31068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31069 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, |
| | 31070 | .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, |
| | 31071 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 31072 | .unused, |
| | 31073 | .unused, |
| | 31074 | .unused, |
| | 31075 | .unused, |
| | 31076 | .unused, |
| | 31077 | }, |
| | 31078 | .dst_temps = .{.mem}, |
| | 31079 | .clobbers = .{ .eflags = true }, |
| | 31080 | .each = .{ .once = &.{ |
| | 31081 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 31082 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| | 31083 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31084 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| | 31085 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| | 31086 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 31087 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31088 | } }, |
| | 31089 | }, .{ |
| | 31090 | .required_features = .{ .avx, null, null, null }, |
| | 31091 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 31092 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| | 31093 | .patterns = &.{ |
| | 31094 | .{ .src = .{ .to_mem, .none } }, |
| | 31095 | }, |
| | 31096 | .extra_temps = .{ |
| | 31097 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31098 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| | 31099 | .unused, |
| | 31100 | .unused, |
| | 31101 | .unused, |
| | 31102 | .unused, |
| | 31103 | .unused, |
| | 31104 | .unused, |
| | 31105 | .unused, |
| | 31106 | }, |
| | 31107 | .dst_temps = .{.mem}, |
| | 31108 | .clobbers = .{ .eflags = true }, |
| | 31109 | .each = .{ .once = &.{ |
| | 31110 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31111 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31112 | .{ ._, .vp_w, .sll, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 31113 | .{ ._, .vp_w, .sra, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 31114 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 31115 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 31116 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31117 | } }, |
| | 31118 | }, .{ |
| | 31119 | .required_features = .{ .avx, null, null, null }, |
| | 31120 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 31121 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| | 31122 | .patterns = &.{ |
| | 31123 | .{ .src = .{ .to_mem, .none } }, |
| | 31124 | }, |
| | 31125 | .extra_temps = .{ |
| | 31126 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31127 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| | 31128 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| | 31129 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 31130 | .unused, |
| | 31131 | .unused, |
| | 31132 | .unused, |
| | 31133 | .unused, |
| | 31134 | .unused, |
| | 31135 | }, |
| | 31136 | .dst_temps = .{.mem}, |
| | 31137 | .clobbers = .{ .eflags = true }, |
| | 31138 | .each = .{ .once = &.{ |
| | 31139 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 31140 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 31141 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31142 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| | 31143 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 31144 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 31145 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31146 | } }, |
| | 31147 | }, .{ |
| | 31148 | .required_features = .{ .sse2, null, null, null }, |
| | 31149 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 31150 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } }}, |
| | 31151 | .patterns = &.{ |
| | 31152 | .{ .src = .{ .to_mem, .none } }, |
| | 31153 | }, |
| | 31154 | .extra_temps = .{ |
| | 31155 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31156 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| | 31157 | .unused, |
| | 31158 | .unused, |
| | 31159 | .unused, |
| | 31160 | .unused, |
| | 31161 | .unused, |
| | 31162 | .unused, |
| | 31163 | .unused, |
| | 31164 | }, |
| | 31165 | .dst_temps = .{.mem}, |
| | 31166 | .clobbers = .{ .eflags = true }, |
| | 31167 | .each = .{ .once = &.{ |
| | 31168 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31169 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31170 | .{ ._, .p_w, .sll, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| | 31171 | .{ ._, .p_w, .sra, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| | 31172 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 31173 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 31174 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31175 | } }, |
| | 31176 | }, .{ |
| | 31177 | .required_features = .{ .sse2, null, null, null }, |
| | 31178 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 31179 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| | 31180 | .patterns = &.{ |
| | 31181 | .{ .src = .{ .to_mem, .none } }, |
| | 31182 | }, |
| | 31183 | .extra_temps = .{ |
| | 31184 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31185 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| | 31186 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| | 31187 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 31188 | .unused, |
| | 31189 | .unused, |
| | 31190 | .unused, |
| | 31191 | .unused, |
| | 31192 | .unused, |
| | 31193 | }, |
| | 31194 | .dst_temps = .{.mem}, |
| | 31195 | .clobbers = .{ .eflags = true }, |
| | 31196 | .each = .{ .once = &.{ |
| | 31197 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 31198 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 31199 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31200 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| | 31201 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31202 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 31203 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 31204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31205 | } }, |
| | 31206 | }, .{ |
| | 31207 | .required_features = .{ .sse, null, null, null }, |
| | 31208 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }, .any }, |
| | 31209 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } }}, |
| | 31210 | .patterns = &.{ |
| | 31211 | .{ .src = .{ .to_mem, .none } }, |
| | 31212 | }, |
| | 31213 | .extra_temps = .{ |
| | 31214 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31215 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| | 31216 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| | 31217 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 31218 | .unused, |
| | 31219 | .unused, |
| | 31220 | .unused, |
| | 31221 | .unused, |
| | 31222 | .unused, |
| | 31223 | }, |
| | 31224 | .dst_temps = .{.mem}, |
| | 31225 | .clobbers = .{ .eflags = true }, |
| | 31226 | .each = .{ .once = &.{ |
| | 31227 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 31228 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 31229 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31230 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| | 31231 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31232 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 31233 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 31234 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31235 | } }, |
| | 31236 | }, .{ |
| | 31237 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .word } }, .any }, |
| | 31238 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, |
| | 31239 | .patterns = &.{ |
| | 31240 | .{ .src = .{ .to_mem, .none } }, |
| | 31241 | }, |
| | 31242 | .extra_temps = .{ |
| | 31243 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31244 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31245 | .unused, |
| | 31246 | .unused, |
| | 31247 | .unused, |
| | 31248 | .unused, |
| | 31249 | .unused, |
| | 31250 | .unused, |
| | 31251 | .unused, |
| | 31252 | }, |
| | 31253 | .dst_temps = .{.mem}, |
| | 31254 | .clobbers = .{ .eflags = true }, |
| | 31255 | .each = .{ .once = &.{ |
| | 31256 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31257 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31258 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31259 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31260 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31261 | } }, |
| | 31262 | }, .{ |
| | 31263 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any }, |
| | 31264 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, |
| | 31265 | .patterns = &.{ |
| | 31266 | .{ .src = .{ .to_mem, .none } }, |
| | 31267 | }, |
| | 31268 | .extra_temps = .{ |
| | 31269 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31270 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 31271 | .unused, |
| | 31272 | .unused, |
| | 31273 | .unused, |
| | 31274 | .unused, |
| | 31275 | .unused, |
| | 31276 | .unused, |
| | 31277 | .unused, |
| | 31278 | }, |
| | 31279 | .dst_temps = .{.mem}, |
| | 31280 | .clobbers = .{ .eflags = true }, |
| | 31281 | .each = .{ .once = &.{ |
| | 31282 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31283 | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31284 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31285 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31286 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31287 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31288 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31289 | } }, |
| | 31290 | }, .{ |
| | 31291 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 31292 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| | 31293 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31294 | .patterns = &.{ |
| | 31295 | .{ .src = .{ .to_mem, .none } }, |
| | 31296 | }, |
| | 31297 | .extra_temps = .{ |
| | 31298 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31299 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31300 | .unused, |
| | 31301 | .unused, |
| | 31302 | .unused, |
| | 31303 | .unused, |
| | 31304 | .unused, |
| | 31305 | .unused, |
| | 31306 | .unused, |
| | 31307 | }, |
| | 31308 | .dst_temps = .{.mem}, |
| | 31309 | .clobbers = .{ .eflags = true }, |
| | 31310 | .each = .{ .once = &.{ |
| | 31311 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31312 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31313 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| | 31314 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31315 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31316 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31317 | } }, |
| | 31318 | }, .{ |
| | 31319 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any }, |
| | 31320 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31321 | .patterns = &.{ |
| | 31322 | .{ .src = .{ .to_mem, .none } }, |
| | 31323 | }, |
| | 31324 | .extra_temps = .{ |
| | 31325 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31326 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31327 | .unused, |
| | 31328 | .unused, |
| | 31329 | .unused, |
| | 31330 | .unused, |
| | 31331 | .unused, |
| | 31332 | .unused, |
| | 31333 | .unused, |
| | 31334 | }, |
| | 31335 | .dst_temps = .{.mem}, |
| | 31336 | .clobbers = .{ .eflags = true }, |
| | 31337 | .each = .{ .once = &.{ |
| | 31338 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31339 | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31340 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 31341 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31342 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31343 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31344 | } }, |
| | 31345 | }, .{ |
| | 31346 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 31347 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, |
| | 31348 | .patterns = &.{ |
| | 31349 | .{ .src = .{ .to_mem, .none } }, |
| | 31350 | }, |
| | 31351 | .extra_temps = .{ |
| | 31352 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31353 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31354 | .unused, |
| | 31355 | .unused, |
| | 31356 | .unused, |
| | 31357 | .unused, |
| | 31358 | .unused, |
| | 31359 | .unused, |
| | 31360 | .unused, |
| | 31361 | }, |
| | 31362 | .dst_temps = .{.mem}, |
| | 31363 | .clobbers = .{ .eflags = true }, |
| | 31364 | .each = .{ .once = &.{ |
| | 31365 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31366 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31367 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31368 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31369 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31370 | } }, |
| | 31371 | }, .{ |
| | 31372 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 31373 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, |
| | 31374 | .patterns = &.{ |
| | 31375 | .{ .src = .{ .to_mem, .none } }, |
| | 31376 | }, |
| | 31377 | .extra_temps = .{ |
| | 31378 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31379 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 31380 | .unused, |
| | 31381 | .unused, |
| | 31382 | .unused, |
| | 31383 | .unused, |
| | 31384 | .unused, |
| | 31385 | .unused, |
| | 31386 | .unused, |
| | 31387 | }, |
| | 31388 | .dst_temps = .{.mem}, |
| | 31389 | .clobbers = .{ .eflags = true }, |
| | 31390 | .each = .{ .once = &.{ |
| | 31391 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31392 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31393 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31394 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31395 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31396 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31397 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31398 | } }, |
| | 31399 | }, .{ |
| | 31400 | .required_features = .{ .bmi2, null, null, null }, |
| | 31401 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 31402 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31403 | .patterns = &.{ |
| | 31404 | .{ .src = .{ .to_mem, .none } }, |
| | 31405 | }, |
| | 31406 | .extra_temps = .{ |
| | 31407 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31408 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 31409 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31410 | .unused, |
| | 31411 | .unused, |
| | 31412 | .unused, |
| | 31413 | .unused, |
| | 31414 | .unused, |
| | 31415 | .unused, |
| | 31416 | }, |
| | 31417 | .dst_temps = .{.mem}, |
| | 31418 | .clobbers = .{ .eflags = true }, |
| | 31419 | .each = .{ .once = &.{ |
| | 31420 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31421 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 31422 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 31423 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 31424 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31425 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31426 | } }, |
| | 31427 | }, .{ |
| | 31428 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 31429 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 31430 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31431 | .patterns = &.{ |
| | 31432 | .{ .src = .{ .to_mem, .none } }, |
| | 31433 | }, |
| | 31434 | .extra_temps = .{ |
| | 31435 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31436 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31437 | .unused, |
| | 31438 | .unused, |
| | 31439 | .unused, |
| | 31440 | .unused, |
| | 31441 | .unused, |
| | 31442 | .unused, |
| | 31443 | .unused, |
| | 31444 | }, |
| | 31445 | .dst_temps = .{.mem}, |
| | 31446 | .clobbers = .{ .eflags = true }, |
| | 31447 | .each = .{ .once = &.{ |
| | 31448 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31449 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31450 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| | 31451 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31452 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31453 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31454 | } }, |
| | 31455 | }, .{ |
| | 31456 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 31457 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31458 | .patterns = &.{ |
| | 31459 | .{ .src = .{ .to_mem, .none } }, |
| | 31460 | }, |
| | 31461 | .extra_temps = .{ |
| | 31462 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31463 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31464 | .unused, |
| | 31465 | .unused, |
| | 31466 | .unused, |
| | 31467 | .unused, |
| | 31468 | .unused, |
| | 31469 | .unused, |
| | 31470 | .unused, |
| | 31471 | }, |
| | 31472 | .dst_temps = .{.mem}, |
| | 31473 | .clobbers = .{ .eflags = true }, |
| | 31474 | .each = .{ .once = &.{ |
| | 31475 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31476 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31477 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 31478 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31479 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31480 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31481 | } }, |
| | 31482 | }, .{ |
| | 31483 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 31484 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, |
| | 31485 | .patterns = &.{ |
| | 31486 | .{ .src = .{ .to_mem, .none } }, |
| | 31487 | }, |
| | 31488 | .extra_temps = .{ |
| | 31489 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31490 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31491 | .unused, |
| | 31492 | .unused, |
| | 31493 | .unused, |
| | 31494 | .unused, |
| | 31495 | .unused, |
| | 31496 | .unused, |
| | 31497 | .unused, |
| | 31498 | }, |
| | 31499 | .dst_temps = .{.mem}, |
| | 31500 | .clobbers = .{ .eflags = true }, |
| | 31501 | .each = .{ .once = &.{ |
| | 31502 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31503 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31504 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31505 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31506 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31507 | } }, |
| | 31508 | }, .{ |
| | 31509 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 31510 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, |
| | 31511 | .patterns = &.{ |
| | 31512 | .{ .src = .{ .to_mem, .none } }, |
| | 31513 | }, |
| | 31514 | .extra_temps = .{ |
| | 31515 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31516 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 31517 | .unused, |
| | 31518 | .unused, |
| | 31519 | .unused, |
| | 31520 | .unused, |
| | 31521 | .unused, |
| | 31522 | .unused, |
| | 31523 | .unused, |
| | 31524 | }, |
| | 31525 | .dst_temps = .{.mem}, |
| | 31526 | .clobbers = .{ .eflags = true }, |
| | 31527 | .each = .{ .once = &.{ |
| | 31528 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31529 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31530 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31531 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31532 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31533 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31534 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31535 | } }, |
| | 31536 | }, .{ |
| | 31537 | .required_features = .{ .bmi2, null, null, null }, |
| | 31538 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 31539 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31540 | .patterns = &.{ |
| | 31541 | .{ .src = .{ .to_mem, .none } }, |
| | 31542 | }, |
| | 31543 | .extra_temps = .{ |
| | 31544 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31545 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 31546 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31547 | .unused, |
| | 31548 | .unused, |
| | 31549 | .unused, |
| | 31550 | .unused, |
| | 31551 | .unused, |
| | 31552 | .unused, |
| | 31553 | }, |
| | 31554 | .dst_temps = .{.mem}, |
| | 31555 | .clobbers = .{ .eflags = true }, |
| | 31556 | .each = .{ .once = &.{ |
| | 31557 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31558 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 31559 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 31560 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 31561 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31562 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31563 | } }, |
| | 31564 | }, .{ |
| | 31565 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 31566 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 31567 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31568 | .patterns = &.{ |
| | 31569 | .{ .src = .{ .to_mem, .none } }, |
| | 31570 | }, |
| | 31571 | .extra_temps = .{ |
| | 31572 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31573 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31574 | .unused, |
| | 31575 | .unused, |
| | 31576 | .unused, |
| | 31577 | .unused, |
| | 31578 | .unused, |
| | 31579 | .unused, |
| | 31580 | .unused, |
| | 31581 | }, |
| | 31582 | .dst_temps = .{.mem}, |
| | 31583 | .clobbers = .{ .eflags = true }, |
| | 31584 | .each = .{ .once = &.{ |
| | 31585 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31586 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31587 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| | 31588 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31589 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31590 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31591 | } }, |
| | 31592 | }, .{ |
| | 31593 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 31594 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31595 | .patterns = &.{ |
| | 31596 | .{ .src = .{ .to_mem, .none } }, |
| | 31597 | }, |
| | 31598 | .extra_temps = .{ |
| | 31599 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31600 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31601 | .unused, |
| | 31602 | .unused, |
| | 31603 | .unused, |
| | 31604 | .unused, |
| | 31605 | .unused, |
| | 31606 | .unused, |
| | 31607 | .unused, |
| | 31608 | }, |
| | 31609 | .dst_temps = .{.mem}, |
| | 31610 | .clobbers = .{ .eflags = true }, |
| | 31611 | .each = .{ .once = &.{ |
| | 31612 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31613 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31614 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 31615 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31616 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31617 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31618 | } }, |
| | 31619 | }, .{ |
| | 31620 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 31621 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, |
| | 31622 | .patterns = &.{ |
| | 31623 | .{ .src = .{ .to_mem, .none } }, |
| | 31624 | }, |
| | 31625 | .extra_temps = .{ |
| | 31626 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31627 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31628 | .unused, |
| | 31629 | .unused, |
| | 31630 | .unused, |
| | 31631 | .unused, |
| | 31632 | .unused, |
| | 31633 | .unused, |
| | 31634 | .unused, |
| | 31635 | }, |
| | 31636 | .dst_temps = .{.mem}, |
| | 31637 | .clobbers = .{ .eflags = true }, |
| | 31638 | .each = .{ .once = &.{ |
| | 31639 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31640 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31641 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31642 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31643 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31644 | } }, |
| | 31645 | }, .{ |
| | 31646 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 31647 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, |
| | 31648 | .patterns = &.{ |
| | 31649 | .{ .src = .{ .to_mem, .none } }, |
| | 31650 | }, |
| | 31651 | .extra_temps = .{ |
| | 31652 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31653 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 31654 | .unused, |
| | 31655 | .unused, |
| | 31656 | .unused, |
| | 31657 | .unused, |
| | 31658 | .unused, |
| | 31659 | .unused, |
| | 31660 | .unused, |
| | 31661 | }, |
| | 31662 | .dst_temps = .{.mem}, |
| | 31663 | .clobbers = .{ .eflags = true }, |
| | 31664 | .each = .{ .once = &.{ |
| | 31665 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31666 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31667 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31668 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31669 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31670 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31671 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31672 | } }, |
| | 31673 | }, .{ |
| | 31674 | .required_features = .{ .bmi2, null, null, null }, |
| | 31675 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 31676 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31677 | .patterns = &.{ |
| | 31678 | .{ .src = .{ .to_mem, .none } }, |
| | 31679 | }, |
| | 31680 | .extra_temps = .{ |
| | 31681 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31682 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 31683 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31684 | .unused, |
| | 31685 | .unused, |
| | 31686 | .unused, |
| | 31687 | .unused, |
| | 31688 | .unused, |
| | 31689 | .unused, |
| | 31690 | }, |
| | 31691 | .dst_temps = .{.mem}, |
| | 31692 | .clobbers = .{ .eflags = true }, |
| | 31693 | .each = .{ .once = &.{ |
| | 31694 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31695 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 31696 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 31697 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 31698 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31699 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31700 | } }, |
| | 31701 | }, .{ |
| | 31702 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 31703 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 31704 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31705 | .patterns = &.{ |
| | 31706 | .{ .src = .{ .to_mem, .none } }, |
| | 31707 | }, |
| | 31708 | .extra_temps = .{ |
| | 31709 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31710 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31711 | .unused, |
| | 31712 | .unused, |
| | 31713 | .unused, |
| | 31714 | .unused, |
| | 31715 | .unused, |
| | 31716 | .unused, |
| | 31717 | .unused, |
| | 31718 | }, |
| | 31719 | .dst_temps = .{.mem}, |
| | 31720 | .clobbers = .{ .eflags = true }, |
| | 31721 | .each = .{ .once = &.{ |
| | 31722 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31723 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31724 | .{ ._, ._, .@"and", .tmp1w, .sa(.dst0, .add_umax), ._, ._ }, |
| | 31725 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31726 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31727 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31728 | } }, |
| | 31729 | }, .{ |
| | 31730 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 31731 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31732 | .patterns = &.{ |
| | 31733 | .{ .src = .{ .to_mem, .none } }, |
| | 31734 | }, |
| | 31735 | .extra_temps = .{ |
| | 31736 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31737 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31738 | .unused, |
| | 31739 | .unused, |
| | 31740 | .unused, |
| | 31741 | .unused, |
| | 31742 | .unused, |
| | 31743 | .unused, |
| | 31744 | .unused, |
| | 31745 | }, |
| | 31746 | .dst_temps = .{.mem}, |
| | 31747 | .clobbers = .{ .eflags = true }, |
| | 31748 | .each = .{ .once = &.{ |
| | 31749 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31750 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 31751 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 31752 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| | 31753 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31754 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31755 | } }, |
| | 31756 | }, .{ |
| | 31757 | .src_constraints = .{ .any_scalar_int, .any }, |
| | 31758 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .word, .is = 16 } }}, |
| | 31759 | .patterns = &.{ |
| | 31760 | .{ .src = .{ .to_mem, .none } }, |
| | 31761 | }, |
| | 31762 | .extra_temps = .{ |
| | 31763 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31764 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 31765 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31766 | .unused, |
| | 31767 | .unused, |
| | 31768 | .unused, |
| | 31769 | .unused, |
| | 31770 | .unused, |
| | 31771 | .unused, |
| | 31772 | }, |
| | 31773 | .dst_temps = .{.mem}, |
| | 31774 | .clobbers = .{ .eflags = true }, |
| | 31775 | .each = .{ .once = &.{ |
| | 31776 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31777 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 31778 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 31779 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 31780 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 31781 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31782 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31783 | } }, |
| | 31784 | }, .{ |
| | 31785 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 31786 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }}, |
| | 31787 | .patterns = &.{ |
| | 31788 | .{ .src = .{ .to_mem, .none } }, |
| | 31789 | }, |
| | 31790 | .extra_temps = .{ |
| | 31791 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31792 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 31793 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 31794 | .unused, |
| | 31795 | .unused, |
| | 31796 | .unused, |
| | 31797 | .unused, |
| | 31798 | .unused, |
| | 31799 | .unused, |
| | 31800 | }, |
| | 31801 | .dst_temps = .{.mem}, |
| | 31802 | .clobbers = .{ .eflags = true }, |
| | 31803 | .each = .{ .once = &.{ |
| | 31804 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31805 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 31806 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 31807 | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31808 | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31809 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 31810 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 31811 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31812 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31813 | } }, |
| | 31814 | }, .{ |
| | 31815 | .required_features = .{ .bmi2, null, null, null }, |
| | 31816 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 31817 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31818 | .patterns = &.{ |
| | 31819 | .{ .src = .{ .to_mem, .none } }, |
| | 31820 | }, |
| | 31821 | .extra_temps = .{ |
| | 31822 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31823 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 31824 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 31825 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31826 | .unused, |
| | 31827 | .unused, |
| | 31828 | .unused, |
| | 31829 | .unused, |
| | 31830 | .unused, |
| | 31831 | }, |
| | 31832 | .dst_temps = .{.mem}, |
| | 31833 | .clobbers = .{ .eflags = true }, |
| | 31834 | .each = .{ .once = &.{ |
| | 31835 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31836 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 31837 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 31838 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| | 31839 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| | 31840 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 31841 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31842 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31843 | } }, |
| | 31844 | }, .{ |
| | 31845 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 31846 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 31847 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31848 | .patterns = &.{ |
| | 31849 | .{ .src = .{ .to_mem, .none } }, |
| | 31850 | }, |
| | 31851 | .extra_temps = .{ |
| | 31852 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31853 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 31854 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31855 | .unused, |
| | 31856 | .unused, |
| | 31857 | .unused, |
| | 31858 | .unused, |
| | 31859 | .unused, |
| | 31860 | .unused, |
| | 31861 | }, |
| | 31862 | .dst_temps = .{.mem}, |
| | 31863 | .clobbers = .{ .eflags = true }, |
| | 31864 | .each = .{ .once = &.{ |
| | 31865 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31866 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 31867 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 31868 | .{ ._, ._, .@"and", .tmp2w, .sa(.dst0, .add_umax), ._, ._ }, |
| | 31869 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 31870 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 31871 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31872 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31873 | } }, |
| | 31874 | }, .{ |
| | 31875 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 31876 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }}, |
| | 31877 | .patterns = &.{ |
| | 31878 | .{ .src = .{ .to_mem, .none } }, |
| | 31879 | }, |
| | 31880 | .extra_temps = .{ |
| | 31881 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 31882 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 31883 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 31884 | .unused, |
| | 31885 | .unused, |
| | 31886 | .unused, |
| | 31887 | .unused, |
| | 31888 | .unused, |
| | 31889 | .unused, |
| | 31890 | }, |
| | 31891 | .dst_temps = .{.mem}, |
| | 31892 | .clobbers = .{ .eflags = true }, |
| | 31893 | .each = .{ .once = &.{ |
| | 31894 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 31895 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 31896 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 31897 | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 31898 | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| | 31899 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 31900 | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| | 31901 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 31902 | } }, |
| | 31903 | }, .{ |
| | 31904 | .required_features = .{ .avx, null, null, null }, |
| | 31905 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 31906 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| | 31907 | .patterns = &.{ |
| | 31908 | .{ .src = .{ .to_sse, .none } }, |
| | 31909 | }, |
| | 31910 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 31911 | .each = .{ .once = &.{ |
| | 31912 | .{ ._, .vp_d, .sll, .dst0x, .src0x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| | 31913 | .{ ._, .vp_d, .sra, .dst0x, .dst0x, .uia(32, .dst0, .sub_bit_size), ._ }, |
| | 31914 | } }, |
| | 31915 | }, .{ |
| | 31916 | .required_features = .{ .avx, null, null, null }, |
| | 31917 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 31918 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| | 31919 | .patterns = &.{ |
| | 31920 | .{ .src = .{ .to_sse, .none } }, |
| | 31921 | }, |
| | 31922 | .extra_temps = .{ |
| | 31923 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 31924 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 31925 | .unused, |
| | 31926 | .unused, |
| | 31927 | .unused, |
| | 31928 | .unused, |
| | 31929 | .unused, |
| | 31930 | .unused, |
| | 31931 | .unused, |
| | 31932 | }, |
| | 31933 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 31934 | .each = .{ .once = &.{ |
| | 31935 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 31936 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 31937 | } }, |
| | 31938 | }, .{ |
| | 31939 | .required_features = .{ .sse2, null, null, null }, |
| | 31940 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 31941 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| | 31942 | .patterns = &.{ |
| | 31943 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 31944 | }, |
| | 31945 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 31946 | .each = .{ .once = &.{ |
| | 31947 | .{ ._, .p_d, .sll, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31948 | .{ ._, .p_d, .sra, .dst0x, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 31949 | } }, |
| | 31950 | }, .{ |
| | 31951 | .required_features = .{ .sse2, null, null, null }, |
| | 31952 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 31953 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| | 31954 | .patterns = &.{ |
| | 31955 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 31956 | }, |
| | 31957 | .extra_temps = .{ |
| | 31958 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 31959 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 31960 | .unused, |
| | 31961 | .unused, |
| | 31962 | .unused, |
| | 31963 | .unused, |
| | 31964 | .unused, |
| | 31965 | .unused, |
| | 31966 | .unused, |
| | 31967 | }, |
| | 31968 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 31969 | .each = .{ .once = &.{ |
| | 31970 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 31971 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 31972 | } }, |
| | 31973 | }, .{ |
| | 31974 | .required_features = .{ .sse, null, null, null }, |
| | 31975 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 31976 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| | 31977 | .patterns = &.{ |
| | 31978 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 31979 | }, |
| | 31980 | .extra_temps = .{ |
| | 31981 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 31982 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 31983 | .unused, |
| | 31984 | .unused, |
| | 31985 | .unused, |
| | 31986 | .unused, |
| | 31987 | .unused, |
| | 31988 | .unused, |
| | 31989 | .unused, |
| | 31990 | }, |
| | 31991 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 31992 | .each = .{ .once = &.{ |
| | 31993 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 31994 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 31995 | } }, |
| | 31996 | }, .{ |
| | 31997 | .required_features = .{ .avx2, null, null, null }, |
| | 31998 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| | 31999 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .dword } }}, |
| | 32000 | .patterns = &.{ |
| | 32001 | .{ .src = .{ .to_sse, .none } }, |
| | 32002 | }, |
| | 32003 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 32004 | .each = .{ .once = &.{ |
| | 32005 | .{ ._, .vp_d, .sll, .dst0y, .src0y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| | 32006 | .{ ._, .vp_d, .sra, .dst0y, .dst0y, .uia(32, .dst0, .sub_bit_size), ._ }, |
| | 32007 | } }, |
| | 32008 | }, .{ |
| | 32009 | .required_features = .{ .avx2, null, null, null }, |
| | 32010 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, |
| | 32011 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } }}, |
| | 32012 | .patterns = &.{ |
| | 32013 | .{ .src = .{ .to_sse, .none } }, |
| | 32014 | }, |
| | 32015 | .extra_temps = .{ |
| | 32016 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 32017 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 32018 | .unused, |
| | 32019 | .unused, |
| | 32020 | .unused, |
| | 32021 | .unused, |
| | 32022 | .unused, |
| | 32023 | .unused, |
| | 32024 | .unused, |
| | 32025 | }, |
| | 32026 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 32027 | .each = .{ .once = &.{ |
| | 32028 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 32029 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 32030 | } }, |
| | 32031 | }, .{ |
| | 32032 | .required_features = .{ .avx2, null, null, null }, |
| | 32033 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }, .any }, |
| | 32034 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } }}, |
| | 32035 | .patterns = &.{ |
| | 32036 | .{ .src = .{ .to_mem, .none } }, |
| | 32037 | }, |
| | 32038 | .extra_temps = .{ |
| | 32039 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32040 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| | 32041 | .unused, |
| | 32042 | .unused, |
| | 32043 | .unused, |
| | 32044 | .unused, |
| | 32045 | .unused, |
| | 32046 | .unused, |
| | 32047 | .unused, |
| | 32048 | }, |
| | 32049 | .dst_temps = .{.mem}, |
| | 32050 | .clobbers = .{ .eflags = true }, |
| | 32051 | .each = .{ .once = &.{ |
| | 32052 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32053 | .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32054 | .{ ._, .vp_d, .sll, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 32055 | .{ ._, .vp_d, .sra, .tmp1y, .tmp1y, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 32056 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| | 32057 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 32058 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32059 | } }, |
| | 32060 | }, .{ |
| | 32061 | .required_features = .{ .avx2, null, null, null }, |
| | 32062 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }, .any }, |
| | 32063 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } }}, |
| | 32064 | .patterns = &.{ |
| | 32065 | .{ .src = .{ .to_mem, .none } }, |
| | 32066 | }, |
| | 32067 | .extra_temps = .{ |
| | 32068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32069 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| | 32070 | .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, |
| | 32071 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 32072 | .unused, |
| | 32073 | .unused, |
| | 32074 | .unused, |
| | 32075 | .unused, |
| | 32076 | .unused, |
| | 32077 | }, |
| | 32078 | .dst_temps = .{.mem}, |
| | 32079 | .clobbers = .{ .eflags = true }, |
| | 32080 | .each = .{ .once = &.{ |
| | 32081 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 32082 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| | 32083 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32084 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| | 32085 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| | 32086 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 32087 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32088 | } }, |
| | 32089 | }, .{ |
| | 32090 | .required_features = .{ .avx, null, null, null }, |
| | 32091 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 32092 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| | 32093 | .patterns = &.{ |
| | 32094 | .{ .src = .{ .to_mem, .none } }, |
| | 32095 | }, |
| | 32096 | .extra_temps = .{ |
| | 32097 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32098 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| | 32099 | .unused, |
| | 32100 | .unused, |
| | 32101 | .unused, |
| | 32102 | .unused, |
| | 32103 | .unused, |
| | 32104 | .unused, |
| | 32105 | .unused, |
| | 32106 | }, |
| | 32107 | .dst_temps = .{.mem}, |
| | 32108 | .clobbers = .{ .eflags = true }, |
| | 32109 | .each = .{ .once = &.{ |
| | 32110 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32111 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32112 | .{ ._, .vp_d, .sll, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 32113 | .{ ._, .vp_d, .sra, .tmp1x, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._ }, |
| | 32114 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 32115 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 32116 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32117 | } }, |
| | 32118 | }, .{ |
| | 32119 | .required_features = .{ .avx, null, null, null }, |
| | 32120 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 32121 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| | 32122 | .patterns = &.{ |
| | 32123 | .{ .src = .{ .to_mem, .none } }, |
| | 32124 | }, |
| | 32125 | .extra_temps = .{ |
| | 32126 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32127 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| | 32128 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| | 32129 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 32130 | .unused, |
| | 32131 | .unused, |
| | 32132 | .unused, |
| | 32133 | .unused, |
| | 32134 | .unused, |
| | 32135 | }, |
| | 32136 | .dst_temps = .{.mem}, |
| | 32137 | .clobbers = .{ .eflags = true }, |
| | 32138 | .each = .{ .once = &.{ |
| | 32139 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 32140 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 32141 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32142 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| | 32143 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 32144 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 32145 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32146 | } }, |
| | 32147 | }, .{ |
| | 32148 | .required_features = .{ .sse2, null, null, null }, |
| | 32149 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 32150 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } }}, |
| | 32151 | .patterns = &.{ |
| | 32152 | .{ .src = .{ .to_mem, .none } }, |
| | 32153 | }, |
| | 32154 | .extra_temps = .{ |
| | 32155 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32156 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| | 32157 | .unused, |
| | 32158 | .unused, |
| | 32159 | .unused, |
| | 32160 | .unused, |
| | 32161 | .unused, |
| | 32162 | .unused, |
| | 32163 | .unused, |
| | 32164 | }, |
| | 32165 | .dst_temps = .{.mem}, |
| | 32166 | .clobbers = .{ .eflags = true }, |
| | 32167 | .each = .{ .once = &.{ |
| | 32168 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32169 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32170 | .{ ._, .p_d, .sll, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| | 32171 | .{ ._, .p_d, .sra, .tmp1x, .uia(16, .dst0, .sub_bit_size), ._, ._ }, |
| | 32172 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| | 32173 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 32174 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32175 | } }, |
| | 32176 | }, .{ |
| | 32177 | .required_features = .{ .sse2, null, null, null }, |
| | 32178 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 32179 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| | 32180 | .patterns = &.{ |
| | 32181 | .{ .src = .{ .to_mem, .none } }, |
| | 32182 | }, |
| | 32183 | .extra_temps = .{ |
| | 32184 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32185 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| | 32186 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| | 32187 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 32188 | .unused, |
| | 32189 | .unused, |
| | 32190 | .unused, |
| | 32191 | .unused, |
| | 32192 | .unused, |
| | 32193 | }, |
| | 32194 | .dst_temps = .{.mem}, |
| | 32195 | .clobbers = .{ .eflags = true }, |
| | 32196 | .each = .{ .once = &.{ |
| | 32197 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 32198 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 32199 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32200 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| | 32201 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32202 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 32203 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 32204 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32205 | } }, |
| | 32206 | }, .{ |
| | 32207 | .required_features = .{ .sse, null, null, null }, |
| | 32208 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }, .any }, |
| | 32209 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } }}, |
| | 32210 | .patterns = &.{ |
| | 32211 | .{ .src = .{ .to_mem, .none } }, |
| | 32212 | }, |
| | 32213 | .extra_temps = .{ |
| | 32214 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32215 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| | 32216 | .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, |
| | 32217 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 32218 | .unused, |
| | 32219 | .unused, |
| | 32220 | .unused, |
| | 32221 | .unused, |
| | 32222 | .unused, |
| | 32223 | }, |
| | 32224 | .dst_temps = .{.mem}, |
| | 32225 | .clobbers = .{ .eflags = true }, |
| | 32226 | .each = .{ .once = &.{ |
| | 32227 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 32228 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 32229 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32230 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| | 32231 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32232 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 32233 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 32234 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32235 | } }, |
| | 32236 | }, .{ |
| | 32237 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 32238 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, |
| | 32239 | .patterns = &.{ |
| | 32240 | .{ .src = .{ .to_mem, .none } }, |
| | 32241 | }, |
| | 32242 | .extra_temps = .{ |
| | 32243 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32244 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32245 | .unused, |
| | 32246 | .unused, |
| | 32247 | .unused, |
| | 32248 | .unused, |
| | 32249 | .unused, |
| | 32250 | .unused, |
| | 32251 | .unused, |
| | 32252 | }, |
| | 32253 | .dst_temps = .{.mem}, |
| | 32254 | .clobbers = .{ .eflags = true }, |
| | 32255 | .each = .{ .once = &.{ |
| | 32256 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32257 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32258 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32259 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32260 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32261 | } }, |
| | 32262 | }, .{ |
| | 32263 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 32264 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, |
| | 32265 | .patterns = &.{ |
| | 32266 | .{ .src = .{ .to_mem, .none } }, |
| | 32267 | }, |
| | 32268 | .extra_temps = .{ |
| | 32269 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32270 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 32271 | .unused, |
| | 32272 | .unused, |
| | 32273 | .unused, |
| | 32274 | .unused, |
| | 32275 | .unused, |
| | 32276 | .unused, |
| | 32277 | .unused, |
| | 32278 | }, |
| | 32279 | .dst_temps = .{.mem}, |
| | 32280 | .clobbers = .{ .eflags = true }, |
| | 32281 | .each = .{ .once = &.{ |
| | 32282 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32283 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32284 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 32285 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 32286 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32287 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32288 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32289 | } }, |
| | 32290 | }, .{ |
| | 32291 | .required_features = .{ .bmi2, null, null, null }, |
| | 32292 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 32293 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| | 32294 | .patterns = &.{ |
| | 32295 | .{ .src = .{ .to_mem, .none } }, |
| | 32296 | }, |
| | 32297 | .extra_temps = .{ |
| | 32298 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32299 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 32300 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32301 | .unused, |
| | 32302 | .unused, |
| | 32303 | .unused, |
| | 32304 | .unused, |
| | 32305 | .unused, |
| | 32306 | .unused, |
| | 32307 | }, |
| | 32308 | .dst_temps = .{.mem}, |
| | 32309 | .clobbers = .{ .eflags = true }, |
| | 32310 | .each = .{ .once = &.{ |
| | 32311 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32312 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 32313 | .{ .@"0:", ._, .bzhi, .tmp2d, .memia(.src0d, .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 32314 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 32315 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32316 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32317 | } }, |
| | 32318 | }, .{ |
| | 32319 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| | 32320 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| | 32321 | .patterns = &.{ |
| | 32322 | .{ .src = .{ .to_mem, .none } }, |
| | 32323 | }, |
| | 32324 | .extra_temps = .{ |
| | 32325 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32326 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32327 | .unused, |
| | 32328 | .unused, |
| | 32329 | .unused, |
| | 32330 | .unused, |
| | 32331 | .unused, |
| | 32332 | .unused, |
| | 32333 | .unused, |
| | 32334 | }, |
| | 32335 | .dst_temps = .{.mem}, |
| | 32336 | .clobbers = .{ .eflags = true }, |
| | 32337 | .each = .{ .once = &.{ |
| | 32338 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32339 | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32340 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 32341 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32342 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32343 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32344 | } }, |
| | 32345 | }, .{ |
| | 32346 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 32347 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, |
| | 32348 | .patterns = &.{ |
| | 32349 | .{ .src = .{ .to_mem, .none } }, |
| | 32350 | }, |
| | 32351 | .extra_temps = .{ |
| | 32352 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32353 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32354 | .unused, |
| | 32355 | .unused, |
| | 32356 | .unused, |
| | 32357 | .unused, |
| | 32358 | .unused, |
| | 32359 | .unused, |
| | 32360 | .unused, |
| | 32361 | }, |
| | 32362 | .dst_temps = .{.mem}, |
| | 32363 | .clobbers = .{ .eflags = true }, |
| | 32364 | .each = .{ .once = &.{ |
| | 32365 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32366 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32367 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32368 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32369 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32370 | } }, |
| | 32371 | }, .{ |
| | 32372 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 32373 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, |
| | 32374 | .patterns = &.{ |
| | 32375 | .{ .src = .{ .to_mem, .none } }, |
| | 32376 | }, |
| | 32377 | .extra_temps = .{ |
| | 32378 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32379 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 32380 | .unused, |
| | 32381 | .unused, |
| | 32382 | .unused, |
| | 32383 | .unused, |
| | 32384 | .unused, |
| | 32385 | .unused, |
| | 32386 | .unused, |
| | 32387 | }, |
| | 32388 | .dst_temps = .{.mem}, |
| | 32389 | .clobbers = .{ .eflags = true }, |
| | 32390 | .each = .{ .once = &.{ |
| | 32391 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32392 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32393 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 32394 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 32395 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32396 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32397 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32398 | } }, |
| | 32399 | }, .{ |
| | 32400 | .required_features = .{ .bmi2, null, null, null }, |
| | 32401 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 32402 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| | 32403 | .patterns = &.{ |
| | 32404 | .{ .src = .{ .to_mem, .none } }, |
| | 32405 | }, |
| | 32406 | .extra_temps = .{ |
| | 32407 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32408 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 32409 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32410 | .unused, |
| | 32411 | .unused, |
| | 32412 | .unused, |
| | 32413 | .unused, |
| | 32414 | .unused, |
| | 32415 | .unused, |
| | 32416 | }, |
| | 32417 | .dst_temps = .{.mem}, |
| | 32418 | .clobbers = .{ .eflags = true }, |
| | 32419 | .each = .{ .once = &.{ |
| | 32420 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32421 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 32422 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 32423 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 32424 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32425 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32426 | } }, |
| | 32427 | }, .{ |
| | 32428 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 32429 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| | 32430 | .patterns = &.{ |
| | 32431 | .{ .src = .{ .to_mem, .none } }, |
| | 32432 | }, |
| | 32433 | .extra_temps = .{ |
| | 32434 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32435 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32436 | .unused, |
| | 32437 | .unused, |
| | 32438 | .unused, |
| | 32439 | .unused, |
| | 32440 | .unused, |
| | 32441 | .unused, |
| | 32442 | .unused, |
| | 32443 | }, |
| | 32444 | .dst_temps = .{.mem}, |
| | 32445 | .clobbers = .{ .eflags = true }, |
| | 32446 | .each = .{ .once = &.{ |
| | 32447 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32448 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32449 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 32450 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32451 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32452 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32453 | } }, |
| | 32454 | }, .{ |
| | 32455 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 32456 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, |
| | 32457 | .patterns = &.{ |
| | 32458 | .{ .src = .{ .to_mem, .none } }, |
| | 32459 | }, |
| | 32460 | .extra_temps = .{ |
| | 32461 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32462 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32463 | .unused, |
| | 32464 | .unused, |
| | 32465 | .unused, |
| | 32466 | .unused, |
| | 32467 | .unused, |
| | 32468 | .unused, |
| | 32469 | .unused, |
| | 32470 | }, |
| | 32471 | .dst_temps = .{.mem}, |
| | 32472 | .clobbers = .{ .eflags = true }, |
| | 32473 | .each = .{ .once = &.{ |
| | 32474 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32475 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32476 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32477 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32478 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32479 | } }, |
| | 32480 | }, .{ |
| | 32481 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 32482 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, |
| | 32483 | .patterns = &.{ |
| | 32484 | .{ .src = .{ .to_mem, .none } }, |
| | 32485 | }, |
| | 32486 | .extra_temps = .{ |
| | 32487 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32488 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 32489 | .unused, |
| | 32490 | .unused, |
| | 32491 | .unused, |
| | 32492 | .unused, |
| | 32493 | .unused, |
| | 32494 | .unused, |
| | 32495 | .unused, |
| | 32496 | }, |
| | 32497 | .dst_temps = .{.mem}, |
| | 32498 | .clobbers = .{ .eflags = true }, |
| | 32499 | .each = .{ .once = &.{ |
| | 32500 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32501 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32502 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 32503 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 32504 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32505 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32506 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32507 | } }, |
| | 32508 | }, .{ |
| | 32509 | .required_features = .{ .bmi2, null, null, null }, |
| | 32510 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 32511 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| | 32512 | .patterns = &.{ |
| | 32513 | .{ .src = .{ .to_mem, .none } }, |
| | 32514 | }, |
| | 32515 | .extra_temps = .{ |
| | 32516 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32517 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 32518 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32519 | .unused, |
| | 32520 | .unused, |
| | 32521 | .unused, |
| | 32522 | .unused, |
| | 32523 | .unused, |
| | 32524 | .unused, |
| | 32525 | }, |
| | 32526 | .dst_temps = .{.mem}, |
| | 32527 | .clobbers = .{ .eflags = true }, |
| | 32528 | .each = .{ .once = &.{ |
| | 32529 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32530 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 32531 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 32532 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 32533 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32534 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32535 | } }, |
| | 32536 | }, .{ |
| | 32537 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 32538 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| | 32539 | .patterns = &.{ |
| | 32540 | .{ .src = .{ .to_mem, .none } }, |
| | 32541 | }, |
| | 32542 | .extra_temps = .{ |
| | 32543 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32544 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32545 | .unused, |
| | 32546 | .unused, |
| | 32547 | .unused, |
| | 32548 | .unused, |
| | 32549 | .unused, |
| | 32550 | .unused, |
| | 32551 | .unused, |
| | 32552 | }, |
| | 32553 | .dst_temps = .{.mem}, |
| | 32554 | .clobbers = .{ .eflags = true }, |
| | 32555 | .each = .{ .once = &.{ |
| | 32556 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32557 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32558 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 32559 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32560 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32561 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32562 | } }, |
| | 32563 | }, .{ |
| | 32564 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any }, |
| | 32565 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, |
| | 32566 | .patterns = &.{ |
| | 32567 | .{ .src = .{ .to_mem, .none } }, |
| | 32568 | }, |
| | 32569 | .extra_temps = .{ |
| | 32570 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32571 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32572 | .unused, |
| | 32573 | .unused, |
| | 32574 | .unused, |
| | 32575 | .unused, |
| | 32576 | .unused, |
| | 32577 | .unused, |
| | 32578 | .unused, |
| | 32579 | }, |
| | 32580 | .dst_temps = .{.mem}, |
| | 32581 | .clobbers = .{ .eflags = true }, |
| | 32582 | .each = .{ .once = &.{ |
| | 32583 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32584 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32585 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32586 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32587 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32588 | } }, |
| | 32589 | }, .{ |
| | 32590 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any }, |
| | 32591 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, |
| | 32592 | .patterns = &.{ |
| | 32593 | .{ .src = .{ .to_mem, .none } }, |
| | 32594 | }, |
| | 32595 | .extra_temps = .{ |
| | 32596 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32597 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 32598 | .unused, |
| | 32599 | .unused, |
| | 32600 | .unused, |
| | 32601 | .unused, |
| | 32602 | .unused, |
| | 32603 | .unused, |
| | 32604 | .unused, |
| | 32605 | }, |
| | 32606 | .dst_temps = .{.mem}, |
| | 32607 | .clobbers = .{ .eflags = true }, |
| | 32608 | .each = .{ .once = &.{ |
| | 32609 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32610 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32611 | .{ ._, ._l, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 32612 | .{ ._, ._r, .sa, .tmp1d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 32613 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32614 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32615 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32616 | } }, |
| | 32617 | }, .{ |
| | 32618 | .required_features = .{ .bmi2, null, null, null }, |
| | 32619 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any }, |
| | 32620 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| | 32621 | .patterns = &.{ |
| | 32622 | .{ .src = .{ .to_mem, .none } }, |
| | 32623 | }, |
| | 32624 | .extra_temps = .{ |
| | 32625 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32626 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 32627 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32628 | .unused, |
| | 32629 | .unused, |
| | 32630 | .unused, |
| | 32631 | .unused, |
| | 32632 | .unused, |
| | 32633 | .unused, |
| | 32634 | }, |
| | 32635 | .dst_temps = .{.mem}, |
| | 32636 | .clobbers = .{ .eflags = true }, |
| | 32637 | .each = .{ .once = &.{ |
| | 32638 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32639 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 32640 | .{ .@"0:", ._, .bzhi, .tmp2d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), .tmp1d, ._ }, |
| | 32641 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 32642 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32643 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32644 | } }, |
| | 32645 | }, .{ |
| | 32646 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any }, |
| | 32647 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| | 32648 | .patterns = &.{ |
| | 32649 | .{ .src = .{ .to_mem, .none } }, |
| | 32650 | }, |
| | 32651 | .extra_temps = .{ |
| | 32652 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32653 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32654 | .unused, |
| | 32655 | .unused, |
| | 32656 | .unused, |
| | 32657 | .unused, |
| | 32658 | .unused, |
| | 32659 | .unused, |
| | 32660 | .unused, |
| | 32661 | }, |
| | 32662 | .dst_temps = .{.mem}, |
| | 32663 | .clobbers = .{ .eflags = true }, |
| | 32664 | .each = .{ .once = &.{ |
| | 32665 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32666 | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 32667 | .{ ._, ._, .@"and", .tmp1d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 32668 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| | 32669 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32670 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32671 | } }, |
| | 32672 | }, .{ |
| | 32673 | .src_constraints = .{ .any_scalar_int, .any }, |
| | 32674 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .dword, .is = 32 } }}, |
| | 32675 | .patterns = &.{ |
| | 32676 | .{ .src = .{ .to_mem, .none } }, |
| | 32677 | }, |
| | 32678 | .extra_temps = .{ |
| | 32679 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32680 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32681 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32682 | .unused, |
| | 32683 | .unused, |
| | 32684 | .unused, |
| | 32685 | .unused, |
| | 32686 | .unused, |
| | 32687 | .unused, |
| | 32688 | }, |
| | 32689 | .dst_temps = .{.mem}, |
| | 32690 | .clobbers = .{ .eflags = true }, |
| | 32691 | .each = .{ .once = &.{ |
| | 32692 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32693 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 32694 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 32695 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 32696 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 32697 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32698 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32699 | } }, |
| | 32700 | }, .{ |
| | 32701 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 32702 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }}, |
| | 32703 | .patterns = &.{ |
| | 32704 | .{ .src = .{ .to_mem, .none } }, |
| | 32705 | }, |
| | 32706 | .extra_temps = .{ |
| | 32707 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32708 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32709 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 32710 | .unused, |
| | 32711 | .unused, |
| | 32712 | .unused, |
| | 32713 | .unused, |
| | 32714 | .unused, |
| | 32715 | .unused, |
| | 32716 | }, |
| | 32717 | .dst_temps = .{.mem}, |
| | 32718 | .clobbers = .{ .eflags = true }, |
| | 32719 | .each = .{ .once = &.{ |
| | 32720 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32721 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 32722 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 32723 | .{ ._, ._l, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 32724 | .{ ._, ._r, .sa, .tmp2d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, |
| | 32725 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 32726 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 32727 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32728 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32729 | } }, |
| | 32730 | }, .{ |
| | 32731 | .required_features = .{ .bmi2, null, null, null }, |
| | 32732 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 32733 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| | 32734 | .patterns = &.{ |
| | 32735 | .{ .src = .{ .to_mem, .none } }, |
| | 32736 | }, |
| | 32737 | .extra_temps = .{ |
| | 32738 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32739 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32740 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 32741 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32742 | .unused, |
| | 32743 | .unused, |
| | 32744 | .unused, |
| | 32745 | .unused, |
| | 32746 | .unused, |
| | 32747 | }, |
| | 32748 | .dst_temps = .{.mem}, |
| | 32749 | .clobbers = .{ .eflags = true }, |
| | 32750 | .each = .{ .once = &.{ |
| | 32751 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32752 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 32753 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 32754 | .{ .@"0:", ._, .bzhi, .tmp3d, .memi(.src0d, .tmp1), .tmp2d, ._ }, |
| | 32755 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| | 32756 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 32757 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32758 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32759 | } }, |
| | 32760 | }, .{ |
| | 32761 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 32762 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }}, |
| | 32763 | .patterns = &.{ |
| | 32764 | .{ .src = .{ .to_mem, .none } }, |
| | 32765 | }, |
| | 32766 | .extra_temps = .{ |
| | 32767 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32768 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32769 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 32770 | .unused, |
| | 32771 | .unused, |
| | 32772 | .unused, |
| | 32773 | .unused, |
| | 32774 | .unused, |
| | 32775 | .unused, |
| | 32776 | }, |
| | 32777 | .dst_temps = .{.mem}, |
| | 32778 | .clobbers = .{ .eflags = true }, |
| | 32779 | .each = .{ .once = &.{ |
| | 32780 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32781 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 32782 | .{ .@"0:", ._, .mov, .tmp2d, .memi(.src0d, .tmp1), ._, ._ }, |
| | 32783 | .{ ._, ._, .@"and", .tmp2d, .sa(.dst0, .add_umax), ._, ._ }, |
| | 32784 | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| | 32785 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 32786 | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| | 32787 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32788 | } }, |
| | 32789 | }, .{ |
| | 32790 | .required_features = .{ .avx, null, null, null }, |
| | 32791 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 32792 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| | 32793 | .patterns = &.{ |
| | 32794 | .{ .src = .{ .to_sse, .none } }, |
| | 32795 | }, |
| | 32796 | .extra_temps = .{ |
| | 32797 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 32798 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 32799 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 32800 | .unused, |
| | 32801 | .unused, |
| | 32802 | .unused, |
| | 32803 | .unused, |
| | 32804 | .unused, |
| | 32805 | .unused, |
| | 32806 | }, |
| | 32807 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 32808 | .each = .{ .once = &.{ |
| | 32809 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 32810 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 32811 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 32812 | .{ ._, .vp_q, .add, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| | 32813 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .lea(.tmp0x), ._ }, |
| | 32814 | } }, |
| | 32815 | }, .{ |
| | 32816 | .required_features = .{ .avx, null, null, null }, |
| | 32817 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 32818 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| | 32819 | .patterns = &.{ |
| | 32820 | .{ .src = .{ .to_sse, .none } }, |
| | 32821 | }, |
| | 32822 | .extra_temps = .{ |
| | 32823 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 32824 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 32825 | .unused, |
| | 32826 | .unused, |
| | 32827 | .unused, |
| | 32828 | .unused, |
| | 32829 | .unused, |
| | 32830 | .unused, |
| | 32831 | .unused, |
| | 32832 | }, |
| | 32833 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 32834 | .each = .{ .once = &.{ |
| | 32835 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 32836 | .{ ._, .vp_, .@"and", .dst0x, .src0x, .lea(.tmp0x), ._ }, |
| | 32837 | } }, |
| | 32838 | }, .{ |
| | 32839 | .required_features = .{ .sse2, null, null, null }, |
| | 32840 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 32841 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| | 32842 | .patterns = &.{ |
| | 32843 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 32844 | }, |
| | 32845 | .extra_temps = .{ |
| | 32846 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 32847 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 32848 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 32849 | .unused, |
| | 32850 | .unused, |
| | 32851 | .unused, |
| | 32852 | .unused, |
| | 32853 | .unused, |
| | 32854 | .unused, |
| | 32855 | }, |
| | 32856 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 32857 | .each = .{ .once = &.{ |
| | 32858 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 32859 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 32860 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 32861 | .{ ._, .p_q, .add, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 32862 | .{ ._, .p_, .xor, .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 32863 | } }, |
| | 32864 | }, .{ |
| | 32865 | .required_features = .{ .sse2, null, null, null }, |
| | 32866 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 32867 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| | 32868 | .patterns = &.{ |
| | 32869 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 32870 | }, |
| | 32871 | .extra_temps = .{ |
| | 32872 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 32873 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 32874 | .unused, |
| | 32875 | .unused, |
| | 32876 | .unused, |
| | 32877 | .unused, |
| | 32878 | .unused, |
| | 32879 | .unused, |
| | 32880 | .unused, |
| | 32881 | }, |
| | 32882 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 32883 | .each = .{ .once = &.{ |
| | 32884 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 32885 | .{ ._, .p_, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 32886 | } }, |
| | 32887 | }, .{ |
| | 32888 | .required_features = .{ .sse, null, null, null }, |
| | 32889 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 32890 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| | 32891 | .patterns = &.{ |
| | 32892 | .{ .src = .{ .to_mut_sse, .none } }, |
| | 32893 | }, |
| | 32894 | .extra_temps = .{ |
| | 32895 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 32896 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 32897 | .unused, |
| | 32898 | .unused, |
| | 32899 | .unused, |
| | 32900 | .unused, |
| | 32901 | .unused, |
| | 32902 | .unused, |
| | 32903 | .unused, |
| | 32904 | }, |
| | 32905 | .dst_temps = .{.{ .ref = .src0 }}, |
| | 32906 | .each = .{ .once = &.{ |
| | 32907 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 32908 | .{ ._, ._ps, .@"and", .dst0x, .lea(.tmp0x), ._, ._ }, |
| | 32909 | } }, |
| | 32910 | }, .{ |
| | 32911 | .required_features = .{ .avx2, null, null, null }, |
| | 32912 | .src_constraints = .{ .{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 32913 | .dst_constraints = .{.{ .scalar_signed_int = .{ .of = .yword, .is = .qword } }}, |
| | 32914 | .patterns = &.{ |
| | 32915 | .{ .src = .{ .to_sse, .none } }, |
| | 32916 | }, |
| | 32917 | .extra_temps = .{ |
| | 32918 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 32919 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 32920 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 32921 | .unused, |
| | 32922 | .unused, |
| | 32923 | .unused, |
| | 32924 | .unused, |
| | 32925 | .unused, |
| | 32926 | .unused, |
| | 32927 | }, |
| | 32928 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 32929 | .each = .{ .once = &.{ |
| | 32930 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 32931 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 32932 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| | 32933 | .{ ._, .vp_q, .add, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 32934 | .{ ._, .vp_, .xor, .dst0y, .dst0y, .lea(.tmp0y), ._ }, |
| | 32935 | } }, |
| | 32936 | }, .{ |
| | 32937 | .required_features = .{ .avx2, null, null, null }, |
| | 32938 | .src_constraints = .{ .{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 32939 | .dst_constraints = .{.{ .scalar_unsigned_int = .{ .of = .yword, .is = .qword } }}, |
| | 32940 | .patterns = &.{ |
| | 32941 | .{ .src = .{ .to_sse, .none } }, |
| | 32942 | }, |
| | 32943 | .extra_temps = .{ |
| | 32944 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 32945 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0 } } }, |
| | 32946 | .unused, |
| | 32947 | .unused, |
| | 32948 | .unused, |
| | 32949 | .unused, |
| | 32950 | .unused, |
| | 32951 | .unused, |
| | 32952 | .unused, |
| | 32953 | }, |
| | 32954 | .dst_temps = .{.{ .mut_rc = .{ .ref = .src0, .rc = .sse } }}, |
| | 32955 | .each = .{ .once = &.{ |
| | 32956 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| | 32957 | .{ ._, .vp_, .@"and", .dst0y, .src0y, .lea(.tmp0y), ._ }, |
| | 32958 | } }, |
| | 32959 | }, .{ |
| | 32960 | .required_features = .{ .avx2, null, null, null }, |
| | 32961 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 32962 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .qword } }}, |
| | 32963 | .patterns = &.{ |
| | 32964 | .{ .src = .{ .to_mem, .none } }, |
| | 32965 | }, |
| | 32966 | .extra_temps = .{ |
| | 32967 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 32968 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| | 32969 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| | 32970 | .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } }, |
| | 32971 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 32972 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 32973 | .unused, |
| | 32974 | .unused, |
| | 32975 | .unused, |
| | 32976 | }, |
| | 32977 | .dst_temps = .{.mem}, |
| | 32978 | .clobbers = .{ .eflags = true }, |
| | 32979 | .each = .{ .once = &.{ |
| | 32980 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| | 32981 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| | 32982 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 32983 | .{ ._, .v_dqa, .mov, .tmp2y, .lea(.tmp0y), ._, ._ }, |
| | 32984 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 32985 | .{ .@"0:", .vp_, .@"and", .tmp3y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| | 32986 | .{ ._, .vp_q, .add, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| | 32987 | .{ ._, .vp_, .xor, .tmp3y, .tmp3y, .tmp2y, ._ }, |
| | 32988 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp3y, ._, ._ }, |
| | 32989 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 32990 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 32991 | } }, |
| | 32992 | }, .{ |
| | 32993 | .required_features = .{ .avx2, null, null, null }, |
| | 32994 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }, .any }, |
| | 32995 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .qword } }}, |
| | 32996 | .patterns = &.{ |
| | 32997 | .{ .src = .{ .to_mem, .none } }, |
| | 32998 | }, |
| | 32999 | .extra_temps = .{ |
| | 33000 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33001 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| | 33002 | .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } }, |
| | 33003 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 33004 | .unused, |
| | 33005 | .unused, |
| | 33006 | .unused, |
| | 33007 | .unused, |
| | 33008 | .unused, |
| | 33009 | }, |
| | 33010 | .dst_temps = .{.mem}, |
| | 33011 | .clobbers = .{ .eflags = true }, |
| | 33012 | .each = .{ .once = &.{ |
| | 33013 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 33014 | .{ ._, .v_dqa, .mov, .tmp1y, .lea(.tmp0y), ._, ._ }, |
| | 33015 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33016 | .{ .@"0:", .vp_, .@"and", .tmp2y, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._ }, |
| | 33017 | .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| | 33018 | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| | 33019 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33020 | } }, |
| | 33021 | }, .{ |
| | 33022 | .required_features = .{ .avx, null, null, null }, |
| | 33023 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 33024 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| | 33025 | .patterns = &.{ |
| | 33026 | .{ .src = .{ .to_mem, .none } }, |
| | 33027 | }, |
| | 33028 | .extra_temps = .{ |
| | 33029 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33030 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 33031 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 33032 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 33033 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 33034 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 33035 | .unused, |
| | 33036 | .unused, |
| | 33037 | .unused, |
| | 33038 | }, |
| | 33039 | .dst_temps = .{.mem}, |
| | 33040 | .clobbers = .{ .eflags = true }, |
| | 33041 | .each = .{ .once = &.{ |
| | 33042 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| | 33043 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 33044 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 33045 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 33046 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33047 | .{ .@"0:", .vp_, .@"and", .tmp3x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| | 33048 | .{ ._, .vp_q, .add, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| | 33049 | .{ ._, .vp_, .xor, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| | 33050 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 33051 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 33052 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33053 | } }, |
| | 33054 | }, .{ |
| | 33055 | .required_features = .{ .avx, null, null, null }, |
| | 33056 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 33057 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| | 33058 | .patterns = &.{ |
| | 33059 | .{ .src = .{ .to_mem, .none } }, |
| | 33060 | }, |
| | 33061 | .extra_temps = .{ |
| | 33062 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33063 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 33064 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 33065 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 33066 | .unused, |
| | 33067 | .unused, |
| | 33068 | .unused, |
| | 33069 | .unused, |
| | 33070 | .unused, |
| | 33071 | }, |
| | 33072 | .dst_temps = .{.mem}, |
| | 33073 | .clobbers = .{ .eflags = true }, |
| | 33074 | .each = .{ .once = &.{ |
| | 33075 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 33076 | .{ ._, .v_dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 33077 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33078 | .{ .@"0:", .vp_, .@"and", .tmp2x, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._ }, |
| | 33079 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 33080 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 33081 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33082 | } }, |
| | 33083 | }, .{ |
| | 33084 | .required_features = .{ .sse2, null, null, null }, |
| | 33085 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 33086 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .qword } }}, |
| | 33087 | .patterns = &.{ |
| | 33088 | .{ .src = .{ .to_mem, .none } }, |
| | 33089 | }, |
| | 33090 | .extra_temps = .{ |
| | 33091 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33092 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 33093 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 33094 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| | 33095 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 33096 | .{ .kind = .{ .smin_mem = .{ .ref = .dst0 } } }, |
| | 33097 | .unused, |
| | 33098 | .unused, |
| | 33099 | .unused, |
| | 33100 | }, |
| | 33101 | .dst_temps = .{.mem}, |
| | 33102 | .clobbers = .{ .eflags = true }, |
| | 33103 | .each = .{ .once = &.{ |
| | 33104 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp4), ._, ._ }, |
| | 33105 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 33106 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp5), ._, ._ }, |
| | 33107 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| | 33108 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33109 | .{ .@"0:", ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ }, |
| | 33110 | .{ ._, .p_, .@"and", .tmp3x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33111 | .{ ._, .p_q, .add, .tmp3x, .tmp2x, ._, ._ }, |
| | 33112 | .{ ._, .p_, .xor, .tmp3x, .tmp2x, ._, ._ }, |
| | 33113 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| | 33114 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 33115 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33116 | } }, |
| | 33117 | }, .{ |
| | 33118 | .required_features = .{ .sse2, null, null, null }, |
| | 33119 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 33120 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| | 33121 | .patterns = &.{ |
| | 33122 | .{ .src = .{ .to_mem, .none } }, |
| | 33123 | }, |
| | 33124 | .extra_temps = .{ |
| | 33125 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33126 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 33127 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 33128 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 33129 | .unused, |
| | 33130 | .unused, |
| | 33131 | .unused, |
| | 33132 | .unused, |
| | 33133 | .unused, |
| | 33134 | }, |
| | 33135 | .dst_temps = .{.mem}, |
| | 33136 | .clobbers = .{ .eflags = true }, |
| | 33137 | .each = .{ .once = &.{ |
| | 33138 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 33139 | .{ ._, ._dqa, .mov, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 33140 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33141 | .{ .@"0:", ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| | 33142 | .{ ._, .p_, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33143 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 33144 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 33145 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33146 | } }, |
| | 33147 | }, .{ |
| | 33148 | .required_features = .{ .sse, null, null, null }, |
| | 33149 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }, .any }, |
| | 33150 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| | 33151 | .patterns = &.{ |
| | 33152 | .{ .src = .{ .to_mem, .none } }, |
| | 33153 | }, |
| | 33154 | .extra_temps = .{ |
| | 33155 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33156 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 33157 | .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } }, |
| | 33158 | .{ .kind = .{ .umax_mem = .{ .ref = .dst0, .to_signedness = .unsigned } } }, |
| | 33159 | .unused, |
| | 33160 | .unused, |
| | 33161 | .unused, |
| | 33162 | .unused, |
| | 33163 | .unused, |
| | 33164 | }, |
| | 33165 | .dst_temps = .{.mem}, |
| | 33166 | .clobbers = .{ .eflags = true }, |
| | 33167 | .each = .{ .once = &.{ |
| | 33168 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp3), ._, ._ }, |
| | 33169 | .{ ._, ._ps, .mova, .tmp1x, .lea(.tmp0x), ._, ._ }, |
| | 33170 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33171 | .{ .@"0:", ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| | 33172 | .{ ._, ._ps, .@"and", .tmp2x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33173 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp2x, ._, ._ }, |
| | 33174 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| | 33175 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33176 | } }, |
| | 33177 | }, .{ |
| | 33178 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33179 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 33180 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, |
| | 33181 | .patterns = &.{ |
| | 33182 | .{ .src = .{ .to_mem, .none } }, |
| | 33183 | }, |
| | 33184 | .extra_temps = .{ |
| | 33185 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33186 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33187 | .unused, |
| | 33188 | .unused, |
| | 33189 | .unused, |
| | 33190 | .unused, |
| | 33191 | .unused, |
| | 33192 | .unused, |
| | 33193 | .unused, |
| | 33194 | }, |
| | 33195 | .dst_temps = .{.mem}, |
| | 33196 | .clobbers = .{ .eflags = true }, |
| | 33197 | .each = .{ .once = &.{ |
| | 33198 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33199 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33200 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 33201 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33202 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33203 | } }, |
| | 33204 | }, .{ |
| | 33205 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33206 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 33207 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, |
| | 33208 | .patterns = &.{ |
| | 33209 | .{ .src = .{ .to_mem, .none } }, |
| | 33210 | }, |
| | 33211 | .extra_temps = .{ |
| | 33212 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33213 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 33214 | .unused, |
| | 33215 | .unused, |
| | 33216 | .unused, |
| | 33217 | .unused, |
| | 33218 | .unused, |
| | 33219 | .unused, |
| | 33220 | .unused, |
| | 33221 | }, |
| | 33222 | .dst_temps = .{.mem}, |
| | 33223 | .clobbers = .{ .eflags = true }, |
| | 33224 | .each = .{ .once = &.{ |
| | 33225 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33226 | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33227 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 33228 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 33229 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 33230 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33231 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33232 | } }, |
| | 33233 | }, .{ |
| | 33234 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 33235 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 33236 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| | 33237 | .patterns = &.{ |
| | 33238 | .{ .src = .{ .to_mem, .none } }, |
| | 33239 | }, |
| | 33240 | .extra_temps = .{ |
| | 33241 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33242 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 33243 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33244 | .unused, |
| | 33245 | .unused, |
| | 33246 | .unused, |
| | 33247 | .unused, |
| | 33248 | .unused, |
| | 33249 | .unused, |
| | 33250 | }, |
| | 33251 | .dst_temps = .{.mem}, |
| | 33252 | .clobbers = .{ .eflags = true }, |
| | 33253 | .each = .{ .once = &.{ |
| | 33254 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33255 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 33256 | .{ .@"0:", ._, .bzhi, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| | 33257 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 33258 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33259 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33260 | } }, |
| | 33261 | }, .{ |
| | 33262 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33263 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| | 33264 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| | 33265 | .patterns = &.{ |
| | 33266 | .{ .src = .{ .to_mem, .none } }, |
| | 33267 | }, |
| | 33268 | .extra_temps = .{ |
| | 33269 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33270 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33271 | .unused, |
| | 33272 | .unused, |
| | 33273 | .unused, |
| | 33274 | .unused, |
| | 33275 | .unused, |
| | 33276 | .unused, |
| | 33277 | .unused, |
| | 33278 | }, |
| | 33279 | .dst_temps = .{.mem}, |
| | 33280 | .clobbers = .{ .eflags = true }, |
| | 33281 | .each = .{ .once = &.{ |
| | 33282 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33283 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 33284 | .{ ._, ._, .@"and", .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33285 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 33286 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33287 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33288 | } }, |
| | 33289 | }, .{ |
| | 33290 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33291 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 33292 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, |
| | 33293 | .patterns = &.{ |
| | 33294 | .{ .src = .{ .to_mem, .none } }, |
| | 33295 | }, |
| | 33296 | .extra_temps = .{ |
| | 33297 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33298 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33299 | .unused, |
| | 33300 | .unused, |
| | 33301 | .unused, |
| | 33302 | .unused, |
| | 33303 | .unused, |
| | 33304 | .unused, |
| | 33305 | .unused, |
| | 33306 | }, |
| | 33307 | .dst_temps = .{.mem}, |
| | 33308 | .clobbers = .{ .eflags = true }, |
| | 33309 | .each = .{ .once = &.{ |
| | 33310 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33311 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33312 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 33313 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33314 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33315 | } }, |
| | 33316 | }, .{ |
| | 33317 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33318 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 33319 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, |
| | 33320 | .patterns = &.{ |
| | 33321 | .{ .src = .{ .to_mem, .none } }, |
| | 33322 | }, |
| | 33323 | .extra_temps = .{ |
| | 33324 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33325 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 33326 | .unused, |
| | 33327 | .unused, |
| | 33328 | .unused, |
| | 33329 | .unused, |
| | 33330 | .unused, |
| | 33331 | .unused, |
| | 33332 | .unused, |
| | 33333 | }, |
| | 33334 | .dst_temps = .{.mem}, |
| | 33335 | .clobbers = .{ .eflags = true }, |
| | 33336 | .each = .{ .once = &.{ |
| | 33337 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33338 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33339 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 33340 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 33341 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 33342 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33343 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33344 | } }, |
| | 33345 | }, .{ |
| | 33346 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 33347 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 33348 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| | 33349 | .patterns = &.{ |
| | 33350 | .{ .src = .{ .to_mem, .none } }, |
| | 33351 | }, |
| | 33352 | .extra_temps = .{ |
| | 33353 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33354 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 33355 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33356 | .unused, |
| | 33357 | .unused, |
| | 33358 | .unused, |
| | 33359 | .unused, |
| | 33360 | .unused, |
| | 33361 | .unused, |
| | 33362 | }, |
| | 33363 | .dst_temps = .{.mem}, |
| | 33364 | .clobbers = .{ .eflags = true }, |
| | 33365 | .each = .{ .once = &.{ |
| | 33366 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33367 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 33368 | .{ .@"0:", ._, .bzhi, .tmp2q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| | 33369 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 33370 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33371 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33372 | } }, |
| | 33373 | }, .{ |
| | 33374 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33375 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| | 33376 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| | 33377 | .patterns = &.{ |
| | 33378 | .{ .src = .{ .to_mem, .none } }, |
| | 33379 | }, |
| | 33380 | .extra_temps = .{ |
| | 33381 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33382 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33383 | .unused, |
| | 33384 | .unused, |
| | 33385 | .unused, |
| | 33386 | .unused, |
| | 33387 | .unused, |
| | 33388 | .unused, |
| | 33389 | .unused, |
| | 33390 | }, |
| | 33391 | .dst_temps = .{.mem}, |
| | 33392 | .clobbers = .{ .eflags = true }, |
| | 33393 | .each = .{ .once = &.{ |
| | 33394 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33395 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 33396 | .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33397 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 33398 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33399 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33400 | } }, |
| | 33401 | }, .{ |
| | 33402 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33403 | .src_constraints = .{ .{ .multiple_scalar_int = .{ .of = .yword, .is = .yword } }, .any }, |
| | 33404 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, |
| | 33405 | .patterns = &.{ |
| | 33406 | .{ .src = .{ .to_mem, .none } }, |
| | 33407 | }, |
| | 33408 | .extra_temps = .{ |
| | 33409 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33410 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33411 | .unused, |
| | 33412 | .unused, |
| | 33413 | .unused, |
| | 33414 | .unused, |
| | 33415 | .unused, |
| | 33416 | .unused, |
| | 33417 | .unused, |
| | 33418 | }, |
| | 33419 | .dst_temps = .{.mem}, |
| | 33420 | .clobbers = .{ .eflags = true }, |
| | 33421 | .each = .{ .once = &.{ |
| | 33422 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33423 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33424 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 33425 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33426 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33427 | } }, |
| | 33428 | }, .{ |
| | 33429 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33430 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .yword } }, .any }, |
| | 33431 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, |
| | 33432 | .patterns = &.{ |
| | 33433 | .{ .src = .{ .to_mem, .none } }, |
| | 33434 | }, |
| | 33435 | .extra_temps = .{ |
| | 33436 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33437 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 33438 | .unused, |
| | 33439 | .unused, |
| | 33440 | .unused, |
| | 33441 | .unused, |
| | 33442 | .unused, |
| | 33443 | .unused, |
| | 33444 | .unused, |
| | 33445 | }, |
| | 33446 | .dst_temps = .{.mem}, |
| | 33447 | .clobbers = .{ .eflags = true }, |
| | 33448 | .each = .{ .once = &.{ |
| | 33449 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33450 | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33451 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 33452 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 33453 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 33454 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33455 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33456 | } }, |
| | 33457 | }, .{ |
| | 33458 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 33459 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any }, |
| | 33460 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| | 33461 | .patterns = &.{ |
| | 33462 | .{ .src = .{ .to_mem, .none } }, |
| | 33463 | }, |
| | 33464 | .extra_temps = .{ |
| | 33465 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33466 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 33467 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33468 | .unused, |
| | 33469 | .unused, |
| | 33470 | .unused, |
| | 33471 | .unused, |
| | 33472 | .unused, |
| | 33473 | .unused, |
| | 33474 | }, |
| | 33475 | .dst_temps = .{.mem}, |
| | 33476 | .clobbers = .{ .eflags = true }, |
| | 33477 | .each = .{ .once = &.{ |
| | 33478 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33479 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 33480 | .{ .@"0:", ._, .bzhi, .tmp2q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._ }, |
| | 33481 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 33482 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33483 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33484 | } }, |
| | 33485 | }, .{ |
| | 33486 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33487 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .yword } }, .any }, |
| | 33488 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| | 33489 | .patterns = &.{ |
| | 33490 | .{ .src = .{ .to_mem, .none } }, |
| | 33491 | }, |
| | 33492 | .extra_temps = .{ |
| | 33493 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33494 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33495 | .unused, |
| | 33496 | .unused, |
| | 33497 | .unused, |
| | 33498 | .unused, |
| | 33499 | .unused, |
| | 33500 | .unused, |
| | 33501 | .unused, |
| | 33502 | }, |
| | 33503 | .dst_temps = .{.mem}, |
| | 33504 | .clobbers = .{ .eflags = true }, |
| | 33505 | .each = .{ .once = &.{ |
| | 33506 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33507 | .{ .@"0:", ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 33508 | .{ ._, ._, .@"and", .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| | 33509 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| | 33510 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33511 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33512 | } }, |
| | 33513 | }, .{ |
| | 33514 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33515 | .src_constraints = .{ .any_scalar_int, .any }, |
| | 33516 | .dst_constraints = .{.{ .multiple_scalar_exact_int = .{ .of = .qword, .is = 64 } }}, |
| | 33517 | .patterns = &.{ |
| | 33518 | .{ .src = .{ .to_mem, .none } }, |
| | 33519 | }, |
| | 33520 | .extra_temps = .{ |
| | 33521 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33522 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33523 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33524 | .unused, |
| | 33525 | .unused, |
| | 33526 | .unused, |
| | 33527 | .unused, |
| | 33528 | .unused, |
| | 33529 | .unused, |
| | 33530 | }, |
| | 33531 | .dst_temps = .{.mem}, |
| | 33532 | .clobbers = .{ .eflags = true }, |
| | 33533 | .each = .{ .once = &.{ |
| | 33534 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33535 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 33536 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| | 33537 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 33538 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 33539 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33540 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33541 | } }, |
| | 33542 | }, .{ |
| | 33543 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33544 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 33545 | .dst_constraints = .{.{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }}, |
| | 33546 | .patterns = &.{ |
| | 33547 | .{ .src = .{ .to_mem, .none } }, |
| | 33548 | }, |
| | 33549 | .extra_temps = .{ |
| | 33550 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33551 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33552 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 33553 | .unused, |
| | 33554 | .unused, |
| | 33555 | .unused, |
| | 33556 | .unused, |
| | 33557 | .unused, |
| | 33558 | .unused, |
| | 33559 | }, |
| | 33560 | .dst_temps = .{.mem}, |
| | 33561 | .clobbers = .{ .eflags = true }, |
| | 33562 | .each = .{ .once = &.{ |
| | 33563 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33564 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 33565 | .{ .@"0:", ._, .mov, .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| | 33566 | .{ ._, ._l, .sa, .tmp2q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 33567 | .{ ._, ._r, .sa, .tmp2q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, |
| | 33568 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 33569 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 33570 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33571 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33572 | } }, |
| | 33573 | }, .{ |
| | 33574 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 33575 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 33576 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| | 33577 | .patterns = &.{ |
| | 33578 | .{ .src = .{ .to_mem, .none } }, |
| | 33579 | }, |
| | 33580 | .extra_temps = .{ |
| | 33581 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33582 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33583 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 33584 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33585 | .unused, |
| | 33586 | .unused, |
| | 33587 | .unused, |
| | 33588 | .unused, |
| | 33589 | .unused, |
| | 33590 | }, |
| | 33591 | .dst_temps = .{.mem}, |
| | 33592 | .clobbers = .{ .eflags = true }, |
| | 33593 | .each = .{ .once = &.{ |
| | 33594 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33595 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 33596 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| | 33597 | .{ .@"0:", ._, .bzhi, .tmp3q, .memi(.src0q, .tmp1), .tmp2q, ._ }, |
| | 33598 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| | 33599 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 33600 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33601 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33602 | } }, |
| | 33603 | }, .{ |
| | 33604 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33605 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| | 33606 | .dst_constraints = .{.{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }}, |
| | 33607 | .patterns = &.{ |
| | 33608 | .{ .src = .{ .to_mem, .none } }, |
| | 33609 | }, |
| | 33610 | .extra_temps = .{ |
| | 33611 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 33612 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33613 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 33614 | .unused, |
| | 33615 | .unused, |
| | 33616 | .unused, |
| | 33617 | .unused, |
| | 33618 | .unused, |
| | 33619 | .unused, |
| | 33620 | }, |
| | 33621 | .dst_temps = .{.mem}, |
| | 33622 | .clobbers = .{ .eflags = true }, |
| | 33623 | .each = .{ .once = &.{ |
| | 33624 | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| | 33625 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 33626 | .{ .@"0:", ._, .mov, .tmp2q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 33627 | .{ ._, ._, .@"and", .tmp2q, .memi(.src0q, .tmp1), ._, ._ }, |
| | 33628 | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| | 33629 | .{ ._, ._, .lea, .tmp1d, .leaa(.tmp1, .add_src0_elem_size), ._, ._ }, |
| | 33630 | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| | 33631 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 33632 | } }, |
| | 33633 | }, .{ |
| | 33634 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 33635 | .src_constraints = .{ .any_scalar_int, .any }, |
| | 33636 | .dst_constraints = .{.{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }}, |
| | 33637 | .patterns = &.{ |
| | 33638 | .{ .src = .{ .to_mem, .none } }, |
| | 33639 | }, |
| | 33640 | .extra_temps = .{ |
| | 33641 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33642 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 33643 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 33644 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 33645 | .unused, |
| | 33646 | .unused, |
| | 33647 | .unused, |
| | 33648 | .unused, |
| | 33649 | .unused, |
| | 33650 | }, |
| | 33651 | .dst_temps = .{.mem}, |
| | 33652 | .clobbers = .{ .eflags = true }, |
| | 33653 | .each = .{ .once = &.{ |
| | 33654 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 33655 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 33656 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 33657 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, |
| | 33658 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 33659 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 33660 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 33661 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 33662 | } }, |
| | 33663 | }, .{ |
| | 33664 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33665 | .src_constraints = .{ .any_scalar_int, .any }, |
| | 33666 | .dst_constraints = .{.{ .scalar_exact_remainder_int = .{ .of = .xword, .is = .xword } }}, |
| | 33667 | .patterns = &.{ |
| | 33668 | .{ .src = .{ .to_mem, .none } }, |
| | 33669 | }, |
| | 33670 | .extra_temps = .{ |
| | 33671 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33672 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 33673 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 33674 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 33675 | .unused, |
| | 33676 | .unused, |
| | 33677 | .unused, |
| | 33678 | .unused, |
| | 33679 | .unused, |
| | 33680 | }, |
| | 33681 | .dst_temps = .{.mem}, |
| | 33682 | .clobbers = .{ .eflags = true }, |
| | 33683 | .each = .{ .once = &.{ |
| | 33684 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 33685 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 33686 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 33687 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.dst0, .add_elem_size_div_8), ._, ._ }, |
| | 33688 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 33689 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 33690 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 33691 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 33692 | } }, |
| | 33693 | }, .{ |
| | 33694 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 33695 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 33696 | .dst_constraints = .{.{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| | 33697 | .patterns = &.{ |
| | 33698 | .{ .src = .{ .to_mem, .none } }, |
| | 33699 | }, |
| | 33700 | .extra_temps = .{ |
| | 33701 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33702 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 33703 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 33704 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 33705 | .unused, |
| | 33706 | .unused, |
| | 33707 | .unused, |
| | 33708 | .unused, |
| | 33709 | .unused, |
| | 33710 | }, |
| | 33711 | .dst_temps = .{.mem}, |
| | 33712 | .clobbers = .{ .eflags = true }, |
| | 33713 | .each = .{ .once = &.{ |
| | 33714 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 33715 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 33716 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 33717 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 33718 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 33719 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| | 33720 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 33721 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 33722 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| | 33723 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 33724 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 33725 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 33726 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 33727 | } }, |
| | 33728 | }, .{ |
| | 33729 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33730 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 33731 | .dst_constraints = .{.{ .scalar_exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| | 33732 | .patterns = &.{ |
| | 33733 | .{ .src = .{ .to_mem, .none } }, |
| | 33734 | }, |
| | 33735 | .extra_temps = .{ |
| | 33736 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33737 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 33738 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 33739 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 33740 | .unused, |
| | 33741 | .unused, |
| | 33742 | .unused, |
| | 33743 | .unused, |
| | 33744 | .unused, |
| | 33745 | }, |
| | 33746 | .dst_temps = .{.mem}, |
| | 33747 | .clobbers = .{ .eflags = true }, |
| | 33748 | .each = .{ .once = &.{ |
| | 33749 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 33750 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 33751 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 33752 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 33753 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 33754 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| | 33755 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 33756 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 33757 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| | 33758 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 33759 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 33760 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 33761 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 33762 | } }, |
| | 33763 | }, .{ |
| | 33764 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 33765 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 33766 | .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| | 33767 | .patterns = &.{ |
| | 33768 | .{ .src = .{ .to_mem, .none } }, |
| | 33769 | }, |
| | 33770 | .extra_temps = .{ |
| | 33771 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33772 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 33773 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 33774 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 33775 | .unused, |
| | 33776 | .unused, |
| | 33777 | .unused, |
| | 33778 | .unused, |
| | 33779 | .unused, |
| | 33780 | }, |
| | 33781 | .dst_temps = .{.mem}, |
| | 33782 | .clobbers = .{ .eflags = true }, |
| | 33783 | .each = .{ .once = &.{ |
| | 33784 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 33785 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 33786 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 33787 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 33788 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 33789 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| | 33790 | .{ ._, ._l, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 33791 | .{ ._, ._r, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 33792 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 33793 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 33794 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| | 33795 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 33796 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 33797 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 33798 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 33799 | } }, |
| | 33800 | }, .{ |
| | 33801 | .required_features = .{ .@"64bit", null, null, null }, |
| | 33802 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 33803 | .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, |
| | 33804 | .patterns = &.{ |
| | 33805 | .{ .src = .{ .to_mem, .none } }, |
| | 33806 | }, |
| | 33807 | .extra_temps = .{ |
| | 33808 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 33809 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| | 33810 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 33811 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| | 33812 | .unused, |
| | 33813 | .unused, |
| | 33814 | .unused, |
| | 33815 | .unused, |
| | 33816 | .unused, |
| | 33817 | }, |
| | 33818 | .dst_temps = .{.mem}, |
| | 33819 | .clobbers = .{ .eflags = true }, |
| | 33820 | .each = .{ .once = &.{ |
| | 33821 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| | 33822 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 33823 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 33824 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 33825 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 33826 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp1q), ._, ._ }, |
| | 33827 | .{ ._, ._l, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 33828 | .{ ._, ._r, .sa, .tmp3q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 33829 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 33830 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 33831 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .tmp3q, ._, ._ }, |
| | 33832 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 33833 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 33834 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 33835 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 33836 | } }, |
| | 33837 | }, .{ |
| | 33838 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 33839 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| | 33840 | .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }}, |
| 28718 | .patterns = &.{ | 33841 | .patterns = &.{ |
| 28719 | .{ .src = .{ .to_mem, .none } }, | 33842 | .{ .src = .{ .to_mem, .none } }, |
| 28720 | }, | 33843 | }, |
| ... | @@ -28723,7 +33846,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28723,7 +33846,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28723 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 33846 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28724 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 33847 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28725 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 33848 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28726 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 33849 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 28727 | .unused, | 33850 | .unused, |
| 28728 | .unused, | 33851 | .unused, |
| 28729 | .unused, | 33852 | .unused, |
| ... | @@ -28735,20 +33858,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28735,20 +33858,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28735 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 33858 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28736 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 33859 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28737 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 33860 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28738 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, | 33861 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 28739 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 33862 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28740 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, | 33863 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp1q), ._, ._ }, |
| | 33864 | .{ ._, ._l, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 33865 | .{ ._, ._r, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 28741 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | 33866 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 28742 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, | 33867 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 28743 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | | |
| 28744 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 28745 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | 33868 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 28746 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | 33869 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 28747 | } }, | 33870 | } }, |
| 28748 | }, .{ | 33871 | }, .{ |
| 28749 | .required_features = .{ .@"64bit", null, null, null }, | 33872 | .required_features = .{ .@"64bit", null, null, null }, |
| 28750 | .src_constraints = .{ .any_scalar_signed_int, .any }, | 33873 | .src_constraints = .{ .any_scalar_signed_int, .any }, |
| 28751 | .dst_constraints = .{.any_scalar_signed_int}, | 33874 | .dst_constraints = .{.{ .scalar_remainder_signed_int = .{ .of = .xword, .is = .xword } }}, |
| 28752 | .patterns = &.{ | 33875 | .patterns = &.{ |
| 28753 | .{ .src = .{ .to_mem, .none } }, | 33876 | .{ .src = .{ .to_mem, .none } }, |
| 28754 | }, | 33877 | }, |
| ... | @@ -28757,7 +33880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28757,7 +33880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28757 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 33880 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28758 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 33881 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28759 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 33882 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28760 | .{ .type = .i64, .kind = .{ .reg = .rax } }, | 33883 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 28761 | .unused, | 33884 | .unused, |
| 28762 | .unused, | 33885 | .unused, |
| 28763 | .unused, | 33886 | .unused, |
| ... | @@ -28769,20 +33892,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28769,20 +33892,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28769 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 33892 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28770 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 33893 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28771 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 33894 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28772 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, | 33895 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 28773 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 33896 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28774 | .{ ._, ._sq, .lod, ._, ._, ._, ._ }, | 33897 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp1q), ._, ._ }, |
| | 33898 | .{ ._, ._l, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| | 33899 | .{ ._, ._r, .sa, .tmp4q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, |
| 28775 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, | 33900 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 28776 | .{ ._, ._r, .sa, .tmp4q, .ui(63), ._, ._ }, | 33901 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 28777 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | | |
| 28778 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 28779 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | 33902 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 28780 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 33903 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 28781 | } }, | 33904 | } }, |
| 28782 | }, .{ | 33905 | }, .{ |
| 28783 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 33906 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 28784 | .src_constraints = .{ .any_scalar_int, .any }, | 33907 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 28785 | .dst_constraints = .{.any_scalar_int}, | 33908 | .dst_constraints = .{.{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 28786 | .patterns = &.{ | 33909 | .patterns = &.{ |
| 28787 | .{ .src = .{ .to_mem, .none } }, | 33910 | .{ .src = .{ .to_mem, .none } }, |
| 28788 | }, | 33911 | }, |
| ... | @@ -28790,8 +33913,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28790,8 +33913,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28790 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 33913 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 28791 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 33914 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28792 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 33915 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28793 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | | |
| 28794 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 33916 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 33917 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28795 | .unused, | 33918 | .unused, |
| 28796 | .unused, | 33919 | .unused, |
| 28797 | .unused, | 33920 | .unused, |
| ... | @@ -28803,18 +33926,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28803,18 +33926,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28803 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 33926 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28804 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 33927 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28805 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 33928 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28806 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, | 33929 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 33930 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 28807 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 33931 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28808 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 33932 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 28809 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | 33933 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 28810 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 28811 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | 33934 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 28812 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, | 33935 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 28813 | } }, | 33936 | } }, |
| 28814 | }, .{ | 33937 | }, .{ |
| 28815 | .required_features = .{ .@"64bit", null, null, null }, | 33938 | .required_features = .{ .@"64bit", null, null, null }, |
| 28816 | .src_constraints = .{ .any_scalar_int, .any }, | 33939 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 28817 | .dst_constraints = .{.any_scalar_int}, | 33940 | .dst_constraints = .{.{ .scalar_exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 28818 | .patterns = &.{ | 33941 | .patterns = &.{ |
| 28819 | .{ .src = .{ .to_mem, .none } }, | 33942 | .{ .src = .{ .to_mem, .none } }, |
| 28820 | }, | 33943 | }, |
| ... | @@ -28822,8 +33945,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28822,8 +33945,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28822 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 33945 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 28823 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 33946 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 28824 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 33947 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 28825 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | | |
| 28826 | .{ .type = .u64, .kind = .{ .reg = .rax } }, | 33948 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| | 33949 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 28827 | .unused, | 33950 | .unused, |
| 28828 | .unused, | 33951 | .unused, |
| 28829 | .unused, | 33952 | .unused, |
| ... | @@ -28835,368 +33958,98 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -28835,368 +33958,98 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 28835 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, | 33958 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 28836 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, | 33959 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 28837 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, | 33960 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 28838 | .{ .@"0:", ._, .mov, .tmp3d, .sa(.src0, .add_elem_size_div_8), ._, ._ }, | 33961 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 33962 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 28839 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 33963 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 28840 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, | 33964 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 28841 | .{ ._, ._, .mov, .tmp3d, .sa2(.dst0, .src0, .add_delta_elem_size_div_8), ._, ._ }, | 33965 | .{ ._, ._, .add, .tmp1p, .sa2(.src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 28842 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, | | |
| 28843 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | 33966 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 28844 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 33967 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 28845 | } }, | 33968 | } }, |
| 28846 | } }) catch |err| switch (err) { | | |
| 28847 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | | |
| 28848 | @tagName(air_tag), | | |
| 28849 | dst_ty.fmt(pt), | | |
| 28850 | src_ty.fmt(pt), | | |
| 28851 | ops[0].tracking(cg), | | |
| 28852 | }), | | |
| 28853 | else => |e| return e, | | |
| 28854 | }; | | |
| 28855 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); | | |
| 28856 | }, | | |
| 28857 | .trunc => |air_tag| if (use_old) try cg.airTrunc(inst) else fallback: { | | |
| 28858 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; | | |
| 28859 | if (ty_op.ty.toType().isVector(zcu)) break :fallback try cg.airTrunc(inst); | | |
| 28860 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); | | |
| 28861 | var res: [1]Temp = undefined; | | |
| 28862 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ | | |
| 28863 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, | | |
| 28864 | .dst_constraints = .{.{ .exact_signed_int = 1 }}, | | |
| 28865 | .patterns = &.{ | | |
| 28866 | .{ .src = .{ .to_mut_gpr, .none } }, | | |
| 28867 | }, | | |
| 28868 | .dst_temps = .{.{ .ref = .src0 }}, | | |
| 28869 | .clobbers = .{ .eflags = true }, | | |
| 28870 | .each = .{ .once = &.{ | | |
| 28871 | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, | | |
| 28872 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, | | |
| 28873 | } }, | | |
| 28874 | }, .{ | | |
| 28875 | .src_constraints = .{ .any_signed_int, .any }, | | |
| 28876 | .dst_constraints = .{.{ .exact_signed_int = 1 }}, | | |
| 28877 | .patterns = &.{ | | |
| 28878 | .{ .src = .{ .to_mem, .none } }, | | |
| 28879 | }, | | |
| 28880 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 28881 | .clobbers = .{ .eflags = true }, | | |
| 28882 | .each = .{ .once = &.{ | | |
| 28883 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, | | |
| 28884 | .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ }, | | |
| 28885 | .{ ._, ._, .neg, .dst0d, ._, ._, ._ }, | | |
| 28886 | } }, | | |
| 28887 | }, .{ | | |
| 28888 | .src_constraints = .{ .{ .int = .gpr }, .any }, | | |
| 28889 | .dst_constraints = .{.{ .exact_int = 8 }}, | | |
| 28890 | .patterns = &.{ | | |
| 28891 | .{ .src = .{ .to_mut_gpr, .none } }, | | |
| 28892 | }, | | |
| 28893 | .dst_temps = .{.{ .ref = .src0 }}, | | |
| 28894 | .each = .{ .once = &.{} }, | | |
| 28895 | }, .{ | | |
| 28896 | .src_constraints = .{ .any_signed_int, .any }, | | |
| 28897 | .dst_constraints = .{.{ .exact_signed_int = 8 }}, | | |
| 28898 | .patterns = &.{ | | |
| 28899 | .{ .src = .{ .to_mem, .none } }, | | |
| 28900 | }, | | |
| 28901 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 28902 | .each = .{ .once = &.{ | | |
| 28903 | .{ ._, ._, .movsx, .dst0d, .mem(.src0b), ._, ._ }, | | |
| 28904 | } }, | | |
| 28905 | }, .{ | | |
| 28906 | .src_constraints = .{ .any_unsigned_int, .any }, | | |
| 28907 | .dst_constraints = .{.{ .exact_unsigned_int = 8 }}, | | |
| 28908 | .patterns = &.{ | | |
| 28909 | .{ .src = .{ .to_mem, .none } }, | | |
| 28910 | }, | | |
| 28911 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 28912 | .each = .{ .once = &.{ | | |
| 28913 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, | | |
| 28914 | } }, | | |
| 28915 | }, .{ | | |
| 28916 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, | | |
| 28917 | .dst_constraints = .{.{ .signed_int = .byte }}, | | |
| 28918 | .patterns = &.{ | | |
| 28919 | .{ .src = .{ .to_mut_gpr, .none } }, | | |
| 28920 | }, | | |
| 28921 | .dst_temps = .{.{ .ref = .src0 }}, | | |
| 28922 | .clobbers = .{ .eflags = true }, | | |
| 28923 | .each = .{ .once = &.{ | | |
| 28924 | .{ ._, ._l, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | | |
| 28925 | .{ ._, ._r, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ }, | | |
| 28926 | } }, | | |
| 28927 | }, .{ | | |
| 28928 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, | | |
| 28929 | .dst_constraints = .{.{ .unsigned_int = .byte }}, | | |
| 28930 | .patterns = &.{ | | |
| 28931 | .{ .src = .{ .to_mut_gpr, .none } }, | | |
| 28932 | }, | | |
| 28933 | .dst_temps = .{.{ .ref = .src0 }}, | | |
| 28934 | .clobbers = .{ .eflags = true }, | | |
| 28935 | .each = .{ .once = &.{ | | |
| 28936 | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 28937 | } }, | | |
| 28938 | }, .{ | | |
| 28939 | .src_constraints = .{ .any_int, .any }, | | |
| 28940 | .dst_constraints = .{.{ .unsigned_int = .byte }}, | | |
| 28941 | .patterns = &.{ | | |
| 28942 | .{ .src = .{ .to_mem, .none } }, | | |
| 28943 | }, | | |
| 28944 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 28945 | .clobbers = .{ .eflags = true }, | | |
| 28946 | .each = .{ .once = &.{ | | |
| 28947 | .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ }, | | |
| 28948 | .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 28949 | } }, | | |
| 28950 | }, .{ | | |
| 28951 | .src_constraints = .{ .{ .int = .gpr }, .any }, | | |
| 28952 | .dst_constraints = .{.{ .exact_int = 16 }}, | | |
| 28953 | .patterns = &.{ | | |
| 28954 | .{ .src = .{ .to_mut_gpr, .none } }, | | |
| 28955 | }, | | |
| 28956 | .dst_temps = .{.{ .ref = .src0 }}, | | |
| 28957 | .each = .{ .once = &.{} }, | | |
| 28958 | }, .{ | | |
| 28959 | .src_constraints = .{ .any_signed_int, .any }, | | |
| 28960 | .dst_constraints = .{.{ .exact_signed_int = 16 }}, | | |
| 28961 | .patterns = &.{ | | |
| 28962 | .{ .src = .{ .to_mem, .none } }, | | |
| 28963 | }, | | |
| 28964 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 28965 | .each = .{ .once = &.{ | | |
| 28966 | .{ ._, ._, .movsx, .dst0d, .mem(.src0w), ._, ._ }, | | |
| 28967 | } }, | | |
| 28968 | }, .{ | | |
| 28969 | .src_constraints = .{ .any_unsigned_int, .any }, | | |
| 28970 | .dst_constraints = .{.{ .exact_unsigned_int = 16 }}, | | |
| 28971 | .patterns = &.{ | | |
| 28972 | .{ .src = .{ .to_mem, .none } }, | | |
| 28973 | }, | | |
| 28974 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 28975 | .each = .{ .once = &.{ | | |
| 28976 | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, | | |
| 28977 | } }, | | |
| 28978 | }, .{ | | |
| 28979 | .required_features = .{ .fast_imm16, null, null, null }, | | |
| 28980 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, | | |
| 28981 | .dst_constraints = .{.{ .unsigned_int = .word }}, | | |
| 28982 | .patterns = &.{ | | |
| 28983 | .{ .src = .{ .to_mut_gpr, .none } }, | | |
| 28984 | }, | | |
| 28985 | .dst_temps = .{.{ .ref = .src0 }}, | | |
| 28986 | .clobbers = .{ .eflags = true }, | | |
| 28987 | .each = .{ .once = &.{ | | |
| 28988 | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 28989 | } }, | | |
| 28990 | }, .{ | | |
| 28991 | .required_features = .{ .fast_imm16, null, null, null }, | | |
| 28992 | .src_constraints = .{ .any_unsigned_int, .any }, | | |
| 28993 | .dst_constraints = .{.{ .unsigned_int = .word }}, | | |
| 28994 | .patterns = &.{ | | |
| 28995 | .{ .src = .{ .to_mem, .none } }, | | |
| 28996 | }, | | |
| 28997 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 28998 | .clobbers = .{ .eflags = true }, | | |
| 28999 | .each = .{ .once = &.{ | | |
| 29000 | .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ }, | | |
| 29001 | .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 29002 | } }, | | |
| 29003 | }, .{ | | |
| 29004 | .src_constraints = .{ .{ .int = .gpr }, .any }, | | |
| 29005 | .dst_constraints = .{.{ .exact_int = 32 }}, | | |
| 29006 | .patterns = &.{ | | |
| 29007 | .{ .src = .{ .to_mut_gpr, .none } }, | | |
| 29008 | }, | | |
| 29009 | .dst_temps = .{.{ .ref = .src0 }}, | | |
| 29010 | .each = .{ .once = &.{} }, | | |
| 29011 | }, .{ | | |
| 29012 | .src_constraints = .{ .any_int, .any }, | | |
| 29013 | .dst_constraints = .{.{ .exact_int = 32 }}, | | |
| 29014 | .patterns = &.{ | | |
| 29015 | .{ .src = .{ .to_mem, .none } }, | | |
| 29016 | }, | | |
| 29017 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 29018 | .each = .{ .once = &.{ | | |
| 29019 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, | | |
| 29020 | } }, | | |
| 29021 | }, .{ | | |
| 29022 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, | | |
| 29023 | .dst_constraints = .{.{ .signed_int = .dword }}, | | |
| 29024 | .patterns = &.{ | | |
| 29025 | .{ .src = .{ .to_mut_gpr, .none } }, | | |
| 29026 | }, | | |
| 29027 | .dst_temps = .{.{ .ref = .src0 }}, | | |
| 29028 | .clobbers = .{ .eflags = true }, | | |
| 29029 | .each = .{ .once = &.{ | | |
| 29030 | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | | |
| 29031 | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | | |
| 29032 | } }, | | |
| 29033 | }, .{ | | |
| 29034 | .src_constraints = .{ .any_signed_int, .any }, | | |
| 29035 | .dst_constraints = .{.{ .signed_int = .dword }}, | | |
| 29036 | .patterns = &.{ | | |
| 29037 | .{ .src = .{ .to_mem, .none } }, | | |
| 29038 | }, | | |
| 29039 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 29040 | .clobbers = .{ .eflags = true }, | | |
| 29041 | .each = .{ .once = &.{ | | |
| 29042 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, | | |
| 29043 | .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | | |
| 29044 | .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ }, | | |
| 29045 | } }, | | |
| 29046 | }, .{ | | |
| 29047 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, | | |
| 29048 | .dst_constraints = .{.{ .unsigned_int = .dword }}, | | |
| 29049 | .patterns = &.{ | | |
| 29050 | .{ .src = .{ .to_mut_gpr, .none } }, | | |
| 29051 | }, | | |
| 29052 | .dst_temps = .{.{ .ref = .src0 }}, | | |
| 29053 | .clobbers = .{ .eflags = true }, | | |
| 29054 | .each = .{ .once = &.{ | | |
| 29055 | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 29056 | } }, | | |
| 29057 | }, .{ | | |
| 29058 | .src_constraints = .{ .any_unsigned_int, .any }, | | |
| 29059 | .dst_constraints = .{.{ .unsigned_int = .dword }}, | | |
| 29060 | .patterns = &.{ | | |
| 29061 | .{ .src = .{ .to_mem, .none } }, | | |
| 29062 | }, | | |
| 29063 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 29064 | .clobbers = .{ .eflags = true }, | | |
| 29065 | .each = .{ .once = &.{ | | |
| 29066 | .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ }, | | |
| 29067 | .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ }, | | |
| 29068 | } }, | | |
| 29069 | }, .{ | | |
| 29070 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 29071 | .src_constraints = .{ .any_int, .any }, | | |
| 29072 | .dst_constraints = .{.{ .exact_int = 64 }}, | | |
| 29073 | .patterns = &.{ | | |
| 29074 | .{ .src = .{ .to_mem, .none } }, | | |
| 29075 | }, | | |
| 29076 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 29077 | .each = .{ .once = &.{ | | |
| 29078 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, | | |
| 29079 | } }, | | |
| 29080 | }, .{ | | |
| 29081 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 29082 | .src_constraints = .{ .{ .signed_int = .gpr }, .any }, | | |
| 29083 | .dst_constraints = .{.{ .signed_int = .qword }}, | | |
| 29084 | .patterns = &.{ | | |
| 29085 | .{ .src = .{ .to_mut_gpr, .none } }, | | |
| 29086 | }, | | |
| 29087 | .dst_temps = .{.{ .ref = .src0 }}, | | |
| 29088 | .clobbers = .{ .eflags = true }, | | |
| 29089 | .each = .{ .once = &.{ | | |
| 29090 | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | | |
| 29091 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | | |
| 29092 | } }, | | |
| 29093 | }, .{ | 33969 | }, .{ |
| 29094 | .required_features = .{ .@"64bit", null, null, null }, | 33970 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 29095 | .src_constraints = .{ .any_signed_int, .any }, | 33971 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 29096 | .dst_constraints = .{.{ .signed_int = .qword }}, | 33972 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29097 | .patterns = &.{ | 33973 | .patterns = &.{ |
| 29098 | .{ .src = .{ .to_mem, .none } }, | 33974 | .{ .src = .{ .to_mem, .none } }, |
| 29099 | }, | 33975 | }, |
| 29100 | .dst_temps = .{.{ .rc = .general_purpose }}, | 33976 | .extra_temps = .{ |
| 29101 | .clobbers = .{ .eflags = true }, | 33977 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29102 | .each = .{ .once = &.{ | 33978 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29103 | .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ }, | 33979 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29104 | .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | 33980 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 29105 | .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ }, | 33981 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29106 | } }, | 33982 | .unused, |
| 29107 | }, .{ | 33983 | .unused, |
| 29108 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 33984 | .unused, |
| 29109 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, | 33985 | .unused, |
| 29110 | .dst_constraints = .{.{ .unsigned_int = .qword }}, | | |
| 29111 | .patterns = &.{ | | |
| 29112 | .{ .src = .{ .mem, .none } }, | | |
| 29113 | .{ .src = .{ .to_gpr, .none } }, | | |
| 29114 | }, | 33986 | }, |
| 29115 | .dst_temps = .{.{ .rc = .general_purpose }}, | 33987 | .dst_temps = .{.mem}, |
| 29116 | .clobbers = .{ .eflags = true }, | 33988 | .clobbers = .{ .eflags = true }, |
| 29117 | .each = .{ .once = &.{ | 33989 | .each = .{ .once = &.{ |
| 29118 | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, | 33990 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 29119 | .{ ._, ._, .bzhi, .dst0q, .src0q, .dst0q, ._ }, | 33991 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| | 33992 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 33993 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| | 33994 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| | 33995 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 33996 | .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ }, |
| | 33997 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ }, |
| | 33998 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| | 33999 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 34000 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 34001 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34002 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 29120 | } }, | 34003 | } }, |
| 29121 | }, .{ | 34004 | }, .{ |
| 29122 | .required_features = .{ .@"64bit", .bmi2, null, null }, | 34005 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 29123 | .src_constraints = .{ .any_unsigned_int, .any }, | 34006 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 29124 | .dst_constraints = .{.{ .unsigned_int = .qword }}, | 34007 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29125 | .patterns = &.{ | | |
| 29126 | .{ .src = .{ .to_mem, .none } }, | | |
| 29127 | }, | | |
| 29128 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 29129 | .clobbers = .{ .eflags = true }, | | |
| 29130 | .each = .{ .once = &.{ | | |
| 29131 | .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ }, | | |
| 29132 | .{ ._, ._, .bzhi, .dst0q, .mem(.src0q), .dst0q, ._ }, | | |
| 29133 | } }, | | |
| 29134 | }, .{ | | |
| 29135 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 29136 | .src_constraints = .{ .{ .unsigned_int = .gpr }, .any }, | | |
| 29137 | .dst_constraints = .{.{ .unsigned_int = .qword }}, | | |
| 29138 | .patterns = &.{ | | |
| 29139 | .{ .src = .{ .mem, .none } }, | | |
| 29140 | .{ .src = .{ .to_gpr, .none } }, | | |
| 29141 | }, | | |
| 29142 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 29143 | .clobbers = .{ .eflags = true }, | | |
| 29144 | .each = .{ .once = &.{ | | |
| 29145 | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, | | |
| 29146 | .{ ._, ._, .@"and", .dst0q, .src0q, ._, ._ }, | | |
| 29147 | } }, | | |
| 29148 | }, .{ | | |
| 29149 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 29150 | .src_constraints = .{ .any_unsigned_int, .any }, | | |
| 29151 | .dst_constraints = .{.{ .unsigned_int = .qword }}, | | |
| 29152 | .patterns = &.{ | | |
| 29153 | .{ .src = .{ .to_mem, .none } }, | | |
| 29154 | }, | | |
| 29155 | .dst_temps = .{.{ .rc = .general_purpose }}, | | |
| 29156 | .clobbers = .{ .eflags = true }, | | |
| 29157 | .each = .{ .once = &.{ | | |
| 29158 | .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ }, | | |
| 29159 | .{ ._, ._, .@"and", .dst0q, .mem(.src0q), ._, ._ }, | | |
| 29160 | } }, | | |
| 29161 | }, .{ | | |
| 29162 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 29163 | .src_constraints = .{ .any_int, .any }, | | |
| 29164 | .dst_constraints = .{.{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }}, | | |
| 29165 | .patterns = &.{ | 34008 | .patterns = &.{ |
| 29166 | .{ .src = .{ .to_mem, .none } }, | 34009 | .{ .src = .{ .to_mem, .none } }, |
| 29167 | }, | 34010 | }, |
| 29168 | .extra_temps = .{ | 34011 | .extra_temps = .{ |
| | 34012 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29169 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 34013 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29170 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 34014 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 34015 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 29171 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 34016 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29172 | .unused, | 34017 | .unused, |
| 29173 | .unused, | 34018 | .unused, |
| 29174 | .unused, | 34019 | .unused, |
| 29175 | .unused, | 34020 | .unused, |
| 29176 | .unused, | | |
| 29177 | .unused, | | |
| 29178 | }, | 34021 | }, |
| 29179 | .dst_temps = .{.mem}, | 34022 | .dst_temps = .{.mem}, |
| | 34023 | .clobbers = .{ .eflags = true }, |
| 29180 | .each = .{ .once = &.{ | 34024 | .each = .{ .once = &.{ |
| 29181 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 34025 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 29182 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 34026 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 29183 | .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ }, | 34027 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 34028 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| | 34029 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29184 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 34030 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| | 34031 | .{ ._, ._, .bzhi, .tmp4q, .lea(.tmp1q), .tmp3q, ._ }, |
| | 34032 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp4q, ._, ._ }, |
| | 34033 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| | 34034 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 34035 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 34036 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 34037 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 29185 | } }, | 34038 | } }, |
| 29186 | }, .{ | 34039 | }, .{ |
| 29187 | .required_features = .{ .@"64bit", null, null, null }, | 34040 | .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, |
| 29188 | .src_constraints = .{ .any_signed_int, .any }, | 34041 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 29189 | .dst_constraints = .{.{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }}, | 34042 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 29190 | .patterns = &.{ | 34043 | .patterns = &.{ |
| 29191 | .{ .src = .{ .to_mem, .none } }, | 34044 | .{ .src = .{ .to_mem, .none } }, |
| 29192 | }, | 34045 | }, |
| 29193 | .extra_temps = .{ | 34046 | .extra_temps = .{ |
| | 34047 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29194 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 34048 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29195 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 34049 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 34050 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 29196 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 34051 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29197 | .unused, | 34052 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 29198 | .unused, | | |
| 29199 | .unused, | | |
| 29200 | .unused, | 34053 | .unused, |
| 29201 | .unused, | 34054 | .unused, |
| 29202 | .unused, | 34055 | .unused, |
| ... | @@ -29204,29 +34057,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -29204,29 +34057,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 29204 | .dst_temps = .{.mem}, | 34057 | .dst_temps = .{.mem}, |
| 29205 | .clobbers = .{ .eflags = true }, | 34058 | .clobbers = .{ .eflags = true }, |
| 29206 | .each = .{ .once = &.{ | 34059 | .each = .{ .once = &.{ |
| 29207 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 34060 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 29208 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 34061 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 29209 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | 34062 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 34063 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| | 34064 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29210 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 34065 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29211 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, | 34066 | .{ ._, ._, .bzhi, .tmp5q, .lea(.tmp1q), .tmp3q, ._ }, |
| 29212 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, | 34067 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 29213 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | 34068 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 29214 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, | 34069 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34070 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 29215 | } }, | 34071 | } }, |
| 29216 | }, .{ | 34072 | }, .{ |
| 29217 | .required_features = .{ .@"64bit", null, null, null }, | 34073 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| 29218 | .src_constraints = .{ .any_signed_int, .any }, | 34074 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 29219 | .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }}, | 34075 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 29220 | .patterns = &.{ | 34076 | .patterns = &.{ |
| 29221 | .{ .src = .{ .to_mem, .none } }, | 34077 | .{ .src = .{ .to_mem, .none } }, |
| 29222 | }, | 34078 | }, |
| 29223 | .extra_temps = .{ | 34079 | .extra_temps = .{ |
| | 34080 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29224 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 34081 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29225 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 34082 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 34083 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 29226 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 34084 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29227 | .unused, | 34085 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 29228 | .unused, | | |
| 29229 | .unused, | | |
| 29230 | .unused, | 34086 | .unused, |
| 29231 | .unused, | 34087 | .unused, |
| 29232 | .unused, | 34088 | .unused, |
| ... | @@ -29234,25 +34090,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -29234,25 +34090,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 29234 | .dst_temps = .{.mem}, | 34090 | .dst_temps = .{.mem}, |
| 29235 | .clobbers = .{ .eflags = true }, | 34091 | .clobbers = .{ .eflags = true }, |
| 29236 | .each = .{ .once = &.{ | 34092 | .each = .{ .once = &.{ |
| 29237 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 34093 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 29238 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 34094 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 29239 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | 34095 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 34096 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size_rem_64), ._, ._ }, |
| | 34097 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29240 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 34098 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29241 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, | 34099 | .{ ._, ._, .bzhi, .tmp5q, .lea(.tmp1q), .tmp3q, ._ }, |
| 29242 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 34100 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 29243 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 34101 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| 29244 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, | 34102 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 29245 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | 34103 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 29246 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, | | |
| 29247 | } }, | 34104 | } }, |
| 29248 | }, .{ | 34105 | }, .{ |
| 29249 | .required_features = .{ .@"64bit", null, null, null }, | 34106 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 29250 | .src_constraints = .{ .any_signed_int, .any }, | 34107 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 29251 | .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }}, | 34108 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29252 | .patterns = &.{ | 34109 | .patterns = &.{ |
| 29253 | .{ .src = .{ .to_mem, .none } }, | 34110 | .{ .src = .{ .to_mem, .none } }, |
| 29254 | }, | 34111 | }, |
| 29255 | .extra_temps = .{ | 34112 | .extra_temps = .{ |
| | 34113 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29256 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 34114 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29257 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 34115 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29258 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 34116 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| ... | @@ -29261,28 +34119,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -29261,28 +34119,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 29261 | .unused, | 34119 | .unused, |
| 29262 | .unused, | 34120 | .unused, |
| 29263 | .unused, | 34121 | .unused, |
| 29264 | .unused, | | |
| 29265 | }, | 34122 | }, |
| 29266 | .dst_temps = .{.mem}, | 34123 | .dst_temps = .{.mem}, |
| 29267 | .clobbers = .{ .eflags = true }, | 34124 | .clobbers = .{ .eflags = true }, |
| 29268 | .each = .{ .once = &.{ | 34125 | .each = .{ .once = &.{ |
| 29269 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 34126 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 29270 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 34127 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 29271 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | 34128 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 34129 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29272 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 34130 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29273 | .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, | 34131 | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29274 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 34132 | .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ }, |
| 29275 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ }, | 34133 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| 29276 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, | 34134 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| | 34135 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 34136 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 34137 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34138 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 29277 | } }, | 34139 | } }, |
| 29278 | }, .{ | 34140 | }, .{ |
| 29279 | .required_features = .{ .@"64bit", null, null, null }, | 34141 | .required_features = .{ .@"64bit", null, null, null }, |
| 29280 | .src_constraints = .{ .any_unsigned_int, .any }, | 34142 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 29281 | .dst_constraints = .{.{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, | 34143 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, |
| 29282 | .patterns = &.{ | 34144 | .patterns = &.{ |
| 29283 | .{ .src = .{ .to_mem, .none } }, | 34145 | .{ .src = .{ .to_mem, .none } }, |
| 29284 | }, | 34146 | }, |
| 29285 | .extra_temps = .{ | 34147 | .extra_temps = .{ |
| | 34148 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29286 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 34149 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29287 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 34150 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 29288 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 34151 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| ... | @@ -29291,75 +34154,91 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -29291,75 +34154,91 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 29291 | .unused, | 34154 | .unused, |
| 29292 | .unused, | 34155 | .unused, |
| 29293 | .unused, | 34156 | .unused, |
| 29294 | .unused, | | |
| 29295 | }, | 34157 | }, |
| 29296 | .dst_temps = .{.mem}, | 34158 | .dst_temps = .{.mem}, |
| 29297 | .clobbers = .{ .eflags = true }, | 34159 | .clobbers = .{ .eflags = true }, |
| 29298 | .each = .{ .once = &.{ | 34160 | .each = .{ .once = &.{ |
| 29299 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 34161 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 29300 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 34162 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 29301 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | 34163 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 34164 | .{ .@"0:", ._, .mov, .tmp3d, .sia(-2, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29302 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 34165 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29303 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, | 34166 | .{ ._, ._, .mov, .tmp3q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 34167 | .{ ._, ._, .@"and", .tmp3q, .lea(.tmp1q), ._, ._ }, |
| | 34168 | .{ ._, ._, .mov, .lea(.tmp2q), .tmp3q, ._, ._ }, |
| | 34169 | .{ ._, ._, .mov, .lead(.tmp2q, 8), .si(0), ._, ._ }, |
| | 34170 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 34171 | .{ ._, ._, .lea, .tmp2p, .lead(.tmp2, 16), ._, ._ }, |
| | 34172 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 34173 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 29304 | } }, | 34174 | } }, |
| 29305 | }, .{ | 34175 | }, .{ |
| 29306 | .required_features = .{ .@"64bit", null, null, null }, | 34176 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 29307 | .src_constraints = .{ .any_unsigned_int, .any }, | 34177 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 29308 | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }}, | 34178 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 29309 | .patterns = &.{ | 34179 | .patterns = &.{ |
| 29310 | .{ .src = .{ .to_mem, .none } }, | 34180 | .{ .src = .{ .to_mem, .none } }, |
| 29311 | }, | 34181 | }, |
| 29312 | .extra_temps = .{ | 34182 | .extra_temps = .{ |
| | 34183 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29313 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 34184 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29314 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 34185 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 34186 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 29315 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 34187 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29316 | .unused, | 34188 | .unused, |
| 29317 | .unused, | 34189 | .unused, |
| 29318 | .unused, | 34190 | .unused, |
| 29319 | .unused, | 34191 | .unused, |
| 29320 | .unused, | | |
| 29321 | .unused, | | |
| 29322 | }, | 34192 | }, |
| 29323 | .dst_temps = .{.mem}, | 34193 | .dst_temps = .{.mem}, |
| 29324 | .clobbers = .{ .eflags = true }, | 34194 | .clobbers = .{ .eflags = true }, |
| 29325 | .each = .{ .once = &.{ | 34195 | .each = .{ .once = &.{ |
| 29326 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 34196 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 29327 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 34197 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 29328 | .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, | 34198 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 34199 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 34200 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29329 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 34201 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29330 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, | 34202 | .{ ._, ._, .mov, .tmp4q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29331 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, | 34203 | .{ ._, ._, .@"and", .tmp4q, .lea(.tmp1q), ._, ._ }, |
| 29332 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ }, | 34204 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| 29333 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, | 34205 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 34206 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 34207 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| 29334 | } }, | 34208 | } }, |
| 29335 | }, .{ | 34209 | }, .{ |
| 29336 | .required_features = .{ .@"64bit", null, null, null }, | 34210 | .required_features = .{ .@"64bit", null, null, null }, |
| 29337 | .src_constraints = .{ .any_unsigned_int, .any }, | 34211 | .src_constraints = .{ .any_scalar_unsigned_int, .any }, |
| 29338 | .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, | 34212 | .dst_constraints = .{.{ .scalar_remainder_unsigned_int = .{ .of = .xword, .is = .xword } }}, |
| 29339 | .patterns = &.{ | 34213 | .patterns = &.{ |
| 29340 | .{ .src = .{ .to_mem, .none } }, | 34214 | .{ .src = .{ .to_mem, .none } }, |
| 29341 | }, | 34215 | }, |
| 29342 | .extra_temps = .{ | 34216 | .extra_temps = .{ |
| | 34217 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 29343 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, | 34218 | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 29344 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, | 34219 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 34220 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 29345 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, | 34221 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 29346 | .unused, | 34222 | .unused, |
| 29347 | .unused, | 34223 | .unused, |
| 29348 | .unused, | 34224 | .unused, |
| 29349 | .unused, | 34225 | .unused, |
| 29350 | .unused, | | |
| 29351 | .unused, | | |
| 29352 | }, | 34226 | }, |
| 29353 | .dst_temps = .{.mem}, | 34227 | .dst_temps = .{.mem}, |
| 29354 | .clobbers = .{ .eflags = true }, | 34228 | .clobbers = .{ .eflags = true }, |
| 29355 | .each = .{ .once = &.{ | 34229 | .each = .{ .once = &.{ |
| 29356 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, | 34230 | .{ ._, ._, .mov, .tmp0d, .sa(.src0, .add_len), ._, ._ }, |
| 29357 | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, | 34231 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 29358 | .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, | 34232 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 34233 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 34234 | .{ .@"0:", ._, .mov, .tmp4d, .sia(-1, .dst0, .add_elem_size_div_8), ._, ._ }, |
| 29359 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, | 34235 | .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ }, |
| 29360 | .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ }, | 34236 | .{ ._, ._, .mov, .tmp4q, .ua(.dst0, .add_umax), ._, ._ }, |
| 29361 | .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, | 34237 | .{ ._, ._, .@"and", .tmp4q, .lea(.tmp1q), ._, ._ }, |
| 29362 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ }, | 34238 | .{ ._, ._sq, .sto, ._, ._, ._, ._ }, |
| | 34239 | .{ ._, ._, .add, .tmp1p, .sia2(8, .src0, .dst0, .add_delta_elem_size), ._, ._ }, |
| | 34240 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 34241 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 29363 | } }, | 34242 | } }, |
| 29364 | } }) catch |err| switch (err) { | 34243 | } }) catch |err| switch (err) { |
| 29365 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ | 34244 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| ... | @@ -50265,7 +55144,15 @@ const Select = struct { | ... | @@ -50265,7 +55144,15 @@ const Select = struct { |
| 50265 | multiple_scalar_int: OfIsSizes, | 55144 | multiple_scalar_int: OfIsSizes, |
| 50266 | multiple_scalar_signed_int: OfIsSizes, | 55145 | multiple_scalar_signed_int: OfIsSizes, |
| 50267 | multiple_scalar_unsigned_int: OfIsSizes, | 55146 | multiple_scalar_unsigned_int: OfIsSizes, |
| | 55147 | multiple_scalar_exact_int: struct { of: Memory.Size, is: u16 }, |
| | 55148 | multiple_scalar_exact_signed_int: struct { of: Memory.Size, is: u16 }, |
| | 55149 | multiple_scalar_exact_unsigned_int: struct { of: Memory.Size, is: u16 }, |
| 50268 | scalar_remainder_int: OfIsSizes, | 55150 | scalar_remainder_int: OfIsSizes, |
| | 55151 | scalar_remainder_signed_int: OfIsSizes, |
| | 55152 | scalar_remainder_unsigned_int: OfIsSizes, |
| | 55153 | scalar_exact_remainder_int: OfIsSizes, |
| | 55154 | scalar_exact_remainder_signed_int: OfIsSizes, |
| | 55155 | scalar_exact_remainder_unsigned_int: OfIsSizes, |
| 50269 | float: Memory.Size, | 55156 | float: Memory.Size, |
| 50270 | scalar_any_float: Memory.Size, | 55157 | scalar_any_float: Memory.Size, |
| 50271 | scalar_float: OfIsSizes, | 55158 | scalar_float: OfIsSizes, |
| ... | @@ -50352,10 +55239,30 @@ const Select = struct { | ... | @@ -50352,10 +55239,30 @@ const Select = struct { |
| 50352 | .multiple_scalar_unsigned_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and | 55239 | .multiple_scalar_unsigned_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| 50353 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and | 55240 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and |
| 50354 | of_is.is.bitSize(cg.target) >= int_info.bits else false, | 55241 | of_is.is.bitSize(cg.target) >= int_info.bits else false, |
| | 55242 | .multiple_scalar_exact_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| | 55243 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| of_is.is == int_info.bits else false, |
| | 55244 | .multiple_scalar_exact_signed_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| | 55245 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and |
| | 55246 | of_is.is == int_info.bits else false, |
| | 55247 | .multiple_scalar_exact_unsigned_int => |of_is| ty.abiSize(zcu) % @divExact(of_is.of.bitSize(cg.target), 8) == 0 and |
| | 55248 | if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and |
| | 55249 | of_is.is == int_info.bits else false, |
| 50355 | .scalar_remainder_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| | 55250 | .scalar_remainder_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| |
| 50356 | of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 | 55251 | of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 |
| 50357 | else | 55252 | else |
| 50358 | false, | 55253 | false, |
| | 55254 | .scalar_remainder_signed_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and |
| | 55255 | of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false, |
| | 55256 | .scalar_remainder_unsigned_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and |
| | 55257 | of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false, |
| | 55258 | .scalar_exact_remainder_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| |
| | 55259 | of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 |
| | 55260 | else |
| | 55261 | false, |
| | 55262 | .scalar_exact_remainder_signed_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .signed and |
| | 55263 | of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false, |
| | 55264 | .scalar_exact_remainder_unsigned_int => |of_is| if (cg.intInfo(ty.scalarType(zcu))) |int_info| int_info.signedness == .unsigned and |
| | 55265 | of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false, |
| 50359 | .float => |size| if (cg.floatBits(ty)) |float_bits| size.bitSize(cg.target) == float_bits else false, | 55266 | .float => |size| if (cg.floatBits(ty)) |float_bits| size.bitSize(cg.target) == float_bits else false, |
| 50360 | .scalar_any_float => |size| @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and | 55267 | .scalar_any_float => |size| @divExact(size.bitSize(cg.target), 8) >= ty.abiSize(zcu) and |
| 50361 | cg.floatBits(ty.scalarType(zcu)) != null, | 55268 | cg.floatBits(ty.scalarType(zcu)) != null, |
| ... | @@ -50629,7 +55536,11 @@ const Select = struct { | ... | @@ -50629,7 +55536,11 @@ const Select = struct { |
| 50629 | frame: FrameIndex, | 55536 | frame: FrameIndex, |
| 50630 | symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 }, | 55537 | symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 }, |
| 50631 | | 55538 | |
| 50632 | const ConstInfo = struct { ref: Select.Operand.Ref, vectorize_to: ?Memory.Size = null }; | 55539 | const ConstInfo = struct { |
| | 55540 | ref: Select.Operand.Ref, |
| | 55541 | to_signedness: ?std.builtin.Signedness = null, |
| | 55542 | vectorize_to: ?Memory.Size = null, |
| | 55543 | }; |
| 50633 | | 55544 | |
| 50634 | fn finish(kind: Kind, temp: Temp, s: *const Select) void { | 55545 | fn finish(kind: Kind, temp: Temp, s: *const Select) void { |
| 50635 | switch (kind) { | 55546 | switch (kind) { |
| ... | @@ -50704,7 +55615,8 @@ const Select = struct { | ... | @@ -50704,7 +55615,8 @@ const Select = struct { |
| 50704 | .signedness = .signed, | 55615 | .signedness = .signed, |
| 50705 | .bits = cg.floatBits(scalar_ty).?, | 55616 | .bits = cg.floatBits(scalar_ty).?, |
| 50706 | }; | 55617 | }; |
| 50707 | const scalar_int_ty = try pt.intType(scalar_info.signedness, scalar_info.bits); | 55618 | const scalar_signedness = const_info.to_signedness orelse scalar_info.signedness; |
| | 55619 | const scalar_int_ty = try pt.intType(scalar_signedness, scalar_info.bits); |
| 50708 | if (scalar_info.bits <= 64) { | 55620 | if (scalar_info.bits <= 64) { |
| 50709 | const int_val: i64 = switch (spec.kind) { | 55621 | const int_val: i64 = switch (spec.kind) { |
| 50710 | else => unreachable, | 55622 | else => unreachable, |
| ... | @@ -50714,7 +55626,7 @@ const Select = struct { | ... | @@ -50714,7 +55626,7 @@ const Select = struct { |
| 50714 | .umax_mem => -1, | 55626 | .umax_mem => -1, |
| 50715 | }; | 55627 | }; |
| 50716 | const shift: u6 = @intCast(64 - scalar_info.bits); | 55628 | const shift: u6 = @intCast(64 - scalar_info.bits); |
| 50717 | break :res_scalar .{ scalar_int_ty, switch (scalar_info.signedness) { | 55629 | break :res_scalar .{ scalar_int_ty, switch (scalar_signedness) { |
| 50718 | .signed => try pt.intValue_i64(scalar_int_ty, int_val >> shift), | 55630 | .signed => try pt.intValue_i64(scalar_int_ty, int_val >> shift), |
| 50719 | .unsigned => try pt.intValue_u64(scalar_int_ty, @as(u64, @bitCast(int_val)) >> shift), | 55631 | .unsigned => try pt.intValue_u64(scalar_int_ty, @as(u64, @bitCast(int_val)) >> shift), |
| 50720 | } }; | 55632 | } }; |
| ... | @@ -50730,7 +55642,7 @@ const Select = struct { | ... | @@ -50730,7 +55642,7 @@ const Select = struct { |
| 50730 | .smin_mem, .smax_mem => .signed, | 55642 | .smin_mem, .smax_mem => .signed, |
| 50731 | .umin_mem, .umax_mem => .unsigned, | 55643 | .umin_mem, .umax_mem => .unsigned, |
| 50732 | }, scalar_info.bits); | 55644 | }, scalar_info.bits); |
| 50733 | try big_int.truncate(&big_int, scalar_info.signedness, scalar_info.bits); | 55645 | try big_int.truncate(&big_int, scalar_signedness, scalar_info.bits); |
| 50734 | break :res_scalar .{ scalar_int_ty, try pt.intValue_big(scalar_int_ty, big_int.toConst()) }; | 55646 | break :res_scalar .{ scalar_int_ty, try pt.intValue_big(scalar_int_ty, big_int.toConst()) }; |
| 50735 | }, | 55647 | }, |
| 50736 | }; | 55648 | }; |
| ... | @@ -50832,7 +55744,8 @@ const Select = struct { | ... | @@ -50832,7 +55744,8 @@ const Select = struct { |
| 50832 | const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" }; | 55744 | const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" }; |
| 50833 | const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" }; | 55745 | const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" }; |
| 50834 | const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" }; | 55746 | const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" }; |
| 50835 | const sub_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" }; | 55747 | const add_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" }; |
| | 55748 | const sub_bit_size_rem_64: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" }; |
| 50836 | const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" }; | 55749 | const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" }; |
| 50837 | const add_src0_bit_size: Adjust = .{ .sign = .pos, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" }; | 55750 | const add_src0_bit_size: Adjust = .{ .sign = .pos, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" }; |
| 50838 | const sub_src0_bit_size: Adjust = .{ .sign = .neg, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" }; | 55751 | const sub_src0_bit_size: Adjust = .{ .sign = .neg, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" }; |
| ... | @@ -51163,6 +56076,9 @@ const Select = struct { | ... | @@ -51163,6 +56076,9 @@ const Select = struct { |
| 51163 | fn sia(imm: i32, base: Ref.Sized, adjust: Adjust) Select.Operand { | 56076 | fn sia(imm: i32, base: Ref.Sized, adjust: Adjust) Select.Operand { |
| 51164 | return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .imm = imm }; | 56077 | return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .imm = imm }; |
| 51165 | } | 56078 | } |
| | 56079 | fn sia2(imm: i32, base: Ref.Sized, index: Ref, adjust: Adjust) Select.Operand { |
| | 56080 | return .{ .flags = .{ .tag = .simm, .adjust = adjust }, .base = base, .index = .{ .ref = index }, .imm = imm }; |
| | 56081 | } |
| 51166 | fn ui(imm: u32) Select.Operand { | 56082 | fn ui(imm: u32) Select.Operand { |
| 51167 | return .{ .flags = .{ .tag = .uimm }, .imm = @bitCast(imm) }; | 56083 | return .{ .flags = .{ .tag = .uimm }, .imm = @bitCast(imm) }; |
| 51168 | } | 56084 | } |