| ... | @@ -2408,7 +2408,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2408,7 +2408,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2408 | } | 2408 | } |
| 2409 | | 2409 | |
| 2410 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | 2410 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2411 | @setEvalBranchQuota(19_300); | 2411 | @setEvalBranchQuota(20_000); |
| 2412 | const pt = cg.pt; | 2412 | const pt = cg.pt; |
| 2413 | const zcu = pt.zcu; | 2413 | const zcu = pt.zcu; |
| 2414 | const ip = &zcu.intern_pool; | 2414 | const ip = &zcu.intern_pool; |
| ... | @@ -2444,8 +2444,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -2444,8 +2444,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2444 | try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1); | 2444 | try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1); |
| 2445 | switch (air_tags[@intFromEnum(inst)]) { | 2445 | switch (air_tags[@intFromEnum(inst)]) { |
| 2446 | // zig fmt: off | 2446 | // zig fmt: off |
| 2447 | .shl_sat => try cg.airShlSat(inst), | | |
| 2448 | | | |
| 2449 | .bitcast => try cg.airBitCast(inst), | 2447 | .bitcast => try cg.airBitCast(inst), |
| 2450 | | 2448 | |
| 2451 | .splat => try cg.airSplat(inst), | 2449 | .splat => try cg.airSplat(inst), |
| ... | @@ -4408,7 +4406,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4408,7 +4406,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4408 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4406 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4409 | .clobbers = .{ .eflags = true }, | 4407 | .clobbers = .{ .eflags = true }, |
| 4410 | .each = .{ .once = &.{ | 4408 | .each = .{ .once = &.{ |
| 4411 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4409 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4412 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, | 4410 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, |
| 4413 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, | 4411 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, |
| 4414 | .{ ._, ._, .add, .dst0b, .src1b, ._, ._ }, | 4412 | .{ ._, ._, .add, .dst0b, .src1b, ._, ._ }, |
| ... | @@ -4457,7 +4455,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4457,7 +4455,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4457 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4455 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4458 | .clobbers = .{ .eflags = true }, | 4456 | .clobbers = .{ .eflags = true }, |
| 4459 | .each = .{ .once = &.{ | 4457 | .each = .{ .once = &.{ |
| 4460 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4458 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4461 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, | 4459 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, |
| 4462 | .{ ._, ._, .add, .dst0b, .src1b, ._, ._ }, | 4460 | .{ ._, ._, .add, .dst0b, .src1b, ._, ._ }, |
| 4463 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, | 4461 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -4585,7 +4583,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4585,7 +4583,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4585 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4583 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4586 | .clobbers = .{ .eflags = true }, | 4584 | .clobbers = .{ .eflags = true }, |
| 4587 | .each = .{ .once = &.{ | 4585 | .each = .{ .once = &.{ |
| 4588 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4586 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4589 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 4587 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 4590 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 4588 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| 4591 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, | 4589 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, |
| ... | @@ -4617,7 +4615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4617,7 +4615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4617 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4615 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4618 | .clobbers = .{ .eflags = true }, | 4616 | .clobbers = .{ .eflags = true }, |
| 4619 | .each = .{ .once = &.{ | 4617 | .each = .{ .once = &.{ |
| 4620 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4618 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4621 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 4619 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 4622 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 4620 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| 4623 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, | 4621 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, |
| ... | @@ -4683,7 +4681,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4683,7 +4681,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4683 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4681 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4684 | .clobbers = .{ .eflags = true }, | 4682 | .clobbers = .{ .eflags = true }, |
| 4685 | .each = .{ .once = &.{ | 4683 | .each = .{ .once = &.{ |
| 4686 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4684 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4687 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 4685 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 4688 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, | 4686 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, |
| 4689 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 4687 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -4713,7 +4711,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4713,7 +4711,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4713 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4711 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4714 | .clobbers = .{ .eflags = true }, | 4712 | .clobbers = .{ .eflags = true }, |
| 4715 | .each = .{ .once = &.{ | 4713 | .each = .{ .once = &.{ |
| 4716 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4714 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4717 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 4715 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 4718 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, | 4716 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, |
| 4719 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 4717 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -4744,7 +4742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4744,7 +4742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4744 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4742 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4745 | .clobbers = .{ .eflags = true }, | 4743 | .clobbers = .{ .eflags = true }, |
| 4746 | .each = .{ .once = &.{ | 4744 | .each = .{ .once = &.{ |
| 4747 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4745 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4748 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 4746 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 4749 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, | 4747 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, |
| 4750 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 4748 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -4776,7 +4774,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4776,7 +4774,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4776 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4774 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4777 | .clobbers = .{ .eflags = true }, | 4775 | .clobbers = .{ .eflags = true }, |
| 4778 | .each = .{ .once = &.{ | 4776 | .each = .{ .once = &.{ |
| 4779 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4777 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4780 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 4778 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 4781 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, | 4779 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, |
| 4782 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 4780 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -4929,7 +4927,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4929,7 +4927,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4929 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4927 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4930 | .clobbers = .{ .eflags = true }, | 4928 | .clobbers = .{ .eflags = true }, |
| 4931 | .each = .{ .once = &.{ | 4929 | .each = .{ .once = &.{ |
| 4932 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4930 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4933 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 4931 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 4934 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, | 4932 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, |
| 4935 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 4933 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -4959,7 +4957,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4959,7 +4957,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4959 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4957 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4960 | .clobbers = .{ .eflags = true }, | 4958 | .clobbers = .{ .eflags = true }, |
| 4961 | .each = .{ .once = &.{ | 4959 | .each = .{ .once = &.{ |
| 4962 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4960 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4963 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 4961 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 4964 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, | 4962 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, |
| 4965 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 4963 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -4990,7 +4988,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -4990,7 +4988,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4990 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 4988 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 4991 | .clobbers = .{ .eflags = true }, | 4989 | .clobbers = .{ .eflags = true }, |
| 4992 | .each = .{ .once = &.{ | 4990 | .each = .{ .once = &.{ |
| 4993 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 4991 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 4994 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 4992 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 4995 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, | 4993 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, |
| 4996 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 4994 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5022,7 +5020,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5022,7 +5020,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5022 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5020 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5023 | .clobbers = .{ .eflags = true }, | 5021 | .clobbers = .{ .eflags = true }, |
| 5024 | .each = .{ .once = &.{ | 5022 | .each = .{ .once = &.{ |
| 5025 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 5023 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 5026 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 5024 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 5027 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, | 5025 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, |
| 5028 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 5026 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5055,7 +5053,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5055,7 +5053,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5055 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5053 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5056 | .clobbers = .{ .eflags = true }, | 5054 | .clobbers = .{ .eflags = true }, |
| 5057 | .each = .{ .once = &.{ | 5055 | .each = .{ .once = &.{ |
| 5058 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 5056 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 5059 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 5057 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 5060 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, | 5058 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, |
| 5061 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 5059 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5086,7 +5084,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5086,7 +5084,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5086 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5084 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5087 | .clobbers = .{ .eflags = true }, | 5085 | .clobbers = .{ .eflags = true }, |
| 5088 | .each = .{ .once = &.{ | 5086 | .each = .{ .once = &.{ |
| 5089 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 5087 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 5090 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 5088 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 5091 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, | 5089 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, |
| 5092 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 5090 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5118,7 +5116,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5118,7 +5116,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5118 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5116 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5119 | .clobbers = .{ .eflags = true }, | 5117 | .clobbers = .{ .eflags = true }, |
| 5120 | .each = .{ .once = &.{ | 5118 | .each = .{ .once = &.{ |
| 5121 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 5119 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 5122 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 5120 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 5123 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, | 5121 | .{ ._, ._, .add, .dst0w, .src1w, ._, ._ }, |
| 5124 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 5122 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5151,7 +5149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5151,7 +5149,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5151 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5149 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5152 | .clobbers = .{ .eflags = true }, | 5150 | .clobbers = .{ .eflags = true }, |
| 5153 | .each = .{ .once = &.{ | 5151 | .each = .{ .once = &.{ |
| 5154 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 5152 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 5155 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 5153 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 5156 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, | 5154 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, |
| 5157 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 5155 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5456,7 +5454,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5456,7 +5454,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5456 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5454 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5457 | .clobbers = .{ .eflags = true }, | 5455 | .clobbers = .{ .eflags = true }, |
| 5458 | .each = .{ .once = &.{ | 5456 | .each = .{ .once = &.{ |
| 5459 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 5457 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 5460 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | 5458 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| 5461 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 5459 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| 5462 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, | 5460 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, |
| ... | @@ -5505,7 +5503,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5505,7 +5503,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5505 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5503 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5506 | .clobbers = .{ .eflags = true }, | 5504 | .clobbers = .{ .eflags = true }, |
| 5507 | .each = .{ .once = &.{ | 5505 | .each = .{ .once = &.{ |
| 5508 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 5506 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 5509 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | 5507 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| 5510 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, | 5508 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, |
| 5511 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 5509 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5571,7 +5569,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5571,7 +5569,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5571 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5569 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5572 | .clobbers = .{ .eflags = true }, | 5570 | .clobbers = .{ .eflags = true }, |
| 5573 | .each = .{ .once = &.{ | 5571 | .each = .{ .once = &.{ |
| 5574 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 5572 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 5575 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | 5573 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| 5576 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, | 5574 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, |
| 5577 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 5575 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5605,7 +5603,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5605,7 +5603,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5605 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5603 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5606 | .clobbers = .{ .eflags = true }, | 5604 | .clobbers = .{ .eflags = true }, |
| 5607 | .each = .{ .once = &.{ | 5605 | .each = .{ .once = &.{ |
| 5608 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 5606 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 5609 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | 5607 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| 5610 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, | 5608 | .{ ._, ._, .add, .dst0d, .src1d, ._, ._ }, |
| 5611 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 5609 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5750,7 +5748,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5750,7 +5748,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5750 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5748 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5751 | .clobbers = .{ .eflags = true }, | 5749 | .clobbers = .{ .eflags = true }, |
| 5752 | .each = .{ .once = &.{ | 5750 | .each = .{ .once = &.{ |
| 5753 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, | 5751 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 5754 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | 5752 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 5755 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, | 5753 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| 5756 | .{ ._, ._, .xor, .tmp0q, .tmp1q, ._, ._ }, | 5754 | .{ ._, ._, .xor, .tmp0q, .tmp1q, ._, ._ }, |
| ... | @@ -5815,7 +5813,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5815,7 +5813,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5815 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5813 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5816 | .clobbers = .{ .eflags = true }, | 5814 | .clobbers = .{ .eflags = true }, |
| 5817 | .each = .{ .once = &.{ | 5815 | .each = .{ .once = &.{ |
| 5818 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, | 5816 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 5819 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | 5817 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 5820 | .{ ._, ._, .add, .dst0q, .src1q, ._, ._ }, | 5818 | .{ ._, ._, .add, .dst0q, .src1q, ._, ._ }, |
| 5821 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, | 5819 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5884,7 +5882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5884,7 +5882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5884 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5882 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5885 | .clobbers = .{ .eflags = true }, | 5883 | .clobbers = .{ .eflags = true }, |
| 5886 | .each = .{ .once = &.{ | 5884 | .each = .{ .once = &.{ |
| 5887 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, | 5885 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 5888 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | 5886 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 5889 | .{ ._, ._, .add, .dst0q, .src1q, ._, ._ }, | 5887 | .{ ._, ._, .add, .dst0q, .src1q, ._, ._ }, |
| 5890 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, | 5888 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| ... | @@ -5919,7 +5917,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -5919,7 +5917,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 5919 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 5917 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 5920 | .clobbers = .{ .eflags = true }, | 5918 | .clobbers = .{ .eflags = true }, |
| 5921 | .each = .{ .once = &.{ | 5919 | .each = .{ .once = &.{ |
| 5922 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, | 5920 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 5923 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | 5921 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 5924 | .{ ._, ._, .add, .dst0q, .src1q, ._, ._ }, | 5922 | .{ ._, ._, .add, .dst0q, .src1q, ._, ._ }, |
| 5925 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, | 5923 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| ... | @@ -14879,7 +14877,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14879,7 +14877,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14879 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 14877 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 14880 | .clobbers = .{ .eflags = true }, | 14878 | .clobbers = .{ .eflags = true }, |
| 14881 | .each = .{ .once = &.{ | 14879 | .each = .{ .once = &.{ |
| 14882 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 14880 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 14883 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, | 14881 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, |
| 14884 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, | 14882 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, |
| 14885 | .{ ._, ._, .sub, .dst0b, .src1b, ._, ._ }, | 14883 | .{ ._, ._, .sub, .dst0b, .src1b, ._, ._ }, |
| ... | @@ -14924,7 +14922,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -14924,7 +14922,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14924 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 14922 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 14925 | .clobbers = .{ .eflags = true }, | 14923 | .clobbers = .{ .eflags = true }, |
| 14926 | .each = .{ .once = &.{ | 14924 | .each = .{ .once = &.{ |
| 14927 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 14925 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 14928 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, | 14926 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, |
| 14929 | .{ ._, ._, .sub, .dst0b, .src1b, ._, ._ }, | 14927 | .{ ._, ._, .sub, .dst0b, .src1b, ._, ._ }, |
| 14930 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, | 14928 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15027,7 +15025,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15027,7 +15025,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15027 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15025 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15028 | .clobbers = .{ .eflags = true }, | 15026 | .clobbers = .{ .eflags = true }, |
| 15029 | .each = .{ .once = &.{ | 15027 | .each = .{ .once = &.{ |
| 15030 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15028 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15031 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15029 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15032 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 15030 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| 15033 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, | 15031 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, |
| ... | @@ -15057,7 +15055,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15057,7 +15055,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15057 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15055 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15058 | .clobbers = .{ .eflags = true }, | 15056 | .clobbers = .{ .eflags = true }, |
| 15059 | .each = .{ .once = &.{ | 15057 | .each = .{ .once = &.{ |
| 15060 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15058 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15061 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15059 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15062 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15060 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| 15063 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, | 15061 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, |
| ... | @@ -15117,7 +15115,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15117,7 +15115,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15117 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15115 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15118 | .clobbers = .{ .eflags = true }, | 15116 | .clobbers = .{ .eflags = true }, |
| 15119 | .each = .{ .once = &.{ | 15117 | .each = .{ .once = &.{ |
| 15120 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15118 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15121 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15119 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15122 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, | 15120 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, |
| 15123 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 15121 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15147,7 +15145,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15147,7 +15145,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15147 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15145 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15148 | .clobbers = .{ .eflags = true }, | 15146 | .clobbers = .{ .eflags = true }, |
| 15149 | .each = .{ .once = &.{ | 15147 | .each = .{ .once = &.{ |
| 15150 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15148 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15151 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15149 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15152 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, | 15150 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, |
| 15153 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 15151 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15177,7 +15175,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15177,7 +15175,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15177 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15175 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15178 | .clobbers = .{ .eflags = true }, | 15176 | .clobbers = .{ .eflags = true }, |
| 15179 | .each = .{ .once = &.{ | 15177 | .each = .{ .once = &.{ |
| 15180 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15178 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15181 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15179 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15182 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, | 15180 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, |
| 15183 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15181 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15208,7 +15206,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15208,7 +15206,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15208 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15206 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15209 | .clobbers = .{ .eflags = true }, | 15207 | .clobbers = .{ .eflags = true }, |
| 15210 | .each = .{ .once = &.{ | 15208 | .each = .{ .once = &.{ |
| 15211 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15209 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15212 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15210 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15213 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, | 15211 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, |
| 15214 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15212 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15355,7 +15353,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15355,7 +15353,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15355 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15353 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15356 | .clobbers = .{ .eflags = true }, | 15354 | .clobbers = .{ .eflags = true }, |
| 15357 | .each = .{ .once = &.{ | 15355 | .each = .{ .once = &.{ |
| 15358 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15356 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15359 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15357 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15360 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, | 15358 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, |
| 15361 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 15359 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15385,7 +15383,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15385,7 +15383,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15385 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15383 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15386 | .clobbers = .{ .eflags = true }, | 15384 | .clobbers = .{ .eflags = true }, |
| 15387 | .each = .{ .once = &.{ | 15385 | .each = .{ .once = &.{ |
| 15388 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15386 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15389 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15387 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15390 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, | 15388 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, |
| 15391 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 15389 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15415,7 +15413,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15415,7 +15413,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15415 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15413 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15416 | .clobbers = .{ .eflags = true }, | 15414 | .clobbers = .{ .eflags = true }, |
| 15417 | .each = .{ .once = &.{ | 15415 | .each = .{ .once = &.{ |
| 15418 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15416 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15419 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15417 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15420 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, | 15418 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, |
| 15421 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15419 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15446,7 +15444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15446,7 +15444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15446 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15444 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15447 | .clobbers = .{ .eflags = true }, | 15445 | .clobbers = .{ .eflags = true }, |
| 15448 | .each = .{ .once = &.{ | 15446 | .each = .{ .once = &.{ |
| 15449 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15447 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15450 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15448 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15451 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, | 15449 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, |
| 15452 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15450 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15477,7 +15475,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15477,7 +15475,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15477 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15475 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15478 | .clobbers = .{ .eflags = true }, | 15476 | .clobbers = .{ .eflags = true }, |
| 15479 | .each = .{ .once = &.{ | 15477 | .each = .{ .once = &.{ |
| 15480 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15478 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15481 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15479 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15482 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, | 15480 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, |
| 15483 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 15481 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15508,7 +15506,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15508,7 +15506,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15508 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15506 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15509 | .clobbers = .{ .eflags = true }, | 15507 | .clobbers = .{ .eflags = true }, |
| 15510 | .each = .{ .once = &.{ | 15508 | .each = .{ .once = &.{ |
| 15511 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15509 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15512 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15510 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15513 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, | 15511 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, |
| 15514 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, | 15512 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15539,7 +15537,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15539,7 +15537,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15539 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15537 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15540 | .clobbers = .{ .eflags = true }, | 15538 | .clobbers = .{ .eflags = true }, |
| 15541 | .each = .{ .once = &.{ | 15539 | .each = .{ .once = &.{ |
| 15542 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15540 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15543 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15541 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15544 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, | 15542 | .{ ._, ._, .sub, .dst0w, .src1w, ._, ._ }, |
| 15545 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15543 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15571,7 +15569,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15571,7 +15569,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15571 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15569 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15572 | .clobbers = .{ .eflags = true }, | 15570 | .clobbers = .{ .eflags = true }, |
| 15573 | .each = .{ .once = &.{ | 15571 | .each = .{ .once = &.{ |
| 15574 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15572 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15575 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, | 15573 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| 15576 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, | 15574 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, |
| 15577 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15575 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15780,7 +15778,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15780,7 +15778,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15780 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15778 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15781 | .clobbers = .{ .eflags = true }, | 15779 | .clobbers = .{ .eflags = true }, |
| 15782 | .each = .{ .once = &.{ | 15780 | .each = .{ .once = &.{ |
| 15783 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15781 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15784 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | 15782 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| 15785 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15783 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| 15786 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, | 15784 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, |
| ... | @@ -15825,7 +15823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15825,7 +15823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15825 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15823 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15826 | .clobbers = .{ .eflags = true }, | 15824 | .clobbers = .{ .eflags = true }, |
| 15827 | .each = .{ .once = &.{ | 15825 | .each = .{ .once = &.{ |
| 15828 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15826 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15829 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | 15827 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| 15830 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, | 15828 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, |
| 15831 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15829 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15887,7 +15885,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15887,7 +15885,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15887 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15885 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15888 | .clobbers = .{ .eflags = true }, | 15886 | .clobbers = .{ .eflags = true }, |
| 15889 | .each = .{ .once = &.{ | 15887 | .each = .{ .once = &.{ |
| 15890 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15888 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15891 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | 15889 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| 15892 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, | 15890 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, |
| 15893 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15891 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -15919,7 +15917,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -15919,7 +15917,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 15919 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 15917 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 15920 | .clobbers = .{ .eflags = true }, | 15918 | .clobbers = .{ .eflags = true }, |
| 15921 | .each = .{ .once = &.{ | 15919 | .each = .{ .once = &.{ |
| 15922 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, | 15920 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| 15923 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, | 15921 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| 15924 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, | 15922 | .{ ._, ._, .sub, .dst0d, .src1d, ._, ._ }, |
| 15925 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, | 15923 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| ... | @@ -16039,7 +16037,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16039,7 +16037,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16039 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 16037 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 16040 | .clobbers = .{ .eflags = true }, | 16038 | .clobbers = .{ .eflags = true }, |
| 16041 | .each = .{ .once = &.{ | 16039 | .each = .{ .once = &.{ |
| 16042 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, | 16040 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 16043 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | 16041 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 16044 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, | 16042 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| 16045 | .{ ._, ._, .xor, .tmp0q, .tmp1q, ._, ._ }, | 16043 | .{ ._, ._, .xor, .tmp0q, .tmp1q, ._, ._ }, |
| ... | @@ -16100,7 +16098,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16100,7 +16098,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16100 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 16098 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 16101 | .clobbers = .{ .eflags = true }, | 16099 | .clobbers = .{ .eflags = true }, |
| 16102 | .each = .{ .once = &.{ | 16100 | .each = .{ .once = &.{ |
| 16103 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, | 16101 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 16104 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | 16102 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 16105 | .{ ._, ._, .sub, .dst0q, .src1q, ._, ._ }, | 16103 | .{ ._, ._, .sub, .dst0q, .src1q, ._, ._ }, |
| 16106 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, | 16104 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| ... | @@ -16165,7 +16163,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16165,7 +16163,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16165 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 16163 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 16166 | .clobbers = .{ .eflags = true }, | 16164 | .clobbers = .{ .eflags = true }, |
| 16167 | .each = .{ .once = &.{ | 16165 | .each = .{ .once = &.{ |
| 16168 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, | 16166 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 16169 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | 16167 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 16170 | .{ ._, ._, .sub, .dst0q, .src1q, ._, ._ }, | 16168 | .{ ._, ._, .sub, .dst0q, .src1q, ._, ._ }, |
| 16171 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, | 16169 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| ... | @@ -16198,7 +16196,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -16198,7 +16196,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 16198 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 16196 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 16199 | .clobbers = .{ .eflags = true }, | 16197 | .clobbers = .{ .eflags = true }, |
| 16200 | .each = .{ .once = &.{ | 16198 | .each = .{ .once = &.{ |
| 16201 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, | 16199 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| 16202 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, | 16200 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 16203 | .{ ._, ._, .sub, .dst0q, .src1q, ._, ._ }, | 16201 | .{ ._, ._, .sub, .dst0q, .src1q, ._, ._ }, |
| 16204 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, | 16202 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| ... | @@ -58000,20 +57998,3084 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58000,20 +57998,3084 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58000 | }, .{ | 57998 | }, .{ |
| 58001 | .required_features = .{ .@"64bit", null, null, null }, | 57999 | .required_features = .{ .@"64bit", null, null, null }, |
| 58002 | .src_constraints = .{ | 58000 | .src_constraints = .{ |
| 58003 | .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, | 58001 | .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, |
| 58004 | .{ .unsigned_int = .byte }, | 58002 | .{ .unsigned_int = .byte }, |
| | 58003 | .any, |
| | 58004 | }, |
| | 58005 | .patterns = &.{ |
| | 58006 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 58007 | }, |
| | 58008 | .extra_temps = .{ |
| | 58009 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58010 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 58011 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58012 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58013 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58014 | .unused, |
| | 58015 | .unused, |
| | 58016 | .unused, |
| | 58017 | .unused, |
| | 58018 | .unused, |
| | 58019 | .unused, |
| | 58020 | }, |
| | 58021 | .dst_temps = .{ .mem, .unused }, |
| | 58022 | .clobbers = .{ .eflags = true }, |
| | 58023 | .each = .{ .once = &.{ |
| | 58024 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 58025 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58026 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, |
| | 58027 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, |
| | 58028 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, |
| | 58029 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58030 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58031 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58032 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58033 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, |
| | 58034 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58035 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, |
| | 58036 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 58037 | .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ }, |
| | 58038 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, |
| | 58039 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 58040 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 58041 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 58042 | } }, |
| | 58043 | }, .{ |
| | 58044 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 58045 | .src_constraints = .{ |
| | 58046 | .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, |
| | 58047 | .{ .unsigned_int = .byte }, |
| | 58048 | .any, |
| | 58049 | }, |
| | 58050 | .patterns = &.{ |
| | 58051 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 58052 | }, |
| | 58053 | .extra_temps = .{ |
| | 58054 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58055 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 58056 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58057 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58058 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58059 | .unused, |
| | 58060 | .unused, |
| | 58061 | .unused, |
| | 58062 | .unused, |
| | 58063 | .unused, |
| | 58064 | .unused, |
| | 58065 | }, |
| | 58066 | .dst_temps = .{ .mem, .unused }, |
| | 58067 | .clobbers = .{ .eflags = true }, |
| | 58068 | .each = .{ .once = &.{ |
| | 58069 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 58070 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58071 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, |
| | 58072 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, |
| | 58073 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, |
| | 58074 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58075 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58076 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58077 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58078 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, |
| | 58079 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58080 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, |
| | 58081 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 58082 | .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 58083 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, |
| | 58084 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 58085 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 58086 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 58087 | } }, |
| | 58088 | }, .{ |
| | 58089 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58090 | .src_constraints = .{ |
| | 58091 | .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, |
| | 58092 | .{ .unsigned_int = .byte }, |
| | 58093 | .any, |
| | 58094 | }, |
| | 58095 | .patterns = &.{ |
| | 58096 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 58097 | }, |
| | 58098 | .extra_temps = .{ |
| | 58099 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58100 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 58101 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58102 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58103 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58104 | .unused, |
| | 58105 | .unused, |
| | 58106 | .unused, |
| | 58107 | .unused, |
| | 58108 | .unused, |
| | 58109 | .unused, |
| | 58110 | }, |
| | 58111 | .dst_temps = .{ .mem, .unused }, |
| | 58112 | .clobbers = .{ .eflags = true }, |
| | 58113 | .each = .{ .once = &.{ |
| | 58114 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 58115 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58116 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, |
| | 58117 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, |
| | 58118 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, |
| | 58119 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58120 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58121 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58122 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58123 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, |
| | 58124 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58125 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, |
| | 58126 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 58127 | .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 58128 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, |
| | 58129 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 58130 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 58131 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 58132 | } }, |
| | 58133 | }, .{ |
| | 58134 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 58135 | .src_constraints = .{ |
| | 58136 | .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, |
| | 58137 | .{ .unsigned_int = .word }, |
| | 58138 | .any, |
| | 58139 | }, |
| | 58140 | .patterns = &.{ |
| | 58141 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, |
| | 58142 | }, |
| | 58143 | .extra_temps = .{ |
| | 58144 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58145 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 58146 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58147 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58148 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58149 | .unused, |
| | 58150 | .unused, |
| | 58151 | .unused, |
| | 58152 | .unused, |
| | 58153 | .unused, |
| | 58154 | .unused, |
| | 58155 | }, |
| | 58156 | .dst_temps = .{ .mem, .unused }, |
| | 58157 | .clobbers = .{ .eflags = true }, |
| | 58158 | .each = .{ .once = &.{ |
| | 58159 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 58160 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58161 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, |
| | 58162 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, |
| | 58163 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, |
| | 58164 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58165 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58166 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58167 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58168 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, |
| | 58169 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58170 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, |
| | 58171 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 58172 | .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ }, |
| | 58173 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, |
| | 58174 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 58175 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 58176 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 58177 | } }, |
| | 58178 | }, .{ |
| | 58179 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58180 | .src_constraints = .{ |
| | 58181 | .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, |
| | 58182 | .{ .unsigned_int = .word }, |
| | 58183 | .any, |
| | 58184 | }, |
| | 58185 | .patterns = &.{ |
| | 58186 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, |
| | 58187 | }, |
| | 58188 | .extra_temps = .{ |
| | 58189 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58190 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 58191 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58192 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58193 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58194 | .unused, |
| | 58195 | .unused, |
| | 58196 | .unused, |
| | 58197 | .unused, |
| | 58198 | .unused, |
| | 58199 | .unused, |
| | 58200 | }, |
| | 58201 | .dst_temps = .{ .mem, .unused }, |
| | 58202 | .clobbers = .{ .eflags = true }, |
| | 58203 | .each = .{ .once = &.{ |
| | 58204 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 58205 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58206 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, |
| | 58207 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, |
| | 58208 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, |
| | 58209 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58210 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58211 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58212 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58213 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, |
| | 58214 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58215 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, |
| | 58216 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 58217 | .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ }, |
| | 58218 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, |
| | 58219 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 58220 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 58221 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 58222 | } }, |
| | 58223 | }, .{ |
| | 58224 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 58225 | .src_constraints = .{ |
| | 58226 | .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, |
| | 58227 | .{ .unsigned_int = .word }, |
| | 58228 | .any, |
| | 58229 | }, |
| | 58230 | .patterns = &.{ |
| | 58231 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, |
| | 58232 | }, |
| | 58233 | .extra_temps = .{ |
| | 58234 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58235 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 58236 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58237 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58238 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58239 | .unused, |
| | 58240 | .unused, |
| | 58241 | .unused, |
| | 58242 | .unused, |
| | 58243 | .unused, |
| | 58244 | .unused, |
| | 58245 | }, |
| | 58246 | .dst_temps = .{ .mem, .unused }, |
| | 58247 | .clobbers = .{ .eflags = true }, |
| | 58248 | .each = .{ .once = &.{ |
| | 58249 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 58250 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58251 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, |
| | 58252 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, |
| | 58253 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, |
| | 58254 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58255 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58256 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58257 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58258 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, |
| | 58259 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58260 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, |
| | 58261 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 58262 | .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 58263 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, |
| | 58264 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 58265 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| | 58266 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 58267 | } }, |
| | 58268 | }, .{ |
| | 58269 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58270 | .src_constraints = .{ |
| | 58271 | .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, |
| | 58272 | .{ .unsigned_int = .word }, |
| | 58273 | .any, |
| | 58274 | }, |
| | 58275 | .patterns = &.{ |
| | 58276 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, |
| | 58277 | }, |
| | 58278 | .extra_temps = .{ |
| | 58279 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58280 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| | 58281 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58282 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58283 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58284 | .unused, |
| | 58285 | .unused, |
| | 58286 | .unused, |
| | 58287 | .unused, |
| | 58288 | .unused, |
| | 58289 | .unused, |
| | 58290 | }, |
| | 58291 | .dst_temps = .{ .mem, .unused }, |
| | 58292 | .clobbers = .{ .eflags = true }, |
| | 58293 | .each = .{ .once = &.{ |
| | 58294 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 58295 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58296 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, |
| | 58297 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, |
| | 58298 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, |
| | 58299 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58300 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58301 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, |
| | 58302 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58303 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, |
| | 58304 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58305 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, |
| | 58306 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 58307 | .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 58308 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, |
| | 58309 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 58310 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| | 58311 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 58312 | } }, |
| | 58313 | } }) catch |err| switch (err) { |
| | 58314 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {} {}", .{ |
| | 58315 | @tagName(air_tag), |
| | 58316 | cg.typeOf(bin_op.lhs).fmt(pt), |
| | 58317 | cg.typeOf(bin_op.rhs).fmt(pt), |
| | 58318 | ops[0].tracking(cg), |
| | 58319 | ops[1].tracking(cg), |
| | 58320 | }), |
| | 58321 | else => |e| return e, |
| | 58322 | }; |
| | 58323 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| | 58324 | }, |
| | 58325 | .shl, .shl_exact => |air_tag| if (use_old) try cg.airShlShrBinOp(inst) else fallback: { |
| | 58326 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| | 58327 | if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airShlShrBinOp(inst); |
| | 58328 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| | 58329 | var res: [1]Temp = undefined; |
| | 58330 | cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ |
| | 58331 | .src_constraints = .{ .{ .signed_int = .byte }, .{ .unsigned_int = .byte }, .any }, |
| | 58332 | .patterns = &.{ |
| | 58333 | .{ .src = .{ .mut_mem, .imm8, .none } }, |
| | 58334 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 58335 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, |
| | 58336 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, |
| | 58337 | }, |
| | 58338 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58339 | .clobbers = .{ .eflags = true }, |
| | 58340 | .each = .{ .once = &.{ |
| | 58341 | .{ ._, ._l, .sa, .dst0b, .src1b, ._, ._ }, |
| | 58342 | } }, |
| | 58343 | }, .{ |
| | 58344 | .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any }, |
| | 58345 | .patterns = &.{ |
| | 58346 | .{ .src = .{ .mut_mem, .imm8, .none } }, |
| | 58347 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 58348 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, |
| | 58349 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, |
| | 58350 | }, |
| | 58351 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58352 | .clobbers = .{ .eflags = true }, |
| | 58353 | .each = .{ .once = &.{ |
| | 58354 | .{ ._, ._l, .sh, .dst0b, .src1b, ._, ._ }, |
| | 58355 | } }, |
| | 58356 | }, .{ |
| | 58357 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_unsigned_int = 4 }, .any }, |
| | 58358 | .patterns = &.{ |
| | 58359 | .{ .src = .{ .mut_mem, .imm8, .none } }, |
| | 58360 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 58361 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, |
| | 58362 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, |
| | 58363 | }, |
| | 58364 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58365 | .clobbers = .{ .eflags = true }, |
| | 58366 | .each = .{ .once = &.{ |
| | 58367 | .{ ._, ._l, .sa, .dst0w, .src1b, ._, ._ }, |
| | 58368 | } }, |
| | 58369 | }, .{ |
| | 58370 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_unsigned_int = 4 }, .any }, |
| | 58371 | .patterns = &.{ |
| | 58372 | .{ .src = .{ .mut_mem, .imm8, .none } }, |
| | 58373 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 58374 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, |
| | 58375 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, |
| | 58376 | }, |
| | 58377 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58378 | .clobbers = .{ .eflags = true }, |
| | 58379 | .each = .{ .once = &.{ |
| | 58380 | .{ ._, ._l, .sh, .dst0w, .src1b, ._, ._ }, |
| | 58381 | } }, |
| | 58382 | }, .{ |
| | 58383 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, |
| | 58384 | .patterns = &.{ |
| | 58385 | .{ .src = .{ .mut_mem, .imm8, .none } }, |
| | 58386 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 58387 | }, |
| | 58388 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58389 | .clobbers = .{ .eflags = true }, |
| | 58390 | .each = .{ .once = &.{ |
| | 58391 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 58392 | } }, |
| | 58393 | }, .{ |
| | 58394 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, |
| | 58395 | .patterns = &.{ |
| | 58396 | .{ .src = .{ .mut_mem, .imm8, .none } }, |
| | 58397 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 58398 | }, |
| | 58399 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58400 | .clobbers = .{ .eflags = true }, |
| | 58401 | .each = .{ .once = &.{ |
| | 58402 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, |
| | 58403 | } }, |
| | 58404 | }, .{ |
| | 58405 | .required_features = .{ .bmi2, null, null, null }, |
| | 58406 | .src_constraints = .{ .{ .int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, |
| | 58407 | .patterns = &.{ |
| | 58408 | .{ .src = .{ .mem, .to_gpr, .none } }, |
| | 58409 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| | 58410 | }, |
| | 58411 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| | 58412 | .each = .{ .once = &.{ |
| | 58413 | .{ ._, ._lx, .sh, .dst0d, .src0d, .src1d, ._ }, |
| | 58414 | } }, |
| | 58415 | }, .{ |
| | 58416 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, |
| | 58417 | .patterns = &.{ |
| | 58418 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, |
| | 58419 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, |
| | 58420 | }, |
| | 58421 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58422 | .clobbers = .{ .eflags = true }, |
| | 58423 | .each = .{ .once = &.{ |
| | 58424 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 58425 | } }, |
| | 58426 | }, .{ |
| | 58427 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, |
| | 58428 | .patterns = &.{ |
| | 58429 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, |
| | 58430 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, |
| | 58431 | }, |
| | 58432 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58433 | .clobbers = .{ .eflags = true }, |
| | 58434 | .each = .{ .once = &.{ |
| | 58435 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, |
| | 58436 | } }, |
| | 58437 | }, .{ |
| | 58438 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58439 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, |
| | 58440 | .patterns = &.{ |
| | 58441 | .{ .src = .{ .mut_mem, .imm8, .none } }, |
| | 58442 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 58443 | }, |
| | 58444 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58445 | .clobbers = .{ .eflags = true }, |
| | 58446 | .each = .{ .once = &.{ |
| | 58447 | .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ }, |
| | 58448 | } }, |
| | 58449 | }, .{ |
| | 58450 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58451 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, |
| | 58452 | .patterns = &.{ |
| | 58453 | .{ .src = .{ .mut_mem, .imm8, .none } }, |
| | 58454 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 58455 | }, |
| | 58456 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58457 | .clobbers = .{ .eflags = true }, |
| | 58458 | .each = .{ .once = &.{ |
| | 58459 | .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ }, |
| | 58460 | } }, |
| | 58461 | }, .{ |
| | 58462 | .required_features = .{ .@"64bit", .bmi2, null, null }, |
| | 58463 | .src_constraints = .{ .{ .int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, |
| | 58464 | .patterns = &.{ |
| | 58465 | .{ .src = .{ .mem, .to_gpr, .none } }, |
| | 58466 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| | 58467 | }, |
| | 58468 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| | 58469 | .each = .{ .once = &.{ |
| | 58470 | .{ ._, ._lx, .sh, .dst0q, .src0q, .src1q, ._ }, |
| | 58471 | } }, |
| | 58472 | }, .{ |
| | 58473 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58474 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, |
| | 58475 | .patterns = &.{ |
| | 58476 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, |
| | 58477 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, |
| | 58478 | }, |
| | 58479 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58480 | .clobbers = .{ .eflags = true }, |
| | 58481 | .each = .{ .once = &.{ |
| | 58482 | .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ }, |
| | 58483 | } }, |
| | 58484 | }, .{ |
| | 58485 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58486 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, |
| | 58487 | .patterns = &.{ |
| | 58488 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, |
| | 58489 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, |
| | 58490 | }, |
| | 58491 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58492 | .clobbers = .{ .eflags = true }, |
| | 58493 | .each = .{ .once = &.{ |
| | 58494 | .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ }, |
| | 58495 | } }, |
| | 58496 | }, .{ |
| | 58497 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 58498 | .src_constraints = .{ |
| | 58499 | .{ .remainder_int = .{ .of = .qword, .is = .qword } }, |
| | 58500 | .{ .unsigned_int = .byte }, |
| | 58501 | .any, |
| | 58502 | }, |
| | 58503 | .patterns = &.{ |
| | 58504 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 58505 | }, |
| | 58506 | .extra_temps = .{ |
| | 58507 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58508 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58509 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58510 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58511 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58512 | .unused, |
| | 58513 | .unused, |
| | 58514 | .unused, |
| | 58515 | .unused, |
| | 58516 | .unused, |
| | 58517 | .unused, |
| | 58518 | }, |
| | 58519 | .dst_temps = .{ .mem, .unused }, |
| | 58520 | .clobbers = .{ .eflags = true }, |
| | 58521 | .each = .{ .once = &.{ |
| | 58522 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 58523 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 58524 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58525 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 58526 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 58527 | .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 58528 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58529 | .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 58530 | .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58531 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 58532 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58533 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 58534 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 58535 | .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 58536 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 58537 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 58538 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 58539 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 58540 | } }, |
| | 58541 | }, .{ |
| | 58542 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58543 | .src_constraints = .{ |
| | 58544 | .{ .remainder_int = .{ .of = .qword, .is = .qword } }, |
| | 58545 | .{ .unsigned_int = .byte }, |
| | 58546 | .any, |
| | 58547 | }, |
| | 58548 | .patterns = &.{ |
| | 58549 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 58550 | }, |
| | 58551 | .extra_temps = .{ |
| | 58552 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58553 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58554 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58555 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58556 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58557 | .unused, |
| | 58558 | .unused, |
| | 58559 | .unused, |
| | 58560 | .unused, |
| | 58561 | .unused, |
| | 58562 | .unused, |
| | 58563 | }, |
| | 58564 | .dst_temps = .{ .mem, .unused }, |
| | 58565 | .clobbers = .{ .eflags = true }, |
| | 58566 | .each = .{ .once = &.{ |
| | 58567 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, |
| | 58568 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 58569 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58570 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 58571 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 58572 | .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 58573 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58574 | .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 58575 | .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58576 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 58577 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58578 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 58579 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 58580 | .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 58581 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 58582 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 58583 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 58584 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 58585 | } }, |
| | 58586 | }, .{ |
| | 58587 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 58588 | .src_constraints = .{ |
| | 58589 | .{ .remainder_int = .{ .of = .qword, .is = .qword } }, |
| | 58590 | .{ .unsigned_int = .word }, |
| | 58591 | .any, |
| | 58592 | }, |
| | 58593 | .patterns = &.{ |
| | 58594 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, |
| | 58595 | }, |
| | 58596 | .extra_temps = .{ |
| | 58597 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58598 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58599 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58600 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58601 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58602 | .unused, |
| | 58603 | .unused, |
| | 58604 | .unused, |
| | 58605 | .unused, |
| | 58606 | .unused, |
| | 58607 | .unused, |
| | 58608 | }, |
| | 58609 | .dst_temps = .{ .mem, .unused }, |
| | 58610 | .clobbers = .{ .eflags = true }, |
| | 58611 | .each = .{ .once = &.{ |
| | 58612 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 58613 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 58614 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58615 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 58616 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 58617 | .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 58618 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58619 | .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 58620 | .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58621 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 58622 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58623 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 58624 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 58625 | .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 58626 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 58627 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 58628 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 58629 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 58630 | } }, |
| | 58631 | }, .{ |
| | 58632 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58633 | .src_constraints = .{ |
| | 58634 | .{ .remainder_int = .{ .of = .qword, .is = .qword } }, |
| | 58635 | .{ .unsigned_int = .word }, |
| | 58636 | .any, |
| | 58637 | }, |
| | 58638 | .patterns = &.{ |
| | 58639 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, |
| | 58640 | }, |
| | 58641 | .extra_temps = .{ |
| | 58642 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58643 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58644 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| | 58645 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58646 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 58647 | .unused, |
| | 58648 | .unused, |
| | 58649 | .unused, |
| | 58650 | .unused, |
| | 58651 | .unused, |
| | 58652 | .unused, |
| | 58653 | }, |
| | 58654 | .dst_temps = .{ .mem, .unused }, |
| | 58655 | .clobbers = .{ .eflags = true }, |
| | 58656 | .each = .{ .once = &.{ |
| | 58657 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, |
| | 58658 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 58659 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 58660 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 58661 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 58662 | .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 58663 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, |
| | 58664 | .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 58665 | .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, |
| | 58666 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 58667 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, |
| | 58668 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 58669 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 58670 | .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 58671 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 58672 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 58673 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 58674 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 58675 | } }, |
| | 58676 | } }) catch |err| switch (err) { |
| | 58677 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {} {}", .{ |
| | 58678 | @tagName(air_tag), |
| | 58679 | cg.typeOf(bin_op.lhs).fmt(pt), |
| | 58680 | cg.typeOf(bin_op.rhs).fmt(pt), |
| | 58681 | ops[0].tracking(cg), |
| | 58682 | ops[1].tracking(cg), |
| | 58683 | }), |
| | 58684 | else => |e| return e, |
| | 58685 | }; |
| | 58686 | switch (air_tag) { |
| | 58687 | else => unreachable, |
| | 58688 | .shl => res[0].wrapInt(cg) catch |err| switch (err) { |
| | 58689 | error.SelectFailed => return cg.fail("failed to select wrap {} {} {} {}", .{ |
| | 58690 | cg.typeOf(bin_op.lhs).fmt(pt), |
| | 58691 | cg.typeOf(bin_op.rhs).fmt(pt), |
| | 58692 | ops[0].tracking(cg), |
| | 58693 | ops[1].tracking(cg), |
| | 58694 | }), |
| | 58695 | else => |e| return e, |
| | 58696 | }, |
| | 58697 | .shl_exact => {}, |
| | 58698 | } |
| | 58699 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| | 58700 | }, |
| | 58701 | .shl_sat => |air_tag| if (use_old) try cg.airShlSat(inst) else fallback: { |
| | 58702 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| | 58703 | const lhs_ty = cg.typeOf(bin_op.lhs); |
| | 58704 | if (lhs_ty.isVector(zcu)) break :fallback try cg.airShlSat(inst); |
| | 58705 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| | 58706 | var res: [1]Temp = undefined; |
| | 58707 | switch (ops[1].tracking(cg).short) { |
| | 58708 | .immediate => |rhs_imm| res[0] = try cg.tempInit( |
| | 58709 | .i32, |
| | 58710 | .{ .immediate = if (rhs_imm < cg.intInfo(lhs_ty).?.bits) |
| | 58711 | rhs_imm |
| | 58712 | else |
| | 58713 | @bitCast(@as(i64, -1)) }, |
| | 58714 | ), |
| | 58715 | else => cg.select(&res, &.{.i32}, ops[1..2], comptime &.{ .{ |
| | 58716 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| | 58717 | .patterns = &.{ |
| | 58718 | .{ .src = .{ .mem, .none, .none } }, |
| | 58719 | .{ .src = .{ .to_gpr, .none, .none } }, |
| | 58720 | }, |
| | 58721 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| | 58722 | .each = .{ .once = &.{ |
| | 58723 | .{ ._, ._, .movzx, .dst0d, .src0b, ._, ._ }, |
| | 58724 | } }, |
| | 58725 | }, .{ |
| | 58726 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| | 58727 | .patterns = &.{ |
| | 58728 | .{ .src = .{ .mem, .none, .none } }, |
| | 58729 | .{ .src = .{ .to_gpr, .none, .none } }, |
| | 58730 | }, |
| | 58731 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, |
| | 58732 | .each = .{ .once = &.{ |
| | 58733 | .{ ._, ._, .movzx, .dst0d, .src0w, ._, ._ }, |
| | 58734 | } }, |
| | 58735 | }, .{ |
| | 58736 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| | 58737 | .patterns = &.{ |
| | 58738 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 58739 | }, |
| | 58740 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58741 | .each = .{ .once = &.{} }, |
| | 58742 | }, .{ |
| | 58743 | .required_features = .{ .@"64bit", .cmov, null, null }, |
| | 58744 | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, |
| | 58745 | .patterns = &.{ |
| | 58746 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 58747 | }, |
| | 58748 | .extra_temps = .{ |
| | 58749 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58750 | .unused, |
| | 58751 | .unused, |
| | 58752 | .unused, |
| | 58753 | .unused, |
| | 58754 | .unused, |
| | 58755 | .unused, |
| | 58756 | .unused, |
| | 58757 | .unused, |
| | 58758 | .unused, |
| | 58759 | .unused, |
| | 58760 | }, |
| | 58761 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58762 | .each = .{ .once = &.{ |
| | 58763 | .{ ._, ._, .mov, .tmp0d, .si(1 << 16), ._, ._ }, |
| | 58764 | .{ ._, ._, .cmp, .src0q, .tmp0q, ._, ._ }, |
| | 58765 | .{ ._, ._nb, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 58766 | } }, |
| | 58767 | }, .{ |
| | 58768 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58769 | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, |
| | 58770 | .patterns = &.{ |
| | 58771 | .{ .src = .{ .to_mut_gpr, .none, .none } }, |
| | 58772 | }, |
| | 58773 | .extra_temps = .{ |
| | 58774 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58775 | .unused, |
| | 58776 | .unused, |
| | 58777 | .unused, |
| | 58778 | .unused, |
| | 58779 | .unused, |
| | 58780 | .unused, |
| | 58781 | .unused, |
| | 58782 | .unused, |
| | 58783 | .unused, |
| | 58784 | .unused, |
| | 58785 | }, |
| | 58786 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58787 | .each = .{ .once = &.{ |
| | 58788 | .{ ._, ._, .cmp, .src0q, .si(1 << 16), ._, ._ }, |
| | 58789 | .{ ._, ._, .cmc, ._, ._, ._, ._ }, |
| | 58790 | .{ ._, ._, .sbb, .tmp0d, .tmp0d, ._, ._ }, |
| | 58791 | .{ ._, ._, .@"or", .dst0d, .tmp0d, ._, ._ }, |
| | 58792 | } }, |
| | 58793 | }, .{ |
| | 58794 | .required_features = .{ .@"64bit", .cmov, null, null }, |
| | 58795 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 58796 | .patterns = &.{ |
| | 58797 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 58798 | }, |
| | 58799 | .extra_temps = .{ |
| | 58800 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58801 | .unused, |
| | 58802 | .unused, |
| | 58803 | .unused, |
| | 58804 | .unused, |
| | 58805 | .unused, |
| | 58806 | .unused, |
| | 58807 | .unused, |
| | 58808 | .unused, |
| | 58809 | .unused, |
| | 58810 | .unused, |
| | 58811 | }, |
| | 58812 | .dst_temps = .{ .{ .reg = .ecx }, .unused }, |
| | 58813 | .each = .{ .once = &.{ |
| | 58814 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 58815 | .{ ._, ._, .mov, .dst0d, .si(1 << 16), ._, ._ }, |
| | 58816 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 58817 | .{ ._, ._ne, .j, .@"0f", ._, ._, ._ }, |
| | 58818 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 58819 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 58820 | .{ ._, ._, .mov, .tmp0q, .mem(.src0q), ._, ._ }, |
| | 58821 | .{ ._, ._, .cmp, .tmp0q, .dst0q, ._, ._ }, |
| | 58822 | .{ ._, ._na, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 58823 | } }, |
| | 58824 | }, .{ |
| | 58825 | .required_features = .{ .@"64bit", null, null, null }, |
| | 58826 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| | 58827 | .patterns = &.{ |
| | 58828 | .{ .src = .{ .to_mem, .none, .none } }, |
| | 58829 | }, |
| | 58830 | .extra_temps = .{ |
| | 58831 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 58832 | .unused, |
| | 58833 | .unused, |
| | 58834 | .unused, |
| | 58835 | .unused, |
| | 58836 | .unused, |
| | 58837 | .unused, |
| | 58838 | .unused, |
| | 58839 | .unused, |
| | 58840 | .unused, |
| | 58841 | .unused, |
| | 58842 | }, |
| | 58843 | .dst_temps = .{ .{ .reg = .ecx }, .unused }, |
| | 58844 | .each = .{ .once = &.{ |
| | 58845 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 58846 | .{ ._, ._, .mov, .dst0d, .si(1 << 16), ._, ._ }, |
| | 58847 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 58848 | .{ ._, ._ne, .j, .@"0f", ._, ._, ._ }, |
| | 58849 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 58850 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 58851 | .{ ._, ._, .mov, .tmp0q, .mem(.src0q), ._, ._ }, |
| | 58852 | .{ ._, ._, .cmp, .dst0q, .tmp0q, ._, ._ }, |
| | 58853 | .{ ._, ._, .sbb, .dst0d, .dst0d, ._, ._ }, |
| | 58854 | .{ ._, ._, .@"or", .dst0d, .tmp0d, ._, ._ }, |
| | 58855 | } }, |
| | 58856 | } }) catch |err| switch (err) { |
| | 58857 | error.SelectFailed => return cg.fail("failed to select {s} {} {}", .{ |
| | 58858 | @tagName(air_tag), |
| | 58859 | cg.typeOf(bin_op.rhs).fmt(pt), |
| | 58860 | ops[1].tracking(cg), |
| | 58861 | }), |
| | 58862 | else => |e| return e, |
| | 58863 | }, |
| | 58864 | } |
| | 58865 | if (ops[1].index != res[0].index) { |
| | 58866 | try ops[1].die(cg); |
| | 58867 | ops[1] = res[0]; |
| | 58868 | } else cg.temp_type[@intFromEnum(res[0].unwrap(cg).temp)] = .i32; |
| | 58869 | cg.select(&res, &.{lhs_ty}, &ops, comptime &.{ .{ |
| | 58870 | .required_features = .{ .cmov, null, null, null }, |
| | 58871 | .src_constraints = .{ .{ .signed_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 58872 | .patterns = &.{ |
| | 58873 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 58874 | }, |
| | 58875 | .extra_temps = .{ |
| | 58876 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 58877 | .unused, |
| | 58878 | .unused, |
| | 58879 | .unused, |
| | 58880 | .unused, |
| | 58881 | .unused, |
| | 58882 | .unused, |
| | 58883 | .unused, |
| | 58884 | .unused, |
| | 58885 | .unused, |
| | 58886 | .unused, |
| | 58887 | }, |
| | 58888 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58889 | .each = .{ .once = &.{ |
| | 58890 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 58891 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, |
| | 58892 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, |
| | 58893 | .{ ._, ._, .@"test", .dst0b, .src0b, ._, ._ }, |
| | 58894 | .{ ._, ._nz, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 58895 | } }, |
| | 58896 | }, .{ |
| | 58897 | .src_constraints = .{ .{ .signed_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 58898 | .patterns = &.{ |
| | 58899 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 58900 | }, |
| | 58901 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58902 | .each = .{ .once = &.{ |
| | 58903 | .{ ._, ._, .@"test", .dst0b, .src0b, ._, ._ }, |
| | 58904 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 58905 | .{ ._, ._r, .sa, .dst0b, .ui(7), ._, ._ }, |
| | 58906 | .{ ._, ._, .xor, .dst0b, .sa(.src0, .add_smax), ._, ._ }, |
| | 58907 | } }, |
| | 58908 | }, .{ |
| | 58909 | .required_features = .{ .cmov, null, null, null }, |
| | 58910 | .src_constraints = .{ .{ .exact_signed_int = 8 }, .{ .exact_signed_int = 32 }, .any }, |
| | 58911 | .patterns = &.{ |
| | 58912 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 58913 | }, |
| | 58914 | .extra_temps = .{ |
| | 58915 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 58916 | .unused, |
| | 58917 | .unused, |
| | 58918 | .unused, |
| | 58919 | .unused, |
| | 58920 | .unused, |
| | 58921 | .unused, |
| | 58922 | .unused, |
| | 58923 | .unused, |
| | 58924 | .unused, |
| | 58925 | .unused, |
| | 58926 | }, |
| | 58927 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58928 | .each = .{ .once = &.{ |
| | 58929 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 58930 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, |
| | 58931 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, |
| | 58932 | .{ ._, ._, .add, .dst0b, .src0b, ._, ._ }, |
| | 58933 | .{ ._, ._o, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 58934 | } }, |
| | 58935 | }, .{ |
| | 58936 | .src_constraints = .{ .{ .exact_signed_int = 8 }, .{ .exact_signed_int = 32 }, .any }, |
| | 58937 | .patterns = &.{ |
| | 58938 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 58939 | }, |
| | 58940 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58941 | .each = .{ .once = &.{ |
| | 58942 | .{ ._, ._, .add, .dst0b, .src0b, ._, ._ }, |
| | 58943 | .{ ._, ._no, .j, .@"0f", ._, ._, ._ }, |
| | 58944 | .{ ._, ._r, .sa, .dst0b, .ui(7), ._, ._ }, |
| | 58945 | .{ ._, ._, .xor, .dst0b, .sa(.src0, .add_smin), ._, ._ }, |
| | 58946 | } }, |
| | 58947 | }, .{ |
| | 58948 | .required_features = .{ .cmov, null, null, null }, |
| | 58949 | .src_constraints = .{ .{ .signed_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 58950 | .patterns = &.{ |
| | 58951 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 58952 | }, |
| | 58953 | .extra_temps = .{ |
| | 58954 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 58955 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 58956 | .unused, |
| | 58957 | .unused, |
| | 58958 | .unused, |
| | 58959 | .unused, |
| | 58960 | .unused, |
| | 58961 | .unused, |
| | 58962 | .unused, |
| | 58963 | .unused, |
| | 58964 | .unused, |
| | 58965 | }, |
| | 58966 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58967 | .each = .{ .once = &.{ |
| | 58968 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 58969 | .{ ._, ._r, .sa, .tmp0b, .ui(7), ._, ._ }, |
| | 58970 | .{ ._, ._, .lea, .tmp1d, .leaad(.src0, .add_smax_shr_src1, 1), ._, ._ }, |
| | 58971 | .{ ._, ._l, .sa, .dst0b, .src1b, ._, ._ }, |
| | 58972 | .{ ._, ._, .xor, .tmp0b, .sa(.src0, .add_smax), ._, ._ }, |
| | 58973 | .{ ._, ._, .cmp, .tmp1b, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 58974 | .{ ._, ._a, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 58975 | } }, |
| | 58976 | }, .{ |
| | 58977 | .src_constraints = .{ .{ .signed_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 58978 | .patterns = &.{ |
| | 58979 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 58980 | }, |
| | 58981 | .extra_temps = .{ |
| | 58982 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 58983 | .unused, |
| | 58984 | .unused, |
| | 58985 | .unused, |
| | 58986 | .unused, |
| | 58987 | .unused, |
| | 58988 | .unused, |
| | 58989 | .unused, |
| | 58990 | .unused, |
| | 58991 | .unused, |
| | 58992 | .unused, |
| | 58993 | }, |
| | 58994 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 58995 | .each = .{ .once = &.{ |
| | 58996 | .{ ._, ._, .lea, .tmp0d, .leaad(.src0, .add_smax_shr_src1, 1), ._, ._ }, |
| | 58997 | .{ ._, ._, .cmp, .tmp0b, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 58998 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 58999 | .{ ._, ._r, .sa, .dst0b, .ui(7), ._, ._ }, |
| | 59000 | .{ ._, ._, .xor, .dst0b, .sa(.src0, .add_smax), ._, ._ }, |
| | 59001 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59002 | .{ .@"1:", ._l, .sa, .dst0b, .src1b, ._, ._ }, |
| | 59003 | } }, |
| | 59004 | }, .{ |
| | 59005 | .src_constraints = .{ .{ .signed_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 59006 | .patterns = &.{ |
| | 59007 | .{ .src = .{ .to_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 59008 | }, |
| | 59009 | .extra_temps = .{ |
| | 59010 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| | 59011 | .unused, |
| | 59012 | .unused, |
| | 59013 | .unused, |
| | 59014 | .unused, |
| | 59015 | .unused, |
| | 59016 | .unused, |
| | 59017 | .unused, |
| | 59018 | .unused, |
| | 59019 | .unused, |
| | 59020 | .unused, |
| | 59021 | }, |
| | 59022 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 59023 | .each = .{ .once = &.{ |
| | 59024 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 59025 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59026 | .{ ._, ._, .@"test", .src0b, .src0b, ._, ._ }, |
| | 59027 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59028 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 59029 | .{ ._, ._r, .sa, .dst0b, .ui(7), ._, ._ }, |
| | 59030 | .{ ._, ._, .xor, .dst0b, .sa(.src0, .add_smax), ._, ._ }, |
| | 59031 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59032 | .{ .@"1:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59033 | .{ ._, ._l, .sa, .dst0b, .src1b, ._, ._ }, |
| | 59034 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, |
| | 59035 | .{ ._, ._l, .sa, .tmp0b, .uia(8, .src0, .sub_bit_size), ._, ._ }, |
| | 59036 | .{ ._, ._r, .sa, .tmp0b, .uia(8, .src0, .sub_bit_size), ._, ._ }, |
| | 59037 | .{ ._, ._r, .sa, .tmp0b, .src1b, ._, ._ }, |
| | 59038 | .{ ._, ._, .cmp, .tmp0b, .src0b, ._, ._ }, |
| | 59039 | .{ ._, ._ne, .j, .@"0b", ._, ._, ._ }, |
| | 59040 | } }, |
| | 59041 | }, .{ |
| | 59042 | .required_features = .{ .cmov, null, null, null }, |
| | 59043 | .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 59044 | .patterns = &.{ |
| | 59045 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59046 | }, |
| | 59047 | .extra_temps = .{ |
| | 59048 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 59049 | .unused, |
| | 59050 | .unused, |
| | 59051 | .unused, |
| | 59052 | .unused, |
| | 59053 | .unused, |
| | 59054 | .unused, |
| | 59055 | .unused, |
| | 59056 | .unused, |
| | 59057 | .unused, |
| | 59058 | .unused, |
| | 59059 | }, |
| | 59060 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59061 | .each = .{ .once = &.{ |
| | 59062 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59063 | .{ ._, ._, .@"test", .dst0b, .src0b, ._, ._ }, |
| | 59064 | .{ ._, ._nz, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59065 | } }, |
| | 59066 | }, .{ |
| | 59067 | .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 59068 | .patterns = &.{ |
| | 59069 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59070 | }, |
| | 59071 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59072 | .each = .{ .once = &.{ |
| | 59073 | .{ ._, ._, .@"test", .dst0b, .src0b, ._, ._ }, |
| | 59074 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 59075 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59076 | } }, |
| | 59077 | }, .{ |
| | 59078 | .required_features = .{ .cmov, null, null, null }, |
| | 59079 | .src_constraints = .{ .{ .exact_unsigned_int = 8 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59080 | .patterns = &.{ |
| | 59081 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59082 | }, |
| | 59083 | .extra_temps = .{ |
| | 59084 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 59085 | .unused, |
| | 59086 | .unused, |
| | 59087 | .unused, |
| | 59088 | .unused, |
| | 59089 | .unused, |
| | 59090 | .unused, |
| | 59091 | .unused, |
| | 59092 | .unused, |
| | 59093 | .unused, |
| | 59094 | .unused, |
| | 59095 | }, |
| | 59096 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59097 | .each = .{ .once = &.{ |
| | 59098 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59099 | .{ ._, ._, .add, .dst0b, .src0b, ._, ._ }, |
| | 59100 | .{ ._, ._c, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59101 | } }, |
| | 59102 | }, .{ |
| | 59103 | .src_constraints = .{ .{ .exact_unsigned_int = 8 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59104 | .patterns = &.{ |
| | 59105 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59106 | }, |
| | 59107 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59108 | .each = .{ .once = &.{ |
| | 59109 | .{ ._, ._, .add, .dst0b, .src0b, ._, ._ }, |
| | 59110 | .{ ._, ._nc, .j, .@"0f", ._, ._, ._ }, |
| | 59111 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59112 | } }, |
| | 59113 | }, .{ |
| | 59114 | .required_features = .{ .cmov, null, null, null }, |
| | 59115 | .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 59116 | .patterns = &.{ |
| | 59117 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 59118 | }, |
| | 59119 | .extra_temps = .{ |
| | 59120 | .{ .type = .u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| | 59121 | .unused, |
| | 59122 | .unused, |
| | 59123 | .unused, |
| | 59124 | .unused, |
| | 59125 | .unused, |
| | 59126 | .unused, |
| | 59127 | .unused, |
| | 59128 | .unused, |
| | 59129 | .unused, |
| | 59130 | .unused, |
| | 59131 | }, |
| | 59132 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 59133 | .each = .{ .once = &.{ |
| | 59134 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59135 | .{ ._, ._l, .sh, .dst0b, .src1b, ._, ._ }, |
| | 59136 | .{ ._, ._, .cmp, .src0b, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 59137 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59138 | .{ ._, ._a, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59139 | } }, |
| | 59140 | }, .{ |
| | 59141 | .required_features = .{ .cmov, null, null, null }, |
| | 59142 | .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 59143 | .patterns = &.{ |
| | 59144 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 59145 | }, |
| | 59146 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59147 | .each = .{ .once = &.{ |
| | 59148 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59149 | .{ ._, ._l, .sh, .dst0b, .src1b, ._, ._ }, |
| | 59150 | .{ ._, ._, .cmp, .src0b, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 59151 | .{ ._, ._na, .j, .@"0f", ._, ._, ._ }, |
| | 59152 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59153 | } }, |
| | 59154 | }, .{ |
| | 59155 | .required_features = .{ .cmov, null, null, null }, |
| | 59156 | .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 59157 | .patterns = &.{ |
| | 59158 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 59159 | }, |
| | 59160 | .extra_temps = .{ |
| | 59161 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 59162 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 59163 | .unused, |
| | 59164 | .unused, |
| | 59165 | .unused, |
| | 59166 | .unused, |
| | 59167 | .unused, |
| | 59168 | .unused, |
| | 59169 | .unused, |
| | 59170 | .unused, |
| | 59171 | .unused, |
| | 59172 | }, |
| | 59173 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 59174 | .each = .{ .once = &.{ |
| | 59175 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59176 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 59177 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59178 | .{ ._, ._, .@"test", .src0b, .src0b, ._, ._ }, |
| | 59179 | .{ ._, ._z, .cmov, .dst0d, .src0d, ._, ._ }, |
| | 59180 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59181 | .{ .@"1:", ._, .mov, .tmp0d, .dst0d, ._, ._ }, |
| | 59182 | .{ ._, ._r, .sh, .tmp0b, .src1b, ._, ._ }, |
| | 59183 | .{ ._, ._, .mov, .tmp1d, .src0d, ._, ._ }, |
| | 59184 | .{ ._, ._l, .sh, .tmp1b, .src1b, ._, ._ }, |
| | 59185 | .{ ._, ._, .cmp, .src0b, .tmp0b, ._, ._ }, |
| | 59186 | .{ ._, ._na, .cmov, .dst0d, .tmp1d, ._, ._ }, |
| | 59187 | } }, |
| | 59188 | }, .{ |
| | 59189 | .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .exact_signed_int = 32 }, .any }, |
| | 59190 | .patterns = &.{ |
| | 59191 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 59192 | }, |
| | 59193 | .extra_temps = .{ |
| | 59194 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 59195 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| | 59196 | .unused, |
| | 59197 | .unused, |
| | 59198 | .unused, |
| | 59199 | .unused, |
| | 59200 | .unused, |
| | 59201 | .unused, |
| | 59202 | .unused, |
| | 59203 | .unused, |
| | 59204 | .unused, |
| | 59205 | }, |
| | 59206 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 59207 | .each = .{ .once = &.{ |
| | 59208 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59209 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 59210 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59211 | .{ ._, ._, .@"test", .src0b, .src0b, ._, ._ }, |
| | 59212 | .{ ._, ._nz, .j, .@"0f", ._, ._, ._ }, |
| | 59213 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 59214 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59215 | .{ .@"1:", ._, .mov, .tmp0d, .dst0d, ._, ._ }, |
| | 59216 | .{ ._, ._r, .sh, .tmp0b, .src1b, ._, ._ }, |
| | 59217 | .{ ._, ._, .mov, .tmp1d, .src0d, ._, ._ }, |
| | 59218 | .{ ._, ._l, .sh, .tmp1b, .src1b, ._, ._ }, |
| | 59219 | .{ ._, ._, .cmp, .src0b, .tmp0b, ._, ._ }, |
| | 59220 | .{ ._, ._a, .j, .@"0f", ._, ._, ._ }, |
| | 59221 | .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ }, |
| | 59222 | } }, |
| | 59223 | }, .{ |
| | 59224 | .required_features = .{ .cmov, .fast_imm16, null, null }, |
| | 59225 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59226 | .patterns = &.{ |
| | 59227 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59228 | }, |
| | 59229 | .extra_temps = .{ |
| | 59230 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59231 | .unused, |
| | 59232 | .unused, |
| | 59233 | .unused, |
| | 59234 | .unused, |
| | 59235 | .unused, |
| | 59236 | .unused, |
| | 59237 | .unused, |
| | 59238 | .unused, |
| | 59239 | .unused, |
| | 59240 | .unused, |
| | 59241 | }, |
| | 59242 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59243 | .each = .{ .once = &.{ |
| | 59244 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 59245 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| | 59246 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| | 59247 | .{ ._, ._, .@"test", .dst0w, .src0w, ._, ._ }, |
| | 59248 | .{ ._, ._nz, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59249 | } }, |
| | 59250 | }, .{ |
| | 59251 | .required_features = .{ .cmov, null, null, null }, |
| | 59252 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59253 | .patterns = &.{ |
| | 59254 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59255 | }, |
| | 59256 | .extra_temps = .{ |
| | 59257 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59258 | .unused, |
| | 59259 | .unused, |
| | 59260 | .unused, |
| | 59261 | .unused, |
| | 59262 | .unused, |
| | 59263 | .unused, |
| | 59264 | .unused, |
| | 59265 | .unused, |
| | 59266 | .unused, |
| | 59267 | .unused, |
| | 59268 | }, |
| | 59269 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59270 | .each = .{ .once = &.{ |
| | 59271 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 59272 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| | 59273 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59274 | .{ ._, ._, .@"test", .dst0w, .src0w, ._, ._ }, |
| | 59275 | .{ ._, ._nz, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59276 | } }, |
| | 59277 | }, .{ |
| | 59278 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 59279 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59280 | .patterns = &.{ |
| | 59281 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59282 | }, |
| | 59283 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59284 | .each = .{ .once = &.{ |
| | 59285 | .{ ._, ._, .@"test", .dst0w, .src0w, ._, ._ }, |
| | 59286 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 59287 | .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ }, |
| | 59288 | .{ ._, ._, .xor, .dst0w, .sa(.src0, .add_smax), ._, ._ }, |
| | 59289 | } }, |
| | 59290 | }, .{ |
| | 59291 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59292 | .patterns = &.{ |
| | 59293 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59294 | }, |
| | 59295 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59296 | .each = .{ .once = &.{ |
| | 59297 | .{ ._, ._, .@"test", .dst0w, .src0w, ._, ._ }, |
| | 59298 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 59299 | .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ }, |
| | 59300 | .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59301 | } }, |
| | 59302 | }, .{ |
| | 59303 | .required_features = .{ .cmov, .fast_imm16, null, null }, |
| | 59304 | .src_constraints = .{ .{ .exact_signed_int = 16 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59305 | .patterns = &.{ |
| | 59306 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59307 | }, |
| | 59308 | .extra_temps = .{ |
| | 59309 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59310 | .unused, |
| | 59311 | .unused, |
| | 59312 | .unused, |
| | 59313 | .unused, |
| | 59314 | .unused, |
| | 59315 | .unused, |
| | 59316 | .unused, |
| | 59317 | .unused, |
| | 59318 | .unused, |
| | 59319 | .unused, |
| | 59320 | }, |
| | 59321 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59322 | .each = .{ .once = &.{ |
| | 59323 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 59324 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| | 59325 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| | 59326 | .{ ._, ._, .add, .dst0w, .src0w, ._, ._ }, |
| | 59327 | .{ ._, ._o, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59328 | } }, |
| | 59329 | }, .{ |
| | 59330 | .required_features = .{ .cmov, null, null, null }, |
| | 59331 | .src_constraints = .{ .{ .exact_signed_int = 16 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59332 | .patterns = &.{ |
| | 59333 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59334 | }, |
| | 59335 | .extra_temps = .{ |
| | 59336 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59337 | .unused, |
| | 59338 | .unused, |
| | 59339 | .unused, |
| | 59340 | .unused, |
| | 59341 | .unused, |
| | 59342 | .unused, |
| | 59343 | .unused, |
| | 59344 | .unused, |
| | 59345 | .unused, |
| | 59346 | .unused, |
| | 59347 | }, |
| | 59348 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59349 | .each = .{ .once = &.{ |
| | 59350 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 59351 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| | 59352 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59353 | .{ ._, ._, .add, .dst0w, .src0w, ._, ._ }, |
| | 59354 | .{ ._, ._o, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59355 | } }, |
| | 59356 | }, .{ |
| | 59357 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 59358 | .src_constraints = .{ .{ .exact_signed_int = 16 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59359 | .patterns = &.{ |
| | 59360 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59361 | }, |
| | 59362 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59363 | .each = .{ .once = &.{ |
| | 59364 | .{ ._, ._, .add, .dst0w, .src0w, ._, ._ }, |
| | 59365 | .{ ._, ._no, .j, .@"0f", ._, ._, ._ }, |
| | 59366 | .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ }, |
| | 59367 | .{ ._, ._, .xor, .dst0w, .sa(.src0, .add_smin), ._, ._ }, |
| | 59368 | } }, |
| | 59369 | }, .{ |
| | 59370 | .src_constraints = .{ .{ .exact_signed_int = 16 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59371 | .patterns = &.{ |
| | 59372 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59373 | }, |
| | 59374 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59375 | .each = .{ .once = &.{ |
| | 59376 | .{ ._, ._, .add, .dst0w, .src0w, ._, ._ }, |
| | 59377 | .{ ._, ._no, .j, .@"0f", ._, ._, ._ }, |
| | 59378 | .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ }, |
| | 59379 | .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smin), ._, ._ }, |
| | 59380 | } }, |
| | 59381 | }, .{ |
| | 59382 | .required_features = .{ .cmov, .fast_imm16, null, null }, |
| | 59383 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59384 | .patterns = &.{ |
| | 59385 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 59386 | }, |
| | 59387 | .extra_temps = .{ |
| | 59388 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59389 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59390 | .unused, |
| | 59391 | .unused, |
| | 59392 | .unused, |
| | 59393 | .unused, |
| | 59394 | .unused, |
| | 59395 | .unused, |
| | 59396 | .unused, |
| | 59397 | .unused, |
| | 59398 | .unused, |
| | 59399 | }, |
| | 59400 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59401 | .each = .{ .once = &.{ |
| | 59402 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 59403 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| | 59404 | .{ ._, ._, .lea, .tmp1d, .leaad(.src0, .add_smax_shr_src1, 1), ._, ._ }, |
| | 59405 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 59406 | .{ ._, ._, .xor, .tmp0w, .sa(.src0, .add_smax), ._, ._ }, |
| | 59407 | .{ ._, ._, .cmp, .tmp1w, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 59408 | .{ ._, ._a, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59409 | } }, |
| | 59410 | }, .{ |
| | 59411 | .required_features = .{ .cmov, null, null, null }, |
| | 59412 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59413 | .patterns = &.{ |
| | 59414 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 59415 | }, |
| | 59416 | .extra_temps = .{ |
| | 59417 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59418 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59419 | .unused, |
| | 59420 | .unused, |
| | 59421 | .unused, |
| | 59422 | .unused, |
| | 59423 | .unused, |
| | 59424 | .unused, |
| | 59425 | .unused, |
| | 59426 | .unused, |
| | 59427 | .unused, |
| | 59428 | }, |
| | 59429 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59430 | .each = .{ .once = &.{ |
| | 59431 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 59432 | .{ ._, ._r, .sa, .tmp0w, .ui(15), ._, ._ }, |
| | 59433 | .{ ._, ._, .lea, .tmp1d, .leaad(.src0, .add_smax_shr_src1, 1), ._, ._ }, |
| | 59434 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 59435 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59436 | .{ ._, ._, .cmp, .tmp1w, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 59437 | .{ ._, ._a, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59438 | } }, |
| | 59439 | }, .{ |
| | 59440 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 59441 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59442 | .patterns = &.{ |
| | 59443 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 59444 | }, |
| | 59445 | .extra_temps = .{ |
| | 59446 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59447 | .unused, |
| | 59448 | .unused, |
| | 59449 | .unused, |
| | 59450 | .unused, |
| | 59451 | .unused, |
| | 59452 | .unused, |
| | 59453 | .unused, |
| | 59454 | .unused, |
| | 59455 | .unused, |
| | 59456 | .unused, |
| | 59457 | }, |
| | 59458 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59459 | .each = .{ .once = &.{ |
| | 59460 | .{ ._, ._, .lea, .tmp0d, .leaad(.src0, .add_smax_shr_src1, 1), ._, ._ }, |
| | 59461 | .{ ._, ._, .cmp, .tmp0w, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 59462 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59463 | .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ }, |
| | 59464 | .{ ._, ._, .xor, .dst0w, .sa(.src0, .add_smax), ._, ._ }, |
| | 59465 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59466 | .{ .@"1:", ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 59467 | } }, |
| | 59468 | }, .{ |
| | 59469 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59470 | .patterns = &.{ |
| | 59471 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 59472 | }, |
| | 59473 | .extra_temps = .{ |
| | 59474 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59475 | .unused, |
| | 59476 | .unused, |
| | 59477 | .unused, |
| | 59478 | .unused, |
| | 59479 | .unused, |
| | 59480 | .unused, |
| | 59481 | .unused, |
| | 59482 | .unused, |
| | 59483 | .unused, |
| | 59484 | .unused, |
| | 59485 | }, |
| | 59486 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59487 | .each = .{ .once = &.{ |
| | 59488 | .{ ._, ._, .lea, .tmp0d, .leaad(.src0, .add_smax_shr_src1, 1), ._, ._ }, |
| | 59489 | .{ ._, ._, .cmp, .tmp0w, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 59490 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59491 | .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ }, |
| | 59492 | .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59493 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59494 | .{ .@"1:", ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 59495 | } }, |
| | 59496 | }, .{ |
| | 59497 | .required_features = .{ .fast_imm16, null, null, null }, |
| | 59498 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59499 | .patterns = &.{ |
| | 59500 | .{ .src = .{ .to_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 59501 | }, |
| | 59502 | .extra_temps = .{ |
| | 59503 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59504 | .unused, |
| | 59505 | .unused, |
| | 59506 | .unused, |
| | 59507 | .unused, |
| | 59508 | .unused, |
| | 59509 | .unused, |
| | 59510 | .unused, |
| | 59511 | .unused, |
| | 59512 | .unused, |
| | 59513 | .unused, |
| | 59514 | }, |
| | 59515 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 59516 | .each = .{ .once = &.{ |
| | 59517 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 59518 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59519 | .{ ._, ._, .@"test", .src0w, .src0w, ._, ._ }, |
| | 59520 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59521 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 59522 | .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ }, |
| | 59523 | .{ ._, ._, .xor, .dst0w, .sa(.src0, .add_smax), ._, ._ }, |
| | 59524 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59525 | .{ .@"1:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59526 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 59527 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, |
| | 59528 | .{ ._, ._l, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 59529 | .{ ._, ._r, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 59530 | .{ ._, ._r, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 59531 | .{ ._, ._, .cmp, .tmp0w, .src0w, ._, ._ }, |
| | 59532 | .{ ._, ._ne, .j, .@"0b", ._, ._, ._ }, |
| | 59533 | } }, |
| | 59534 | }, .{ |
| | 59535 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59536 | .patterns = &.{ |
| | 59537 | .{ .src = .{ .to_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 59538 | }, |
| | 59539 | .extra_temps = .{ |
| | 59540 | .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, |
| | 59541 | .unused, |
| | 59542 | .unused, |
| | 59543 | .unused, |
| | 59544 | .unused, |
| | 59545 | .unused, |
| | 59546 | .unused, |
| | 59547 | .unused, |
| | 59548 | .unused, |
| | 59549 | .unused, |
| | 59550 | .unused, |
| | 59551 | }, |
| | 59552 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 59553 | .each = .{ .once = &.{ |
| | 59554 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 59555 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59556 | .{ ._, ._, .@"test", .src0w, .src0w, ._, ._ }, |
| | 59557 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59558 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 59559 | .{ ._, ._r, .sa, .dst0w, .ui(15), ._, ._ }, |
| | 59560 | .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59561 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59562 | .{ .@"1:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59563 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 59564 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, |
| | 59565 | .{ ._, ._l, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 59566 | .{ ._, ._r, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 59567 | .{ ._, ._r, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 59568 | .{ ._, ._, .cmp, .tmp0w, .src0w, ._, ._ }, |
| | 59569 | .{ ._, ._ne, .j, .@"0b", ._, ._, ._ }, |
| | 59570 | } }, |
| | 59571 | }, .{ |
| | 59572 | .required_features = .{ .cmov, null, null, null }, |
| | 59573 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59574 | .patterns = &.{ |
| | 59575 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59576 | }, |
| | 59577 | .extra_temps = .{ |
| | 59578 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 59579 | .unused, |
| | 59580 | .unused, |
| | 59581 | .unused, |
| | 59582 | .unused, |
| | 59583 | .unused, |
| | 59584 | .unused, |
| | 59585 | .unused, |
| | 59586 | .unused, |
| | 59587 | .unused, |
| | 59588 | .unused, |
| | 59589 | }, |
| | 59590 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59591 | .each = .{ .once = &.{ |
| | 59592 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59593 | .{ ._, ._, .@"test", .dst0w, .src0w, ._, ._ }, |
| | 59594 | .{ ._, ._nz, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59595 | } }, |
| | 59596 | }, .{ |
| | 59597 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59598 | .patterns = &.{ |
| | 59599 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59600 | }, |
| | 59601 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59602 | .each = .{ .once = &.{ |
| | 59603 | .{ ._, ._, .@"test", .dst0w, .src0w, ._, ._ }, |
| | 59604 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 59605 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59606 | } }, |
| | 59607 | }, .{ |
| | 59608 | .required_features = .{ .cmov, null, null, null }, |
| | 59609 | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59610 | .patterns = &.{ |
| | 59611 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59612 | }, |
| | 59613 | .extra_temps = .{ |
| | 59614 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 59615 | .unused, |
| | 59616 | .unused, |
| | 59617 | .unused, |
| | 59618 | .unused, |
| | 59619 | .unused, |
| | 59620 | .unused, |
| | 59621 | .unused, |
| | 59622 | .unused, |
| | 59623 | .unused, |
| | 59624 | .unused, |
| | 59625 | }, |
| | 59626 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59627 | .each = .{ .once = &.{ |
| | 59628 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59629 | .{ ._, ._, .add, .dst0w, .src0w, ._, ._ }, |
| | 59630 | .{ ._, ._c, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59631 | } }, |
| | 59632 | }, .{ |
| | 59633 | .src_constraints = .{ .{ .exact_unsigned_int = 16 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59634 | .patterns = &.{ |
| | 59635 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59636 | }, |
| | 59637 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59638 | .each = .{ .once = &.{ |
| | 59639 | .{ ._, ._, .add, .dst0w, .src0w, ._, ._ }, |
| | 59640 | .{ ._, ._nc, .j, .@"0f", ._, ._, ._ }, |
| | 59641 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59642 | } }, |
| | 59643 | }, .{ |
| | 59644 | .required_features = .{ .cmov, null, null, null }, |
| | 59645 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59646 | .patterns = &.{ |
| | 59647 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 59648 | }, |
| | 59649 | .extra_temps = .{ |
| | 59650 | .{ .type = .u16, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| | 59651 | .unused, |
| | 59652 | .unused, |
| | 59653 | .unused, |
| | 59654 | .unused, |
| | 59655 | .unused, |
| | 59656 | .unused, |
| | 59657 | .unused, |
| | 59658 | .unused, |
| | 59659 | .unused, |
| | 59660 | .unused, |
| | 59661 | }, |
| | 59662 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 59663 | .each = .{ .once = &.{ |
| | 59664 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59665 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, |
| | 59666 | .{ ._, ._, .cmp, .src0w, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 59667 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59668 | .{ ._, ._a, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59669 | } }, |
| | 59670 | }, .{ |
| | 59671 | .required_features = .{ .cmov, null, null, null }, |
| | 59672 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59673 | .patterns = &.{ |
| | 59674 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 59675 | }, |
| | 59676 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59677 | .each = .{ .once = &.{ |
| | 59678 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59679 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, |
| | 59680 | .{ ._, ._, .cmp, .src0w, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 59681 | .{ ._, ._na, .j, .@"0f", ._, ._, ._ }, |
| | 59682 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59683 | } }, |
| | 59684 | }, .{ |
| | 59685 | .required_features = .{ .cmov, null, null, null }, |
| | 59686 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59687 | .patterns = &.{ |
| | 59688 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 59689 | }, |
| | 59690 | .extra_temps = .{ |
| | 59691 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 59692 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 59693 | .unused, |
| | 59694 | .unused, |
| | 59695 | .unused, |
| | 59696 | .unused, |
| | 59697 | .unused, |
| | 59698 | .unused, |
| | 59699 | .unused, |
| | 59700 | .unused, |
| | 59701 | .unused, |
| | 59702 | }, |
| | 59703 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 59704 | .each = .{ .once = &.{ |
| | 59705 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59706 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 59707 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59708 | .{ ._, ._, .@"test", .src0w, .src0w, ._, ._ }, |
| | 59709 | .{ ._, ._z, .cmov, .dst0d, .src0d, ._, ._ }, |
| | 59710 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59711 | .{ .@"1:", ._, .mov, .tmp0d, .dst0d, ._, ._ }, |
| | 59712 | .{ ._, ._r, .sh, .tmp0w, .src1b, ._, ._ }, |
| | 59713 | .{ ._, ._, .mov, .tmp1d, .src0d, ._, ._ }, |
| | 59714 | .{ ._, ._l, .sh, .tmp1d, .src1b, ._, ._ }, |
| | 59715 | .{ ._, ._, .cmp, .src0w, .tmp0w, ._, ._ }, |
| | 59716 | .{ ._, ._na, .cmov, .dst0d, .tmp1d, ._, ._ }, |
| | 59717 | } }, |
| | 59718 | }, .{ |
| | 59719 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_signed_int = 32 }, .any }, |
| | 59720 | .patterns = &.{ |
| | 59721 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 59722 | }, |
| | 59723 | .extra_temps = .{ |
| | 59724 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 59725 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| | 59726 | .unused, |
| | 59727 | .unused, |
| | 59728 | .unused, |
| | 59729 | .unused, |
| | 59730 | .unused, |
| | 59731 | .unused, |
| | 59732 | .unused, |
| | 59733 | .unused, |
| | 59734 | .unused, |
| | 59735 | }, |
| | 59736 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 59737 | .each = .{ .once = &.{ |
| | 59738 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59739 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 59740 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59741 | .{ ._, ._, .@"test", .src0w, .src0w, ._, ._ }, |
| | 59742 | .{ ._, ._nz, .j, .@"0f", ._, ._, ._ }, |
| | 59743 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 59744 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59745 | .{ .@"1:", ._, .mov, .tmp0d, .dst0d, ._, ._ }, |
| | 59746 | .{ ._, ._r, .sh, .tmp0w, .src1b, ._, ._ }, |
| | 59747 | .{ ._, ._, .mov, .tmp1d, .src0d, ._, ._ }, |
| | 59748 | .{ ._, ._l, .sh, .tmp1d, .src1b, ._, ._ }, |
| | 59749 | .{ ._, ._, .cmp, .src0w, .tmp0w, ._, ._ }, |
| | 59750 | .{ ._, ._a, .j, .@"0f", ._, ._, ._ }, |
| | 59751 | .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ }, |
| | 59752 | } }, |
| | 59753 | }, .{ |
| | 59754 | .required_features = .{ .cmov, null, null, null }, |
| | 59755 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 59756 | .patterns = &.{ |
| | 59757 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59758 | }, |
| | 59759 | .extra_temps = .{ |
| | 59760 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 59761 | .unused, |
| | 59762 | .unused, |
| | 59763 | .unused, |
| | 59764 | .unused, |
| | 59765 | .unused, |
| | 59766 | .unused, |
| | 59767 | .unused, |
| | 59768 | .unused, |
| | 59769 | .unused, |
| | 59770 | .unused, |
| | 59771 | }, |
| | 59772 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59773 | .each = .{ .once = &.{ |
| | 59774 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 59775 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| | 59776 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59777 | .{ ._, ._, .@"test", .dst0d, .src0d, ._, ._ }, |
| | 59778 | .{ ._, ._nz, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59779 | } }, |
| | 59780 | }, .{ |
| | 59781 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 59782 | .patterns = &.{ |
| | 59783 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59784 | }, |
| | 59785 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59786 | .each = .{ .once = &.{ |
| | 59787 | .{ ._, ._, .@"test", .dst0d, .src0d, ._, ._ }, |
| | 59788 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 59789 | .{ ._, ._r, .sa, .dst0d, .ui(31), ._, ._ }, |
| | 59790 | .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59791 | } }, |
| | 59792 | }, .{ |
| | 59793 | .required_features = .{ .cmov, null, null, null }, |
| | 59794 | .src_constraints = .{ .{ .exact_signed_int = 32 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59795 | .patterns = &.{ |
| | 59796 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59797 | }, |
| | 59798 | .extra_temps = .{ |
| | 59799 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 59800 | .unused, |
| | 59801 | .unused, |
| | 59802 | .unused, |
| | 59803 | .unused, |
| | 59804 | .unused, |
| | 59805 | .unused, |
| | 59806 | .unused, |
| | 59807 | .unused, |
| | 59808 | .unused, |
| | 59809 | .unused, |
| | 59810 | }, |
| | 59811 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59812 | .each = .{ .once = &.{ |
| | 59813 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 59814 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| | 59815 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59816 | .{ ._, ._, .add, .dst0d, .src0d, ._, ._ }, |
| | 59817 | .{ ._, ._o, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59818 | } }, |
| | 59819 | }, .{ |
| | 59820 | .src_constraints = .{ .{ .exact_signed_int = 32 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59821 | .patterns = &.{ |
| | 59822 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59823 | }, |
| | 59824 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59825 | .each = .{ .once = &.{ |
| | 59826 | .{ ._, ._, .add, .dst0d, .src0d, ._, ._ }, |
| | 59827 | .{ ._, ._no, .j, .@"0f", ._, ._, ._ }, |
| | 59828 | .{ ._, ._r, .sa, .dst0d, .ui(31), ._, ._ }, |
| | 59829 | .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smin), ._, ._ }, |
| | 59830 | } }, |
| | 59831 | }, .{ |
| | 59832 | .required_features = .{ .cmov, null, null, null }, |
| | 59833 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 59834 | .patterns = &.{ |
| | 59835 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 59836 | }, |
| | 59837 | .extra_temps = .{ |
| | 59838 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 59839 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 59840 | .unused, |
| | 59841 | .unused, |
| | 59842 | .unused, |
| | 59843 | .unused, |
| | 59844 | .unused, |
| | 59845 | .unused, |
| | 59846 | .unused, |
| | 59847 | .unused, |
| | 59848 | .unused, |
| | 59849 | }, |
| | 59850 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59851 | .each = .{ .once = &.{ |
| | 59852 | .{ ._, ._, .mov, .tmp0d, .src0d, ._, ._ }, |
| | 59853 | .{ ._, ._r, .sa, .tmp0d, .ui(31), ._, ._ }, |
| | 59854 | .{ ._, ._, .lea, .tmp1d, .leaad(.src0, .add_smax_shr_src1, 1), ._, ._ }, |
| | 59855 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 59856 | .{ ._, ._, .xor, .tmp0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59857 | .{ ._, ._, .cmp, .tmp1d, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 59858 | .{ ._, ._a, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59859 | } }, |
| | 59860 | }, .{ |
| | 59861 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 59862 | .patterns = &.{ |
| | 59863 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 59864 | }, |
| | 59865 | .extra_temps = .{ |
| | 59866 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 59867 | .unused, |
| | 59868 | .unused, |
| | 59869 | .unused, |
| | 59870 | .unused, |
| | 59871 | .unused, |
| | 59872 | .unused, |
| | 59873 | .unused, |
| | 59874 | .unused, |
| | 59875 | .unused, |
| | 59876 | .unused, |
| | 59877 | }, |
| | 59878 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59879 | .each = .{ .once = &.{ |
| | 59880 | .{ ._, ._, .lea, .tmp0d, .leaad(.src0, .add_smax_shr_src1, 1), ._, ._ }, |
| | 59881 | .{ ._, ._, .cmp, .tmp0d, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 59882 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59883 | .{ ._, ._r, .sa, .dst0d, .ui(31), ._, ._ }, |
| | 59884 | .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59885 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59886 | .{ .@"1:", ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 59887 | } }, |
| | 59888 | }, .{ |
| | 59889 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 59890 | .patterns = &.{ |
| | 59891 | .{ .src = .{ .to_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 59892 | }, |
| | 59893 | .extra_temps = .{ |
| | 59894 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| | 59895 | .unused, |
| | 59896 | .unused, |
| | 59897 | .unused, |
| | 59898 | .unused, |
| | 59899 | .unused, |
| | 59900 | .unused, |
| | 59901 | .unused, |
| | 59902 | .unused, |
| | 59903 | .unused, |
| | 59904 | .unused, |
| | 59905 | }, |
| | 59906 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 59907 | .each = .{ .once = &.{ |
| | 59908 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 59909 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 59910 | .{ ._, ._, .@"test", .src0d, .src0d, ._, ._ }, |
| | 59911 | .{ .@"0:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59912 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 59913 | .{ ._, ._r, .sa, .dst0d, .ui(31), ._, ._ }, |
| | 59914 | .{ ._, ._, .xor, .dst0d, .sa(.src0, .add_smax), ._, ._ }, |
| | 59915 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 59916 | .{ .@"1:", ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 59917 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, |
| | 59918 | .{ ._, ._, .mov, .tmp0d, .dst0d, ._, ._ }, |
| | 59919 | .{ ._, ._l, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 59920 | .{ ._, ._r, .sa, .tmp0d, .uia(32, .src0, .sub_bit_size), ._, ._ }, |
| | 59921 | .{ ._, ._r, .sa, .tmp0d, .src1b, ._, ._ }, |
| | 59922 | .{ ._, ._, .cmp, .tmp0d, .src0d, ._, ._ }, |
| | 59923 | .{ ._, ._ne, .j, .@"0b", ._, ._, ._ }, |
| | 59924 | } }, |
| | 59925 | }, .{ |
| | 59926 | .required_features = .{ .cmov, null, null, null }, |
| | 59927 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 59928 | .patterns = &.{ |
| | 59929 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59930 | }, |
| | 59931 | .extra_temps = .{ |
| | 59932 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 59933 | .unused, |
| | 59934 | .unused, |
| | 59935 | .unused, |
| | 59936 | .unused, |
| | 59937 | .unused, |
| | 59938 | .unused, |
| | 59939 | .unused, |
| | 59940 | .unused, |
| | 59941 | .unused, |
| | 59942 | .unused, |
| | 59943 | }, |
| | 59944 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59945 | .each = .{ .once = &.{ |
| | 59946 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59947 | .{ ._, ._, .@"test", .dst0d, .src0d, ._, ._ }, |
| | 59948 | .{ ._, ._nz, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59949 | } }, |
| | 59950 | }, .{ |
| | 59951 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 59952 | .patterns = &.{ |
| | 59953 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 59954 | }, |
| | 59955 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59956 | .each = .{ .once = &.{ |
| | 59957 | .{ ._, ._, .@"test", .dst0d, .src0d, ._, ._ }, |
| | 59958 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 59959 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59960 | } }, |
| | 59961 | }, .{ |
| | 59962 | .required_features = .{ .cmov, null, null, null }, |
| | 59963 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59964 | .patterns = &.{ |
| | 59965 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59966 | }, |
| | 59967 | .extra_temps = .{ |
| | 59968 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 59969 | .unused, |
| | 59970 | .unused, |
| | 59971 | .unused, |
| | 59972 | .unused, |
| | 59973 | .unused, |
| | 59974 | .unused, |
| | 59975 | .unused, |
| | 59976 | .unused, |
| | 59977 | .unused, |
| | 59978 | .unused, |
| | 59979 | }, |
| | 59980 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59981 | .each = .{ .once = &.{ |
| | 59982 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59983 | .{ ._, ._, .add, .dst0d, .src0d, ._, ._ }, |
| | 59984 | .{ ._, ._c, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 59985 | } }, |
| | 59986 | }, .{ |
| | 59987 | .src_constraints = .{ .{ .exact_unsigned_int = 32 }, .{ .exact_signed_int = 32 }, .any }, |
| | 59988 | .patterns = &.{ |
| | 59989 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 59990 | }, |
| | 59991 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 59992 | .each = .{ .once = &.{ |
| | 59993 | .{ ._, ._, .add, .dst0d, .src0d, ._, ._ }, |
| | 59994 | .{ ._, ._nc, .j, .@"0f", ._, ._, ._ }, |
| | 59995 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 59996 | } }, |
| | 59997 | }, .{ |
| | 59998 | .required_features = .{ .cmov, null, null, null }, |
| | 59999 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60000 | .patterns = &.{ |
| | 60001 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 60002 | }, |
| | 60003 | .extra_temps = .{ |
| | 60004 | .{ .type = .u32, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } } }, |
| | 60005 | .unused, |
| | 60006 | .unused, |
| | 60007 | .unused, |
| | 60008 | .unused, |
| | 60009 | .unused, |
| | 60010 | .unused, |
| | 60011 | .unused, |
| | 60012 | .unused, |
| | 60013 | .unused, |
| | 60014 | .unused, |
| | 60015 | }, |
| | 60016 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 60017 | .each = .{ .once = &.{ |
| | 60018 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 60019 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, |
| | 60020 | .{ ._, ._, .cmp, .src0d, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 60021 | .{ ._, ._, .mov, .tmp0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 60022 | .{ ._, ._a, .cmov, .dst0d, .tmp0d, ._, ._ }, |
| | 60023 | } }, |
| | 60024 | }, .{ |
| | 60025 | .required_features = .{ .cmov, null, null, null }, |
| | 60026 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60027 | .patterns = &.{ |
| | 60028 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 60029 | }, |
| | 60030 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60031 | .each = .{ .once = &.{ |
| | 60032 | .{ ._, ._, .mov, .dst0d, .src0d, ._, ._ }, |
| | 60033 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, |
| | 60034 | .{ ._, ._, .cmp, .src0d, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 60035 | .{ ._, ._na, .j, .@"0f", ._, ._, ._ }, |
| | 60036 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 60037 | } }, |
| | 60038 | }, .{ |
| | 60039 | .required_features = .{ .cmov, null, null, null }, |
| | 60040 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60041 | .patterns = &.{ |
| | 60042 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 60043 | }, |
| | 60044 | .extra_temps = .{ |
| | 60045 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 60046 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 60047 | .unused, |
| | 60048 | .unused, |
| | 60049 | .unused, |
| | 60050 | .unused, |
| | 60051 | .unused, |
| | 60052 | .unused, |
| | 60053 | .unused, |
| | 60054 | .unused, |
| | 60055 | .unused, |
| | 60056 | }, |
| | 60057 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 60058 | .each = .{ .once = &.{ |
| | 60059 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 60060 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60061 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60062 | .{ ._, ._, .@"test", .src0d, .src0d, ._, ._ }, |
| | 60063 | .{ ._, ._z, .cmov, .dst0d, .src0d, ._, ._ }, |
| | 60064 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 60065 | .{ .@"1:", ._, .mov, .tmp0d, .dst0d, ._, ._ }, |
| | 60066 | .{ ._, ._r, .sh, .tmp0d, .src1b, ._, ._ }, |
| | 60067 | .{ ._, ._, .mov, .tmp1d, .src0d, ._, ._ }, |
| | 60068 | .{ ._, ._l, .sh, .tmp1d, .src1b, ._, ._ }, |
| | 60069 | .{ ._, ._, .cmp, .src0d, .tmp0d, ._, ._ }, |
| | 60070 | .{ ._, ._na, .cmov, .dst0d, .tmp1d, ._, ._ }, |
| | 60071 | } }, |
| | 60072 | }, .{ |
| | 60073 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60074 | .patterns = &.{ |
| | 60075 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 60076 | }, |
| | 60077 | .extra_temps = .{ |
| | 60078 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 60079 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 60080 | .unused, |
| | 60081 | .unused, |
| | 60082 | .unused, |
| | 60083 | .unused, |
| | 60084 | .unused, |
| | 60085 | .unused, |
| | 60086 | .unused, |
| | 60087 | .unused, |
| | 60088 | .unused, |
| | 60089 | }, |
| | 60090 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 60091 | .each = .{ .once = &.{ |
| | 60092 | .{ ._, ._, .mov, .dst0d, .ua(.src0, .add_umax), ._, ._ }, |
| | 60093 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60094 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60095 | .{ ._, ._, .@"test", .src0d, .src0d, ._, ._ }, |
| | 60096 | .{ ._, ._nz, .j, .@"0f", ._, ._, ._ }, |
| | 60097 | .{ ._, ._, .xor, .dst0d, .dst0d, ._, ._ }, |
| | 60098 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 60099 | .{ .@"1:", ._, .mov, .tmp0d, .dst0d, ._, ._ }, |
| | 60100 | .{ ._, ._r, .sh, .tmp0d, .src1b, ._, ._ }, |
| | 60101 | .{ ._, ._, .mov, .tmp1d, .src0d, ._, ._ }, |
| | 60102 | .{ ._, ._l, .sh, .tmp1d, .src1b, ._, ._ }, |
| | 60103 | .{ ._, ._, .cmp, .src0d, .tmp0d, ._, ._ }, |
| | 60104 | .{ ._, ._a, .j, .@"0f", ._, ._, ._ }, |
| | 60105 | .{ ._, ._, .mov, .dst0d, .tmp1d, ._, ._ }, |
| | 60106 | } }, |
| | 60107 | }, .{ |
| | 60108 | .required_features = .{ .@"64bit", .cmov, null, null }, |
| | 60109 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60110 | .patterns = &.{ |
| | 60111 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 60112 | }, |
| | 60113 | .extra_temps = .{ |
| | 60114 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60115 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60116 | .unused, |
| | 60117 | .unused, |
| | 60118 | .unused, |
| | 60119 | .unused, |
| | 60120 | .unused, |
| | 60121 | .unused, |
| | 60122 | .unused, |
| | 60123 | .unused, |
| | 60124 | .unused, |
| | 60125 | }, |
| | 60126 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60127 | .each = .{ .once = &.{ |
| | 60128 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| | 60129 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 60130 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 60131 | .{ ._, ._, .xor, .tmp0q, .tmp1q, ._, ._ }, |
| | 60132 | .{ ._, ._, .@"test", .dst0q, .src0q, ._, ._ }, |
| | 60133 | .{ ._, ._nz, .cmov, .dst0q, .tmp0q, ._, ._ }, |
| | 60134 | } }, |
| | 60135 | }, .{ |
| | 60136 | .required_features = .{ .@"64bit", null, null, null }, |
| | 60137 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60138 | .patterns = &.{ |
| | 60139 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 60140 | }, |
| | 60141 | .extra_temps = .{ |
| | 60142 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60143 | .unused, |
| | 60144 | .unused, |
| | 60145 | .unused, |
| | 60146 | .unused, |
| | 60147 | .unused, |
| | 60148 | .unused, |
| | 60149 | .unused, |
| | 60150 | .unused, |
| | 60151 | .unused, |
| | 60152 | .unused, |
| | 60153 | }, |
| | 60154 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60155 | .each = .{ .once = &.{ |
| | 60156 | .{ ._, ._, .@"test", .dst0q, .src0q, ._, ._ }, |
| | 60157 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 60158 | .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ }, |
| | 60159 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_smax), ._, ._ }, |
| | 60160 | .{ ._, ._, .xor, .dst0q, .tmp0q, ._, ._ }, |
| | 60161 | } }, |
| | 60162 | }, .{ |
| | 60163 | .required_features = .{ .@"64bit", .cmov, null, null }, |
| | 60164 | .src_constraints = .{ .{ .exact_signed_int = 64 }, .{ .exact_signed_int = 32 }, .any }, |
| | 60165 | .patterns = &.{ |
| | 60166 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 60167 | }, |
| | 60168 | .extra_temps = .{ |
| | 60169 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60170 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60171 | .unused, |
| | 60172 | .unused, |
| | 60173 | .unused, |
| | 60174 | .unused, |
| | 60175 | .unused, |
| | 60176 | .unused, |
| | 60177 | .unused, |
| | 60178 | .unused, |
| | 60179 | .unused, |
| | 60180 | }, |
| | 60181 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60182 | .each = .{ .once = &.{ |
| | 60183 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| | 60184 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 60185 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 60186 | .{ ._, ._, .xor, .tmp0q, .tmp1q, ._, ._ }, |
| | 60187 | .{ ._, ._, .add, .dst0q, .src0q, ._, ._ }, |
| | 60188 | .{ ._, ._o, .cmov, .dst0q, .tmp0q, ._, ._ }, |
| | 60189 | } }, |
| | 60190 | }, .{ |
| | 60191 | .required_features = .{ .@"64bit", null, null, null }, |
| | 60192 | .src_constraints = .{ .{ .exact_signed_int = 64 }, .{ .exact_signed_int = 32 }, .any }, |
| | 60193 | .patterns = &.{ |
| | 60194 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 60195 | }, |
| | 60196 | .extra_temps = .{ |
| | 60197 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60198 | .unused, |
| | 60199 | .unused, |
| | 60200 | .unused, |
| | 60201 | .unused, |
| | 60202 | .unused, |
| | 60203 | .unused, |
| | 60204 | .unused, |
| | 60205 | .unused, |
| | 60206 | .unused, |
| | 60207 | .unused, |
| | 60208 | }, |
| | 60209 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60210 | .each = .{ .once = &.{ |
| | 60211 | .{ ._, ._, .add, .dst0q, .src0q, ._, ._ }, |
| | 60212 | .{ ._, ._no, .j, .@"0f", ._, ._, ._ }, |
| | 60213 | .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ }, |
| | 60214 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_smin), ._, ._ }, |
| | 60215 | .{ ._, ._, .xor, .dst0q, .tmp0q, ._, ._ }, |
| | 60216 | } }, |
| | 60217 | }, .{ |
| | 60218 | .required_features = .{ .@"64bit", .cmov, null, null }, |
| | 60219 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60220 | .patterns = &.{ |
| | 60221 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 60222 | }, |
| | 60223 | .extra_temps = .{ |
| | 60224 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60225 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60226 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60227 | .unused, |
| | 60228 | .unused, |
| | 60229 | .unused, |
| | 60230 | .unused, |
| | 60231 | .unused, |
| | 60232 | .unused, |
| | 60233 | .unused, |
| | 60234 | .unused, |
| | 60235 | }, |
| | 60236 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60237 | .each = .{ .once = &.{ |
| | 60238 | .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, |
| | 60239 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 60240 | .{ ._, ._, .lea, .tmp1q, .leaad(.src0, .add_smax_shr_src1, 1), ._, ._ }, |
| | 60241 | .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ }, |
| | 60242 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_smax), ._, ._ }, |
| | 60243 | .{ ._, ._, .xor, .tmp0q, .tmp2q, ._, ._ }, |
| | 60244 | .{ ._, ._, .mov, .tmp2q, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 60245 | .{ ._, ._, .cmp, .tmp1q, .tmp2q, ._, ._ }, |
| | 60246 | .{ ._, ._a, .cmov, .dst0q, .tmp0q, ._, ._ }, |
| | 60247 | } }, |
| | 60248 | }, .{ |
| | 60249 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60250 | .patterns = &.{ |
| | 60251 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 60252 | }, |
| | 60253 | .extra_temps = .{ |
| | 60254 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60255 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60256 | .unused, |
| | 60257 | .unused, |
| | 60258 | .unused, |
| | 60259 | .unused, |
| | 60260 | .unused, |
| | 60261 | .unused, |
| | 60262 | .unused, |
| | 60263 | .unused, |
| | 60264 | .unused, |
| | 60265 | }, |
| | 60266 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60267 | .each = .{ .once = &.{ |
| | 60268 | .{ ._, ._, .lea, .tmp0q, .leaad(.src0, .add_smax_shr_src1, 1), ._, ._ }, |
| | 60269 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 60270 | .{ ._, ._, .cmp, .tmp0q, .tmp1q, ._, ._ }, |
| | 60271 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60272 | .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ }, |
| | 60273 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 60274 | .{ ._, ._, .xor, .dst0q, .tmp1q, ._, ._ }, |
| | 60275 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 60276 | .{ .@"1:", ._l, .sa, .dst0q, .src1b, ._, ._ }, |
| | 60277 | } }, |
| | 60278 | }, .{ |
| | 60279 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60280 | .patterns = &.{ |
| | 60281 | .{ .src = .{ .to_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 60282 | }, |
| | 60283 | .extra_temps = .{ |
| | 60284 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60285 | .unused, |
| | 60286 | .unused, |
| | 60287 | .unused, |
| | 60288 | .unused, |
| | 60289 | .unused, |
| | 60290 | .unused, |
| | 60291 | .unused, |
| | 60292 | .unused, |
| | 60293 | .unused, |
| | 60294 | .unused, |
| | 60295 | }, |
| | 60296 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 60297 | .each = .{ .once = &.{ |
| | 60298 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60299 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60300 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| | 60301 | .{ .@"0:", ._, .mov, .dst0q, .src0q, ._, ._ }, |
| | 60302 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 60303 | .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ }, |
| | 60304 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_smax), ._, ._ }, |
| | 60305 | .{ ._, ._, .xor, .dst0q, .tmp0q, ._, ._ }, |
| | 60306 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 60307 | .{ .@"1:", ._, .mov, .dst0q, .src0q, ._, ._ }, |
| | 60308 | .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ }, |
| | 60309 | .{ ._, ._, .mov, .tmp0q, .dst0q, ._, ._ }, |
| | 60310 | .{ ._, ._l, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size), ._, ._ }, |
| | 60311 | .{ ._, ._r, .sa, .tmp0q, .uia(64, .src0, .sub_bit_size), ._, ._ }, |
| | 60312 | .{ ._, ._r, .sa, .tmp0q, .src1b, ._, ._ }, |
| | 60313 | .{ ._, ._, .cmp, .tmp0q, .src0q, ._, ._ }, |
| | 60314 | .{ ._, ._ne, .j, .@"0b", ._, ._, ._ }, |
| | 60315 | } }, |
| | 60316 | }, .{ |
| | 60317 | .required_features = .{ .cmov, null, null, null }, |
| | 60318 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60319 | .patterns = &.{ |
| | 60320 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 60321 | }, |
| | 60322 | .extra_temps = .{ |
| | 60323 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60324 | .unused, |
| | 60325 | .unused, |
| | 60326 | .unused, |
| | 60327 | .unused, |
| | 60328 | .unused, |
| | 60329 | .unused, |
| | 60330 | .unused, |
| | 60331 | .unused, |
| | 60332 | .unused, |
| | 60333 | .unused, |
| | 60334 | }, |
| | 60335 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60336 | .each = .{ .once = &.{ |
| | 60337 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 60338 | .{ ._, ._, .@"test", .dst0q, .src0q, ._, ._ }, |
| | 60339 | .{ ._, ._nz, .cmov, .dst0q, .tmp0q, ._, ._ }, |
| | 60340 | } }, |
| | 60341 | }, .{ |
| | 60342 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60343 | .patterns = &.{ |
| | 60344 | .{ .src = .{ .to_mut_gpr, .{ .imm = -1 }, .none } }, |
| | 60345 | }, |
| | 60346 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60347 | .each = .{ .once = &.{ |
| | 60348 | .{ ._, ._, .@"test", .dst0q, .src0q, ._, ._ }, |
| | 60349 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 60350 | .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 60351 | } }, |
| | 60352 | }, .{ |
| | 60353 | .required_features = .{ .cmov, null, null, null }, |
| | 60354 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .{ .exact_signed_int = 32 }, .any }, |
| | 60355 | .patterns = &.{ |
| | 60356 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 60357 | }, |
| | 60358 | .extra_temps = .{ |
| | 60359 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60360 | .unused, |
| | 60361 | .unused, |
| | 60362 | .unused, |
| | 60363 | .unused, |
| | 60364 | .unused, |
| | 60365 | .unused, |
| | 60366 | .unused, |
| | 60367 | .unused, |
| | 60368 | .unused, |
| | 60369 | .unused, |
| | 60370 | }, |
| | 60371 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60372 | .each = .{ .once = &.{ |
| | 60373 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 60374 | .{ ._, ._, .add, .dst0q, .src0q, ._, ._ }, |
| | 60375 | .{ ._, ._c, .cmov, .dst0q, .tmp0q, ._, ._ }, |
| | 60376 | } }, |
| | 60377 | }, .{ |
| | 60378 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .{ .exact_signed_int = 32 }, .any }, |
| | 60379 | .patterns = &.{ |
| | 60380 | .{ .src = .{ .to_mut_gpr, .{ .imm = 1 }, .none } }, |
| | 60381 | }, |
| | 60382 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60383 | .each = .{ .once = &.{ |
| | 60384 | .{ ._, ._, .add, .dst0q, .src0q, ._, ._ }, |
| | 60385 | .{ ._, ._nc, .j, .@"0f", ._, ._, ._ }, |
| | 60386 | .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 60387 | } }, |
| | 60388 | }, .{ |
| | 60389 | .required_features = .{ .cmov, null, null, null }, |
| | 60390 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60391 | .patterns = &.{ |
| | 60392 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 60393 | }, |
| | 60394 | .extra_temps = .{ |
| | 60395 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60396 | .unused, |
| | 60397 | .unused, |
| | 60398 | .unused, |
| | 60399 | .unused, |
| | 60400 | .unused, |
| | 60401 | .unused, |
| | 60402 | .unused, |
| | 60403 | .unused, |
| | 60404 | .unused, |
| | 60405 | .unused, |
| | 60406 | }, |
| | 60407 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 60408 | .each = .{ .once = &.{ |
| | 60409 | .{ ._, ._, .mov, .dst0q, .src0q, ._, ._ }, |
| | 60410 | .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ }, |
| | 60411 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 60412 | .{ ._, ._, .cmp, .src0q, .tmp0q, ._, ._ }, |
| | 60413 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 60414 | .{ ._, ._a, .cmov, .dst0q, .tmp0q, ._, ._ }, |
| | 60415 | } }, |
| | 60416 | }, .{ |
| | 60417 | .required_features = .{ .cmov, null, null, null }, |
| | 60418 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60419 | .patterns = &.{ |
| | 60420 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, |
| | 60421 | }, |
| | 60422 | .extra_temps = .{ |
| | 60423 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60424 | .unused, |
| | 60425 | .unused, |
| | 60426 | .unused, |
| | 60427 | .unused, |
| | 60428 | .unused, |
| | 60429 | .unused, |
| | 60430 | .unused, |
| | 60431 | .unused, |
| | 60432 | .unused, |
| | 60433 | .unused, |
| | 60434 | }, |
| | 60435 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| | 60436 | .each = .{ .once = &.{ |
| | 60437 | .{ ._, ._, .mov, .dst0q, .src0q, ._, ._ }, |
| | 60438 | .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ }, |
| | 60439 | .{ ._, ._, .mov, .tmp0q, .ua(.src0, .add_umax_shr_src1), ._, ._ }, |
| | 60440 | .{ ._, ._, .cmp, .src0q, .tmp0q, ._, ._ }, |
| | 60441 | .{ ._, ._na, .j, .@"0f", ._, ._, ._ }, |
| | 60442 | .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 60443 | } }, |
| | 60444 | }, .{ |
| | 60445 | .required_features = .{ .cmov, null, null, null }, |
| | 60446 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60447 | .patterns = &.{ |
| | 60448 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 60449 | }, |
| | 60450 | .extra_temps = .{ |
| | 60451 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60452 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60453 | .unused, |
| | 60454 | .unused, |
| | 60455 | .unused, |
| | 60456 | .unused, |
| | 60457 | .unused, |
| | 60458 | .unused, |
| | 60459 | .unused, |
| | 60460 | .unused, |
| | 60461 | .unused, |
| | 60462 | }, |
| | 60463 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 60464 | .each = .{ .once = &.{ |
| | 60465 | .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 60466 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60467 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60468 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| | 60469 | .{ ._, ._z, .cmov, .dst0q, .src0q, ._, ._ }, |
| | 60470 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 60471 | .{ .@"1:", ._, .mov, .tmp0q, .dst0q, ._, ._ }, |
| | 60472 | .{ ._, ._r, .sh, .tmp0q, .src1b, ._, ._ }, |
| | 60473 | .{ ._, ._, .mov, .tmp1q, .src0q, ._, ._ }, |
| | 60474 | .{ ._, ._l, .sh, .tmp1q, .src1b, ._, ._ }, |
| | 60475 | .{ ._, ._, .cmp, .src0q, .tmp0q, ._, ._ }, |
| | 60476 | .{ ._, ._na, .cmov, .dst0q, .tmp1q, ._, ._ }, |
| | 60477 | } }, |
| | 60478 | }, .{ |
| | 60479 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_signed_int = 32 }, .any }, |
| | 60480 | .patterns = &.{ |
| | 60481 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .ecx }, .none } }, |
| | 60482 | }, |
| | 60483 | .extra_temps = .{ |
| | 60484 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60485 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60486 | .unused, |
| | 60487 | .unused, |
| | 60488 | .unused, |
| | 60489 | .unused, |
| | 60490 | .unused, |
| | 60491 | .unused, |
| | 60492 | .unused, |
| | 60493 | .unused, |
| | 60494 | .unused, |
| | 60495 | }, |
| | 60496 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| | 60497 | .each = .{ .once = &.{ |
| | 60498 | .{ ._, ._, .mov, .dst0q, .ua(.src0, .add_umax), ._, ._ }, |
| | 60499 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60500 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60501 | .{ ._, ._, .@"test", .src0q, .src0q, ._, ._ }, |
| | 60502 | .{ ._, ._nz, .j, .@"0f", ._, ._, ._ }, |
| | 60503 | .{ ._, ._, .xor, .dst0q, .dst0q, ._, ._ }, |
| | 60504 | .{ ._, ._mp, .j, .@"0f", ._, ._, ._ }, |
| | 60505 | .{ .@"1:", ._, .mov, .tmp0q, .dst0q, ._, ._ }, |
| | 60506 | .{ ._, ._r, .sh, .tmp0q, .src1b, ._, ._ }, |
| | 60507 | .{ ._, ._, .mov, .tmp1q, .src0q, ._, ._ }, |
| | 60508 | .{ ._, ._l, .sh, .tmp1q, .src1b, ._, ._ }, |
| | 60509 | .{ ._, ._, .cmp, .src0q, .tmp0q, ._, ._ }, |
| | 60510 | .{ ._, ._a, .j, .@"0f", ._, ._, ._ }, |
| | 60511 | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| | 60512 | } }, |
| | 60513 | }, .{ |
| | 60514 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 60515 | .src_constraints = .{ |
| | 60516 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } }, |
| | 60517 | .{ .exact_signed_int = 32 }, |
| | 60518 | .any, |
| | 60519 | }, |
| | 60520 | .patterns = &.{ |
| | 60521 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 60522 | }, |
| | 60523 | .extra_temps = .{ |
| | 60524 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| | 60525 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 60526 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 60527 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60528 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60529 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60530 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60531 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60532 | .unused, |
| | 60533 | .unused, |
| | 60534 | .unused, |
| | 60535 | }, |
| | 60536 | .dst_temps = .{ .mem, .unused }, |
| | 60537 | .clobbers = .{ .eflags = true }, |
| | 60538 | .each = .{ .once = &.{ |
| | 60539 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60540 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60541 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 60542 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 60543 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 60544 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 60545 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 60546 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 60547 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 60548 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 60549 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 60550 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 60551 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 60552 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 60553 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60554 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 60555 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 60556 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 60557 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 60558 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 60559 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 60560 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 60561 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 60562 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 60563 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 60564 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 60565 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 60566 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 60567 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 60568 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 60569 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 60570 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 60571 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60572 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 60573 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 60574 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 60575 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 60576 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 60577 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 60578 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 60579 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 60580 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 60581 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 60582 | .{ ._, ._, .mov, .tmp7q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 60583 | .{ ._, ._r, .sa, .tmp7q, .ui(63), ._, ._ }, |
| | 60584 | .{ ._, ._, .xor, .tmp7q, .tmp3q, ._, ._ }, |
| | 60585 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 60586 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 60587 | .{ .@"2:", ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 60588 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 60589 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 60590 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| | 60591 | .{ ._, ._, .not, .tmp0q, ._, ._, ._ }, |
| | 60592 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 60593 | .{ ._, ._, .mov, .src1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 60594 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 60595 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| | 60596 | } }, |
| | 60597 | }, .{ |
| | 60598 | .required_features = .{ .@"64bit", null, null, null }, |
| | 60599 | .src_constraints = .{ |
| | 60600 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 128 } }, |
| | 60601 | .{ .exact_signed_int = 32 }, |
| | 60602 | .any, |
| | 60603 | }, |
| | 60604 | .patterns = &.{ |
| | 60605 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 60606 | }, |
| | 60607 | .extra_temps = .{ |
| | 60608 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| | 60609 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 60610 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 60611 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60612 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60613 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60614 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60615 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60616 | .unused, |
| | 60617 | .unused, |
| | 60618 | .unused, |
| | 60619 | }, |
| | 60620 | .dst_temps = .{ .mem, .unused }, |
| | 60621 | .clobbers = .{ .eflags = true }, |
| | 60622 | .each = .{ .once = &.{ |
| | 60623 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60624 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60625 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 60626 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 60627 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 60628 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 60629 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 60630 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 60631 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 60632 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 60633 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 60634 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 60635 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 60636 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 60637 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60638 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 60639 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 60640 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 60641 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 60642 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 60643 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 60644 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 60645 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 60646 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 60647 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 60648 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 60649 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 60650 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 60651 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 60652 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 60653 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 60654 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 60655 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60656 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 60657 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 60658 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 60659 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 60660 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 60661 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 60662 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 60663 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 60664 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 60665 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 60666 | .{ ._, ._, .mov, .tmp7q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 60667 | .{ ._, ._r, .sa, .tmp7q, .ui(63), ._, ._ }, |
| | 60668 | .{ ._, ._, .xor, .tmp7q, .tmp3q, ._, ._ }, |
| | 60669 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 60670 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 60671 | .{ .@"2:", ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 60672 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 60673 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 60674 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| | 60675 | .{ ._, ._, .not, .tmp0q, ._, ._, ._ }, |
| | 60676 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 60677 | .{ ._, ._, .mov, .src1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 60678 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 60679 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| | 60680 | } }, |
| | 60681 | }, .{ |
| | 60682 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 60683 | .src_constraints = .{ |
| | 60684 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } }, |
| | 60685 | .{ .exact_signed_int = 32 }, |
| | 60686 | .any, |
| | 60687 | }, |
| | 60688 | .patterns = &.{ |
| | 60689 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 60690 | }, |
| | 60691 | .extra_temps = .{ |
| | 60692 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| | 60693 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 60694 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 60695 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60696 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60697 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60698 | .unused, |
| | 60699 | .unused, |
| | 60700 | .unused, |
| | 60701 | .unused, |
| | 60702 | .unused, |
| | 60703 | }, |
| | 60704 | .dst_temps = .{ .mem, .unused }, |
| | 60705 | .clobbers = .{ .eflags = true }, |
| | 60706 | .each = .{ .once = &.{ |
| | 60707 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60708 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60709 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 60710 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 60711 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 60712 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 60713 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 60714 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 60715 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 60716 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 60717 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 60718 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 60719 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 60720 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60721 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 60722 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 60723 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 60724 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 60725 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 60726 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 60727 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 60728 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 60729 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 60730 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 60731 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 60732 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 60733 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60734 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 60735 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 60736 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 60737 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 60738 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 60739 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 60740 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 60741 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 60742 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 60743 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 60744 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 60745 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 60746 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 60747 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 60748 | .{ ._, ._, .mov, .src1d, .sa(.dst0, .add_size_div_8), ._, ._ }, |
| | 60749 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 60750 | } }, |
| | 60751 | }, .{ |
| | 60752 | .required_features = .{ .@"64bit", null, null, null }, |
| | 60753 | .src_constraints = .{ |
| | 60754 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 128 } }, |
| | 60755 | .{ .exact_signed_int = 32 }, |
| | 60756 | .any, |
| | 60757 | }, |
| | 60758 | .patterns = &.{ |
| | 60759 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 60760 | }, |
| | 60761 | .extra_temps = .{ |
| | 60762 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| | 60763 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 60764 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 60765 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60766 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60767 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 60768 | .unused, |
| | 60769 | .unused, |
| | 60770 | .unused, |
| | 60771 | .unused, |
| | 60772 | .unused, |
| | 60773 | }, |
| | 60774 | .dst_temps = .{ .mem, .unused }, |
| | 60775 | .clobbers = .{ .eflags = true }, |
| | 60776 | .each = .{ .once = &.{ |
| | 60777 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60778 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60779 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 60780 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 60781 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 60782 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 60783 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 60784 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 60785 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 60786 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 60787 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 60788 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 60789 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 60790 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60791 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 60792 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 60793 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 60794 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 60795 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 60796 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 60797 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 60798 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 60799 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 60800 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 60801 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 60802 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 60803 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60804 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 60805 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 60806 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 60807 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 60808 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 60809 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 60810 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 60811 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 60812 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 60813 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 60814 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 60815 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 60816 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 60817 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 60818 | .{ ._, ._, .mov, .src1d, .sa(.dst0, .add_size_div_8), ._, ._ }, |
| | 60819 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 60820 | } }, |
| | 60821 | }, .{ |
| | 60822 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 60823 | .src_constraints = .{ |
| | 60824 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, |
| | 60825 | .{ .exact_signed_int = 32 }, |
| | 60826 | .any, |
| | 60827 | }, |
| | 60828 | .patterns = &.{ |
| | 60829 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 60830 | }, |
| | 60831 | .extra_temps = .{ |
| | 60832 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| | 60833 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 60834 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 60835 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60836 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60837 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60838 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60839 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60840 | .unused, |
| | 60841 | .unused, |
| | 60842 | .unused, |
| | 60843 | }, |
| | 60844 | .dst_temps = .{ .mem, .unused }, |
| | 60845 | .clobbers = .{ .eflags = true }, |
| | 60846 | .each = .{ .once = &.{ |
| | 60847 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60848 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60849 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| | 60850 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 60851 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 60852 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 60853 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 60854 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 60855 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 60856 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 60857 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 60858 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 60859 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 60860 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 60861 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60862 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 60863 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 60864 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 60865 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 60866 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 60867 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 60868 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 60869 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 60870 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 60871 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 60872 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 60873 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 60874 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 60875 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 60876 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 60877 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 60878 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60879 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 60880 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 60881 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 60882 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 60883 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 60884 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 60885 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 60886 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 60887 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 60888 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 60889 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 60890 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| | 60891 | .{ ._, ._, .xor, .tmp3q, .tmp1q, ._, ._ }, |
| | 60892 | .{ ._, ._, .@"or", .tmp5q, .tmp3q, ._, ._ }, |
| | 60893 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 60894 | .{ .@"2:", ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| | 60895 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 60896 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 60897 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| | 60898 | .{ ._, ._, .not, .tmp0q, ._, ._, ._ }, |
| | 60899 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 60900 | .{ ._, ._, .mov, .src1d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 60901 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 60902 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ }, |
| | 60903 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| | 60904 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| | 60905 | } }, |
| | 60906 | }, .{ |
| | 60907 | .required_features = .{ .@"64bit", null, null, null }, |
| | 60908 | .src_constraints = .{ |
| | 60909 | .{ .exact_remainder_signed_int = .{ .of = .xword, .is = 64 } }, |
| | 60910 | .{ .exact_signed_int = 32 }, |
| | 60911 | .any, |
| | 60912 | }, |
| | 60913 | .patterns = &.{ |
| | 60914 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 60915 | }, |
| | 60916 | .extra_temps = .{ |
| | 60917 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| | 60918 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 60919 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 60920 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60921 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60922 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60923 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60924 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| | 60925 | .unused, |
| | 60926 | .unused, |
| | 60927 | .unused, |
| | 60928 | }, |
| | 60929 | .dst_temps = .{ .mem, .unused }, |
| | 60930 | .clobbers = .{ .eflags = true }, |
| | 60931 | .each = .{ .once = &.{ |
| | 60932 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 60933 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 60934 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| | 60935 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 60936 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 60937 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 60938 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 60939 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 60940 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 60941 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 60942 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 60943 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 60944 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 60945 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 60946 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60947 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 60948 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 60949 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 60950 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 60951 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 60952 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 60953 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 60954 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 60955 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 60956 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 60957 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 60958 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 60959 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 60960 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 60961 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 60962 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 60963 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 60964 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 60965 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 60966 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 60967 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 60968 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 60969 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 60970 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 60971 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 60972 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 60973 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 60974 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 60975 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| | 60976 | .{ ._, ._, .xor, .tmp3q, .tmp1q, ._, ._ }, |
| | 60977 | .{ ._, ._, .@"or", .tmp5q, .tmp3q, ._, ._ }, |
| | 60978 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 60979 | .{ .@"2:", ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| | 60980 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 60981 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 60982 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| | 60983 | .{ ._, ._, .not, .tmp0q, ._, ._, ._ }, |
| | 60984 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 60985 | .{ ._, ._, .mov, .src1d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 60986 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 60987 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ }, |
| | 60988 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| | 60989 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| | 60990 | } }, |
| | 60991 | }, .{ |
| | 60992 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| | 60993 | .src_constraints = .{ |
| | 60994 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, |
| | 60995 | .{ .exact_signed_int = 32 }, |
| | 60996 | .any, |
| | 60997 | }, |
| | 60998 | .patterns = &.{ |
| | 60999 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| | 61000 | }, |
| | 61001 | .extra_temps = .{ |
| | 61002 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| | 61003 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| | 61004 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| | 61005 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 61006 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 61007 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| | 61008 | .unused, |
| | 61009 | .unused, |
| | 61010 | .unused, |
| | 61011 | .unused, |
| | 61012 | .unused, |
| | 61013 | }, |
| | 61014 | .dst_temps = .{ .mem, .unused }, |
| | 61015 | .clobbers = .{ .eflags = true }, |
| | 61016 | .each = .{ .once = &.{ |
| | 61017 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 61018 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 61019 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| | 61020 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 61021 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 61022 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 61023 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 61024 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 61025 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 61026 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 61027 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 61028 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 61029 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61030 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61031 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 61032 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61033 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 61034 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61035 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61036 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 61037 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 61038 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 61039 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 61040 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61041 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 61042 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 61043 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61044 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 61045 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 61046 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 61047 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61048 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61049 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 61050 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 61051 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 61052 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 61053 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61054 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 61055 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61056 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 61057 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61058 | .{ ._, ._, .mov, .src1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 61059 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61060 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| | 61061 | } }, |
| | 61062 | }, .{ |
| | 61063 | .required_features = .{ .@"64bit", null, null, null }, |
| | 61064 | .src_constraints = .{ |
| | 61065 | .{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = 64 } }, |
| | 61066 | .{ .exact_signed_int = 32 }, |
| 58005 | .any, | 61067 | .any, |
| 58006 | }, | 61068 | }, |
| 58007 | .patterns = &.{ | 61069 | .patterns = &.{ |
| 58008 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, | 61070 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58009 | }, | 61071 | }, |
| 58010 | .extra_temps = .{ | 61072 | .extra_temps = .{ |
| | 61073 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58011 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61074 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58012 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 61075 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58013 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 61076 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58014 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61077 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58015 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61078 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58016 | .unused, | | |
| 58017 | .unused, | 61079 | .unused, |
| 58018 | .unused, | 61080 | .unused, |
| 58019 | .unused, | 61081 | .unused, |
| ... | @@ -58023,44 +61085,70 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58023,44 +61085,70 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58023 | .dst_temps = .{ .mem, .unused }, | 61085 | .dst_temps = .{ .mem, .unused }, |
| 58024 | .clobbers = .{ .eflags = true }, | 61086 | .clobbers = .{ .eflags = true }, |
| 58025 | .each = .{ .once = &.{ | 61087 | .each = .{ .once = &.{ |
| 58026 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, | 61088 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| 58027 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 61089 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| 58028 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, | 61090 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 58029 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, | 61091 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| 58030 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, | 61092 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 58031 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | 61093 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 58032 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | | |
| 58033 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | | |
| 58034 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58035 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, | | |
| 58036 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | | |
| 58037 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 58038 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 61094 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 58039 | .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ }, | 61095 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 58040 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, | 61096 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| 58041 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, | 61097 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| 58042 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 61098 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 61099 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 61100 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61101 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61102 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 61103 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61104 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 61105 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61106 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61107 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 61108 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 61109 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| 58043 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 61110 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 61111 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 61112 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 61113 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 61114 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61115 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 61116 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 61117 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 61118 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 61119 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 61120 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 61121 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 61122 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 61123 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 61124 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 61125 | .{ ._, ._, .@"test", .tmp4q, .tmp4q, ._, ._ }, |
| | 61126 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61127 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 61128 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61129 | .{ ._, ._, .mov, .src1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 61130 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61131 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 58044 | } }, | 61132 | } }, |
| 58045 | }, .{ | 61133 | }, .{ |
| 58046 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 61134 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 58047 | .src_constraints = .{ | 61135 | .src_constraints = .{ |
| 58048 | .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, | 61136 | .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, |
| 58049 | .{ .unsigned_int = .byte }, | 61137 | .{ .exact_signed_int = 32 }, |
| 58050 | .any, | 61138 | .any, |
| 58051 | }, | 61139 | }, |
| 58052 | .patterns = &.{ | 61140 | .patterns = &.{ |
| 58053 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, | 61141 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58054 | }, | 61142 | }, |
| 58055 | .extra_temps = .{ | 61143 | .extra_temps = .{ |
| | 61144 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58056 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61145 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58057 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 61146 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58058 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 61147 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58059 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61148 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58060 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61149 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58061 | .unused, | 61150 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58062 | .unused, | 61151 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58063 | .unused, | | |
| 58064 | .unused, | 61152 | .unused, |
| 58065 | .unused, | 61153 | .unused, |
| 58066 | .unused, | 61154 | .unused, |
| ... | @@ -58068,44 +61156,90 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58068,44 +61156,90 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58068 | .dst_temps = .{ .mem, .unused }, | 61156 | .dst_temps = .{ .mem, .unused }, |
| 58069 | .clobbers = .{ .eflags = true }, | 61157 | .clobbers = .{ .eflags = true }, |
| 58070 | .each = .{ .once = &.{ | 61158 | .each = .{ .once = &.{ |
| 58071 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, | 61159 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| 58072 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 61160 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| 58073 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, | 61161 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 58074 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, | 61162 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| 58075 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, | 61163 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 58076 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | 61164 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 58077 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | | |
| 58078 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | | |
| 58079 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58080 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, | | |
| 58081 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | | |
| 58082 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 58083 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 58084 | .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, | | |
| 58085 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, | | |
| 58086 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | | |
| 58087 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 58088 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 61165 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 61166 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 61167 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 61168 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 61169 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 61170 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 61171 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 61172 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61173 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61174 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 61175 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 61176 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 61177 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 61178 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 61179 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61180 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61181 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 61182 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 61183 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 61184 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 61185 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 61186 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 61187 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61188 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 61189 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 61190 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61191 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 61192 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 61193 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 61194 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61195 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61196 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 61197 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 61198 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61199 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 61200 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61201 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 61202 | .{ ._, ._, .mov, .tmp7q, .tmp1q, ._, ._ }, |
| | 61203 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 61204 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 61205 | .{ ._, ._, .xor, .tmp7q, .tmp1q, ._, ._ }, |
| | 61206 | .{ ._, ._, .mov, .tmp0q, .tmp1q, ._, ._ }, |
| | 61207 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 61208 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 61209 | .{ ._, ._, .xor, .tmp0q, .tmp3q, ._, ._ }, |
| | 61210 | .{ ._, ._, .@"or", .tmp5q, .tmp0q, ._, ._ }, |
| | 61211 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61212 | .{ .@"2:", ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| | 61213 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 61214 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 61215 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| | 61216 | .{ ._, ._, .not, .tmp0q, ._, ._, ._ }, |
| | 61217 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61218 | .{ ._, ._, .mov, .src1d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 61219 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61220 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ }, |
| | 61221 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| | 61222 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| 58089 | } }, | 61223 | } }, |
| 58090 | }, .{ | 61224 | }, .{ |
| 58091 | .required_features = .{ .@"64bit", null, null, null }, | 61225 | .required_features = .{ .@"64bit", null, null, null }, |
| 58092 | .src_constraints = .{ | 61226 | .src_constraints = .{ |
| 58093 | .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, | 61227 | .{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }, |
| 58094 | .{ .unsigned_int = .byte }, | 61228 | .{ .exact_signed_int = 32 }, |
| 58095 | .any, | 61229 | .any, |
| 58096 | }, | 61230 | }, |
| 58097 | .patterns = &.{ | 61231 | .patterns = &.{ |
| 58098 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, | 61232 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58099 | }, | 61233 | }, |
| 58100 | .extra_temps = .{ | 61234 | .extra_temps = .{ |
| | 61235 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58101 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61236 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58102 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 61237 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58103 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 61238 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58104 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61239 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58105 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61240 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58106 | .unused, | 61241 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58107 | .unused, | 61242 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58108 | .unused, | | |
| 58109 | .unused, | 61243 | .unused, |
| 58110 | .unused, | 61244 | .unused, |
| 58111 | .unused, | 61245 | .unused, |
| ... | @@ -58113,42 +61247,88 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58113,42 +61247,88 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58113 | .dst_temps = .{ .mem, .unused }, | 61247 | .dst_temps = .{ .mem, .unused }, |
| 58114 | .clobbers = .{ .eflags = true }, | 61248 | .clobbers = .{ .eflags = true }, |
| 58115 | .each = .{ .once = &.{ | 61249 | .each = .{ .once = &.{ |
| 58116 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, | 61250 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| 58117 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 61251 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| 58118 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, | 61252 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 58119 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, | 61253 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| 58120 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, | 61254 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 58121 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | 61255 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 58122 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | | |
| 58123 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | | |
| 58124 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58125 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, | | |
| 58126 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | | |
| 58127 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 58128 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 61256 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 58129 | .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, | 61257 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 58130 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, | 61258 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 58131 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 61259 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| 58132 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 61260 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 61261 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 61262 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 61263 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61264 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61265 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 61266 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 61267 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 61268 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 61269 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 61270 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61271 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61272 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 61273 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 61274 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 61275 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 61276 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| 58133 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 61277 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 61278 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 61279 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 61280 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 61281 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61282 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 61283 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 61284 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 61285 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 61286 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 61287 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 61288 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 61289 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61290 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 61291 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 61292 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 61293 | .{ ._, ._, .mov, .tmp7q, .tmp1q, ._, ._ }, |
| | 61294 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 61295 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 61296 | .{ ._, ._, .xor, .tmp7q, .tmp1q, ._, ._ }, |
| | 61297 | .{ ._, ._, .mov, .tmp0q, .tmp1q, ._, ._ }, |
| | 61298 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 61299 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 61300 | .{ ._, ._, .xor, .tmp0q, .tmp3q, ._, ._ }, |
| | 61301 | .{ ._, ._, .@"or", .tmp5q, .tmp0q, ._, ._ }, |
| | 61302 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61303 | .{ .@"2:", ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ }, |
| | 61304 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 61305 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 61306 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| | 61307 | .{ ._, ._, .not, .tmp0q, ._, ._, ._ }, |
| | 61308 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61309 | .{ ._, ._, .mov, .src1d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 61310 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61311 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ }, |
| | 61312 | .{ ._, ._r, .sa, .tmp1q, .ui(63), ._, ._ }, |
| | 61313 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| 58134 | } }, | 61314 | } }, |
| 58135 | }, .{ | 61315 | }, .{ |
| 58136 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 61316 | .required_features = .{ .@"64bit", .bmi, .slow_incdec, null }, |
| 58137 | .src_constraints = .{ | 61317 | .src_constraints = .{ |
| 58138 | .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, | 61318 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| 58139 | .{ .unsigned_int = .word }, | 61319 | .{ .exact_signed_int = 32 }, |
| 58140 | .any, | 61320 | .any, |
| 58141 | }, | 61321 | }, |
| 58142 | .patterns = &.{ | 61322 | .patterns = &.{ |
| 58143 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, | 61323 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58144 | }, | 61324 | }, |
| 58145 | .extra_temps = .{ | 61325 | .extra_temps = .{ |
| | 61326 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58146 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61327 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58147 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 61328 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58148 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 61329 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58149 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61330 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58150 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61331 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58151 | .unused, | | |
| 58152 | .unused, | 61332 | .unused, |
| 58153 | .unused, | 61333 | .unused, |
| 58154 | .unused, | 61334 | .unused, |
| ... | @@ -58158,42 +61338,75 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58158,42 +61338,75 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58158 | .dst_temps = .{ .mem, .unused }, | 61338 | .dst_temps = .{ .mem, .unused }, |
| 58159 | .clobbers = .{ .eflags = true }, | 61339 | .clobbers = .{ .eflags = true }, |
| 58160 | .each = .{ .once = &.{ | 61340 | .each = .{ .once = &.{ |
| 58161 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, | 61341 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| 58162 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 61342 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| 58163 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, | 61343 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 58164 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, | 61344 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| 58165 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, | 61345 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 58166 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | 61346 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 58167 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | | |
| 58168 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | | |
| 58169 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58170 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, | | |
| 58171 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | | |
| 58172 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 58173 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | | |
| 58174 | .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ }, | | |
| 58175 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, | | |
| 58176 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, | | |
| 58177 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | | |
| 58178 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 61347 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 61348 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 61349 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 61350 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 61351 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 61352 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 61353 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 61354 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61355 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61356 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 61357 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61358 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 61359 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61360 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61361 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 61362 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 61363 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 61364 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 61365 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61366 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 61367 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 61368 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61369 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 61370 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 61371 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 61372 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61373 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61374 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 61375 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 61376 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 61377 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 61378 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61379 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ }, |
| | 61380 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 61381 | .{ ._, ._, .andn, .tmp5q, .tmp1q, .tmp3q, ._ }, |
| | 61382 | .{ ._, ._, .@"and", .tmp1q, .tmp3q, ._, ._ }, |
| | 61383 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 61384 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61385 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 61386 | .{ ._, ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 61387 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61388 | .{ ._, ._, .mov, .src1d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 61389 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61390 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ }, |
| | 61391 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 58179 | } }, | 61392 | } }, |
| 58180 | }, .{ | 61393 | }, .{ |
| 58181 | .required_features = .{ .@"64bit", null, null, null }, | 61394 | .required_features = .{ .@"64bit", .bmi, null, null }, |
| 58182 | .src_constraints = .{ | 61395 | .src_constraints = .{ |
| 58183 | .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, | 61396 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| 58184 | .{ .unsigned_int = .word }, | 61397 | .{ .exact_signed_int = 32 }, |
| 58185 | .any, | 61398 | .any, |
| 58186 | }, | 61399 | }, |
| 58187 | .patterns = &.{ | 61400 | .patterns = &.{ |
| 58188 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, | 61401 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58189 | }, | 61402 | }, |
| 58190 | .extra_temps = .{ | 61403 | .extra_temps = .{ |
| | 61404 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58191 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61405 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58192 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 61406 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58193 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 61407 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58194 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61408 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58195 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61409 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58196 | .unused, | | |
| 58197 | .unused, | 61410 | .unused, |
| 58198 | .unused, | 61411 | .unused, |
| 58199 | .unused, | 61412 | .unused, |
| ... | @@ -58203,42 +61416,75 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58203,42 +61416,75 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58203 | .dst_temps = .{ .mem, .unused }, | 61416 | .dst_temps = .{ .mem, .unused }, |
| 58204 | .clobbers = .{ .eflags = true }, | 61417 | .clobbers = .{ .eflags = true }, |
| 58205 | .each = .{ .once = &.{ | 61418 | .each = .{ .once = &.{ |
| 58206 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, | 61419 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| 58207 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 61420 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| 58208 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, | 61421 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 58209 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, | 61422 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| 58210 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, | 61423 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 58211 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | 61424 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 58212 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | | |
| 58213 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | | |
| 58214 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58215 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, | | |
| 58216 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | | |
| 58217 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 58218 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 61425 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 58219 | .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ }, | 61426 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 58220 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, | 61427 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 58221 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, | 61428 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| 58222 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 61429 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 61430 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 61431 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 61432 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61433 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61434 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 61435 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61436 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 61437 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61438 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61439 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 61440 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 61441 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| 58223 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 61442 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 61443 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 61444 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 61445 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 61446 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61447 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 61448 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 61449 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 61450 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 61451 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 61452 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 61453 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| | 61454 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| | 61455 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 61456 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 61457 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ }, |
| | 61458 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 61459 | .{ ._, ._, .andn, .tmp5q, .tmp1q, .tmp3q, ._ }, |
| | 61460 | .{ ._, ._, .@"and", .tmp1q, .tmp3q, ._, ._ }, |
| | 61461 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 61462 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61463 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 61464 | .{ ._, ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 61465 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61466 | .{ ._, ._, .mov, .src1d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 61467 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61468 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ }, |
| | 61469 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 58224 | } }, | 61470 | } }, |
| 58225 | }, .{ | 61471 | }, .{ |
| 58226 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 61472 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 58227 | .src_constraints = .{ | 61473 | .src_constraints = .{ |
| 58228 | .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, | 61474 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| 58229 | .{ .unsigned_int = .word }, | 61475 | .{ .exact_signed_int = 32 }, |
| 58230 | .any, | 61476 | .any, |
| 58231 | }, | 61477 | }, |
| 58232 | .patterns = &.{ | 61478 | .patterns = &.{ |
| 58233 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, | 61479 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58234 | }, | 61480 | }, |
| 58235 | .extra_temps = .{ | 61481 | .extra_temps = .{ |
| | 61482 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58236 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61483 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58237 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 61484 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58238 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 61485 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58239 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61486 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58240 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61487 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58241 | .unused, | | |
| 58242 | .unused, | 61488 | .unused, |
| 58243 | .unused, | 61489 | .unused, |
| 58244 | .unused, | 61490 | .unused, |
| ... | @@ -58248,42 +61494,75 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58248,42 +61494,75 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58248 | .dst_temps = .{ .mem, .unused }, | 61494 | .dst_temps = .{ .mem, .unused }, |
| 58249 | .clobbers = .{ .eflags = true }, | 61495 | .clobbers = .{ .eflags = true }, |
| 58250 | .each = .{ .once = &.{ | 61496 | .each = .{ .once = &.{ |
| 58251 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, | 61497 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| 58252 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 61498 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| 58253 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, | 61499 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 58254 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, | 61500 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| 58255 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, | 61501 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 58256 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | 61502 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 58257 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | | |
| 58258 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | | |
| 58259 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58260 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, | | |
| 58261 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | | |
| 58262 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 58263 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 61503 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 58264 | .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, | 61504 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 58265 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, | 61505 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 61506 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 61507 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 61508 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 61509 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 61510 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61511 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61512 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 61513 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61514 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 61515 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61516 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61517 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 61518 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 61519 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 61520 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 61521 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61522 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 61523 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 61524 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61525 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| | 61526 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| | 61527 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| | 61528 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61529 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61530 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| | 61531 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 58266 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 61532 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 58267 | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, | 61533 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 58268 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 61534 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61535 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ }, |
| | 61536 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| | 61537 | .{ ._, ._, .@"and", .tmp1q, .tmp5q, ._, ._ }, |
| | 61538 | .{ ._, ._, .xor, .tmp5q, .tmp1q, ._, ._ }, |
| | 61539 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 61540 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61541 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 61542 | .{ ._, ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 61543 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61544 | .{ ._, ._, .mov, .src1d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| | 61545 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61546 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ }, |
| | 61547 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 58269 | } }, | 61548 | } }, |
| 58270 | }, .{ | 61549 | }, .{ |
| 58271 | .required_features = .{ .@"64bit", null, null, null }, | 61550 | .required_features = .{ .@"64bit", null, null, null }, |
| 58272 | .src_constraints = .{ | 61551 | .src_constraints = .{ |
| 58273 | .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, | 61552 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }, |
| 58274 | .{ .unsigned_int = .word }, | 61553 | .{ .exact_signed_int = 32 }, |
| 58275 | .any, | 61554 | .any, |
| 58276 | }, | 61555 | }, |
| 58277 | .patterns = &.{ | 61556 | .patterns = &.{ |
| 58278 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, | 61557 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58279 | }, | 61558 | }, |
| 58280 | .extra_temps = .{ | 61559 | .extra_temps = .{ |
| | 61560 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58281 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61561 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58282 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, | 61562 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58283 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 61563 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58284 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61564 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58285 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61565 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58286 | .unused, | | |
| 58287 | .unused, | 61566 | .unused, |
| 58288 | .unused, | 61567 | .unused, |
| 58289 | .unused, | 61568 | .unused, |
| ... | @@ -58293,225 +61572,255 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58293,225 +61572,255 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58293 | .dst_temps = .{ .mem, .unused }, | 61572 | .dst_temps = .{ .mem, .unused }, |
| 58294 | .clobbers = .{ .eflags = true }, | 61573 | .clobbers = .{ .eflags = true }, |
| 58295 | .each = .{ .once = &.{ | 61574 | .each = .{ .once = &.{ |
| 58296 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, | 61575 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| 58297 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 61576 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| 58298 | .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, | 61577 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 58299 | .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, | 61578 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| 58300 | .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, | 61579 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| 58301 | .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | 61580 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 58302 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | | |
| 58303 | .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, | | |
| 58304 | .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58305 | .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, | | |
| 58306 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | | |
| 58307 | .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, | | |
| 58308 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, | 61581 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 58309 | .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, | 61582 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| 58310 | .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, | 61583 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 58311 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 61584 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| 58312 | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, | 61585 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 61586 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| | 61587 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 61588 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61589 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61590 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 61591 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61592 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 61593 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61594 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61595 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 61596 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 61597 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| 58313 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, | 61598 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 58314 | } }, | 61599 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| 58315 | } }) catch |err| switch (err) { | 61600 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| 58316 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {} {}", .{ | 61601 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 58317 | @tagName(air_tag), | 61602 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58318 | cg.typeOf(bin_op.lhs).fmt(pt), | 61603 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 58319 | cg.typeOf(bin_op.rhs).fmt(pt), | 61604 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 58320 | ops[0].tracking(cg), | 61605 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 58321 | ops[1].tracking(cg), | 61606 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 58322 | }), | 61607 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 58323 | else => |e| return e, | 61608 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 58324 | }; | 61609 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 58325 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | 61610 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 58326 | }, | 61611 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 58327 | .shl, .shl_exact => |air_tag| if (use_old) try cg.airShlShrBinOp(inst) else fallback: { | 61612 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 58328 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; | 61613 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ }, |
| 58329 | if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airShlShrBinOp(inst); | 61614 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -16), ._, ._ }, |
| 58330 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); | 61615 | .{ ._, ._, .@"and", .tmp1q, .tmp5q, ._, ._ }, |
| 58331 | var res: [1]Temp = undefined; | 61616 | .{ ._, ._, .xor, .tmp5q, .tmp1q, ._, ._ }, |
| 58332 | cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ | 61617 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| 58333 | .src_constraints = .{ .{ .signed_int = .byte }, .{ .unsigned_int = .byte }, .any }, | 61618 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| 58334 | .patterns = &.{ | 61619 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| 58335 | .{ .src = .{ .mut_mem, .imm8, .none } }, | 61620 | .{ ._, ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| 58336 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, | 61621 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 58337 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, | 61622 | .{ ._, ._, .mov, .src1d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 58338 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, | 61623 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 58339 | }, | 61624 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -16), .tmp1q, ._, ._ }, |
| 58340 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 61625 | .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ }, |
| 58341 | .clobbers = .{ .eflags = true }, | | |
| 58342 | .each = .{ .once = &.{ | | |
| 58343 | .{ ._, ._l, .sa, .dst0b, .src1b, ._, ._ }, | | |
| 58344 | } }, | | |
| 58345 | }, .{ | | |
| 58346 | .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any }, | | |
| 58347 | .patterns = &.{ | | |
| 58348 | .{ .src = .{ .mut_mem, .imm8, .none } }, | | |
| 58349 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, | | |
| 58350 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, | | |
| 58351 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, | | |
| 58352 | }, | | |
| 58353 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 58354 | .clobbers = .{ .eflags = true }, | | |
| 58355 | .each = .{ .once = &.{ | | |
| 58356 | .{ ._, ._l, .sh, .dst0b, .src1b, ._, ._ }, | | |
| 58357 | } }, | | |
| 58358 | }, .{ | | |
| 58359 | .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_unsigned_int = 4 }, .any }, | | |
| 58360 | .patterns = &.{ | | |
| 58361 | .{ .src = .{ .mut_mem, .imm8, .none } }, | | |
| 58362 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, | | |
| 58363 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, | | |
| 58364 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, | | |
| 58365 | }, | | |
| 58366 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 58367 | .clobbers = .{ .eflags = true }, | | |
| 58368 | .each = .{ .once = &.{ | | |
| 58369 | .{ ._, ._l, .sa, .dst0w, .src1b, ._, ._ }, | | |
| 58370 | } }, | | |
| 58371 | }, .{ | | |
| 58372 | .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_unsigned_int = 4 }, .any }, | | |
| 58373 | .patterns = &.{ | | |
| 58374 | .{ .src = .{ .mut_mem, .imm8, .none } }, | | |
| 58375 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, | | |
| 58376 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, | | |
| 58377 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, | | |
| 58378 | }, | | |
| 58379 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 58380 | .clobbers = .{ .eflags = true }, | | |
| 58381 | .each = .{ .once = &.{ | | |
| 58382 | .{ ._, ._l, .sh, .dst0w, .src1b, ._, ._ }, | | |
| 58383 | } }, | | |
| 58384 | }, .{ | | |
| 58385 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, | | |
| 58386 | .patterns = &.{ | | |
| 58387 | .{ .src = .{ .mut_mem, .imm8, .none } }, | | |
| 58388 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, | | |
| 58389 | }, | | |
| 58390 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 58391 | .clobbers = .{ .eflags = true }, | | |
| 58392 | .each = .{ .once = &.{ | | |
| 58393 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, | | |
| 58394 | } }, | | |
| 58395 | }, .{ | | |
| 58396 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, | | |
| 58397 | .patterns = &.{ | | |
| 58398 | .{ .src = .{ .mut_mem, .imm8, .none } }, | | |
| 58399 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, | | |
| 58400 | }, | | |
| 58401 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 58402 | .clobbers = .{ .eflags = true }, | | |
| 58403 | .each = .{ .once = &.{ | | |
| 58404 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, | | |
| 58405 | } }, | | |
| 58406 | }, .{ | | |
| 58407 | .required_features = .{ .bmi2, null, null, null }, | | |
| 58408 | .src_constraints = .{ .{ .int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, | | |
| 58409 | .patterns = &.{ | | |
| 58410 | .{ .src = .{ .mem, .to_gpr, .none } }, | | |
| 58411 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, | | |
| 58412 | }, | | |
| 58413 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, | | |
| 58414 | .each = .{ .once = &.{ | | |
| 58415 | .{ ._, ._lx, .sh, .dst0d, .src0d, .src1d, ._ }, | | |
| 58416 | } }, | 61626 | } }, |
| 58417 | }, .{ | 61627 | }, .{ |
| 58418 | .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, | 61628 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 58419 | .patterns = &.{ | 61629 | .src_constraints = .{ |
| 58420 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, | 61630 | .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, |
| 58421 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, | 61631 | .{ .exact_signed_int = 32 }, |
| | 61632 | .any, |
| 58422 | }, | 61633 | }, |
| 58423 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 58424 | .clobbers = .{ .eflags = true }, | | |
| 58425 | .each = .{ .once = &.{ | | |
| 58426 | .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, | | |
| 58427 | } }, | | |
| 58428 | }, .{ | | |
| 58429 | .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, | | |
| 58430 | .patterns = &.{ | 61634 | .patterns = &.{ |
| 58431 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, | 61635 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58432 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, | | |
| 58433 | }, | 61636 | }, |
| 58434 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 61637 | .extra_temps = .{ |
| 58435 | .clobbers = .{ .eflags = true }, | 61638 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58436 | .each = .{ .once = &.{ | 61639 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58437 | .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, | 61640 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58438 | } }, | 61641 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58439 | }, .{ | 61642 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58440 | .required_features = .{ .@"64bit", null, null, null }, | 61643 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58441 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, | 61644 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58442 | .patterns = &.{ | 61645 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58443 | .{ .src = .{ .mut_mem, .imm8, .none } }, | 61646 | .unused, |
| 58444 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, | 61647 | .unused, |
| | 61648 | .unused, |
| 58445 | }, | 61649 | }, |
| 58446 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 61650 | .dst_temps = .{ .mem, .unused }, |
| 58447 | .clobbers = .{ .eflags = true }, | 61651 | .clobbers = .{ .eflags = true }, |
| 58448 | .each = .{ .once = &.{ | 61652 | .each = .{ .once = &.{ |
| 58449 | .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ }, | 61653 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 61654 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 61655 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 61656 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 61657 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 61658 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 61659 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 61660 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 61661 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 61662 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 61663 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 61664 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 61665 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 61666 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61667 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61668 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 61669 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 61670 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 61671 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 61672 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 61673 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 61674 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61675 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61676 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 61677 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 61678 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 61679 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 61680 | .{ ._, ._, .sub, .tmp6d, .si(1), ._, ._ }, |
| | 61681 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 61682 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61683 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| | 61684 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 61685 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61686 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 61687 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 61688 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 61689 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61690 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61691 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 61692 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 61693 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61694 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| | 61695 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61696 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 61697 | .{ ._, ._, .mov, .tmp7q, .tmp1q, ._, ._ }, |
| | 61698 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 61699 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 61700 | .{ ._, ._, .xor, .tmp7q, .tmp1q, ._, ._ }, |
| | 61701 | .{ ._, ._, .mov, .tmp0q, .tmp1q, ._, ._ }, |
| | 61702 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 61703 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 61704 | .{ ._, ._, .xor, .tmp0q, .tmp3q, ._, ._ }, |
| | 61705 | .{ ._, ._, .@"or", .tmp5q, .tmp0q, ._, ._ }, |
| | 61706 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61707 | .{ .@"2:", ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 61708 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 61709 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 61710 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| | 61711 | .{ ._, ._, .not, .tmp0q, ._, ._, ._ }, |
| | 61712 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61713 | .{ ._, ._, .mov, .src1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 61714 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61715 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| 58450 | } }, | 61716 | } }, |
| 58451 | }, .{ | 61717 | }, .{ |
| 58452 | .required_features = .{ .@"64bit", null, null, null }, | 61718 | .required_features = .{ .@"64bit", null, null, null }, |
| 58453 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, | 61719 | .src_constraints = .{ |
| 58454 | .patterns = &.{ | 61720 | .{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }, |
| 58455 | .{ .src = .{ .mut_mem, .imm8, .none } }, | 61721 | .{ .exact_signed_int = 32 }, |
| 58456 | .{ .src = .{ .to_mut_gpr, .imm8, .none } }, | 61722 | .any, |
| 58457 | }, | | |
| 58458 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | | |
| 58459 | .clobbers = .{ .eflags = true }, | | |
| 58460 | .each = .{ .once = &.{ | | |
| 58461 | .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ }, | | |
| 58462 | } }, | | |
| 58463 | }, .{ | | |
| 58464 | .required_features = .{ .@"64bit", .bmi2, null, null }, | | |
| 58465 | .src_constraints = .{ .{ .int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, | | |
| 58466 | .patterns = &.{ | | |
| 58467 | .{ .src = .{ .mem, .to_gpr, .none } }, | | |
| 58468 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, | | |
| 58469 | }, | 61723 | }, |
| 58470 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, | | |
| 58471 | .each = .{ .once = &.{ | | |
| 58472 | .{ ._, ._lx, .sh, .dst0q, .src0q, .src1q, ._ }, | | |
| 58473 | } }, | | |
| 58474 | }, .{ | | |
| 58475 | .required_features = .{ .@"64bit", null, null, null }, | | |
| 58476 | .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, | | |
| 58477 | .patterns = &.{ | 61724 | .patterns = &.{ |
| 58478 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, | 61725 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58479 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, | | |
| 58480 | }, | 61726 | }, |
| 58481 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 61727 | .extra_temps = .{ |
| 58482 | .clobbers = .{ .eflags = true }, | 61728 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58483 | .each = .{ .once = &.{ | 61729 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58484 | .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ }, | 61730 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58485 | } }, | 61731 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58486 | }, .{ | 61732 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58487 | .required_features = .{ .@"64bit", null, null, null }, | 61733 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58488 | .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, | 61734 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58489 | .patterns = &.{ | 61735 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 58490 | .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, | 61736 | .unused, |
| 58491 | .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, | 61737 | .unused, |
| | 61738 | .unused, |
| 58492 | }, | 61739 | }, |
| 58493 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, | 61740 | .dst_temps = .{ .mem, .unused }, |
| 58494 | .clobbers = .{ .eflags = true }, | 61741 | .clobbers = .{ .eflags = true }, |
| 58495 | .each = .{ .once = &.{ | 61742 | .each = .{ .once = &.{ |
| 58496 | .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ }, | 61743 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 61744 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 61745 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 61746 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 61747 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 61748 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 61749 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 61750 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 61751 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 61752 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 61753 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| | 61754 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| | 61755 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| | 61756 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61757 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61758 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 61759 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| | 61760 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| | 61761 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| | 61762 | .{ ._, ._ld, .sh, .tmp5q, .tmp4q, .src1b, ._ }, |
| | 61763 | .{ ._, ._, .xor, .tmp5q, .tmp3q, ._, ._ }, |
| | 61764 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61765 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61766 | .{ ._, ._, .mov, .tmp6d, .tmp0d, ._, ._ }, |
| | 61767 | .{ .@"0:", ._, .mov, .tmp7q, .tmp3q, ._, ._ }, |
| | 61768 | .{ ._, ._, .xor, .tmp7q, .leasi(.tmp2q, .@"8", .tmp6), ._, ._ }, |
| | 61769 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 61770 | .{ ._, ._c, .de, .tmp6d, ._, ._, ._ }, |
| | 61771 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 61772 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 61773 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| | 61774 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| | 61775 | .{ .@"0:", ._, .mov, .tmp6q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61776 | .{ ._, ._ld, .sh, .tmp4q, .tmp6q, .src1b, ._ }, |
| | 61777 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp4q, ._, ._ }, |
| | 61778 | .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, |
| | 61779 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 61780 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 61781 | .{ .@"1:", ._l, .sh, .tmp4q, .src1b, ._, ._ }, |
| | 61782 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp4q, ._, ._ }, |
| | 61783 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61784 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| | 61785 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 61786 | .{ ._, ._, .mov, .tmp1q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 61787 | .{ ._, ._, .mov, .tmp7q, .tmp1q, ._, ._ }, |
| | 61788 | .{ ._, ._l, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 61789 | .{ ._, ._r, .sa, .tmp1q, .uia(64, .src0, .sub_bit_size_rem_64), ._, ._ }, |
| | 61790 | .{ ._, ._, .xor, .tmp7q, .tmp1q, ._, ._ }, |
| | 61791 | .{ ._, ._, .mov, .tmp0q, .tmp1q, ._, ._ }, |
| | 61792 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 61793 | .{ ._, ._, .@"or", .tmp5q, .tmp7q, ._, ._ }, |
| | 61794 | .{ ._, ._, .xor, .tmp0q, .tmp3q, ._, ._ }, |
| | 61795 | .{ ._, ._, .@"or", .tmp5q, .tmp0q, ._, ._ }, |
| | 61796 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61797 | .{ .@"2:", ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| | 61798 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| | 61799 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_smax), ._, ._ }, |
| | 61800 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| | 61801 | .{ ._, ._, .not, .tmp0q, ._, ._, ._ }, |
| | 61802 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61803 | .{ ._, ._, .mov, .src1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 61804 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61805 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| 58497 | } }, | 61806 | } }, |
| 58498 | }, .{ | 61807 | }, .{ |
| 58499 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 61808 | .required_features = .{ .@"64bit", .bmi, .slow_incdec, null }, |
| 58500 | .src_constraints = .{ | 61809 | .src_constraints = .{ |
| 58501 | .{ .remainder_int = .{ .of = .qword, .is = .qword } }, | 61810 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 58502 | .{ .unsigned_int = .byte }, | 61811 | .{ .exact_signed_int = 32 }, |
| 58503 | .any, | 61812 | .any, |
| 58504 | }, | 61813 | }, |
| 58505 | .patterns = &.{ | 61814 | .patterns = &.{ |
| 58506 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, | 61815 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58507 | }, | 61816 | }, |
| 58508 | .extra_temps = .{ | 61817 | .extra_temps = .{ |
| | 61818 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58509 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61819 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58510 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61820 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58511 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 61821 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58512 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61822 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58513 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61823 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58514 | .unused, | | |
| 58515 | .unused, | 61824 | .unused, |
| 58516 | .unused, | 61825 | .unused, |
| 58517 | .unused, | 61826 | .unused, |
| ... | @@ -58521,42 +61830,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58521,42 +61830,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58521 | .dst_temps = .{ .mem, .unused }, | 61830 | .dst_temps = .{ .mem, .unused }, |
| 58522 | .clobbers = .{ .eflags = true }, | 61831 | .clobbers = .{ .eflags = true }, |
| 58523 | .each = .{ .once = &.{ | 61832 | .each = .{ .once = &.{ |
| 58524 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, | 61833 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 61834 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 61835 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 61836 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 61837 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 61838 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 61839 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 61840 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 61841 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 61842 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 61843 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| 58525 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | 61844 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 58526 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 61845 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 58527 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, | 61846 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61847 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61848 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 61849 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61850 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 61851 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61852 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61853 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 61854 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 61855 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 61856 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 61857 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 61858 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| 58528 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, | 61859 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 58529 | .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, | 61860 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58530 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | 61861 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 58531 | .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, | | |
| 58532 | .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58533 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, | 61862 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 58534 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | 61863 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 58535 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, | 61864 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 58536 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, | 61865 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 58537 | .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, | 61866 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 58538 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, | 61867 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 58539 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 61868 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 58540 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | 61869 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 58541 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, | 61870 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 61871 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ }, |
| | 61872 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 61873 | .{ ._, ._, .andn, .tmp5q, .tmp1q, .tmp3q, ._ }, |
| | 61874 | .{ ._, ._, .@"and", .tmp1q, .tmp3q, ._, ._ }, |
| | 61875 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 61876 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61877 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 61878 | .{ ._, ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 61879 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61880 | .{ ._, ._, .mov, .src1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 61881 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61882 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| 58542 | } }, | 61883 | } }, |
| 58543 | }, .{ | 61884 | }, .{ |
| 58544 | .required_features = .{ .@"64bit", null, null, null }, | 61885 | .required_features = .{ .@"64bit", .bmi, null, null }, |
| 58545 | .src_constraints = .{ | 61886 | .src_constraints = .{ |
| 58546 | .{ .remainder_int = .{ .of = .qword, .is = .qword } }, | 61887 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 58547 | .{ .unsigned_int = .byte }, | 61888 | .{ .exact_signed_int = 32 }, |
| 58548 | .any, | 61889 | .any, |
| 58549 | }, | 61890 | }, |
| 58550 | .patterns = &.{ | 61891 | .patterns = &.{ |
| 58551 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, | 61892 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58552 | }, | 61893 | }, |
| 58553 | .extra_temps = .{ | 61894 | .extra_temps = .{ |
| | 61895 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58554 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61896 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58555 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61897 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58556 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 61898 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58557 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61899 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58558 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61900 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58559 | .unused, | | |
| 58560 | .unused, | 61901 | .unused, |
| 58561 | .unused, | 61902 | .unused, |
| 58562 | .unused, | 61903 | .unused, |
| ... | @@ -58566,42 +61907,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58566,42 +61907,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58566 | .dst_temps = .{ .mem, .unused }, | 61907 | .dst_temps = .{ .mem, .unused }, |
| 58567 | .clobbers = .{ .eflags = true }, | 61908 | .clobbers = .{ .eflags = true }, |
| 58568 | .each = .{ .once = &.{ | 61909 | .each = .{ .once = &.{ |
| 58569 | .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, | 61910 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 61911 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 61912 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 61913 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 61914 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 61915 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 61916 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 61917 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 61918 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 61919 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 61920 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| 58570 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | 61921 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 58571 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 61922 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 58572 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, | 61923 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 61924 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 61925 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 61926 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 61927 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 61928 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 61929 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 61930 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 61931 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 61932 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 61933 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 61934 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 61935 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| 58573 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, | 61936 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 58574 | .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, | 61937 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58575 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | 61938 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 58576 | .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, | | |
| 58577 | .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58578 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, | 61939 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 58579 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | 61940 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 58580 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, | 61941 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 58581 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, | 61942 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 58582 | .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, | 61943 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 58583 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, | 61944 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 58584 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 61945 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 58585 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | 61946 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 58586 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, | 61947 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 61948 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ }, |
| | 61949 | .{ ._, ._, .mov, .tmp3q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 61950 | .{ ._, ._, .andn, .tmp5q, .tmp1q, .tmp3q, ._ }, |
| | 61951 | .{ ._, ._, .@"and", .tmp1q, .tmp3q, ._, ._ }, |
| | 61952 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 61953 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 61954 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 61955 | .{ ._, ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 61956 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 61957 | .{ ._, ._, .mov, .src1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 61958 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 61959 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| 58587 | } }, | 61960 | } }, |
| 58588 | }, .{ | 61961 | }, .{ |
| 58589 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, | 61962 | .required_features = .{ .@"64bit", .slow_incdec, null, null }, |
| 58590 | .src_constraints = .{ | 61963 | .src_constraints = .{ |
| 58591 | .{ .remainder_int = .{ .of = .qword, .is = .qword } }, | 61964 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 58592 | .{ .unsigned_int = .word }, | 61965 | .{ .exact_signed_int = 32 }, |
| 58593 | .any, | 61966 | .any, |
| 58594 | }, | 61967 | }, |
| 58595 | .patterns = &.{ | 61968 | .patterns = &.{ |
| 58596 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, | 61969 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58597 | }, | 61970 | }, |
| 58598 | .extra_temps = .{ | 61971 | .extra_temps = .{ |
| | 61972 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58599 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61973 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58600 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 61974 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58601 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 61975 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58602 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61976 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58603 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 61977 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58604 | .unused, | | |
| 58605 | .unused, | 61978 | .unused, |
| 58606 | .unused, | 61979 | .unused, |
| 58607 | .unused, | 61980 | .unused, |
| ... | @@ -58611,42 +61984,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58611,42 +61984,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58611 | .dst_temps = .{ .mem, .unused }, | 61984 | .dst_temps = .{ .mem, .unused }, |
| 58612 | .clobbers = .{ .eflags = true }, | 61985 | .clobbers = .{ .eflags = true }, |
| 58613 | .each = .{ .once = &.{ | 61986 | .each = .{ .once = &.{ |
| 58614 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, | 61987 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 61988 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 61989 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 61990 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 61991 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 61992 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 61993 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 61994 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 61995 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 61996 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 61997 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| 58615 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | 61998 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 58616 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 61999 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 58617 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, | 62000 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 62001 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 62002 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 62003 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 62004 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 62005 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 62006 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 62007 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 62008 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 62009 | .{ ._, ._, .sub, .tmp5d, .si(1), ._, ._ }, |
| | 62010 | .{ ._, ._a, .j, .@"0b", ._, ._, ._ }, |
| | 62011 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| | 62012 | .{ ._, ._nae, .j, .@"1f", ._, ._, ._ }, |
| 58618 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, | 62013 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 58619 | .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, | 62014 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58620 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | 62015 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 58621 | .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, | | |
| 58622 | .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58623 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, | 62016 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 58624 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | 62017 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 58625 | .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, | 62018 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 58626 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, | 62019 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 58627 | .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, | 62020 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 58628 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, | 62021 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 58629 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 62022 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 58630 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, | 62023 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 58631 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, | 62024 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| | 62025 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ }, |
| | 62026 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 62027 | .{ ._, ._, .@"and", .tmp1q, .tmp5q, ._, ._ }, |
| | 62028 | .{ ._, ._, .xor, .tmp5q, .tmp1q, ._, ._ }, |
| | 62029 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 62030 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 62031 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 62032 | .{ ._, ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 62033 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 62034 | .{ ._, ._, .mov, .src1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 62035 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 62036 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| 58632 | } }, | 62037 | } }, |
| 58633 | }, .{ | 62038 | }, .{ |
| 58634 | .required_features = .{ .@"64bit", null, null, null }, | 62039 | .required_features = .{ .@"64bit", null, null, null }, |
| 58635 | .src_constraints = .{ | 62040 | .src_constraints = .{ |
| 58636 | .{ .remainder_int = .{ .of = .qword, .is = .qword } }, | 62041 | .{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 58637 | .{ .unsigned_int = .word }, | 62042 | .{ .exact_signed_int = 32 }, |
| 58638 | .any, | 62043 | .any, |
| 58639 | }, | 62044 | }, |
| 58640 | .patterns = &.{ | 62045 | .patterns = &.{ |
| 58641 | .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, | 62046 | .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, |
| 58642 | }, | 62047 | }, |
| 58643 | .extra_temps = .{ | 62048 | .extra_temps = .{ |
| | 62049 | .{ .type = .u32, .kind = .{ .reg = .rax } }, |
| 58644 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 62050 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 58645 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, | 62051 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 58646 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, | 62052 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58647 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 62053 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58648 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, | 62054 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 58649 | .unused, | | |
| 58650 | .unused, | 62055 | .unused, |
| 58651 | .unused, | 62056 | .unused, |
| 58652 | .unused, | 62057 | .unused, |
| ... | @@ -58656,48 +62061,66 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { | ... | @@ -58656,48 +62061,66 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58656 | .dst_temps = .{ .mem, .unused }, | 62061 | .dst_temps = .{ .mem, .unused }, |
| 58657 | .clobbers = .{ .eflags = true }, | 62062 | .clobbers = .{ .eflags = true }, |
| 58658 | .each = .{ .once = &.{ | 62063 | .each = .{ .once = &.{ |
| 58659 | .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, | 62064 | .{ ._, ._, .cmp, .src1d, .sia(-1, .src0, .add_bit_size), ._, ._ }, |
| | 62065 | .{ ._, ._na, .j, .@"1f", ._, ._, ._ }, |
| | 62066 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| | 62067 | .{ .@"0:", ._, .cmp, .memi(.src0q, .tmp0), .si(0), ._, ._ }, |
| | 62068 | .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, |
| | 62069 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| | 62070 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| | 62071 | .{ ._, ._, .xor, .tmp0d, .tmp0d, ._, ._ }, |
| | 62072 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| | 62073 | .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, |
| | 62074 | .{ .@"1:", ._, .mov, .tmp0d, .src1d, ._, ._ }, |
| 58660 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, | 62075 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 58661 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, | 62076 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 58662 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, | 62077 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| | 62078 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| | 62079 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| | 62080 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| | 62081 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| | 62082 | .{ ._, ._, .@"test", .tmp0d, .tmp0d, ._, ._ }, |
| | 62083 | .{ ._, ._z, .j, .@"1f", ._, ._, ._ }, |
| | 62084 | .{ ._, ._, .mov, .tmp5d, .tmp0d, ._, ._ }, |
| | 62085 | .{ .@"0:", ._, .@"or", .tmp4q, .leasi(.tmp2q, .@"8", .tmp5), ._, ._ }, |
| | 62086 | .{ ._, ._c, .de, .tmp5d, ._, ._, ._ }, |
| | 62087 | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| | 62088 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, |
| | 62089 | .{ ._, ._s, .j, .@"1f", ._, ._, ._ }, |
| 58663 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, | 62090 | .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, |
| 58664 | .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, | 62091 | .{ .@"0:", ._, .mov, .tmp5q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58665 | .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, | 62092 | .{ ._, ._ld, .sh, .tmp3q, .tmp5q, .src1b, ._ }, |
| 58666 | .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, | | |
| 58667 | .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, | | |
| 58668 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, | 62093 | .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, |
| 58669 | .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, | 62094 | .{ ._, ._, .mov, .tmp3q, .tmp5q, ._, ._ }, |
| 58670 | .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, | 62095 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 58671 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, | 62096 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 58672 | .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, | 62097 | .{ .@"1:", ._l, .sh, .tmp3q, .src1b, ._, ._ }, |
| 58673 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, | 62098 | .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, |
| 58674 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, | 62099 | .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, |
| 58675 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, | 62100 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 58676 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, | 62101 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| | 62102 | .{ ._, ._, .mov, .tmp1q, .ua(.src0, .add_umax), ._, ._ }, |
| | 62103 | .{ ._, ._, .mov, .tmp5q, .memad(.dst0q, .add_src0_size, -8), ._, ._ }, |
| | 62104 | .{ ._, ._, .@"and", .tmp1q, .tmp5q, ._, ._ }, |
| | 62105 | .{ ._, ._, .xor, .tmp5q, .tmp1q, ._, ._ }, |
| | 62106 | .{ ._, ._, .@"or", .tmp4q, .tmp5q, ._, ._ }, |
| | 62107 | .{ ._, ._z, .j, .@"0f", ._, ._, ._ }, |
| | 62108 | .{ .@"2:", ._, .mov, .tmp0q, .si(-1), ._, ._ }, |
| | 62109 | .{ ._, ._, .mov, .tmp1q, .ua(.dst0, .add_umax), ._, ._ }, |
| | 62110 | .{ .@"3:", ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| | 62111 | .{ ._, ._, .mov, .src1d, .sia(-1, .dst0, .add_size_div_8), ._, ._ }, |
| | 62112 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| | 62113 | .{ .@"0:", ._, .mov, .memad(.dst0q, .add_size, -8), .tmp1q, ._, ._ }, |
| 58677 | } }, | 62114 | } }, |
| 58678 | } }) catch |err| switch (err) { | 62115 | } }) catch |err| switch (err) { |
| 58679 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {} {}", .{ | 62116 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| 58680 | @tagName(air_tag), | 62117 | @tagName(air_tag), |
| 58681 | cg.typeOf(bin_op.lhs).fmt(pt), | 62118 | lhs_ty.fmt(pt), |
| 58682 | cg.typeOf(bin_op.rhs).fmt(pt), | | |
| 58683 | ops[0].tracking(cg), | 62119 | ops[0].tracking(cg), |
| 58684 | ops[1].tracking(cg), | 62120 | ops[1].tracking(cg), |
| 58685 | }), | 62121 | }), |
| 58686 | else => |e| return e, | 62122 | else => |e| return e, |
| 58687 | }; | 62123 | }; |
| 58688 | switch (air_tag) { | | |
| 58689 | else => unreachable, | | |
| 58690 | .shl => res[0].wrapInt(cg) catch |err| switch (err) { | | |
| 58691 | error.SelectFailed => return cg.fail("failed to select wrap {} {} {} {}", .{ | | |
| 58692 | cg.typeOf(bin_op.lhs).fmt(pt), | | |
| 58693 | cg.typeOf(bin_op.rhs).fmt(pt), | | |
| 58694 | ops[0].tracking(cg), | | |
| 58695 | ops[1].tracking(cg), | | |
| 58696 | }), | | |
| 58697 | else => |e| return e, | | |
| 58698 | }, | | |
| 58699 | .shl_exact => {}, | | |
| 58700 | } | | |
| 58701 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); | 62124 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 58702 | }, | 62125 | }, |
| 58703 | .not => |air_tag| if (use_old) try cg.airUnOp(inst, air_tag) else { | 62126 | .not => |air_tag| if (use_old) try cg.airUnOp(inst, air_tag) else { |
| ... | @@ -139465,7 +142888,7 @@ const Select = struct { | ... | @@ -139465,7 +142888,7 @@ const Select = struct { |
| 139465 | temps: [@intFromEnum(Select.Operand.Ref.none)]Temp, | 142888 | temps: [@intFromEnum(Select.Operand.Ref.none)]Temp, |
| 139466 | labels: [@intFromEnum(Label._)]struct { | 142889 | labels: [@intFromEnum(Label._)]struct { |
| 139467 | backward: ?Mir.Inst.Index, | 142890 | backward: ?Mir.Inst.Index, |
| 139468 | forward: [1]?Mir.Inst.Index, | 142891 | forward: [3]?Mir.Inst.Index, |
| 139469 | }, | 142892 | }, |
| 139470 | top: u3, | 142893 | top: u3, |
| 139471 | | 142894 | |
| ... | @@ -140108,7 +143531,7 @@ const Select = struct { | ... | @@ -140108,7 +143531,7 @@ const Select = struct { |
| 140108 | none, | 143531 | none, |
| 140109 | undef, | 143532 | undef, |
| 140110 | cc: Condition, | 143533 | cc: Condition, |
| 140111 | imm: u32, | 143534 | imm: i32, |
| 140112 | ref: Select.Operand.Ref, | 143535 | ref: Select.Operand.Ref, |
| 140113 | reg: Register, | 143536 | reg: Register, |
| 140114 | reg_pair: [2]Register, | 143537 | reg_pair: [2]Register, |
| ... | @@ -140198,7 +143621,7 @@ const Select = struct { | ... | @@ -140198,7 +143621,7 @@ const Select = struct { |
| 140198 | .any => .{ try cg.tempAlloc(spec.type), true }, | 143621 | .any => .{ try cg.tempAlloc(spec.type), true }, |
| 140199 | .none => .{ try cg.tempInit(spec.type, .none), true }, | 143622 | .none => .{ try cg.tempInit(spec.type, .none), true }, |
| 140200 | .undef => .{ try cg.tempInit(spec.type, .undef), true }, | 143623 | .undef => .{ try cg.tempInit(spec.type, .undef), true }, |
| 140201 | .imm => |imm| .{ try cg.tempInit(spec.type, .{ .immediate = imm }), true }, | 143624 | .imm => |imm| .{ try cg.tempInit(spec.type, .{ .immediate = @bitCast(@as(i64, imm)) }), true }, |
| 140202 | .cc => |cc| .{ try cg.tempInit(spec.type, .{ .eflags = cc }), true }, | 143625 | .cc => |cc| .{ try cg.tempInit(spec.type, .{ .eflags = cc }), true }, |
| 140203 | .ref => |ref| .{ ref.tempOf(s), false }, | 143626 | .ref => |ref| .{ ref.tempOf(s), false }, |
| 140204 | .reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true }, | 143627 | .reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true }, |
| ... | @@ -140565,6 +143988,8 @@ const Select = struct { | ... | @@ -140565,6 +143988,8 @@ const Select = struct { |
| 140565 | smin, | 143988 | smin, |
| 140566 | smax, | 143989 | smax, |
| 140567 | umax, | 143990 | umax, |
| | 143991 | smin_shr_src1, |
| | 143992 | smax_shr_src1, |
| 140568 | umax_shr_src1, | 143993 | umax_shr_src1, |
| 140569 | repeat, | 143994 | repeat, |
| 140570 | }, | 143995 | }, |
| ... | @@ -140630,8 +144055,9 @@ const Select = struct { | ... | @@ -140630,8 +144055,9 @@ const Select = struct { |
| 140630 | const sub_smin: Adjust = .{ .sign = .neg, .lhs = .smin, .op = .mul, .rhs = .@"1" }; | 144055 | const sub_smin: Adjust = .{ .sign = .neg, .lhs = .smin, .op = .mul, .rhs = .@"1" }; |
| 140631 | const add_smax: Adjust = .{ .sign = .pos, .lhs = .smax, .op = .mul, .rhs = .@"1" }; | 144056 | const add_smax: Adjust = .{ .sign = .pos, .lhs = .smax, .op = .mul, .rhs = .@"1" }; |
| 140632 | const add_umax: Adjust = .{ .sign = .pos, .lhs = .umax, .op = .mul, .rhs = .@"1" }; | 144057 | const add_umax: Adjust = .{ .sign = .pos, .lhs = .umax, .op = .mul, .rhs = .@"1" }; |
| 140633 | const add_umax_shr_src1: Adjust = .{ .sign = .pos, .lhs = .umax_shr_src1, .op = .mul, .rhs = .@"1" }; | | |
| 140634 | const sub_umax: Adjust = .{ .sign = .neg, .lhs = .umax, .op = .mul, .rhs = .@"1" }; | 144058 | const sub_umax: Adjust = .{ .sign = .neg, .lhs = .umax, .op = .mul, .rhs = .@"1" }; |
| | 144059 | const add_smax_shr_src1: Adjust = .{ .sign = .pos, .lhs = .smax_shr_src1, .op = .mul, .rhs = .@"1" }; |
| | 144060 | const add_umax_shr_src1: Adjust = .{ .sign = .pos, .lhs = .umax_shr_src1, .op = .mul, .rhs = .@"1" }; |
| 140635 | const repeat: Adjust = .{ .sign = .pos, .lhs = .repeat, .op = .mul, .rhs = .@"1" }; | 144061 | const repeat: Adjust = .{ .sign = .pos, .lhs = .repeat, .op = .mul, .rhs = .@"1" }; |
| 140636 | }; | 144062 | }; |
| 140637 | const Ref = enum(u5) { | 144063 | const Ref = enum(u5) { |
| ... | @@ -141410,6 +144836,12 @@ const Select = struct { | ... | @@ -141410,6 +144836,12 @@ const Select = struct { |
| 141410 | .umax => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate( | 144836 | .umax => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate( |
| 141411 | -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), | 144837 | -%op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), |
| 141412 | )), | 144838 | )), |
| | 144839 | .smax_shr_src1 => @as(SignedImm, std.math.maxInt(SignedImm)) >> @truncate( |
| | 144840 | Select.Operand.Ref.src1.valueOf(s).immediate -% op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), |
| | 144841 | ), |
| | 144842 | .smin_shr_src1 => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate( |
| | 144843 | Select.Operand.Ref.src1.valueOf(s).immediate -% op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), |
| | 144844 | ), |
| 141413 | .umax_shr_src1 => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate( | 144845 | .umax_shr_src1 => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate( |
| 141414 | Select.Operand.Ref.src1.valueOf(s).immediate -% op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), | 144846 | Select.Operand.Ref.src1.valueOf(s).immediate -% op.flags.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu), |
| 141415 | )), | 144847 | )), |