| ... | ... | @@ -32,88 +32,47 @@ const FrameIndex = bits.FrameIndex; |
| 32 | 32 | |
| 33 | 33 | const InnerError = codegen.CodeGenError || error{OutOfRegisters}; |
| 34 | 34 | |
| 35 | | pub fn legalizeFeatures(target: *const std.Target) *const Air.Legalize.Features { |
| 36 | | @setEvalBranchQuota(1_200); |
| 37 | | return switch (target.ofmt == .coff) { |
| 38 | | inline false, true => |use_old| comptime &.init(.{ |
| 39 | | .scalarize_add = use_old, |
| 40 | | .scalarize_add_sat = use_old, |
| 41 | | .scalarize_sub = use_old, |
| 42 | | .scalarize_sub_sat = use_old, |
| 43 | | .scalarize_mul = use_old, |
| 44 | | .scalarize_mul_wrap = use_old, |
| 45 | | .scalarize_mul_sat = true, |
| 46 | | .scalarize_div_float = use_old, |
| 47 | | .scalarize_div_float_optimized = use_old, |
| 48 | | .scalarize_div_trunc = use_old, |
| 49 | | .scalarize_div_trunc_optimized = use_old, |
| 50 | | .scalarize_div_floor = true, |
| 51 | | .scalarize_div_floor_optimized = use_old, |
| 52 | | .scalarize_div_exact = use_old, |
| 53 | | .scalarize_div_exact_optimized = use_old, |
| 54 | | .scalarize_mod = true, |
| 55 | | .scalarize_max = use_old, |
| 56 | | .scalarize_min = use_old, |
| 57 | | .scalarize_add_with_overflow = true, |
| 58 | | .scalarize_sub_with_overflow = true, |
| 59 | | .scalarize_mul_with_overflow = true, |
| 60 | | .scalarize_shl_with_overflow = true, |
| 61 | | .scalarize_bit_and = use_old, |
| 62 | | .scalarize_bit_or = use_old, |
| 63 | | .scalarize_shr = true, |
| 64 | | .scalarize_shr_exact = true, |
| 65 | | .scalarize_shl = true, |
| 66 | | .scalarize_shl_exact = true, |
| 67 | | .scalarize_shl_sat = true, |
| 68 | | .scalarize_xor = use_old, |
| 69 | | .scalarize_not = use_old, |
| 70 | | .scalarize_bitcast = true, |
| 71 | | .scalarize_clz = use_old, |
| 72 | | .scalarize_ctz = true, |
| 73 | | .scalarize_popcount = true, |
| 74 | | .scalarize_byte_swap = true, |
| 75 | | .scalarize_bit_reverse = true, |
| 76 | | .scalarize_sin = use_old, |
| 77 | | .scalarize_cos = use_old, |
| 78 | | .scalarize_tan = use_old, |
| 79 | | .scalarize_exp = use_old, |
| 80 | | .scalarize_exp2 = use_old, |
| 81 | | .scalarize_log = use_old, |
| 82 | | .scalarize_log2 = use_old, |
| 83 | | .scalarize_log10 = use_old, |
| 84 | | .scalarize_abs = use_old, |
| 85 | | .scalarize_floor = use_old, |
| 86 | | .scalarize_ceil = use_old, |
| 87 | | .scalarize_trunc_float = use_old, |
| 88 | | .scalarize_cmp_vector = true, |
| 89 | | .scalarize_cmp_vector_optimized = true, |
| 90 | | .scalarize_fptrunc = use_old, |
| 91 | | .scalarize_fpext = use_old, |
| 92 | | .scalarize_intcast = use_old, |
| 93 | | .scalarize_int_from_float = use_old, |
| 94 | | .scalarize_int_from_float_optimized = use_old, |
| 95 | | .scalarize_float_from_int = use_old, |
| 96 | | .scalarize_shuffle_one = true, |
| 97 | | .scalarize_shuffle_two = true, |
| 98 | | .scalarize_select = true, |
| 99 | | .scalarize_mul_add = use_old, |
| 100 | | |
| 101 | | .unsplat_shift_rhs = false, |
| 102 | | .reduce_one_elem_to_bitcast = true, |
| 103 | | |
| 104 | | .expand_intcast_safe = true, |
| 105 | | .expand_int_from_float_safe = true, |
| 106 | | .expand_int_from_float_optimized_safe = true, |
| 107 | | .expand_add_safe = true, |
| 108 | | .expand_sub_safe = true, |
| 109 | | .expand_mul_safe = true, |
| 110 | | |
| 111 | | .expand_packed_load = true, |
| 112 | | .expand_packed_store = true, |
| 113 | | .expand_packed_struct_field_val = true, |
| 114 | | .expand_packed_aggregate_init = true, |
| 115 | | }), |
| 116 | | }; |
| 35 | pub fn legalizeFeatures(_: *const std.Target) *const Air.Legalize.Features { |
| 36 | return comptime &.initMany(&.{ |
| 37 | .scalarize_mul_sat, |
| 38 | .scalarize_div_floor, |
| 39 | .scalarize_mod, |
| 40 | .scalarize_add_with_overflow, |
| 41 | .scalarize_sub_with_overflow, |
| 42 | .scalarize_mul_with_overflow, |
| 43 | .scalarize_shl_with_overflow, |
| 44 | .scalarize_shr, |
| 45 | .scalarize_shr_exact, |
| 46 | .scalarize_shl, |
| 47 | .scalarize_shl_exact, |
| 48 | .scalarize_shl_sat, |
| 49 | .scalarize_bitcast, |
| 50 | .scalarize_ctz, |
| 51 | .scalarize_popcount, |
| 52 | .scalarize_byte_swap, |
| 53 | .scalarize_bit_reverse, |
| 54 | .scalarize_cmp_vector, |
| 55 | .scalarize_cmp_vector_optimized, |
| 56 | .scalarize_shuffle_one, |
| 57 | .scalarize_shuffle_two, |
| 58 | .scalarize_select, |
| 59 | |
| 60 | //.unsplat_shift_rhs, |
| 61 | .reduce_one_elem_to_bitcast, |
| 62 | .splat_one_elem_to_bitcast, |
| 63 | |
| 64 | .expand_intcast_safe, |
| 65 | .expand_int_from_float_safe, |
| 66 | .expand_int_from_float_optimized_safe, |
| 67 | .expand_add_safe, |
| 68 | .expand_sub_safe, |
| 69 | .expand_mul_safe, |
| 70 | |
| 71 | .expand_packed_load, |
| 72 | .expand_packed_store, |
| 73 | .expand_packed_struct_field_val, |
| 74 | .expand_packed_aggregate_init, |
| 75 | }); |
| 117 | 76 | } |
| 118 | 77 | |
| 119 | 78 | /// Set this to `false` to uncover Sema OPV bugs. |
| ... | ... | @@ -246,6 +205,7 @@ pub const MCValue = union(enum) { |
| 246 | 205 | memory: u64, |
| 247 | 206 | /// The value is in memory at a constant offset from the address in a register. |
| 248 | 207 | indirect: bits.RegisterOffset, |
| 208 | indirect_load_frame: bits.FrameAddr, |
| 249 | 209 | /// The value stored at an offset from a frame index |
| 250 | 210 | /// Payload is a frame address. |
| 251 | 211 | load_frame: bits.FrameAddr, |
| ... | ... | @@ -279,6 +239,7 @@ pub const MCValue = union(enum) { |
| 279 | 239 | .register_mask, |
| 280 | 240 | .eflags, |
| 281 | 241 | .register_overflow, |
| 242 | .indirect_load_frame, |
| 282 | 243 | .lea_frame, |
| 283 | 244 | .lea_nav, |
| 284 | 245 | .load_uav, |
| ... | ... | @@ -417,6 +378,7 @@ pub const MCValue = union(enum) { |
| 417 | 378 | 0 => .{ .register = reg_off.reg }, |
| 418 | 379 | else => .{ .register_offset = reg_off }, |
| 419 | 380 | }, |
| 381 | .indirect_load_frame => |frame_addr| .{ .load_frame = frame_addr }, |
| 420 | 382 | .load_frame => |frame_addr| .{ .lea_frame = frame_addr }, |
| 421 | 383 | .load_nav => |nav| .{ .lea_nav = nav }, |
| 422 | 384 | .load_uav => |uav| .{ .lea_uav = uav }, |
| ... | ... | @@ -439,7 +401,7 @@ pub const MCValue = union(enum) { |
| 439 | 401 | .register_mask, |
| 440 | 402 | .memory, |
| 441 | 403 | .indirect, |
| 442 | | .load_frame, |
| 404 | .indirect_load_frame, |
| 443 | 405 | .load_nav, |
| 444 | 406 | .load_uav, |
| 445 | 407 | .load_lazy_sym, |
| ... | ... | @@ -451,6 +413,7 @@ pub const MCValue = union(enum) { |
| 451 | 413 | .immediate => |addr| .{ .memory = addr }, |
| 452 | 414 | .register => |reg| .{ .indirect = .{ .reg = reg } }, |
| 453 | 415 | .register_offset => |reg_off| .{ .indirect = reg_off }, |
| 416 | .load_frame => |frame_addr| .{ .indirect_load_frame = frame_addr }, |
| 454 | 417 | .lea_frame => |frame_addr| .{ .load_frame = frame_addr }, |
| 455 | 418 | .lea_nav => |nav| .{ .load_nav = nav }, |
| 456 | 419 | .lea_uav => |uav| .{ .load_uav = uav }, |
| ... | ... | @@ -477,6 +440,7 @@ pub const MCValue = union(enum) { |
| 477 | 440 | .register_mask, |
| 478 | 441 | .memory, |
| 479 | 442 | .indirect, |
| 443 | .indirect_load_frame, |
| 480 | 444 | .load_frame, |
| 481 | 445 | .load_nav, |
| 482 | 446 | .lea_nav, |
| ... | ... | @@ -516,6 +480,7 @@ pub const MCValue = union(enum) { |
| 516 | 480 | .register_offset, |
| 517 | 481 | .register_overflow, |
| 518 | 482 | .register_mask, |
| 483 | .indirect_load_frame, |
| 519 | 484 | .lea_frame, |
| 520 | 485 | .elementwise_args, |
| 521 | 486 | .reserved_frame, |
| ... | ... | @@ -589,6 +554,7 @@ pub const MCValue = union(enum) { |
| 589 | 554 | @tagName(pl.reg), |
| 590 | 555 | }), |
| 591 | 556 | .indirect => |pl| try writer.print("[{s} + 0x{x}]", .{ @tagName(pl.reg), pl.off }), |
| 557 | .indirect_load_frame => |pl| try writer.print("[[{} + 0x{x}]]", .{ pl.index, pl.off }), |
| 592 | 558 | .load_frame => |pl| try writer.print("[{} + 0x{x}]", .{ pl.index, pl.off }), |
| 593 | 559 | .lea_frame => |pl| try writer.print("{} + 0x{x}", .{ pl.index, pl.off }), |
| 594 | 560 | .load_nav => |pl| try writer.print("[nav:{d}]", .{@intFromEnum(pl)}), |
| ... | ... | @@ -621,6 +587,7 @@ const InstTracking = struct { |
| 621 | 587 | .undef, |
| 622 | 588 | .immediate, |
| 623 | 589 | .memory, |
| 590 | .indirect_load_frame, |
| 624 | 591 | .load_frame, |
| 625 | 592 | .lea_frame, |
| 626 | 593 | .load_nav, |
| ... | ... | @@ -724,6 +691,7 @@ const InstTracking = struct { |
| 724 | 691 | .undef, |
| 725 | 692 | .immediate, |
| 726 | 693 | .memory, |
| 694 | .indirect_load_frame, |
| 727 | 695 | .lea_frame, |
| 728 | 696 | .load_nav, |
| 729 | 697 | .lea_nav, |
| ... | ... | @@ -795,9 +763,9 @@ const InstTracking = struct { |
| 795 | 763 | } |
| 796 | 764 | } |
| 797 | 765 | |
| 798 | | fn die(self: *InstTracking, function: *CodeGen, inst: Air.Inst.Index) !void { |
| 766 | fn die(self: *InstTracking, function: *CodeGen, inst: Air.Inst.Index, comptime opts: FreeOptions) !void { |
| 799 | 767 | if (self.short == .dead) return; |
| 800 | | try function.freeValue(self.short); |
| 768 | try function.freeValue(self.short, opts); |
| 801 | 769 | if (self.long == .none) self.long = self.short; |
| 802 | 770 | self.short = .{ .dead = function.scope_generation }; |
| 803 | 771 | tracking_log.debug("{} => {} (death)", .{ inst, self.* }); |
| ... | ... | @@ -2356,13 +2324,12 @@ fn genBodyBlock(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2356 | 2324 | } |
| 2357 | 2325 | |
| 2358 | 2326 | fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2359 | | @setEvalBranchQuota(28_700); |
| 2327 | @setEvalBranchQuota(29_400); |
| 2360 | 2328 | const pt = cg.pt; |
| 2361 | 2329 | const zcu = pt.zcu; |
| 2362 | 2330 | const ip = &zcu.intern_pool; |
| 2363 | 2331 | const air_tags = cg.air.instructions.items(.tag); |
| 2364 | 2332 | const air_datas = cg.air.instructions.items(.data); |
| 2365 | | const use_old = cg.target.ofmt == .coff; |
| 2366 | 2333 | |
| 2367 | 2334 | for (body) |inst| { |
| 2368 | 2335 | if (cg.liveness.isUnused(inst) and !cg.air.mustLower(inst, ip)) continue; |
| ... | ... | @@ -2372,17 +2339,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 2372 | 2339 | cg.reused_operands = .initEmpty(); |
| 2373 | 2340 | try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1); |
| 2374 | 2341 | switch (air_tags[@intFromEnum(inst)]) { |
| 2375 | | // zig fmt: off |
| 2376 | | .select => try cg.airSelect(inst), |
| 2342 | .select => try cg.airSelect(inst), |
| 2377 | 2343 | .shuffle_one, .shuffle_two => @panic("x86_64 TODO: shuffle_one/shuffle_two"), |
| 2378 | | // zig fmt: on |
| 2379 | 2344 | |
| 2380 | 2345 | .arg => try cg.airArg(inst), |
| 2381 | | .add, .add_optimized, .add_wrap => |air_tag| if (use_old) try cg.airBinOp(inst, switch (air_tag) { |
| 2382 | | else => unreachable, |
| 2383 | | .add, .add_optimized => .add, |
| 2384 | | .add_wrap => .add_wrap, |
| 2385 | | }) else { |
| 2346 | .add, .add_optimized, .add_wrap => |air_tag| { |
| 2386 | 2347 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 2387 | 2348 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 2388 | 2349 | var res: [1]Temp = undefined; |
| ... | ... | @@ -3393,7 +3354,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 3393 | 3354 | .any, |
| 3394 | 3355 | }, |
| 3395 | 3356 | .patterns = &.{ |
| 3396 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 3357 | .{ .src = .{ |
| 3358 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 3359 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 3360 | .none, |
| 3361 | } }, |
| 3397 | 3362 | }, |
| 3398 | 3363 | .call_frame = .{ .alignment = .@"16" }, |
| 3399 | 3364 | .extra_temps = .{ |
| ... | ... | @@ -3527,8 +3492,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 3527 | 3492 | .call_frame = .{ .alignment = .@"16" }, |
| 3528 | 3493 | .extra_temps = .{ |
| 3529 | 3494 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 3530 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 3531 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 3495 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 3496 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 3532 | 3497 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| 3533 | 3498 | .unused, |
| 3534 | 3499 | .unused, |
| ... | ... | @@ -3563,8 +3528,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 3563 | 3528 | .call_frame = .{ .alignment = .@"16" }, |
| 3564 | 3529 | .extra_temps = .{ |
| 3565 | 3530 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 3566 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 3567 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 3531 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 3532 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 3568 | 3533 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| 3569 | 3534 | .unused, |
| 3570 | 3535 | .unused, |
| ... | ... | @@ -3600,8 +3565,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 3600 | 3565 | .call_frame = .{ .alignment = .@"16" }, |
| 3601 | 3566 | .extra_temps = .{ |
| 3602 | 3567 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 3603 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 3604 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 3568 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 3569 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 3605 | 3570 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| 3606 | 3571 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 3607 | 3572 | .unused, |
| ... | ... | @@ -3640,8 +3605,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 3640 | 3605 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 3641 | 3606 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 3642 | 3607 | .{ .type = .f32, .kind = .mem }, |
| 3643 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 3644 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 3608 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 3609 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 3645 | 3610 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| 3646 | 3611 | .unused, |
| 3647 | 3612 | .unused, |
| ... | ... | @@ -4021,6 +3986,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4021 | 3986 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 4022 | 3987 | } }, |
| 4023 | 3988 | }, .{ |
| 3989 | .required_abi = .gnu, |
| 4024 | 3990 | .required_features = .{ .x87, null, null, null }, |
| 4025 | 3991 | .src_constraints = .{ |
| 4026 | 3992 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -4051,6 +4017,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4051 | 4017 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 4052 | 4018 | } }, |
| 4053 | 4019 | }, .{ |
| 4020 | .required_abi = .msvc, |
| 4021 | .required_features = .{ .x87, null, null, null }, |
| 4022 | .src_constraints = .{ |
| 4023 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 4024 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 4025 | .any, |
| 4026 | }, |
| 4027 | .patterns = &.{ |
| 4028 | .{ .src = .{ .mem, .mem, .none } }, |
| 4029 | }, |
| 4030 | .extra_temps = .{ |
| 4031 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 4032 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 4033 | .{ .type = .u16, .kind = .mem }, |
| 4034 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 4035 | .unused, |
| 4036 | .unused, |
| 4037 | .unused, |
| 4038 | .unused, |
| 4039 | .unused, |
| 4040 | .unused, |
| 4041 | .unused, |
| 4042 | }, |
| 4043 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 4044 | .each = .{ .once = &.{ |
| 4045 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 4046 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 4047 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 4048 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 4049 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 4050 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 4051 | .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ }, |
| 4052 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 4053 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 4054 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 4055 | } }, |
| 4056 | }, .{ |
| 4057 | .required_abi = .gnu, |
| 4054 | 4058 | .required_features = .{ .x87, null, null, null }, |
| 4055 | 4059 | .src_constraints = .{ |
| 4056 | 4060 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -4082,6 +4086,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4082 | 4086 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 4083 | 4087 | } }, |
| 4084 | 4088 | }, .{ |
| 4089 | .required_abi = .msvc, |
| 4090 | .required_features = .{ .x87, null, null, null }, |
| 4091 | .src_constraints = .{ |
| 4092 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 4093 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 4094 | .any, |
| 4095 | }, |
| 4096 | .patterns = &.{ |
| 4097 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| 4098 | .{ .src = .{ .mem, .to_x87, .none } }, |
| 4099 | .{ .src = .{ .to_x87, .to_x87, .none } }, |
| 4100 | }, |
| 4101 | .extra_temps = .{ |
| 4102 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 4103 | .{ .type = .u16, .kind = .mem }, |
| 4104 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 4105 | .unused, |
| 4106 | .unused, |
| 4107 | .unused, |
| 4108 | .unused, |
| 4109 | .unused, |
| 4110 | .unused, |
| 4111 | .unused, |
| 4112 | .unused, |
| 4113 | }, |
| 4114 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 4115 | .each = .{ .once = &.{ |
| 4116 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 4117 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 4118 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 4119 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 4120 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 4121 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 4122 | .{ ._, .f_, .add, .tmp0t, .src1t, ._, ._ }, |
| 4123 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 4124 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 4125 | } }, |
| 4126 | }, .{ |
| 4127 | .required_abi = .gnu, |
| 4085 | 4128 | .required_features = .{ .x87, null, null, null }, |
| 4086 | 4129 | .src_constraints = .{ |
| 4087 | 4130 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -4115,6 +4158,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4115 | 4158 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 4116 | 4159 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 4117 | 4160 | } }, |
| 4161 | }, .{ |
| 4162 | .required_abi = .msvc, |
| 4163 | .required_features = .{ .x87, null, null, null }, |
| 4164 | .src_constraints = .{ |
| 4165 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 4166 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 4167 | .any, |
| 4168 | }, |
| 4169 | .patterns = &.{ |
| 4170 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 4171 | }, |
| 4172 | .extra_temps = .{ |
| 4173 | .{ .type = .u16, .kind = .mem }, |
| 4174 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 4175 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 4176 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 4177 | .unused, |
| 4178 | .unused, |
| 4179 | .unused, |
| 4180 | .unused, |
| 4181 | .unused, |
| 4182 | .unused, |
| 4183 | .unused, |
| 4184 | }, |
| 4185 | .dst_temps = .{ .mem, .unused }, |
| 4186 | .clobbers = .{ .eflags = true }, |
| 4187 | .each = .{ .once = &.{ |
| 4188 | .{ ._, .fn_cw, .st, .tmp0w, ._, ._, ._ }, |
| 4189 | .{ ._, ._, .movzx, .tmp1d, .memd(.tmp0b, 1), ._, ._ }, |
| 4190 | .{ ._, ._, .@"or", .memd(.tmp0b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 4191 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 4192 | .{ ._, ._, .mov, .memd(.tmp0b, 1), .tmp1b, ._, ._ }, |
| 4193 | .{ ._, ._, .mov, .tmp1p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 4194 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 4195 | .{ ._, .f_, .ld, .memia(.src1t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 4196 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 4197 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 4198 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 4199 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 4200 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 4201 | } }, |
| 4118 | 4202 | }, .{ |
| 4119 | 4203 | .required_features = .{ .sse, null, null, null }, |
| 4120 | 4204 | .src_constraints = .{ |
| ... | ... | @@ -4123,7 +4207,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4123 | 4207 | .any, |
| 4124 | 4208 | }, |
| 4125 | 4209 | .patterns = &.{ |
| 4126 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 4210 | .{ .src = .{ |
| 4211 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 4212 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 4213 | .none, |
| 4214 | } }, |
| 4127 | 4215 | }, |
| 4128 | 4216 | .call_frame = .{ .alignment = .@"16" }, |
| 4129 | 4217 | .extra_temps = .{ |
| ... | ... | @@ -4157,8 +4245,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4157 | 4245 | .call_frame = .{ .alignment = .@"16" }, |
| 4158 | 4246 | .extra_temps = .{ |
| 4159 | 4247 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 4160 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 4161 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 4248 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 4249 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 4162 | 4250 | .{ .type = .usize, .kind = .{ .extern_func = "__addtf3" } }, |
| 4163 | 4251 | .unused, |
| 4164 | 4252 | .unused, |
| ... | ... | @@ -4192,8 +4280,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4192 | 4280 | .call_frame = .{ .alignment = .@"16" }, |
| 4193 | 4281 | .extra_temps = .{ |
| 4194 | 4282 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 4195 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 4196 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 4283 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 4284 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 4197 | 4285 | .{ .type = .usize, .kind = .{ .extern_func = "__addtf3" } }, |
| 4198 | 4286 | .unused, |
| 4199 | 4287 | .unused, |
| ... | ... | @@ -4227,8 +4315,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4227 | 4315 | .call_frame = .{ .alignment = .@"16" }, |
| 4228 | 4316 | .extra_temps = .{ |
| 4229 | 4317 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 4230 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 4231 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 4318 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 4319 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 4232 | 4320 | .{ .type = .usize, .kind = .{ .extern_func = "__addtf3" } }, |
| 4233 | 4321 | .unused, |
| 4234 | 4322 | .unused, |
| ... | ... | @@ -4273,7 +4361,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 4273 | 4361 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 4274 | 4362 | }, |
| 4275 | 4363 | .add_safe => unreachable, |
| 4276 | | .add_sat => |air_tag| if (use_old) try cg.airAddSat(inst) else { |
| 4364 | .add_sat => |air_tag| { |
| 4277 | 4365 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 4278 | 4366 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 4279 | 4367 | var res: [1]Temp = undefined; |
| ... | ... | @@ -12838,11 +12926,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 12838 | 12926 | }; |
| 12839 | 12927 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 12840 | 12928 | }, |
| 12841 | | .sub, .sub_optimized, .sub_wrap => |air_tag| if (use_old) try cg.airBinOp(inst, switch (air_tag) { |
| 12842 | | else => unreachable, |
| 12843 | | .sub, .sub_optimized => .sub, |
| 12844 | | .sub_wrap => .sub_wrap, |
| 12845 | | }) else { |
| 12929 | .sub, .sub_optimized, .sub_wrap => |air_tag| { |
| 12846 | 12930 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 12847 | 12931 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 12848 | 12932 | var res: [1]Temp = undefined; |
| ... | ... | @@ -13825,7 +13909,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13825 | 13909 | .any, |
| 13826 | 13910 | }, |
| 13827 | 13911 | .patterns = &.{ |
| 13828 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 13912 | .{ .src = .{ |
| 13913 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 13914 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 13915 | .none, |
| 13916 | } }, |
| 13829 | 13917 | }, |
| 13830 | 13918 | .call_frame = .{ .alignment = .@"16" }, |
| 13831 | 13919 | .extra_temps = .{ |
| ... | ... | @@ -13959,8 +14047,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13959 | 14047 | .call_frame = .{ .alignment = .@"16" }, |
| 13960 | 14048 | .extra_temps = .{ |
| 13961 | 14049 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 13962 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 13963 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 14050 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 14051 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 13964 | 14052 | .{ .type = .usize, .kind = .{ .extern_func = "__subhf3" } }, |
| 13965 | 14053 | .unused, |
| 13966 | 14054 | .unused, |
| ... | ... | @@ -13995,8 +14083,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 13995 | 14083 | .call_frame = .{ .alignment = .@"16" }, |
| 13996 | 14084 | .extra_temps = .{ |
| 13997 | 14085 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 13998 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 13999 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 14086 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 14087 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 14000 | 14088 | .{ .type = .usize, .kind = .{ .extern_func = "__subhf3" } }, |
| 14001 | 14089 | .unused, |
| 14002 | 14090 | .unused, |
| ... | ... | @@ -14032,8 +14120,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14032 | 14120 | .call_frame = .{ .alignment = .@"16" }, |
| 14033 | 14121 | .extra_temps = .{ |
| 14034 | 14122 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 14035 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 14036 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 14123 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 14124 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 14037 | 14125 | .{ .type = .usize, .kind = .{ .extern_func = "__subhf3" } }, |
| 14038 | 14126 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 14039 | 14127 | .unused, |
| ... | ... | @@ -14072,8 +14160,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14072 | 14160 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 14073 | 14161 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 14074 | 14162 | .{ .type = .f32, .kind = .mem }, |
| 14075 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 14076 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 14163 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 14164 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 14077 | 14165 | .{ .type = .usize, .kind = .{ .extern_func = "__subhf3" } }, |
| 14078 | 14166 | .unused, |
| 14079 | 14167 | .unused, |
| ... | ... | @@ -14442,6 +14530,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14442 | 14530 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14443 | 14531 | } }, |
| 14444 | 14532 | }, .{ |
| 14533 | .required_abi = .gnu, |
| 14445 | 14534 | .required_features = .{ .x87, null, null, null }, |
| 14446 | 14535 | .src_constraints = .{ |
| 14447 | 14536 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -14472,6 +14561,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14472 | 14561 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 14473 | 14562 | } }, |
| 14474 | 14563 | }, .{ |
| 14564 | .required_abi = .msvc, |
| 14565 | .required_features = .{ .x87, null, null, null }, |
| 14566 | .src_constraints = .{ |
| 14567 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 14568 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 14569 | .any, |
| 14570 | }, |
| 14571 | .patterns = &.{ |
| 14572 | .{ .src = .{ .mem, .mem, .none } }, |
| 14573 | }, |
| 14574 | .extra_temps = .{ |
| 14575 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 14576 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 14577 | .{ .type = .u16, .kind = .mem }, |
| 14578 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 14579 | .unused, |
| 14580 | .unused, |
| 14581 | .unused, |
| 14582 | .unused, |
| 14583 | .unused, |
| 14584 | .unused, |
| 14585 | .unused, |
| 14586 | }, |
| 14587 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 14588 | .each = .{ .once = &.{ |
| 14589 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 14590 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 14591 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 14592 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 14593 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 14594 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 14595 | .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ }, |
| 14596 | .{ ._, .f_p, .sub, ._, ._, ._, ._ }, |
| 14597 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 14598 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 14599 | } }, |
| 14600 | }, .{ |
| 14601 | .required_abi = .gnu, |
| 14475 | 14602 | .required_features = .{ .x87, null, null, null }, |
| 14476 | 14603 | .src_constraints = .{ |
| 14477 | 14604 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -14501,6 +14628,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14501 | 14628 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 14502 | 14629 | } }, |
| 14503 | 14630 | }, .{ |
| 14631 | .required_abi = .msvc, |
| 14632 | .required_features = .{ .x87, null, null, null }, |
| 14633 | .src_constraints = .{ |
| 14634 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 14635 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 14636 | .any, |
| 14637 | }, |
| 14638 | .patterns = &.{ |
| 14639 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| 14640 | }, |
| 14641 | .extra_temps = .{ |
| 14642 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 14643 | .{ .type = .u16, .kind = .mem }, |
| 14644 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 14645 | .unused, |
| 14646 | .unused, |
| 14647 | .unused, |
| 14648 | .unused, |
| 14649 | .unused, |
| 14650 | .unused, |
| 14651 | .unused, |
| 14652 | .unused, |
| 14653 | }, |
| 14654 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 14655 | .each = .{ .once = &.{ |
| 14656 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 14657 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 14658 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 14659 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 14660 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 14661 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 14662 | .{ ._, .f_, .subr, .tmp0t, .src1t, ._, ._ }, |
| 14663 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 14664 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 14665 | } }, |
| 14666 | }, .{ |
| 14667 | .required_abi = .gnu, |
| 14504 | 14668 | .required_features = .{ .x87, null, null, null }, |
| 14505 | 14669 | .src_constraints = .{ |
| 14506 | 14670 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -14531,6 +14695,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14531 | 14695 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 14532 | 14696 | } }, |
| 14533 | 14697 | }, .{ |
| 14698 | .required_abi = .msvc, |
| 14699 | .required_features = .{ .x87, null, null, null }, |
| 14700 | .src_constraints = .{ |
| 14701 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 14702 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 14703 | .any, |
| 14704 | }, |
| 14705 | .patterns = &.{ |
| 14706 | .{ .src = .{ .mem, .to_x87, .none } }, |
| 14707 | .{ .src = .{ .to_x87, .to_x87, .none } }, |
| 14708 | }, |
| 14709 | .extra_temps = .{ |
| 14710 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 14711 | .{ .type = .u16, .kind = .mem }, |
| 14712 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 14713 | .unused, |
| 14714 | .unused, |
| 14715 | .unused, |
| 14716 | .unused, |
| 14717 | .unused, |
| 14718 | .unused, |
| 14719 | .unused, |
| 14720 | .unused, |
| 14721 | }, |
| 14722 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 14723 | .each = .{ .once = &.{ |
| 14724 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 14725 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 14726 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 14727 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 14728 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 14729 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 14730 | .{ ._, .f_, .sub, .tmp0t, .src1t, ._, ._ }, |
| 14731 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 14732 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 14733 | } }, |
| 14734 | }, .{ |
| 14735 | .required_abi = .gnu, |
| 14534 | 14736 | .required_features = .{ .x87, null, null, null }, |
| 14535 | 14737 | .src_constraints = .{ |
| 14536 | 14738 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -14564,6 +14766,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14564 | 14766 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 14565 | 14767 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14566 | 14768 | } }, |
| 14769 | }, .{ |
| 14770 | .required_abi = .msvc, |
| 14771 | .required_features = .{ .x87, null, null, null }, |
| 14772 | .src_constraints = .{ |
| 14773 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 14774 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 14775 | .any, |
| 14776 | }, |
| 14777 | .patterns = &.{ |
| 14778 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 14779 | }, |
| 14780 | .extra_temps = .{ |
| 14781 | .{ .type = .u16, .kind = .mem }, |
| 14782 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 14783 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 14784 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 14785 | .unused, |
| 14786 | .unused, |
| 14787 | .unused, |
| 14788 | .unused, |
| 14789 | .unused, |
| 14790 | .unused, |
| 14791 | .unused, |
| 14792 | }, |
| 14793 | .dst_temps = .{ .mem, .unused }, |
| 14794 | .clobbers = .{ .eflags = true }, |
| 14795 | .each = .{ .once = &.{ |
| 14796 | .{ ._, .fn_cw, .st, .tmp0w, ._, ._, ._ }, |
| 14797 | .{ ._, ._, .movzx, .tmp1d, .memd(.tmp0b, 1), ._, ._ }, |
| 14798 | .{ ._, ._, .@"or", .memd(.tmp0b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 14799 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 14800 | .{ ._, ._, .mov, .memd(.tmp0b, 1), .tmp1b, ._, ._ }, |
| 14801 | .{ ._, ._, .mov, .tmp1p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 14802 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 14803 | .{ ._, .f_, .ld, .memia(.src1t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 14804 | .{ ._, .f_p, .sub, ._, ._, ._, ._ }, |
| 14805 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 14806 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 14807 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 14808 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 14809 | } }, |
| 14567 | 14810 | }, .{ |
| 14568 | 14811 | .required_features = .{ .sse, null, null, null }, |
| 14569 | 14812 | .src_constraints = .{ |
| ... | ... | @@ -14572,7 +14815,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14572 | 14815 | .any, |
| 14573 | 14816 | }, |
| 14574 | 14817 | .patterns = &.{ |
| 14575 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 14818 | .{ .src = .{ |
| 14819 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 14820 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 14821 | .none, |
| 14822 | } }, |
| 14576 | 14823 | }, |
| 14577 | 14824 | .call_frame = .{ .alignment = .@"16" }, |
| 14578 | 14825 | .extra_temps = .{ |
| ... | ... | @@ -14606,8 +14853,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14606 | 14853 | .call_frame = .{ .alignment = .@"16" }, |
| 14607 | 14854 | .extra_temps = .{ |
| 14608 | 14855 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 14609 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 14610 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 14856 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 14857 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 14611 | 14858 | .{ .type = .usize, .kind = .{ .extern_func = "__subtf3" } }, |
| 14612 | 14859 | .unused, |
| 14613 | 14860 | .unused, |
| ... | ... | @@ -14641,8 +14888,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14641 | 14888 | .call_frame = .{ .alignment = .@"16" }, |
| 14642 | 14889 | .extra_temps = .{ |
| 14643 | 14890 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 14644 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 14645 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 14891 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 14892 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 14646 | 14893 | .{ .type = .usize, .kind = .{ .extern_func = "__subtf3" } }, |
| 14647 | 14894 | .unused, |
| 14648 | 14895 | .unused, |
| ... | ... | @@ -14676,8 +14923,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14676 | 14923 | .call_frame = .{ .alignment = .@"16" }, |
| 14677 | 14924 | .extra_temps = .{ |
| 14678 | 14925 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 14679 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 14680 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 14926 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 14927 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 14681 | 14928 | .{ .type = .usize, .kind = .{ .extern_func = "__subtf3" } }, |
| 14682 | 14929 | .unused, |
| 14683 | 14930 | .unused, |
| ... | ... | @@ -14722,7 +14969,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 14722 | 14969 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 14723 | 14970 | }, |
| 14724 | 14971 | .sub_safe => unreachable, |
| 14725 | | .sub_sat => |air_tag| if (use_old) try cg.airSubSat(inst) else { |
| 14972 | .sub_sat => |air_tag| { |
| 14726 | 14973 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 14727 | 14974 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 14728 | 14975 | var res: [1]Temp = undefined; |
| ... | ... | @@ -21556,7 +21803,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 21556 | 21803 | }; |
| 21557 | 21804 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 21558 | 21805 | }, |
| 21559 | | .mul, .mul_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, .mul) else { |
| 21806 | .mul, .mul_optimized => |air_tag| { |
| 21560 | 21807 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 21561 | 21808 | const ty = cg.typeOf(bin_op.lhs); |
| 21562 | 21809 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -23355,7 +23602,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23355 | 23602 | .any, |
| 23356 | 23603 | }, |
| 23357 | 23604 | .patterns = &.{ |
| 23358 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 23605 | .{ .src = .{ |
| 23606 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 23607 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 23608 | .none, |
| 23609 | } }, |
| 23359 | 23610 | }, |
| 23360 | 23611 | .call_frame = .{ .alignment = .@"16" }, |
| 23361 | 23612 | .extra_temps = .{ |
| ... | ... | @@ -23489,8 +23740,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23489 | 23740 | .call_frame = .{ .alignment = .@"16" }, |
| 23490 | 23741 | .extra_temps = .{ |
| 23491 | 23742 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 23492 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 23493 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 23743 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 23744 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 23494 | 23745 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 23495 | 23746 | .unused, |
| 23496 | 23747 | .unused, |
| ... | ... | @@ -23525,8 +23776,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23525 | 23776 | .call_frame = .{ .alignment = .@"16" }, |
| 23526 | 23777 | .extra_temps = .{ |
| 23527 | 23778 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 23528 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 23529 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 23779 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 23780 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 23530 | 23781 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 23531 | 23782 | .unused, |
| 23532 | 23783 | .unused, |
| ... | ... | @@ -23562,8 +23813,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23562 | 23813 | .call_frame = .{ .alignment = .@"16" }, |
| 23563 | 23814 | .extra_temps = .{ |
| 23564 | 23815 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 23565 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 23566 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 23816 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 23817 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 23567 | 23818 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 23568 | 23819 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 23569 | 23820 | .unused, |
| ... | ... | @@ -23602,8 +23853,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23602 | 23853 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 23603 | 23854 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 23604 | 23855 | .{ .type = .f32, .kind = .mem }, |
| 23605 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 23606 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 23856 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 23857 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 23607 | 23858 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 23608 | 23859 | .unused, |
| 23609 | 23860 | .unused, |
| ... | ... | @@ -23983,6 +24234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 23983 | 24234 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 23984 | 24235 | } }, |
| 23985 | 24236 | }, .{ |
| 24237 | .required_abi = .gnu, |
| 23986 | 24238 | .required_features = .{ .x87, null, null, null }, |
| 23987 | 24239 | .src_constraints = .{ |
| 23988 | 24240 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -24013,6 +24265,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24013 | 24265 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 24014 | 24266 | } }, |
| 24015 | 24267 | }, .{ |
| 24268 | .required_abi = .msvc, |
| 24269 | .required_features = .{ .x87, null, null, null }, |
| 24270 | .src_constraints = .{ |
| 24271 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 24272 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 24273 | .any, |
| 24274 | }, |
| 24275 | .patterns = &.{ |
| 24276 | .{ .src = .{ .mem, .mem, .none } }, |
| 24277 | }, |
| 24278 | .extra_temps = .{ |
| 24279 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 24280 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 24281 | .{ .type = .u16, .kind = .mem }, |
| 24282 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 24283 | .unused, |
| 24284 | .unused, |
| 24285 | .unused, |
| 24286 | .unused, |
| 24287 | .unused, |
| 24288 | .unused, |
| 24289 | .unused, |
| 24290 | }, |
| 24291 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 24292 | .each = .{ .once = &.{ |
| 24293 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 24294 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 24295 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 24296 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 24297 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 24298 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 24299 | .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ }, |
| 24300 | .{ ._, .f_p, .mul, ._, ._, ._, ._ }, |
| 24301 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 24302 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 24303 | } }, |
| 24304 | }, .{ |
| 24305 | .required_abi = .gnu, |
| 24016 | 24306 | .required_features = .{ .x87, null, null, null }, |
| 24017 | 24307 | .src_constraints = .{ |
| 24018 | 24308 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -24044,6 +24334,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24044 | 24334 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 24045 | 24335 | } }, |
| 24046 | 24336 | }, .{ |
| 24337 | .required_abi = .msvc, |
| 24338 | .required_features = .{ .x87, null, null, null }, |
| 24339 | .src_constraints = .{ |
| 24340 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 24341 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 24342 | .any, |
| 24343 | }, |
| 24344 | .patterns = &.{ |
| 24345 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| 24346 | .{ .src = .{ .mem, .to_x87, .none } }, |
| 24347 | .{ .src = .{ .to_x87, .to_x87, .none } }, |
| 24348 | }, |
| 24349 | .extra_temps = .{ |
| 24350 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 24351 | .{ .type = .u16, .kind = .mem }, |
| 24352 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 24353 | .unused, |
| 24354 | .unused, |
| 24355 | .unused, |
| 24356 | .unused, |
| 24357 | .unused, |
| 24358 | .unused, |
| 24359 | .unused, |
| 24360 | .unused, |
| 24361 | }, |
| 24362 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 24363 | .each = .{ .once = &.{ |
| 24364 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 24365 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 24366 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 24367 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 24368 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 24369 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 24370 | .{ ._, .f_, .mul, .tmp0t, .src1t, ._, ._ }, |
| 24371 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 24372 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 24373 | } }, |
| 24374 | }, .{ |
| 24375 | .required_abi = .gnu, |
| 24047 | 24376 | .required_features = .{ .x87, null, null, null }, |
| 24048 | 24377 | .src_constraints = .{ |
| 24049 | 24378 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -24077,6 +24406,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24077 | 24406 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 24078 | 24407 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 24079 | 24408 | } }, |
| 24409 | }, .{ |
| 24410 | .required_abi = .msvc, |
| 24411 | .required_features = .{ .x87, null, null, null }, |
| 24412 | .src_constraints = .{ |
| 24413 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 24414 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 24415 | .any, |
| 24416 | }, |
| 24417 | .patterns = &.{ |
| 24418 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 24419 | }, |
| 24420 | .extra_temps = .{ |
| 24421 | .{ .type = .u16, .kind = .mem }, |
| 24422 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 24423 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 24424 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 24425 | .unused, |
| 24426 | .unused, |
| 24427 | .unused, |
| 24428 | .unused, |
| 24429 | .unused, |
| 24430 | .unused, |
| 24431 | .unused, |
| 24432 | }, |
| 24433 | .dst_temps = .{ .mem, .unused }, |
| 24434 | .clobbers = .{ .eflags = true }, |
| 24435 | .each = .{ .once = &.{ |
| 24436 | .{ ._, .fn_cw, .st, .tmp0w, ._, ._, ._ }, |
| 24437 | .{ ._, ._, .movzx, .tmp1d, .memd(.tmp0b, 1), ._, ._ }, |
| 24438 | .{ ._, ._, .@"or", .memd(.tmp0b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 24439 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 24440 | .{ ._, ._, .mov, .memd(.tmp0b, 1), .tmp1b, ._, ._ }, |
| 24441 | .{ ._, ._, .mov, .tmp1p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 24442 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 24443 | .{ ._, .f_, .ld, .memia(.src1t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 24444 | .{ ._, .f_p, .mul, ._, ._, ._, ._ }, |
| 24445 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 24446 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 24447 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 24448 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 24449 | } }, |
| 24080 | 24450 | }, .{ |
| 24081 | 24451 | .required_features = .{ .sse, null, null, null }, |
| 24082 | 24452 | .src_constraints = .{ |
| ... | ... | @@ -24085,7 +24455,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24085 | 24455 | .any, |
| 24086 | 24456 | }, |
| 24087 | 24457 | .patterns = &.{ |
| 24088 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 24458 | .{ .src = .{ |
| 24459 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 24460 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 24461 | .none, |
| 24462 | } }, |
| 24089 | 24463 | }, |
| 24090 | 24464 | .call_frame = .{ .alignment = .@"16" }, |
| 24091 | 24465 | .extra_temps = .{ |
| ... | ... | @@ -24119,8 +24493,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24119 | 24493 | .call_frame = .{ .alignment = .@"16" }, |
| 24120 | 24494 | .extra_temps = .{ |
| 24121 | 24495 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 24122 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 24123 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 24496 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 24497 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 24124 | 24498 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 24125 | 24499 | .unused, |
| 24126 | 24500 | .unused, |
| ... | ... | @@ -24154,8 +24528,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24154 | 24528 | .call_frame = .{ .alignment = .@"16" }, |
| 24155 | 24529 | .extra_temps = .{ |
| 24156 | 24530 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 24157 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 24158 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 24531 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 24532 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 24159 | 24533 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 24160 | 24534 | .unused, |
| 24161 | 24535 | .unused, |
| ... | ... | @@ -24189,8 +24563,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24189 | 24563 | .call_frame = .{ .alignment = .@"16" }, |
| 24190 | 24564 | .extra_temps = .{ |
| 24191 | 24565 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 24192 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 24193 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 24566 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 24567 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 24194 | 24568 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 24195 | 24569 | .unused, |
| 24196 | 24570 | .unused, |
| ... | ... | @@ -24223,7 +24597,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 24223 | 24597 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 24224 | 24598 | }, |
| 24225 | 24599 | .mul_safe => unreachable, |
| 24226 | | .mul_wrap => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else { |
| 24600 | .mul_wrap => |air_tag| { |
| 24227 | 24601 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 24228 | 24602 | const ty = cg.typeOf(bin_op.lhs); |
| 24229 | 24603 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -26047,7 +26421,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26047 | 26421 | .any, |
| 26048 | 26422 | }, |
| 26049 | 26423 | .patterns = &.{ |
| 26050 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 26424 | .{ .src = .{ |
| 26425 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 26426 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 26427 | .none, |
| 26428 | } }, |
| 26051 | 26429 | }, |
| 26052 | 26430 | .call_frame = .{ .alignment = .@"16" }, |
| 26053 | 26431 | .extra_temps = .{ |
| ... | ... | @@ -26181,8 +26559,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26181 | 26559 | .call_frame = .{ .alignment = .@"16" }, |
| 26182 | 26560 | .extra_temps = .{ |
| 26183 | 26561 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 26184 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 26185 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 26562 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 26563 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 26186 | 26564 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 26187 | 26565 | .unused, |
| 26188 | 26566 | .unused, |
| ... | ... | @@ -26217,8 +26595,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26217 | 26595 | .call_frame = .{ .alignment = .@"16" }, |
| 26218 | 26596 | .extra_temps = .{ |
| 26219 | 26597 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 26220 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 26221 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 26598 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 26599 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 26222 | 26600 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 26223 | 26601 | .unused, |
| 26224 | 26602 | .unused, |
| ... | ... | @@ -26254,8 +26632,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26254 | 26632 | .call_frame = .{ .alignment = .@"16" }, |
| 26255 | 26633 | .extra_temps = .{ |
| 26256 | 26634 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 26257 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 26258 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 26635 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 26636 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 26259 | 26637 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 26260 | 26638 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 26261 | 26639 | .unused, |
| ... | ... | @@ -26294,8 +26672,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26294 | 26672 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 26295 | 26673 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 26296 | 26674 | .{ .type = .f32, .kind = .mem }, |
| 26297 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 26298 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 26675 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 26676 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 26299 | 26677 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 26300 | 26678 | .unused, |
| 26301 | 26679 | .unused, |
| ... | ... | @@ -26777,7 +27155,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26777 | 27155 | .any, |
| 26778 | 27156 | }, |
| 26779 | 27157 | .patterns = &.{ |
| 26780 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 27158 | .{ .src = .{ |
| 27159 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 27160 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 27161 | .none, |
| 27162 | } }, |
| 26781 | 27163 | }, |
| 26782 | 27164 | .call_frame = .{ .alignment = .@"16" }, |
| 26783 | 27165 | .extra_temps = .{ |
| ... | ... | @@ -26811,8 +27193,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26811 | 27193 | .call_frame = .{ .alignment = .@"16" }, |
| 26812 | 27194 | .extra_temps = .{ |
| 26813 | 27195 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 26814 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 26815 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 27196 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 27197 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 26816 | 27198 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 26817 | 27199 | .unused, |
| 26818 | 27200 | .unused, |
| ... | ... | @@ -26846,8 +27228,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26846 | 27228 | .call_frame = .{ .alignment = .@"16" }, |
| 26847 | 27229 | .extra_temps = .{ |
| 26848 | 27230 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 26849 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 26850 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 27231 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 27232 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 26851 | 27233 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 26852 | 27234 | .unused, |
| 26853 | 27235 | .unused, |
| ... | ... | @@ -26881,8 +27263,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26881 | 27263 | .call_frame = .{ .alignment = .@"16" }, |
| 26882 | 27264 | .extra_temps = .{ |
| 26883 | 27265 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 26884 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 26885 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 27266 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 27267 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 26886 | 27268 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 26887 | 27269 | .unused, |
| 26888 | 27270 | .unused, |
| ... | ... | @@ -26922,9 +27304,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 26922 | 27304 | }; |
| 26923 | 27305 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 26924 | 27306 | }, |
| 26925 | | .mul_sat => |air_tag| if (use_old) try cg.airMulSat(inst) else fallback: { |
| 27307 | .mul_sat => |air_tag| { |
| 26926 | 27308 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 26927 | | if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airMulSat(inst); |
| 26928 | 27309 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 26929 | 27310 | var res: [1]Temp = undefined; |
| 26930 | 27311 | cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ |
| ... | ... | @@ -32140,11 +32521,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32140 | 32521 | }; |
| 32141 | 32522 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 32142 | 32523 | }, |
| 32143 | | .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) { |
| 32144 | | else => unreachable, |
| 32145 | | .div_float, .div_float_optimized => .div_float, |
| 32146 | | .div_exact, .div_exact_optimized => .div_exact, |
| 32147 | | }) else { |
| 32524 | .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| { |
| 32148 | 32525 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 32149 | 32526 | const ty = cg.typeOf(bin_op.lhs); |
| 32150 | 32527 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -32187,7 +32564,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32187 | 32564 | .any, |
| 32188 | 32565 | }, |
| 32189 | 32566 | .patterns = &.{ |
| 32190 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 32567 | .{ .src = .{ |
| 32568 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 32569 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 32570 | .none, |
| 32571 | } }, |
| 32191 | 32572 | }, |
| 32192 | 32573 | .call_frame = .{ .alignment = .@"16" }, |
| 32193 | 32574 | .extra_temps = .{ |
| ... | ... | @@ -32321,8 +32702,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32321 | 32702 | .call_frame = .{ .alignment = .@"16" }, |
| 32322 | 32703 | .extra_temps = .{ |
| 32323 | 32704 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32324 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 32325 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 32705 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 32706 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 32326 | 32707 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 32327 | 32708 | .unused, |
| 32328 | 32709 | .unused, |
| ... | ... | @@ -32357,8 +32738,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32357 | 32738 | .call_frame = .{ .alignment = .@"16" }, |
| 32358 | 32739 | .extra_temps = .{ |
| 32359 | 32740 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32360 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 32361 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 32741 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 32742 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 32362 | 32743 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 32363 | 32744 | .unused, |
| 32364 | 32745 | .unused, |
| ... | ... | @@ -32394,8 +32775,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32394 | 32775 | .call_frame = .{ .alignment = .@"16" }, |
| 32395 | 32776 | .extra_temps = .{ |
| 32396 | 32777 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32397 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 32398 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 32778 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 32779 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 32399 | 32780 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 32400 | 32781 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 32401 | 32782 | .unused, |
| ... | ... | @@ -32434,8 +32815,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32434 | 32815 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32435 | 32816 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 32436 | 32817 | .{ .type = .f32, .kind = .mem }, |
| 32437 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 32438 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 32818 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 32819 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 32439 | 32820 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 32440 | 32821 | .unused, |
| 32441 | 32822 | .unused, |
| ... | ... | @@ -32805,6 +33186,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32805 | 33186 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32806 | 33187 | } }, |
| 32807 | 33188 | }, .{ |
| 33189 | .required_abi = .gnu, |
| 32808 | 33190 | .required_features = .{ .x87, null, null, null }, |
| 32809 | 33191 | .src_constraints = .{ |
| 32810 | 33192 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -32835,6 +33217,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32835 | 33217 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 32836 | 33218 | } }, |
| 32837 | 33219 | }, .{ |
| 33220 | .required_abi = .msvc, |
| 33221 | .required_features = .{ .x87, null, null, null }, |
| 33222 | .src_constraints = .{ |
| 33223 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 33224 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 33225 | .any, |
| 33226 | }, |
| 33227 | .patterns = &.{ |
| 33228 | .{ .src = .{ .mem, .mem, .none } }, |
| 33229 | }, |
| 33230 | .extra_temps = .{ |
| 33231 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 33232 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 33233 | .{ .type = .u16, .kind = .mem }, |
| 33234 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 33235 | .unused, |
| 33236 | .unused, |
| 33237 | .unused, |
| 33238 | .unused, |
| 33239 | .unused, |
| 33240 | .unused, |
| 33241 | .unused, |
| 33242 | }, |
| 33243 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 33244 | .each = .{ .once = &.{ |
| 33245 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 33246 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 33247 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 33248 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 33249 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 33250 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 33251 | .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ }, |
| 33252 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 33253 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 33254 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 33255 | } }, |
| 33256 | }, .{ |
| 33257 | .required_abi = .gnu, |
| 32838 | 33258 | .required_features = .{ .x87, null, null, null }, |
| 32839 | 33259 | .src_constraints = .{ |
| 32840 | 33260 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -32864,6 +33284,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32864 | 33284 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 32865 | 33285 | } }, |
| 32866 | 33286 | }, .{ |
| 33287 | .required_abi = .msvc, |
| 33288 | .required_features = .{ .x87, null, null, null }, |
| 33289 | .src_constraints = .{ |
| 33290 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 33291 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 33292 | .any, |
| 33293 | }, |
| 33294 | .patterns = &.{ |
| 33295 | .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, |
| 33296 | }, |
| 33297 | .extra_temps = .{ |
| 33298 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 33299 | .{ .type = .u16, .kind = .mem }, |
| 33300 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 33301 | .unused, |
| 33302 | .unused, |
| 33303 | .unused, |
| 33304 | .unused, |
| 33305 | .unused, |
| 33306 | .unused, |
| 33307 | .unused, |
| 33308 | .unused, |
| 33309 | }, |
| 33310 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 33311 | .each = .{ .once = &.{ |
| 33312 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 33313 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 33314 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 33315 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 33316 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 33317 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 33318 | .{ ._, .f_, .divr, .tmp0t, .src1t, ._, ._ }, |
| 33319 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 33320 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 33321 | } }, |
| 33322 | }, .{ |
| 33323 | .required_abi = .gnu, |
| 32867 | 33324 | .required_features = .{ .x87, null, null, null }, |
| 32868 | 33325 | .src_constraints = .{ |
| 32869 | 33326 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -32894,6 +33351,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32894 | 33351 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 32895 | 33352 | } }, |
| 32896 | 33353 | }, .{ |
| 33354 | .required_abi = .msvc, |
| 33355 | .required_features = .{ .x87, null, null, null }, |
| 33356 | .src_constraints = .{ |
| 33357 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 33358 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 33359 | .any, |
| 33360 | }, |
| 33361 | .patterns = &.{ |
| 33362 | .{ .src = .{ .mem, .to_x87, .none } }, |
| 33363 | .{ .src = .{ .to_x87, .to_x87, .none } }, |
| 33364 | }, |
| 33365 | .extra_temps = .{ |
| 33366 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 33367 | .{ .type = .u16, .kind = .mem }, |
| 33368 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 33369 | .unused, |
| 33370 | .unused, |
| 33371 | .unused, |
| 33372 | .unused, |
| 33373 | .unused, |
| 33374 | .unused, |
| 33375 | .unused, |
| 33376 | .unused, |
| 33377 | }, |
| 33378 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 33379 | .each = .{ .once = &.{ |
| 33380 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 33381 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 33382 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 33383 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 33384 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 33385 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 33386 | .{ ._, .f_, .div, .tmp0t, .src1t, ._, ._ }, |
| 33387 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 33388 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 33389 | } }, |
| 33390 | }, .{ |
| 33391 | .required_abi = .gnu, |
| 32897 | 33392 | .required_features = .{ .x87, null, null, null }, |
| 32898 | 33393 | .src_constraints = .{ |
| 32899 | 33394 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -32927,6 +33422,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32927 | 33422 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 32928 | 33423 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 32929 | 33424 | } }, |
| 33425 | }, .{ |
| 33426 | .required_abi = .msvc, |
| 33427 | .required_features = .{ .x87, null, null, null }, |
| 33428 | .src_constraints = .{ |
| 33429 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 33430 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 33431 | .any, |
| 33432 | }, |
| 33433 | .patterns = &.{ |
| 33434 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 33435 | }, |
| 33436 | .extra_temps = .{ |
| 33437 | .{ .type = .u16, .kind = .mem }, |
| 33438 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33439 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 33440 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 33441 | .unused, |
| 33442 | .unused, |
| 33443 | .unused, |
| 33444 | .unused, |
| 33445 | .unused, |
| 33446 | .unused, |
| 33447 | .unused, |
| 33448 | }, |
| 33449 | .dst_temps = .{ .mem, .unused }, |
| 33450 | .clobbers = .{ .eflags = true }, |
| 33451 | .each = .{ .once = &.{ |
| 33452 | .{ ._, .fn_cw, .st, .tmp0w, ._, ._, ._ }, |
| 33453 | .{ ._, ._, .movzx, .tmp1d, .memd(.tmp0b, 1), ._, ._ }, |
| 33454 | .{ ._, ._, .@"or", .memd(.tmp0b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 33455 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 33456 | .{ ._, ._, .mov, .memd(.tmp0b, 1), .tmp1b, ._, ._ }, |
| 33457 | .{ ._, ._, .mov, .tmp1p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 33458 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 33459 | .{ ._, .f_, .ld, .memia(.src1t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 33460 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 33461 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 33462 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 33463 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33464 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 33465 | } }, |
| 32930 | 33466 | }, .{ |
| 32931 | 33467 | .required_features = .{ .sse, null, null, null }, |
| 32932 | 33468 | .src_constraints = .{ |
| ... | ... | @@ -32935,7 +33471,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32935 | 33471 | .any, |
| 32936 | 33472 | }, |
| 32937 | 33473 | .patterns = &.{ |
| 32938 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 33474 | .{ .src = .{ |
| 33475 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 33476 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 33477 | .none, |
| 33478 | } }, |
| 32939 | 33479 | }, |
| 32940 | 33480 | .call_frame = .{ .alignment = .@"16" }, |
| 32941 | 33481 | .extra_temps = .{ |
| ... | ... | @@ -32969,8 +33509,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 32969 | 33509 | .call_frame = .{ .alignment = .@"16" }, |
| 32970 | 33510 | .extra_temps = .{ |
| 32971 | 33511 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 32972 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 32973 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 33512 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 33513 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 32974 | 33514 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 32975 | 33515 | .unused, |
| 32976 | 33516 | .unused, |
| ... | ... | @@ -33004,8 +33544,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33004 | 33544 | .call_frame = .{ .alignment = .@"16" }, |
| 33005 | 33545 | .extra_temps = .{ |
| 33006 | 33546 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33007 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 33008 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 33547 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 33548 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 33009 | 33549 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 33010 | 33550 | .unused, |
| 33011 | 33551 | .unused, |
| ... | ... | @@ -33039,8 +33579,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33039 | 33579 | .call_frame = .{ .alignment = .@"16" }, |
| 33040 | 33580 | .extra_temps = .{ |
| 33041 | 33581 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33042 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 33043 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 33582 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 33583 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 33044 | 33584 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 33045 | 33585 | .unused, |
| 33046 | 33586 | .unused, |
| ... | ... | @@ -33075,7 +33615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33075 | 33615 | }; |
| 33076 | 33616 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 33077 | 33617 | }, |
| 33078 | | .div_trunc => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else { |
| 33618 | .div_trunc => |air_tag| { |
| 33079 | 33619 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 33080 | 33620 | const ty = cg.typeOf(bin_op.lhs); |
| 33081 | 33621 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -33121,7 +33661,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33121 | 33661 | .any, |
| 33122 | 33662 | }, |
| 33123 | 33663 | .patterns = &.{ |
| 33124 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 33664 | .{ .src = .{ |
| 33665 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 33666 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 33667 | .none, |
| 33668 | } }, |
| 33125 | 33669 | }, |
| 33126 | 33670 | .call_frame = .{ .alignment = .@"16" }, |
| 33127 | 33671 | .extra_temps = .{ |
| ... | ... | @@ -33265,8 +33809,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33265 | 33809 | .call_frame = .{ .alignment = .@"16" }, |
| 33266 | 33810 | .extra_temps = .{ |
| 33267 | 33811 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33268 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 33269 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 33812 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 33813 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 33270 | 33814 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 33271 | 33815 | .{ .type = .usize, .kind = .{ .extern_func = "__trunch" } }, |
| 33272 | 33816 | .unused, |
| ... | ... | @@ -33302,8 +33846,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33302 | 33846 | .call_frame = .{ .alignment = .@"16" }, |
| 33303 | 33847 | .extra_temps = .{ |
| 33304 | 33848 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33305 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 33306 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 33849 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 33850 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 33307 | 33851 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 33308 | 33852 | .{ .type = .usize, .kind = .{ .extern_func = "__trunch" } }, |
| 33309 | 33853 | .unused, |
| ... | ... | @@ -33340,8 +33884,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33340 | 33884 | .call_frame = .{ .alignment = .@"16" }, |
| 33341 | 33885 | .extra_temps = .{ |
| 33342 | 33886 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33343 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 33344 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 33887 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 33888 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 33345 | 33889 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 33346 | 33890 | .{ .type = .usize, .kind = .{ .extern_func = "__trunch" } }, |
| 33347 | 33891 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -33381,8 +33925,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33381 | 33925 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33382 | 33926 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 33383 | 33927 | .{ .type = .f32, .kind = .mem }, |
| 33384 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 33385 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 33928 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 33929 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 33386 | 33930 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 33387 | 33931 | .{ .type = .usize, .kind = .{ .extern_func = "__trunch" } }, |
| 33388 | 33932 | .unused, |
| ... | ... | @@ -33448,7 +33992,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33448 | 33992 | .any, |
| 33449 | 33993 | }, |
| 33450 | 33994 | .patterns = &.{ |
| 33451 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, |
| 33995 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .to_mem, .none } }, |
| 33452 | 33996 | }, |
| 33453 | 33997 | .call_frame = .{ .alignment = .@"16" }, |
| 33454 | 33998 | .extra_temps = .{ |
| ... | ... | @@ -33515,7 +34059,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33515 | 34059 | .call_frame = .{ .alignment = .@"16" }, |
| 33516 | 34060 | .extra_temps = .{ |
| 33517 | 34061 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33518 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 34062 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 33519 | 34063 | .{ .type = .usize, .kind = .{ .extern_func = "truncf" } }, |
| 33520 | 34064 | .unused, |
| 33521 | 34065 | .unused, |
| ... | ... | @@ -33661,7 +34205,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33661 | 34205 | .any, |
| 33662 | 34206 | }, |
| 33663 | 34207 | .patterns = &.{ |
| 33664 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, |
| 34208 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .to_mem, .none } }, |
| 33665 | 34209 | }, |
| 33666 | 34210 | .call_frame = .{ .alignment = .@"16" }, |
| 33667 | 34211 | .extra_temps = .{ |
| ... | ... | @@ -33691,7 +34235,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33691 | 34235 | .any, |
| 33692 | 34236 | }, |
| 33693 | 34237 | .patterns = &.{ |
| 33694 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 34238 | .{ .src = .{ |
| 34239 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 34240 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 34241 | .none, |
| 34242 | } }, |
| 33695 | 34243 | }, |
| 33696 | 34244 | .call_frame = .{ .alignment = .@"16" }, |
| 33697 | 34245 | .extra_temps = .{ |
| ... | ... | @@ -33842,7 +34390,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33842 | 34390 | .call_frame = .{ .alignment = .@"16" }, |
| 33843 | 34391 | .extra_temps = .{ |
| 33844 | 34392 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33845 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 34393 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 33846 | 34394 | .{ .type = .usize, .kind = .{ .extern_func = "trunc" } }, |
| 33847 | 34395 | .unused, |
| 33848 | 34396 | .unused, |
| ... | ... | @@ -33877,8 +34425,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33877 | 34425 | .call_frame = .{ .alignment = .@"16" }, |
| 33878 | 34426 | .extra_temps = .{ |
| 33879 | 34427 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 33880 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 33881 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 34428 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 34429 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 33882 | 34430 | .{ .type = .usize, .kind = .{ .extern_func = "__divdf3" } }, |
| 33883 | 34431 | .{ .type = .usize, .kind = .{ .extern_func = "trunc" } }, |
| 33884 | 34432 | .unused, |
| ... | ... | @@ -33903,6 +34451,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33903 | 34451 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33904 | 34452 | } }, |
| 33905 | 34453 | }, .{ |
| 34454 | .required_abi = .gnu, |
| 34455 | .required_cc_abi = .sysv64, |
| 33906 | 34456 | .required_features = .{ .x87, null, null, null }, |
| 33907 | 34457 | .src_constraints = .{ |
| 33908 | 34458 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -33936,6 +34486,88 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33936 | 34486 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 33937 | 34487 | } }, |
| 33938 | 34488 | }, .{ |
| 34489 | .required_abi = .gnu, |
| 34490 | .required_cc_abi = .win64, |
| 34491 | .required_features = .{ .x87, null, null, null }, |
| 34492 | .src_constraints = .{ |
| 34493 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 34494 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 34495 | .any, |
| 34496 | }, |
| 34497 | .patterns = &.{ |
| 34498 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 34499 | }, |
| 34500 | .call_frame = .{ .alignment = .@"16" }, |
| 34501 | .extra_temps = .{ |
| 34502 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 34503 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 34504 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 34505 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34506 | .{ .type = .usize, .kind = .{ .extern_func = "__truncx" } }, |
| 34507 | .unused, |
| 34508 | .unused, |
| 34509 | .unused, |
| 34510 | .unused, |
| 34511 | .unused, |
| 34512 | .unused, |
| 34513 | }, |
| 34514 | .dst_temps = .{ .mem, .unused }, |
| 34515 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 34516 | .each = .{ .once = &.{ |
| 34517 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 34518 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 34519 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 34520 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 34521 | .{ ._, .f_p, .st, .lea(.tmp2t), ._, ._, ._ }, |
| 34522 | .{ ._, ._, .mov, .tmp3p, .tmp2p, ._, ._ }, |
| 34523 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 34524 | } }, |
| 34525 | }, .{ |
| 34526 | .required_abi = .msvc, |
| 34527 | .required_cc_abi = .win64, |
| 34528 | .required_features = .{ .x87, null, null, null }, |
| 34529 | .src_constraints = .{ |
| 34530 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 34531 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 34532 | .any, |
| 34533 | }, |
| 34534 | .patterns = &.{ |
| 34535 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 34536 | }, |
| 34537 | .call_frame = .{ .alignment = .@"16" }, |
| 34538 | .extra_temps = .{ |
| 34539 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 34540 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 34541 | .{ .type = .u16, .kind = .mem }, |
| 34542 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 34543 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34544 | .{ .type = .usize, .kind = .{ .extern_func = "__truncx" } }, |
| 34545 | .unused, |
| 34546 | .unused, |
| 34547 | .unused, |
| 34548 | .unused, |
| 34549 | .unused, |
| 34550 | }, |
| 34551 | .dst_temps = .{ .mem, .unused }, |
| 34552 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 34553 | .each = .{ .once = &.{ |
| 34554 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 34555 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 34556 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 34557 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 34558 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 34559 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 34560 | .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ }, |
| 34561 | .{ ._, ._, .lea, .tmp3p, .mem(.dst0), ._, ._ }, |
| 34562 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 34563 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 34564 | .{ ._, .f_p, .st, .lea(.tmp3t), ._, ._, ._ }, |
| 34565 | .{ ._, ._, .mov, .tmp4p, .tmp3p, ._, ._ }, |
| 34566 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 34567 | } }, |
| 34568 | }, .{ |
| 34569 | .required_abi = .gnu, |
| 34570 | .required_cc_abi = .sysv64, |
| 33939 | 34571 | .required_features = .{ .x87, null, null, null }, |
| 33940 | 34572 | .src_constraints = .{ |
| 33941 | 34573 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -33973,6 +34605,92 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33973 | 34605 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 33974 | 34606 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 33975 | 34607 | } }, |
| 34608 | }, .{ |
| 34609 | .required_abi = .gnu, |
| 34610 | .required_cc_abi = .win64, |
| 34611 | .required_features = .{ .x87, null, null, null }, |
| 34612 | .src_constraints = .{ |
| 34613 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 34614 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 34615 | .any, |
| 34616 | }, |
| 34617 | .patterns = &.{ |
| 34618 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 34619 | }, |
| 34620 | .call_frame = .{ .alignment = .@"16" }, |
| 34621 | .extra_temps = .{ |
| 34622 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34623 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 34624 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 34625 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 34626 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34627 | .{ .type = .usize, .kind = .{ .extern_func = "__truncx" } }, |
| 34628 | .unused, |
| 34629 | .unused, |
| 34630 | .unused, |
| 34631 | .unused, |
| 34632 | .unused, |
| 34633 | }, |
| 34634 | .dst_temps = .{ .mem, .unused }, |
| 34635 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 34636 | .each = .{ .once = &.{ |
| 34637 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 34638 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 34639 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 34640 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 34641 | .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 34642 | .{ ._, .f_p, .st, .lea(.tmp3t), ._, ._, ._ }, |
| 34643 | .{ ._, ._, .mov, .tmp4p, .tmp3p, ._, ._ }, |
| 34644 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 34645 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 34646 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 34647 | } }, |
| 34648 | }, .{ |
| 34649 | .required_abi = .msvc, |
| 34650 | .required_cc_abi = .win64, |
| 34651 | .required_features = .{ .x87, null, null, null }, |
| 34652 | .src_constraints = .{ |
| 34653 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 34654 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 34655 | .any, |
| 34656 | }, |
| 34657 | .patterns = &.{ |
| 34658 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 34659 | }, |
| 34660 | .call_frame = .{ .alignment = .@"16" }, |
| 34661 | .extra_temps = .{ |
| 34662 | .{ .type = .u16, .kind = .mem }, |
| 34663 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34664 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 34665 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 34666 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 34667 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34668 | .{ .type = .usize, .kind = .{ .extern_func = "__truncx" } }, |
| 34669 | .unused, |
| 34670 | .unused, |
| 34671 | .unused, |
| 34672 | .unused, |
| 34673 | }, |
| 34674 | .dst_temps = .{ .mem, .unused }, |
| 34675 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 34676 | .each = .{ .once = &.{ |
| 34677 | .{ ._, .fn_cw, .st, .tmp0w, ._, ._, ._ }, |
| 34678 | .{ ._, ._, .movzx, .tmp1d, .memd(.tmp0b, 1), ._, ._ }, |
| 34679 | .{ ._, ._, .@"or", .memd(.tmp0b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 34680 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 34681 | .{ ._, ._, .mov, .memd(.tmp0b, 1), .tmp1b, ._, ._ }, |
| 34682 | .{ ._, ._, .mov, .tmp1p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 34683 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 34684 | .{ ._, .f_, .ld, .memia(.src1t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 34685 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 34686 | .{ ._, ._, .lea, .tmp4p, .memia(.dst0, .tmp1, .add_unaligned_size), ._, ._ }, |
| 34687 | .{ ._, .f_p, .st, .lea(.tmp4t), ._, ._, ._ }, |
| 34688 | .{ ._, ._, .mov, .tmp5p, .tmp4p, ._, ._ }, |
| 34689 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 34690 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 34691 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 34692 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 34693 | } }, |
| 33976 | 34694 | }, .{ |
| 33977 | 34695 | .required_features = .{ .sse, null, null, null }, |
| 33978 | 34696 | .src_constraints = .{ |
| ... | ... | @@ -33981,7 +34699,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 33981 | 34699 | .any, |
| 33982 | 34700 | }, |
| 33983 | 34701 | .patterns = &.{ |
| 33984 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 34702 | .{ .src = .{ |
| 34703 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 34704 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 34705 | .none, |
| 34706 | } }, |
| 33985 | 34707 | }, |
| 33986 | 34708 | .call_frame = .{ .alignment = .@"16" }, |
| 33987 | 34709 | .extra_temps = .{ |
| ... | ... | @@ -34016,8 +34738,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34016 | 34738 | .call_frame = .{ .alignment = .@"16" }, |
| 34017 | 34739 | .extra_temps = .{ |
| 34018 | 34740 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34019 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 34020 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 34741 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 34742 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34021 | 34743 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 34022 | 34744 | .{ .type = .usize, .kind = .{ .extern_func = "truncq" } }, |
| 34023 | 34745 | .unused, |
| ... | ... | @@ -34052,8 +34774,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34052 | 34774 | .call_frame = .{ .alignment = .@"16" }, |
| 34053 | 34775 | .extra_temps = .{ |
| 34054 | 34776 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34055 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 34056 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 34777 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 34778 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34057 | 34779 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 34058 | 34780 | .{ .type = .usize, .kind = .{ .extern_func = "truncq" } }, |
| 34059 | 34781 | .unused, |
| ... | ... | @@ -34088,8 +34810,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34088 | 34810 | .call_frame = .{ .alignment = .@"16" }, |
| 34089 | 34811 | .extra_temps = .{ |
| 34090 | 34812 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34091 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 34092 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 34813 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 34814 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34093 | 34815 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 34094 | 34816 | .{ .type = .usize, .kind = .{ .extern_func = "truncq" } }, |
| 34095 | 34817 | .unused, |
| ... | ... | @@ -34124,11 +34846,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34124 | 34846 | }; |
| 34125 | 34847 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 34126 | 34848 | }, |
| 34127 | | .div_trunc_optimized, .div_floor_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) { |
| 34128 | | else => unreachable, |
| 34129 | | .div_trunc_optimized => .div_trunc, |
| 34130 | | .div_floor_optimized => .div_floor, |
| 34131 | | }) else { |
| 34849 | .div_trunc_optimized, .div_floor_optimized => |air_tag| { |
| 34132 | 34850 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 34133 | 34851 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 34134 | 34852 | var res: [1]Temp = undefined; |
| ... | ... | @@ -34177,7 +34895,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34177 | 34895 | .any, |
| 34178 | 34896 | }, |
| 34179 | 34897 | .patterns = &.{ |
| 34180 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 34898 | .{ .src = .{ |
| 34899 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 34900 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 34901 | .none, |
| 34902 | } }, |
| 34181 | 34903 | }, |
| 34182 | 34904 | .call_frame = .{ .alignment = .@"16" }, |
| 34183 | 34905 | .extra_temps = .{ |
| ... | ... | @@ -34319,8 +35041,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34319 | 35041 | .call_frame = .{ .alignment = .@"16" }, |
| 34320 | 35042 | .extra_temps = .{ |
| 34321 | 35043 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34322 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 34323 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 35044 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 35045 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34324 | 35046 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 34325 | 35047 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 34326 | 35048 | else => unreachable, |
| ... | ... | @@ -34360,8 +35082,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34360 | 35082 | .call_frame = .{ .alignment = .@"16" }, |
| 34361 | 35083 | .extra_temps = .{ |
| 34362 | 35084 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34363 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 34364 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 35085 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 35086 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34365 | 35087 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 34366 | 35088 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 34367 | 35089 | else => unreachable, |
| ... | ... | @@ -34402,8 +35124,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34402 | 35124 | .call_frame = .{ .alignment = .@"16" }, |
| 34403 | 35125 | .extra_temps = .{ |
| 34404 | 35126 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34405 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 34406 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 35127 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 35128 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34407 | 35129 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 34408 | 35130 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 34409 | 35131 | else => unreachable, |
| ... | ... | @@ -34447,8 +35169,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34447 | 35169 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34448 | 35170 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 34449 | 35171 | .{ .type = .f32, .kind = .mem }, |
| 34450 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 34451 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 35172 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 35173 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34452 | 35174 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 34453 | 35175 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 34454 | 35176 | else => unreachable, |
| ... | ... | @@ -34518,7 +35240,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34518 | 35240 | .any, |
| 34519 | 35241 | }, |
| 34520 | 35242 | .patterns = &.{ |
| 34521 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, |
| 35243 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .to_mem, .none } }, |
| 34522 | 35244 | }, |
| 34523 | 35245 | .call_frame = .{ .alignment = .@"16" }, |
| 34524 | 35246 | .extra_temps = .{ |
| ... | ... | @@ -34589,7 +35311,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34589 | 35311 | .call_frame = .{ .alignment = .@"16" }, |
| 34590 | 35312 | .extra_temps = .{ |
| 34591 | 35313 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34592 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 35314 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 34593 | 35315 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 34594 | 35316 | else => unreachable, |
| 34595 | 35317 | .zero => "truncf", |
| ... | ... | @@ -34739,7 +35461,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34739 | 35461 | .any, |
| 34740 | 35462 | }, |
| 34741 | 35463 | .patterns = &.{ |
| 34742 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, |
| 35464 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .to_mem, .none } }, |
| 34743 | 35465 | }, |
| 34744 | 35466 | .call_frame = .{ .alignment = .@"16" }, |
| 34745 | 35467 | .extra_temps = .{ |
| ... | ... | @@ -34773,7 +35495,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34773 | 35495 | .any, |
| 34774 | 35496 | }, |
| 34775 | 35497 | .patterns = &.{ |
| 34776 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 35498 | .{ .src = .{ |
| 35499 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 35500 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 35501 | .none, |
| 35502 | } }, |
| 34777 | 35503 | }, |
| 34778 | 35504 | .call_frame = .{ .alignment = .@"16" }, |
| 34779 | 35505 | .extra_temps = .{ |
| ... | ... | @@ -34928,7 +35654,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34928 | 35654 | .call_frame = .{ .alignment = .@"16" }, |
| 34929 | 35655 | .extra_temps = .{ |
| 34930 | 35656 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34931 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 35657 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 34932 | 35658 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 34933 | 35659 | else => unreachable, |
| 34934 | 35660 | .zero => "trunc", |
| ... | ... | @@ -34967,8 +35693,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34967 | 35693 | .call_frame = .{ .alignment = .@"16" }, |
| 34968 | 35694 | .extra_temps = .{ |
| 34969 | 35695 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 34970 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 34971 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 35696 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 35697 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 34972 | 35698 | .{ .type = .usize, .kind = .{ .extern_func = "__divdf3" } }, |
| 34973 | 35699 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 34974 | 35700 | else => unreachable, |
| ... | ... | @@ -34997,6 +35723,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 34997 | 35723 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 34998 | 35724 | } }, |
| 34999 | 35725 | }, .{ |
| 35726 | .required_abi = .gnu, |
| 35727 | .required_cc_abi = .sysv64, |
| 35000 | 35728 | .required_features = .{ .x87, null, null, null }, |
| 35001 | 35729 | .src_constraints = .{ |
| 35002 | 35730 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -35004,7 +35732,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35004 | 35732 | .any, |
| 35005 | 35733 | }, |
| 35006 | 35734 | .patterns = &.{ |
| 35007 | | .{ .src = .{ .mem, .mem, .none } }, |
| 35735 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 35008 | 35736 | }, |
| 35009 | 35737 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 35010 | 35738 | .extra_temps = .{ |
| ... | ... | @@ -35034,6 +35762,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35034 | 35762 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 35035 | 35763 | } }, |
| 35036 | 35764 | }, .{ |
| 35765 | .required_abi = .gnu, |
| 35766 | .required_cc_abi = .win64, |
| 35037 | 35767 | .required_features = .{ .x87, null, null, null }, |
| 35038 | 35768 | .src_constraints = .{ |
| 35039 | 35769 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -35041,12 +35771,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35041 | 35771 | .any, |
| 35042 | 35772 | }, |
| 35043 | 35773 | .patterns = &.{ |
| 35044 | | .{ .src = .{ .to_x87, .mem, .none } }, |
| 35774 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 35045 | 35775 | }, |
| 35046 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 35776 | .call_frame = .{ .alignment = .@"16" }, |
| 35047 | 35777 | .extra_temps = .{ |
| 35778 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 35048 | 35779 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 35049 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 35780 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 35781 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35050 | 35782 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 35051 | 35783 | else => unreachable, |
| 35052 | 35784 | .zero => "__truncx", |
| ... | ... | @@ -35058,18 +35790,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35058 | 35790 | .unused, |
| 35059 | 35791 | .unused, |
| 35060 | 35792 | .unused, |
| 35061 | | .unused, |
| 35062 | | .unused, |
| 35063 | 35793 | }, |
| 35064 | | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 35794 | .dst_temps = .{ .mem, .unused }, |
| 35065 | 35795 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 35066 | 35796 | .each = .{ .once = &.{ |
| 35067 | 35797 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 35068 | | .{ ._, .f_, .divr, .tmp0t, .src1t, ._, ._ }, |
| 35069 | | .{ ._, .f_p, .st, .mem(.tmp1t), ._, ._, ._ }, |
| 35070 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 35798 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 35799 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 35800 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 35801 | .{ ._, .f_p, .st, .lea(.tmp2t), ._, ._, ._ }, |
| 35802 | .{ ._, ._, .mov, .tmp3p, .tmp2p, ._, ._ }, |
| 35803 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 35071 | 35804 | } }, |
| 35072 | 35805 | }, .{ |
| 35806 | .required_abi = .msvc, |
| 35807 | .required_cc_abi = .win64, |
| 35073 | 35808 | .required_features = .{ .x87, null, null, null }, |
| 35074 | 35809 | .src_constraints = .{ |
| 35075 | 35810 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -35077,13 +35812,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35077 | 35812 | .any, |
| 35078 | 35813 | }, |
| 35079 | 35814 | .patterns = &.{ |
| 35080 | | .{ .src = .{ .mem, .to_x87, .none } }, |
| 35081 | | .{ .src = .{ .to_x87, .to_x87, .none } }, |
| 35815 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 35082 | 35816 | }, |
| 35083 | | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 35817 | .call_frame = .{ .alignment = .@"16" }, |
| 35084 | 35818 | .extra_temps = .{ |
| 35819 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 35085 | 35820 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 35086 | | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 35821 | .{ .type = .u16, .kind = .mem }, |
| 35822 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 35823 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35087 | 35824 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 35088 | 35825 | else => unreachable, |
| 35089 | 35826 | .zero => "__truncx", |
| ... | ... | @@ -35094,19 +35831,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35094 | 35831 | .unused, |
| 35095 | 35832 | .unused, |
| 35096 | 35833 | .unused, |
| 35097 | | .unused, |
| 35098 | | .unused, |
| 35099 | | .unused, |
| 35100 | 35834 | }, |
| 35101 | | .dst_temps = .{ .{ .reg = .st0 }, .unused }, |
| 35835 | .dst_temps = .{ .mem, .unused }, |
| 35102 | 35836 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 35103 | 35837 | .each = .{ .once = &.{ |
| 35104 | 35838 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 35105 | | .{ ._, .f_, .div, .tmp0t, .src1t, ._, ._ }, |
| 35106 | | .{ ._, .f_p, .st, .mem(.tmp1t), ._, ._, ._ }, |
| 35107 | | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 35839 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 35840 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 35841 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 35842 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 35843 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 35844 | .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ }, |
| 35845 | .{ ._, ._, .lea, .tmp3p, .mem(.dst0), ._, ._ }, |
| 35846 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 35847 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 35848 | .{ ._, .f_p, .st, .lea(.tmp3t), ._, ._, ._ }, |
| 35849 | .{ ._, ._, .mov, .tmp4p, .tmp3p, ._, ._ }, |
| 35850 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 35108 | 35851 | } }, |
| 35109 | 35852 | }, .{ |
| 35853 | .required_abi = .gnu, |
| 35854 | .required_cc_abi = .sysv64, |
| 35110 | 35855 | .required_features = .{ .x87, null, null, null }, |
| 35111 | 35856 | .src_constraints = .{ |
| 35112 | 35857 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -35148,6 +35893,100 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35148 | 35893 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 35149 | 35894 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 35150 | 35895 | } }, |
| 35896 | }, .{ |
| 35897 | .required_abi = .gnu, |
| 35898 | .required_cc_abi = .win64, |
| 35899 | .required_features = .{ .x87, null, null, null }, |
| 35900 | .src_constraints = .{ |
| 35901 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 35902 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 35903 | .any, |
| 35904 | }, |
| 35905 | .patterns = &.{ |
| 35906 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 35907 | }, |
| 35908 | .call_frame = .{ .alignment = .@"16" }, |
| 35909 | .extra_temps = .{ |
| 35910 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 35911 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 35912 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 35913 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 35914 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35915 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 35916 | else => unreachable, |
| 35917 | .zero => "__truncx", |
| 35918 | .down => "__floorx", |
| 35919 | } } }, |
| 35920 | .unused, |
| 35921 | .unused, |
| 35922 | .unused, |
| 35923 | .unused, |
| 35924 | .unused, |
| 35925 | }, |
| 35926 | .dst_temps = .{ .mem, .unused }, |
| 35927 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 35928 | .each = .{ .once = &.{ |
| 35929 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 35930 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 35931 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 35932 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 35933 | .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 35934 | .{ ._, .f_p, .st, .lea(.tmp3t), ._, ._, ._ }, |
| 35935 | .{ ._, ._, .mov, .tmp4p, .tmp3p, ._, ._ }, |
| 35936 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 35937 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 35938 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 35939 | } }, |
| 35940 | }, .{ |
| 35941 | .required_abi = .msvc, |
| 35942 | .required_cc_abi = .win64, |
| 35943 | .required_features = .{ .x87, null, null, null }, |
| 35944 | .src_constraints = .{ |
| 35945 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 35946 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 35947 | .any, |
| 35948 | }, |
| 35949 | .patterns = &.{ |
| 35950 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 35951 | }, |
| 35952 | .call_frame = .{ .alignment = .@"16" }, |
| 35953 | .extra_temps = .{ |
| 35954 | .{ .type = .u16, .kind = .mem }, |
| 35955 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 35956 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 35957 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 35958 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 35959 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35960 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 35961 | else => unreachable, |
| 35962 | .zero => "__truncx", |
| 35963 | .down => "__floorx", |
| 35964 | } } }, |
| 35965 | .unused, |
| 35966 | .unused, |
| 35967 | .unused, |
| 35968 | .unused, |
| 35969 | }, |
| 35970 | .dst_temps = .{ .mem, .unused }, |
| 35971 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 35972 | .each = .{ .once = &.{ |
| 35973 | .{ ._, .fn_cw, .st, .tmp0w, ._, ._, ._ }, |
| 35974 | .{ ._, ._, .movzx, .tmp1d, .memd(.tmp0b, 1), ._, ._ }, |
| 35975 | .{ ._, ._, .@"or", .memd(.tmp0b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 35976 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 35977 | .{ ._, ._, .mov, .memd(.tmp0b, 1), .tmp1b, ._, ._ }, |
| 35978 | .{ ._, ._, .mov, .tmp1p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 35979 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 35980 | .{ ._, .f_, .ld, .memia(.src1t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 35981 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 35982 | .{ ._, ._, .lea, .tmp4p, .memia(.dst0, .tmp1, .add_unaligned_size), ._, ._ }, |
| 35983 | .{ ._, .f_p, .st, .lea(.tmp4t), ._, ._, ._ }, |
| 35984 | .{ ._, ._, .mov, .tmp5p, .tmp4p, ._, ._ }, |
| 35985 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 35986 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 35987 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 35988 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 35989 | } }, |
| 35151 | 35990 | }, .{ |
| 35152 | 35991 | .required_features = .{ .sse, null, null, null }, |
| 35153 | 35992 | .src_constraints = .{ |
| ... | ... | @@ -35156,7 +35995,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35156 | 35995 | .any, |
| 35157 | 35996 | }, |
| 35158 | 35997 | .patterns = &.{ |
| 35159 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 35998 | .{ .src = .{ |
| 35999 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 36000 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 36001 | .none, |
| 36002 | } }, |
| 35160 | 36003 | }, |
| 35161 | 36004 | .call_frame = .{ .alignment = .@"16" }, |
| 35162 | 36005 | .extra_temps = .{ |
| ... | ... | @@ -35195,8 +36038,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35195 | 36038 | .call_frame = .{ .alignment = .@"16" }, |
| 35196 | 36039 | .extra_temps = .{ |
| 35197 | 36040 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 35198 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 35199 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 36041 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 36042 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35200 | 36043 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 35201 | 36044 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 35202 | 36045 | else => unreachable, |
| ... | ... | @@ -35235,8 +36078,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35235 | 36078 | .call_frame = .{ .alignment = .@"16" }, |
| 35236 | 36079 | .extra_temps = .{ |
| 35237 | 36080 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 35238 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 35239 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 36081 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 36082 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35240 | 36083 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 35241 | 36084 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 35242 | 36085 | else => unreachable, |
| ... | ... | @@ -35275,8 +36118,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35275 | 36118 | .call_frame = .{ .alignment = .@"16" }, |
| 35276 | 36119 | .extra_temps = .{ |
| 35277 | 36120 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 35278 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 35279 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 36121 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 36122 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35280 | 36123 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 35281 | 36124 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 35282 | 36125 | else => unreachable, |
| ... | ... | @@ -35314,7 +36157,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35314 | 36157 | }; |
| 35315 | 36158 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 35316 | 36159 | }, |
| 35317 | | .div_floor => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else { |
| 36160 | .div_floor => |air_tag| { |
| 35318 | 36161 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 35319 | 36162 | const ty = cg.typeOf(bin_op.lhs); |
| 35320 | 36163 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -35460,15 +36303,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35460 | 36303 | .{ ._, ._, .adc, .dst0q, .si(-1), ._, ._ }, |
| 35461 | 36304 | } }, |
| 35462 | 36305 | }, .{ |
| 35463 | | .required_features = .{ .@"64bit", null, null, null }, |
| 36306 | .required_cc_abi = .sysv64, |
| 35464 | 36307 | .src_constraints = .{ .{ .signed_int = .xword }, .{ .signed_int = .xword }, .any }, |
| 35465 | 36308 | .patterns = &.{ |
| 35466 | 36309 | .{ .src = .{ .mem, .mem, .none } }, |
| 35467 | 36310 | }, |
| 35468 | 36311 | .call_frame = .{ .alignment = .@"16" }, |
| 35469 | 36312 | .extra_temps = .{ |
| 35470 | | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .at = 0 } } }, |
| 35471 | | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 36313 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 36314 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 35472 | 36315 | .{ .type = .usize, .kind = .{ .extern_func = "__modti3" } }, |
| 35473 | 36316 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 35474 | 36317 | .{ .type = .usize, .kind = .{ .extern_func = "__divti3" } }, |
| ... | ... | @@ -35479,7 +36322,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35479 | 36322 | .unused, |
| 35480 | 36323 | .unused, |
| 35481 | 36324 | }, |
| 35482 | | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .at = 0 } }, .unused }, |
| 36325 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 35483 | 36326 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 35484 | 36327 | .each = .{ .once = &.{ |
| 35485 | 36328 | .{ ._, ._, .mov, .tmp0q0, .mem(.src0q), ._, ._ }, |
| ... | ... | @@ -35515,10 +36358,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35515 | 36358 | }, |
| 35516 | 36359 | .call_frame = .{ .alignment = .@"16" }, |
| 35517 | 36360 | .extra_temps = .{ |
| 35518 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 35519 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 35520 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 35521 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 36361 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 36362 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 36363 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 36364 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 35522 | 36365 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 35523 | 36366 | .{ .type = .usize, .kind = .{ .extern_func = "__divei4" } }, |
| 35524 | 36367 | .{ .kind = .{ .mem_of_type = .dst0 } }, |
| ... | ... | @@ -35597,7 +36440,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35597 | 36440 | .any, |
| 35598 | 36441 | }, |
| 35599 | 36442 | .patterns = &.{ |
| 35600 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 36443 | .{ .src = .{ |
| 36444 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 36445 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 36446 | .none, |
| 36447 | } }, |
| 35601 | 36448 | }, |
| 35602 | 36449 | .call_frame = .{ .alignment = .@"16" }, |
| 35603 | 36450 | .extra_temps = .{ |
| ... | ... | @@ -35741,8 +36588,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35741 | 36588 | .call_frame = .{ .alignment = .@"16" }, |
| 35742 | 36589 | .extra_temps = .{ |
| 35743 | 36590 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 35744 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 35745 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 36591 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 36592 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35746 | 36593 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 35747 | 36594 | .{ .type = .usize, .kind = .{ .extern_func = "__floorh" } }, |
| 35748 | 36595 | .unused, |
| ... | ... | @@ -35778,8 +36625,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35778 | 36625 | .call_frame = .{ .alignment = .@"16" }, |
| 35779 | 36626 | .extra_temps = .{ |
| 35780 | 36627 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 35781 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 35782 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 36628 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 36629 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35783 | 36630 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 35784 | 36631 | .{ .type = .usize, .kind = .{ .extern_func = "__floorh" } }, |
| 35785 | 36632 | .unused, |
| ... | ... | @@ -35816,8 +36663,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35816 | 36663 | .call_frame = .{ .alignment = .@"16" }, |
| 35817 | 36664 | .extra_temps = .{ |
| 35818 | 36665 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 35819 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 35820 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 36666 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 36667 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35821 | 36668 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 35822 | 36669 | .{ .type = .usize, .kind = .{ .extern_func = "__floorh" } }, |
| 35823 | 36670 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -35857,8 +36704,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35857 | 36704 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 35858 | 36705 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 35859 | 36706 | .{ .type = .f32, .kind = .mem }, |
| 35860 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 35861 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 36707 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 36708 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 35862 | 36709 | .{ .type = .usize, .kind = .{ .extern_func = "__divhf3" } }, |
| 35863 | 36710 | .{ .type = .usize, .kind = .{ .extern_func = "__floorh" } }, |
| 35864 | 36711 | .unused, |
| ... | ... | @@ -35924,7 +36771,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35924 | 36771 | .any, |
| 35925 | 36772 | }, |
| 35926 | 36773 | .patterns = &.{ |
| 35927 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, |
| 36774 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .to_mem, .none } }, |
| 35928 | 36775 | }, |
| 35929 | 36776 | .call_frame = .{ .alignment = .@"16" }, |
| 35930 | 36777 | .extra_temps = .{ |
| ... | ... | @@ -35991,7 +36838,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 35991 | 36838 | .call_frame = .{ .alignment = .@"16" }, |
| 35992 | 36839 | .extra_temps = .{ |
| 35993 | 36840 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 35994 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 36841 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 35995 | 36842 | .{ .type = .usize, .kind = .{ .extern_func = "floorf" } }, |
| 35996 | 36843 | .unused, |
| 35997 | 36844 | .unused, |
| ... | ... | @@ -36137,7 +36984,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36137 | 36984 | .any, |
| 36138 | 36985 | }, |
| 36139 | 36986 | .patterns = &.{ |
| 36140 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } }, |
| 36987 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .to_mem, .none } }, |
| 36141 | 36988 | }, |
| 36142 | 36989 | .call_frame = .{ .alignment = .@"16" }, |
| 36143 | 36990 | .extra_temps = .{ |
| ... | ... | @@ -36167,7 +37014,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36167 | 37014 | .any, |
| 36168 | 37015 | }, |
| 36169 | 37016 | .patterns = &.{ |
| 36170 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 37017 | .{ .src = .{ |
| 37018 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 37019 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 37020 | .none, |
| 37021 | } }, |
| 36171 | 37022 | }, |
| 36172 | 37023 | .call_frame = .{ .alignment = .@"16" }, |
| 36173 | 37024 | .extra_temps = .{ |
| ... | ... | @@ -36318,7 +37169,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36318 | 37169 | .call_frame = .{ .alignment = .@"16" }, |
| 36319 | 37170 | .extra_temps = .{ |
| 36320 | 37171 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 36321 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 37172 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 36322 | 37173 | .{ .type = .usize, .kind = .{ .extern_func = "floor" } }, |
| 36323 | 37174 | .unused, |
| 36324 | 37175 | .unused, |
| ... | ... | @@ -36353,8 +37204,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36353 | 37204 | .call_frame = .{ .alignment = .@"16" }, |
| 36354 | 37205 | .extra_temps = .{ |
| 36355 | 37206 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 36356 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 36357 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 37207 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37208 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 36358 | 37209 | .{ .type = .usize, .kind = .{ .extern_func = "__divdf3" } }, |
| 36359 | 37210 | .{ .type = .usize, .kind = .{ .extern_func = "floor" } }, |
| 36360 | 37211 | .unused, |
| ... | ... | @@ -36379,6 +37230,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36379 | 37230 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 36380 | 37231 | } }, |
| 36381 | 37232 | }, .{ |
| 37233 | .required_abi = .gnu, |
| 37234 | .required_cc_abi = .sysv64, |
| 36382 | 37235 | .required_features = .{ .x87, null, null, null }, |
| 36383 | 37236 | .src_constraints = .{ |
| 36384 | 37237 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -36412,6 +37265,88 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36412 | 37265 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 36413 | 37266 | } }, |
| 36414 | 37267 | }, .{ |
| 37268 | .required_abi = .gnu, |
| 37269 | .required_cc_abi = .win64, |
| 37270 | .required_features = .{ .x87, null, null, null }, |
| 37271 | .src_constraints = .{ |
| 37272 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 37273 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 37274 | .any, |
| 37275 | }, |
| 37276 | .patterns = &.{ |
| 37277 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 37278 | }, |
| 37279 | .call_frame = .{ .alignment = .@"16" }, |
| 37280 | .extra_temps = .{ |
| 37281 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 37282 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 37283 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37284 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37285 | .{ .type = .usize, .kind = .{ .extern_func = "__floorx" } }, |
| 37286 | .unused, |
| 37287 | .unused, |
| 37288 | .unused, |
| 37289 | .unused, |
| 37290 | .unused, |
| 37291 | .unused, |
| 37292 | }, |
| 37293 | .dst_temps = .{ .mem, .unused }, |
| 37294 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 37295 | .each = .{ .once = &.{ |
| 37296 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 37297 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 37298 | .{ ._, ._, .lea, .tmp2p, .mem(.dst0), ._, ._ }, |
| 37299 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 37300 | .{ ._, .f_p, .st, .lea(.tmp2t), ._, ._, ._ }, |
| 37301 | .{ ._, ._, .mov, .tmp3p, .tmp2p, ._, ._ }, |
| 37302 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 37303 | } }, |
| 37304 | }, .{ |
| 37305 | .required_abi = .msvc, |
| 37306 | .required_cc_abi = .win64, |
| 37307 | .required_features = .{ .x87, null, null, null }, |
| 37308 | .src_constraints = .{ |
| 37309 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 37310 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 37311 | .any, |
| 37312 | }, |
| 37313 | .patterns = &.{ |
| 37314 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 37315 | }, |
| 37316 | .call_frame = .{ .alignment = .@"16" }, |
| 37317 | .extra_temps = .{ |
| 37318 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 37319 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 37320 | .{ .type = .u16, .kind = .mem }, |
| 37321 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37322 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37323 | .{ .type = .usize, .kind = .{ .extern_func = "__floorx" } }, |
| 37324 | .unused, |
| 37325 | .unused, |
| 37326 | .unused, |
| 37327 | .unused, |
| 37328 | .unused, |
| 37329 | }, |
| 37330 | .dst_temps = .{ .mem, .unused }, |
| 37331 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 37332 | .each = .{ .once = &.{ |
| 37333 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 37334 | .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, |
| 37335 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 37336 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 37337 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 37338 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 37339 | .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ }, |
| 37340 | .{ ._, ._, .lea, .tmp3p, .mem(.dst0), ._, ._ }, |
| 37341 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 37342 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 37343 | .{ ._, .f_p, .st, .lea(.tmp3t), ._, ._, ._ }, |
| 37344 | .{ ._, ._, .mov, .tmp4p, .tmp3p, ._, ._ }, |
| 37345 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 37346 | } }, |
| 37347 | }, .{ |
| 37348 | .required_abi = .gnu, |
| 37349 | .required_cc_abi = .sysv64, |
| 36415 | 37350 | .required_features = .{ .x87, null, null, null }, |
| 36416 | 37351 | .src_constraints = .{ |
| 36417 | 37352 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -36449,6 +37384,92 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36449 | 37384 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 36450 | 37385 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 36451 | 37386 | } }, |
| 37387 | }, .{ |
| 37388 | .required_abi = .gnu, |
| 37389 | .required_cc_abi = .win64, |
| 37390 | .required_features = .{ .x87, null, null, null }, |
| 37391 | .src_constraints = .{ |
| 37392 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 37393 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 37394 | .any, |
| 37395 | }, |
| 37396 | .patterns = &.{ |
| 37397 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 37398 | }, |
| 37399 | .call_frame = .{ .alignment = .@"16" }, |
| 37400 | .extra_temps = .{ |
| 37401 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37402 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 37403 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 37404 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37405 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37406 | .{ .type = .usize, .kind = .{ .extern_func = "__floorx" } }, |
| 37407 | .unused, |
| 37408 | .unused, |
| 37409 | .unused, |
| 37410 | .unused, |
| 37411 | .unused, |
| 37412 | }, |
| 37413 | .dst_temps = .{ .mem, .unused }, |
| 37414 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 37415 | .each = .{ .once = &.{ |
| 37416 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 37417 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 37418 | .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 37419 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 37420 | .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 37421 | .{ ._, .f_p, .st, .lea(.tmp3t), ._, ._, ._ }, |
| 37422 | .{ ._, ._, .mov, .tmp4p, .tmp3p, ._, ._ }, |
| 37423 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 37424 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 37425 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 37426 | } }, |
| 37427 | }, .{ |
| 37428 | .required_abi = .msvc, |
| 37429 | .required_cc_abi = .win64, |
| 37430 | .required_features = .{ .x87, null, null, null }, |
| 37431 | .src_constraints = .{ |
| 37432 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 37433 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 37434 | .any, |
| 37435 | }, |
| 37436 | .patterns = &.{ |
| 37437 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 37438 | }, |
| 37439 | .call_frame = .{ .alignment = .@"16" }, |
| 37440 | .extra_temps = .{ |
| 37441 | .{ .type = .u16, .kind = .mem }, |
| 37442 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37443 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 37444 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 37445 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37446 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37447 | .{ .type = .usize, .kind = .{ .extern_func = "__floorx" } }, |
| 37448 | .unused, |
| 37449 | .unused, |
| 37450 | .unused, |
| 37451 | .unused, |
| 37452 | }, |
| 37453 | .dst_temps = .{ .mem, .unused }, |
| 37454 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 37455 | .each = .{ .once = &.{ |
| 37456 | .{ ._, .fn_cw, .st, .tmp0w, ._, ._, ._ }, |
| 37457 | .{ ._, ._, .movzx, .tmp1d, .memd(.tmp0b, 1), ._, ._ }, |
| 37458 | .{ ._, ._, .@"or", .memd(.tmp0b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 37459 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 37460 | .{ ._, ._, .mov, .memd(.tmp0b, 1), .tmp1b, ._, ._ }, |
| 37461 | .{ ._, ._, .mov, .tmp1p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 37462 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 37463 | .{ ._, .f_, .ld, .memia(.src1t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 37464 | .{ ._, .f_p, .div, ._, ._, ._, ._ }, |
| 37465 | .{ ._, ._, .lea, .tmp4p, .memia(.dst0, .tmp1, .add_unaligned_size), ._, ._ }, |
| 37466 | .{ ._, .f_p, .st, .lea(.tmp4t), ._, ._, ._ }, |
| 37467 | .{ ._, ._, .mov, .tmp5p, .tmp4p, ._, ._ }, |
| 37468 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 37469 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 37470 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 37471 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 37472 | } }, |
| 36452 | 37473 | }, .{ |
| 36453 | 37474 | .required_features = .{ .sse, null, null, null }, |
| 36454 | 37475 | .src_constraints = .{ |
| ... | ... | @@ -36457,7 +37478,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36457 | 37478 | .any, |
| 36458 | 37479 | }, |
| 36459 | 37480 | .patterns = &.{ |
| 36460 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 37481 | .{ .src = .{ |
| 37482 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 37483 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 37484 | .none, |
| 37485 | } }, |
| 36461 | 37486 | }, |
| 36462 | 37487 | .call_frame = .{ .alignment = .@"16" }, |
| 36463 | 37488 | .extra_temps = .{ |
| ... | ... | @@ -36492,8 +37517,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36492 | 37517 | .call_frame = .{ .alignment = .@"16" }, |
| 36493 | 37518 | .extra_temps = .{ |
| 36494 | 37519 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 36495 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 36496 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 37520 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37521 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 36497 | 37522 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 36498 | 37523 | .{ .type = .usize, .kind = .{ .extern_func = "floorq" } }, |
| 36499 | 37524 | .unused, |
| ... | ... | @@ -36528,8 +37553,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36528 | 37553 | .call_frame = .{ .alignment = .@"16" }, |
| 36529 | 37554 | .extra_temps = .{ |
| 36530 | 37555 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 36531 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 36532 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 37556 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37557 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 36533 | 37558 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 36534 | 37559 | .{ .type = .usize, .kind = .{ .extern_func = "floorq" } }, |
| 36535 | 37560 | .unused, |
| ... | ... | @@ -36564,8 +37589,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36564 | 37589 | .call_frame = .{ .alignment = .@"16" }, |
| 36565 | 37590 | .extra_temps = .{ |
| 36566 | 37591 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 36567 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 36568 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 37592 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37593 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 36569 | 37594 | .{ .type = .usize, .kind = .{ .extern_func = "__divtf3" } }, |
| 36570 | 37595 | .{ .type = .usize, .kind = .{ .extern_func = "floorq" } }, |
| 36571 | 37596 | .unused, |
| ... | ... | @@ -36598,7 +37623,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36598 | 37623 | }; |
| 36599 | 37624 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 36600 | 37625 | }, |
| 36601 | | .rem, .rem_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, .rem) else { |
| 37626 | .rem, .rem_optimized => |air_tag| { |
| 36602 | 37627 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 36603 | 37628 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 36604 | 37629 | var res: [1]Temp = undefined; |
| ... | ... | @@ -36712,12 +37737,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36712 | 37737 | .{ ._, ._, .div, .src1q, ._, ._, ._ }, |
| 36713 | 37738 | } }, |
| 36714 | 37739 | }, .{ |
| 36715 | | .required_features = .{ .@"64bit", null, null, null }, |
| 37740 | .required_cc_abi = .sysv64, |
| 36716 | 37741 | .src_constraints = .{ .{ .signed_int = .xword }, .{ .signed_int = .xword }, .any }, |
| 36717 | 37742 | .patterns = &.{ |
| 36718 | 37743 | .{ .src = .{ |
| 36719 | | .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 0 } }, |
| 36720 | | .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 2 } }, |
| 37744 | .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 37745 | .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 2, .at = 2 } }, |
| 36721 | 37746 | .none, |
| 36722 | 37747 | } }, |
| 36723 | 37748 | }, |
| ... | ... | @@ -36735,18 +37760,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36735 | 37760 | .unused, |
| 36736 | 37761 | .unused, |
| 36737 | 37762 | }, |
| 36738 | | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .at = 0 } }, .unused }, |
| 37763 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 36739 | 37764 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 36740 | 37765 | .each = .{ .once = &.{ |
| 36741 | 37766 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 36742 | 37767 | } }, |
| 36743 | 37768 | }, .{ |
| 36744 | | .required_features = .{ .@"64bit", null, null, null }, |
| 37769 | .required_cc_abi = .win64, |
| 37770 | .required_features = .{ .sse, null, null, null }, |
| 37771 | .src_constraints = .{ .{ .signed_int = .xword }, .{ .signed_int = .xword }, .any }, |
| 37772 | .patterns = &.{ |
| 37773 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 37774 | }, |
| 37775 | .call_frame = .{ .alignment = .@"16" }, |
| 37776 | .extra_temps = .{ |
| 37777 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37778 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37779 | .{ .type = .usize, .kind = .{ .extern_func = "__modti3" } }, |
| 37780 | .unused, |
| 37781 | .unused, |
| 37782 | .unused, |
| 37783 | .unused, |
| 37784 | .unused, |
| 37785 | .unused, |
| 37786 | .unused, |
| 37787 | .unused, |
| 37788 | }, |
| 37789 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 37790 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 37791 | .each = .{ .once = &.{ |
| 37792 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 37793 | .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ }, |
| 37794 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 37795 | } }, |
| 37796 | }, .{ |
| 37797 | .required_cc_abi = .sysv64, |
| 36745 | 37798 | .src_constraints = .{ .{ .unsigned_int = .xword }, .{ .unsigned_int = .xword }, .any }, |
| 36746 | 37799 | .patterns = &.{ |
| 36747 | 37800 | .{ .src = .{ |
| 36748 | | .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 0 } }, |
| 36749 | | .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 2 } }, |
| 37801 | .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 37802 | .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 2, .at = 2 } }, |
| 36750 | 37803 | .none, |
| 36751 | 37804 | } }, |
| 36752 | 37805 | }, |
| ... | ... | @@ -36764,11 +37817,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36764 | 37817 | .unused, |
| 36765 | 37818 | .unused, |
| 36766 | 37819 | }, |
| 36767 | | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .at = 0 } }, .unused }, |
| 37820 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 36768 | 37821 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 36769 | 37822 | .each = .{ .once = &.{ |
| 36770 | 37823 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 36771 | 37824 | } }, |
| 37825 | }, .{ |
| 37826 | .required_cc_abi = .win64, |
| 37827 | .required_features = .{ .sse, null, null, null }, |
| 37828 | .src_constraints = .{ .{ .unsigned_int = .xword }, .{ .unsigned_int = .xword }, .any }, |
| 37829 | .patterns = &.{ |
| 37830 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 37831 | }, |
| 37832 | .call_frame = .{ .alignment = .@"16" }, |
| 37833 | .extra_temps = .{ |
| 37834 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37835 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37836 | .{ .type = .usize, .kind = .{ .extern_func = "__umodti3" } }, |
| 37837 | .unused, |
| 37838 | .unused, |
| 37839 | .unused, |
| 37840 | .unused, |
| 37841 | .unused, |
| 37842 | .unused, |
| 37843 | .unused, |
| 37844 | .unused, |
| 37845 | }, |
| 37846 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 37847 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 37848 | .each = .{ .once = &.{ |
| 37849 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 37850 | .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ }, |
| 37851 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 37852 | } }, |
| 36772 | 37853 | }, .{ |
| 36773 | 37854 | .required_features = .{ .@"64bit", null, null, null }, |
| 36774 | 37855 | .src_constraints = .{ |
| ... | ... | @@ -36781,10 +37862,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36781 | 37862 | }, |
| 36782 | 37863 | .call_frame = .{ .alignment = .@"16" }, |
| 36783 | 37864 | .extra_temps = .{ |
| 36784 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 36785 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 36786 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 36787 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 37865 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37866 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37867 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 37868 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 36788 | 37869 | .{ .type = .usize, .kind = .{ .extern_func = "__modei4" } }, |
| 36789 | 37870 | .unused, |
| 36790 | 37871 | .unused, |
| ... | ... | @@ -36814,10 +37895,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 36814 | 37895 | }, |
| 36815 | 37896 | .call_frame = .{ .alignment = .@"16" }, |
| 36816 | 37897 | .extra_temps = .{ |
| 36817 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 36818 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 36819 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 36820 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 37898 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37899 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37900 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 37901 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 36821 | 37902 | .{ .type = .usize, .kind = .{ .extern_func = "__umodei4" } }, |
| 36822 | 37903 | .unused, |
| 36823 | 37904 | .unused, |
| ... | ... | @@ -37166,7 +38247,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37166 | 38247 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 37167 | 38248 | } }, |
| 37168 | 38249 | }, .{ |
| 37169 | | .required_features = .{ .@"64bit", null, null, null }, |
| 38250 | .required_cc_abi = .sysv64, |
| 37170 | 38251 | .src_constraints = .{ |
| 37171 | 38252 | .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, |
| 37172 | 38253 | .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, |
| ... | ... | @@ -37178,12 +38259,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37178 | 38259 | .call_frame = .{ .alignment = .@"16" }, |
| 37179 | 38260 | .extra_temps = .{ |
| 37180 | 38261 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37181 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 37182 | | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 37183 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 37184 | | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 38262 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38263 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 38264 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 38265 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 37185 | 38266 | .{ .type = .usize, .kind = .{ .extern_func = "__modti3" } }, |
| 37186 | | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 38267 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37187 | 38268 | .unused, |
| 37188 | 38269 | .unused, |
| 37189 | 38270 | .unused, |
| ... | ... | @@ -37204,7 +38285,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37204 | 38285 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 37205 | 38286 | } }, |
| 37206 | 38287 | }, .{ |
| 37207 | | .required_features = .{ .@"64bit", null, null, null }, |
| 38288 | .required_cc_abi = .sysv64, |
| 37208 | 38289 | .src_constraints = .{ |
| 37209 | 38290 | .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 37210 | 38291 | .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| ... | ... | @@ -37216,12 +38297,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37216 | 38297 | .call_frame = .{ .alignment = .@"16" }, |
| 37217 | 38298 | .extra_temps = .{ |
| 37218 | 38299 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37219 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 37220 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 37221 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 37222 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 38300 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38301 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 38302 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 38303 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 37223 | 38304 | .{ .type = .usize, .kind = .{ .extern_func = "__umodti3" } }, |
| 37224 | | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 38305 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37225 | 38306 | .unused, |
| 37226 | 38307 | .unused, |
| 37227 | 38308 | .unused, |
| ... | ... | @@ -37254,10 +38335,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37254 | 38335 | .call_frame = .{ .alignment = .@"16" }, |
| 37255 | 38336 | .extra_temps = .{ |
| 37256 | 38337 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37257 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 37258 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 37259 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 37260 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 38338 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38339 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 38340 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 38341 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 37261 | 38342 | .{ .type = .usize, .kind = .{ .extern_func = "__modei4" } }, |
| 37262 | 38343 | .unused, |
| 37263 | 38344 | .unused, |
| ... | ... | @@ -37290,10 +38371,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37290 | 38371 | .call_frame = .{ .alignment = .@"16" }, |
| 37291 | 38372 | .extra_temps = .{ |
| 37292 | 38373 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37293 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 37294 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 37295 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 37296 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 38374 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38375 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 38376 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 38377 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 37297 | 38378 | .{ .type = .usize, .kind = .{ .extern_func = "__umodei4" } }, |
| 37298 | 38379 | .unused, |
| 37299 | 38380 | .unused, |
| ... | ... | @@ -37321,7 +38402,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37321 | 38402 | .any, |
| 37322 | 38403 | }, |
| 37323 | 38404 | .patterns = &.{ |
| 37324 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 38405 | .{ .src = .{ |
| 38406 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 38407 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 38408 | .none, |
| 38409 | } }, |
| 37325 | 38410 | }, |
| 37326 | 38411 | .call_frame = .{ .alignment = .@"16" }, |
| 37327 | 38412 | .extra_temps = .{ |
| ... | ... | @@ -37355,8 +38440,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37355 | 38440 | .call_frame = .{ .alignment = .@"16" }, |
| 37356 | 38441 | .extra_temps = .{ |
| 37357 | 38442 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37358 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 37359 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 38443 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38444 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37360 | 38445 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 37361 | 38446 | .unused, |
| 37362 | 38447 | .unused, |
| ... | ... | @@ -37391,8 +38476,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37391 | 38476 | .call_frame = .{ .alignment = .@"16" }, |
| 37392 | 38477 | .extra_temps = .{ |
| 37393 | 38478 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37394 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 37395 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 38479 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38480 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37396 | 38481 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 37397 | 38482 | .unused, |
| 37398 | 38483 | .unused, |
| ... | ... | @@ -37428,8 +38513,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37428 | 38513 | .call_frame = .{ .alignment = .@"16" }, |
| 37429 | 38514 | .extra_temps = .{ |
| 37430 | 38515 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37431 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 37432 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 38516 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38517 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37433 | 38518 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 37434 | 38519 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 37435 | 38520 | .unused, |
| ... | ... | @@ -37468,8 +38553,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37468 | 38553 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37469 | 38554 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 37470 | 38555 | .{ .type = .f32, .kind = .mem }, |
| 37471 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 37472 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 38556 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38557 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37473 | 38558 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 37474 | 38559 | .unused, |
| 37475 | 38560 | .unused, |
| ... | ... | @@ -37502,7 +38587,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37502 | 38587 | .any, |
| 37503 | 38588 | }, |
| 37504 | 38589 | .patterns = &.{ |
| 37505 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 38590 | .{ .src = .{ |
| 38591 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 38592 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 38593 | .none, |
| 38594 | } }, |
| 37506 | 38595 | }, |
| 37507 | 38596 | .call_frame = .{ .alignment = .@"16" }, |
| 37508 | 38597 | .extra_temps = .{ |
| ... | ... | @@ -37536,8 +38625,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37536 | 38625 | .call_frame = .{ .alignment = .@"16" }, |
| 37537 | 38626 | .extra_temps = .{ |
| 37538 | 38627 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37539 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 37540 | | .{ .type = .f32, .kind = .{ .reg = .xmm1 } }, |
| 38628 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38629 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37541 | 38630 | .{ .type = .usize, .kind = .{ .extern_func = "fmodf" } }, |
| 37542 | 38631 | .unused, |
| 37543 | 38632 | .unused, |
| ... | ... | @@ -37571,8 +38660,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37571 | 38660 | .call_frame = .{ .alignment = .@"16" }, |
| 37572 | 38661 | .extra_temps = .{ |
| 37573 | 38662 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37574 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 37575 | | .{ .type = .f32, .kind = .{ .reg = .xmm1 } }, |
| 38663 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38664 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37576 | 38665 | .{ .type = .usize, .kind = .{ .extern_func = "fmodf" } }, |
| 37577 | 38666 | .unused, |
| 37578 | 38667 | .unused, |
| ... | ... | @@ -37601,7 +38690,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37601 | 38690 | .any, |
| 37602 | 38691 | }, |
| 37603 | 38692 | .patterns = &.{ |
| 37604 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 38693 | .{ .src = .{ |
| 38694 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 38695 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 38696 | .none, |
| 38697 | } }, |
| 37605 | 38698 | }, |
| 37606 | 38699 | .call_frame = .{ .alignment = .@"16" }, |
| 37607 | 38700 | .extra_temps = .{ |
| ... | ... | @@ -37635,8 +38728,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37635 | 38728 | .call_frame = .{ .alignment = .@"16" }, |
| 37636 | 38729 | .extra_temps = .{ |
| 37637 | 38730 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37638 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 37639 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 38731 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38732 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37640 | 38733 | .{ .type = .usize, .kind = .{ .extern_func = "fmod" } }, |
| 37641 | 38734 | .unused, |
| 37642 | 38735 | .unused, |
| ... | ... | @@ -37670,8 +38763,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37670 | 38763 | .call_frame = .{ .alignment = .@"16" }, |
| 37671 | 38764 | .extra_temps = .{ |
| 37672 | 38765 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37673 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 37674 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 38766 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38767 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37675 | 38768 | .{ .type = .usize, .kind = .{ .extern_func = "fmod" } }, |
| 37676 | 38769 | .unused, |
| 37677 | 38770 | .unused, |
| ... | ... | @@ -37705,8 +38798,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37705 | 38798 | .call_frame = .{ .alignment = .@"16" }, |
| 37706 | 38799 | .extra_temps = .{ |
| 37707 | 38800 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37708 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 37709 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 38801 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38802 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37710 | 38803 | .{ .type = .usize, .kind = .{ .extern_func = "fmod" } }, |
| 37711 | 38804 | .unused, |
| 37712 | 38805 | .unused, |
| ... | ... | @@ -37730,6 +38823,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37730 | 38823 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 37731 | 38824 | } }, |
| 37732 | 38825 | }, .{ |
| 38826 | .required_cc_abi = .sysv64, |
| 37733 | 38827 | .required_features = .{ .avx, .x87, null, null }, |
| 37734 | 38828 | .src_constraints = .{ |
| 37735 | 38829 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -37741,7 +38835,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37741 | 38835 | }, |
| 37742 | 38836 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 37743 | 38837 | .extra_temps = .{ |
| 37744 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 38838 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37745 | 38839 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 37746 | 38840 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 37747 | 38841 | .unused, |
| ... | ... | @@ -37763,6 +38857,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37763 | 38857 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 37764 | 38858 | } }, |
| 37765 | 38859 | }, .{ |
| 38860 | .required_cc_abi = .sysv64, |
| 37766 | 38861 | .required_features = .{ .sse2, .x87, null, null }, |
| 37767 | 38862 | .src_constraints = .{ |
| 37768 | 38863 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -37774,7 +38869,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37774 | 38869 | }, |
| 37775 | 38870 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 37776 | 38871 | .extra_temps = .{ |
| 37777 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 38872 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37778 | 38873 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 37779 | 38874 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 37780 | 38875 | .unused, |
| ... | ... | @@ -37796,6 +38891,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37796 | 38891 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 37797 | 38892 | } }, |
| 37798 | 38893 | }, .{ |
| 38894 | .required_cc_abi = .sysv64, |
| 37799 | 38895 | .required_features = .{ .sse, .x87, null, null }, |
| 37800 | 38896 | .src_constraints = .{ |
| 37801 | 38897 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -37807,7 +38903,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37807 | 38903 | }, |
| 37808 | 38904 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 37809 | 38905 | .extra_temps = .{ |
| 37810 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 38906 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37811 | 38907 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 37812 | 38908 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 37813 | 38909 | .unused, |
| ... | ... | @@ -37829,6 +38925,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37829 | 38925 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 37830 | 38926 | } }, |
| 37831 | 38927 | }, .{ |
| 38928 | .required_cc_abi = .win64, |
| 38929 | .src_constraints = .{ |
| 38930 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 38931 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 38932 | .any, |
| 38933 | }, |
| 38934 | .patterns = &.{ |
| 38935 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 38936 | }, |
| 38937 | .call_frame = .{ .alignment = .@"16" }, |
| 38938 | .extra_temps = .{ |
| 38939 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38940 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 38941 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 38942 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 38943 | .unused, |
| 38944 | .unused, |
| 38945 | .unused, |
| 38946 | .unused, |
| 38947 | .unused, |
| 38948 | .unused, |
| 38949 | .unused, |
| 38950 | }, |
| 38951 | .dst_temps = .{ .mem, .unused }, |
| 38952 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 38953 | .each = .{ .once = &.{ |
| 38954 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 38955 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 38956 | .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ }, |
| 38957 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 38958 | } }, |
| 38959 | }, .{ |
| 38960 | .required_cc_abi = .sysv64, |
| 37832 | 38961 | .required_features = .{ .avx, .x87, null, null }, |
| 37833 | 38962 | .src_constraints = .{ |
| 37834 | 38963 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -37841,7 +38970,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37841 | 38970 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 37842 | 38971 | .extra_temps = .{ |
| 37843 | 38972 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37844 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 38973 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37845 | 38974 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 37846 | 38975 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 37847 | 38976 | .unused, |
| ... | ... | @@ -37867,6 +38996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37867 | 38996 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 37868 | 38997 | } }, |
| 37869 | 38998 | }, .{ |
| 38999 | .required_cc_abi = .sysv64, |
| 37870 | 39000 | .required_features = .{ .sse2, .x87, null, null }, |
| 37871 | 39001 | .src_constraints = .{ |
| 37872 | 39002 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -37879,7 +39009,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37879 | 39009 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 37880 | 39010 | .extra_temps = .{ |
| 37881 | 39011 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37882 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 39012 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37883 | 39013 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 37884 | 39014 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 37885 | 39015 | .unused, |
| ... | ... | @@ -37905,6 +39035,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37905 | 39035 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 37906 | 39036 | } }, |
| 37907 | 39037 | }, .{ |
| 39038 | .required_cc_abi = .sysv64, |
| 37908 | 39039 | .required_features = .{ .sse, .x87, null, null }, |
| 37909 | 39040 | .src_constraints = .{ |
| 37910 | 39041 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -37917,7 +39048,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37917 | 39048 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 37918 | 39049 | .extra_temps = .{ |
| 37919 | 39050 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37920 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 39051 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 37921 | 39052 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 37922 | 39053 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 37923 | 39054 | .unused, |
| ... | ... | @@ -37942,6 +39073,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37942 | 39073 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 37943 | 39074 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 37944 | 39075 | } }, |
| 39076 | }, .{ |
| 39077 | .required_cc_abi = .win64, |
| 39078 | .src_constraints = .{ |
| 39079 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 39080 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 39081 | .any, |
| 39082 | }, |
| 39083 | .patterns = &.{ |
| 39084 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 39085 | }, |
| 39086 | .call_frame = .{ .alignment = .@"16" }, |
| 39087 | .extra_temps = .{ |
| 39088 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39089 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39090 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39091 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 39092 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 39093 | .unused, |
| 39094 | .unused, |
| 39095 | .unused, |
| 39096 | .unused, |
| 39097 | .unused, |
| 39098 | .unused, |
| 39099 | }, |
| 39100 | .dst_temps = .{ .mem, .unused }, |
| 39101 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 39102 | .each = .{ .once = &.{ |
| 39103 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 39104 | .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 39105 | .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 39106 | .{ ._, ._, .lea, .tmp3p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, |
| 39107 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 39108 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 39109 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 39110 | } }, |
| 37945 | 39111 | }, .{ |
| 37946 | 39112 | .required_features = .{ .sse, null, null, null }, |
| 37947 | 39113 | .src_constraints = .{ |
| ... | ... | @@ -37950,7 +39116,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37950 | 39116 | .any, |
| 37951 | 39117 | }, |
| 37952 | 39118 | .patterns = &.{ |
| 37953 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 39119 | .{ .src = .{ |
| 39120 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 39121 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 39122 | .none, |
| 39123 | } }, |
| 37954 | 39124 | }, |
| 37955 | 39125 | .call_frame = .{ .alignment = .@"16" }, |
| 37956 | 39126 | .extra_temps = .{ |
| ... | ... | @@ -37984,8 +39154,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 37984 | 39154 | .call_frame = .{ .alignment = .@"16" }, |
| 37985 | 39155 | .extra_temps = .{ |
| 37986 | 39156 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 37987 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 37988 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 39157 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39158 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 37989 | 39159 | .{ .type = .usize, .kind = .{ .extern_func = "fmodq" } }, |
| 37990 | 39160 | .unused, |
| 37991 | 39161 | .unused, |
| ... | ... | @@ -38019,8 +39189,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38019 | 39189 | .call_frame = .{ .alignment = .@"16" }, |
| 38020 | 39190 | .extra_temps = .{ |
| 38021 | 39191 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 38022 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 38023 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 39192 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39193 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 38024 | 39194 | .{ .type = .usize, .kind = .{ .extern_func = "fmodq" } }, |
| 38025 | 39195 | .unused, |
| 38026 | 39196 | .unused, |
| ... | ... | @@ -38054,8 +39224,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38054 | 39224 | .call_frame = .{ .alignment = .@"16" }, |
| 38055 | 39225 | .extra_temps = .{ |
| 38056 | 39226 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 38057 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 38058 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 39227 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39228 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 38059 | 39229 | .{ .type = .usize, .kind = .{ .extern_func = "fmodq" } }, |
| 38060 | 39230 | .unused, |
| 38061 | 39231 | .unused, |
| ... | ... | @@ -38087,7 +39257,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38087 | 39257 | }; |
| 38088 | 39258 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 38089 | 39259 | }, |
| 38090 | | .mod, .mod_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, .mod) else { |
| 39260 | .mod, .mod_optimized => |air_tag| { |
| 38091 | 39261 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 38092 | 39262 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 38093 | 39263 | var res: [1]Temp = undefined; |
| ... | ... | @@ -38383,14 +39553,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38383 | 39553 | .{ ._, ._, .div, .src1q, ._, ._, ._ }, |
| 38384 | 39554 | } }, |
| 38385 | 39555 | }, .{ |
| 38386 | | .required_features = .{ .@"64bit", .cmov, null, null }, |
| 39556 | .required_cc_abi = .sysv64, |
| 39557 | .required_features = .{ .cmov, null, null, null }, |
| 38387 | 39558 | .src_constraints = .{ .{ .signed_int = .xword }, .{ .signed_int = .xword }, .any }, |
| 38388 | 39559 | .patterns = &.{ |
| 38389 | | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 0 } }, .to_mem, .none } }, |
| 39560 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .to_mem, .none } }, |
| 38390 | 39561 | }, |
| 38391 | 39562 | .call_frame = .{ .alignment = .@"16" }, |
| 38392 | 39563 | .extra_temps = .{ |
| 38393 | | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 39564 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 38394 | 39565 | .{ .type = .usize, .kind = .{ .extern_func = "__modti3" } }, |
| 38395 | 39566 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 38396 | 39567 | .unused, |
| ... | ... | @@ -38402,7 +39573,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38402 | 39573 | .unused, |
| 38403 | 39574 | .unused, |
| 38404 | 39575 | }, |
| 38405 | | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .at = 0 } }, .unused }, |
| 39576 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 38406 | 39577 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 38407 | 39578 | .each = .{ .once = &.{ |
| 38408 | 39579 | .{ ._, ._, .mov, .dst0q1, .mem(.src1q), ._, ._ }, |
| ... | ... | @@ -38422,14 +39593,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38422 | 39593 | .{ ._, ._, .adc, .dst0q1, .src0q0, ._, ._ }, |
| 38423 | 39594 | } }, |
| 38424 | 39595 | }, .{ |
| 38425 | | .required_features = .{ .@"64bit", null, null, null }, |
| 39596 | .required_cc_abi = .sysv64, |
| 38426 | 39597 | .src_constraints = .{ .{ .signed_int = .xword }, .{ .signed_int = .xword }, .any }, |
| 38427 | 39598 | .patterns = &.{ |
| 38428 | | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 0 } }, .to_mem, .none } }, |
| 39599 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .to_mem, .none } }, |
| 38429 | 39600 | }, |
| 38430 | 39601 | .call_frame = .{ .alignment = .@"16" }, |
| 38431 | 39602 | .extra_temps = .{ |
| 38432 | | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 39603 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 38433 | 39604 | .{ .type = .usize, .kind = .{ .extern_func = "__modti3" } }, |
| 38434 | 39605 | .unused, |
| 38435 | 39606 | .unused, |
| ... | ... | @@ -38441,7 +39612,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38441 | 39612 | .unused, |
| 38442 | 39613 | .unused, |
| 38443 | 39614 | }, |
| 38444 | | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .at = 0 } }, .unused }, |
| 39615 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 38445 | 39616 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 38446 | 39617 | .each = .{ .once = &.{ |
| 38447 | 39618 | .{ ._, ._, .mov, .dst0q1, .mem(.src1q), ._, ._ }, |
| ... | ... | @@ -38459,12 +39630,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38459 | 39630 | .{ ._, ._, .adc, .dst0q1, .src0q0, ._, ._ }, |
| 38460 | 39631 | } }, |
| 38461 | 39632 | }, .{ |
| 38462 | | .required_features = .{ .@"64bit", null, null, null }, |
| 39633 | .required_cc_abi = .sysv64, |
| 38463 | 39634 | .src_constraints = .{ .{ .unsigned_int = .xword }, .{ .unsigned_int = .xword }, .any }, |
| 38464 | 39635 | .patterns = &.{ |
| 38465 | 39636 | .{ .src = .{ |
| 38466 | | .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 0 } }, |
| 38467 | | .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 2 } }, |
| 39637 | .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 39638 | .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 2, .at = 2 } }, |
| 38468 | 39639 | .none, |
| 38469 | 39640 | } }, |
| 38470 | 39641 | }, |
| ... | ... | @@ -38482,7 +39653,65 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38482 | 39653 | .unused, |
| 38483 | 39654 | .unused, |
| 38484 | 39655 | }, |
| 38485 | | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .at = 0 } }, .unused }, |
| 39656 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 39657 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 39658 | .each = .{ .once = &.{ |
| 39659 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 39660 | } }, |
| 39661 | }, .{ |
| 39662 | .required_cc_abi = .win64, |
| 39663 | .required_features = .{ .sse, null, null, null }, |
| 39664 | .src_constraints = .{ .{ .unsigned_int = .xword }, .{ .unsigned_int = .xword }, .any }, |
| 39665 | .patterns = &.{ |
| 39666 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 39667 | }, |
| 39668 | .call_frame = .{ .alignment = .@"16" }, |
| 39669 | .extra_temps = .{ |
| 39670 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39671 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39672 | .{ .type = .usize, .kind = .{ .extern_func = "__umodti3" } }, |
| 39673 | .unused, |
| 39674 | .unused, |
| 39675 | .unused, |
| 39676 | .unused, |
| 39677 | .unused, |
| 39678 | .unused, |
| 39679 | .unused, |
| 39680 | .unused, |
| 39681 | }, |
| 39682 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 39683 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 39684 | .each = .{ .once = &.{ |
| 39685 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 39686 | .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ }, |
| 39687 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 39688 | } }, |
| 39689 | }, .{ |
| 39690 | .required_cc_abi = .win64, |
| 39691 | .required_features = .{ .sse, null, null, null }, |
| 39692 | .src_constraints = .{ .{ .unsigned_int = .xword }, .{ .unsigned_int = .xword }, .any }, |
| 39693 | .patterns = &.{ |
| 39694 | .{ .src = .{ |
| 39695 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 39696 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 39697 | .none, |
| 39698 | } }, |
| 39699 | }, |
| 39700 | .call_frame = .{ .alignment = .@"16" }, |
| 39701 | .extra_temps = .{ |
| 39702 | .{ .type = .usize, .kind = .{ .extern_func = "__umodti3" } }, |
| 39703 | .unused, |
| 39704 | .unused, |
| 39705 | .unused, |
| 39706 | .unused, |
| 39707 | .unused, |
| 39708 | .unused, |
| 39709 | .unused, |
| 39710 | .unused, |
| 39711 | .unused, |
| 39712 | .unused, |
| 39713 | }, |
| 39714 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 38486 | 39715 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 38487 | 39716 | .each = .{ .once = &.{ |
| 38488 | 39717 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -38499,10 +39728,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38499 | 39728 | }, |
| 38500 | 39729 | .call_frame = .{ .alignment = .@"16" }, |
| 38501 | 39730 | .extra_temps = .{ |
| 38502 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 38503 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 38504 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 38505 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 39731 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39732 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39733 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 39734 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 38506 | 39735 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 38507 | 39736 | .{ .type = .usize, .kind = .{ .extern_func = "__modei4" } }, |
| 38508 | 39737 | .unused, |
| ... | ... | @@ -38557,10 +39786,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38557 | 39786 | }, |
| 38558 | 39787 | .call_frame = .{ .alignment = .@"16" }, |
| 38559 | 39788 | .extra_temps = .{ |
| 38560 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 38561 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 38562 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 38563 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 39789 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39790 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39791 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 39792 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 38564 | 39793 | .{ .type = .usize, .kind = .{ .extern_func = "__umodei4" } }, |
| 38565 | 39794 | .unused, |
| 38566 | 39795 | .unused, |
| ... | ... | @@ -38586,7 +39815,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38586 | 39815 | .any, |
| 38587 | 39816 | }, |
| 38588 | 39817 | .patterns = &.{ |
| 38589 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 39818 | .{ .src = .{ |
| 39819 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 39820 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 39821 | .none, |
| 39822 | } }, |
| 38590 | 39823 | }, |
| 38591 | 39824 | .call_frame = .{ .alignment = .@"16" }, |
| 38592 | 39825 | .extra_temps = .{ |
| ... | ... | @@ -38627,7 +39860,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38627 | 39860 | .any, |
| 38628 | 39861 | }, |
| 38629 | 39862 | .patterns = &.{ |
| 38630 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 39863 | .{ .src = .{ |
| 39864 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 39865 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 39866 | .none, |
| 39867 | } }, |
| 38631 | 39868 | }, |
| 38632 | 39869 | .call_frame = .{ .alignment = .@"16" }, |
| 38633 | 39870 | .extra_temps = .{ |
| ... | ... | @@ -38668,7 +39905,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38668 | 39905 | .any, |
| 38669 | 39906 | }, |
| 38670 | 39907 | .patterns = &.{ |
| 38671 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 39908 | .{ .src = .{ |
| 39909 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 39910 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 39911 | .none, |
| 39912 | } }, |
| 38672 | 39913 | }, |
| 38673 | 39914 | .call_frame = .{ .alignment = .@"16" }, |
| 38674 | 39915 | .extra_temps = .{ |
| ... | ... | @@ -38706,7 +39947,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38706 | 39947 | .any, |
| 38707 | 39948 | }, |
| 38708 | 39949 | .patterns = &.{ |
| 38709 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 39950 | .{ .src = .{ |
| 39951 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 39952 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 39953 | .none, |
| 39954 | } }, |
| 38710 | 39955 | }, |
| 38711 | 39956 | .call_frame = .{ .alignment = .@"16" }, |
| 38712 | 39957 | .extra_temps = .{ |
| ... | ... | @@ -38744,7 +39989,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38744 | 39989 | .any, |
| 38745 | 39990 | }, |
| 38746 | 39991 | .patterns = &.{ |
| 38747 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 39992 | .{ .src = .{ |
| 39993 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 39994 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 39995 | .none, |
| 39996 | } }, |
| 38748 | 39997 | }, |
| 38749 | 39998 | .call_frame = .{ .alignment = .@"16" }, |
| 38750 | 39999 | .extra_temps = .{ |
| ... | ... | @@ -38782,7 +40031,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38782 | 40031 | .any, |
| 38783 | 40032 | }, |
| 38784 | 40033 | .patterns = &.{ |
| 38785 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 40034 | .{ .src = .{ |
| 40035 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 40036 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 40037 | .none, |
| 40038 | } }, |
| 38786 | 40039 | }, |
| 38787 | 40040 | .call_frame = .{ .alignment = .@"16" }, |
| 38788 | 40041 | .extra_temps = .{ |
| ... | ... | @@ -38820,7 +40073,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38820 | 40073 | .any, |
| 38821 | 40074 | }, |
| 38822 | 40075 | .patterns = &.{ |
| 38823 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 40076 | .{ .src = .{ |
| 40077 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 40078 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 40079 | .none, |
| 40080 | } }, |
| 38824 | 40081 | }, |
| 38825 | 40082 | .call_frame = .{ .alignment = .@"16" }, |
| 38826 | 40083 | .extra_temps = .{ |
| ... | ... | @@ -38858,7 +40115,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38858 | 40115 | .any, |
| 38859 | 40116 | }, |
| 38860 | 40117 | .patterns = &.{ |
| 38861 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 40118 | .{ .src = .{ |
| 40119 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 40120 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 40121 | .none, |
| 40122 | } }, |
| 38862 | 40123 | }, |
| 38863 | 40124 | .call_frame = .{ .alignment = .@"16" }, |
| 38864 | 40125 | .extra_temps = .{ |
| ... | ... | @@ -38901,9 +40162,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38901 | 40162 | .call_frame = .{ .alignment = .@"16" }, |
| 38902 | 40163 | .extra_temps = .{ |
| 38903 | 40164 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 38904 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 40165 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38905 | 40166 | .{ .type = .f16, .kind = .{ .rc = .general_purpose } }, |
| 38906 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 40167 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 38907 | 40168 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 38908 | 40169 | .{ .type = .f16, .kind = .{ .reg = .dx } }, |
| 38909 | 40170 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -38949,9 +40210,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38949 | 40210 | .call_frame = .{ .alignment = .@"16" }, |
| 38950 | 40211 | .extra_temps = .{ |
| 38951 | 40212 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 38952 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 40213 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 38953 | 40214 | .{ .type = .f16, .kind = .{ .rc = .general_purpose } }, |
| 38954 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 40215 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 38955 | 40216 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 38956 | 40217 | .{ .type = .f16, .kind = .{ .reg = .dx } }, |
| 38957 | 40218 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -38997,9 +40258,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 38997 | 40258 | .call_frame = .{ .alignment = .@"16" }, |
| 38998 | 40259 | .extra_temps = .{ |
| 38999 | 40260 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39000 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 40261 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39001 | 40262 | .{ .type = .f16, .kind = .{ .rc = .general_purpose } }, |
| 39002 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 40263 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39003 | 40264 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 39004 | 40265 | .{ .type = .f16, .kind = .{ .reg = .dx } }, |
| 39005 | 40266 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -39042,9 +40303,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39042 | 40303 | .call_frame = .{ .alignment = .@"16" }, |
| 39043 | 40304 | .extra_temps = .{ |
| 39044 | 40305 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39045 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 40306 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39046 | 40307 | .{ .type = .f16, .kind = .{ .rc = .general_purpose } }, |
| 39047 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 40308 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39048 | 40309 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 39049 | 40310 | .{ .type = .f16, .kind = .{ .reg = .dx } }, |
| 39050 | 40311 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -39087,9 +40348,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39087 | 40348 | .call_frame = .{ .alignment = .@"16" }, |
| 39088 | 40349 | .extra_temps = .{ |
| 39089 | 40350 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39090 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 40351 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39091 | 40352 | .{ .type = .f16, .kind = .{ .rc = .general_purpose } }, |
| 39092 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 40353 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39093 | 40354 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 39094 | 40355 | .{ .type = .f16, .kind = .{ .reg = .dx } }, |
| 39095 | 40356 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -39132,9 +40393,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39132 | 40393 | .call_frame = .{ .alignment = .@"16" }, |
| 39133 | 40394 | .extra_temps = .{ |
| 39134 | 40395 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39135 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 40396 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39136 | 40397 | .{ .type = .f16, .kind = .{ .rc = .general_purpose } }, |
| 39137 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 40398 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39138 | 40399 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 39139 | 40400 | .{ .type = .f16, .kind = .{ .reg = .dx } }, |
| 39140 | 40401 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -39177,9 +40438,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39177 | 40438 | .call_frame = .{ .alignment = .@"16" }, |
| 39178 | 40439 | .extra_temps = .{ |
| 39179 | 40440 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39180 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 40441 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39181 | 40442 | .{ .type = .f16, .kind = .{ .rc = .general_purpose } }, |
| 39182 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 40443 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39183 | 40444 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 39184 | 40445 | .{ .type = .f16, .kind = .{ .reg = .dx } }, |
| 39185 | 40446 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -39223,9 +40484,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39223 | 40484 | .call_frame = .{ .alignment = .@"16" }, |
| 39224 | 40485 | .extra_temps = .{ |
| 39225 | 40486 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39226 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 40487 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39227 | 40488 | .{ .type = .f16, .kind = .{ .rc = .general_purpose } }, |
| 39228 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 40489 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39229 | 40490 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 39230 | 40491 | .{ .type = .f16, .kind = .{ .reg = .dx } }, |
| 39231 | 40492 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -39271,8 +40532,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39271 | 40532 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39272 | 40533 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 39273 | 40534 | .{ .type = .f32, .kind = .mem }, |
| 39274 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 39275 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 40535 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40536 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39276 | 40537 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 39277 | 40538 | .{ .type = .f32, .kind = .mem }, |
| 39278 | 40539 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| ... | ... | @@ -39320,8 +40581,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39320 | 40581 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39321 | 40582 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 39322 | 40583 | .{ .type = .f32, .kind = .mem }, |
| 39323 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 39324 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 40584 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40585 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39325 | 40586 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodh" } }, |
| 39326 | 40587 | .{ .type = .f32, .kind = .mem }, |
| 39327 | 40588 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| ... | ... | @@ -39362,7 +40623,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39362 | 40623 | .any, |
| 39363 | 40624 | }, |
| 39364 | 40625 | .patterns = &.{ |
| 39365 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 40626 | .{ .src = .{ |
| 40627 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 40628 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 40629 | .none, |
| 40630 | } }, |
| 39366 | 40631 | }, |
| 39367 | 40632 | .call_frame = .{ .alignment = .@"16" }, |
| 39368 | 40633 | .extra_temps = .{ |
| ... | ... | @@ -39400,7 +40665,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39400 | 40665 | .any, |
| 39401 | 40666 | }, |
| 39402 | 40667 | .patterns = &.{ |
| 39403 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 40668 | .{ .src = .{ |
| 40669 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 40670 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 40671 | .none, |
| 40672 | } }, |
| 39404 | 40673 | }, |
| 39405 | 40674 | .call_frame = .{ .alignment = .@"16" }, |
| 39406 | 40675 | .extra_temps = .{ |
| ... | ... | @@ -39438,7 +40707,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39438 | 40707 | .any, |
| 39439 | 40708 | }, |
| 39440 | 40709 | .patterns = &.{ |
| 39441 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 40710 | .{ .src = .{ |
| 40711 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 40712 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 40713 | .none, |
| 40714 | } }, |
| 39442 | 40715 | }, |
| 39443 | 40716 | .call_frame = .{ .alignment = .@"16" }, |
| 39444 | 40717 | .extra_temps = .{ |
| ... | ... | @@ -39480,8 +40753,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39480 | 40753 | .call_frame = .{ .alignment = .@"16" }, |
| 39481 | 40754 | .extra_temps = .{ |
| 39482 | 40755 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39483 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 39484 | | .{ .type = .f32, .kind = .{ .reg = .xmm1 } }, |
| 40756 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40757 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39485 | 40758 | .{ .type = .f32, .kind = .{ .rc = .general_purpose } }, |
| 39486 | 40759 | .{ .type = .usize, .kind = .{ .extern_func = "fmodf" } }, |
| 39487 | 40760 | .{ .type = .f32, .kind = .{ .reg = .edx } }, |
| ... | ... | @@ -39524,8 +40797,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39524 | 40797 | .call_frame = .{ .alignment = .@"16" }, |
| 39525 | 40798 | .extra_temps = .{ |
| 39526 | 40799 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39527 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 39528 | | .{ .type = .f32, .kind = .{ .reg = .xmm1 } }, |
| 40800 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40801 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39529 | 40802 | .{ .type = .f32, .kind = .{ .rc = .general_purpose } }, |
| 39530 | 40803 | .{ .type = .usize, .kind = .{ .extern_func = "fmodf" } }, |
| 39531 | 40804 | .{ .type = .f32, .kind = .{ .reg = .edx } }, |
| ... | ... | @@ -39568,8 +40841,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39568 | 40841 | .call_frame = .{ .alignment = .@"16" }, |
| 39569 | 40842 | .extra_temps = .{ |
| 39570 | 40843 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39571 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 39572 | | .{ .type = .f32, .kind = .{ .reg = .xmm1 } }, |
| 40844 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40845 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39573 | 40846 | .{ .type = .usize, .kind = .{ .extern_func = "fmodf" } }, |
| 39574 | 40847 | .{ .type = .f32, .kind = .mem }, |
| 39575 | 40848 | .{ .type = .f32, .kind = .{ .reg = .eax } }, |
| ... | ... | @@ -39605,7 +40878,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39605 | 40878 | .any, |
| 39606 | 40879 | }, |
| 39607 | 40880 | .patterns = &.{ |
| 39608 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 40881 | .{ .src = .{ |
| 40882 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 40883 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 40884 | .none, |
| 40885 | } }, |
| 39609 | 40886 | }, |
| 39610 | 40887 | .call_frame = .{ .alignment = .@"16" }, |
| 39611 | 40888 | .extra_temps = .{ |
| ... | ... | @@ -39644,7 +40921,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39644 | 40921 | .any, |
| 39645 | 40922 | }, |
| 39646 | 40923 | .patterns = &.{ |
| 39647 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 40924 | .{ .src = .{ |
| 40925 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 40926 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 40927 | .none, |
| 40928 | } }, |
| 39648 | 40929 | }, |
| 39649 | 40930 | .call_frame = .{ .alignment = .@"16" }, |
| 39650 | 40931 | .extra_temps = .{ |
| ... | ... | @@ -39683,7 +40964,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39683 | 40964 | .any, |
| 39684 | 40965 | }, |
| 39685 | 40966 | .patterns = &.{ |
| 39686 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 40967 | .{ .src = .{ |
| 40968 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 40969 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 40970 | .none, |
| 40971 | } }, |
| 39687 | 40972 | }, |
| 39688 | 40973 | .call_frame = .{ .alignment = .@"16" }, |
| 39689 | 40974 | .extra_temps = .{ |
| ... | ... | @@ -39730,8 +41015,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39730 | 41015 | .call_frame = .{ .alignment = .@"16" }, |
| 39731 | 41016 | .extra_temps = .{ |
| 39732 | 41017 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39733 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 39734 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 41018 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 41019 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39735 | 41020 | .{ .type = .f64, .kind = .{ .rc = .general_purpose } }, |
| 39736 | 41021 | .{ .type = .usize, .kind = .{ .extern_func = "fmod" } }, |
| 39737 | 41022 | .{ .type = .f64, .kind = .{ .reg = .rcx } }, |
| ... | ... | @@ -39775,8 +41060,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39775 | 41060 | .call_frame = .{ .alignment = .@"16" }, |
| 39776 | 41061 | .extra_temps = .{ |
| 39777 | 41062 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39778 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 39779 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 41063 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 41064 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39780 | 41065 | .{ .type = .f64, .kind = .{ .rc = .general_purpose } }, |
| 39781 | 41066 | .{ .type = .usize, .kind = .{ .extern_func = "fmod" } }, |
| 39782 | 41067 | .{ .type = .f64, .kind = .{ .reg = .rcx } }, |
| ... | ... | @@ -39820,8 +41105,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39820 | 41105 | .call_frame = .{ .alignment = .@"16" }, |
| 39821 | 41106 | .extra_temps = .{ |
| 39822 | 41107 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 39823 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 39824 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 41108 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 41109 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 39825 | 41110 | .{ .type = .usize, .kind = .{ .extern_func = "fmod" } }, |
| 39826 | 41111 | .{ .type = .f64, .kind = .{ .reg = .rdx } }, |
| 39827 | 41112 | .{ .type = .f64, .kind = .mem }, |
| ... | ... | @@ -39857,6 +41142,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39857 | 41142 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 39858 | 41143 | } }, |
| 39859 | 41144 | }, .{ |
| 41145 | .required_abi = .gnu, |
| 41146 | .required_cc_abi = .sysv64, |
| 39860 | 41147 | .required_features = .{ .@"64bit", .avx, .x87, .fast_imm16 }, |
| 39861 | 41148 | .src_constraints = .{ |
| 39862 | 41149 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -39868,7 +41155,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39868 | 41155 | }, |
| 39869 | 41156 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 39870 | 41157 | .extra_temps = .{ |
| 39871 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41158 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39872 | 41159 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 39873 | 41160 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 39874 | 41161 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -39900,6 +41187,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39900 | 41187 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 39901 | 41188 | } }, |
| 39902 | 41189 | }, .{ |
| 41190 | .required_abi = .gnu, |
| 41191 | .required_cc_abi = .sysv64, |
| 39903 | 41192 | .required_features = .{ .@"64bit", .avx, .x87, null }, |
| 39904 | 41193 | .src_constraints = .{ |
| 39905 | 41194 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -39911,7 +41200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39911 | 41200 | }, |
| 39912 | 41201 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 39913 | 41202 | .extra_temps = .{ |
| 39914 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41203 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39915 | 41204 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 39916 | 41205 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 39917 | 41206 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -39943,6 +41232,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39943 | 41232 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 39944 | 41233 | } }, |
| 39945 | 41234 | }, .{ |
| 41235 | .required_abi = .gnu, |
| 41236 | .required_cc_abi = .sysv64, |
| 39946 | 41237 | .required_features = .{ .@"64bit", .sse2, .x87, .fast_imm16 }, |
| 39947 | 41238 | .src_constraints = .{ |
| 39948 | 41239 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -39954,7 +41245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39954 | 41245 | }, |
| 39955 | 41246 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 39956 | 41247 | .extra_temps = .{ |
| 39957 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41248 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 39958 | 41249 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 39959 | 41250 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 39960 | 41251 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -39986,6 +41277,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39986 | 41277 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 39987 | 41278 | } }, |
| 39988 | 41279 | }, .{ |
| 41280 | .required_abi = .gnu, |
| 41281 | .required_cc_abi = .sysv64, |
| 39989 | 41282 | .required_features = .{ .@"64bit", .sse2, .x87, null }, |
| 39990 | 41283 | .src_constraints = .{ |
| 39991 | 41284 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -39997,7 +41290,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 39997 | 41290 | }, |
| 39998 | 41291 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 39999 | 41292 | .extra_temps = .{ |
| 40000 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41293 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40001 | 41294 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 40002 | 41295 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 40003 | 41296 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -40029,6 +41322,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40029 | 41322 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 40030 | 41323 | } }, |
| 40031 | 41324 | }, .{ |
| 41325 | .required_abi = .gnu, |
| 41326 | .required_cc_abi = .sysv64, |
| 40032 | 41327 | .required_features = .{ .@"64bit", .sse, .x87, .fast_imm16 }, |
| 40033 | 41328 | .src_constraints = .{ |
| 40034 | 41329 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -40040,7 +41335,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40040 | 41335 | }, |
| 40041 | 41336 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 40042 | 41337 | .extra_temps = .{ |
| 40043 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41338 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40044 | 41339 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 40045 | 41340 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 40046 | 41341 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -40072,6 +41367,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40072 | 41367 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 40073 | 41368 | } }, |
| 40074 | 41369 | }, .{ |
| 41370 | .required_abi = .gnu, |
| 41371 | .required_cc_abi = .sysv64, |
| 40075 | 41372 | .required_features = .{ .@"64bit", .sse, .x87, null }, |
| 40076 | 41373 | .src_constraints = .{ |
| 40077 | 41374 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -40083,7 +41380,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40083 | 41380 | }, |
| 40084 | 41381 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 40085 | 41382 | .extra_temps = .{ |
| 40086 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41383 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40087 | 41384 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 40088 | 41385 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 40089 | 41386 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -40115,6 +41412,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40115 | 41412 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 40116 | 41413 | } }, |
| 40117 | 41414 | }, .{ |
| 41415 | .required_abi = .gnu, |
| 41416 | .required_cc_abi = .sysv64, |
| 40118 | 41417 | .required_features = .{ .@"64bit", .avx, .x87, .fast_imm16 }, |
| 40119 | 41418 | .src_constraints = .{ |
| 40120 | 41419 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -40127,7 +41426,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40127 | 41426 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 40128 | 41427 | .extra_temps = .{ |
| 40129 | 41428 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 40130 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41429 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40131 | 41430 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 40132 | 41431 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 40133 | 41432 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -40163,6 +41462,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40163 | 41462 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 40164 | 41463 | } }, |
| 40165 | 41464 | }, .{ |
| 41465 | .required_abi = .gnu, |
| 41466 | .required_cc_abi = .sysv64, |
| 40166 | 41467 | .required_features = .{ .@"64bit", .avx, .x87, null }, |
| 40167 | 41468 | .src_constraints = .{ |
| 40168 | 41469 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -40175,7 +41476,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40175 | 41476 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 40176 | 41477 | .extra_temps = .{ |
| 40177 | 41478 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 40178 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41479 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40179 | 41480 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 40180 | 41481 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 40181 | 41482 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -40211,6 +41512,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40211 | 41512 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 40212 | 41513 | } }, |
| 40213 | 41514 | }, .{ |
| 41515 | .required_abi = .gnu, |
| 41516 | .required_cc_abi = .sysv64, |
| 40214 | 41517 | .required_features = .{ .@"64bit", .sse2, .x87, .fast_imm16 }, |
| 40215 | 41518 | .src_constraints = .{ |
| 40216 | 41519 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -40223,7 +41526,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40223 | 41526 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 40224 | 41527 | .extra_temps = .{ |
| 40225 | 41528 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 40226 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41529 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40227 | 41530 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 40228 | 41531 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 40229 | 41532 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -40259,6 +41562,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40259 | 41562 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 40260 | 41563 | } }, |
| 40261 | 41564 | }, .{ |
| 41565 | .required_abi = .gnu, |
| 41566 | .required_cc_abi = .sysv64, |
| 40262 | 41567 | .required_features = .{ .@"64bit", .sse2, .x87, null }, |
| 40263 | 41568 | .src_constraints = .{ |
| 40264 | 41569 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -40271,7 +41576,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40271 | 41576 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 40272 | 41577 | .extra_temps = .{ |
| 40273 | 41578 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 40274 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41579 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40275 | 41580 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 40276 | 41581 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 40277 | 41582 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -40307,6 +41612,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40307 | 41612 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 40308 | 41613 | } }, |
| 40309 | 41614 | }, .{ |
| 41615 | .required_abi = .gnu, |
| 41616 | .required_cc_abi = .sysv64, |
| 40310 | 41617 | .required_features = .{ .@"64bit", .sse, .x87, .fast_imm16 }, |
| 40311 | 41618 | .src_constraints = .{ |
| 40312 | 41619 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -40319,7 +41626,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40319 | 41626 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 40320 | 41627 | .extra_temps = .{ |
| 40321 | 41628 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 40322 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41629 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40323 | 41630 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 40324 | 41631 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 40325 | 41632 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -40355,6 +41662,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40355 | 41662 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 40356 | 41663 | } }, |
| 40357 | 41664 | }, .{ |
| 41665 | .required_abi = .gnu, |
| 41666 | .required_cc_abi = .sysv64, |
| 40358 | 41667 | .required_features = .{ .@"64bit", .sse, .x87, null }, |
| 40359 | 41668 | .src_constraints = .{ |
| 40360 | 41669 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -40367,7 +41676,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40367 | 41676 | .call_frame = .{ .size = 16 * 2, .alignment = .@"16" }, |
| 40368 | 41677 | .extra_temps = .{ |
| 40369 | 41678 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 40370 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 41679 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 40371 | 41680 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 40372 | 41681 | .{ .type = .usize, .kind = .{ .extern_func = "__fmodx" } }, |
| 40373 | 41682 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -40410,7 +41719,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40410 | 41719 | .any, |
| 40411 | 41720 | }, |
| 40412 | 41721 | .patterns = &.{ |
| 40413 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 41722 | .{ .src = .{ |
| 41723 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 41724 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 41725 | .none, |
| 41726 | } }, |
| 40414 | 41727 | }, |
| 40415 | 41728 | .call_frame = .{ .alignment = .@"16" }, |
| 40416 | 41729 | .extra_temps = .{ |
| ... | ... | @@ -40451,7 +41764,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40451 | 41764 | .any, |
| 40452 | 41765 | }, |
| 40453 | 41766 | .patterns = &.{ |
| 40454 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 41767 | .{ .src = .{ |
| 41768 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 41769 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 41770 | .none, |
| 41771 | } }, |
| 40455 | 41772 | }, |
| 40456 | 41773 | .call_frame = .{ .alignment = .@"16" }, |
| 40457 | 41774 | .extra_temps = .{ |
| ... | ... | @@ -40492,7 +41809,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40492 | 41809 | .any, |
| 40493 | 41810 | }, |
| 40494 | 41811 | .patterns = &.{ |
| 40495 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 41812 | .{ .src = .{ |
| 41813 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 41814 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 41815 | .none, |
| 41816 | } }, |
| 40496 | 41817 | }, |
| 40497 | 41818 | .call_frame = .{ .alignment = .@"16" }, |
| 40498 | 41819 | .extra_temps = .{ |
| ... | ... | @@ -40534,7 +41855,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40534 | 41855 | .any, |
| 40535 | 41856 | }, |
| 40536 | 41857 | .patterns = &.{ |
| 40537 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 41858 | .{ .src = .{ |
| 41859 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 41860 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 41861 | .none, |
| 41862 | } }, |
| 40538 | 41863 | }, |
| 40539 | 41864 | .call_frame = .{ .alignment = .@"16" }, |
| 40540 | 41865 | .extra_temps = .{ |
| ... | ... | @@ -40579,8 +41904,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40579 | 41904 | .call_frame = .{ .alignment = .@"16" }, |
| 40580 | 41905 | .extra_temps = .{ |
| 40581 | 41906 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 40582 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 40583 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 41907 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 41908 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 40584 | 41909 | .{ .type = .usize, .kind = .{ .extern_func = "fmodq" } }, |
| 40585 | 41910 | .{ .type = .f128, .kind = .{ .reg = .rcx } }, |
| 40586 | 41911 | .{ .type = .f128, .kind = .{ .reg = .rdx } }, |
| ... | ... | @@ -40625,8 +41950,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40625 | 41950 | .call_frame = .{ .alignment = .@"16" }, |
| 40626 | 41951 | .extra_temps = .{ |
| 40627 | 41952 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 40628 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 40629 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 41953 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 41954 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 40630 | 41955 | .{ .type = .usize, .kind = .{ .extern_func = "fmodq" } }, |
| 40631 | 41956 | .{ .type = .f128, .kind = .{ .reg = .rcx } }, |
| 40632 | 41957 | .{ .type = .f128, .kind = .{ .reg = .rdx } }, |
| ... | ... | @@ -40671,8 +41996,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40671 | 41996 | .call_frame = .{ .alignment = .@"16" }, |
| 40672 | 41997 | .extra_temps = .{ |
| 40673 | 41998 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 40674 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 40675 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 41999 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 42000 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 40676 | 42001 | .{ .type = .usize, .kind = .{ .extern_func = "fmodq" } }, |
| 40677 | 42002 | .{ .type = .f128, .kind = .{ .reg = .rcx } }, |
| 40678 | 42003 | .{ .type = .f128, .kind = .{ .reg = .rdx } }, |
| ... | ... | @@ -40718,8 +42043,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40718 | 42043 | .call_frame = .{ .alignment = .@"16" }, |
| 40719 | 42044 | .extra_temps = .{ |
| 40720 | 42045 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 40721 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 40722 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 42046 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 42047 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 40723 | 42048 | .{ .type = .usize, .kind = .{ .extern_func = "fmodq" } }, |
| 40724 | 42049 | .{ .type = .f128, .kind = .{ .reg = .rdx } }, |
| 40725 | 42050 | .{ .type = .f128, .kind = .mem }, |
| ... | ... | @@ -40761,7 +42086,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40761 | 42086 | }; |
| 40762 | 42087 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 40763 | 42088 | }, |
| 40764 | | .ptr_add => |air_tag| if (use_old) try cg.airPtrArithmetic(inst, air_tag) else { |
| 42089 | .ptr_add => |air_tag| { |
| 40765 | 42090 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 40766 | 42091 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| 40767 | 42092 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -40817,7 +42142,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40817 | 42142 | .patterns = &.{ |
| 40818 | 42143 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 40819 | 42144 | }, |
| 40820 | | .dst_temps = .{ .{ .ref = .src1 }, .unused }, |
| 42145 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } }, .unused }, |
| 40821 | 42146 | .each = .{ .once = &.{ |
| 40822 | 42147 | .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"4", .src1), ._, ._ }, |
| 40823 | 42148 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, |
| ... | ... | @@ -40838,7 +42163,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40838 | 42163 | .patterns = &.{ |
| 40839 | 42164 | .{ .src = .{ .to_gpr, .to_gpr, .none } }, |
| 40840 | 42165 | }, |
| 40841 | | .dst_temps = .{ .{ .ref = .src1 }, .unused }, |
| 42166 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .general_purpose } }, .unused }, |
| 40842 | 42167 | .each = .{ .once = &.{ |
| 40843 | 42168 | .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"8", .src1), ._, ._ }, |
| 40844 | 42169 | .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ }, |
| ... | ... | @@ -40875,7 +42200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 40875 | 42200 | } else res[0] = ops[0]; |
| 40876 | 42201 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 40877 | 42202 | }, |
| 40878 | | .ptr_sub => |air_tag| if (use_old) try cg.airPtrArithmetic(inst, air_tag) else { |
| 42203 | .ptr_sub => |air_tag| { |
| 40879 | 42204 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 40880 | 42205 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| 40881 | 42206 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -41004,7 +42329,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 41004 | 42329 | } else res[0] = ops[0]; |
| 41005 | 42330 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 41006 | 42331 | }, |
| 41007 | | .max => |air_tag| if (use_old) try cg.airBinOp(inst, air_tag) else { |
| 42332 | .max => |air_tag| { |
| 41008 | 42333 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 41009 | 42334 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 41010 | 42335 | var res: [1]Temp = undefined; |
| ... | ... | @@ -43810,7 +45135,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 43810 | 45135 | .any, |
| 43811 | 45136 | }, |
| 43812 | 45137 | .patterns = &.{ |
| 43813 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 45138 | .{ .src = .{ |
| 45139 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 45140 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 45141 | .none, |
| 45142 | } }, |
| 43814 | 45143 | }, |
| 43815 | 45144 | .call_frame = .{ .alignment = .@"16" }, |
| 43816 | 45145 | .extra_temps = .{ |
| ... | ... | @@ -43950,8 +45279,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 43950 | 45279 | .call_frame = .{ .alignment = .@"16" }, |
| 43951 | 45280 | .extra_temps = .{ |
| 43952 | 45281 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 43953 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 43954 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 45282 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 45283 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 43955 | 45284 | .{ .type = .usize, .kind = .{ .extern_func = "__fmaxh" } }, |
| 43956 | 45285 | .unused, |
| 43957 | 45286 | .unused, |
| ... | ... | @@ -43986,8 +45315,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 43986 | 45315 | .call_frame = .{ .alignment = .@"16" }, |
| 43987 | 45316 | .extra_temps = .{ |
| 43988 | 45317 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 43989 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 43990 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 45318 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 45319 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 43991 | 45320 | .{ .type = .usize, .kind = .{ .extern_func = "__fmaxh" } }, |
| 43992 | 45321 | .unused, |
| 43993 | 45322 | .unused, |
| ... | ... | @@ -44023,8 +45352,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 44023 | 45352 | .call_frame = .{ .alignment = .@"16" }, |
| 44024 | 45353 | .extra_temps = .{ |
| 44025 | 45354 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 44026 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 44027 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 45355 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 45356 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 44028 | 45357 | .{ .type = .usize, .kind = .{ .extern_func = "__fmaxh" } }, |
| 44029 | 45358 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 44030 | 45359 | .unused, |
| ... | ... | @@ -44063,8 +45392,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 44063 | 45392 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 44064 | 45393 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 44065 | 45394 | .{ .type = .f32, .kind = .mem }, |
| 44066 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 44067 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 45395 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 45396 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 44068 | 45397 | .{ .type = .usize, .kind = .{ .extern_func = "__fmaxh" } }, |
| 44069 | 45398 | .unused, |
| 44070 | 45399 | .unused, |
| ... | ... | @@ -44476,7 +45805,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 44476 | 45805 | .any, |
| 44477 | 45806 | }, |
| 44478 | 45807 | .patterns = &.{ |
| 44479 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 45808 | .{ .src = .{ |
| 45809 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 45810 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 45811 | .none, |
| 45812 | } }, |
| 44480 | 45813 | }, |
| 44481 | 45814 | .call_frame = .{ .alignment = .@"16" }, |
| 44482 | 45815 | .extra_temps = .{ |
| ... | ... | @@ -44733,8 +46066,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 44733 | 46066 | .call_frame = .{ .alignment = .@"16" }, |
| 44734 | 46067 | .extra_temps = .{ |
| 44735 | 46068 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 44736 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 44737 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 46069 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 46070 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 44738 | 46071 | .{ .type = .usize, .kind = .{ .extern_func = "fmax" } }, |
| 44739 | 46072 | .unused, |
| 44740 | 46073 | .unused, |
| ... | ... | @@ -45020,7 +46353,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 45020 | 46353 | .any, |
| 45021 | 46354 | }, |
| 45022 | 46355 | .patterns = &.{ |
| 45023 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 46356 | .{ .src = .{ |
| 46357 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 46358 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 46359 | .none, |
| 46360 | } }, |
| 45024 | 46361 | }, |
| 45025 | 46362 | .call_frame = .{ .alignment = .@"16" }, |
| 45026 | 46363 | .extra_temps = .{ |
| ... | ... | @@ -45054,8 +46391,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 45054 | 46391 | .call_frame = .{ .alignment = .@"16" }, |
| 45055 | 46392 | .extra_temps = .{ |
| 45056 | 46393 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 45057 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 45058 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 46394 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 46395 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 45059 | 46396 | .{ .type = .usize, .kind = .{ .extern_func = "fmaxq" } }, |
| 45060 | 46397 | .unused, |
| 45061 | 46398 | .unused, |
| ... | ... | @@ -45089,8 +46426,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 45089 | 46426 | .call_frame = .{ .alignment = .@"16" }, |
| 45090 | 46427 | .extra_temps = .{ |
| 45091 | 46428 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 45092 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 45093 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 46429 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 46430 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 45094 | 46431 | .{ .type = .usize, .kind = .{ .extern_func = "fmaxq" } }, |
| 45095 | 46432 | .unused, |
| 45096 | 46433 | .unused, |
| ... | ... | @@ -45124,8 +46461,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 45124 | 46461 | .call_frame = .{ .alignment = .@"16" }, |
| 45125 | 46462 | .extra_temps = .{ |
| 45126 | 46463 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 45127 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 45128 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 46464 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 46465 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 45129 | 46466 | .{ .type = .usize, .kind = .{ .extern_func = "fmaxq" } }, |
| 45130 | 46467 | .unused, |
| 45131 | 46468 | .unused, |
| ... | ... | @@ -45157,7 +46494,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 45157 | 46494 | }; |
| 45158 | 46495 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 45159 | 46496 | }, |
| 45160 | | .min => |air_tag| if (use_old) try cg.airBinOp(inst, air_tag) else { |
| 46497 | .min => |air_tag| { |
| 45161 | 46498 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 45162 | 46499 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 45163 | 46500 | var res: [1]Temp = undefined; |
| ... | ... | @@ -47969,7 +49306,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 47969 | 49306 | .any, |
| 47970 | 49307 | }, |
| 47971 | 49308 | .patterns = &.{ |
| 47972 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 49309 | .{ .src = .{ |
| 49310 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 49311 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 49312 | .none, |
| 49313 | } }, |
| 47973 | 49314 | }, |
| 47974 | 49315 | .call_frame = .{ .alignment = .@"16" }, |
| 47975 | 49316 | .extra_temps = .{ |
| ... | ... | @@ -48109,8 +49450,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 48109 | 49450 | .call_frame = .{ .alignment = .@"16" }, |
| 48110 | 49451 | .extra_temps = .{ |
| 48111 | 49452 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 48112 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 48113 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 49453 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 49454 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 48114 | 49455 | .{ .type = .usize, .kind = .{ .extern_func = "__fminh" } }, |
| 48115 | 49456 | .unused, |
| 48116 | 49457 | .unused, |
| ... | ... | @@ -48145,8 +49486,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 48145 | 49486 | .call_frame = .{ .alignment = .@"16" }, |
| 48146 | 49487 | .extra_temps = .{ |
| 48147 | 49488 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 48148 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 48149 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 49489 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 49490 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 48150 | 49491 | .{ .type = .usize, .kind = .{ .extern_func = "__fminh" } }, |
| 48151 | 49492 | .unused, |
| 48152 | 49493 | .unused, |
| ... | ... | @@ -48182,8 +49523,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 48182 | 49523 | .call_frame = .{ .alignment = .@"16" }, |
| 48183 | 49524 | .extra_temps = .{ |
| 48184 | 49525 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 48185 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 48186 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 49526 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 49527 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 48187 | 49528 | .{ .type = .usize, .kind = .{ .extern_func = "__fminh" } }, |
| 48188 | 49529 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 48189 | 49530 | .unused, |
| ... | ... | @@ -48222,8 +49563,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 48222 | 49563 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 48223 | 49564 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 48224 | 49565 | .{ .type = .f32, .kind = .mem }, |
| 48225 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 48226 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 49566 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 49567 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 48227 | 49568 | .{ .type = .usize, .kind = .{ .extern_func = "__fminh" } }, |
| 48228 | 49569 | .unused, |
| 48229 | 49570 | .unused, |
| ... | ... | @@ -48635,7 +49976,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 48635 | 49976 | .any, |
| 48636 | 49977 | }, |
| 48637 | 49978 | .patterns = &.{ |
| 48638 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 49979 | .{ .src = .{ |
| 49980 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 49981 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 49982 | .none, |
| 49983 | } }, |
| 48639 | 49984 | }, |
| 48640 | 49985 | .call_frame = .{ .alignment = .@"16" }, |
| 48641 | 49986 | .extra_temps = .{ |
| ... | ... | @@ -48892,8 +50237,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 48892 | 50237 | .call_frame = .{ .alignment = .@"16" }, |
| 48893 | 50238 | .extra_temps = .{ |
| 48894 | 50239 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 48895 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 48896 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 50240 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 50241 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 48897 | 50242 | .{ .type = .usize, .kind = .{ .extern_func = "fmin" } }, |
| 48898 | 50243 | .unused, |
| 48899 | 50244 | .unused, |
| ... | ... | @@ -49167,7 +50512,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 49167 | 50512 | .any, |
| 49168 | 50513 | }, |
| 49169 | 50514 | .patterns = &.{ |
| 49170 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 50515 | .{ .src = .{ |
| 50516 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 50517 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 50518 | .none, |
| 50519 | } }, |
| 49171 | 50520 | }, |
| 49172 | 50521 | .call_frame = .{ .alignment = .@"16" }, |
| 49173 | 50522 | .extra_temps = .{ |
| ... | ... | @@ -49201,8 +50550,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 49201 | 50550 | .call_frame = .{ .alignment = .@"16" }, |
| 49202 | 50551 | .extra_temps = .{ |
| 49203 | 50552 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 49204 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 49205 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 50553 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 50554 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 49206 | 50555 | .{ .type = .usize, .kind = .{ .extern_func = "fminq" } }, |
| 49207 | 50556 | .unused, |
| 49208 | 50557 | .unused, |
| ... | ... | @@ -49236,8 +50585,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 49236 | 50585 | .call_frame = .{ .alignment = .@"16" }, |
| 49237 | 50586 | .extra_temps = .{ |
| 49238 | 50587 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 49239 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 49240 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 50588 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 50589 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 49241 | 50590 | .{ .type = .usize, .kind = .{ .extern_func = "fminq" } }, |
| 49242 | 50591 | .unused, |
| 49243 | 50592 | .unused, |
| ... | ... | @@ -49271,8 +50620,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 49271 | 50620 | .call_frame = .{ .alignment = .@"16" }, |
| 49272 | 50621 | .extra_temps = .{ |
| 49273 | 50622 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 49274 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 49275 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 50623 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 50624 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 49276 | 50625 | .{ .type = .usize, .kind = .{ .extern_func = "fminq" } }, |
| 49277 | 50626 | .unused, |
| 49278 | 50627 | .unused, |
| ... | ... | @@ -49304,10 +50653,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 49304 | 50653 | }; |
| 49305 | 50654 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 49306 | 50655 | }, |
| 49307 | | .add_with_overflow => |air_tag| if (use_old) try cg.airAddSubWithOverflow(inst) else fallback: { |
| 50656 | .add_with_overflow => |air_tag| { |
| 49308 | 50657 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 49309 | 50658 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| 49310 | | if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airAddSubWithOverflow(inst); |
| 49311 | 50659 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 49312 | 50660 | var res: [2]Temp = undefined; |
| 49313 | 50661 | cg.select(&res, &.{ ty_pl.ty.toType(), .u1 }, &ops, comptime &.{ .{ |
| ... | ... | @@ -50155,10 +51503,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 50155 | 51503 | try res[0].withOverflow(&res[1], cg); |
| 50156 | 51504 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 50157 | 51505 | }, |
| 50158 | | .sub_with_overflow => |air_tag| if (use_old) try cg.airAddSubWithOverflow(inst) else fallback: { |
| 51506 | .sub_with_overflow => |air_tag| { |
| 50159 | 51507 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 50160 | 51508 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| 50161 | | if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airAddSubWithOverflow(inst); |
| 50162 | 51509 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 50163 | 51510 | var res: [2]Temp = undefined; |
| 50164 | 51511 | cg.select(&res, &.{ ty_pl.ty.toType(), .u1 }, &ops, comptime &.{ .{ |
| ... | ... | @@ -51061,10 +52408,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 51061 | 52408 | try res[0].withOverflow(&res[1], cg); |
| 51062 | 52409 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 51063 | 52410 | }, |
| 51064 | | .mul_with_overflow => |air_tag| if (use_old) try cg.airMulWithOverflow(inst) else fallback: { |
| 52411 | .mul_with_overflow => |air_tag| { |
| 51065 | 52412 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 51066 | 52413 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| 51067 | | if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airMulWithOverflow(inst); |
| 51068 | 52414 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 51069 | 52415 | var res: [2]Temp = undefined; |
| 51070 | 52416 | cg.select(&res, &.{ ty_pl.ty.toType(), .u1 }, &ops, comptime &.{ .{ |
| ... | ... | @@ -54659,10 +56005,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 54659 | 56005 | try res[0].withOverflow(&res[1], cg); |
| 54660 | 56006 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 54661 | 56007 | }, |
| 54662 | | .shl_with_overflow => |air_tag| if (use_old) try cg.airShlWithOverflow(inst) else fallback: { |
| 56008 | .shl_with_overflow => |air_tag| { |
| 54663 | 56009 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 54664 | 56010 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| 54665 | | if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airShlWithOverflow(inst); |
| 54666 | 56011 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 54667 | 56012 | var res: [2]Temp = undefined; |
| 54668 | 56013 | cg.select(&res, &.{ ty_pl.ty.toType(), .u1 }, &ops, comptime &.{ .{ |
| ... | ... | @@ -55515,7 +56860,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 55515 | 56860 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 55516 | 56861 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 55517 | 56862 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 55518 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 56863 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 55519 | 56864 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 55520 | 56865 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 55521 | 56866 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -55579,7 +56924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 55579 | 56924 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 55580 | 56925 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 55581 | 56926 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 55582 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 56927 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 55583 | 56928 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 55584 | 56929 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 55585 | 56930 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -55643,7 +56988,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 55643 | 56988 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 55644 | 56989 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 55645 | 56990 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 55646 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 56991 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 55647 | 56992 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 55648 | 56993 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 55649 | 56994 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -55707,7 +57052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 55707 | 57052 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 55708 | 57053 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 55709 | 57054 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 55710 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57055 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 55711 | 57056 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 55712 | 57057 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 55713 | 57058 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -55771,7 +57116,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 55771 | 57116 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 55772 | 57117 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 55773 | 57118 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 55774 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57119 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 55775 | 57120 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 55776 | 57121 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 55777 | 57122 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -55827,7 +57172,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 55827 | 57172 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 55828 | 57173 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 55829 | 57174 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 55830 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57175 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 55831 | 57176 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 55832 | 57177 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 55833 | 57178 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -55883,7 +57228,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 55883 | 57228 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 55884 | 57229 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 55885 | 57230 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 55886 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57231 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 55887 | 57232 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 55888 | 57233 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 55889 | 57234 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -55939,7 +57284,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 55939 | 57284 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 55940 | 57285 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 55941 | 57286 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 55942 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57287 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 55943 | 57288 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 55944 | 57289 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 55945 | 57290 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -55995,7 +57340,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 55995 | 57340 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 55996 | 57341 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 55997 | 57342 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 55998 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57343 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 55999 | 57344 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 56000 | 57345 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 56001 | 57346 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -56059,7 +57404,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56059 | 57404 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56060 | 57405 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56061 | 57406 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56062 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57407 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56063 | 57408 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 56064 | 57409 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 56065 | 57410 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -56123,7 +57468,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56123 | 57468 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56124 | 57469 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56125 | 57470 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56126 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57471 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56127 | 57472 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 56128 | 57473 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 56129 | 57474 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -56187,7 +57532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56187 | 57532 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56188 | 57533 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56189 | 57534 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56190 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57535 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56191 | 57536 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 56192 | 57537 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 56193 | 57538 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -56251,7 +57596,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56251 | 57596 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56252 | 57597 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56253 | 57598 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56254 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57599 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56255 | 57600 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 56256 | 57601 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 56257 | 57602 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -56308,7 +57653,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56308 | 57653 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56309 | 57654 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56310 | 57655 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56311 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57656 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56312 | 57657 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 56313 | 57658 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 56314 | 57659 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -56365,7 +57710,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56365 | 57710 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56366 | 57711 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56367 | 57712 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56368 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57713 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56369 | 57714 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 56370 | 57715 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 56371 | 57716 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -56422,7 +57767,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56422 | 57767 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56423 | 57768 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56424 | 57769 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56425 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57770 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56426 | 57771 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 56427 | 57772 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 56428 | 57773 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -56479,7 +57824,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56479 | 57824 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56480 | 57825 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56481 | 57826 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56482 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57827 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56483 | 57828 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 56484 | 57829 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 56485 | 57830 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -56549,7 +57894,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56549 | 57894 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56550 | 57895 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56551 | 57896 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56552 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57897 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56553 | 57898 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 56554 | 57899 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 56555 | 57900 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -56619,7 +57964,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56619 | 57964 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56620 | 57965 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56621 | 57966 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56622 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 57967 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56623 | 57968 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 56624 | 57969 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 56625 | 57970 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -56689,7 +58034,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56689 | 58034 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56690 | 58035 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56691 | 58036 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56692 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58037 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56693 | 58038 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 56694 | 58039 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 56695 | 58040 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -56759,7 +58104,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56759 | 58104 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56760 | 58105 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56761 | 58106 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56762 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58107 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56763 | 58108 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 56764 | 58109 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 56765 | 58110 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -56821,7 +58166,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56821 | 58166 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56822 | 58167 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56823 | 58168 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56824 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58169 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56825 | 58170 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 56826 | 58171 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 56827 | 58172 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -56883,7 +58228,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56883 | 58228 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56884 | 58229 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56885 | 58230 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56886 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58231 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56887 | 58232 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 56888 | 58233 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 56889 | 58234 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -56945,7 +58290,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 56945 | 58290 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 56946 | 58291 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 56947 | 58292 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 56948 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58293 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 56949 | 58294 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 56950 | 58295 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 56951 | 58296 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -57007,7 +58352,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57007 | 58352 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 57008 | 58353 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57009 | 58354 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57010 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58355 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57011 | 58356 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57012 | 58357 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57013 | 58358 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -57069,7 +58414,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57069 | 58414 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 57070 | 58415 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57071 | 58416 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57072 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58417 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57073 | 58418 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57074 | 58419 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57075 | 58420 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -57131,7 +58476,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57131 | 58476 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 57132 | 58477 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57133 | 58478 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57134 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58479 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57135 | 58480 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57136 | 58481 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57137 | 58482 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -57193,7 +58538,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57193 | 58538 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 57194 | 58539 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57195 | 58540 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57196 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58541 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57197 | 58542 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57198 | 58543 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57199 | 58544 | .{ ._, ._, .mov, .memad(.dst0q, .add_src0_size, -8), .tmp4q, ._, ._ }, |
| ... | ... | @@ -57255,7 +58600,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57255 | 58600 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57256 | 58601 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57257 | 58602 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57258 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58603 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57259 | 58604 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 57260 | 58605 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 57261 | 58606 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -57325,7 +58670,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57325 | 58670 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57326 | 58671 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57327 | 58672 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57328 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58673 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57329 | 58674 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 57330 | 58675 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 57331 | 58676 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -57395,7 +58740,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57395 | 58740 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57396 | 58741 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57397 | 58742 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57398 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58743 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57399 | 58744 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 57400 | 58745 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 57401 | 58746 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -57465,7 +58810,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57465 | 58810 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57466 | 58811 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57467 | 58812 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57468 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58813 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57469 | 58814 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 57470 | 58815 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 57471 | 58816 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -57535,7 +58880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57535 | 58880 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57536 | 58881 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57537 | 58882 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57538 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58883 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57539 | 58884 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57540 | 58885 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57541 | 58886 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -57596,7 +58941,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57596 | 58941 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57597 | 58942 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57598 | 58943 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57599 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 58944 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57600 | 58945 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57601 | 58946 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57602 | 58947 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -57657,7 +59002,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57657 | 59002 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57658 | 59003 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57659 | 59004 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57660 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 59005 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57661 | 59006 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57662 | 59007 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57663 | 59008 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -57718,7 +59063,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57718 | 59063 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57719 | 59064 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57720 | 59065 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57721 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 59066 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57722 | 59067 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57723 | 59068 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57724 | 59069 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -57779,7 +59124,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57779 | 59124 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57780 | 59125 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57781 | 59126 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57782 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 59127 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57783 | 59128 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57784 | 59129 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57785 | 59130 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -57840,7 +59185,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57840 | 59185 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57841 | 59186 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57842 | 59187 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57843 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 59188 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57844 | 59189 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57845 | 59190 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57846 | 59191 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -57901,7 +59246,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57901 | 59246 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57902 | 59247 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57903 | 59248 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57904 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 59249 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57905 | 59250 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57906 | 59251 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57907 | 59252 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -57962,7 +59307,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 57962 | 59307 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 57963 | 59308 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 57964 | 59309 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 57965 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 59310 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 57966 | 59311 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 57967 | 59312 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 57968 | 59313 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -58005,7 +59350,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58005 | 59350 | try res[0].withOverflow(&res[1], cg); |
| 58006 | 59351 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 58007 | 59352 | }, |
| 58008 | | .alloc => if (use_old) try cg.airAlloc(inst) else { |
| 59353 | .alloc => { |
| 58009 | 59354 | const ty = air_datas[@intFromEnum(inst)].ty; |
| 58010 | 59355 | const slot = try cg.tempInit(ty, .{ .lea_frame = .{ |
| 58011 | 59356 | .index = try cg.allocMemPtr(inst), |
| ... | ... | @@ -58013,7 +59358,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58013 | 59358 | try slot.finish(inst, &.{}, &.{}, cg); |
| 58014 | 59359 | }, |
| 58015 | 59360 | .inferred_alloc, .inferred_alloc_comptime => unreachable, |
| 58016 | | .ret_ptr => if (use_old) try cg.airRetPtr(inst) else { |
| 59361 | .ret_ptr => { |
| 58017 | 59362 | const ty = air_datas[@intFromEnum(inst)].ty; |
| 58018 | 59363 | var slot = switch (cg.ret_mcv.long) { |
| 58019 | 59364 | else => unreachable, |
| ... | ... | @@ -58029,7 +59374,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58029 | 59374 | try slot.finish(inst, &.{}, &.{}, cg); |
| 58030 | 59375 | }, |
| 58031 | 59376 | .assembly => try cg.airAsm(inst), |
| 58032 | | .bit_and, .bit_or, .xor, .bool_and, .bool_or => |air_tag| if (use_old) try cg.airBinOp(inst, air_tag) else { |
| 59377 | .bit_and, .bit_or, .xor, .bool_and, .bool_or => |air_tag| { |
| 58033 | 59378 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 58034 | 59379 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 58035 | 59380 | var res: [1]Temp = undefined; |
| ... | ... | @@ -58399,9 +59744,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58399 | 59744 | }; |
| 58400 | 59745 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 58401 | 59746 | }, |
| 58402 | | .shr, .shr_exact => |air_tag| if (use_old) try cg.airShlShrBinOp(inst) else fallback: { |
| 59747 | .shr, .shr_exact => |air_tag| { |
| 58403 | 59748 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 58404 | | if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airShlShrBinOp(inst); |
| 58405 | 59749 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 58406 | 59750 | var res: [1]Temp = undefined; |
| 58407 | 59751 | cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ |
| ... | ... | @@ -58964,9 +60308,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 58964 | 60308 | }; |
| 58965 | 60309 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 58966 | 60310 | }, |
| 58967 | | .shl, .shl_exact => |air_tag| if (use_old) try cg.airShlShrBinOp(inst) else fallback: { |
| 60311 | .shl, .shl_exact => |air_tag| { |
| 58968 | 60312 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 58969 | | if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airShlShrBinOp(inst); |
| 58970 | 60313 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 58971 | 60314 | var res: [1]Temp = undefined; |
| 58972 | 60315 | cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ |
| ... | ... | @@ -59339,10 +60682,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 59339 | 60682 | } |
| 59340 | 60683 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 59341 | 60684 | }, |
| 59342 | | .shl_sat => |air_tag| if (use_old) try cg.airShlSat(inst) else fallback: { |
| 60685 | .shl_sat => |air_tag| { |
| 59343 | 60686 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 59344 | 60687 | const lhs_ty = cg.typeOf(bin_op.lhs); |
| 59345 | | if (lhs_ty.isVector(zcu)) break :fallback try cg.airShlSat(inst); |
| 59346 | 60688 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 59347 | 60689 | var res: [1]Temp = undefined; |
| 59348 | 60690 | switch (ops[1].tracking(cg).short) { |
| ... | ... | @@ -61190,7 +62532,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61190 | 62532 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 61191 | 62533 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61192 | 62534 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61193 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 62535 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61194 | 62536 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 61195 | 62537 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 61196 | 62538 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -61274,7 +62616,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61274 | 62616 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 61275 | 62617 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61276 | 62618 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61277 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 62619 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61278 | 62620 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 61279 | 62621 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 61280 | 62622 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -61357,7 +62699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61357 | 62699 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 61358 | 62700 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61359 | 62701 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61360 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 62702 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61361 | 62703 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 61362 | 62704 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 61363 | 62705 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -61427,7 +62769,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61427 | 62769 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 61428 | 62770 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61429 | 62771 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61430 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 62772 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61431 | 62773 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 61432 | 62774 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 61433 | 62775 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -61498,7 +62840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61498 | 62840 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 61499 | 62841 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61500 | 62842 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61501 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 62843 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61502 | 62844 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 61503 | 62845 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 61504 | 62846 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -61583,7 +62925,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61583 | 62925 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 61584 | 62926 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61585 | 62927 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61586 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 62928 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61587 | 62929 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 61588 | 62930 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 61589 | 62931 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -61667,7 +63009,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61667 | 63009 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 61668 | 63010 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61669 | 63011 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61670 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63012 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61671 | 63013 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 61672 | 63014 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 61673 | 63015 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -61738,7 +63080,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61738 | 63080 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 61739 | 63081 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61740 | 63082 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61741 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63083 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61742 | 63084 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 61743 | 63085 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 61744 | 63086 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -61810,7 +63152,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61810 | 63152 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 61811 | 63153 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61812 | 63154 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61813 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63155 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61814 | 63156 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 61815 | 63157 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 61816 | 63158 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -61901,7 +63243,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61901 | 63243 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 61902 | 63244 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61903 | 63245 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61904 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63246 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61905 | 63247 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 61906 | 63248 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 61907 | 63249 | .{ ._, ._, .mov, .tmp5q, .tmp3q, ._, ._ }, |
| ... | ... | @@ -61992,7 +63334,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 61992 | 63334 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 61993 | 63335 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 61994 | 63336 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 61995 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63337 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 61996 | 63338 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 61997 | 63339 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 61998 | 63340 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -62070,7 +63412,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 62070 | 63412 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 62071 | 63413 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 62072 | 63414 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 62073 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63415 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 62074 | 63416 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 62075 | 63417 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 62076 | 63418 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -62148,7 +63490,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 62148 | 63490 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 62149 | 63491 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 62150 | 63492 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 62151 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63493 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 62152 | 63494 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 62153 | 63495 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 62154 | 63496 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -62226,7 +63568,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 62226 | 63568 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .src0, .add_size_div_8), ._, ._ }, |
| 62227 | 63569 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 62228 | 63570 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 62229 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63571 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 62230 | 63572 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 62231 | 63573 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 62232 | 63574 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -62304,7 +63646,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 62304 | 63646 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 62305 | 63647 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 62306 | 63648 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 62307 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63649 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 62308 | 63650 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 62309 | 63651 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 62310 | 63652 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -62394,7 +63736,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 62394 | 63736 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 62395 | 63737 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 62396 | 63738 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 62397 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63739 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 62398 | 63740 | .{ ._, ._, .mov, .tmp3q, .memad(.src0q, .add_size, -8), ._, ._ }, |
| 62399 | 63741 | .{ ._, ._, .mov, .tmp4q, .lea(.tmp2q), ._, ._ }, |
| 62400 | 63742 | .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, |
| ... | ... | @@ -62484,7 +63826,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 62484 | 63826 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 62485 | 63827 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 62486 | 63828 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 62487 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63829 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 62488 | 63830 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 62489 | 63831 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 62490 | 63832 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -62561,7 +63903,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 62561 | 63903 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 62562 | 63904 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 62563 | 63905 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 62564 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63906 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 62565 | 63907 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 62566 | 63908 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 62567 | 63909 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -62638,7 +63980,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 62638 | 63980 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 62639 | 63981 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 62640 | 63982 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 62641 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 63983 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 62642 | 63984 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 62643 | 63985 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 62644 | 63986 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -62715,7 +64057,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 62715 | 64057 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, |
| 62716 | 64058 | .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, |
| 62717 | 64059 | .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, |
| 62718 | | .{ ._, ._, .lea, .tmp2p, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, |
| 64060 | .{ ._, ._, .lea, .tmp2p, .memsi(.src0, .@"8", .tmp1), ._, ._ }, |
| 62719 | 64061 | .{ ._, ._, .mov, .tmp3q, .lea(.tmp2q), ._, ._ }, |
| 62720 | 64062 | .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, |
| 62721 | 64063 | .{ ._, ._ld, .sh, .tmp4q, .tmp3q, .src1b, ._ }, |
| ... | ... | @@ -62763,7 +64105,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 62763 | 64105 | }; |
| 62764 | 64106 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 62765 | 64107 | }, |
| 62766 | | .not => |air_tag| if (use_old) try cg.airUnOp(inst, air_tag) else { |
| 64108 | .not => |air_tag| { |
| 62767 | 64109 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 62768 | 64110 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 62769 | 64111 | var res: [1]Temp = undefined; |
| ... | ... | @@ -64003,7 +65345,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 64003 | 65345 | try cg.lowerBlock(inst, @ptrCast(cg.air.extra.items[block.end..][0..block.data.body_len])); |
| 64004 | 65346 | if (!cg.mod.strip) try cg.asmPseudo(.pseudo_dbg_leave_block_none); |
| 64005 | 65347 | }, |
| 64006 | | .loop => if (use_old) try cg.airLoop(inst) else { |
| 65348 | .loop => { |
| 64007 | 65349 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 64008 | 65350 | const block = cg.air.extraData(Air.Block, ty_pl.payload); |
| 64009 | 65351 | try cg.loops.putNoClobber(cg.gpa, inst, .{ |
| ... | ... | @@ -64027,14 +65369,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 64027 | 65369 | .br => try cg.airBr(inst), |
| 64028 | 65370 | .trap => try cg.asmOpOnly(.{ ._2, .ud }), |
| 64029 | 65371 | .breakpoint => try cg.asmOpOnly(.{ ._3, .int }), |
| 64030 | | .ret_addr => if (use_old) try cg.airRetAddr(inst) else { |
| 65372 | .ret_addr => { |
| 64031 | 65373 | var slot = try cg.tempInit(.usize, .{ .load_frame = .{ |
| 64032 | 65374 | .index = .ret_addr, |
| 64033 | 65375 | } }); |
| 64034 | 65376 | while (try slot.toRegClass(true, .general_purpose, cg)) {} |
| 64035 | 65377 | try slot.finish(inst, &.{}, &.{}, cg); |
| 64036 | 65378 | }, |
| 64037 | | .frame_addr => if (use_old) try cg.airFrameAddress(inst) else { |
| 65379 | .frame_addr => { |
| 64038 | 65380 | const slot = try cg.tempInit(.usize, .{ .lea_frame = .{ |
| 64039 | 65381 | .index = .base_ptr, |
| 64040 | 65382 | } }); |
| ... | ... | @@ -64044,7 +65386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 64044 | 65386 | .call_always_tail => try cg.airCall(inst, .always_tail, .{ .safety = true }), |
| 64045 | 65387 | .call_never_tail => try cg.airCall(inst, .never_tail, .{ .safety = true }), |
| 64046 | 65388 | .call_never_inline => try cg.airCall(inst, .never_inline, .{ .safety = true }), |
| 64047 | | .clz => |air_tag| if (use_old) try cg.airClz(inst) else { |
| 65389 | .clz => |air_tag| { |
| 64048 | 65390 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 64049 | 65391 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 64050 | 65392 | var res: [1]Temp = undefined; |
| ... | ... | @@ -67149,9 +68491,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67149 | 68491 | }; |
| 67150 | 68492 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 67151 | 68493 | }, |
| 67152 | | .ctz => |air_tag| if (use_old) try cg.airCtz(inst) else fallback: { |
| 68494 | .ctz => |air_tag| { |
| 67153 | 68495 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 67154 | | if (ty_op.ty.toType().isVector(zcu)) break :fallback try cg.airCtz(inst); |
| 67155 | 68496 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 67156 | 68497 | var res: [1]Temp = undefined; |
| 67157 | 68498 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| ... | ... | @@ -67547,9 +68888,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 67547 | 68888 | }; |
| 67548 | 68889 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 67549 | 68890 | }, |
| 67550 | | .popcount => |air_tag| if (use_old) try cg.airPopCount(inst) else fallback: { |
| 68891 | .popcount => |air_tag| { |
| 67551 | 68892 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 67552 | | if (ty_op.ty.toType().isVector(zcu)) break :fallback try cg.airPopCount(inst); |
| 67553 | 68893 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 67554 | 68894 | var res: [1]Temp = undefined; |
| 67555 | 68895 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| ... | ... | @@ -68436,9 +69776,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 68436 | 69776 | }; |
| 68437 | 69777 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 68438 | 69778 | }, |
| 68439 | | .byte_swap => |air_tag| if (use_old) try cg.airByteSwap(inst) else fallback: { |
| 69779 | .byte_swap => |air_tag| { |
| 68440 | 69780 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 68441 | | if (ty_op.ty.toType().isVector(zcu)) break :fallback try cg.airByteSwap(inst); |
| 68442 | 69781 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 68443 | 69782 | var res: [1]Temp = undefined; |
| 68444 | 69783 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| ... | ... | @@ -69086,9 +70425,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 69086 | 70425 | }; |
| 69087 | 70426 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 69088 | 70427 | }, |
| 69089 | | .bit_reverse => |air_tag| if (use_old) try cg.airBitReverse(inst) else fallback: { |
| 70428 | .bit_reverse => |air_tag| { |
| 69090 | 70429 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 69091 | | if (ty_op.ty.toType().isVector(zcu)) break :fallback try cg.airByteSwap(inst); |
| 69092 | 70430 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 69093 | 70431 | var res: [1]Temp = undefined; |
| 69094 | 70432 | cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{ |
| ... | ... | @@ -72189,7 +73527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72189 | 73527 | }; |
| 72190 | 73528 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 72191 | 73529 | }, |
| 72192 | | .sqrt => |air_tag| if (use_old) try cg.airSqrt(inst) else { |
| 73530 | .sqrt => |air_tag| { |
| 72193 | 73531 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 72194 | 73532 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 72195 | 73533 | var res: [1]Temp = undefined; |
| ... | ... | @@ -72209,7 +73547,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72209 | 73547 | .required_features = .{ .sse, null, null, null }, |
| 72210 | 73548 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 72211 | 73549 | .patterns = &.{ |
| 72212 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 73550 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 72213 | 73551 | }, |
| 72214 | 73552 | .call_frame = .{ .alignment = .@"16" }, |
| 72215 | 73553 | .extra_temps = .{ |
| ... | ... | @@ -72294,7 +73632,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72294 | 73632 | .call_frame = .{ .alignment = .@"16" }, |
| 72295 | 73633 | .extra_temps = .{ |
| 72296 | 73634 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72297 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 73635 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72298 | 73636 | .{ .type = .usize, .kind = .{ .extern_func = "__sqrth" } }, |
| 72299 | 73637 | .unused, |
| 72300 | 73638 | .unused, |
| ... | ... | @@ -72325,7 +73663,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72325 | 73663 | .call_frame = .{ .alignment = .@"16" }, |
| 72326 | 73664 | .extra_temps = .{ |
| 72327 | 73665 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72328 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 73666 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72329 | 73667 | .{ .type = .usize, .kind = .{ .extern_func = "__sqrth" } }, |
| 72330 | 73668 | .unused, |
| 72331 | 73669 | .unused, |
| ... | ... | @@ -72356,7 +73694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72356 | 73694 | .call_frame = .{ .alignment = .@"16" }, |
| 72357 | 73695 | .extra_temps = .{ |
| 72358 | 73696 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72359 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 73697 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72360 | 73698 | .{ .type = .usize, .kind = .{ .extern_func = "__sqrth" } }, |
| 72361 | 73699 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 72362 | 73700 | .unused, |
| ... | ... | @@ -72390,7 +73728,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72390 | 73728 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72391 | 73729 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 72392 | 73730 | .{ .type = .f32, .kind = .mem }, |
| 72393 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 73731 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72394 | 73732 | .{ .type = .usize, .kind = .{ .extern_func = "__sqrth" } }, |
| 72395 | 73733 | .unused, |
| 72396 | 73734 | .unused, |
| ... | ... | @@ -72459,7 +73797,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72459 | 73797 | .required_features = .{ .sse, null, null, null }, |
| 72460 | 73798 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 72461 | 73799 | .patterns = &.{ |
| 72462 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 73800 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 72463 | 73801 | }, |
| 72464 | 73802 | .call_frame = .{ .alignment = .@"16" }, |
| 72465 | 73803 | .extra_temps = .{ |
| ... | ... | @@ -72578,7 +73916,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72578 | 73916 | .call_frame = .{ .alignment = .@"16" }, |
| 72579 | 73917 | .extra_temps = .{ |
| 72580 | 73918 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72581 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 73919 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72582 | 73920 | .{ .type = .usize, .kind = .{ .extern_func = "sqrtf" } }, |
| 72583 | 73921 | .unused, |
| 72584 | 73922 | .unused, |
| ... | ... | @@ -72608,7 +73946,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72608 | 73946 | .call_frame = .{ .alignment = .@"16" }, |
| 72609 | 73947 | .extra_temps = .{ |
| 72610 | 73948 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72611 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 73949 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72612 | 73950 | .{ .type = .usize, .kind = .{ .extern_func = "sqrtf" } }, |
| 72613 | 73951 | .unused, |
| 72614 | 73952 | .unused, |
| ... | ... | @@ -72675,7 +74013,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72675 | 74013 | .required_features = .{ .sse, null, null, null }, |
| 72676 | 74014 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 72677 | 74015 | .patterns = &.{ |
| 72678 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 74016 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 72679 | 74017 | }, |
| 72680 | 74018 | .call_frame = .{ .alignment = .@"16" }, |
| 72681 | 74019 | .extra_temps = .{ |
| ... | ... | @@ -72794,7 +74132,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72794 | 74132 | .call_frame = .{ .alignment = .@"16" }, |
| 72795 | 74133 | .extra_temps = .{ |
| 72796 | 74134 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72797 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 74135 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72798 | 74136 | .{ .type = .usize, .kind = .{ .extern_func = "sqrt" } }, |
| 72799 | 74137 | .unused, |
| 72800 | 74138 | .unused, |
| ... | ... | @@ -72824,7 +74162,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72824 | 74162 | .call_frame = .{ .alignment = .@"16" }, |
| 72825 | 74163 | .extra_temps = .{ |
| 72826 | 74164 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72827 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 74165 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72828 | 74166 | .{ .type = .usize, .kind = .{ .extern_func = "sqrt" } }, |
| 72829 | 74167 | .unused, |
| 72830 | 74168 | .unused, |
| ... | ... | @@ -72854,7 +74192,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72854 | 74192 | .call_frame = .{ .alignment = .@"16" }, |
| 72855 | 74193 | .extra_temps = .{ |
| 72856 | 74194 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72857 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 74195 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72858 | 74196 | .{ .type = .usize, .kind = .{ .extern_func = "sqrt" } }, |
| 72859 | 74197 | .unused, |
| 72860 | 74198 | .unused, |
| ... | ... | @@ -72877,6 +74215,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72877 | 74215 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 72878 | 74216 | } }, |
| 72879 | 74217 | }, .{ |
| 74218 | .required_abi = .gnu, |
| 72880 | 74219 | .required_features = .{ .x87, null, null, null }, |
| 72881 | 74220 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 72882 | 74221 | .patterns = &.{ |
| ... | ... | @@ -72903,6 +74242,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72903 | 74242 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 72904 | 74243 | } }, |
| 72905 | 74244 | }, .{ |
| 74245 | .required_abi = .msvc, |
| 74246 | .required_features = .{ .x87, null, null, null }, |
| 74247 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 74248 | .patterns = &.{ |
| 74249 | .{ .src = .{ .mem, .none, .none } }, |
| 74250 | .{ .src = .{ .to_x87, .none, .none } }, |
| 74251 | }, |
| 74252 | .extra_temps = .{ |
| 74253 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 74254 | .{ .type = .u16, .kind = .mem }, |
| 74255 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 74256 | .unused, |
| 74257 | .unused, |
| 74258 | .unused, |
| 74259 | .unused, |
| 74260 | .unused, |
| 74261 | .unused, |
| 74262 | .unused, |
| 74263 | .unused, |
| 74264 | }, |
| 74265 | .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .x87 } }, .unused }, |
| 74266 | .each = .{ .once = &.{ |
| 74267 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 74268 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 74269 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 74270 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 74271 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 74272 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 74273 | .{ ._, .f_, .sqrt, ._, ._, ._, ._ }, |
| 74274 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 74275 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 74276 | } }, |
| 74277 | }, .{ |
| 74278 | .required_abi = .gnu, |
| 72906 | 74279 | .required_features = .{ .x87, null, null, null }, |
| 72907 | 74280 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 72908 | 74281 | .patterns = &.{ |
| ... | ... | @@ -72931,11 +74304,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72931 | 74304 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 72932 | 74305 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 72933 | 74306 | } }, |
| 74307 | }, .{ |
| 74308 | .required_abi = .msvc, |
| 74309 | .required_features = .{ .x87, null, null, null }, |
| 74310 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 74311 | .patterns = &.{ |
| 74312 | .{ .src = .{ .to_mem, .none, .none } }, |
| 74313 | }, |
| 74314 | .extra_temps = .{ |
| 74315 | .{ .type = .u16, .kind = .mem }, |
| 74316 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 74317 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 74318 | .unused, |
| 74319 | .unused, |
| 74320 | .unused, |
| 74321 | .unused, |
| 74322 | .unused, |
| 74323 | .unused, |
| 74324 | .unused, |
| 74325 | .unused, |
| 74326 | }, |
| 74327 | .dst_temps = .{ .mem, .unused }, |
| 74328 | .clobbers = .{ .eflags = true }, |
| 74329 | .each = .{ .once = &.{ |
| 74330 | .{ ._, .fn_cw, .st, .tmp0w, ._, ._, ._ }, |
| 74331 | .{ ._, ._, .movzx, .tmp1d, .memd(.tmp0b, 1), ._, ._ }, |
| 74332 | .{ ._, ._, .@"or", .memd(.tmp0b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 74333 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 74334 | .{ ._, ._, .mov, .memd(.tmp0b, 1), .tmp1b, ._, ._ }, |
| 74335 | .{ ._, ._, .mov, .tmp1p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 74336 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 74337 | .{ ._, .f_, .sqrt, ._, ._, ._, ._ }, |
| 74338 | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 74339 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 74340 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74341 | .{ ._, .f_cw, .ld, .tmp0w, ._, ._, ._ }, |
| 74342 | } }, |
| 72934 | 74343 | }, .{ |
| 72935 | 74344 | .required_features = .{ .sse, null, null, null }, |
| 72936 | 74345 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 72937 | 74346 | .patterns = &.{ |
| 72938 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 74347 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 72939 | 74348 | }, |
| 72940 | 74349 | .call_frame = .{ .alignment = .@"16" }, |
| 72941 | 74350 | .extra_temps = .{ |
| ... | ... | @@ -72965,7 +74374,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72965 | 74374 | .call_frame = .{ .alignment = .@"16" }, |
| 72966 | 74375 | .extra_temps = .{ |
| 72967 | 74376 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72968 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 74377 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72969 | 74378 | .{ .type = .usize, .kind = .{ .extern_func = "sqrtq" } }, |
| 72970 | 74379 | .unused, |
| 72971 | 74380 | .unused, |
| ... | ... | @@ -72995,7 +74404,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 72995 | 74404 | .call_frame = .{ .alignment = .@"16" }, |
| 72996 | 74405 | .extra_temps = .{ |
| 72997 | 74406 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 72998 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 74407 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 72999 | 74408 | .{ .type = .usize, .kind = .{ .extern_func = "sqrtq" } }, |
| 73000 | 74409 | .unused, |
| 73001 | 74410 | .unused, |
| ... | ... | @@ -73025,7 +74434,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73025 | 74434 | .call_frame = .{ .alignment = .@"16" }, |
| 73026 | 74435 | .extra_temps = .{ |
| 73027 | 74436 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73028 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 74437 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73029 | 74438 | .{ .type = .usize, .kind = .{ .extern_func = "sqrtq" } }, |
| 73030 | 74439 | .unused, |
| 73031 | 74440 | .unused, |
| ... | ... | @@ -73056,7 +74465,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73056 | 74465 | }; |
| 73057 | 74466 | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| 73058 | 74467 | }, |
| 73059 | | .sin, .cos, .tan, .exp, .exp2, .log, .log2, .log10, .round => |air_tag| if (use_old) try cg.airUnaryMath(inst, air_tag) else { |
| 74468 | .sin, .cos, .tan, .exp, .exp2, .log, .log2, .log10, .round => |air_tag| { |
| 73060 | 74469 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 73061 | 74470 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 73062 | 74471 | var res: [1]Temp = undefined; |
| ... | ... | @@ -73066,7 +74475,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73066 | 74475 | .required_features = .{ .sse, null, null, null }, |
| 73067 | 74476 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 73068 | 74477 | .patterns = &.{ |
| 73069 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 74478 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 73070 | 74479 | }, |
| 73071 | 74480 | .call_frame = .{ .alignment = .@"16" }, |
| 73072 | 74481 | .extra_temps = .{ |
| ... | ... | @@ -73095,8 +74504,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73095 | 74504 | }, |
| 73096 | 74505 | .call_frame = .{ .alignment = .@"16" }, |
| 73097 | 74506 | .extra_temps = .{ |
| 73098 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73099 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 74507 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 74508 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73100 | 74509 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "h" } }, |
| 73101 | 74510 | .unused, |
| 73102 | 74511 | .unused, |
| ... | ... | @@ -73110,13 +74519,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73110 | 74519 | .dst_temps = .{ .mem, .unused }, |
| 73111 | 74520 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73112 | 74521 | .each = .{ .once = &.{ |
| 73113 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 74522 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 73114 | 74523 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 73115 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 74524 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 73116 | 74525 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73117 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 73118 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 73119 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74526 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 74527 | .{ ._, ._, .sub, .tmp0p, .si(2), ._, ._ }, |
| 74528 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73120 | 74529 | } }, |
| 73121 | 74530 | }, .{ |
| 73122 | 74531 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -73126,8 +74535,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73126 | 74535 | }, |
| 73127 | 74536 | .call_frame = .{ .alignment = .@"16" }, |
| 73128 | 74537 | .extra_temps = .{ |
| 73129 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73130 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 74538 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 74539 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73131 | 74540 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "h" } }, |
| 73132 | 74541 | .unused, |
| 73133 | 74542 | .unused, |
| ... | ... | @@ -73141,13 +74550,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73141 | 74550 | .dst_temps = .{ .mem, .unused }, |
| 73142 | 74551 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73143 | 74552 | .each = .{ .once = &.{ |
| 73144 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 74553 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 73145 | 74554 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 73146 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 74555 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 73147 | 74556 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73148 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 73149 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 73150 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74557 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 74558 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 74559 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73151 | 74560 | } }, |
| 73152 | 74561 | }, .{ |
| 73153 | 74562 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -73157,8 +74566,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73157 | 74566 | }, |
| 73158 | 74567 | .call_frame = .{ .alignment = .@"16" }, |
| 73159 | 74568 | .extra_temps = .{ |
| 73160 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73161 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 74569 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 74570 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73162 | 74571 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "h" } }, |
| 73163 | 74572 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 73164 | 74573 | .unused, |
| ... | ... | @@ -73172,14 +74581,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73172 | 74581 | .dst_temps = .{ .mem, .unused }, |
| 73173 | 74582 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73174 | 74583 | .each = .{ .once = &.{ |
| 73175 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 74584 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 73176 | 74585 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 73177 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 74586 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 73178 | 74587 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73179 | 74588 | .{ ._, .p_w, .extr, .tmp3d, .tmp1x, .ui(0), ._ }, |
| 73180 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 73181 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 73182 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74589 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 74590 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 74591 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73183 | 74592 | } }, |
| 73184 | 74593 | }, .{ |
| 73185 | 74594 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -73189,10 +74598,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73189 | 74598 | }, |
| 73190 | 74599 | .call_frame = .{ .alignment = .@"16" }, |
| 73191 | 74600 | .extra_temps = .{ |
| 73192 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 74601 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 73193 | 74602 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 73194 | 74603 | .{ .type = .f32, .kind = .mem }, |
| 73195 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 74604 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73196 | 74605 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "h" } }, |
| 73197 | 74606 | .unused, |
| 73198 | 74607 | .unused, |
| ... | ... | @@ -73204,22 +74613,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73204 | 74613 | .dst_temps = .{ .mem, .unused }, |
| 73205 | 74614 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73206 | 74615 | .each = .{ .once = &.{ |
| 73207 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73208 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 74616 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 74617 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 73209 | 74618 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 73210 | 74619 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, |
| 73211 | 74620 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 73212 | 74621 | .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, |
| 73213 | 74622 | .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, |
| 73214 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 73215 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 73216 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74623 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 74624 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 74625 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73217 | 74626 | } }, |
| 73218 | 74627 | }, .{ |
| 73219 | 74628 | .required_features = .{ .sse, null, null, null }, |
| 73220 | 74629 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 73221 | 74630 | .patterns = &.{ |
| 73222 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 74631 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 73223 | 74632 | }, |
| 73224 | 74633 | .call_frame = .{ .alignment = .@"16" }, |
| 73225 | 74634 | .extra_temps = .{ |
| ... | ... | @@ -73248,8 +74657,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73248 | 74657 | }, |
| 73249 | 74658 | .call_frame = .{ .alignment = .@"16" }, |
| 73250 | 74659 | .extra_temps = .{ |
| 73251 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73252 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 74660 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 74661 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73253 | 74662 | .{ .type = .usize, .kind = .{ .extern_func = @tagName(name) ++ "f" } }, |
| 73254 | 74663 | .unused, |
| 73255 | 74664 | .unused, |
| ... | ... | @@ -73263,12 +74672,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73263 | 74672 | .dst_temps = .{ .mem, .unused }, |
| 73264 | 74673 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73265 | 74674 | .each = .{ .once = &.{ |
| 73266 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73267 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 74675 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 74676 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 73268 | 74677 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73269 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 73270 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 73271 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74678 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 74679 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 74680 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73272 | 74681 | } }, |
| 73273 | 74682 | }, .{ |
| 73274 | 74683 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -73278,8 +74687,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73278 | 74687 | }, |
| 73279 | 74688 | .call_frame = .{ .alignment = .@"16" }, |
| 73280 | 74689 | .extra_temps = .{ |
| 73281 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73282 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 74690 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 74691 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73283 | 74692 | .{ .type = .usize, .kind = .{ .extern_func = @tagName(name) ++ "f" } }, |
| 73284 | 74693 | .unused, |
| 73285 | 74694 | .unused, |
| ... | ... | @@ -73293,18 +74702,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73293 | 74702 | .dst_temps = .{ .mem, .unused }, |
| 73294 | 74703 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73295 | 74704 | .each = .{ .once = &.{ |
| 73296 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73297 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 74705 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 74706 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 73298 | 74707 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73299 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 73300 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 73301 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74708 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 74709 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 74710 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73302 | 74711 | } }, |
| 73303 | 74712 | }, .{ |
| 73304 | 74713 | .required_features = .{ .sse, null, null, null }, |
| 73305 | 74714 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 73306 | 74715 | .patterns = &.{ |
| 73307 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 74716 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 73308 | 74717 | }, |
| 73309 | 74718 | .call_frame = .{ .alignment = .@"16" }, |
| 73310 | 74719 | .extra_temps = .{ |
| ... | ... | @@ -73333,8 +74742,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73333 | 74742 | }, |
| 73334 | 74743 | .call_frame = .{ .alignment = .@"16" }, |
| 73335 | 74744 | .extra_temps = .{ |
| 73336 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73337 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 74745 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 74746 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73338 | 74747 | .{ .type = .usize, .kind = .{ .extern_func = @tagName(name) } }, |
| 73339 | 74748 | .unused, |
| 73340 | 74749 | .unused, |
| ... | ... | @@ -73348,12 +74757,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73348 | 74757 | .dst_temps = .{ .mem, .unused }, |
| 73349 | 74758 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73350 | 74759 | .each = .{ .once = &.{ |
| 73351 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73352 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 74760 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 74761 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 73353 | 74762 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73354 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 73355 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 73356 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74763 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 74764 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 74765 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73357 | 74766 | } }, |
| 73358 | 74767 | }, .{ |
| 73359 | 74768 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -73363,8 +74772,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73363 | 74772 | }, |
| 73364 | 74773 | .call_frame = .{ .alignment = .@"16" }, |
| 73365 | 74774 | .extra_temps = .{ |
| 73366 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73367 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 74775 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 74776 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73368 | 74777 | .{ .type = .usize, .kind = .{ .extern_func = @tagName(name) } }, |
| 73369 | 74778 | .unused, |
| 73370 | 74779 | .unused, |
| ... | ... | @@ -73378,12 +74787,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73378 | 74787 | .dst_temps = .{ .mem, .unused }, |
| 73379 | 74788 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73380 | 74789 | .each = .{ .once = &.{ |
| 73381 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73382 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 74790 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 74791 | .{ .@"0:", ._sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 73383 | 74792 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73384 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 73385 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 73386 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74793 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 74794 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 74795 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73387 | 74796 | } }, |
| 73388 | 74797 | }, .{ |
| 73389 | 74798 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -73393,8 +74802,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73393 | 74802 | }, |
| 73394 | 74803 | .call_frame = .{ .alignment = .@"16" }, |
| 73395 | 74804 | .extra_temps = .{ |
| 73396 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73397 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 74805 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 74806 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73398 | 74807 | .{ .type = .usize, .kind = .{ .extern_func = @tagName(name) } }, |
| 73399 | 74808 | .unused, |
| 73400 | 74809 | .unused, |
| ... | ... | @@ -73408,15 +74817,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73408 | 74817 | .dst_temps = .{ .mem, .unused }, |
| 73409 | 74818 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73410 | 74819 | .each = .{ .once = &.{ |
| 73411 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 74820 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 73412 | 74821 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 73413 | | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 74822 | .{ ._, ._ps, .movl, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 73414 | 74823 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73415 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 73416 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 73417 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74824 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 74825 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 74826 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73418 | 74827 | } }, |
| 73419 | 74828 | }, .{ |
| 74829 | .required_cc_abi = .sysv64, |
| 73420 | 74830 | .required_features = .{ .avx, .x87, null, null }, |
| 73421 | 74831 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 73422 | 74832 | .patterns = &.{ |
| ... | ... | @@ -73424,7 +74834,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73424 | 74834 | }, |
| 73425 | 74835 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 73426 | 74836 | .extra_temps = .{ |
| 73427 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 74837 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73428 | 74838 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 73429 | 74839 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "x" } }, |
| 73430 | 74840 | .unused, |
| ... | ... | @@ -73444,6 +74854,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73444 | 74854 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73445 | 74855 | } }, |
| 73446 | 74856 | }, .{ |
| 74857 | .required_cc_abi = .sysv64, |
| 73447 | 74858 | .required_features = .{ .sse2, .x87, null, null }, |
| 73448 | 74859 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 73449 | 74860 | .patterns = &.{ |
| ... | ... | @@ -73451,7 +74862,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73451 | 74862 | }, |
| 73452 | 74863 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 73453 | 74864 | .extra_temps = .{ |
| 73454 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 74865 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73455 | 74866 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 73456 | 74867 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "x" } }, |
| 73457 | 74868 | .unused, |
| ... | ... | @@ -73471,6 +74882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73471 | 74882 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73472 | 74883 | } }, |
| 73473 | 74884 | }, .{ |
| 74885 | .required_cc_abi = .sysv64, |
| 73474 | 74886 | .required_features = .{ .sse, .x87, null, null }, |
| 73475 | 74887 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 73476 | 74888 | .patterns = &.{ |
| ... | ... | @@ -73478,7 +74890,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73478 | 74890 | }, |
| 73479 | 74891 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 73480 | 74892 | .extra_temps = .{ |
| 73481 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 74893 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73482 | 74894 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 73483 | 74895 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "x" } }, |
| 73484 | 74896 | .unused, |
| ... | ... | @@ -73498,6 +74910,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73498 | 74910 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73499 | 74911 | } }, |
| 73500 | 74912 | }, .{ |
| 74913 | .required_cc_abi = .win64, |
| 74914 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 74915 | .patterns = &.{ |
| 74916 | .{ .src = .{ .to_mem, .none, .none } }, |
| 74917 | }, |
| 74918 | .call_frame = .{ .alignment = .@"16" }, |
| 74919 | .extra_temps = .{ |
| 74920 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 74921 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 74922 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "x" } }, |
| 74923 | .unused, |
| 74924 | .unused, |
| 74925 | .unused, |
| 74926 | .unused, |
| 74927 | .unused, |
| 74928 | .unused, |
| 74929 | .unused, |
| 74930 | .unused, |
| 74931 | }, |
| 74932 | .dst_temps = .{ .mem, .unused }, |
| 74933 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 74934 | .each = .{ .once = &.{ |
| 74935 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 74936 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 74937 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 74938 | } }, |
| 74939 | }, .{ |
| 74940 | .required_cc_abi = .sysv64, |
| 73501 | 74941 | .required_features = .{ .avx, .x87, null, null }, |
| 73502 | 74942 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 73503 | 74943 | .patterns = &.{ |
| ... | ... | @@ -73505,8 +74945,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73505 | 74945 | }, |
| 73506 | 74946 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 73507 | 74947 | .extra_temps = .{ |
| 73508 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73509 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 74948 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 74949 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73510 | 74950 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 73511 | 74951 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "x" } }, |
| 73512 | 74952 | .unused, |
| ... | ... | @@ -73520,16 +74960,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73520 | 74960 | .dst_temps = .{ .mem, .unused }, |
| 73521 | 74961 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73522 | 74962 | .each = .{ .once = &.{ |
| 73523 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73524 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 74963 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 74964 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 73525 | 74965 | .{ ._, .v_dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 73526 | 74966 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 73527 | 74967 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 73528 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 73529 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 73530 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 74968 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp0), ._, ._, ._ }, |
| 74969 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 74970 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73531 | 74971 | } }, |
| 73532 | 74972 | }, .{ |
| 74973 | .required_cc_abi = .sysv64, |
| 73533 | 74974 | .required_features = .{ .sse2, .x87, null, null }, |
| 73534 | 74975 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 73535 | 74976 | .patterns = &.{ |
| ... | ... | @@ -73537,8 +74978,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73537 | 74978 | }, |
| 73538 | 74979 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 73539 | 74980 | .extra_temps = .{ |
| 73540 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73541 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 74981 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 74982 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73542 | 74983 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 73543 | 74984 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "x" } }, |
| 73544 | 74985 | .unused, |
| ... | ... | @@ -73552,16 +74993,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73552 | 74993 | .dst_temps = .{ .mem, .unused }, |
| 73553 | 74994 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73554 | 74995 | .each = .{ .once = &.{ |
| 73555 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73556 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 74996 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 74997 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 73557 | 74998 | .{ ._, ._dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 73558 | 74999 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 73559 | 75000 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 73560 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 73561 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 73562 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 75001 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp0), ._, ._, ._ }, |
| 75002 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 75003 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73563 | 75004 | } }, |
| 73564 | 75005 | }, .{ |
| 75006 | .required_cc_abi = .sysv64, |
| 73565 | 75007 | .required_features = .{ .sse, .x87, null, null }, |
| 73566 | 75008 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 73567 | 75009 | .patterns = &.{ |
| ... | ... | @@ -73569,8 +75011,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73569 | 75011 | }, |
| 73570 | 75012 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 73571 | 75013 | .extra_temps = .{ |
| 73572 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73573 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 75014 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 75015 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73574 | 75016 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 73575 | 75017 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "x" } }, |
| 73576 | 75018 | .unused, |
| ... | ... | @@ -73584,20 +75026,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73584 | 75026 | .dst_temps = .{ .mem, .unused }, |
| 73585 | 75027 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73586 | 75028 | .each = .{ .once = &.{ |
| 73587 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73588 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 75029 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 75030 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 73589 | 75031 | .{ ._, ._ps, .mova, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 73590 | 75032 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 73591 | 75033 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 73592 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 73593 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 73594 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 75034 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp0), ._, ._, ._ }, |
| 75035 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 75036 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 75037 | } }, |
| 75038 | }, .{ |
| 75039 | .required_cc_abi = .win64, |
| 75040 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 75041 | .patterns = &.{ |
| 75042 | .{ .src = .{ .to_mem, .none, .none } }, |
| 75043 | }, |
| 75044 | .call_frame = .{ .alignment = .@"16" }, |
| 75045 | .extra_temps = .{ |
| 75046 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 75047 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 75048 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 75049 | .{ .type = .usize, .kind = .{ .extern_func = "__" ++ @tagName(name) ++ "x" } }, |
| 75050 | .unused, |
| 75051 | .unused, |
| 75052 | .unused, |
| 75053 | .unused, |
| 75054 | .unused, |
| 75055 | .unused, |
| 75056 | .unused, |
| 75057 | }, |
| 75058 | .dst_temps = .{ .mem, .unused }, |
| 75059 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 75060 | .each = .{ .once = &.{ |
| 75061 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 75062 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.dst0, .tmp0), ._, ._ }, |
| 75063 | .{ ._, ._, .lea, .tmp2p, .memi(.src0, .tmp0), ._, ._ }, |
| 75064 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 75065 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 75066 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73595 | 75067 | } }, |
| 73596 | 75068 | }, .{ |
| 73597 | 75069 | .required_features = .{ .sse, null, null, null }, |
| 73598 | 75070 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 73599 | 75071 | .patterns = &.{ |
| 73600 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 75072 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 73601 | 75073 | }, |
| 73602 | 75074 | .call_frame = .{ .alignment = .@"16" }, |
| 73603 | 75075 | .extra_temps = .{ |
| ... | ... | @@ -73626,8 +75098,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73626 | 75098 | }, |
| 73627 | 75099 | .call_frame = .{ .alignment = .@"16" }, |
| 73628 | 75100 | .extra_temps = .{ |
| 73629 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73630 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 75101 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 75102 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73631 | 75103 | .{ .type = .usize, .kind = .{ .extern_func = @tagName(name) ++ "q" } }, |
| 73632 | 75104 | .unused, |
| 73633 | 75105 | .unused, |
| ... | ... | @@ -73641,12 +75113,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73641 | 75113 | .dst_temps = .{ .mem, .unused }, |
| 73642 | 75114 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73643 | 75115 | .each = .{ .once = &.{ |
| 73644 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73645 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 75116 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 75117 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 73646 | 75118 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73647 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 73648 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 73649 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 75119 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 75120 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 75121 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73650 | 75122 | } }, |
| 73651 | 75123 | }, .{ |
| 73652 | 75124 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -73656,8 +75128,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73656 | 75128 | }, |
| 73657 | 75129 | .call_frame = .{ .alignment = .@"16" }, |
| 73658 | 75130 | .extra_temps = .{ |
| 73659 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73660 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 75131 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 75132 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73661 | 75133 | .{ .type = .usize, .kind = .{ .extern_func = @tagName(name) ++ "q" } }, |
| 73662 | 75134 | .unused, |
| 73663 | 75135 | .unused, |
| ... | ... | @@ -73671,12 +75143,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73671 | 75143 | .dst_temps = .{ .mem, .unused }, |
| 73672 | 75144 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73673 | 75145 | .each = .{ .once = &.{ |
| 73674 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73675 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 75146 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 75147 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 73676 | 75148 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73677 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 73678 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 73679 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 75149 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 75150 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 75151 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73680 | 75152 | } }, |
| 73681 | 75153 | }, .{ |
| 73682 | 75154 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -73686,8 +75158,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73686 | 75158 | }, |
| 73687 | 75159 | .call_frame = .{ .alignment = .@"16" }, |
| 73688 | 75160 | .extra_temps = .{ |
| 73689 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 73690 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 75161 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 75162 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 73691 | 75163 | .{ .type = .usize, .kind = .{ .extern_func = @tagName(name) ++ "q" } }, |
| 73692 | 75164 | .unused, |
| 73693 | 75165 | .unused, |
| ... | ... | @@ -73701,12 +75173,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73701 | 75173 | .dst_temps = .{ .mem, .unused }, |
| 73702 | 75174 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 73703 | 75175 | .each = .{ .once = &.{ |
| 73704 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 73705 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 75176 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 75177 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 73706 | 75178 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 73707 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 73708 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 73709 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 75179 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 75180 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 75181 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 73710 | 75182 | } }, |
| 73711 | 75183 | } }, |
| 73712 | 75184 | }) catch |err| switch (err) { |
| ... | ... | @@ -73719,7 +75191,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 73719 | 75191 | }; |
| 73720 | 75192 | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| 73721 | 75193 | }, |
| 73722 | | .abs => |air_tag| if (use_old) try cg.airAbs(inst) else { |
| 75194 | .abs => |air_tag| { |
| 73723 | 75195 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 73724 | 75196 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 73725 | 75197 | var res: [1]Temp = undefined; |
| ... | ... | @@ -75270,12 +76742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75270 | 76742 | }; |
| 75271 | 76743 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 75272 | 76744 | }, |
| 75273 | | .floor, .ceil, .trunc_float => |air_tag| if (use_old) try cg.airRound(inst, .{ .direction = switch (air_tag) { |
| 75274 | | else => unreachable, |
| 75275 | | .floor => .down, |
| 75276 | | .ceil => .up, |
| 75277 | | .trunc_float => .zero, |
| 75278 | | }, .precision = .inexact }) else { |
| 76745 | .floor, .ceil, .trunc_float => |air_tag| { |
| 75279 | 76746 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 75280 | 76747 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 75281 | 76748 | var res: [1]Temp = undefined; |
| ... | ... | @@ -75302,7 +76769,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75302 | 76769 | .required_features = .{ .sse, null, null, null }, |
| 75303 | 76770 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 75304 | 76771 | .patterns = &.{ |
| 75305 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 76772 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 75306 | 76773 | }, |
| 75307 | 76774 | .call_frame = .{ .alignment = .@"16" }, |
| 75308 | 76775 | .extra_temps = .{ |
| ... | ... | @@ -75392,7 +76859,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75392 | 76859 | .call_frame = .{ .alignment = .@"16" }, |
| 75393 | 76860 | .extra_temps = .{ |
| 75394 | 76861 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 75395 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 76862 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 75396 | 76863 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 75397 | 76864 | else => unreachable, |
| 75398 | 76865 | .down => "__floorh", |
| ... | ... | @@ -75428,7 +76895,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75428 | 76895 | .call_frame = .{ .alignment = .@"16" }, |
| 75429 | 76896 | .extra_temps = .{ |
| 75430 | 76897 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 75431 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 76898 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 75432 | 76899 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 75433 | 76900 | else => unreachable, |
| 75434 | 76901 | .down => "__floorh", |
| ... | ... | @@ -75464,7 +76931,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75464 | 76931 | .call_frame = .{ .alignment = .@"16" }, |
| 75465 | 76932 | .extra_temps = .{ |
| 75466 | 76933 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 75467 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 76934 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 75468 | 76935 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 75469 | 76936 | else => unreachable, |
| 75470 | 76937 | .down => "__floorh", |
| ... | ... | @@ -75503,7 +76970,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75503 | 76970 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 75504 | 76971 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 75505 | 76972 | .{ .type = .f32, .kind = .mem }, |
| 75506 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 76973 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 75507 | 76974 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 75508 | 76975 | else => unreachable, |
| 75509 | 76976 | .down => "__floorh", |
| ... | ... | @@ -75577,7 +77044,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75577 | 77044 | .required_features = .{ .sse, null, null, null }, |
| 75578 | 77045 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 75579 | 77046 | .patterns = &.{ |
| 75580 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 77047 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 75581 | 77048 | }, |
| 75582 | 77049 | .call_frame = .{ .alignment = .@"16" }, |
| 75583 | 77050 | .extra_temps = .{ |
| ... | ... | @@ -75707,7 +77174,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75707 | 77174 | .call_frame = .{ .alignment = .@"16" }, |
| 75708 | 77175 | .extra_temps = .{ |
| 75709 | 77176 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 75710 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 77177 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 75711 | 77178 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 75712 | 77179 | else => unreachable, |
| 75713 | 77180 | .down => "floorf", |
| ... | ... | @@ -75742,7 +77209,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75742 | 77209 | .call_frame = .{ .alignment = .@"16" }, |
| 75743 | 77210 | .extra_temps = .{ |
| 75744 | 77211 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 75745 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 77212 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 75746 | 77213 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 75747 | 77214 | else => unreachable, |
| 75748 | 77215 | .down => "floorf", |
| ... | ... | @@ -75814,7 +77281,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75814 | 77281 | .required_features = .{ .sse, null, null, null }, |
| 75815 | 77282 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 75816 | 77283 | .patterns = &.{ |
| 75817 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 77284 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 75818 | 77285 | }, |
| 75819 | 77286 | .call_frame = .{ .alignment = .@"16" }, |
| 75820 | 77287 | .extra_temps = .{ |
| ... | ... | @@ -75944,7 +77411,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75944 | 77411 | .call_frame = .{ .alignment = .@"16" }, |
| 75945 | 77412 | .extra_temps = .{ |
| 75946 | 77413 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 75947 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 77414 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 75948 | 77415 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 75949 | 77416 | else => unreachable, |
| 75950 | 77417 | .down => "floor", |
| ... | ... | @@ -75979,7 +77446,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 75979 | 77446 | .call_frame = .{ .alignment = .@"16" }, |
| 75980 | 77447 | .extra_temps = .{ |
| 75981 | 77448 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 75982 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 77449 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 75983 | 77450 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 75984 | 77451 | else => unreachable, |
| 75985 | 77452 | .down => "floor", |
| ... | ... | @@ -76014,7 +77481,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76014 | 77481 | .call_frame = .{ .alignment = .@"16" }, |
| 76015 | 77482 | .extra_temps = .{ |
| 76016 | 77483 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 76017 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 77484 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 76018 | 77485 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 76019 | 77486 | else => unreachable, |
| 76020 | 77487 | .down => "floor", |
| ... | ... | @@ -76042,6 +77509,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76042 | 77509 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 76043 | 77510 | } }, |
| 76044 | 77511 | }, .{ |
| 77512 | .required_cc_abi = .sysv64, |
| 76045 | 77513 | .required_features = .{ .avx, .x87, null, null }, |
| 76046 | 77514 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 76047 | 77515 | .patterns = &.{ |
| ... | ... | @@ -76049,7 +77517,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76049 | 77517 | }, |
| 76050 | 77518 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 76051 | 77519 | .extra_temps = .{ |
| 76052 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 77520 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 76053 | 77521 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 76054 | 77522 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 76055 | 77523 | else => unreachable, |
| ... | ... | @@ -76074,6 +77542,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76074 | 77542 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 76075 | 77543 | } }, |
| 76076 | 77544 | }, .{ |
| 77545 | .required_cc_abi = .sysv64, |
| 76077 | 77546 | .required_features = .{ .sse2, .x87, null, null }, |
| 76078 | 77547 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 76079 | 77548 | .patterns = &.{ |
| ... | ... | @@ -76081,7 +77550,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76081 | 77550 | }, |
| 76082 | 77551 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 76083 | 77552 | .extra_temps = .{ |
| 76084 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 77553 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 76085 | 77554 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 76086 | 77555 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 76087 | 77556 | else => unreachable, |
| ... | ... | @@ -76106,6 +77575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76106 | 77575 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 76107 | 77576 | } }, |
| 76108 | 77577 | }, .{ |
| 77578 | .required_cc_abi = .sysv64, |
| 76109 | 77579 | .required_features = .{ .sse, .x87, null, null }, |
| 76110 | 77580 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 76111 | 77581 | .patterns = &.{ |
| ... | ... | @@ -76113,7 +77583,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76113 | 77583 | }, |
| 76114 | 77584 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 76115 | 77585 | .extra_temps = .{ |
| 76116 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 77586 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 76117 | 77587 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 76118 | 77588 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 76119 | 77589 | else => unreachable, |
| ... | ... | @@ -76138,6 +77608,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76138 | 77608 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 76139 | 77609 | } }, |
| 76140 | 77610 | }, .{ |
| 77611 | .required_cc_abi = .win64, |
| 77612 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 77613 | .patterns = &.{ |
| 77614 | .{ .src = .{ .to_mem, .none, .none } }, |
| 77615 | }, |
| 77616 | .call_frame = .{ .alignment = .@"16" }, |
| 77617 | .extra_temps = .{ |
| 77618 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 77619 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 77620 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 77621 | else => unreachable, |
| 77622 | .down => "__floorx", |
| 77623 | .up => "__ceilx", |
| 77624 | .zero => "__truncx", |
| 77625 | } } }, |
| 77626 | .unused, |
| 77627 | .unused, |
| 77628 | .unused, |
| 77629 | .unused, |
| 77630 | .unused, |
| 77631 | .unused, |
| 77632 | .unused, |
| 77633 | .unused, |
| 77634 | }, |
| 77635 | .dst_temps = .{ .mem, .unused }, |
| 77636 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 77637 | .each = .{ .once = &.{ |
| 77638 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 77639 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 77640 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 77641 | } }, |
| 77642 | }, .{ |
| 77643 | .required_cc_abi = .sysv64, |
| 76141 | 77644 | .required_features = .{ .avx, .x87, null, null }, |
| 76142 | 77645 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 76143 | 77646 | .patterns = &.{ |
| ... | ... | @@ -76146,7 +77649,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76146 | 77649 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 76147 | 77650 | .extra_temps = .{ |
| 76148 | 77651 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 76149 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 77652 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 76150 | 77653 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 76151 | 77654 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 76152 | 77655 | else => unreachable, |
| ... | ... | @@ -76175,6 +77678,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76175 | 77678 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 76176 | 77679 | } }, |
| 76177 | 77680 | }, .{ |
| 77681 | .required_cc_abi = .sysv64, |
| 76178 | 77682 | .required_features = .{ .sse2, .x87, null, null }, |
| 76179 | 77683 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 76180 | 77684 | .patterns = &.{ |
| ... | ... | @@ -76183,7 +77687,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76183 | 77687 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 76184 | 77688 | .extra_temps = .{ |
| 76185 | 77689 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 76186 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 77690 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 76187 | 77691 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 76188 | 77692 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 76189 | 77693 | else => unreachable, |
| ... | ... | @@ -76212,6 +77716,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76212 | 77716 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 76213 | 77717 | } }, |
| 76214 | 77718 | }, .{ |
| 77719 | .required_cc_abi = .sysv64, |
| 76215 | 77720 | .required_features = .{ .sse, .x87, null, null }, |
| 76216 | 77721 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 76217 | 77722 | .patterns = &.{ |
| ... | ... | @@ -76220,7 +77725,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76220 | 77725 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 76221 | 77726 | .extra_temps = .{ |
| 76222 | 77727 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 76223 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 77728 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 76224 | 77729 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 76225 | 77730 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 76226 | 77731 | else => unreachable, |
| ... | ... | @@ -76248,11 +77753,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76248 | 77753 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 76249 | 77754 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 76250 | 77755 | } }, |
| 77756 | }, .{ |
| 77757 | .required_cc_abi = .win64, |
| 77758 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 77759 | .patterns = &.{ |
| 77760 | .{ .src = .{ .to_mem, .none, .none } }, |
| 77761 | }, |
| 77762 | .call_frame = .{ .alignment = .@"16" }, |
| 77763 | .extra_temps = .{ |
| 77764 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 77765 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 77766 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 77767 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 77768 | else => unreachable, |
| 77769 | .down => "__floorx", |
| 77770 | .up => "__ceilx", |
| 77771 | .zero => "__truncx", |
| 77772 | } } }, |
| 77773 | .unused, |
| 77774 | .unused, |
| 77775 | .unused, |
| 77776 | .unused, |
| 77777 | .unused, |
| 77778 | .unused, |
| 77779 | .unused, |
| 77780 | }, |
| 77781 | .dst_temps = .{ .mem, .unused }, |
| 77782 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 77783 | .each = .{ .once = &.{ |
| 77784 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 77785 | .{ .@"0:", ._, .lea, .tmp1p, .memia(.dst0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 77786 | .{ ._, ._, .lea, .tmp2p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 77787 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 77788 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 77789 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 77790 | } }, |
| 76251 | 77791 | }, .{ |
| 76252 | 77792 | .required_features = .{ .sse, null, null, null }, |
| 76253 | 77793 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 76254 | 77794 | .patterns = &.{ |
| 76255 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 77795 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 76256 | 77796 | }, |
| 76257 | 77797 | .call_frame = .{ .alignment = .@"16" }, |
| 76258 | 77798 | .extra_temps = .{ |
| ... | ... | @@ -76287,7 +77827,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76287 | 77827 | .call_frame = .{ .alignment = .@"16" }, |
| 76288 | 77828 | .extra_temps = .{ |
| 76289 | 77829 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 76290 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 77830 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 76291 | 77831 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 76292 | 77832 | else => unreachable, |
| 76293 | 77833 | .down => "floorq", |
| ... | ... | @@ -76322,7 +77862,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76322 | 77862 | .call_frame = .{ .alignment = .@"16" }, |
| 76323 | 77863 | .extra_temps = .{ |
| 76324 | 77864 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 76325 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 77865 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 76326 | 77866 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 76327 | 77867 | else => unreachable, |
| 76328 | 77868 | .down => "floorq", |
| ... | ... | @@ -76357,7 +77897,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76357 | 77897 | .call_frame = .{ .alignment = .@"16" }, |
| 76358 | 77898 | .extra_temps = .{ |
| 76359 | 77899 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 76360 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 77900 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 76361 | 77901 | .{ .type = .usize, .kind = .{ .extern_func = switch (direction) { |
| 76362 | 77902 | else => unreachable, |
| 76363 | 77903 | .down => "floorq", |
| ... | ... | @@ -76394,7 +77934,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76394 | 77934 | }; |
| 76395 | 77935 | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| 76396 | 77936 | }, |
| 76397 | | .neg, .neg_optimized => |air_tag| if (use_old) try cg.airFloatSign(inst, .neg) else { |
| 77937 | .neg, .neg_optimized => |air_tag| { |
| 76398 | 77938 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 76399 | 77939 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 76400 | 77940 | var res: [1]Temp = undefined; |
| ... | ... | @@ -76942,7 +78482,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76942 | 78482 | .cmp_gte_optimized, |
| 76943 | 78483 | .cmp_gt, |
| 76944 | 78484 | .cmp_gt_optimized, |
| 76945 | | => |air_tag| if (use_old) try cg.airCmp(inst, air_tag.toCmpOp().?) else { |
| 78485 | => |air_tag| { |
| 76946 | 78486 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 76947 | 78487 | const cmp_op = air_tag.toCmpOp().?; |
| 76948 | 78488 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -76991,7 +78531,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 76991 | 78531 | .required_features = .{ .sse, null, null, null }, |
| 76992 | 78532 | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, |
| 76993 | 78533 | .patterns = &.{ |
| 76994 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 78534 | .{ .src = .{ |
| 78535 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 78536 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 78537 | .none, |
| 78538 | } }, |
| 76995 | 78539 | }, |
| 76996 | 78540 | .call_frame = .{ .alignment = .@"16" }, |
| 76997 | 78541 | .extra_temps = .{ |
| ... | ... | @@ -77334,7 +78878,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 77334 | 78878 | .required_features = .{ .sse, null, null, null }, |
| 77335 | 78879 | .src_constraints = .{ .{ .float = .xword }, .{ .float = .xword }, .any }, |
| 77336 | 78880 | .patterns = &.{ |
| 77337 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 78881 | .{ .src = .{ |
| 78882 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 78883 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 78884 | .none, |
| 78885 | } }, |
| 77338 | 78886 | }, |
| 77339 | 78887 | .call_frame = .{ .alignment = .@"16" }, |
| 77340 | 78888 | .extra_temps = .{ |
| ... | ... | @@ -77378,7 +78926,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 77378 | 78926 | .cmp_eq_optimized, |
| 77379 | 78927 | .cmp_neq, |
| 77380 | 78928 | .cmp_neq_optimized, |
| 77381 | | => |air_tag| if (use_old) try cg.airCmp(inst, air_tag.toCmpOp().?) else { |
| 78929 | => |air_tag| { |
| 77382 | 78930 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 77383 | 78931 | const cmp_op = air_tag.toCmpOp().?; |
| 77384 | 78932 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -77495,7 +79043,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 77495 | 79043 | .required_features = .{ .sse, null, null, null }, |
| 77496 | 79044 | .src_constraints = .{ .{ .float = .word }, .{ .float = .word }, .any }, |
| 77497 | 79045 | .patterns = &.{ |
| 77498 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 79046 | .{ .src = .{ |
| 79047 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 79048 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 79049 | .none, |
| 79050 | } }, |
| 77499 | 79051 | }, |
| 77500 | 79052 | .call_frame = .{ .alignment = .@"16" }, |
| 77501 | 79053 | .extra_temps = .{ |
| ... | ... | @@ -77862,7 +79414,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 77862 | 79414 | .required_features = .{ .sse, null, null, null }, |
| 77863 | 79415 | .src_constraints = .{ .{ .float = .xword }, .{ .float = .xword }, .any }, |
| 77864 | 79416 | .patterns = &.{ |
| 77865 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, |
| 79417 | .{ .src = .{ |
| 79418 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 79419 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 79420 | .none, |
| 79421 | } }, |
| 77866 | 79422 | }, |
| 77867 | 79423 | .call_frame = .{ .alignment = .@"16" }, |
| 77868 | 79424 | .extra_temps = .{ |
| ... | ... | @@ -77939,7 +79495,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 77939 | 79495 | } |
| 77940 | 79496 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 77941 | 79497 | }, |
| 77942 | | .cmp_vector, .cmp_vector_optimized => |air_tag| if (use_old) try cg.airCmpVector(inst) else fallback: { |
| 79498 | .cmp_vector, .cmp_vector_optimized => |air_tag| fallback: { |
| 77943 | 79499 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 77944 | 79500 | const vector_cmp = cg.air.extraData(Air.VectorCmp, ty_pl.payload).data; |
| 77945 | 79501 | switch (vector_cmp.compareOperator()) { |
| ... | ... | @@ -78533,8 +80089,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 78533 | 80089 | .call_frame = .{ .alignment = .@"16" }, |
| 78534 | 80090 | .extra_temps = .{ |
| 78535 | 80091 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 78536 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 78537 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80092 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80093 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 78538 | 80094 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 78539 | 80095 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 78540 | 80096 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -78577,8 +80133,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 78577 | 80133 | .call_frame = .{ .alignment = .@"16" }, |
| 78578 | 80134 | .extra_temps = .{ |
| 78579 | 80135 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 78580 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 78581 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80136 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80137 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 78582 | 80138 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 78583 | 80139 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 78584 | 80140 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -78621,8 +80177,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 78621 | 80177 | .call_frame = .{ .alignment = .@"16" }, |
| 78622 | 80178 | .extra_temps = .{ |
| 78623 | 80179 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 78624 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 78625 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80180 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80181 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 78626 | 80182 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 78627 | 80183 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 78628 | 80184 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -78666,8 +80222,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 78666 | 80222 | .call_frame = .{ .alignment = .@"16" }, |
| 78667 | 80223 | .extra_temps = .{ |
| 78668 | 80224 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 78669 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 78670 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80225 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80226 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 78671 | 80227 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 78672 | 80228 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 78673 | 80229 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -78711,8 +80267,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 78711 | 80267 | .call_frame = .{ .alignment = .@"16" }, |
| 78712 | 80268 | .extra_temps = .{ |
| 78713 | 80269 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 78714 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 78715 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80270 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80271 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 78716 | 80272 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 78717 | 80273 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 78718 | 80274 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -78758,8 +80314,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 78758 | 80314 | .call_frame = .{ .alignment = .@"16" }, |
| 78759 | 80315 | .extra_temps = .{ |
| 78760 | 80316 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 78761 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 78762 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80317 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80318 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 78763 | 80319 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 78764 | 80320 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 78765 | 80321 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -78805,8 +80361,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 78805 | 80361 | .extra_temps = .{ |
| 78806 | 80362 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 78807 | 80363 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 78808 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 78809 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80364 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80365 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 78810 | 80366 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 78811 | 80367 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 78812 | 80368 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -78858,8 +80414,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 78858 | 80414 | .extra_temps = .{ |
| 78859 | 80415 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 78860 | 80416 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 78861 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 78862 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80417 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80418 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 78863 | 80419 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 78864 | 80420 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 78865 | 80421 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -78911,8 +80467,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 78911 | 80467 | .extra_temps = .{ |
| 78912 | 80468 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 78913 | 80469 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 78914 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 78915 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80470 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80471 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 78916 | 80472 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 78917 | 80473 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 78918 | 80474 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -78965,8 +80521,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 78965 | 80521 | .extra_temps = .{ |
| 78966 | 80522 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 78967 | 80523 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 78968 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 78969 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80524 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80525 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 78970 | 80526 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 78971 | 80527 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 78972 | 80528 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -79019,8 +80575,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 79019 | 80575 | .extra_temps = .{ |
| 79020 | 80576 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 79021 | 80577 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 79022 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 79023 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80578 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80579 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 79024 | 80580 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 79025 | 80581 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 79026 | 80582 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -79075,8 +80631,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 79075 | 80631 | .extra_temps = .{ |
| 79076 | 80632 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 79077 | 80633 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 79078 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 79079 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 80634 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 80635 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 79080 | 80636 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 79081 | 80637 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 79082 | 80638 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -79902,8 +81458,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 79902 | 81458 | .extra_temps = .{ |
| 79903 | 81459 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 79904 | 81460 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 79905 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 79906 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81461 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81462 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 79907 | 81463 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 79908 | 81464 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 79909 | 81465 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -79946,8 +81502,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 79946 | 81502 | .extra_temps = .{ |
| 79947 | 81503 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 79948 | 81504 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 79949 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 79950 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81505 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81506 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 79951 | 81507 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 79952 | 81508 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 79953 | 81509 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -79990,8 +81546,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 79990 | 81546 | .extra_temps = .{ |
| 79991 | 81547 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 79992 | 81548 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 79993 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 79994 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81549 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81550 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 79995 | 81551 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 79996 | 81552 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 79997 | 81553 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -80034,8 +81590,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 80034 | 81590 | .extra_temps = .{ |
| 80035 | 81591 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80036 | 81592 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 80037 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 80038 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81593 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81594 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 80039 | 81595 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 80040 | 81596 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 80041 | 81597 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -80078,8 +81634,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 80078 | 81634 | .extra_temps = .{ |
| 80079 | 81635 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80080 | 81636 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 80081 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 80082 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81637 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81638 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 80083 | 81639 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 80084 | 81640 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 80085 | 81641 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -80122,8 +81678,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 80122 | 81678 | .extra_temps = .{ |
| 80123 | 81679 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80124 | 81680 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 80125 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 80126 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81681 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81682 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 80127 | 81683 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 80128 | 81684 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 80129 | 81685 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -80166,8 +81722,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 80166 | 81722 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80167 | 81723 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 80168 | 81724 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 80169 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 80170 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81725 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81726 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 80171 | 81727 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 80172 | 81728 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 80173 | 81729 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -80219,8 +81775,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 80219 | 81775 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80220 | 81776 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 80221 | 81777 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 80222 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 80223 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81778 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81779 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 80224 | 81780 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 80225 | 81781 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 80226 | 81782 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -80272,8 +81828,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 80272 | 81828 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80273 | 81829 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 80274 | 81830 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 80275 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 80276 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81831 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81832 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 80277 | 81833 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 80278 | 81834 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 80279 | 81835 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -80325,8 +81881,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 80325 | 81881 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80326 | 81882 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 80327 | 81883 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 80328 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 80329 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81884 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81885 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 80330 | 81886 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 80331 | 81887 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 80332 | 81888 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -80378,8 +81934,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 80378 | 81934 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80379 | 81935 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 80380 | 81936 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 80381 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 80382 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81937 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81938 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 80383 | 81939 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 80384 | 81940 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 80385 | 81941 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -80431,8 +81987,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 80431 | 81987 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 80432 | 81988 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 80433 | 81989 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 80434 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 80435 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 81990 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 81991 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 80436 | 81992 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 80437 | 81993 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 80438 | 81994 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83041,8 +84597,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83041 | 84597 | .call_frame = .{ .alignment = .@"16" }, |
| 83042 | 84598 | .extra_temps = .{ |
| 83043 | 84599 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83044 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83045 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 84600 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 84601 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83046 | 84602 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83047 | 84603 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83048 | 84604 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83085,8 +84641,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83085 | 84641 | .call_frame = .{ .alignment = .@"16" }, |
| 83086 | 84642 | .extra_temps = .{ |
| 83087 | 84643 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83088 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83089 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 84644 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 84645 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83090 | 84646 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83091 | 84647 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83092 | 84648 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83129,8 +84685,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83129 | 84685 | .call_frame = .{ .alignment = .@"16" }, |
| 83130 | 84686 | .extra_temps = .{ |
| 83131 | 84687 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83132 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83133 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 84688 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 84689 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83134 | 84690 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83135 | 84691 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83136 | 84692 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83174,8 +84730,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83174 | 84730 | .call_frame = .{ .alignment = .@"16" }, |
| 83175 | 84731 | .extra_temps = .{ |
| 83176 | 84732 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83177 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83178 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 84733 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 84734 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83179 | 84735 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83180 | 84736 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83181 | 84737 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83219,8 +84775,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83219 | 84775 | .call_frame = .{ .alignment = .@"16" }, |
| 83220 | 84776 | .extra_temps = .{ |
| 83221 | 84777 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83222 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83223 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 84778 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 84779 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83224 | 84780 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83225 | 84781 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83226 | 84782 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83266,8 +84822,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83266 | 84822 | .call_frame = .{ .alignment = .@"16" }, |
| 83267 | 84823 | .extra_temps = .{ |
| 83268 | 84824 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83269 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83270 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 84825 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 84826 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83271 | 84827 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83272 | 84828 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83273 | 84829 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83313,8 +84869,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83313 | 84869 | .extra_temps = .{ |
| 83314 | 84870 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83315 | 84871 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83316 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83317 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 84872 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 84873 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83318 | 84874 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83319 | 84875 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83320 | 84876 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83366,8 +84922,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83366 | 84922 | .extra_temps = .{ |
| 83367 | 84923 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83368 | 84924 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83369 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83370 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 84925 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 84926 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83371 | 84927 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83372 | 84928 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83373 | 84929 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83419,8 +84975,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83419 | 84975 | .extra_temps = .{ |
| 83420 | 84976 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83421 | 84977 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83422 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83423 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 84978 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 84979 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83424 | 84980 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83425 | 84981 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83426 | 84982 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83473,8 +85029,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83473 | 85029 | .extra_temps = .{ |
| 83474 | 85030 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83475 | 85031 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83476 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83477 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 85032 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85033 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83478 | 85034 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83479 | 85035 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83480 | 85036 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83527,8 +85083,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83527 | 85083 | .extra_temps = .{ |
| 83528 | 85084 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83529 | 85085 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83530 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83531 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 85086 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85087 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83532 | 85088 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83533 | 85089 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83534 | 85090 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -83583,8 +85139,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 83583 | 85139 | .extra_temps = .{ |
| 83584 | 85140 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 83585 | 85141 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 83586 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 83587 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 85142 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85143 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 83588 | 85144 | .{ .type = .usize, .kind = .{ .extern_func = "__cmphf2" } }, |
| 83589 | 85145 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 83590 | 85146 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84424,8 +85980,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84424 | 85980 | .extra_temps = .{ |
| 84425 | 85981 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84426 | 85982 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84427 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84428 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 85983 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85984 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84429 | 85985 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84430 | 85986 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84431 | 85987 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84468,8 +86024,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84468 | 86024 | .extra_temps = .{ |
| 84469 | 86025 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84470 | 86026 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84471 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84472 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86027 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86028 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84473 | 86029 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84474 | 86030 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84475 | 86031 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84512,8 +86068,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84512 | 86068 | .extra_temps = .{ |
| 84513 | 86069 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84514 | 86070 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84515 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84516 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86071 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86072 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84517 | 86073 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84518 | 86074 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84519 | 86075 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84556,8 +86112,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84556 | 86112 | .extra_temps = .{ |
| 84557 | 86113 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84558 | 86114 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84559 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84560 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86115 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86116 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84561 | 86117 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84562 | 86118 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84563 | 86119 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84600,8 +86156,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84600 | 86156 | .extra_temps = .{ |
| 84601 | 86157 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84602 | 86158 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84603 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84604 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86159 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86160 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84605 | 86161 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84606 | 86162 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84607 | 86163 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84644,8 +86200,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84644 | 86200 | .extra_temps = .{ |
| 84645 | 86201 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84646 | 86202 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84647 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84648 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86203 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86204 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84649 | 86205 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84650 | 86206 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84651 | 86207 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84688,8 +86244,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84688 | 86244 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84689 | 86245 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84690 | 86246 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84691 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84692 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86247 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86248 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84693 | 86249 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84694 | 86250 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84695 | 86251 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84741,8 +86297,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84741 | 86297 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84742 | 86298 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84743 | 86299 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84744 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84745 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86300 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86301 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84746 | 86302 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84747 | 86303 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84748 | 86304 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84794,8 +86350,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84794 | 86350 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84795 | 86351 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84796 | 86352 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84797 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84798 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86353 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86354 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84799 | 86355 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84800 | 86356 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84801 | 86357 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84847,8 +86403,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84847 | 86403 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84848 | 86404 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84849 | 86405 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84850 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84851 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86406 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86407 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84852 | 86408 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84853 | 86409 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84854 | 86410 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84900,8 +86456,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84900 | 86456 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84901 | 86457 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84902 | 86458 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84903 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84904 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86459 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86460 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84905 | 86461 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84906 | 86462 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84907 | 86463 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -84953,8 +86509,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 84953 | 86509 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 84954 | 86510 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 84955 | 86511 | .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, |
| 84956 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 84957 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 86512 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86513 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 84958 | 86514 | .{ .type = .usize, .kind = .{ .extern_func = "__cmptf2" } }, |
| 84959 | 86515 | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 84960 | 86516 | .{ .type = .u8, .kind = .{ .reg = .cl } }, |
| ... | ... | @@ -85048,7 +86604,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85048 | 86604 | .data = .{ .ip_index = old_inline_func }, |
| 85049 | 86605 | }); |
| 85050 | 86606 | }, |
| 85051 | | .dbg_var_ptr, .dbg_var_val, .dbg_arg_inline => |air_tag| if (use_old) try cg.airDbgVar(inst) else if (!cg.mod.strip) { |
| 86607 | .dbg_var_ptr, .dbg_var_val, .dbg_arg_inline => |air_tag| if (!cg.mod.strip) { |
| 85052 | 86608 | const pl_op = air_datas[@intFromEnum(inst)].pl_op; |
| 85053 | 86609 | const air_name: Air.NullTerminatedString = @enumFromInt(pl_op.payload); |
| 85054 | 86610 | const op_ty = cg.typeOf(pl_op.operand); |
| ... | ... | @@ -85086,7 +86642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85086 | 86642 | try cg.genLocalDebugInfo(air_tag, local_ty, ops[0].tracking(cg).short); |
| 85087 | 86643 | try ops[0].die(cg); |
| 85088 | 86644 | }, |
| 85089 | | .is_null => if (use_old) try cg.airIsNull(inst) else { |
| 86645 | .is_null => { |
| 85090 | 86646 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 85091 | 86647 | const opt_ty = cg.typeOf(un_op); |
| 85092 | 86648 | const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); |
| ... | ... | @@ -85111,7 +86667,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85111 | 86667 | const is_null = try cg.tempInit(.bool, .{ .eflags = .e }); |
| 85112 | 86668 | try is_null.finish(inst, &.{un_op}, &ops, cg); |
| 85113 | 86669 | }, |
| 85114 | | .is_non_null => if (use_old) try cg.airIsNonNull(inst) else { |
| 86670 | .is_non_null => { |
| 85115 | 86671 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 85116 | 86672 | const opt_ty = cg.typeOf(un_op); |
| 85117 | 86673 | const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); |
| ... | ... | @@ -85136,7 +86692,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85136 | 86692 | const is_non_null = try cg.tempInit(.bool, .{ .eflags = .ne }); |
| 85137 | 86693 | try is_non_null.finish(inst, &.{un_op}, &ops, cg); |
| 85138 | 86694 | }, |
| 85139 | | .is_null_ptr => if (use_old) try cg.airIsNullPtr(inst) else { |
| 86695 | .is_null_ptr => { |
| 85140 | 86696 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 85141 | 86697 | const opt_ty = cg.typeOf(un_op).childType(zcu); |
| 85142 | 86698 | const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); |
| ... | ... | @@ -85159,7 +86715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85159 | 86715 | const is_null = try cg.tempInit(.bool, .{ .eflags = .e }); |
| 85160 | 86716 | try is_null.finish(inst, &.{un_op}, &ops, cg); |
| 85161 | 86717 | }, |
| 85162 | | .is_non_null_ptr => if (use_old) try cg.airIsNonNullPtr(inst) else { |
| 86718 | .is_non_null_ptr => { |
| 85163 | 86719 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 85164 | 86720 | const opt_ty = cg.typeOf(un_op).childType(zcu); |
| 85165 | 86721 | const opt_repr_is_pl = opt_ty.optionalReprIsPayload(zcu); |
| ... | ... | @@ -85182,7 +86738,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85182 | 86738 | const is_non_null = try cg.tempInit(.bool, .{ .eflags = .ne }); |
| 85183 | 86739 | try is_non_null.finish(inst, &.{un_op}, &ops, cg); |
| 85184 | 86740 | }, |
| 85185 | | .is_err => if (use_old) try cg.airIsErr(inst) else { |
| 86741 | .is_err => { |
| 85186 | 86742 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 85187 | 86743 | const eu_ty = cg.typeOf(un_op); |
| 85188 | 86744 | const eu_err_ty = eu_ty.errorUnionSet(zcu); |
| ... | ... | @@ -85198,7 +86754,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85198 | 86754 | const is_err = try cg.tempInit(.bool, .{ .eflags = .ne }); |
| 85199 | 86755 | try is_err.finish(inst, &.{un_op}, &ops, cg); |
| 85200 | 86756 | }, |
| 85201 | | .is_non_err => if (use_old) try cg.airIsNonErr(inst) else { |
| 86757 | .is_non_err => { |
| 85202 | 86758 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 85203 | 86759 | const eu_ty = cg.typeOf(un_op); |
| 85204 | 86760 | const eu_err_ty = eu_ty.errorUnionSet(zcu); |
| ... | ... | @@ -85214,7 +86770,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85214 | 86770 | const is_non_err = try cg.tempInit(.bool, .{ .eflags = .e }); |
| 85215 | 86771 | try is_non_err.finish(inst, &.{un_op}, &ops, cg); |
| 85216 | 86772 | }, |
| 85217 | | .is_err_ptr => if (use_old) try cg.airIsErrPtr(inst) else { |
| 86773 | .is_err_ptr => { |
| 85218 | 86774 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 85219 | 86775 | const eu_ty = cg.typeOf(un_op).childType(zcu); |
| 85220 | 86776 | const eu_err_ty = eu_ty.errorUnionSet(zcu); |
| ... | ... | @@ -85232,7 +86788,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85232 | 86788 | const is_err = try cg.tempInit(.bool, .{ .eflags = .ne }); |
| 85233 | 86789 | try is_err.finish(inst, &.{un_op}, &ops, cg); |
| 85234 | 86790 | }, |
| 85235 | | .is_non_err_ptr => if (use_old) try cg.airIsNonErrPtr(inst) else { |
| 86791 | .is_non_err_ptr => { |
| 85236 | 86792 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 85237 | 86793 | const eu_ty = cg.typeOf(un_op).childType(zcu); |
| 85238 | 86794 | const eu_err_ty = eu_ty.errorUnionSet(zcu); |
| ... | ... | @@ -85250,7 +86806,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85250 | 86806 | const is_non_err = try cg.tempInit(.bool, .{ .eflags = .e }); |
| 85251 | 86807 | try is_non_err.finish(inst, &.{un_op}, &ops, cg); |
| 85252 | 86808 | }, |
| 85253 | | .load => if (use_old) try cg.airLoad(inst) else fallback: { |
| 86809 | .load => fallback: { |
| 85254 | 86810 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 85255 | 86811 | const val_ty = ty_op.ty.toType(); |
| 85256 | 86812 | const ptr_ty = cg.typeOf(ty_op.operand); |
| ... | ... | @@ -85299,7 +86855,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85299 | 86855 | for (ops) |op| try op.die(cg); |
| 85300 | 86856 | }, |
| 85301 | 86857 | .unreach => {}, |
| 85302 | | .fptrunc => |air_tag| if (use_old) try cg.airFptrunc(inst) else { |
| 86858 | .fptrunc => |air_tag| { |
| 85303 | 86859 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 85304 | 86860 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 85305 | 86861 | var res: [1]Temp = undefined; |
| ... | ... | @@ -85341,7 +86897,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85341 | 86897 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 85342 | 86898 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 85343 | 86899 | .patterns = &.{ |
| 85344 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 86900 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 85345 | 86901 | }, |
| 85346 | 86902 | .call_frame = .{ .alignment = .@"16" }, |
| 85347 | 86903 | .extra_temps = .{ |
| ... | ... | @@ -85370,7 +86926,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85370 | 86926 | .{ .src = .{ .to_mem, .none, .none } }, |
| 85371 | 86927 | }, |
| 85372 | 86928 | .extra_temps = .{ |
| 85373 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86929 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 85374 | 86930 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 85375 | 86931 | .unused, |
| 85376 | 86932 | .unused, |
| ... | ... | @@ -85385,11 +86941,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85385 | 86941 | .dst_temps = .{ .mem, .unused }, |
| 85386 | 86942 | .clobbers = .{ .eflags = true }, |
| 85387 | 86943 | .each = .{ .once = &.{ |
| 85388 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85389 | | .{ .@"0:", .v_ps, .mova, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 85390 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 85391 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 85392 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 86944 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 86945 | .{ .@"0:", .v_ps, .mova, .tmp1y, .memsi(.src0y, .@"2", .tmp0), ._, ._ }, |
| 86946 | .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ }, |
| 86947 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 86948 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85393 | 86949 | } }, |
| 85394 | 86950 | }, .{ |
| 85395 | 86951 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -85400,8 +86956,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85400 | 86956 | }, |
| 85401 | 86957 | .call_frame = .{ .alignment = .@"16" }, |
| 85402 | 86958 | .extra_temps = .{ |
| 85403 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 85404 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 86959 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 86960 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85405 | 86961 | .{ .type = .usize, .kind = .{ .extern_func = "__truncsfhf2" } }, |
| 85406 | 86962 | .unused, |
| 85407 | 86963 | .unused, |
| ... | ... | @@ -85415,12 +86971,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85415 | 86971 | .dst_temps = .{ .mem, .unused }, |
| 85416 | 86972 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85417 | 86973 | .each = .{ .once = &.{ |
| 85418 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85419 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 86974 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 86975 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 85420 | 86976 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 85421 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 85422 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 85423 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 86977 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 86978 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 86979 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85424 | 86980 | } }, |
| 85425 | 86981 | }, .{ |
| 85426 | 86982 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -85431,8 +86987,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85431 | 86987 | }, |
| 85432 | 86988 | .call_frame = .{ .alignment = .@"16" }, |
| 85433 | 86989 | .extra_temps = .{ |
| 85434 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 85435 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 86990 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 86991 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85436 | 86992 | .{ .type = .usize, .kind = .{ .extern_func = "__truncsfhf2" } }, |
| 85437 | 86993 | .unused, |
| 85438 | 86994 | .unused, |
| ... | ... | @@ -85446,12 +87002,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85446 | 87002 | .dst_temps = .{ .mem, .unused }, |
| 85447 | 87003 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85448 | 87004 | .each = .{ .once = &.{ |
| 85449 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85450 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87005 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87006 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 85451 | 87007 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 85452 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 85453 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 85454 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87008 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 87009 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87010 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85455 | 87011 | } }, |
| 85456 | 87012 | }, .{ |
| 85457 | 87013 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -85462,8 +87018,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85462 | 87018 | }, |
| 85463 | 87019 | .call_frame = .{ .alignment = .@"16" }, |
| 85464 | 87020 | .extra_temps = .{ |
| 85465 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 85466 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 87021 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87022 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85467 | 87023 | .{ .type = .usize, .kind = .{ .extern_func = "__truncsfhf2" } }, |
| 85468 | 87024 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 85469 | 87025 | .unused, |
| ... | ... | @@ -85477,13 +87033,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85477 | 87033 | .dst_temps = .{ .mem, .unused }, |
| 85478 | 87034 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85479 | 87035 | .each = .{ .once = &.{ |
| 85480 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85481 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87036 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87037 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 85482 | 87038 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 85483 | 87039 | .{ ._, .p_w, .extr, .tmp3d, .tmp1x, .ui(0), ._ }, |
| 85484 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 85485 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 85486 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87040 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 87041 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87042 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85487 | 87043 | } }, |
| 85488 | 87044 | }, .{ |
| 85489 | 87045 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -85494,8 +87050,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85494 | 87050 | }, |
| 85495 | 87051 | .call_frame = .{ .alignment = .@"16" }, |
| 85496 | 87052 | .extra_temps = .{ |
| 85497 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 85498 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 87053 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87054 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85499 | 87055 | .{ .type = .usize, .kind = .{ .extern_func = "__truncsfhf2" } }, |
| 85500 | 87056 | .{ .type = .f32, .kind = .mem }, |
| 85501 | 87057 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -85509,21 +87065,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85509 | 87065 | .dst_temps = .{ .mem, .unused }, |
| 85510 | 87066 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85511 | 87067 | .each = .{ .once = &.{ |
| 85512 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85513 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87068 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87069 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 85514 | 87070 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 85515 | 87071 | .{ ._, ._ss, .mov, .mem(.tmp3d), .tmp1x, ._, ._ }, |
| 85516 | 87072 | .{ ._, ._, .mov, .tmp4d, .mem(.tmp3d), ._, ._ }, |
| 85517 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, |
| 85518 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 85519 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87073 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp4w, ._, ._ }, |
| 87074 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87075 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85520 | 87076 | } }, |
| 85521 | 87077 | }, .{ |
| 85522 | 87078 | .required_features = .{ .sse, null, null, null }, |
| 85523 | 87079 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 85524 | 87080 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 85525 | 87081 | .patterns = &.{ |
| 85526 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 87082 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 85527 | 87083 | }, |
| 85528 | 87084 | .call_frame = .{ .alignment = .@"16" }, |
| 85529 | 87085 | .extra_temps = .{ |
| ... | ... | @@ -85553,8 +87109,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85553 | 87109 | }, |
| 85554 | 87110 | .call_frame = .{ .alignment = .@"16" }, |
| 85555 | 87111 | .extra_temps = .{ |
| 85556 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 85557 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 87112 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87113 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85558 | 87114 | .{ .type = .usize, .kind = .{ .extern_func = "__truncdfhf2" } }, |
| 85559 | 87115 | .unused, |
| 85560 | 87116 | .unused, |
| ... | ... | @@ -85568,12 +87124,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85568 | 87124 | .dst_temps = .{ .mem, .unused }, |
| 85569 | 87125 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85570 | 87126 | .each = .{ .once = &.{ |
| 85571 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85572 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87127 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87128 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 85573 | 87129 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 85574 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 85575 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 85576 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87130 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 87131 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87132 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85577 | 87133 | } }, |
| 85578 | 87134 | }, .{ |
| 85579 | 87135 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -85584,8 +87140,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85584 | 87140 | }, |
| 85585 | 87141 | .call_frame = .{ .alignment = .@"16" }, |
| 85586 | 87142 | .extra_temps = .{ |
| 85587 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 85588 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 87143 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87144 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85589 | 87145 | .{ .type = .usize, .kind = .{ .extern_func = "__truncdfhf2" } }, |
| 85590 | 87146 | .unused, |
| 85591 | 87147 | .unused, |
| ... | ... | @@ -85599,12 +87155,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85599 | 87155 | .dst_temps = .{ .mem, .unused }, |
| 85600 | 87156 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85601 | 87157 | .each = .{ .once = &.{ |
| 85602 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85603 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87158 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87159 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 85604 | 87160 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 85605 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 85606 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 85607 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87161 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 87162 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87163 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85608 | 87164 | } }, |
| 85609 | 87165 | }, .{ |
| 85610 | 87166 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -85615,8 +87171,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85615 | 87171 | }, |
| 85616 | 87172 | .call_frame = .{ .alignment = .@"16" }, |
| 85617 | 87173 | .extra_temps = .{ |
| 85618 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 85619 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 87174 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87175 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85620 | 87176 | .{ .type = .usize, .kind = .{ .extern_func = "__truncdfhf2" } }, |
| 85621 | 87177 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 85622 | 87178 | .unused, |
| ... | ... | @@ -85630,13 +87186,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85630 | 87186 | .dst_temps = .{ .mem, .unused }, |
| 85631 | 87187 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85632 | 87188 | .each = .{ .once = &.{ |
| 85633 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85634 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87189 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87190 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 85635 | 87191 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 85636 | 87192 | .{ ._, .p_w, .extr, .tmp3d, .tmp1x, .ui(0), ._ }, |
| 85637 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 85638 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 85639 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87193 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 87194 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87195 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85640 | 87196 | } }, |
| 85641 | 87197 | }, .{ |
| 85642 | 87198 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -85647,8 +87203,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85647 | 87203 | }, |
| 85648 | 87204 | .call_frame = .{ .alignment = .@"16" }, |
| 85649 | 87205 | .extra_temps = .{ |
| 85650 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 85651 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 87206 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87207 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85652 | 87208 | .{ .type = .usize, .kind = .{ .extern_func = "__truncdfhf2" } }, |
| 85653 | 87209 | .{ .type = .f32, .kind = .mem }, |
| 85654 | 87210 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -85662,15 +87218,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85662 | 87218 | .dst_temps = .{ .mem, .unused }, |
| 85663 | 87219 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85664 | 87220 | .each = .{ .once = &.{ |
| 85665 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 87221 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 85666 | 87222 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 85667 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87223 | .{ ._, ._ps, .movl, .tmp1x, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 85668 | 87224 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 85669 | 87225 | .{ ._, ._ss, .mov, .mem(.tmp3d), .tmp1x, ._, ._ }, |
| 85670 | 87226 | .{ ._, ._, .mov, .tmp4d, .mem(.tmp3d), ._, ._ }, |
| 85671 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, |
| 85672 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 85673 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87227 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp4w, ._, ._ }, |
| 87228 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87229 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85674 | 87230 | } }, |
| 85675 | 87231 | }, .{ |
| 85676 | 87232 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -85777,7 +87333,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85777 | 87333 | .{ .src = .{ .to_mem, .none, .none } }, |
| 85778 | 87334 | }, |
| 85779 | 87335 | .extra_temps = .{ |
| 85780 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87336 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 85781 | 87337 | .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, |
| 85782 | 87338 | .unused, |
| 85783 | 87339 | .unused, |
| ... | ... | @@ -85792,11 +87348,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85792 | 87348 | .dst_temps = .{ .mem, .unused }, |
| 85793 | 87349 | .clobbers = .{ .eflags = true }, |
| 85794 | 87350 | .each = .{ .once = &.{ |
| 85795 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85796 | | .{ .@"0:", .v_ps, .cvtpd2, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 85797 | | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 85798 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 85799 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87351 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 87352 | .{ .@"0:", .v_ps, .cvtpd2, .tmp1x, .memsi(.src0y, .@"2", .tmp0), ._, ._ }, |
| 87353 | .{ ._, .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 87354 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 87355 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85800 | 87356 | } }, |
| 85801 | 87357 | }, .{ |
| 85802 | 87358 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -85806,7 +87362,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85806 | 87362 | .{ .src = .{ .to_mem, .none, .none } }, |
| 85807 | 87363 | }, |
| 85808 | 87364 | .extra_temps = .{ |
| 85809 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87365 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 85810 | 87366 | .{ .type = .vector_2_f32, .kind = .{ .rc = .sse } }, |
| 85811 | 87367 | .unused, |
| 85812 | 87368 | .unused, |
| ... | ... | @@ -85821,11 +87377,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85821 | 87377 | .dst_temps = .{ .mem, .unused }, |
| 85822 | 87378 | .clobbers = .{ .eflags = true }, |
| 85823 | 87379 | .each = .{ .once = &.{ |
| 85824 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85825 | | .{ .@"0:", ._ps, .cvtpd2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 85826 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 85827 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 85828 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87380 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 87381 | .{ .@"0:", ._ps, .cvtpd2, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 87382 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 87383 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 87384 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85829 | 87385 | } }, |
| 85830 | 87386 | }, .{ |
| 85831 | 87387 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -85835,7 +87391,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85835 | 87391 | .{ .src = .{ .to_mem, .none, .none } }, |
| 85836 | 87392 | }, |
| 85837 | 87393 | .extra_temps = .{ |
| 85838 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87394 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 85839 | 87395 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 85840 | 87396 | .unused, |
| 85841 | 87397 | .unused, |
| ... | ... | @@ -85850,13 +87406,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85850 | 87406 | .dst_temps = .{ .mem, .unused }, |
| 85851 | 87407 | .clobbers = .{ .eflags = true }, |
| 85852 | 87408 | .each = .{ .once = &.{ |
| 85853 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85854 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 85855 | | .{ ._, .f_p, .st, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 85856 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 85857 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87409 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 87410 | .{ .@"0:", .f_, .ld, .memsi(.src0q, .@"2", .tmp0), ._, ._, ._ }, |
| 87411 | .{ ._, .f_p, .st, .memi(.dst0d, .tmp0), ._, ._, ._ }, |
| 87412 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 87413 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85858 | 87414 | } }, |
| 85859 | 87415 | }, .{ |
| 87416 | .required_cc_abi = .sysv64, |
| 85860 | 87417 | .required_features = .{ .avx, null, null, null }, |
| 85861 | 87418 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 85862 | 87419 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| ... | ... | @@ -85877,7 +87434,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85877 | 87434 | .unused, |
| 85878 | 87435 | .unused, |
| 85879 | 87436 | }, |
| 85880 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 87437 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 85881 | 87438 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85882 | 87439 | .each = .{ .once = &.{ |
| 85883 | 87440 | .{ ._, .v_dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, |
| ... | ... | @@ -85885,6 +87442,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85885 | 87442 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 85886 | 87443 | } }, |
| 85887 | 87444 | }, .{ |
| 87445 | .required_cc_abi = .sysv64, |
| 85888 | 87446 | .required_features = .{ .sse2, null, null, null }, |
| 85889 | 87447 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 85890 | 87448 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| ... | ... | @@ -85905,7 +87463,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85905 | 87463 | .unused, |
| 85906 | 87464 | .unused, |
| 85907 | 87465 | }, |
| 85908 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 87466 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 85909 | 87467 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85910 | 87468 | .each = .{ .once = &.{ |
| 85911 | 87469 | .{ ._, ._dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, |
| ... | ... | @@ -85913,6 +87471,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85913 | 87471 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 85914 | 87472 | } }, |
| 85915 | 87473 | }, .{ |
| 87474 | .required_cc_abi = .sysv64, |
| 85916 | 87475 | .required_features = .{ .sse, null, null, null }, |
| 85917 | 87476 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 85918 | 87477 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| ... | ... | @@ -85933,7 +87492,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85933 | 87492 | .unused, |
| 85934 | 87493 | .unused, |
| 85935 | 87494 | }, |
| 85936 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 87495 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 85937 | 87496 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85938 | 87497 | .each = .{ .once = &.{ |
| 85939 | 87498 | .{ ._, ._ps, .mova, .dst0x, .mem(.src0x), ._, ._ }, |
| ... | ... | @@ -85941,6 +87500,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85941 | 87500 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 85942 | 87501 | } }, |
| 85943 | 87502 | }, .{ |
| 87503 | .required_cc_abi = .win64, |
| 87504 | .required_features = .{ .sse, null, null, null }, |
| 87505 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 87506 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 87507 | .patterns = &.{ |
| 87508 | .{ .src = .{ .to_mem, .none, .none } }, |
| 87509 | }, |
| 87510 | .call_frame = .{ .alignment = .@"16" }, |
| 87511 | .extra_temps = .{ |
| 87512 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87513 | .{ .type = .usize, .kind = .{ .extern_func = "__truncxfhf2" } }, |
| 87514 | .unused, |
| 87515 | .unused, |
| 87516 | .unused, |
| 87517 | .unused, |
| 87518 | .unused, |
| 87519 | .unused, |
| 87520 | .unused, |
| 87521 | .unused, |
| 87522 | .unused, |
| 87523 | }, |
| 87524 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 87525 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87526 | .each = .{ .once = &.{ |
| 87527 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 87528 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 87529 | } }, |
| 87530 | }, .{ |
| 87531 | .required_cc_abi = .sysv64, |
| 85944 | 87532 | .required_features = .{ .avx, null, null, null }, |
| 85945 | 87533 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 85946 | 87534 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| ... | ... | @@ -85949,8 +87537,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85949 | 87537 | }, |
| 85950 | 87538 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 85951 | 87539 | .extra_temps = .{ |
| 85952 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 85953 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 87540 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87541 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85954 | 87542 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 85955 | 87543 | .{ .type = .usize, .kind = .{ .extern_func = "__truncxfhf2" } }, |
| 85956 | 87544 | .unused, |
| ... | ... | @@ -85964,15 +87552,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85964 | 87552 | .dst_temps = .{ .mem, .unused }, |
| 85965 | 87553 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85966 | 87554 | .each = .{ .once = &.{ |
| 85967 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 85968 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87555 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87556 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 85969 | 87557 | .{ ._, .v_dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 85970 | 87558 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 85971 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 85972 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 85973 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87559 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 87560 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87561 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87562 | } }, |
| 87563 | }, .{ |
| 87564 | .required_cc_abi = .win64, |
| 87565 | .required_features = .{ .avx, null, null, null }, |
| 87566 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 87567 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 87568 | .patterns = &.{ |
| 87569 | .{ .src = .{ .to_mem, .none, .none } }, |
| 87570 | }, |
| 87571 | .call_frame = .{ .alignment = .@"16" }, |
| 87572 | .extra_temps = .{ |
| 87573 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87574 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87575 | .{ .type = .usize, .kind = .{ .extern_func = "__truncxfhf2" } }, |
| 87576 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87577 | .unused, |
| 87578 | .unused, |
| 87579 | .unused, |
| 87580 | .unused, |
| 87581 | .unused, |
| 87582 | .unused, |
| 87583 | .unused, |
| 87584 | }, |
| 87585 | .dst_temps = .{ .mem, .unused }, |
| 87586 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87587 | .each = .{ .once = &.{ |
| 87588 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87589 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 87590 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87591 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 87592 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87593 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 85974 | 87594 | } }, |
| 85975 | 87595 | }, .{ |
| 87596 | .required_cc_abi = .sysv64, |
| 85976 | 87597 | .required_features = .{ .sse4_1, null, null, null }, |
| 85977 | 87598 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 85978 | 87599 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| ... | ... | @@ -85981,8 +87602,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85981 | 87602 | }, |
| 85982 | 87603 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 85983 | 87604 | .extra_temps = .{ |
| 85984 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 85985 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 87605 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87606 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 85986 | 87607 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 85987 | 87608 | .{ .type = .usize, .kind = .{ .extern_func = "__truncxfhf2" } }, |
| 85988 | 87609 | .unused, |
| ... | ... | @@ -85996,15 +87617,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 85996 | 87617 | .dst_temps = .{ .mem, .unused }, |
| 85997 | 87618 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 85998 | 87619 | .each = .{ .once = &.{ |
| 85999 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86000 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87620 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87621 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 86001 | 87622 | .{ ._, ._dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 86002 | 87623 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 86003 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 86004 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 86005 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87624 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 87625 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87626 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87627 | } }, |
| 87628 | }, .{ |
| 87629 | .required_cc_abi = .win64, |
| 87630 | .required_features = .{ .sse4_1, null, null, null }, |
| 87631 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 87632 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 87633 | .patterns = &.{ |
| 87634 | .{ .src = .{ .to_mem, .none, .none } }, |
| 87635 | }, |
| 87636 | .call_frame = .{ .alignment = .@"16" }, |
| 87637 | .extra_temps = .{ |
| 87638 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87639 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87640 | .{ .type = .usize, .kind = .{ .extern_func = "__truncxfhf2" } }, |
| 87641 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87642 | .unused, |
| 87643 | .unused, |
| 87644 | .unused, |
| 87645 | .unused, |
| 87646 | .unused, |
| 87647 | .unused, |
| 87648 | .unused, |
| 87649 | }, |
| 87650 | .dst_temps = .{ .mem, .unused }, |
| 87651 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87652 | .each = .{ .once = &.{ |
| 87653 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87654 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 87655 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87656 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 87657 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87658 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86006 | 87659 | } }, |
| 86007 | 87660 | }, .{ |
| 87661 | .required_cc_abi = .sysv64, |
| 86008 | 87662 | .required_features = .{ .sse2, null, null, null }, |
| 86009 | 87663 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 86010 | 87664 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| ... | ... | @@ -86013,8 +87667,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86013 | 87667 | }, |
| 86014 | 87668 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 86015 | 87669 | .extra_temps = .{ |
| 86016 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86017 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 87670 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87671 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86018 | 87672 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 86019 | 87673 | .{ .type = .usize, .kind = .{ .extern_func = "__truncxfhf2" } }, |
| 86020 | 87674 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -86028,16 +87682,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86028 | 87682 | .dst_temps = .{ .mem, .unused }, |
| 86029 | 87683 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86030 | 87684 | .each = .{ .once = &.{ |
| 86031 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86032 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87685 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87686 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 86033 | 87687 | .{ ._, ._dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 86034 | 87688 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 86035 | 87689 | .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, |
| 86036 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, |
| 86037 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 86038 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87690 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp4w, ._, ._ }, |
| 87691 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87692 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87693 | } }, |
| 87694 | }, .{ |
| 87695 | .required_cc_abi = .win64, |
| 87696 | .required_features = .{ .sse2, null, null, null }, |
| 87697 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 87698 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 87699 | .patterns = &.{ |
| 87700 | .{ .src = .{ .to_mem, .none, .none } }, |
| 87701 | }, |
| 87702 | .call_frame = .{ .alignment = .@"16" }, |
| 87703 | .extra_temps = .{ |
| 87704 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87705 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87706 | .{ .type = .usize, .kind = .{ .extern_func = "__truncxfhf2" } }, |
| 87707 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87708 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 87709 | .unused, |
| 87710 | .unused, |
| 87711 | .unused, |
| 87712 | .unused, |
| 87713 | .unused, |
| 87714 | .unused, |
| 87715 | }, |
| 87716 | .dst_temps = .{ .mem, .unused }, |
| 87717 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87718 | .each = .{ .once = &.{ |
| 87719 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87720 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 87721 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87722 | .{ ._, .p_w, .extr, .tmp4d, .tmp3x, .ui(0), ._ }, |
| 87723 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp4w, ._, ._ }, |
| 87724 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87725 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86039 | 87726 | } }, |
| 86040 | 87727 | }, .{ |
| 87728 | .required_cc_abi = .sysv64, |
| 86041 | 87729 | .required_features = .{ .sse, null, null, null }, |
| 86042 | 87730 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 86043 | 87731 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| ... | ... | @@ -86046,8 +87734,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86046 | 87734 | }, |
| 86047 | 87735 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 86048 | 87736 | .extra_temps = .{ |
| 86049 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86050 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 87737 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87738 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86051 | 87739 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 86052 | 87740 | .{ .type = .usize, .kind = .{ .extern_func = "__truncxfhf2" } }, |
| 86053 | 87741 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -86061,15 +87749,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86061 | 87749 | .dst_temps = .{ .mem, .unused }, |
| 86062 | 87750 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86063 | 87751 | .each = .{ .once = &.{ |
| 86064 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86065 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87752 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87753 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 86066 | 87754 | .{ ._, ._ps, .mova, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 86067 | 87755 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 86068 | 87756 | .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp1x, ._, ._ }, |
| 86069 | 87757 | .{ ._, ._, .mov, .tmp4d, .mem(.tmp2d), ._, ._ }, |
| 86070 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, |
| 86071 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 86072 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87758 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp4w, ._, ._ }, |
| 87759 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87760 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87761 | } }, |
| 87762 | }, .{ |
| 87763 | .required_cc_abi = .win64, |
| 87764 | .required_features = .{ .sse, null, null, null }, |
| 87765 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 87766 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 87767 | .patterns = &.{ |
| 87768 | .{ .src = .{ .to_mem, .none, .none } }, |
| 87769 | }, |
| 87770 | .call_frame = .{ .alignment = .@"16" }, |
| 87771 | .extra_temps = .{ |
| 87772 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87773 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87774 | .{ .type = .usize, .kind = .{ .extern_func = "__truncxfhf2" } }, |
| 87775 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87776 | .{ .type = .f32, .kind = .mem }, |
| 87777 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 87778 | .unused, |
| 87779 | .unused, |
| 87780 | .unused, |
| 87781 | .unused, |
| 87782 | .unused, |
| 87783 | }, |
| 87784 | .dst_temps = .{ .mem, .unused }, |
| 87785 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87786 | .each = .{ .once = &.{ |
| 87787 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87788 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 87789 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87790 | .{ ._, ._ss, .mov, .mem(.tmp4d), .tmp3x, ._, ._ }, |
| 87791 | .{ ._, ._, .mov, .tmp5d, .mem(.tmp4d), ._, ._ }, |
| 87792 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp5w, ._, ._ }, |
| 87793 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87794 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86073 | 87795 | } }, |
| 86074 | 87796 | }, .{ |
| 86075 | 87797 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -86105,7 +87827,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86105 | 87827 | .{ .src = .{ .to_mem, .none, .none } }, |
| 86106 | 87828 | }, |
| 86107 | 87829 | .extra_temps = .{ |
| 86108 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87830 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 86109 | 87831 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 86110 | 87832 | .unused, |
| 86111 | 87833 | .unused, |
| ... | ... | @@ -86120,11 +87842,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86120 | 87842 | .dst_temps = .{ .mem, .unused }, |
| 86121 | 87843 | .clobbers = .{ .eflags = true }, |
| 86122 | 87844 | .each = .{ .once = &.{ |
| 86123 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86124 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 86125 | | .{ ._, .f_p, .st, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 86126 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 86127 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87845 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 87846 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"4", .tmp0), ._, ._, ._ }, |
| 87847 | .{ ._, .f_p, .st, .memi(.dst0d, .tmp0), ._, ._, ._ }, |
| 87848 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 87849 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86128 | 87850 | } }, |
| 86129 | 87851 | }, .{ |
| 86130 | 87852 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -86160,7 +87882,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86160 | 87882 | .{ .src = .{ .to_mem, .none, .none } }, |
| 86161 | 87883 | }, |
| 86162 | 87884 | .extra_temps = .{ |
| 86163 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87885 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 86164 | 87886 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 86165 | 87887 | .unused, |
| 86166 | 87888 | .unused, |
| ... | ... | @@ -86175,18 +87897,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86175 | 87897 | .dst_temps = .{ .mem, .unused }, |
| 86176 | 87898 | .clobbers = .{ .eflags = true }, |
| 86177 | 87899 | .each = .{ .once = &.{ |
| 86178 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86179 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 86180 | | .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 86181 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 86182 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87900 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 87901 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"2", .tmp0), ._, ._, ._ }, |
| 87902 | .{ ._, .f_p, .st, .memi(.dst0q, .tmp0), ._, ._, ._ }, |
| 87903 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 87904 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86183 | 87905 | } }, |
| 86184 | 87906 | }, .{ |
| 86185 | 87907 | .required_features = .{ .sse, null, null, null }, |
| 86186 | 87908 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 86187 | 87909 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 86188 | 87910 | .patterns = &.{ |
| 86189 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 87911 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 86190 | 87912 | }, |
| 86191 | 87913 | .call_frame = .{ .alignment = .@"16" }, |
| 86192 | 87914 | .extra_temps = .{ |
| ... | ... | @@ -86216,8 +87938,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86216 | 87938 | }, |
| 86217 | 87939 | .call_frame = .{ .alignment = .@"16" }, |
| 86218 | 87940 | .extra_temps = .{ |
| 86219 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86220 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 87941 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87942 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86221 | 87943 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfhf2" } }, |
| 86222 | 87944 | .unused, |
| 86223 | 87945 | .unused, |
| ... | ... | @@ -86231,12 +87953,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86231 | 87953 | .dst_temps = .{ .mem, .unused }, |
| 86232 | 87954 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86233 | 87955 | .each = .{ .once = &.{ |
| 86234 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86235 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87956 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87957 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 86236 | 87958 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86237 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 86238 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 86239 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87959 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 87960 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87961 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86240 | 87962 | } }, |
| 86241 | 87963 | }, .{ |
| 86242 | 87964 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -86247,8 +87969,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86247 | 87969 | }, |
| 86248 | 87970 | .call_frame = .{ .alignment = .@"16" }, |
| 86249 | 87971 | .extra_temps = .{ |
| 86250 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86251 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 87972 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87973 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86252 | 87974 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfhf2" } }, |
| 86253 | 87975 | .unused, |
| 86254 | 87976 | .unused, |
| ... | ... | @@ -86262,12 +87984,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86262 | 87984 | .dst_temps = .{ .mem, .unused }, |
| 86263 | 87985 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86264 | 87986 | .each = .{ .once = &.{ |
| 86265 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86266 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 87987 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 87988 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 86267 | 87989 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86268 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 86269 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 86270 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 87990 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 87991 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 87992 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86271 | 87993 | } }, |
| 86272 | 87994 | }, .{ |
| 86273 | 87995 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -86278,8 +88000,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86278 | 88000 | }, |
| 86279 | 88001 | .call_frame = .{ .alignment = .@"16" }, |
| 86280 | 88002 | .extra_temps = .{ |
| 86281 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86282 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 88003 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88004 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86283 | 88005 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfhf2" } }, |
| 86284 | 88006 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 86285 | 88007 | .unused, |
| ... | ... | @@ -86293,13 +88015,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86293 | 88015 | .dst_temps = .{ .mem, .unused }, |
| 86294 | 88016 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86295 | 88017 | .each = .{ .once = &.{ |
| 86296 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86297 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 88018 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 88019 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 86298 | 88020 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86299 | 88021 | .{ ._, .p_w, .extr, .tmp3d, .tmp1x, .ui(0), ._ }, |
| 86300 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 86301 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 86302 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88022 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 88023 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 88024 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86303 | 88025 | } }, |
| 86304 | 88026 | }, .{ |
| 86305 | 88027 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -86310,8 +88032,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86310 | 88032 | }, |
| 86311 | 88033 | .call_frame = .{ .alignment = .@"16" }, |
| 86312 | 88034 | .extra_temps = .{ |
| 86313 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86314 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 88035 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88036 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86315 | 88037 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfhf2" } }, |
| 86316 | 88038 | .{ .type = .f32, .kind = .mem }, |
| 86317 | 88039 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| ... | ... | @@ -86325,21 +88047,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86325 | 88047 | .dst_temps = .{ .mem, .unused }, |
| 86326 | 88048 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86327 | 88049 | .each = .{ .once = &.{ |
| 86328 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86329 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 88050 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 88051 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 86330 | 88052 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86331 | 88053 | .{ ._, ._ss, .mov, .mem(.tmp3d), .tmp1x, ._, ._ }, |
| 86332 | 88054 | .{ ._, ._, .mov, .tmp4d, .mem(.tmp3d), ._, ._ }, |
| 86333 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, |
| 86334 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 86335 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88055 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp4w, ._, ._ }, |
| 88056 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 88057 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86336 | 88058 | } }, |
| 86337 | 88059 | }, .{ |
| 86338 | 88060 | .required_features = .{ .sse, null, null, null }, |
| 86339 | 88061 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 86340 | 88062 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 86341 | 88063 | .patterns = &.{ |
| 86342 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 88064 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 86343 | 88065 | }, |
| 86344 | 88066 | .call_frame = .{ .alignment = .@"16" }, |
| 86345 | 88067 | .extra_temps = .{ |
| ... | ... | @@ -86369,8 +88091,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86369 | 88091 | }, |
| 86370 | 88092 | .call_frame = .{ .alignment = .@"16" }, |
| 86371 | 88093 | .extra_temps = .{ |
| 86372 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86373 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 88094 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88095 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86374 | 88096 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfsf2" } }, |
| 86375 | 88097 | .unused, |
| 86376 | 88098 | .unused, |
| ... | ... | @@ -86384,12 +88106,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86384 | 88106 | .dst_temps = .{ .mem, .unused }, |
| 86385 | 88107 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86386 | 88108 | .each = .{ .once = &.{ |
| 86387 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86388 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 88109 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 88110 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 86389 | 88111 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86390 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 86391 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 86392 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88112 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 88113 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 88114 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86393 | 88115 | } }, |
| 86394 | 88116 | }, .{ |
| 86395 | 88117 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -86400,8 +88122,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86400 | 88122 | }, |
| 86401 | 88123 | .call_frame = .{ .alignment = .@"16" }, |
| 86402 | 88124 | .extra_temps = .{ |
| 86403 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86404 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 88125 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88126 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86405 | 88127 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfsf2" } }, |
| 86406 | 88128 | .unused, |
| 86407 | 88129 | .unused, |
| ... | ... | @@ -86415,12 +88137,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86415 | 88137 | .dst_temps = .{ .mem, .unused }, |
| 86416 | 88138 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86417 | 88139 | .each = .{ .once = &.{ |
| 86418 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86419 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 88140 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 88141 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 86420 | 88142 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86421 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 86422 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 86423 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88143 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 88144 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 88145 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86424 | 88146 | } }, |
| 86425 | 88147 | }, .{ |
| 86426 | 88148 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -86431,8 +88153,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86431 | 88153 | }, |
| 86432 | 88154 | .call_frame = .{ .alignment = .@"16" }, |
| 86433 | 88155 | .extra_temps = .{ |
| 86434 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86435 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 88156 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88157 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86436 | 88158 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfsf2" } }, |
| 86437 | 88159 | .unused, |
| 86438 | 88160 | .unused, |
| ... | ... | @@ -86446,19 +88168,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86446 | 88168 | .dst_temps = .{ .mem, .unused }, |
| 86447 | 88169 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86448 | 88170 | .each = .{ .once = &.{ |
| 86449 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86450 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 88171 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 88172 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 86451 | 88173 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86452 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 86453 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 86454 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88174 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 88175 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 88176 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86455 | 88177 | } }, |
| 86456 | 88178 | }, .{ |
| 86457 | 88179 | .required_features = .{ .sse, null, null, null }, |
| 86458 | 88180 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 86459 | 88181 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 86460 | 88182 | .patterns = &.{ |
| 86461 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 88183 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 86462 | 88184 | }, |
| 86463 | 88185 | .call_frame = .{ .alignment = .@"16" }, |
| 86464 | 88186 | .extra_temps = .{ |
| ... | ... | @@ -86488,8 +88210,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86488 | 88210 | }, |
| 86489 | 88211 | .call_frame = .{ .alignment = .@"16" }, |
| 86490 | 88212 | .extra_temps = .{ |
| 86491 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86492 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 88213 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88214 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86493 | 88215 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfdf2" } }, |
| 86494 | 88216 | .unused, |
| 86495 | 88217 | .unused, |
| ... | ... | @@ -86503,12 +88225,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86503 | 88225 | .dst_temps = .{ .mem, .unused }, |
| 86504 | 88226 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86505 | 88227 | .each = .{ .once = &.{ |
| 86506 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86507 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 88228 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 88229 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 86508 | 88230 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86509 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 86510 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 86511 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88231 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 88232 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 88233 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86512 | 88234 | } }, |
| 86513 | 88235 | }, .{ |
| 86514 | 88236 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -86519,8 +88241,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86519 | 88241 | }, |
| 86520 | 88242 | .call_frame = .{ .alignment = .@"16" }, |
| 86521 | 88243 | .extra_temps = .{ |
| 86522 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86523 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 88244 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88245 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86524 | 88246 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfdf2" } }, |
| 86525 | 88247 | .unused, |
| 86526 | 88248 | .unused, |
| ... | ... | @@ -86534,12 +88256,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86534 | 88256 | .dst_temps = .{ .mem, .unused }, |
| 86535 | 88257 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86536 | 88258 | .each = .{ .once = &.{ |
| 86537 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86538 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 88259 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 88260 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 86539 | 88261 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86540 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 86541 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 86542 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88262 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 88263 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 88264 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86543 | 88265 | } }, |
| 86544 | 88266 | }, .{ |
| 86545 | 88267 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -86550,8 +88272,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86550 | 88272 | }, |
| 86551 | 88273 | .call_frame = .{ .alignment = .@"16" }, |
| 86552 | 88274 | .extra_temps = .{ |
| 86553 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86554 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 88275 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88276 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86555 | 88277 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfdf2" } }, |
| 86556 | 88278 | .unused, |
| 86557 | 88279 | .unused, |
| ... | ... | @@ -86565,19 +88287,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86565 | 88287 | .dst_temps = .{ .mem, .unused }, |
| 86566 | 88288 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86567 | 88289 | .each = .{ .once = &.{ |
| 86568 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86569 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 88290 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 88291 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 86570 | 88292 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86571 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 86572 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 86573 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88293 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 88294 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 88295 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86574 | 88296 | } }, |
| 86575 | 88297 | }, .{ |
| 88298 | .required_cc_abi = .sysv64, |
| 86576 | 88299 | .required_features = .{ .sse, .x87, null, null }, |
| 86577 | 88300 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 86578 | 88301 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 86579 | 88302 | .patterns = &.{ |
| 86580 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 88303 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 86581 | 88304 | }, |
| 86582 | 88305 | .call_frame = .{ .alignment = .@"16" }, |
| 86583 | 88306 | .extra_temps = .{ |
| ... | ... | @@ -86599,6 +88322,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86599 | 88322 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 86600 | 88323 | } }, |
| 86601 | 88324 | }, .{ |
| 88325 | .required_cc_abi = .win64, |
| 88326 | .required_features = .{ .sse, null, null, null }, |
| 88327 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 88328 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 88329 | .patterns = &.{ |
| 88330 | .{ .src = .{ .{ .to_reg = .xmm1 }, .none, .none } }, |
| 88331 | }, |
| 88332 | .call_frame = .{ .alignment = .@"16" }, |
| 88333 | .extra_temps = .{ |
| 88334 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 88335 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfxf2" } }, |
| 88336 | .unused, |
| 88337 | .unused, |
| 88338 | .unused, |
| 88339 | .unused, |
| 88340 | .unused, |
| 88341 | .unused, |
| 88342 | .unused, |
| 88343 | .unused, |
| 88344 | .unused, |
| 88345 | }, |
| 88346 | .dst_temps = .{ .mem, .unused }, |
| 88347 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 88348 | .each = .{ .once = &.{ |
| 88349 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 88350 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 88351 | } }, |
| 88352 | }, .{ |
| 88353 | .required_cc_abi = .sysv64, |
| 86602 | 88354 | .required_features = .{ .avx, null, null, null }, |
| 86603 | 88355 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 86604 | 88356 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -86607,8 +88359,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86607 | 88359 | }, |
| 86608 | 88360 | .call_frame = .{ .alignment = .@"16" }, |
| 86609 | 88361 | .extra_temps = .{ |
| 86610 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86611 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 88362 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88363 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86612 | 88364 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfxf2" } }, |
| 86613 | 88365 | .unused, |
| 86614 | 88366 | .unused, |
| ... | ... | @@ -86622,15 +88374,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86622 | 88374 | .dst_temps = .{ .mem, .unused }, |
| 86623 | 88375 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86624 | 88376 | .each = .{ .once = &.{ |
| 86625 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86626 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 88377 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 88378 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 86627 | 88379 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86628 | 88380 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 86629 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 86630 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 86631 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88381 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp0), ._, ._, ._ }, |
| 88382 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 88383 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86632 | 88384 | } }, |
| 86633 | 88385 | }, .{ |
| 88386 | .required_cc_abi = .win64, |
| 88387 | .required_features = .{ .avx, null, null, null }, |
| 88388 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 88389 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 88390 | .patterns = &.{ |
| 88391 | .{ .src = .{ .to_mem, .none, .none } }, |
| 88392 | }, |
| 88393 | .call_frame = .{ .alignment = .@"16" }, |
| 88394 | .extra_temps = .{ |
| 88395 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88396 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 88397 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 88398 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfxf2" } }, |
| 88399 | .unused, |
| 88400 | .unused, |
| 88401 | .unused, |
| 88402 | .unused, |
| 88403 | .unused, |
| 88404 | .unused, |
| 88405 | .unused, |
| 88406 | }, |
| 88407 | .dst_temps = .{ .mem, .unused }, |
| 88408 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 88409 | .each = .{ .once = &.{ |
| 88410 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 88411 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.dst0, .tmp0), ._, ._ }, |
| 88412 | .{ ._, .v_dqa, .mov, .tmp2x, .memi(.src0x, .tmp0), ._, ._ }, |
| 88413 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 88414 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 88415 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 88416 | } }, |
| 88417 | }, .{ |
| 88418 | .required_cc_abi = .sysv64, |
| 86634 | 88419 | .required_features = .{ .sse2, null, null, null }, |
| 86635 | 88420 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 86636 | 88421 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -86639,8 +88424,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86639 | 88424 | }, |
| 86640 | 88425 | .call_frame = .{ .alignment = .@"16" }, |
| 86641 | 88426 | .extra_temps = .{ |
| 86642 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86643 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 88427 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88428 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86644 | 88429 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfxf2" } }, |
| 86645 | 88430 | .unused, |
| 86646 | 88431 | .unused, |
| ... | ... | @@ -86654,15 +88439,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86654 | 88439 | .dst_temps = .{ .mem, .unused }, |
| 86655 | 88440 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86656 | 88441 | .each = .{ .once = &.{ |
| 86657 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86658 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 88442 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 88443 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 86659 | 88444 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86660 | 88445 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 86661 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 86662 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 86663 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88446 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp0), ._, ._, ._ }, |
| 88447 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 88448 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 88449 | } }, |
| 88450 | }, .{ |
| 88451 | .required_cc_abi = .win64, |
| 88452 | .required_features = .{ .sse2, null, null, null }, |
| 88453 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 88454 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 88455 | .patterns = &.{ |
| 88456 | .{ .src = .{ .to_mem, .none, .none } }, |
| 88457 | }, |
| 88458 | .call_frame = .{ .alignment = .@"16" }, |
| 88459 | .extra_temps = .{ |
| 88460 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88461 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 88462 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 88463 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfxf2" } }, |
| 88464 | .unused, |
| 88465 | .unused, |
| 88466 | .unused, |
| 88467 | .unused, |
| 88468 | .unused, |
| 88469 | .unused, |
| 88470 | .unused, |
| 88471 | }, |
| 88472 | .dst_temps = .{ .mem, .unused }, |
| 88473 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 88474 | .each = .{ .once = &.{ |
| 88475 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 88476 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.dst0, .tmp0), ._, ._ }, |
| 88477 | .{ ._, ._dqa, .mov, .tmp2x, .memi(.src0x, .tmp0), ._, ._ }, |
| 88478 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 88479 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 88480 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86664 | 88481 | } }, |
| 86665 | 88482 | }, .{ |
| 88483 | .required_cc_abi = .sysv64, |
| 86666 | 88484 | .required_features = .{ .sse, null, null, null }, |
| 86667 | 88485 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 86668 | 88486 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -86671,8 +88489,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86671 | 88489 | }, |
| 86672 | 88490 | .call_frame = .{ .alignment = .@"16" }, |
| 86673 | 88491 | .extra_temps = .{ |
| 86674 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86675 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 88492 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88493 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86676 | 88494 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfxf2" } }, |
| 86677 | 88495 | .unused, |
| 86678 | 88496 | .unused, |
| ... | ... | @@ -86686,13 +88504,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86686 | 88504 | .dst_temps = .{ .mem, .unused }, |
| 86687 | 88505 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86688 | 88506 | .each = .{ .once = &.{ |
| 86689 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 86690 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 88507 | .{ ._, ._, .mov, .tmp0d, .sa(.dst0, .add_unaligned_size), ._, ._ }, |
| 88508 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 86691 | 88509 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86692 | 88510 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 86693 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 86694 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 86695 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88511 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp0), ._, ._, ._ }, |
| 88512 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 88513 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 88514 | } }, |
| 88515 | }, .{ |
| 88516 | .required_cc_abi = .win64, |
| 88517 | .required_features = .{ .sse, null, null, null }, |
| 88518 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 88519 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 88520 | .patterns = &.{ |
| 88521 | .{ .src = .{ .to_mem, .none, .none } }, |
| 88522 | }, |
| 88523 | .call_frame = .{ .alignment = .@"16" }, |
| 88524 | .extra_temps = .{ |
| 88525 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88526 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 88527 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 88528 | .{ .type = .usize, .kind = .{ .extern_func = "__trunctfxf2" } }, |
| 88529 | .unused, |
| 88530 | .unused, |
| 88531 | .unused, |
| 88532 | .unused, |
| 88533 | .unused, |
| 88534 | .unused, |
| 88535 | .unused, |
| 88536 | }, |
| 88537 | .dst_temps = .{ .mem, .unused }, |
| 88538 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 88539 | .each = .{ .once = &.{ |
| 88540 | .{ ._, ._, .mov, .tmp0d, .sa(.dst0, .add_unaligned_size), ._, ._ }, |
| 88541 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.dst0, .tmp0), ._, ._ }, |
| 88542 | .{ ._, ._ps, .mova, .tmp2x, .memi(.src0x, .tmp0), ._, ._ }, |
| 88543 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 88544 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 88545 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86696 | 88546 | } }, |
| 86697 | 88547 | } }) catch |err| switch (err) { |
| 86698 | 88548 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| ... | ... | @@ -86705,7 +88555,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86705 | 88555 | }; |
| 86706 | 88556 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 86707 | 88557 | }, |
| 86708 | | .fpext => |air_tag| if (use_old) try cg.airFpext(inst) else { |
| 88558 | .fpext => |air_tag| { |
| 86709 | 88559 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 86710 | 88560 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 86711 | 88561 | var res: [1]Temp = undefined; |
| ... | ... | @@ -86749,7 +88599,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86749 | 88599 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 86750 | 88600 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 86751 | 88601 | .patterns = &.{ |
| 86752 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 88602 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 86753 | 88603 | }, |
| 86754 | 88604 | .call_frame = .{ .alignment = .@"16" }, |
| 86755 | 88605 | .extra_temps = .{ |
| ... | ... | @@ -86778,7 +88628,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86778 | 88628 | .{ .src = .{ .to_mem, .none, .none } }, |
| 86779 | 88629 | }, |
| 86780 | 88630 | .extra_temps = .{ |
| 86781 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 88631 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 86782 | 88632 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 86783 | 88633 | .unused, |
| 86784 | 88634 | .unused, |
| ... | ... | @@ -86793,11 +88643,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86793 | 88643 | .dst_temps = .{ .mem, .unused }, |
| 86794 | 88644 | .clobbers = .{ .eflags = true }, |
| 86795 | 88645 | .each = .{ .once = &.{ |
| 86796 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 86797 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 86798 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 86799 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 86800 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88646 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 88647 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 88648 | .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ }, |
| 88649 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 88650 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86801 | 88651 | } }, |
| 86802 | 88652 | }, .{ |
| 86803 | 88653 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -86808,8 +88658,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86808 | 88658 | }, |
| 86809 | 88659 | .call_frame = .{ .alignment = .@"16" }, |
| 86810 | 88660 | .extra_temps = .{ |
| 86811 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86812 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 88661 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88662 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86813 | 88663 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfsf2" } }, |
| 86814 | 88664 | .unused, |
| 86815 | 88665 | .unused, |
| ... | ... | @@ -86823,13 +88673,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86823 | 88673 | .dst_temps = .{ .mem, .unused }, |
| 86824 | 88674 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86825 | 88675 | .each = .{ .once = &.{ |
| 86826 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 88676 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 86827 | 88677 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 86828 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 88678 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 86829 | 88679 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86830 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 86831 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 86832 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88680 | .{ ._, .v_ss, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 88681 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 88682 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86833 | 88683 | } }, |
| 86834 | 88684 | }, .{ |
| 86835 | 88685 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -86840,8 +88690,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86840 | 88690 | }, |
| 86841 | 88691 | .call_frame = .{ .alignment = .@"16" }, |
| 86842 | 88692 | .extra_temps = .{ |
| 86843 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 86844 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 88693 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88694 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86845 | 88695 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfsf2" } }, |
| 86846 | 88696 | .unused, |
| 86847 | 88697 | .unused, |
| ... | ... | @@ -86855,13 +88705,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86855 | 88705 | .dst_temps = .{ .mem, .unused }, |
| 86856 | 88706 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86857 | 88707 | .each = .{ .once = &.{ |
| 86858 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 88708 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 86859 | 88709 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 86860 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 88710 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 86861 | 88711 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 86862 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 86863 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 86864 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88712 | .{ ._, ._ss, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 88713 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 88714 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86865 | 88715 | } }, |
| 86866 | 88716 | }, .{ |
| 86867 | 88717 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -86872,10 +88722,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86872 | 88722 | }, |
| 86873 | 88723 | .call_frame = .{ .alignment = .@"16" }, |
| 86874 | 88724 | .extra_temps = .{ |
| 86875 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 88725 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 86876 | 88726 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 86877 | 88727 | .{ .type = .f32, .kind = .mem }, |
| 86878 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 88728 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 86879 | 88729 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfsf2" } }, |
| 86880 | 88730 | .unused, |
| 86881 | 88731 | .unused, |
| ... | ... | @@ -86887,14 +88737,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86887 | 88737 | .dst_temps = .{ .mem, .unused }, |
| 86888 | 88738 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 86889 | 88739 | .each = .{ .once = &.{ |
| 86890 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 86891 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 88740 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 88741 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 86892 | 88742 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 86893 | 88743 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, |
| 86894 | 88744 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 86895 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 86896 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 86897 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88745 | .{ ._, ._ss, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 88746 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 88747 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 86898 | 88748 | } }, |
| 86899 | 88749 | }, .{ |
| 86900 | 88750 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -86969,7 +88819,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86969 | 88819 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 86970 | 88820 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 86971 | 88821 | .patterns = &.{ |
| 86972 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 88822 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 86973 | 88823 | }, |
| 86974 | 88824 | .call_frame = .{ .alignment = .@"16" }, |
| 86975 | 88825 | .extra_temps = .{ |
| ... | ... | @@ -86998,7 +88848,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 86998 | 88848 | .{ .src = .{ .to_mem, .none, .none } }, |
| 86999 | 88849 | }, |
| 87000 | 88850 | .extra_temps = .{ |
| 87001 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 88851 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87002 | 88852 | .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, |
| 87003 | 88853 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| 87004 | 88854 | .unused, |
| ... | ... | @@ -87013,15 +88863,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87013 | 88863 | .dst_temps = .{ .mem, .unused }, |
| 87014 | 88864 | .clobbers = .{ .eflags = true }, |
| 87015 | 88865 | .each = .{ .once = &.{ |
| 87016 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87017 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 88866 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 88867 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 87018 | 88868 | .{ ._, .v_pd, .cvtps2, .tmp2y, .tmp1x, ._, ._ }, |
| 87019 | 88869 | .{ ._, .v_f128, .extract, .tmp1x, .tmp1y, .ui(1), ._ }, |
| 87020 | | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp2y, ._, ._ }, |
| 88870 | .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp2y, ._, ._ }, |
| 87021 | 88871 | .{ ._, .v_pd, .cvtps2, .tmp2y, .tmp1x, ._, ._ }, |
| 87022 | | .{ ._, .v_pd, .mova, .memsiad(.dst0y, .@"4", .tmp0, .add_unaligned_size, 32), .tmp2y, ._, ._ }, |
| 87023 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 87024 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88872 | .{ ._, .v_pd, .mova, .memsid(.dst0y, .@"4", .tmp0, 32), .tmp2y, ._, ._ }, |
| 88873 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 88874 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87025 | 88875 | } }, |
| 87026 | 88876 | }, .{ |
| 87027 | 88877 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -87032,8 +88882,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87032 | 88882 | }, |
| 87033 | 88883 | .call_frame = .{ .alignment = .@"16" }, |
| 87034 | 88884 | .extra_temps = .{ |
| 87035 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87036 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 88885 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88886 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87037 | 88887 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfdf2" } }, |
| 87038 | 88888 | .unused, |
| 87039 | 88889 | .unused, |
| ... | ... | @@ -87047,13 +88897,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87047 | 88897 | .dst_temps = .{ .mem, .unused }, |
| 87048 | 88898 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87049 | 88899 | .each = .{ .once = &.{ |
| 87050 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 88900 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 87051 | 88901 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 87052 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 88902 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 87053 | 88903 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87054 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87055 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 87056 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88904 | .{ ._, .v_sd, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 88905 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 88906 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87057 | 88907 | } }, |
| 87058 | 88908 | }, .{ |
| 87059 | 88909 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -87064,8 +88914,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87064 | 88914 | }, |
| 87065 | 88915 | .call_frame = .{ .alignment = .@"16" }, |
| 87066 | 88916 | .extra_temps = .{ |
| 87067 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87068 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 88917 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 88918 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87069 | 88919 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfdf2" } }, |
| 87070 | 88920 | .unused, |
| 87071 | 88921 | .unused, |
| ... | ... | @@ -87079,13 +88929,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87079 | 88929 | .dst_temps = .{ .mem, .unused }, |
| 87080 | 88930 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87081 | 88931 | .each = .{ .once = &.{ |
| 87082 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 88932 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 87083 | 88933 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 87084 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 88934 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 87085 | 88935 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87086 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87087 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 87088 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88936 | .{ ._, ._sd, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 88937 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 88938 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87089 | 88939 | } }, |
| 87090 | 88940 | }, .{ |
| 87091 | 88941 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -87096,10 +88946,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87096 | 88946 | }, |
| 87097 | 88947 | .call_frame = .{ .alignment = .@"16" }, |
| 87098 | 88948 | .extra_temps = .{ |
| 87099 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 88949 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87100 | 88950 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 87101 | 88951 | .{ .type = .f32, .kind = .mem }, |
| 87102 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 88952 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87103 | 88953 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfdf2" } }, |
| 87104 | 88954 | .unused, |
| 87105 | 88955 | .unused, |
| ... | ... | @@ -87111,14 +88961,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87111 | 88961 | .dst_temps = .{ .mem, .unused }, |
| 87112 | 88962 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87113 | 88963 | .each = .{ .once = &.{ |
| 87114 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87115 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 88964 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 88965 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 87116 | 88966 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 87117 | 88967 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, |
| 87118 | 88968 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 87119 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 87120 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 87121 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 88969 | .{ ._, ._ps, .movl, .memsi(.dst0q, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 88970 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 88971 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87122 | 88972 | } }, |
| 87123 | 88973 | }, .{ |
| 87124 | 88974 | .required_features = .{ .f16c, .x87, null, null }, |
| ... | ... | @@ -87148,11 +88998,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87148 | 88998 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 87149 | 88999 | } }, |
| 87150 | 89000 | }, .{ |
| 89001 | .required_cc_abi = .sysv64, |
| 87151 | 89002 | .required_features = .{ .sse, .x87, null, null }, |
| 87152 | 89003 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 87153 | 89004 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 87154 | 89005 | .patterns = &.{ |
| 87155 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 89006 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 87156 | 89007 | }, |
| 87157 | 89008 | .call_frame = .{ .alignment = .@"16" }, |
| 87158 | 89009 | .extra_temps = .{ |
| ... | ... | @@ -87174,6 +89025,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87174 | 89025 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 87175 | 89026 | } }, |
| 87176 | 89027 | }, .{ |
| 89028 | .required_cc_abi = .win64, |
| 89029 | .required_features = .{ .sse, null, null, null }, |
| 89030 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 89031 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 89032 | .patterns = &.{ |
| 89033 | .{ .src = .{ .{ .to_reg = .xmm1 }, .none, .none } }, |
| 89034 | }, |
| 89035 | .call_frame = .{ .alignment = .@"16" }, |
| 89036 | .extra_temps = .{ |
| 89037 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 89038 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfxf2" } }, |
| 89039 | .unused, |
| 89040 | .unused, |
| 89041 | .unused, |
| 89042 | .unused, |
| 89043 | .unused, |
| 89044 | .unused, |
| 89045 | .unused, |
| 89046 | .unused, |
| 89047 | .unused, |
| 89048 | }, |
| 89049 | .dst_temps = .{ .mem, .unused }, |
| 89050 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 89051 | .each = .{ .once = &.{ |
| 89052 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 89053 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 89054 | } }, |
| 89055 | }, .{ |
| 89056 | .required_cc_abi = .sysv64, |
| 87177 | 89057 | .required_features = .{ .avx, null, null, null }, |
| 87178 | 89058 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 87179 | 89059 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -87182,8 +89062,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87182 | 89062 | }, |
| 87183 | 89063 | .call_frame = .{ .alignment = .@"16" }, |
| 87184 | 89064 | .extra_temps = .{ |
| 87185 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87186 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 89065 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89066 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87187 | 89067 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfxf2" } }, |
| 87188 | 89068 | .unused, |
| 87189 | 89069 | .unused, |
| ... | ... | @@ -87197,16 +89077,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87197 | 89077 | .dst_temps = .{ .mem, .unused }, |
| 87198 | 89078 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87199 | 89079 | .each = .{ .once = &.{ |
| 87200 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 89080 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 87201 | 89081 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 87202 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 89082 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 87203 | 89083 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87204 | 89084 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 87205 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 87206 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 87207 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89085 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"8", .tmp0), ._, ._, ._ }, |
| 89086 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 89087 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87208 | 89088 | } }, |
| 87209 | 89089 | }, .{ |
| 89090 | .required_cc_abi = .win64, |
| 89091 | .required_features = .{ .avx, null, null, null }, |
| 89092 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 89093 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 89094 | .patterns = &.{ |
| 89095 | .{ .src = .{ .to_mem, .none, .none } }, |
| 89096 | }, |
| 89097 | .call_frame = .{ .alignment = .@"16" }, |
| 89098 | .extra_temps = .{ |
| 89099 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89100 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 89101 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 89102 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfxf2" } }, |
| 89103 | .unused, |
| 89104 | .unused, |
| 89105 | .unused, |
| 89106 | .unused, |
| 89107 | .unused, |
| 89108 | .unused, |
| 89109 | .unused, |
| 89110 | }, |
| 89111 | .dst_temps = .{ .mem, .unused }, |
| 89112 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 89113 | .each = .{ .once = &.{ |
| 89114 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 89115 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.dst0, .@"8", .tmp0), ._, ._ }, |
| 89116 | .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, |
| 89117 | .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memi(.src0w, .tmp0), .ui(0) }, |
| 89118 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 89119 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 89120 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 89121 | } }, |
| 89122 | }, .{ |
| 89123 | .required_cc_abi = .sysv64, |
| 87210 | 89124 | .required_features = .{ .sse2, null, null, null }, |
| 87211 | 89125 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 87212 | 89126 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -87215,8 +89129,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87215 | 89129 | }, |
| 87216 | 89130 | .call_frame = .{ .alignment = .@"16" }, |
| 87217 | 89131 | .extra_temps = .{ |
| 87218 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87219 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 89132 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89133 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87220 | 89134 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfxf2" } }, |
| 87221 | 89135 | .unused, |
| 87222 | 89136 | .unused, |
| ... | ... | @@ -87230,16 +89144,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87230 | 89144 | .dst_temps = .{ .mem, .unused }, |
| 87231 | 89145 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87232 | 89146 | .each = .{ .once = &.{ |
| 87233 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 89147 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 87234 | 89148 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 87235 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 89149 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 87236 | 89150 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87237 | 89151 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 87238 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 87239 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 87240 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89152 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"8", .tmp0), ._, ._, ._ }, |
| 89153 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 89154 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87241 | 89155 | } }, |
| 87242 | 89156 | }, .{ |
| 89157 | .required_cc_abi = .win64, |
| 89158 | .required_features = .{ .sse2, null, null, null }, |
| 89159 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 89160 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 89161 | .patterns = &.{ |
| 89162 | .{ .src = .{ .to_mem, .none, .none } }, |
| 89163 | }, |
| 89164 | .call_frame = .{ .alignment = .@"16" }, |
| 89165 | .extra_temps = .{ |
| 89166 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89167 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 89168 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 89169 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfxf2" } }, |
| 89170 | .unused, |
| 89171 | .unused, |
| 89172 | .unused, |
| 89173 | .unused, |
| 89174 | .unused, |
| 89175 | .unused, |
| 89176 | .unused, |
| 89177 | }, |
| 89178 | .dst_temps = .{ .mem, .unused }, |
| 89179 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 89180 | .each = .{ .once = &.{ |
| 89181 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 89182 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.dst0, .@"8", .tmp0), ._, ._ }, |
| 89183 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 89184 | .{ ._, .p_w, .insr, .tmp2x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 89185 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 89186 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 89187 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 89188 | } }, |
| 89189 | }, .{ |
| 89190 | .required_cc_abi = .sysv64, |
| 87243 | 89191 | .required_features = .{ .sse, null, null, null }, |
| 87244 | 89192 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 87245 | 89193 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -87248,10 +89196,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87248 | 89196 | }, |
| 87249 | 89197 | .call_frame = .{ .alignment = .@"16" }, |
| 87250 | 89198 | .extra_temps = .{ |
| 87251 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 89199 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87252 | 89200 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 87253 | 89201 | .{ .type = .f32, .kind = .mem }, |
| 87254 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 89202 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87255 | 89203 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfxf2" } }, |
| 87256 | 89204 | .unused, |
| 87257 | 89205 | .unused, |
| ... | ... | @@ -87263,22 +89211,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87263 | 89211 | .dst_temps = .{ .mem, .unused }, |
| 87264 | 89212 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87265 | 89213 | .each = .{ .once = &.{ |
| 87266 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87267 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89214 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 89215 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 87268 | 89216 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 87269 | 89217 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, |
| 87270 | 89218 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 87271 | 89219 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 87272 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 87273 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 87274 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89220 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"8", .tmp0), ._, ._, ._ }, |
| 89221 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 89222 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 89223 | } }, |
| 89224 | }, .{ |
| 89225 | .required_cc_abi = .win64, |
| 89226 | .required_features = .{ .sse, null, null, null }, |
| 89227 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 89228 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 89229 | .patterns = &.{ |
| 89230 | .{ .src = .{ .to_mem, .none, .none } }, |
| 89231 | }, |
| 89232 | .call_frame = .{ .alignment = .@"16" }, |
| 89233 | .extra_temps = .{ |
| 89234 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89235 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 89236 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 89237 | .{ .type = .f32, .kind = .mem }, |
| 89238 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 89239 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhfxf2" } }, |
| 89240 | .unused, |
| 89241 | .unused, |
| 89242 | .unused, |
| 89243 | .unused, |
| 89244 | .unused, |
| 89245 | }, |
| 89246 | .dst_temps = .{ .mem, .unused }, |
| 89247 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 89248 | .each = .{ .once = &.{ |
| 89249 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 89250 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.dst0, .@"8", .tmp0), ._, ._ }, |
| 89251 | .{ ._, ._, .movzx, .tmp2d, .memi(.src0w, .tmp0), ._, ._ }, |
| 89252 | .{ ._, ._, .mov, .mem(.tmp3d), .tmp2d, ._, ._ }, |
| 89253 | .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp3d), ._, ._ }, |
| 89254 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 89255 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 89256 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87275 | 89257 | } }, |
| 87276 | 89258 | }, .{ |
| 87277 | 89259 | .required_features = .{ .sse, null, null, null }, |
| 87278 | 89260 | .src_constraints = .{ .{ .scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 87279 | 89261 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 87280 | 89262 | .patterns = &.{ |
| 87281 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 89263 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 87282 | 89264 | }, |
| 87283 | 89265 | .call_frame = .{ .alignment = .@"16" }, |
| 87284 | 89266 | .extra_temps = .{ |
| ... | ... | @@ -87308,8 +89290,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87308 | 89290 | }, |
| 87309 | 89291 | .call_frame = .{ .alignment = .@"16" }, |
| 87310 | 89292 | .extra_temps = .{ |
| 87311 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87312 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 89293 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89294 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87313 | 89295 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhftf2" } }, |
| 87314 | 89296 | .unused, |
| 87315 | 89297 | .unused, |
| ... | ... | @@ -87323,13 +89305,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87323 | 89305 | .dst_temps = .{ .mem, .unused }, |
| 87324 | 89306 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87325 | 89307 | .each = .{ .once = &.{ |
| 87326 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 89308 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 87327 | 89309 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 87328 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 89310 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 87329 | 89311 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87330 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87331 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 87332 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89312 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"8", .tmp0), .tmp1x, ._, ._ }, |
| 89313 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 89314 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87333 | 89315 | } }, |
| 87334 | 89316 | }, .{ |
| 87335 | 89317 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -87340,8 +89322,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87340 | 89322 | }, |
| 87341 | 89323 | .call_frame = .{ .alignment = .@"16" }, |
| 87342 | 89324 | .extra_temps = .{ |
| 87343 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87344 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 89325 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89326 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87345 | 89327 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhftf2" } }, |
| 87346 | 89328 | .unused, |
| 87347 | 89329 | .unused, |
| ... | ... | @@ -87355,13 +89337,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87355 | 89337 | .dst_temps = .{ .mem, .unused }, |
| 87356 | 89338 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87357 | 89339 | .each = .{ .once = &.{ |
| 87358 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 89340 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 87359 | 89341 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 87360 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 89342 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 87361 | 89343 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87362 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87363 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 87364 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89344 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"8", .tmp0), .tmp1x, ._, ._ }, |
| 89345 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 89346 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87365 | 89347 | } }, |
| 87366 | 89348 | }, .{ |
| 87367 | 89349 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -87372,10 +89354,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87372 | 89354 | }, |
| 87373 | 89355 | .call_frame = .{ .alignment = .@"16" }, |
| 87374 | 89356 | .extra_temps = .{ |
| 87375 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 89357 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87376 | 89358 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 87377 | 89359 | .{ .type = .f32, .kind = .mem }, |
| 87378 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 89360 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87379 | 89361 | .{ .type = .usize, .kind = .{ .extern_func = "__extendhftf2" } }, |
| 87380 | 89362 | .unused, |
| 87381 | 89363 | .unused, |
| ... | ... | @@ -87387,14 +89369,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87387 | 89369 | .dst_temps = .{ .mem, .unused }, |
| 87388 | 89370 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87389 | 89371 | .each = .{ .once = &.{ |
| 87390 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87391 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89372 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 89373 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 87392 | 89374 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 87393 | 89375 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, |
| 87394 | 89376 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 87395 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 87396 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 87397 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89377 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 89378 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 89379 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87398 | 89380 | } }, |
| 87399 | 89381 | }, .{ |
| 87400 | 89382 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -87501,7 +89483,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87501 | 89483 | .{ .src = .{ .to_mem, .none, .none } }, |
| 87502 | 89484 | }, |
| 87503 | 89485 | .extra_temps = .{ |
| 87504 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 89486 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87505 | 89487 | .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, |
| 87506 | 89488 | .unused, |
| 87507 | 89489 | .unused, |
| ... | ... | @@ -87516,11 +89498,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87516 | 89498 | .dst_temps = .{ .mem, .unused }, |
| 87517 | 89499 | .clobbers = .{ .eflags = true }, |
| 87518 | 89500 | .each = .{ .once = &.{ |
| 87519 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87520 | | .{ .@"0:", .v_pd, .cvtps2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 87521 | | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 87522 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 87523 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89501 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 89502 | .{ .@"0:", .v_pd, .cvtps2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 89503 | .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ }, |
| 89504 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 89505 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87524 | 89506 | } }, |
| 87525 | 89507 | }, .{ |
| 87526 | 89508 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -87530,7 +89512,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87530 | 89512 | .{ .src = .{ .to_mem, .none, .none } }, |
| 87531 | 89513 | }, |
| 87532 | 89514 | .extra_temps = .{ |
| 87533 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 89515 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87534 | 89516 | .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, |
| 87535 | 89517 | .unused, |
| 87536 | 89518 | .unused, |
| ... | ... | @@ -87545,11 +89527,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87545 | 89527 | .dst_temps = .{ .mem, .unused }, |
| 87546 | 89528 | .clobbers = .{ .eflags = true }, |
| 87547 | 89529 | .each = .{ .once = &.{ |
| 87548 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87549 | | .{ .@"0:", ._pd, .cvtps2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 87550 | | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87551 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 87552 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89530 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 89531 | .{ .@"0:", ._pd, .cvtps2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 89532 | .{ ._, ._pd, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 89533 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 89534 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87553 | 89535 | } }, |
| 87554 | 89536 | }, .{ |
| 87555 | 89537 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -87559,7 +89541,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87559 | 89541 | .{ .src = .{ .to_mem, .none, .none } }, |
| 87560 | 89542 | }, |
| 87561 | 89543 | .extra_temps = .{ |
| 87562 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 89544 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87563 | 89545 | .{ .type = .f32, .kind = .{ .reg = .st7 } }, |
| 87564 | 89546 | .unused, |
| 87565 | 89547 | .unused, |
| ... | ... | @@ -87574,11 +89556,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87574 | 89556 | .dst_temps = .{ .mem, .unused }, |
| 87575 | 89557 | .clobbers = .{ .eflags = true }, |
| 87576 | 89558 | .each = .{ .once = &.{ |
| 87577 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87578 | | .{ .@"0:", .f_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 87579 | | .{ ._, .f_p, .st, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 87580 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 87581 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89559 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 89560 | .{ .@"0:", .f_, .ld, .memi(.src0d, .tmp0), ._, ._, ._ }, |
| 89561 | .{ ._, .f_p, .st, .memsi(.dst0q, .@"2", .tmp0), ._, ._, ._ }, |
| 89562 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 89563 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87582 | 89564 | } }, |
| 87583 | 89565 | }, .{ |
| 87584 | 89566 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -87613,7 +89595,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87613 | 89595 | .{ .src = .{ .to_mem, .none, .none } }, |
| 87614 | 89596 | }, |
| 87615 | 89597 | .extra_temps = .{ |
| 87616 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 89598 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87617 | 89599 | .{ .type = .f32, .kind = .{ .reg = .st7 } }, |
| 87618 | 89600 | .unused, |
| 87619 | 89601 | .unused, |
| ... | ... | @@ -87628,18 +89610,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87628 | 89610 | .dst_temps = .{ .mem, .unused }, |
| 87629 | 89611 | .clobbers = .{ .eflags = true }, |
| 87630 | 89612 | .each = .{ .once = &.{ |
| 87631 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87632 | | .{ .@"0:", .f_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 87633 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 87634 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 87635 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89613 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 89614 | .{ .@"0:", .f_, .ld, .memi(.src0d, .tmp0), ._, ._, ._ }, |
| 89615 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"4", .tmp0), ._, ._, ._ }, |
| 89616 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 89617 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87636 | 89618 | } }, |
| 87637 | 89619 | }, .{ |
| 87638 | 89620 | .required_features = .{ .sse, null, null, null }, |
| 87639 | 89621 | .src_constraints = .{ .{ .scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 87640 | 89622 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 87641 | 89623 | .patterns = &.{ |
| 87642 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 89624 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 87643 | 89625 | }, |
| 87644 | 89626 | .call_frame = .{ .alignment = .@"16" }, |
| 87645 | 89627 | .extra_temps = .{ |
| ... | ... | @@ -87669,8 +89651,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87669 | 89651 | }, |
| 87670 | 89652 | .call_frame = .{ .alignment = .@"16" }, |
| 87671 | 89653 | .extra_temps = .{ |
| 87672 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87673 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 89654 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89655 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87674 | 89656 | .{ .type = .usize, .kind = .{ .extern_func = "__extendsftf2" } }, |
| 87675 | 89657 | .unused, |
| 87676 | 89658 | .unused, |
| ... | ... | @@ -87684,12 +89666,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87684 | 89666 | .dst_temps = .{ .mem, .unused }, |
| 87685 | 89667 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87686 | 89668 | .each = .{ .once = &.{ |
| 87687 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87688 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89669 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 89670 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 87689 | 89671 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87690 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87691 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 87692 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89672 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 89673 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 89674 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87693 | 89675 | } }, |
| 87694 | 89676 | }, .{ |
| 87695 | 89677 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -87700,8 +89682,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87700 | 89682 | }, |
| 87701 | 89683 | .call_frame = .{ .alignment = .@"16" }, |
| 87702 | 89684 | .extra_temps = .{ |
| 87703 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87704 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 89685 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89686 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87705 | 89687 | .{ .type = .usize, .kind = .{ .extern_func = "__extendsftf2" } }, |
| 87706 | 89688 | .unused, |
| 87707 | 89689 | .unused, |
| ... | ... | @@ -87715,12 +89697,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87715 | 89697 | .dst_temps = .{ .mem, .unused }, |
| 87716 | 89698 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87717 | 89699 | .each = .{ .once = &.{ |
| 87718 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87719 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89700 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 89701 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 87720 | 89702 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87721 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87722 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 87723 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89703 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 89704 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 89705 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87724 | 89706 | } }, |
| 87725 | 89707 | }, .{ |
| 87726 | 89708 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -87731,8 +89713,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87731 | 89713 | }, |
| 87732 | 89714 | .call_frame = .{ .alignment = .@"16" }, |
| 87733 | 89715 | .extra_temps = .{ |
| 87734 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87735 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 89716 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89717 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87736 | 89718 | .{ .type = .usize, .kind = .{ .extern_func = "__extendsftf2" } }, |
| 87737 | 89719 | .unused, |
| 87738 | 89720 | .unused, |
| ... | ... | @@ -87746,12 +89728,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87746 | 89728 | .dst_temps = .{ .mem, .unused }, |
| 87747 | 89729 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87748 | 89730 | .each = .{ .once = &.{ |
| 87749 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87750 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89731 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 89732 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 87751 | 89733 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87752 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87753 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 87754 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89734 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 89735 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 89736 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87755 | 89737 | } }, |
| 87756 | 89738 | }, .{ |
| 87757 | 89739 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -87786,7 +89768,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87786 | 89768 | .{ .src = .{ .to_mem, .none, .none } }, |
| 87787 | 89769 | }, |
| 87788 | 89770 | .extra_temps = .{ |
| 87789 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 89771 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 87790 | 89772 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 87791 | 89773 | .unused, |
| 87792 | 89774 | .unused, |
| ... | ... | @@ -87801,18 +89783,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87801 | 89783 | .dst_temps = .{ .mem, .unused }, |
| 87802 | 89784 | .clobbers = .{ .eflags = true }, |
| 87803 | 89785 | .each = .{ .once = &.{ |
| 87804 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87805 | | .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 87806 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 87807 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 87808 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89786 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 89787 | .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ }, |
| 89788 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"2", .tmp0), ._, ._, ._ }, |
| 89789 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 89790 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87809 | 89791 | } }, |
| 87810 | 89792 | }, .{ |
| 87811 | 89793 | .required_features = .{ .sse, null, null, null }, |
| 87812 | 89794 | .src_constraints = .{ .{ .scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 87813 | 89795 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 87814 | 89796 | .patterns = &.{ |
| 87815 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 89797 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 87816 | 89798 | }, |
| 87817 | 89799 | .call_frame = .{ .alignment = .@"16" }, |
| 87818 | 89800 | .extra_temps = .{ |
| ... | ... | @@ -87842,8 +89824,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87842 | 89824 | }, |
| 87843 | 89825 | .call_frame = .{ .alignment = .@"16" }, |
| 87844 | 89826 | .extra_temps = .{ |
| 87845 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87846 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 89827 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89828 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87847 | 89829 | .{ .type = .usize, .kind = .{ .extern_func = "__extenddftf2" } }, |
| 87848 | 89830 | .unused, |
| 87849 | 89831 | .unused, |
| ... | ... | @@ -87857,12 +89839,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87857 | 89839 | .dst_temps = .{ .mem, .unused }, |
| 87858 | 89840 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87859 | 89841 | .each = .{ .once = &.{ |
| 87860 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87861 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89842 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 89843 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 87862 | 89844 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87863 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87864 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 87865 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89845 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 89846 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 89847 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87866 | 89848 | } }, |
| 87867 | 89849 | }, .{ |
| 87868 | 89850 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -87873,8 +89855,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87873 | 89855 | }, |
| 87874 | 89856 | .call_frame = .{ .alignment = .@"16" }, |
| 87875 | 89857 | .extra_temps = .{ |
| 87876 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87877 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 89858 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89859 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87878 | 89860 | .{ .type = .usize, .kind = .{ .extern_func = "__extenddftf2" } }, |
| 87879 | 89861 | .unused, |
| 87880 | 89862 | .unused, |
| ... | ... | @@ -87888,12 +89870,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87888 | 89870 | .dst_temps = .{ .mem, .unused }, |
| 87889 | 89871 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87890 | 89872 | .each = .{ .once = &.{ |
| 87891 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 87892 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89873 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 89874 | .{ .@"0:", ._sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 87893 | 89875 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87894 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87895 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 87896 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89876 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 89877 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 89878 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87897 | 89879 | } }, |
| 87898 | 89880 | }, .{ |
| 87899 | 89881 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -87904,8 +89886,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87904 | 89886 | }, |
| 87905 | 89887 | .call_frame = .{ .alignment = .@"16" }, |
| 87906 | 89888 | .extra_temps = .{ |
| 87907 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 87908 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 89889 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 89890 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 87909 | 89891 | .{ .type = .usize, .kind = .{ .extern_func = "__extenddftf2" } }, |
| 87910 | 89892 | .unused, |
| 87911 | 89893 | .unused, |
| ... | ... | @@ -87919,15 +89901,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87919 | 89901 | .dst_temps = .{ .mem, .unused }, |
| 87920 | 89902 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87921 | 89903 | .each = .{ .once = &.{ |
| 87922 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 89904 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 87923 | 89905 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 87924 | | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 89906 | .{ ._, ._ps, .movl, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 87925 | 89907 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 87926 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 87927 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 87928 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 89908 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 89909 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 89910 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 87929 | 89911 | } }, |
| 87930 | 89912 | }, .{ |
| 89913 | .required_cc_abi = .sysv64, |
| 87931 | 89914 | .required_features = .{ .avx, null, null, null }, |
| 87932 | 89915 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 87933 | 89916 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -87948,7 +89931,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87948 | 89931 | .unused, |
| 87949 | 89932 | .unused, |
| 87950 | 89933 | }, |
| 87951 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 89934 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 87952 | 89935 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87953 | 89936 | .each = .{ .once = &.{ |
| 87954 | 89937 | .{ ._, .v_dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, |
| ... | ... | @@ -87956,6 +89939,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87956 | 89939 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 87957 | 89940 | } }, |
| 87958 | 89941 | }, .{ |
| 89942 | .required_cc_abi = .sysv64, |
| 87959 | 89943 | .required_features = .{ .sse2, null, null, null }, |
| 87960 | 89944 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 87961 | 89945 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -87976,7 +89960,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87976 | 89960 | .unused, |
| 87977 | 89961 | .unused, |
| 87978 | 89962 | }, |
| 87979 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 89963 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 87980 | 89964 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 87981 | 89965 | .each = .{ .once = &.{ |
| 87982 | 89966 | .{ ._, ._dqa, .mov, .dst0x, .mem(.src0x), ._, ._ }, |
| ... | ... | @@ -87984,6 +89968,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 87984 | 89968 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 87985 | 89969 | } }, |
| 87986 | 89970 | }, .{ |
| 89971 | .required_cc_abi = .sysv64, |
| 87987 | 89972 | .required_features = .{ .sse, null, null, null }, |
| 87988 | 89973 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 87989 | 89974 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -88004,7 +89989,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 88004 | 89989 | .unused, |
| 88005 | 89990 | .unused, |
| 88006 | 89991 | }, |
| 88007 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 89992 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 88008 | 89993 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 88009 | 89994 | .each = .{ .once = &.{ |
| 88010 | 89995 | .{ ._, ._ps, .mova, .dst0x, .mem(.src0x), ._, ._ }, |
| ... | ... | @@ -88012,6 +89997,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 88012 | 89997 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 88013 | 89998 | } }, |
| 88014 | 89999 | }, .{ |
| 90000 | .required_cc_abi = .win64, |
| 90001 | .required_features = .{ .sse, null, null, null }, |
| 90002 | .src_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 90003 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 90004 | .patterns = &.{ |
| 90005 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90006 | }, |
| 90007 | .call_frame = .{ .alignment = .@"16" }, |
| 90008 | .extra_temps = .{ |
| 90009 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 90010 | .{ .type = .usize, .kind = .{ .extern_func = "__extendxftf2" } }, |
| 90011 | .unused, |
| 90012 | .unused, |
| 90013 | .unused, |
| 90014 | .unused, |
| 90015 | .unused, |
| 90016 | .unused, |
| 90017 | .unused, |
| 90018 | .unused, |
| 90019 | .unused, |
| 90020 | }, |
| 90021 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 90022 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 90023 | .each = .{ .once = &.{ |
| 90024 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 90025 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 90026 | } }, |
| 90027 | }, .{ |
| 90028 | .required_cc_abi = .sysv64, |
| 88015 | 90029 | .required_features = .{ .avx, null, null, null }, |
| 88016 | 90030 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 88017 | 90031 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -88020,8 +90034,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 88020 | 90034 | }, |
| 88021 | 90035 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 88022 | 90036 | .extra_temps = .{ |
| 88023 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 88024 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 90037 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 90038 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 88025 | 90039 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 88026 | 90040 | .{ .type = .usize, .kind = .{ .extern_func = "__extendxftf2" } }, |
| 88027 | 90041 | .unused, |
| ... | ... | @@ -88035,15 +90049,80 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 88035 | 90049 | .dst_temps = .{ .mem, .unused }, |
| 88036 | 90050 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 88037 | 90051 | .each = .{ .once = &.{ |
| 88038 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 88039 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90052 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 90053 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 88040 | 90054 | .{ ._, .v_dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 88041 | 90055 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 88042 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 88043 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 88044 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90056 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 90057 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 90058 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 90059 | } }, |
| 90060 | }, .{ |
| 90061 | .required_cc_abi = .win64, |
| 90062 | .required_features = .{ .avx, null, null, null }, |
| 90063 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 90064 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 90065 | .patterns = &.{ |
| 90066 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90067 | }, |
| 90068 | .call_frame = .{ .alignment = .@"16" }, |
| 90069 | .extra_temps = .{ |
| 90070 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 90071 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 90072 | .{ .type = .usize, .kind = .{ .extern_func = "__extendxftf2" } }, |
| 90073 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 90074 | .unused, |
| 90075 | .unused, |
| 90076 | .unused, |
| 90077 | .unused, |
| 90078 | .unused, |
| 90079 | .unused, |
| 90080 | .unused, |
| 90081 | }, |
| 90082 | .dst_temps = .{ .mem, .unused }, |
| 90083 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 90084 | .each = .{ .once = &.{ |
| 90085 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 90086 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.src0, .tmp0), ._, ._ }, |
| 90087 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 90088 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 90089 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 90090 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 90091 | } }, |
| 90092 | }, .{ |
| 90093 | .required_cc_abi = .win64, |
| 90094 | .required_features = .{ .sse2, null, null, null }, |
| 90095 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 90096 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 90097 | .patterns = &.{ |
| 90098 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90099 | }, |
| 90100 | .call_frame = .{ .alignment = .@"16" }, |
| 90101 | .extra_temps = .{ |
| 90102 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 90103 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 90104 | .{ .type = .usize, .kind = .{ .extern_func = "__extendxftf2" } }, |
| 90105 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 90106 | .unused, |
| 90107 | .unused, |
| 90108 | .unused, |
| 90109 | .unused, |
| 90110 | .unused, |
| 90111 | .unused, |
| 90112 | .unused, |
| 90113 | }, |
| 90114 | .dst_temps = .{ .mem, .unused }, |
| 90115 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 90116 | .each = .{ .once = &.{ |
| 90117 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 90118 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.src0, .tmp0), ._, ._ }, |
| 90119 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 90120 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 90121 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 90122 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 88045 | 90123 | } }, |
| 88046 | 90124 | }, .{ |
| 90125 | .required_cc_abi = .sysv64, |
| 88047 | 90126 | .required_features = .{ .sse2, null, null, null }, |
| 88048 | 90127 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 88049 | 90128 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -88052,8 +90131,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 88052 | 90131 | }, |
| 88053 | 90132 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 88054 | 90133 | .extra_temps = .{ |
| 88055 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 88056 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 90134 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 90135 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 88057 | 90136 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 88058 | 90137 | .{ .type = .usize, .kind = .{ .extern_func = "__extendxftf2" } }, |
| 88059 | 90138 | .unused, |
| ... | ... | @@ -88067,15 +90146,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 88067 | 90146 | .dst_temps = .{ .mem, .unused }, |
| 88068 | 90147 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 88069 | 90148 | .each = .{ .once = &.{ |
| 88070 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 88071 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90149 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 90150 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 88072 | 90151 | .{ ._, ._dqa, .mov, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 88073 | 90152 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 88074 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 88075 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 88076 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90153 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 90154 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 90155 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 88077 | 90156 | } }, |
| 88078 | 90157 | }, .{ |
| 90158 | .required_cc_abi = .sysv64, |
| 88079 | 90159 | .required_features = .{ .sse, null, null, null }, |
| 88080 | 90160 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 88081 | 90161 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -88084,8 +90164,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 88084 | 90164 | }, |
| 88085 | 90165 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 88086 | 90166 | .extra_temps = .{ |
| 88087 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 88088 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 90167 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 90168 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 88089 | 90169 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 88090 | 90170 | .{ .type = .usize, .kind = .{ .extern_func = "__extendxftf2" } }, |
| 88091 | 90171 | .unused, |
| ... | ... | @@ -88099,13 +90179,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 88099 | 90179 | .dst_temps = .{ .mem, .unused }, |
| 88100 | 90180 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 88101 | 90181 | .each = .{ .once = &.{ |
| 88102 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 88103 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 90182 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 90183 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 88104 | 90184 | .{ ._, ._ps, .mova, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 88105 | 90185 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 88106 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 88107 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 88108 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 90186 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 90187 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 90188 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 90189 | } }, |
| 90190 | }, .{ |
| 90191 | .required_cc_abi = .win64, |
| 90192 | .required_features = .{ .sse, null, null, null }, |
| 90193 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 90194 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 90195 | .patterns = &.{ |
| 90196 | .{ .src = .{ .to_mem, .none, .none } }, |
| 90197 | }, |
| 90198 | .call_frame = .{ .alignment = .@"16" }, |
| 90199 | .extra_temps = .{ |
| 90200 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 90201 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 90202 | .{ .type = .usize, .kind = .{ .extern_func = "__extendxftf2" } }, |
| 90203 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 90204 | .unused, |
| 90205 | .unused, |
| 90206 | .unused, |
| 90207 | .unused, |
| 90208 | .unused, |
| 90209 | .unused, |
| 90210 | .unused, |
| 90211 | }, |
| 90212 | .dst_temps = .{ .mem, .unused }, |
| 90213 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 90214 | .each = .{ .once = &.{ |
| 90215 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 90216 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.src0, .tmp0), ._, ._ }, |
| 90217 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 90218 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 90219 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 90220 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 88109 | 90221 | } }, |
| 88110 | 90222 | } }) catch |err| switch (err) { |
| 88111 | 90223 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| ... | ... | @@ -88118,7 +90230,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 88118 | 90230 | }; |
| 88119 | 90231 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 88120 | 90232 | }, |
| 88121 | | .intcast => |air_tag| if (use_old) try cg.airIntCast(inst) else { |
| 90233 | .intcast => |air_tag| { |
| 88122 | 90234 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 88123 | 90235 | const dst_ty = ty_op.ty.toType(); |
| 88124 | 90236 | const src_ty = cg.typeOf(ty_op.operand); |
| ... | ... | @@ -92797,7 +94909,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 92797 | 94909 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 92798 | 94910 | }, |
| 92799 | 94911 | .intcast_safe => unreachable, |
| 92800 | | .trunc => |air_tag| if (use_old) try cg.airTrunc(inst) else { |
| 94912 | .trunc => |air_tag| { |
| 92801 | 94913 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 92802 | 94914 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 92803 | 94915 | var res: [1]Temp = undefined; |
| ... | ... | @@ -98462,7 +100574,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98462 | 100574 | }; |
| 98463 | 100575 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98464 | 100576 | }, |
| 98465 | | .optional_payload => if (use_old) try cg.airOptionalPayload(inst) else { |
| 100577 | .optional_payload => { |
| 98466 | 100578 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98467 | 100579 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 98468 | 100580 | const pl = if (!hack_around_sema_opv_bugs or ty_op.ty.toType().hasRuntimeBitsIgnoreComptime(zcu)) |
| ... | ... | @@ -98471,12 +100583,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98471 | 100583 | try cg.tempInit(ty_op.ty.toType(), .none); |
| 98472 | 100584 | try pl.finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98473 | 100585 | }, |
| 98474 | | .optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else { |
| 100586 | .optional_payload_ptr => { |
| 98475 | 100587 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98476 | 100588 | const ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 98477 | 100589 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98478 | 100590 | }, |
| 98479 | | .optional_payload_ptr_set => if (use_old) try cg.airOptionalPayloadPtrSet(inst) else { |
| 100591 | .optional_payload_ptr_set => { |
| 98480 | 100592 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98481 | 100593 | const opt_ty = cg.typeOf(ty_op.operand).childType(zcu); |
| 98482 | 100594 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| ... | ... | @@ -98491,7 +100603,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98491 | 100603 | } |
| 98492 | 100604 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98493 | 100605 | }, |
| 98494 | | .wrap_optional => if (use_old) try cg.airWrapOptional(inst) else { |
| 100606 | .wrap_optional => { |
| 98495 | 100607 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98496 | 100608 | const opt_ty = ty_op.ty.toType(); |
| 98497 | 100609 | const opt_pl_ty = cg.typeOf(ty_op.operand); |
| ... | ... | @@ -98506,7 +100618,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98506 | 100618 | } |
| 98507 | 100619 | try opt.finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98508 | 100620 | }, |
| 98509 | | .unwrap_errunion_payload => if (use_old) try cg.airUnwrapErrUnionPayload(inst) else { |
| 100621 | .unwrap_errunion_payload => { |
| 98510 | 100622 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98511 | 100623 | const eu_pl_ty = ty_op.ty.toType(); |
| 98512 | 100624 | const eu_pl_off: i32 = @intCast(codegen.errUnionPayloadOffset(eu_pl_ty, zcu)); |
| ... | ... | @@ -98517,7 +100629,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98517 | 100629 | try cg.tempInit(eu_pl_ty, .none); |
| 98518 | 100630 | try pl.finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98519 | 100631 | }, |
| 98520 | | .unwrap_errunion_err => if (use_old) try cg.airUnwrapErrUnionErr(inst) else { |
| 100632 | .unwrap_errunion_err => { |
| 98521 | 100633 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98522 | 100634 | const eu_ty = cg.typeOf(ty_op.operand); |
| 98523 | 100635 | const eu_err_ty = ty_op.ty.toType(); |
| ... | ... | @@ -98527,7 +100639,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98527 | 100639 | const err = try ops[0].read(eu_err_ty, .{ .disp = eu_err_off }, cg); |
| 98528 | 100640 | try err.finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98529 | 100641 | }, |
| 98530 | | .unwrap_errunion_payload_ptr => if (use_old) try cg.airUnwrapErrUnionPayloadPtr(inst) else { |
| 100642 | .unwrap_errunion_payload_ptr => { |
| 98531 | 100643 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98532 | 100644 | const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); |
| 98533 | 100645 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); |
| ... | ... | @@ -98536,7 +100648,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98536 | 100648 | try ops[0].toOffset(eu_pl_off, cg); |
| 98537 | 100649 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98538 | 100650 | }, |
| 98539 | | .unwrap_errunion_err_ptr => if (use_old) try cg.airUnwrapErrUnionErrPtr(inst) else { |
| 100651 | .unwrap_errunion_err_ptr => { |
| 98540 | 100652 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98541 | 100653 | const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); |
| 98542 | 100654 | const eu_err_ty = ty_op.ty.toType(); |
| ... | ... | @@ -98547,7 +100659,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98547 | 100659 | const err = try ops[0].load(eu_err_ty, .{}, cg); |
| 98548 | 100660 | try err.finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98549 | 100661 | }, |
| 98550 | | .errunion_payload_ptr_set => if (use_old) try cg.airErrUnionPayloadPtrSet(inst) else { |
| 100662 | .errunion_payload_ptr_set => { |
| 98551 | 100663 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98552 | 100664 | const eu_ty = cg.typeOf(ty_op.operand).childType(zcu); |
| 98553 | 100665 | const eu_err_ty = eu_ty.errorUnionSet(zcu); |
| ... | ... | @@ -98562,7 +100674,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98562 | 100674 | try ops[0].toOffset(eu_pl_off - eu_err_off, cg); |
| 98563 | 100675 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98564 | 100676 | }, |
| 98565 | | .wrap_errunion_payload => if (use_old) try cg.airWrapErrUnionPayload(inst) else { |
| 100677 | .wrap_errunion_payload => { |
| 98566 | 100678 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98567 | 100679 | const eu_ty = ty_op.ty.toType(); |
| 98568 | 100680 | const eu_err_ty = eu_ty.errorUnionSet(zcu); |
| ... | ... | @@ -98577,7 +100689,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98577 | 100689 | try err.die(cg); |
| 98578 | 100690 | try eu.finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98579 | 100691 | }, |
| 98580 | | .wrap_errunion_err => if (use_old) try cg.airWrapErrUnionErr(inst) else { |
| 100692 | .wrap_errunion_err => { |
| 98581 | 100693 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98582 | 100694 | const eu_ty = ty_op.ty.toType(); |
| 98583 | 100695 | const eu_pl_ty = eu_ty.errorUnionPayload(zcu); |
| ... | ... | @@ -98587,7 +100699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98587 | 100699 | try eu.write(&ops[0], .{ .disp = eu_err_off }, cg); |
| 98588 | 100700 | try eu.finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98589 | 100701 | }, |
| 98590 | | .struct_field_ptr => if (use_old) try cg.airStructFieldPtr(inst) else { |
| 100702 | .struct_field_ptr => { |
| 98591 | 100703 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 98592 | 100704 | const struct_field = cg.air.extraData(Air.StructField, ty_pl.payload).data; |
| 98593 | 100705 | var ops = try cg.tempsFromOperands(inst, .{struct_field.struct_operand}); |
| ... | ... | @@ -98602,13 +100714,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98602 | 100714 | .struct_field_ptr_index_1, |
| 98603 | 100715 | .struct_field_ptr_index_2, |
| 98604 | 100716 | .struct_field_ptr_index_3, |
| 98605 | | => |air_tag| if (use_old) try cg.airStructFieldPtrIndex(inst, switch (air_tag) { |
| 98606 | | else => unreachable, |
| 98607 | | .struct_field_ptr_index_0 => 0, |
| 98608 | | .struct_field_ptr_index_1 => 1, |
| 98609 | | .struct_field_ptr_index_2 => 2, |
| 98610 | | .struct_field_ptr_index_3 => 3, |
| 98611 | | }) else { |
| 100717 | => |air_tag| { |
| 98612 | 100718 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98613 | 100719 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 98614 | 100720 | try ops[0].toOffset(cg.fieldOffset( |
| ... | ... | @@ -98624,14 +100730,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98624 | 100730 | ), cg); |
| 98625 | 100731 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98626 | 100732 | }, |
| 98627 | | .struct_field_val => if (use_old) try cg.airStructFieldVal(inst) else fallback: { |
| 100733 | .struct_field_val => { |
| 98628 | 100734 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 98629 | 100735 | const struct_field = cg.air.extraData(Air.StructField, ty_pl.payload).data; |
| 98630 | 100736 | const agg_ty = cg.typeOf(struct_field.struct_operand); |
| 98631 | 100737 | const field_ty = ty_pl.ty.toType(); |
| 98632 | 100738 | const field_off: u31 = switch (agg_ty.containerLayout(zcu)) { |
| 98633 | 100739 | .auto, .@"extern" => @intCast(agg_ty.structFieldOffset(struct_field.field_index, zcu)), |
| 98634 | | .@"packed" => break :fallback try cg.airStructFieldVal(inst), |
| 100740 | .@"packed" => unreachable, |
| 98635 | 100741 | }; |
| 98636 | 100742 | var ops = try cg.tempsFromOperands(inst, .{struct_field.struct_operand}); |
| 98637 | 100743 | var res = if (!hack_around_sema_opv_bugs or field_ty.hasRuntimeBitsIgnoreComptime(zcu)) |
| ... | ... | @@ -98640,7 +100746,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98640 | 100746 | try cg.tempInit(field_ty, .none); |
| 98641 | 100747 | try res.finish(inst, &.{struct_field.struct_operand}, &ops, cg); |
| 98642 | 100748 | }, |
| 98643 | | .set_union_tag => if (use_old) try cg.airSetUnionTag(inst) else { |
| 100749 | .set_union_tag => { |
| 98644 | 100750 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 98645 | 100751 | const union_ty = cg.typeOf(bin_op.lhs).childType(zcu); |
| 98646 | 100752 | const union_layout = union_ty.unionGetLayout(zcu); |
| ... | ... | @@ -98651,7 +100757,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98651 | 100757 | const res = try cg.tempInit(.void, .none); |
| 98652 | 100758 | try res.finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 98653 | 100759 | }, |
| 98654 | | .get_union_tag => if (use_old) try cg.airGetUnionTag(inst) else { |
| 100760 | .get_union_tag => { |
| 98655 | 100761 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98656 | 100762 | const union_ty = cg.typeOf(ty_op.operand); |
| 98657 | 100763 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| ... | ... | @@ -98662,38 +100768,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98662 | 100768 | }, cg); |
| 98663 | 100769 | try res.finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98664 | 100770 | }, |
| 98665 | | .slice => if (use_old) try cg.airSlice(inst) else { |
| 100771 | .slice => { |
| 98666 | 100772 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 98667 | 100773 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| 98668 | 100774 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| 98669 | 100775 | try ops[0].toPair(&ops[1], cg); |
| 98670 | 100776 | try ops[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 98671 | 100777 | }, |
| 98672 | | .slice_len => if (use_old) try cg.airSliceLen(inst) else { |
| 100778 | .slice_len => { |
| 98673 | 100779 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98674 | 100780 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 98675 | 100781 | try ops[0].toSliceLen(cg); |
| 98676 | 100782 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98677 | 100783 | }, |
| 98678 | | .slice_ptr => if (use_old) try cg.airSlicePtr(inst) else { |
| 100784 | .slice_ptr => { |
| 98679 | 100785 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98680 | 100786 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 98681 | 100787 | try ops[0].toSlicePtr(cg); |
| 98682 | 100788 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98683 | 100789 | }, |
| 98684 | | .ptr_slice_len_ptr => if (use_old) try cg.airPtrSliceLenPtr(inst) else { |
| 100790 | .ptr_slice_len_ptr => { |
| 98685 | 100791 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98686 | 100792 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 98687 | 100793 | try ops[0].toOffset(8, cg); |
| 98688 | 100794 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98689 | 100795 | }, |
| 98690 | | .ptr_slice_ptr_ptr => if (use_old) try cg.airPtrSlicePtrPtr(inst) else { |
| 100796 | .ptr_slice_ptr_ptr => { |
| 98691 | 100797 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 98692 | 100798 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 98693 | 100799 | try ops[0].toOffset(0, cg); |
| 98694 | 100800 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 98695 | 100801 | }, |
| 98696 | | .array_elem_val => if (use_old) try cg.airArrayElemVal(inst) else { |
| 100802 | .array_elem_val => { |
| 98697 | 100803 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 98698 | 100804 | const array_ty = cg.typeOf(bin_op.lhs); |
| 98699 | 100805 | const res_ty = array_ty.elemType2(zcu); |
| ... | ... | @@ -98889,11 +100995,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 98889 | 100995 | }; |
| 98890 | 100996 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 98891 | 100997 | }, |
| 98892 | | .slice_elem_val, .ptr_elem_val => |air_tag| if (use_old) switch (air_tag) { |
| 98893 | | else => unreachable, |
| 98894 | | .slice_elem_val => try cg.airSliceElemVal(inst), |
| 98895 | | .ptr_elem_val => try cg.airPtrElemVal(inst), |
| 98896 | | } else { |
| 100998 | .slice_elem_val, .ptr_elem_val => { |
| 98897 | 100999 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 98898 | 101000 | const res_ty = cg.typeOf(bin_op.lhs).elemType2(zcu); |
| 98899 | 101001 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -99016,11 +101118,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99016 | 101118 | } else res[0] = try cg.tempInit(res_ty, .none); |
| 99017 | 101119 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 99018 | 101120 | }, |
| 99019 | | .slice_elem_ptr, .ptr_elem_ptr => |air_tag| if (use_old) switch (air_tag) { |
| 99020 | | else => unreachable, |
| 99021 | | .slice_elem_ptr => try cg.airSliceElemPtr(inst), |
| 99022 | | .ptr_elem_ptr => try cg.airPtrElemPtr(inst), |
| 99023 | | } else { |
| 101121 | .slice_elem_ptr, .ptr_elem_ptr => { |
| 99024 | 101122 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 99025 | 101123 | const bin_op = cg.air.extraData(Air.Bin, ty_pl.payload).data; |
| 99026 | 101124 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); |
| ... | ... | @@ -99067,7 +101165,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99067 | 101165 | } |
| 99068 | 101166 | try ops[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); |
| 99069 | 101167 | }, |
| 99070 | | .array_to_slice => if (use_old) try cg.airArrayToSlice(inst) else { |
| 101168 | .array_to_slice => { |
| 99071 | 101169 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 99072 | 101170 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 99073 | 101171 | var len = try cg.tempInit(.usize, .{ |
| ... | ... | @@ -99076,7 +101174,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99076 | 101174 | try ops[0].toPair(&len, cg); |
| 99077 | 101175 | try ops[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 99078 | 101176 | }, |
| 99079 | | .int_from_float, .int_from_float_optimized => |air_tag| if (use_old) try cg.airIntFromFloat(inst) else { |
| 101177 | .int_from_float, .int_from_float_optimized => |air_tag| { |
| 99080 | 101178 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 99081 | 101179 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 99082 | 101180 | var res: [1]Temp = undefined; |
| ... | ... | @@ -99278,7 +101376,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99278 | 101376 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 99279 | 101377 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, |
| 99280 | 101378 | .patterns = &.{ |
| 99281 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 101379 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 99282 | 101380 | }, |
| 99283 | 101381 | .call_frame = .{ .alignment = .@"16" }, |
| 99284 | 101382 | .extra_temps = .{ |
| ... | ... | @@ -99294,7 +101392,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99294 | 101392 | .unused, |
| 99295 | 101393 | .unused, |
| 99296 | 101394 | }, |
| 99297 | | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 101395 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 99298 | 101396 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99299 | 101397 | .each = .{ .once = &.{ |
| 99300 | 101398 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -99304,7 +101402,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99304 | 101402 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 99305 | 101403 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, |
| 99306 | 101404 | .patterns = &.{ |
| 99307 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 101405 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 99308 | 101406 | }, |
| 99309 | 101407 | .call_frame = .{ .alignment = .@"16" }, |
| 99310 | 101408 | .extra_temps = .{ |
| ... | ... | @@ -99320,7 +101418,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99320 | 101418 | .unused, |
| 99321 | 101419 | .unused, |
| 99322 | 101420 | }, |
| 99323 | | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 101421 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 99324 | 101422 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99325 | 101423 | .each = .{ .once = &.{ |
| 99326 | 101424 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -99330,7 +101428,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99330 | 101428 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 99331 | 101429 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 99332 | 101430 | .patterns = &.{ |
| 99333 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 101431 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 99334 | 101432 | }, |
| 99335 | 101433 | .call_frame = .{ .alignment = .@"16" }, |
| 99336 | 101434 | .extra_temps = .{ |
| ... | ... | @@ -99346,7 +101444,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99346 | 101444 | .unused, |
| 99347 | 101445 | .unused, |
| 99348 | 101446 | }, |
| 99349 | | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 101447 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 99350 | 101448 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99351 | 101449 | .each = .{ .once = &.{ |
| 99352 | 101450 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -99356,7 +101454,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99356 | 101454 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 99357 | 101455 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 99358 | 101456 | .patterns = &.{ |
| 99359 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 101457 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 99360 | 101458 | }, |
| 99361 | 101459 | .call_frame = .{ .alignment = .@"16" }, |
| 99362 | 101460 | .extra_temps = .{ |
| ... | ... | @@ -99372,17 +101470,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99372 | 101470 | .unused, |
| 99373 | 101471 | .unused, |
| 99374 | 101472 | }, |
| 99375 | | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 101473 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 99376 | 101474 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99377 | 101475 | .each = .{ .once = &.{ |
| 99378 | 101476 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 99379 | 101477 | } }, |
| 99380 | 101478 | }, .{ |
| 99381 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101479 | .required_cc_abi = .sysv64, |
| 101480 | .required_features = .{ .sse, null, null, null }, |
| 99382 | 101481 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 99383 | 101482 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 99384 | 101483 | .patterns = &.{ |
| 99385 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 101484 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 99386 | 101485 | }, |
| 99387 | 101486 | .call_frame = .{ .alignment = .@"16" }, |
| 99388 | 101487 | .extra_temps = .{ |
| ... | ... | @@ -99398,17 +101497,72 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99398 | 101497 | .unused, |
| 99399 | 101498 | .unused, |
| 99400 | 101499 | }, |
| 99401 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 101500 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 99402 | 101501 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99403 | 101502 | .each = .{ .once = &.{ |
| 99404 | 101503 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 99405 | 101504 | } }, |
| 99406 | 101505 | }, .{ |
| 99407 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 101506 | .required_cc_abi = .win64, |
| 101507 | .required_features = .{ .sse, null, null, null }, |
| 101508 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 101509 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 101510 | .patterns = &.{ |
| 101511 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 101512 | }, |
| 101513 | .call_frame = .{ .alignment = .@"16" }, |
| 101514 | .extra_temps = .{ |
| 101515 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfti" } }, |
| 101516 | .unused, |
| 101517 | .unused, |
| 101518 | .unused, |
| 101519 | .unused, |
| 101520 | .unused, |
| 101521 | .unused, |
| 101522 | .unused, |
| 101523 | .unused, |
| 101524 | .unused, |
| 101525 | .unused, |
| 101526 | }, |
| 101527 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 101528 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101529 | .each = .{ .once = &.{ |
| 101530 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 101531 | } }, |
| 101532 | }, .{ |
| 101533 | .required_cc_abi = .sysv64, |
| 101534 | .required_features = .{ .sse, null, null, null }, |
| 101535 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 101536 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 101537 | .patterns = &.{ |
| 101538 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 101539 | }, |
| 101540 | .call_frame = .{ .alignment = .@"16" }, |
| 101541 | .extra_temps = .{ |
| 101542 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfti" } }, |
| 101543 | .unused, |
| 101544 | .unused, |
| 101545 | .unused, |
| 101546 | .unused, |
| 101547 | .unused, |
| 101548 | .unused, |
| 101549 | .unused, |
| 101550 | .unused, |
| 101551 | .unused, |
| 101552 | .unused, |
| 101553 | }, |
| 101554 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 101555 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101556 | .each = .{ .once = &.{ |
| 101557 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 101558 | } }, |
| 101559 | }, .{ |
| 101560 | .required_cc_abi = .win64, |
| 101561 | .required_features = .{ .sse, null, null, null }, |
| 99408 | 101562 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 99409 | 101563 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 99410 | 101564 | .patterns = &.{ |
| 99411 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 101565 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 99412 | 101566 | }, |
| 99413 | 101567 | .call_frame = .{ .alignment = .@"16" }, |
| 99414 | 101568 | .extra_temps = .{ |
| ... | ... | @@ -99424,7 +101578,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99424 | 101578 | .unused, |
| 99425 | 101579 | .unused, |
| 99426 | 101580 | }, |
| 99427 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 101581 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 99428 | 101582 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99429 | 101583 | .each = .{ .once = &.{ |
| 99430 | 101584 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -99434,7 +101588,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99434 | 101588 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 99435 | 101589 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99436 | 101590 | .patterns = &.{ |
| 99437 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 101591 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 99438 | 101592 | }, |
| 99439 | 101593 | .call_frame = .{ .alignment = .@"16" }, |
| 99440 | 101594 | .extra_temps = .{ |
| ... | ... | @@ -99465,7 +101619,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99465 | 101619 | .src_constraints = .{ .{ .float = .word }, .any, .any }, |
| 99466 | 101620 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 99467 | 101621 | .patterns = &.{ |
| 99468 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 101622 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 99469 | 101623 | }, |
| 99470 | 101624 | .call_frame = .{ .alignment = .@"16" }, |
| 99471 | 101625 | .extra_temps = .{ |
| ... | ... | @@ -99527,7 +101681,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99527 | 101681 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99528 | 101682 | }, |
| 99529 | 101683 | .extra_temps = .{ |
| 99530 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101684 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 99531 | 101685 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 99532 | 101686 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 99533 | 101687 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| ... | ... | @@ -99544,13 +101698,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99544 | 101698 | .each = .{ .once = &.{ |
| 99545 | 101699 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 99546 | 101700 | .{ ._, .v_ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 99547 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99548 | | .{ .@"0:", .v_ps, .cvtph2, .tmp3x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101701 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_size), ._, ._ }, |
| 101702 | .{ .@"0:", .v_ps, .cvtph2, .tmp3x, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 99549 | 101703 | .{ ._, .v_, .cvttps2dq, .tmp3x, .tmp3x, ._, ._ }, |
| 99550 | 101704 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 99551 | | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 99552 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 99553 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101705 | .{ ._, .v_d, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 101706 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 101707 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99554 | 101708 | } }, |
| 99555 | 101709 | }, .{ |
| 99556 | 101710 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | ... | @@ -99561,10 +101715,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99561 | 101715 | }, |
| 99562 | 101716 | .call_frame = .{ .alignment = .@"16" }, |
| 99563 | 101717 | .extra_temps = .{ |
| 99564 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99565 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 101718 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101719 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99566 | 101720 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 99567 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101721 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99568 | 101722 | .unused, |
| 99569 | 101723 | .unused, |
| 99570 | 101724 | .unused, |
| ... | ... | @@ -99576,13 +101730,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99576 | 101730 | .dst_temps = .{ .mem, .unused }, |
| 99577 | 101731 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99578 | 101732 | .each = .{ .once = &.{ |
| 99579 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101733 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 99580 | 101734 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99581 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0) }, |
| 101735 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, |
| 99582 | 101736 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99583 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99584 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 99585 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101737 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 101738 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 101739 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99586 | 101740 | } }, |
| 99587 | 101741 | }, .{ |
| 99588 | 101742 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -99593,10 +101747,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99593 | 101747 | }, |
| 99594 | 101748 | .call_frame = .{ .alignment = .@"16" }, |
| 99595 | 101749 | .extra_temps = .{ |
| 99596 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99597 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 101750 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101751 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99598 | 101752 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 99599 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101753 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99600 | 101754 | .unused, |
| 99601 | 101755 | .unused, |
| 99602 | 101756 | .unused, |
| ... | ... | @@ -99608,13 +101762,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99608 | 101762 | .dst_temps = .{ .mem, .unused }, |
| 99609 | 101763 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99610 | 101764 | .each = .{ .once = &.{ |
| 99611 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101765 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 99612 | 101766 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99613 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0) }, |
| 101767 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0) }, |
| 99614 | 101768 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99615 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99616 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 99617 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 101769 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 101770 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 101771 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 99618 | 101772 | } }, |
| 99619 | 101773 | }, .{ |
| 99620 | 101774 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| ... | ... | @@ -99625,10 +101779,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99625 | 101779 | }, |
| 99626 | 101780 | .call_frame = .{ .alignment = .@"16" }, |
| 99627 | 101781 | .extra_temps = .{ |
| 99628 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99629 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 101782 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101783 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99630 | 101784 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 99631 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101785 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99632 | 101786 | .unused, |
| 99633 | 101787 | .unused, |
| 99634 | 101788 | .unused, |
| ... | ... | @@ -99640,13 +101794,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99640 | 101794 | .dst_temps = .{ .mem, .unused }, |
| 99641 | 101795 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99642 | 101796 | .each = .{ .once = &.{ |
| 99643 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101797 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 99644 | 101798 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99645 | | .{ ._, .p_w, .insr, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 101799 | .{ ._, .p_w, .insr, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, |
| 99646 | 101800 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99647 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99648 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 99649 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101801 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 101802 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 101803 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99650 | 101804 | } }, |
| 99651 | 101805 | }, .{ |
| 99652 | 101806 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -99657,10 +101811,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99657 | 101811 | }, |
| 99658 | 101812 | .call_frame = .{ .alignment = .@"16" }, |
| 99659 | 101813 | .extra_temps = .{ |
| 99660 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99661 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 101814 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101815 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99662 | 101816 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 99663 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101817 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99664 | 101818 | .unused, |
| 99665 | 101819 | .unused, |
| 99666 | 101820 | .unused, |
| ... | ... | @@ -99672,13 +101826,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99672 | 101826 | .dst_temps = .{ .mem, .unused }, |
| 99673 | 101827 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99674 | 101828 | .each = .{ .once = &.{ |
| 99675 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101829 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 99676 | 101830 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99677 | | .{ ._, .p_w, .insr, .tmp1x, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 101831 | .{ ._, .p_w, .insr, .tmp1x, .memsi(.src0w, .@"2", .tmp0), .ui(0), ._ }, |
| 99678 | 101832 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99679 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 99680 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 99681 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 101833 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 101834 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 101835 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 99682 | 101836 | } }, |
| 99683 | 101837 | }, .{ |
| 99684 | 101838 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -99689,10 +101843,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99689 | 101843 | }, |
| 99690 | 101844 | .call_frame = .{ .alignment = .@"16" }, |
| 99691 | 101845 | .extra_temps = .{ |
| 99692 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99693 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101846 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101847 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99694 | 101848 | .{ .type = .f32, .kind = .mem }, |
| 99695 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 101849 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99696 | 101850 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 99697 | 101851 | .unused, |
| 99698 | 101852 | .unused, |
| ... | ... | @@ -99704,14 +101858,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99704 | 101858 | .dst_temps = .{ .mem, .unused }, |
| 99705 | 101859 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99706 | 101860 | .each = .{ .once = &.{ |
| 99707 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99708 | | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101861 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 101862 | .{ .@"0:", ._, .movzx, .tmp1d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, |
| 99709 | 101863 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99710 | 101864 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99711 | 101865 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99712 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 99713 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 99714 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101866 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp1b, ._, ._ }, |
| 101867 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 101868 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99715 | 101869 | } }, |
| 99716 | 101870 | }, .{ |
| 99717 | 101871 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -99722,10 +101876,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99722 | 101876 | }, |
| 99723 | 101877 | .call_frame = .{ .alignment = .@"16" }, |
| 99724 | 101878 | .extra_temps = .{ |
| 99725 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99726 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 101879 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101880 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99727 | 101881 | .{ .type = .f32, .kind = .mem }, |
| 99728 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 101882 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99729 | 101883 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 99730 | 101884 | .unused, |
| 99731 | 101885 | .unused, |
| ... | ... | @@ -99737,14 +101891,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99737 | 101891 | .dst_temps = .{ .mem, .unused }, |
| 99738 | 101892 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99739 | 101893 | .each = .{ .once = &.{ |
| 99740 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 99741 | | .{ .@"0:", ._, .movzx, .tmp1d, .memsia(.src0w, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101894 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 101895 | .{ .@"0:", ._, .movzx, .tmp1d, .memsi(.src0w, .@"2", .tmp0), ._, ._ }, |
| 99742 | 101896 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99743 | 101897 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99744 | 101898 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99745 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 99746 | | .{ ._, ._c, .in, .tmp0p, .si(1), ._, ._ }, |
| 99747 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 101899 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp1b, ._, ._ }, |
| 101900 | .{ ._, ._c, .de, .tmp0d, .si(1), ._, ._ }, |
| 101901 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 99748 | 101902 | } }, |
| 99749 | 101903 | }, .{ |
| 99750 | 101904 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -99782,7 +101936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99782 | 101936 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99783 | 101937 | }, |
| 99784 | 101938 | .extra_temps = .{ |
| 99785 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101939 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 99786 | 101940 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 99787 | 101941 | .unused, |
| 99788 | 101942 | .unused, |
| ... | ... | @@ -99797,13 +101951,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99797 | 101951 | .dst_temps = .{ .mem, .unused }, |
| 99798 | 101952 | .clobbers = .{ .eflags = true }, |
| 99799 | 101953 | .each = .{ .once = &.{ |
| 99800 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99801 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101954 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 101955 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 99802 | 101956 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| 99803 | 101957 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99804 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99805 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99806 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101958 | .{ ._, .v_q, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 101959 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 101960 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99807 | 101961 | } }, |
| 99808 | 101962 | }, .{ |
| 99809 | 101963 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -99813,7 +101967,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99813 | 101967 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99814 | 101968 | }, |
| 99815 | 101969 | .extra_temps = .{ |
| 99816 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101970 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 99817 | 101971 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 99818 | 101972 | .unused, |
| 99819 | 101973 | .unused, |
| ... | ... | @@ -99828,13 +101982,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99828 | 101982 | .dst_temps = .{ .mem, .unused }, |
| 99829 | 101983 | .clobbers = .{ .eflags = true }, |
| 99830 | 101984 | .each = .{ .once = &.{ |
| 99831 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99832 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101985 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 101986 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 99833 | 101987 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| 99834 | 101988 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99835 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99836 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99837 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 101989 | .{ ._, .v_q, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 101990 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 101991 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99838 | 101992 | } }, |
| 99839 | 101993 | }, .{ |
| 99840 | 101994 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -99845,10 +101999,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99845 | 101999 | }, |
| 99846 | 102000 | .call_frame = .{ .alignment = .@"16" }, |
| 99847 | 102001 | .extra_temps = .{ |
| 99848 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99849 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102002 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102003 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99850 | 102004 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 99851 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102005 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99852 | 102006 | .unused, |
| 99853 | 102007 | .unused, |
| 99854 | 102008 | .unused, |
| ... | ... | @@ -99860,13 +102014,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99860 | 102014 | .dst_temps = .{ .mem, .unused }, |
| 99861 | 102015 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99862 | 102016 | .each = .{ .once = &.{ |
| 99863 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102017 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 99864 | 102018 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99865 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 102019 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 99866 | 102020 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99867 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 99868 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 99869 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102021 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 102022 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102023 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99870 | 102024 | } }, |
| 99871 | 102025 | }, .{ |
| 99872 | 102026 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -99877,10 +102031,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99877 | 102031 | }, |
| 99878 | 102032 | .call_frame = .{ .alignment = .@"16" }, |
| 99879 | 102033 | .extra_temps = .{ |
| 99880 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99881 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102034 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102035 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99882 | 102036 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 99883 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102037 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99884 | 102038 | .unused, |
| 99885 | 102039 | .unused, |
| 99886 | 102040 | .unused, |
| ... | ... | @@ -99892,13 +102046,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99892 | 102046 | .dst_temps = .{ .mem, .unused }, |
| 99893 | 102047 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99894 | 102048 | .each = .{ .once = &.{ |
| 99895 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102049 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 99896 | 102050 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 99897 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 102051 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 99898 | 102052 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 99899 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 99900 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 99901 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102053 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 102054 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102055 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99902 | 102056 | } }, |
| 99903 | 102057 | }, .{ |
| 99904 | 102058 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -99909,10 +102063,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99909 | 102063 | }, |
| 99910 | 102064 | .call_frame = .{ .alignment = .@"16" }, |
| 99911 | 102065 | .extra_temps = .{ |
| 99912 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 99913 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102066 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102067 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99914 | 102068 | .{ .type = .f32, .kind = .mem }, |
| 99915 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102069 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 99916 | 102070 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 99917 | 102071 | .unused, |
| 99918 | 102072 | .unused, |
| ... | ... | @@ -99924,14 +102078,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99924 | 102078 | .dst_temps = .{ .mem, .unused }, |
| 99925 | 102079 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 99926 | 102080 | .each = .{ .once = &.{ |
| 99927 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99928 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102081 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102082 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 99929 | 102083 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 99930 | 102084 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 99931 | 102085 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 99932 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 99933 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 99934 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102086 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 102087 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102088 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99935 | 102089 | } }, |
| 99936 | 102090 | }, .{ |
| 99937 | 102091 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -99941,7 +102095,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99941 | 102095 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99942 | 102096 | }, |
| 99943 | 102097 | .extra_temps = .{ |
| 99944 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102098 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 99945 | 102099 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 99946 | 102100 | .unused, |
| 99947 | 102101 | .unused, |
| ... | ... | @@ -99956,12 +102110,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99956 | 102110 | .dst_temps = .{ .mem, .unused }, |
| 99957 | 102111 | .clobbers = .{ .eflags = true }, |
| 99958 | 102112 | .each = .{ .once = &.{ |
| 99959 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 99960 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102113 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 102114 | .{ .@"0:", .v_ps, .cvtph2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 99961 | 102115 | .{ ._, .v_, .cvttps2dq, .tmp1x, .tmp1x, ._, ._ }, |
| 99962 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 99963 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 99964 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102116 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 102117 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 102118 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99965 | 102119 | } }, |
| 99966 | 102120 | }, .{ |
| 99967 | 102121 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -99971,7 +102125,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99971 | 102125 | .{ .src = .{ .to_mem, .none, .none } }, |
| 99972 | 102126 | }, |
| 99973 | 102127 | .extra_temps = .{ |
| 99974 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102128 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 99975 | 102129 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 99976 | 102130 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 99977 | 102131 | .unused, |
| ... | ... | @@ -99986,14 +102140,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 99986 | 102140 | .dst_temps = .{ .mem, .unused }, |
| 99987 | 102141 | .clobbers = .{ .eflags = true }, |
| 99988 | 102142 | .each = .{ .once = &.{ |
| 99989 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102143 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 99990 | 102144 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 99991 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 102145 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 99992 | 102146 | .{ ._, .v_ps, .cvtph2, .tmp1x, .tmp1q, ._, ._ }, |
| 99993 | 102147 | .{ ._, .v_, .cvttss2si, .tmp2q, .tmp1x, ._, ._ }, |
| 99994 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 99995 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 99996 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102148 | .{ ._, ._, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp2d, ._, ._ }, |
| 102149 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102150 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 99997 | 102151 | } }, |
| 99998 | 102152 | }, .{ |
| 99999 | 102153 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -100004,10 +102158,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100004 | 102158 | }, |
| 100005 | 102159 | .call_frame = .{ .alignment = .@"16" }, |
| 100006 | 102160 | .extra_temps = .{ |
| 100007 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100008 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102161 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102162 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100009 | 102163 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 100010 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102164 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100011 | 102165 | .unused, |
| 100012 | 102166 | .unused, |
| 100013 | 102167 | .unused, |
| ... | ... | @@ -100019,13 +102173,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100019 | 102173 | .dst_temps = .{ .mem, .unused }, |
| 100020 | 102174 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100021 | 102175 | .each = .{ .once = &.{ |
| 100022 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102176 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100023 | 102177 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 100024 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 102178 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 100025 | 102179 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100026 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 100027 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100028 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102180 | .{ ._, ._, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp3d, ._, ._ }, |
| 102181 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102182 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100029 | 102183 | } }, |
| 100030 | 102184 | }, .{ |
| 100031 | 102185 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -100036,10 +102190,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100036 | 102190 | }, |
| 100037 | 102191 | .call_frame = .{ .alignment = .@"16" }, |
| 100038 | 102192 | .extra_temps = .{ |
| 100039 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100040 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102193 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102194 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100041 | 102195 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfsi" } }, |
| 100042 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 102196 | .{ .type = .u32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100043 | 102197 | .unused, |
| 100044 | 102198 | .unused, |
| 100045 | 102199 | .unused, |
| ... | ... | @@ -100051,13 +102205,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100051 | 102205 | .dst_temps = .{ .mem, .unused }, |
| 100052 | 102206 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100053 | 102207 | .each = .{ .once = &.{ |
| 100054 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102208 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100055 | 102209 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 100056 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 102210 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 100057 | 102211 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100058 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 100059 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100060 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102212 | .{ ._, ._, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp3d, ._, ._ }, |
| 102213 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102214 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100061 | 102215 | } }, |
| 100062 | 102216 | }, .{ |
| 100063 | 102217 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -100068,10 +102222,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100068 | 102222 | }, |
| 100069 | 102223 | .call_frame = .{ .alignment = .@"16" }, |
| 100070 | 102224 | .extra_temps = .{ |
| 100071 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100072 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102225 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102226 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100073 | 102227 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 100074 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102228 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100075 | 102229 | .unused, |
| 100076 | 102230 | .unused, |
| 100077 | 102231 | .unused, |
| ... | ... | @@ -100083,13 +102237,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100083 | 102237 | .dst_temps = .{ .mem, .unused }, |
| 100084 | 102238 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100085 | 102239 | .each = .{ .once = &.{ |
| 100086 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102240 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100087 | 102241 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 100088 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 102242 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 100089 | 102243 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100090 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 100091 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100092 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102244 | .{ ._, ._, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp3d, ._, ._ }, |
| 102245 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102246 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100093 | 102247 | } }, |
| 100094 | 102248 | }, .{ |
| 100095 | 102249 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -100100,10 +102254,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100100 | 102254 | }, |
| 100101 | 102255 | .call_frame = .{ .alignment = .@"16" }, |
| 100102 | 102256 | .extra_temps = .{ |
| 100103 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100104 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102257 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102258 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100105 | 102259 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfsi" } }, |
| 100106 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 102260 | .{ .type = .u32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100107 | 102261 | .unused, |
| 100108 | 102262 | .unused, |
| 100109 | 102263 | .unused, |
| ... | ... | @@ -100115,13 +102269,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100115 | 102269 | .dst_temps = .{ .mem, .unused }, |
| 100116 | 102270 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100117 | 102271 | .each = .{ .once = &.{ |
| 100118 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102272 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100119 | 102273 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 100120 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 102274 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 100121 | 102275 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100122 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 100123 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100124 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102276 | .{ ._, ._, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp3d, ._, ._ }, |
| 102277 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102278 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100125 | 102279 | } }, |
| 100126 | 102280 | }, .{ |
| 100127 | 102281 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -100132,10 +102286,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100132 | 102286 | }, |
| 100133 | 102287 | .call_frame = .{ .alignment = .@"16" }, |
| 100134 | 102288 | .extra_temps = .{ |
| 100135 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100136 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 102289 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102290 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100137 | 102291 | .{ .type = .f32, .kind = .mem }, |
| 100138 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102292 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100139 | 102293 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfsi" } }, |
| 100140 | 102294 | .unused, |
| 100141 | 102295 | .unused, |
| ... | ... | @@ -100147,14 +102301,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100147 | 102301 | .dst_temps = .{ .mem, .unused }, |
| 100148 | 102302 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100149 | 102303 | .each = .{ .once = &.{ |
| 100150 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100151 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102304 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102305 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 100152 | 102306 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 100153 | 102307 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 100154 | 102308 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 100155 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 100156 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100157 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102309 | .{ ._, ._, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp1d, ._, ._ }, |
| 102310 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102311 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100158 | 102312 | } }, |
| 100159 | 102313 | }, .{ |
| 100160 | 102314 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -100165,10 +102319,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100165 | 102319 | }, |
| 100166 | 102320 | .call_frame = .{ .alignment = .@"16" }, |
| 100167 | 102321 | .extra_temps = .{ |
| 100168 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100169 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 102322 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102323 | .{ .type = .u32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100170 | 102324 | .{ .type = .f32, .kind = .mem }, |
| 100171 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102325 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100172 | 102326 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfsi" } }, |
| 100173 | 102327 | .unused, |
| 100174 | 102328 | .unused, |
| ... | ... | @@ -100180,14 +102334,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100180 | 102334 | .dst_temps = .{ .mem, .unused }, |
| 100181 | 102335 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100182 | 102336 | .each = .{ .once = &.{ |
| 100183 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100184 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102337 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102338 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 100185 | 102339 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 100186 | 102340 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 100187 | 102341 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 100188 | | .{ ._, ._, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, |
| 100189 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100190 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102342 | .{ ._, ._, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp1d, ._, ._ }, |
| 102343 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102344 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100191 | 102345 | } }, |
| 100192 | 102346 | }, .{ |
| 100193 | 102347 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| ... | ... | @@ -100197,7 +102351,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100197 | 102351 | .{ .src = .{ .to_mem, .none, .none } }, |
| 100198 | 102352 | }, |
| 100199 | 102353 | .extra_temps = .{ |
| 100200 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102354 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 100201 | 102355 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 100202 | 102356 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 100203 | 102357 | .unused, |
| ... | ... | @@ -100212,14 +102366,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100212 | 102366 | .dst_temps = .{ .mem, .unused }, |
| 100213 | 102367 | .clobbers = .{ .eflags = true }, |
| 100214 | 102368 | .each = .{ .once = &.{ |
| 100215 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102369 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100216 | 102370 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 100217 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 102371 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 100218 | 102372 | .{ ._, .v_ps, .cvtph2, .tmp1x, .tmp1q, ._, ._ }, |
| 100219 | 102373 | .{ ._, .v_, .cvttss2si, .tmp2q, .tmp1x, ._, ._ }, |
| 100220 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp2q, ._, ._ }, |
| 100221 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100222 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102374 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp2q, ._, ._ }, |
| 102375 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102376 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100223 | 102377 | } }, |
| 100224 | 102378 | }, .{ |
| 100225 | 102379 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -100230,10 +102384,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100230 | 102384 | }, |
| 100231 | 102385 | .call_frame = .{ .alignment = .@"16" }, |
| 100232 | 102386 | .extra_temps = .{ |
| 100233 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100234 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102387 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102388 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100235 | 102389 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfdi" } }, |
| 100236 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 102390 | .{ .type = .i64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100237 | 102391 | .unused, |
| 100238 | 102392 | .unused, |
| 100239 | 102393 | .unused, |
| ... | ... | @@ -100245,13 +102399,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100245 | 102399 | .dst_temps = .{ .mem, .unused }, |
| 100246 | 102400 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100247 | 102401 | .each = .{ .once = &.{ |
| 100248 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102402 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100249 | 102403 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 100250 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 102404 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 100251 | 102405 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100252 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 100253 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100254 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102406 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3q, ._, ._ }, |
| 102407 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102408 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100255 | 102409 | } }, |
| 100256 | 102410 | }, .{ |
| 100257 | 102411 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -100262,10 +102416,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100262 | 102416 | }, |
| 100263 | 102417 | .call_frame = .{ .alignment = .@"16" }, |
| 100264 | 102418 | .extra_temps = .{ |
| 100265 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100266 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102419 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102420 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100267 | 102421 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfdi" } }, |
| 100268 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102422 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100269 | 102423 | .unused, |
| 100270 | 102424 | .unused, |
| 100271 | 102425 | .unused, |
| ... | ... | @@ -100277,13 +102431,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100277 | 102431 | .dst_temps = .{ .mem, .unused }, |
| 100278 | 102432 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100279 | 102433 | .each = .{ .once = &.{ |
| 100280 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102434 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100281 | 102435 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 100282 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 102436 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 100283 | 102437 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100284 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 100285 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100286 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102438 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3q, ._, ._ }, |
| 102439 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102440 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100287 | 102441 | } }, |
| 100288 | 102442 | }, .{ |
| 100289 | 102443 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -100294,10 +102448,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100294 | 102448 | }, |
| 100295 | 102449 | .call_frame = .{ .alignment = .@"16" }, |
| 100296 | 102450 | .extra_temps = .{ |
| 100297 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100298 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102451 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102452 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100299 | 102453 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfdi" } }, |
| 100300 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 102454 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100301 | 102455 | .unused, |
| 100302 | 102456 | .unused, |
| 100303 | 102457 | .unused, |
| ... | ... | @@ -100309,13 +102463,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100309 | 102463 | .dst_temps = .{ .mem, .unused }, |
| 100310 | 102464 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100311 | 102465 | .each = .{ .once = &.{ |
| 100312 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102466 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100313 | 102467 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 100314 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 102468 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 100315 | 102469 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100316 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 100317 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100318 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102470 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3q, ._, ._ }, |
| 102471 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102472 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100319 | 102473 | } }, |
| 100320 | 102474 | }, .{ |
| 100321 | 102475 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -100326,10 +102480,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100326 | 102480 | }, |
| 100327 | 102481 | .call_frame = .{ .alignment = .@"16" }, |
| 100328 | 102482 | .extra_temps = .{ |
| 100329 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100330 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102483 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102484 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100331 | 102485 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfdi" } }, |
| 100332 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102486 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100333 | 102487 | .unused, |
| 100334 | 102488 | .unused, |
| 100335 | 102489 | .unused, |
| ... | ... | @@ -100341,13 +102495,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100341 | 102495 | .dst_temps = .{ .mem, .unused }, |
| 100342 | 102496 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100343 | 102497 | .each = .{ .once = &.{ |
| 100344 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102498 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100345 | 102499 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 100346 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 102500 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 100347 | 102501 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100348 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 100349 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100350 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102502 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3q, ._, ._ }, |
| 102503 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102504 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100351 | 102505 | } }, |
| 100352 | 102506 | }, .{ |
| 100353 | 102507 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -100358,10 +102512,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100358 | 102512 | }, |
| 100359 | 102513 | .call_frame = .{ .alignment = .@"16" }, |
| 100360 | 102514 | .extra_temps = .{ |
| 100361 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100362 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 102515 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102516 | .{ .type = .i64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100363 | 102517 | .{ .type = .f32, .kind = .mem }, |
| 100364 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102518 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100365 | 102519 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfdi" } }, |
| 100366 | 102520 | .unused, |
| 100367 | 102521 | .unused, |
| ... | ... | @@ -100373,14 +102527,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100373 | 102527 | .dst_temps = .{ .mem, .unused }, |
| 100374 | 102528 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100375 | 102529 | .each = .{ .once = &.{ |
| 100376 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100377 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102530 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102531 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 100378 | 102532 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 100379 | 102533 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 100380 | 102534 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 100381 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 100382 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100383 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102535 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp1q, ._, ._ }, |
| 102536 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102537 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100384 | 102538 | } }, |
| 100385 | 102539 | }, .{ |
| 100386 | 102540 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -100391,10 +102545,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100391 | 102545 | }, |
| 100392 | 102546 | .call_frame = .{ .alignment = .@"16" }, |
| 100393 | 102547 | .extra_temps = .{ |
| 100394 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100395 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102548 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102549 | .{ .type = .f32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100396 | 102550 | .{ .type = .f32, .kind = .mem }, |
| 100397 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102551 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100398 | 102552 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfdi" } }, |
| 100399 | 102553 | .unused, |
| 100400 | 102554 | .unused, |
| ... | ... | @@ -100406,16 +102560,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100406 | 102560 | .dst_temps = .{ .mem, .unused }, |
| 100407 | 102561 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100408 | 102562 | .each = .{ .once = &.{ |
| 100409 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100410 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102563 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102564 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 100411 | 102565 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 100412 | 102566 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 100413 | 102567 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 100414 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 100415 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100416 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102568 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp1q, ._, ._ }, |
| 102569 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102570 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100417 | 102571 | } }, |
| 100418 | 102572 | }, .{ |
| 102573 | .required_cc_abi = .sysv64, |
| 100419 | 102574 | .required_features = .{ .avx, null, null, null }, |
| 100420 | 102575 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100421 | 102576 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -100424,11 +102579,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100424 | 102579 | }, |
| 100425 | 102580 | .call_frame = .{ .alignment = .@"16" }, |
| 100426 | 102581 | .extra_temps = .{ |
| 100427 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100428 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102582 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102583 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100429 | 102584 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfti" } }, |
| 100430 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 100431 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 102585 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102586 | .unused, |
| 100432 | 102587 | .unused, |
| 100433 | 102588 | .unused, |
| 100434 | 102589 | .unused, |
| ... | ... | @@ -100439,16 +102594,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100439 | 102594 | .dst_temps = .{ .mem, .unused }, |
| 100440 | 102595 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100441 | 102596 | .each = .{ .once = &.{ |
| 100442 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102597 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100443 | 102598 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 100444 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 102599 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 100445 | 102600 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100446 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 100447 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 100448 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100449 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102601 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q0, ._, ._ }, |
| 102602 | .{ ._, ._, .mov, .memsid(.dst0q, .@"8", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 102603 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102604 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100450 | 102605 | } }, |
| 100451 | 102606 | }, .{ |
| 102607 | .required_cc_abi = .win64, |
| 102608 | .required_features = .{ .avx, null, null, null }, |
| 102609 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 102610 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102611 | .patterns = &.{ |
| 102612 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102613 | }, |
| 102614 | .call_frame = .{ .alignment = .@"16" }, |
| 102615 | .extra_temps = .{ |
| 102616 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102617 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102618 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfti" } }, |
| 102619 | .unused, |
| 102620 | .unused, |
| 102621 | .unused, |
| 102622 | .unused, |
| 102623 | .unused, |
| 102624 | .unused, |
| 102625 | .unused, |
| 102626 | .unused, |
| 102627 | }, |
| 102628 | .dst_temps = .{ .mem, .unused }, |
| 102629 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102630 | .each = .{ .once = &.{ |
| 102631 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102632 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 102633 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 102634 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102635 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"8", .tmp0), .tmp1x, ._, ._ }, |
| 102636 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102637 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102638 | } }, |
| 102639 | }, .{ |
| 102640 | .required_cc_abi = .sysv64, |
| 100452 | 102641 | .required_features = .{ .avx, null, null, null }, |
| 100453 | 102642 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100454 | 102643 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -100457,11 +102646,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100457 | 102646 | }, |
| 100458 | 102647 | .call_frame = .{ .alignment = .@"16" }, |
| 100459 | 102648 | .extra_temps = .{ |
| 100460 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100461 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102649 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102650 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100462 | 102651 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfti" } }, |
| 100463 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 100464 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 102652 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102653 | .unused, |
| 100465 | 102654 | .unused, |
| 100466 | 102655 | .unused, |
| 100467 | 102656 | .unused, |
| ... | ... | @@ -100472,16 +102661,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100472 | 102661 | .dst_temps = .{ .mem, .unused }, |
| 100473 | 102662 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100474 | 102663 | .each = .{ .once = &.{ |
| 100475 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102664 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100476 | 102665 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 100477 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 102666 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 100478 | 102667 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100479 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 100480 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 100481 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100482 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102668 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q0, ._, ._ }, |
| 102669 | .{ ._, ._, .mov, .memsid(.dst0q, .@"8", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 102670 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102671 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100483 | 102672 | } }, |
| 100484 | 102673 | }, .{ |
| 102674 | .required_cc_abi = .win64, |
| 102675 | .required_features = .{ .avx, null, null, null }, |
| 102676 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 102677 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102678 | .patterns = &.{ |
| 102679 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102680 | }, |
| 102681 | .call_frame = .{ .alignment = .@"16" }, |
| 102682 | .extra_temps = .{ |
| 102683 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102684 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102685 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfti" } }, |
| 102686 | .unused, |
| 102687 | .unused, |
| 102688 | .unused, |
| 102689 | .unused, |
| 102690 | .unused, |
| 102691 | .unused, |
| 102692 | .unused, |
| 102693 | .unused, |
| 102694 | }, |
| 102695 | .dst_temps = .{ .mem, .unused }, |
| 102696 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102697 | .each = .{ .once = &.{ |
| 102698 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102699 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 102700 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 102701 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102702 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"8", .tmp0), .tmp1x, ._, ._ }, |
| 102703 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102704 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102705 | } }, |
| 102706 | }, .{ |
| 102707 | .required_cc_abi = .sysv64, |
| 100485 | 102708 | .required_features = .{ .sse2, null, null, null }, |
| 100486 | 102709 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100487 | 102710 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -100490,11 +102713,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100490 | 102713 | }, |
| 100491 | 102714 | .call_frame = .{ .alignment = .@"16" }, |
| 100492 | 102715 | .extra_temps = .{ |
| 100493 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100494 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102716 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102717 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100495 | 102718 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfti" } }, |
| 100496 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 100497 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 102719 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102720 | .unused, |
| 100498 | 102721 | .unused, |
| 100499 | 102722 | .unused, |
| 100500 | 102723 | .unused, |
| ... | ... | @@ -100505,16 +102728,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100505 | 102728 | .dst_temps = .{ .mem, .unused }, |
| 100506 | 102729 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100507 | 102730 | .each = .{ .once = &.{ |
| 100508 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102731 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100509 | 102732 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 100510 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 102733 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 100511 | 102734 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100512 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 100513 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 100514 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100515 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102735 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q0, ._, ._ }, |
| 102736 | .{ ._, ._, .mov, .memsid(.dst0q, .@"8", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 102737 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102738 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100516 | 102739 | } }, |
| 100517 | 102740 | }, .{ |
| 102741 | .required_cc_abi = .win64, |
| 102742 | .required_features = .{ .sse2, null, null, null }, |
| 102743 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 102744 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102745 | .patterns = &.{ |
| 102746 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102747 | }, |
| 102748 | .call_frame = .{ .alignment = .@"16" }, |
| 102749 | .extra_temps = .{ |
| 102750 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102751 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102752 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfti" } }, |
| 102753 | .unused, |
| 102754 | .unused, |
| 102755 | .unused, |
| 102756 | .unused, |
| 102757 | .unused, |
| 102758 | .unused, |
| 102759 | .unused, |
| 102760 | .unused, |
| 102761 | }, |
| 102762 | .dst_temps = .{ .mem, .unused }, |
| 102763 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102764 | .each = .{ .once = &.{ |
| 102765 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102766 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 102767 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 102768 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102769 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"8", .tmp0), .tmp1x, ._, ._ }, |
| 102770 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102771 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102772 | } }, |
| 102773 | }, .{ |
| 102774 | .required_cc_abi = .sysv64, |
| 100518 | 102775 | .required_features = .{ .sse2, null, null, null }, |
| 100519 | 102776 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100520 | 102777 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -100523,11 +102780,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100523 | 102780 | }, |
| 100524 | 102781 | .call_frame = .{ .alignment = .@"16" }, |
| 100525 | 102782 | .extra_temps = .{ |
| 100526 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100527 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102783 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102784 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100528 | 102785 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfti" } }, |
| 100529 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 100530 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 102786 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102787 | .unused, |
| 100531 | 102788 | .unused, |
| 100532 | 102789 | .unused, |
| 100533 | 102790 | .unused, |
| ... | ... | @@ -100538,16 +102795,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100538 | 102795 | .dst_temps = .{ .mem, .unused }, |
| 100539 | 102796 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100540 | 102797 | .each = .{ .once = &.{ |
| 100541 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102798 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 100542 | 102799 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 100543 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 102800 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 100544 | 102801 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 100545 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 100546 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 100547 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100548 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102802 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q0, ._, ._ }, |
| 102803 | .{ ._, ._, .mov, .memsid(.dst0q, .@"8", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 102804 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102805 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102806 | } }, |
| 102807 | }, .{ |
| 102808 | .required_cc_abi = .win64, |
| 102809 | .required_features = .{ .sse2, null, null, null }, |
| 102810 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 102811 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102812 | .patterns = &.{ |
| 102813 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102814 | }, |
| 102815 | .call_frame = .{ .alignment = .@"16" }, |
| 102816 | .extra_temps = .{ |
| 102817 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102818 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102819 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfti" } }, |
| 102820 | .unused, |
| 102821 | .unused, |
| 102822 | .unused, |
| 102823 | .unused, |
| 102824 | .unused, |
| 102825 | .unused, |
| 102826 | .unused, |
| 102827 | .unused, |
| 102828 | }, |
| 102829 | .dst_temps = .{ .mem, .unused }, |
| 102830 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102831 | .each = .{ .once = &.{ |
| 102832 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102833 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 102834 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 102835 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102836 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"8", .tmp0), .tmp1x, ._, ._ }, |
| 102837 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102838 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100549 | 102839 | } }, |
| 100550 | 102840 | }, .{ |
| 102841 | .required_cc_abi = .sysv64, |
| 100551 | 102842 | .required_features = .{ .sse, null, null, null }, |
| 100552 | 102843 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100553 | 102844 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -100556,12 +102847,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100556 | 102847 | }, |
| 100557 | 102848 | .call_frame = .{ .alignment = .@"16" }, |
| 100558 | 102849 | .extra_temps = .{ |
| 100559 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100560 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102850 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102851 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100561 | 102852 | .{ .type = .f32, .kind = .mem }, |
| 100562 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102853 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100563 | 102854 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfti" } }, |
| 100564 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 102855 | .unused, |
| 100565 | 102856 | .unused, |
| 100566 | 102857 | .unused, |
| 100567 | 102858 | .unused, |
| ... | ... | @@ -100571,17 +102862,52 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100571 | 102862 | .dst_temps = .{ .mem, .unused }, |
| 100572 | 102863 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100573 | 102864 | .each = .{ .once = &.{ |
| 100574 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100575 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102865 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102866 | .{ .@"0:", ._, .movzx, .tmp1d0, .memi(.src0w, .tmp0), ._, ._ }, |
| 102867 | .{ ._, ._, .mov, .tmp2d, .tmp1d0, ._, ._ }, |
| 102868 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 102869 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102870 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q0, ._, ._ }, |
| 102871 | .{ ._, ._, .mov, .memsid(.dst0q, .@"8", .tmp0, 8), .tmp1q1, ._, ._ }, |
| 102872 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102873 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102874 | } }, |
| 102875 | }, .{ |
| 102876 | .required_cc_abi = .win64, |
| 102877 | .required_features = .{ .sse, null, null, null }, |
| 102878 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 102879 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102880 | .patterns = &.{ |
| 102881 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102882 | }, |
| 102883 | .call_frame = .{ .alignment = .@"16" }, |
| 102884 | .extra_temps = .{ |
| 102885 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102886 | .{ .type = .f16, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102887 | .{ .type = .f32, .kind = .mem }, |
| 102888 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102889 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfti" } }, |
| 102890 | .unused, |
| 102891 | .unused, |
| 102892 | .unused, |
| 102893 | .unused, |
| 102894 | .unused, |
| 102895 | .unused, |
| 102896 | }, |
| 102897 | .dst_temps = .{ .mem, .unused }, |
| 102898 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102899 | .each = .{ .once = &.{ |
| 102900 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102901 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 100576 | 102902 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 100577 | 102903 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 100578 | 102904 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 100579 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 100580 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 100581 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100582 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102905 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 102906 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102907 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100583 | 102908 | } }, |
| 100584 | 102909 | }, .{ |
| 102910 | .required_cc_abi = .sysv64, |
| 100585 | 102911 | .required_features = .{ .sse, null, null, null }, |
| 100586 | 102912 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 100587 | 102913 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -100590,12 +102916,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100590 | 102916 | }, |
| 100591 | 102917 | .call_frame = .{ .alignment = .@"16" }, |
| 100592 | 102918 | .extra_temps = .{ |
| 100593 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 100594 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102919 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102920 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100595 | 102921 | .{ .type = .f32, .kind = .mem }, |
| 100596 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102922 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 100597 | 102923 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfti" } }, |
| 100598 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 102924 | .unused, |
| 100599 | 102925 | .unused, |
| 100600 | 102926 | .unused, |
| 100601 | 102927 | .unused, |
| ... | ... | @@ -100605,15 +102931,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100605 | 102931 | .dst_temps = .{ .mem, .unused }, |
| 100606 | 102932 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100607 | 102933 | .each = .{ .once = &.{ |
| 100608 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100609 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 102934 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102935 | .{ .@"0:", ._, .movzx, .tmp1d0, .memi(.src0w, .tmp0), ._, ._ }, |
| 102936 | .{ ._, ._, .mov, .tmp2d, .tmp1d0, ._, ._ }, |
| 102937 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 102938 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 102939 | .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp1q0, ._, ._ }, |
| 102940 | .{ ._, ._, .mov, .memsid(.dst0q, .@"8", .tmp0, 8), .tmp1q1, ._, ._ }, |
| 102941 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102942 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102943 | } }, |
| 102944 | }, .{ |
| 102945 | .required_cc_abi = .win64, |
| 102946 | .required_features = .{ .sse, null, null, null }, |
| 102947 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any, .any }, |
| 102948 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 102949 | .patterns = &.{ |
| 102950 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102951 | }, |
| 102952 | .call_frame = .{ .alignment = .@"16" }, |
| 102953 | .extra_temps = .{ |
| 102954 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102955 | .{ .type = .f16, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102956 | .{ .type = .f32, .kind = .mem }, |
| 102957 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102958 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfti" } }, |
| 102959 | .unused, |
| 102960 | .unused, |
| 102961 | .unused, |
| 102962 | .unused, |
| 102963 | .unused, |
| 102964 | .unused, |
| 102965 | }, |
| 102966 | .dst_temps = .{ .mem, .unused }, |
| 102967 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102968 | .each = .{ .once = &.{ |
| 102969 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 102970 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 100610 | 102971 | .{ ._, ._, .mov, .tmp2d, .tmp1d, ._, ._ }, |
| 100611 | 102972 | .{ ._, ._ss, .mov, .tmp3x, .tmp2d, ._, ._ }, |
| 100612 | 102973 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 100613 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 100614 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"8", .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 100615 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100616 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 102974 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 102975 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 102976 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100617 | 102977 | } }, |
| 100618 | 102978 | }, .{ |
| 100619 | 102979 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -100624,11 +102984,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100624 | 102984 | }, |
| 100625 | 102985 | .call_frame = .{ .alignment = .@"16" }, |
| 100626 | 102986 | .extra_temps = .{ |
| 100627 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102987 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 100628 | 102988 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100629 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100630 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100631 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 102989 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102990 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 102991 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 100632 | 102992 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfei" } }, |
| 100633 | 102993 | .unused, |
| 100634 | 102994 | .unused, |
| ... | ... | @@ -100639,16 +102999,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100639 | 102999 | .dst_temps = .{ .mem, .unused }, |
| 100640 | 103000 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100641 | 103001 | .each = .{ .once = &.{ |
| 100642 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100643 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103002 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 103003 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 100644 | 103004 | .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ }, |
| 100645 | 103005 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100646 | 103006 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100647 | | .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 103007 | .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memi(.src0w, .tmp0), .ui(0) }, |
| 100648 | 103008 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100649 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100650 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100651 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103009 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 103010 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 103011 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100652 | 103012 | } }, |
| 100653 | 103013 | }, .{ |
| 100654 | 103014 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -100659,11 +103019,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100659 | 103019 | }, |
| 100660 | 103020 | .call_frame = .{ .alignment = .@"16" }, |
| 100661 | 103021 | .extra_temps = .{ |
| 100662 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103022 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 100663 | 103023 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100664 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100665 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100666 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 103024 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103025 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 103026 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 100667 | 103027 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfei" } }, |
| 100668 | 103028 | .unused, |
| 100669 | 103029 | .unused, |
| ... | ... | @@ -100674,16 +103034,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100674 | 103034 | .dst_temps = .{ .mem, .unused }, |
| 100675 | 103035 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100676 | 103036 | .each = .{ .once = &.{ |
| 100677 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100678 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103037 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 103038 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 100679 | 103039 | .{ .@"0:", .v_ps, .xor, .tmp4x, .tmp4x, .tmp4x, ._ }, |
| 100680 | 103040 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100681 | 103041 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100682 | | .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 103042 | .{ ._, .vp_w, .insr, .tmp4x, .tmp4x, .memi(.src0w, .tmp0), .ui(0) }, |
| 100683 | 103043 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100684 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100685 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100686 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103044 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 103045 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 103046 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100687 | 103047 | } }, |
| 100688 | 103048 | }, .{ |
| 100689 | 103049 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -100694,11 +103054,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100694 | 103054 | }, |
| 100695 | 103055 | .call_frame = .{ .alignment = .@"16" }, |
| 100696 | 103056 | .extra_temps = .{ |
| 100697 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103057 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 100698 | 103058 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100699 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100700 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100701 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 103059 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103060 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 103061 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 100702 | 103062 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfei" } }, |
| 100703 | 103063 | .unused, |
| 100704 | 103064 | .unused, |
| ... | ... | @@ -100709,16 +103069,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100709 | 103069 | .dst_temps = .{ .mem, .unused }, |
| 100710 | 103070 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100711 | 103071 | .each = .{ .once = &.{ |
| 100712 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100713 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103072 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 103073 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 100714 | 103074 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| 100715 | 103075 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100716 | 103076 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100717 | | .{ ._, .p_w, .insr, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 103077 | .{ ._, .p_w, .insr, .tmp4x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 100718 | 103078 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100719 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100720 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100721 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103079 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 103080 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 103081 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100722 | 103082 | } }, |
| 100723 | 103083 | }, .{ |
| 100724 | 103084 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -100729,11 +103089,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100729 | 103089 | }, |
| 100730 | 103090 | .call_frame = .{ .alignment = .@"16" }, |
| 100731 | 103091 | .extra_temps = .{ |
| 100732 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103092 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 100733 | 103093 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100734 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100735 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 100736 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 103094 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103095 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 103096 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 100737 | 103097 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfei" } }, |
| 100738 | 103098 | .unused, |
| 100739 | 103099 | .unused, |
| ... | ... | @@ -100744,16 +103104,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100744 | 103104 | .dst_temps = .{ .mem, .unused }, |
| 100745 | 103105 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100746 | 103106 | .each = .{ .once = &.{ |
| 100747 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100748 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 103107 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 103108 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 100749 | 103109 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| 100750 | 103110 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100751 | 103111 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100752 | | .{ ._, .p_w, .insr, .tmp4x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 103112 | .{ ._, .p_w, .insr, .tmp4x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 100753 | 103113 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 100754 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100755 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100756 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103114 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 103115 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 103116 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100757 | 103117 | } }, |
| 100758 | 103118 | }, .{ |
| 100759 | 103119 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -100764,12 +103124,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100764 | 103124 | }, |
| 100765 | 103125 | .call_frame = .{ .alignment = .@"16" }, |
| 100766 | 103126 | .extra_temps = .{ |
| 100767 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103127 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 100768 | 103128 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100769 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100770 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103129 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103130 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 100771 | 103131 | .{ .type = .f32, .kind = .mem }, |
| 100772 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 103132 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 100773 | 103133 | .{ .type = .usize, .kind = .{ .extern_func = "__fixhfei" } }, |
| 100774 | 103134 | .unused, |
| 100775 | 103135 | .unused, |
| ... | ... | @@ -100779,17 +103139,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100779 | 103139 | .dst_temps = .{ .mem, .unused }, |
| 100780 | 103140 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100781 | 103141 | .each = .{ .once = &.{ |
| 100782 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100783 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100784 | | .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103142 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 103143 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 103144 | .{ .@"0:", ._, .movzx, .tmp3d, .memi(.src0w, .tmp0), ._, ._ }, |
| 100785 | 103145 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100786 | 103146 | .{ ._, ._, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 100787 | 103147 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100788 | 103148 | .{ ._, ._ss, .mov, .tmp5x, .tmp4d, ._, ._ }, |
| 100789 | 103149 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 100790 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100791 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100792 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103150 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 103151 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 103152 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100793 | 103153 | } }, |
| 100794 | 103154 | }, .{ |
| 100795 | 103155 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -100800,12 +103160,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100800 | 103160 | }, |
| 100801 | 103161 | .call_frame = .{ .alignment = .@"16" }, |
| 100802 | 103162 | .extra_temps = .{ |
| 100803 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103163 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 100804 | 103164 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 100805 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 100806 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 103165 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103166 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 100807 | 103167 | .{ .type = .f32, .kind = .mem }, |
| 100808 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 103168 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 100809 | 103169 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunshfei" } }, |
| 100810 | 103170 | .unused, |
| 100811 | 103171 | .unused, |
| ... | ... | @@ -100815,17 +103175,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100815 | 103175 | .dst_temps = .{ .mem, .unused }, |
| 100816 | 103176 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100817 | 103177 | .each = .{ .once = &.{ |
| 100818 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 100819 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 100820 | | .{ .@"0:", ._, .movzx, .tmp3d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103178 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 103179 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 103180 | .{ .@"0:", ._, .movzx, .tmp3d, .memi(.src0w, .tmp0), ._, ._ }, |
| 100821 | 103181 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 100822 | 103182 | .{ ._, ._, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 100823 | 103183 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 100824 | 103184 | .{ ._, ._ss, .mov, .tmp5x, .tmp4d, ._, ._ }, |
| 100825 | 103185 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 100826 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 100827 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 100828 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103186 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 103187 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 103188 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 100829 | 103189 | } }, |
| 100830 | 103190 | }, .{ |
| 100831 | 103191 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -100940,11 +103300,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100940 | 103300 | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, |
| 100941 | 103301 | } }, |
| 100942 | 103302 | }, .{ |
| 100943 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103303 | .required_cc_abi = .sysv64, |
| 103304 | .required_features = .{ .sse, null, null, null }, |
| 100944 | 103305 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100945 | 103306 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 100946 | 103307 | .patterns = &.{ |
| 100947 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103308 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 100948 | 103309 | }, |
| 100949 | 103310 | .call_frame = .{ .alignment = .@"16" }, |
| 100950 | 103311 | .extra_temps = .{ |
| ... | ... | @@ -100960,17 +103321,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100960 | 103321 | .unused, |
| 100961 | 103322 | .unused, |
| 100962 | 103323 | }, |
| 100963 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 103324 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 100964 | 103325 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100965 | 103326 | .each = .{ .once = &.{ |
| 100966 | 103327 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 100967 | 103328 | } }, |
| 100968 | 103329 | }, .{ |
| 100969 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103330 | .required_cc_abi = .win64, |
| 103331 | .required_features = .{ .sse, null, null, null }, |
| 103332 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 103333 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 103334 | .patterns = &.{ |
| 103335 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 103336 | }, |
| 103337 | .call_frame = .{ .alignment = .@"16" }, |
| 103338 | .extra_temps = .{ |
| 103339 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfti" } }, |
| 103340 | .unused, |
| 103341 | .unused, |
| 103342 | .unused, |
| 103343 | .unused, |
| 103344 | .unused, |
| 103345 | .unused, |
| 103346 | .unused, |
| 103347 | .unused, |
| 103348 | .unused, |
| 103349 | .unused, |
| 103350 | }, |
| 103351 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 103352 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103353 | .each = .{ .once = &.{ |
| 103354 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103355 | } }, |
| 103356 | }, .{ |
| 103357 | .required_cc_abi = .sysv64, |
| 103358 | .required_features = .{ .sse, null, null, null }, |
| 100970 | 103359 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100971 | 103360 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 100972 | 103361 | .patterns = &.{ |
| 100973 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103362 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 100974 | 103363 | }, |
| 100975 | 103364 | .call_frame = .{ .alignment = .@"16" }, |
| 100976 | 103365 | .extra_temps = .{ |
| ... | ... | @@ -100986,17 +103375,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 100986 | 103375 | .unused, |
| 100987 | 103376 | .unused, |
| 100988 | 103377 | }, |
| 100989 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 103378 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 100990 | 103379 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 100991 | 103380 | .each = .{ .once = &.{ |
| 100992 | 103381 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 100993 | 103382 | } }, |
| 100994 | 103383 | }, .{ |
| 100995 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 103384 | .required_cc_abi = .win64, |
| 103385 | .required_features = .{ .sse, null, null, null }, |
| 103386 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 103387 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 103388 | .patterns = &.{ |
| 103389 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 103390 | }, |
| 103391 | .call_frame = .{ .alignment = .@"16" }, |
| 103392 | .extra_temps = .{ |
| 103393 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 103394 | .unused, |
| 103395 | .unused, |
| 103396 | .unused, |
| 103397 | .unused, |
| 103398 | .unused, |
| 103399 | .unused, |
| 103400 | .unused, |
| 103401 | .unused, |
| 103402 | .unused, |
| 103403 | .unused, |
| 103404 | }, |
| 103405 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 103406 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103407 | .each = .{ .once = &.{ |
| 103408 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103409 | } }, |
| 103410 | }, .{ |
| 103411 | .required_cc_abi = .sysv64, |
| 103412 | .required_features = .{ .avx, null, null, null }, |
| 100996 | 103413 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 100997 | 103414 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 100998 | 103415 | .patterns = &.{ |
| 100999 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103416 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 101000 | 103417 | }, |
| 101001 | 103418 | .call_frame = .{ .alignment = .@"16" }, |
| 101002 | 103419 | .extra_temps = .{ |
| ... | ... | @@ -101024,7 +103441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101024 | 103441 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| 101025 | 103442 | .{ ._, ._, .xor, .tmp4q, .tmp0q, ._, ._ }, |
| 101026 | 103443 | .{ ._, ._, .sub, .tmp1q, .tmp0q, ._, ._ }, |
| 101027 | | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 103444 | .{ ._, ._, .mov, .mem(.dst0q), .tmp1q, ._, ._ }, |
| 101028 | 103445 | .{ ._, ._, .sbb, .tmp4q, .tmp0q, ._, ._ }, |
| 101029 | 103446 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp4q, ._, ._ }, |
| 101030 | 103447 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, |
| ... | ... | @@ -101033,11 +103450,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101033 | 103450 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 101034 | 103451 | } }, |
| 101035 | 103452 | }, .{ |
| 101036 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 103453 | .required_cc_abi = .win64, |
| 103454 | .required_features = .{ .avx, null, null, null }, |
| 103455 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 103456 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103457 | .patterns = &.{ |
| 103458 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 103459 | }, |
| 103460 | .call_frame = .{ .alignment = .@"16" }, |
| 103461 | .extra_temps = .{ |
| 103462 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 103463 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 103464 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, |
| 103465 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 103466 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 103467 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103468 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 103469 | .unused, |
| 103470 | .unused, |
| 103471 | .unused, |
| 103472 | .unused, |
| 103473 | }, |
| 103474 | .dst_temps = .{ .mem, .unused }, |
| 103475 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103476 | .each = .{ .once = &.{ |
| 103477 | .{ ._, .v_d, .mov, .tmp0d, .src0x, ._, ._ }, |
| 103478 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 103479 | .{ ._, ._d, .movsx, .tmp0q, .tmp0d, ._, ._ }, |
| 103480 | .{ ._, .v_ps, .@"and", .src0x, .src0x, .lea(.tmp1x), ._ }, |
| 103481 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 103482 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103483 | .{ ._, .v_q, .mov, .tmp1q, .src0x, ._, ._ }, |
| 103484 | .{ ._, .vp_q, .extr, .tmp4q, .src0x, .ui(1), ._ }, |
| 103485 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| 103486 | .{ ._, ._, .xor, .tmp4q, .tmp0q, ._, ._ }, |
| 103487 | .{ ._, ._, .sub, .tmp1q, .tmp0q, ._, ._ }, |
| 103488 | .{ ._, ._, .mov, .mem(.dst0q), .tmp1q, ._, ._ }, |
| 103489 | .{ ._, ._, .sbb, .tmp4q, .tmp0q, ._, ._ }, |
| 103490 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp4q, ._, ._ }, |
| 103491 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, |
| 103492 | .{ ._, ._, .lea, .tmp5p, .memd(.dst0, 16), ._, ._ }, |
| 103493 | .{ ._, ._, .mov, .tmp6d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 103494 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 103495 | } }, |
| 103496 | }, .{ |
| 103497 | .required_cc_abi = .sysv64, |
| 103498 | .required_features = .{ .sse2, null, null, null }, |
| 101037 | 103499 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 101038 | 103500 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101039 | 103501 | .patterns = &.{ |
| 101040 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103502 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 101041 | 103503 | }, |
| 101042 | 103504 | .call_frame = .{ .alignment = .@"16" }, |
| 101043 | 103505 | .extra_temps = .{ |
| ... | ... | @@ -101065,7 +103527,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101065 | 103527 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| 101066 | 103528 | .{ ._, ._, .xor, .tmp4q, .tmp0q, ._, ._ }, |
| 101067 | 103529 | .{ ._, ._, .sub, .tmp1q, .tmp0q, ._, ._ }, |
| 101068 | | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 103530 | .{ ._, ._, .mov, .mem(.dst0q), .tmp1q, ._, ._ }, |
| 101069 | 103531 | .{ ._, ._, .sbb, .tmp4q, .tmp0q, ._, ._ }, |
| 101070 | 103532 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp4q, ._, ._ }, |
| 101071 | 103533 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, |
| ... | ... | @@ -101074,7 +103536,97 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101074 | 103536 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 101075 | 103537 | } }, |
| 101076 | 103538 | }, .{ |
| 101077 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103539 | .required_cc_abi = .win64, |
| 103540 | .required_features = .{ .sse4_1, null, null, null }, |
| 103541 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 103542 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103543 | .patterns = &.{ |
| 103544 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 103545 | }, |
| 103546 | .call_frame = .{ .alignment = .@"16" }, |
| 103547 | .extra_temps = .{ |
| 103548 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 103549 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 103550 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, |
| 103551 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 103552 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 103553 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103554 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 103555 | .unused, |
| 103556 | .unused, |
| 103557 | .unused, |
| 103558 | .unused, |
| 103559 | }, |
| 103560 | .dst_temps = .{ .mem, .unused }, |
| 103561 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103562 | .each = .{ .once = &.{ |
| 103563 | .{ ._, ._d, .mov, .tmp0d, .src0x, ._, ._ }, |
| 103564 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 103565 | .{ ._, ._d, .movsx, .tmp0q, .tmp0d, ._, ._ }, |
| 103566 | .{ ._, ._ps, .@"and", .src0x, .lea(.tmp1x), ._, ._ }, |
| 103567 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 103568 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103569 | .{ ._, ._q, .mov, .tmp1q, .src0x, ._, ._ }, |
| 103570 | .{ ._, .p_q, .extr, .tmp4q, .src0x, .ui(1), ._ }, |
| 103571 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| 103572 | .{ ._, ._, .xor, .tmp4q, .tmp0q, ._, ._ }, |
| 103573 | .{ ._, ._, .sub, .tmp1q, .tmp0q, ._, ._ }, |
| 103574 | .{ ._, ._, .mov, .mem(.dst0q), .tmp1q, ._, ._ }, |
| 103575 | .{ ._, ._, .sbb, .tmp4q, .tmp0q, ._, ._ }, |
| 103576 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp4q, ._, ._ }, |
| 103577 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, |
| 103578 | .{ ._, ._, .lea, .tmp5p, .memd(.dst0, 16), ._, ._ }, |
| 103579 | .{ ._, ._, .mov, .tmp6d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 103580 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 103581 | } }, |
| 103582 | }, .{ |
| 103583 | .required_cc_abi = .win64, |
| 103584 | .required_features = .{ .sse2, null, null, null }, |
| 103585 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 103586 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103587 | .patterns = &.{ |
| 103588 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 103589 | }, |
| 103590 | .call_frame = .{ .alignment = .@"16" }, |
| 103591 | .extra_temps = .{ |
| 103592 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 103593 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 103594 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, |
| 103595 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 103596 | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 103597 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103598 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 103599 | .unused, |
| 103600 | .unused, |
| 103601 | .unused, |
| 103602 | .unused, |
| 103603 | }, |
| 103604 | .dst_temps = .{ .mem, .unused }, |
| 103605 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103606 | .each = .{ .once = &.{ |
| 103607 | .{ ._, ._d, .mov, .tmp0d, .src0x, ._, ._ }, |
| 103608 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 103609 | .{ ._, ._d, .movsx, .tmp0q, .tmp0d, ._, ._ }, |
| 103610 | .{ ._, ._ps, .@"and", .src0x, .lea(.tmp1x), ._, ._ }, |
| 103611 | .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ }, |
| 103612 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 103613 | .{ ._, ._q, .mov, .tmp1q, .src0x, ._, ._ }, |
| 103614 | .{ ._, .p_d, .shuf, .src0x, .src0x, .ui(0b11_10), ._ }, |
| 103615 | .{ ._, ._q, .mov, .tmp4q, .src0x, ._, ._ }, |
| 103616 | .{ ._, ._, .xor, .tmp1q, .tmp0q, ._, ._ }, |
| 103617 | .{ ._, ._, .xor, .tmp4q, .tmp0q, ._, ._ }, |
| 103618 | .{ ._, ._, .sub, .tmp1q, .tmp0q, ._, ._ }, |
| 103619 | .{ ._, ._, .mov, .mem(.dst0q), .tmp1q, ._, ._ }, |
| 103620 | .{ ._, ._, .sbb, .tmp4q, .tmp0q, ._, ._ }, |
| 103621 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp4q, ._, ._ }, |
| 103622 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, |
| 103623 | .{ ._, ._, .lea, .tmp5p, .memd(.dst0, 16), ._, ._ }, |
| 103624 | .{ ._, ._, .mov, .tmp6d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 103625 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 103626 | } }, |
| 103627 | }, .{ |
| 103628 | .required_cc_abi = .sysv64, |
| 103629 | .required_features = .{ .sse, null, null, null }, |
| 101078 | 103630 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 101079 | 103631 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101080 | 103632 | .patterns = &.{ |
| ... | ... | @@ -101082,7 +103634,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101082 | 103634 | }, |
| 101083 | 103635 | .call_frame = .{ .alignment = .@"16" }, |
| 101084 | 103636 | .extra_temps = .{ |
| 101085 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 103637 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101086 | 103638 | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 101087 | 103639 | .{ .type = .vector_4_f32, .kind = .{ .smax_mem = .{} } }, |
| 101088 | 103640 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| ... | ... | @@ -101106,7 +103658,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101106 | 103658 | .{ ._, ._, .xor, .tmp1q, .tmp4q, ._, ._ }, |
| 101107 | 103659 | .{ ._, ._, .xor, .tmp5q, .tmp4q, ._, ._ }, |
| 101108 | 103660 | .{ ._, ._, .sub, .tmp1q, .tmp4q, ._, ._ }, |
| 101109 | | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 103661 | .{ ._, ._, .mov, .mem(.dst0q), .tmp1q, ._, ._ }, |
| 101110 | 103662 | .{ ._, ._, .sbb, .tmp5q, .tmp4q, ._, ._ }, |
| 101111 | 103663 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp5q, ._, ._ }, |
| 101112 | 103664 | .{ ._, ._, .sbb, .tmp1q, .tmp1q, ._, ._ }, |
| ... | ... | @@ -101115,17 +103667,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101115 | 103667 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 101116 | 103668 | } }, |
| 101117 | 103669 | }, .{ |
| 101118 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 103670 | .required_cc_abi = .win64, |
| 103671 | .required_features = .{ .avx, null, null, null }, |
| 101119 | 103672 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 101120 | 103673 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 101121 | 103674 | .patterns = &.{ |
| 101122 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 103675 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 101123 | 103676 | }, |
| 101124 | 103677 | .call_frame = .{ .alignment = .@"16" }, |
| 101125 | 103678 | .extra_temps = .{ |
| 101126 | 103679 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 101127 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 101128 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 103680 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 101129 | 103681 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 101130 | 103682 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 101131 | 103683 | .unused, |
| ... | ... | @@ -101134,16 +103686,113 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101134 | 103686 | .unused, |
| 101135 | 103687 | .unused, |
| 101136 | 103688 | .unused, |
| 103689 | .unused, |
| 101137 | 103690 | }, |
| 101138 | 103691 | .dst_temps = .{ .mem, .unused }, |
| 101139 | 103692 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101140 | 103693 | .each = .{ .once = &.{ |
| 101141 | 103694 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 101142 | | .{ ._, ._, .mov, .dst0q, .tmp1q, ._, ._ }, |
| 101143 | | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp2q, ._, ._ }, |
| 103695 | .{ ._, .v_dqa, .mov, .mem(.dst0x), .src0x, ._, ._ }, |
| 101144 | 103696 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 101145 | | .{ ._, ._, .lea, .tmp3p, .memd(.dst0, 16), ._, ._ }, |
| 101146 | | .{ ._, ._, .mov, .tmp4d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 103697 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 16), ._, ._ }, |
| 103698 | .{ ._, ._, .mov, .tmp3d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 103699 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 103700 | } }, |
| 103701 | }, .{ |
| 103702 | .required_cc_abi = .win64, |
| 103703 | .required_features = .{ .sse2, null, null, null }, |
| 103704 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 103705 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103706 | .patterns = &.{ |
| 103707 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 103708 | }, |
| 103709 | .call_frame = .{ .alignment = .@"16" }, |
| 103710 | .extra_temps = .{ |
| 103711 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 103712 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103713 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103714 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 103715 | .unused, |
| 103716 | .unused, |
| 103717 | .unused, |
| 103718 | .unused, |
| 103719 | .unused, |
| 103720 | .unused, |
| 103721 | .unused, |
| 103722 | }, |
| 103723 | .dst_temps = .{ .mem, .unused }, |
| 103724 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103725 | .each = .{ .once = &.{ |
| 103726 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103727 | .{ ._, ._dqa, .mov, .mem(.dst0x), .src0x, ._, ._ }, |
| 103728 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 103729 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 16), ._, ._ }, |
| 103730 | .{ ._, ._, .mov, .tmp3d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 103731 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 103732 | } }, |
| 103733 | }, .{ |
| 103734 | .required_cc_abi = .sysv64, |
| 103735 | .required_features = .{ .sse, null, null, null }, |
| 103736 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 103737 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103738 | .patterns = &.{ |
| 103739 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 103740 | }, |
| 103741 | .call_frame = .{ .alignment = .@"16" }, |
| 103742 | .extra_temps = .{ |
| 103743 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 103744 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103745 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103746 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 103747 | .unused, |
| 103748 | .unused, |
| 103749 | .unused, |
| 103750 | .unused, |
| 103751 | .unused, |
| 103752 | .unused, |
| 103753 | .unused, |
| 103754 | }, |
| 103755 | .dst_temps = .{ .mem, .unused }, |
| 103756 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103757 | .each = .{ .once = &.{ |
| 103758 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103759 | .{ ._, ._, .mov, .mem(.dst0q), .tmp1q0, ._, ._ }, |
| 103760 | .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp1q1, ._, ._ }, |
| 103761 | .{ ._, ._, .xor, .tmp1d0, .tmp1d0, ._, ._ }, |
| 103762 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 16), ._, ._ }, |
| 103763 | .{ ._, ._, .mov, .tmp3d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 103764 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 103765 | } }, |
| 103766 | }, .{ |
| 103767 | .required_cc_abi = .win64, |
| 103768 | .required_features = .{ .sse2, null, null, null }, |
| 103769 | .src_constraints = .{ .{ .float = .dword }, .any, .any }, |
| 103770 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 103771 | .patterns = &.{ |
| 103772 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 103773 | }, |
| 103774 | .call_frame = .{ .alignment = .@"16" }, |
| 103775 | .extra_temps = .{ |
| 103776 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 103777 | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 103778 | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 103779 | .{ .type = .u32, .kind = .{ .reg = .ecx } }, |
| 103780 | .unused, |
| 103781 | .unused, |
| 103782 | .unused, |
| 103783 | .unused, |
| 103784 | .unused, |
| 103785 | .unused, |
| 103786 | .unused, |
| 103787 | }, |
| 103788 | .dst_temps = .{ .mem, .unused }, |
| 103789 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103790 | .each = .{ .once = &.{ |
| 103791 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 103792 | .{ ._, ._ps, .mova, .mem(.dst0x), .src0x, ._, ._ }, |
| 103793 | .{ ._, ._, .xor, .tmp1d, .tmp1d, ._, ._ }, |
| 103794 | .{ ._, ._, .lea, .tmp2p, .memd(.dst0, 16), ._, ._ }, |
| 103795 | .{ ._, ._, .mov, .tmp3d, .sia(-2, .dst0, .add_size_div_8), ._, ._ }, |
| 101147 | 103796 | .{ ._, .@"rep _sq", .sto, ._, ._, ._, ._ }, |
| 101148 | 103797 | } }, |
| 101149 | 103798 | }, .{ |
| ... | ... | @@ -101208,7 +103857,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101208 | 103857 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101209 | 103858 | }, |
| 101210 | 103859 | .extra_temps = .{ |
| 101211 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103860 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101212 | 103861 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 101213 | 103862 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 101214 | 103863 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| ... | ... | @@ -101225,12 +103874,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101225 | 103874 | .each = .{ .once = &.{ |
| 101226 | 103875 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 101227 | 103876 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 101228 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101229 | | .{ .@"0:", .v_, .cvttps2dq, .tmp3x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103877 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_size), ._, ._ }, |
| 103878 | .{ .@"0:", .v_, .cvttps2dq, .tmp3x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 101230 | 103879 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 101231 | | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 101232 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101233 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103880 | .{ ._, .v_d, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 103881 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 103882 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101234 | 103883 | } }, |
| 101235 | 103884 | }, .{ |
| 101236 | 103885 | .required_features = .{ .ssse3, null, null, null }, |
| ... | ... | @@ -101240,7 +103889,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101240 | 103889 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101241 | 103890 | }, |
| 101242 | 103891 | .extra_temps = .{ |
| 101243 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103892 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101244 | 103893 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 101245 | 103894 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 101246 | 103895 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| ... | ... | @@ -101257,12 +103906,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101257 | 103906 | .each = .{ .once = &.{ |
| 101258 | 103907 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 101259 | 103908 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 101260 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101261 | | .{ .@"0:", ._, .cvttps2dq, .tmp3x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103909 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_size), ._, ._ }, |
| 103910 | .{ .@"0:", ._, .cvttps2dq, .tmp3x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 101262 | 103911 | .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, |
| 101263 | | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 101264 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101265 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103912 | .{ ._, ._d, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 103913 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 103914 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101266 | 103915 | } }, |
| 101267 | 103916 | }, .{ |
| 101268 | 103917 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -101272,7 +103921,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101272 | 103921 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101273 | 103922 | }, |
| 101274 | 103923 | .extra_temps = .{ |
| 101275 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103924 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101276 | 103925 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 101277 | 103926 | .unused, |
| 101278 | 103927 | .unused, |
| ... | ... | @@ -101287,11 +103936,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101287 | 103936 | .dst_temps = .{ .mem, .unused }, |
| 101288 | 103937 | .clobbers = .{ .eflags = true }, |
| 101289 | 103938 | .each = .{ .once = &.{ |
| 101290 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101291 | | .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101292 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 101293 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 101294 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 103939 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 103940 | .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsi(.src0d, .@"4", .tmp0), ._, ._ }, |
| 103941 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp1b, ._, ._ }, |
| 103942 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 103943 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101295 | 103944 | } }, |
| 101296 | 103945 | }, .{ |
| 101297 | 103946 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -101301,7 +103950,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101301 | 103950 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101302 | 103951 | }, |
| 101303 | 103952 | .extra_temps = .{ |
| 101304 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103953 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101305 | 103954 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 101306 | 103955 | .unused, |
| 101307 | 103956 | .unused, |
| ... | ... | @@ -101316,11 +103965,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101316 | 103965 | .dst_temps = .{ .mem, .unused }, |
| 101317 | 103966 | .clobbers = .{ .eflags = true }, |
| 101318 | 103967 | .each = .{ .once = &.{ |
| 101319 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101320 | | .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 101321 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 101322 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 101323 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 103968 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 103969 | .{ .@"0:", ._, .cvttss2si, .tmp1d, .memsi(.src0d, .@"4", .tmp0), ._, ._ }, |
| 103970 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp1b, ._, ._ }, |
| 103971 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 103972 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 101324 | 103973 | } }, |
| 101325 | 103974 | }, .{ |
| 101326 | 103975 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | ... | @@ -101331,10 +103980,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101331 | 103980 | }, |
| 101332 | 103981 | .call_frame = .{ .alignment = .@"16" }, |
| 101333 | 103982 | .extra_temps = .{ |
| 101334 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101335 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 103983 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103984 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101336 | 103985 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfsi" } }, |
| 101337 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 103986 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101338 | 103987 | .unused, |
| 101339 | 103988 | .unused, |
| 101340 | 103989 | .unused, |
| ... | ... | @@ -101346,12 +103995,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101346 | 103995 | .dst_temps = .{ .mem, .unused }, |
| 101347 | 103996 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101348 | 103997 | .each = .{ .once = &.{ |
| 101349 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101350 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103998 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 103999 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsi(.src0d, .@"4", .tmp0), ._, ._ }, |
| 101351 | 104000 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101352 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 101353 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 101354 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104001 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 104002 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 104003 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101355 | 104004 | } }, |
| 101356 | 104005 | }, .{ |
| 101357 | 104006 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -101362,10 +104011,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101362 | 104011 | }, |
| 101363 | 104012 | .call_frame = .{ .alignment = .@"16" }, |
| 101364 | 104013 | .extra_temps = .{ |
| 101365 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101366 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104014 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104015 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101367 | 104016 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfsi" } }, |
| 101368 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104017 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101369 | 104018 | .unused, |
| 101370 | 104019 | .unused, |
| 101371 | 104020 | .unused, |
| ... | ... | @@ -101377,12 +104026,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101377 | 104026 | .dst_temps = .{ .mem, .unused }, |
| 101378 | 104027 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101379 | 104028 | .each = .{ .once = &.{ |
| 101380 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101381 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104029 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 104030 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsi(.src0d, .@"4", .tmp0), ._, ._ }, |
| 101382 | 104031 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101383 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 101384 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 101385 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 104032 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 104033 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 104034 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 101386 | 104035 | } }, |
| 101387 | 104036 | }, .{ |
| 101388 | 104037 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -101393,10 +104042,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101393 | 104042 | }, |
| 101394 | 104043 | .call_frame = .{ .alignment = .@"16" }, |
| 101395 | 104044 | .extra_temps = .{ |
| 101396 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101397 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104045 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104046 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101398 | 104047 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfsi" } }, |
| 101399 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104048 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101400 | 104049 | .unused, |
| 101401 | 104050 | .unused, |
| 101402 | 104051 | .unused, |
| ... | ... | @@ -101408,12 +104057,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101408 | 104057 | .dst_temps = .{ .mem, .unused }, |
| 101409 | 104058 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101410 | 104059 | .each = .{ .once = &.{ |
| 101411 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101412 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104060 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 104061 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsi(.src0d, .@"4", .tmp0), ._, ._ }, |
| 101413 | 104062 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101414 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 101415 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 101416 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104063 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 104064 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 104065 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101417 | 104066 | } }, |
| 101418 | 104067 | }, .{ |
| 101419 | 104068 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -101424,10 +104073,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101424 | 104073 | }, |
| 101425 | 104074 | .call_frame = .{ .alignment = .@"16" }, |
| 101426 | 104075 | .extra_temps = .{ |
| 101427 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101428 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104076 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104077 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101429 | 104078 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfsi" } }, |
| 101430 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104079 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101431 | 104080 | .unused, |
| 101432 | 104081 | .unused, |
| 101433 | 104082 | .unused, |
| ... | ... | @@ -101439,12 +104088,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101439 | 104088 | .dst_temps = .{ .mem, .unused }, |
| 101440 | 104089 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101441 | 104090 | .each = .{ .once = &.{ |
| 101442 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101443 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104091 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 104092 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsi(.src0d, .@"4", .tmp0), ._, ._ }, |
| 101444 | 104093 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101445 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 101446 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 101447 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 104094 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 104095 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 104096 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 101448 | 104097 | } }, |
| 101449 | 104098 | }, .{ |
| 101450 | 104099 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -101506,7 +104155,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101506 | 104155 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101507 | 104156 | }, |
| 101508 | 104157 | .extra_temps = .{ |
| 101509 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104158 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101510 | 104159 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 101511 | 104160 | .unused, |
| 101512 | 104161 | .unused, |
| ... | ... | @@ -101521,12 +104170,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101521 | 104170 | .dst_temps = .{ .mem, .unused }, |
| 101522 | 104171 | .clobbers = .{ .eflags = true }, |
| 101523 | 104172 | .each = .{ .once = &.{ |
| 101524 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101525 | | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104173 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 104174 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 101526 | 104175 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 101527 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 101528 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101529 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104176 | .{ ._, .v_q, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 104177 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 104178 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101530 | 104179 | } }, |
| 101531 | 104180 | }, .{ |
| 101532 | 104181 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -101536,7 +104185,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101536 | 104185 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101537 | 104186 | }, |
| 101538 | 104187 | .extra_temps = .{ |
| 101539 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104188 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101540 | 104189 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 101541 | 104190 | .unused, |
| 101542 | 104191 | .unused, |
| ... | ... | @@ -101551,12 +104200,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101551 | 104200 | .dst_temps = .{ .mem, .unused }, |
| 101552 | 104201 | .clobbers = .{ .eflags = true }, |
| 101553 | 104202 | .each = .{ .once = &.{ |
| 101554 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101555 | | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104203 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 104204 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 101556 | 104205 | .{ ._, .p_w, .ackssd, .tmp1x, .tmp1x, ._, ._ }, |
| 101557 | | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 101558 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101559 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104206 | .{ ._, ._q, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 104207 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 104208 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101560 | 104209 | } }, |
| 101561 | 104210 | }, .{ |
| 101562 | 104211 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -101566,7 +104215,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101566 | 104215 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101567 | 104216 | }, |
| 101568 | 104217 | .extra_temps = .{ |
| 101569 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104218 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101570 | 104219 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 101571 | 104220 | .unused, |
| 101572 | 104221 | .unused, |
| ... | ... | @@ -101581,12 +104230,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101581 | 104230 | .dst_temps = .{ .mem, .unused }, |
| 101582 | 104231 | .clobbers = .{ .eflags = true }, |
| 101583 | 104232 | .each = .{ .once = &.{ |
| 101584 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101585 | | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104233 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 104234 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 101586 | 104235 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 101587 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 101588 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101589 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104236 | .{ ._, .v_q, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 104237 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 104238 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101590 | 104239 | } }, |
| 101591 | 104240 | }, .{ |
| 101592 | 104241 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -101596,7 +104245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101596 | 104245 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101597 | 104246 | }, |
| 101598 | 104247 | .extra_temps = .{ |
| 101599 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104248 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101600 | 104249 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 101601 | 104250 | .unused, |
| 101602 | 104251 | .unused, |
| ... | ... | @@ -101611,12 +104260,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101611 | 104260 | .dst_temps = .{ .mem, .unused }, |
| 101612 | 104261 | .clobbers = .{ .eflags = true }, |
| 101613 | 104262 | .each = .{ .once = &.{ |
| 101614 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101615 | | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104263 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 104264 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 101616 | 104265 | .{ ._, .p_w, .ackusd, .tmp1x, .tmp1x, ._, ._ }, |
| 101617 | | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 101618 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 101619 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104266 | .{ ._, ._q, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 104267 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 104268 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101620 | 104269 | } }, |
| 101621 | 104270 | }, .{ |
| 101622 | 104271 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -101627,10 +104276,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101627 | 104276 | }, |
| 101628 | 104277 | .call_frame = .{ .alignment = .@"16" }, |
| 101629 | 104278 | .extra_temps = .{ |
| 101630 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101631 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104279 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104280 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101632 | 104281 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfsi" } }, |
| 101633 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104282 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101634 | 104283 | .unused, |
| 101635 | 104284 | .unused, |
| 101636 | 104285 | .unused, |
| ... | ... | @@ -101642,12 +104291,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101642 | 104291 | .dst_temps = .{ .mem, .unused }, |
| 101643 | 104292 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101644 | 104293 | .each = .{ .once = &.{ |
| 101645 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101646 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104294 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 104295 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 101647 | 104296 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101648 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 101649 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101650 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104297 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 104298 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 104299 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101651 | 104300 | } }, |
| 101652 | 104301 | }, .{ |
| 101653 | 104302 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -101658,10 +104307,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101658 | 104307 | }, |
| 101659 | 104308 | .call_frame = .{ .alignment = .@"16" }, |
| 101660 | 104309 | .extra_temps = .{ |
| 101661 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101662 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104310 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104311 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101663 | 104312 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfsi" } }, |
| 101664 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104313 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101665 | 104314 | .unused, |
| 101666 | 104315 | .unused, |
| 101667 | 104316 | .unused, |
| ... | ... | @@ -101673,12 +104322,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101673 | 104322 | .dst_temps = .{ .mem, .unused }, |
| 101674 | 104323 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101675 | 104324 | .each = .{ .once = &.{ |
| 101676 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 101677 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 104325 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 104326 | .{ .@"0:", ._ss, .mov, .tmp1x, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 101678 | 104327 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101679 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 101680 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 101681 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104328 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 104329 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 104330 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101682 | 104331 | } }, |
| 101683 | 104332 | }, .{ |
| 101684 | 104333 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -101712,7 +104361,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101712 | 104361 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101713 | 104362 | }, |
| 101714 | 104363 | .extra_temps = .{ |
| 101715 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104364 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101716 | 104365 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 101717 | 104366 | .unused, |
| 101718 | 104367 | .unused, |
| ... | ... | @@ -101727,11 +104376,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101727 | 104376 | .dst_temps = .{ .mem, .unused }, |
| 101728 | 104377 | .clobbers = .{ .eflags = true }, |
| 101729 | 104378 | .each = .{ .once = &.{ |
| 101730 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101731 | | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101732 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 101733 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 101734 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104379 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 104380 | .{ .@"0:", .v_, .cvttps2dq, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 104381 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 104382 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 104383 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101735 | 104384 | } }, |
| 101736 | 104385 | }, .{ |
| 101737 | 104386 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -101741,7 +104390,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101741 | 104390 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101742 | 104391 | }, |
| 101743 | 104392 | .extra_temps = .{ |
| 101744 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104393 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101745 | 104394 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 101746 | 104395 | .unused, |
| 101747 | 104396 | .unused, |
| ... | ... | @@ -101756,11 +104405,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101756 | 104405 | .dst_temps = .{ .mem, .unused }, |
| 101757 | 104406 | .clobbers = .{ .eflags = true }, |
| 101758 | 104407 | .each = .{ .once = &.{ |
| 101759 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101760 | | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101761 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 101762 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 101763 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104408 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 104409 | .{ .@"0:", ._, .cvttps2dq, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 104410 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 104411 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 104412 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101764 | 104413 | } }, |
| 101765 | 104414 | }, .{ |
| 101766 | 104415 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -101771,10 +104420,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101771 | 104420 | }, |
| 101772 | 104421 | .call_frame = .{ .alignment = .@"16" }, |
| 101773 | 104422 | .extra_temps = .{ |
| 101774 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101775 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104423 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104424 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101776 | 104425 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfsi" } }, |
| 101777 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104426 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101778 | 104427 | .unused, |
| 101779 | 104428 | .unused, |
| 101780 | 104429 | .unused, |
| ... | ... | @@ -101786,12 +104435,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101786 | 104435 | .dst_temps = .{ .mem, .unused }, |
| 101787 | 104436 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101788 | 104437 | .each = .{ .once = &.{ |
| 101789 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101790 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104438 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104439 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 101791 | 104440 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101792 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101793 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101794 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104441 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 104442 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104443 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101795 | 104444 | } }, |
| 101796 | 104445 | }, .{ |
| 101797 | 104446 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -101802,10 +104451,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101802 | 104451 | }, |
| 101803 | 104452 | .call_frame = .{ .alignment = .@"16" }, |
| 101804 | 104453 | .extra_temps = .{ |
| 101805 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101806 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104454 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104455 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101807 | 104456 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfsi" } }, |
| 101808 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 104457 | .{ .type = .u32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101809 | 104458 | .unused, |
| 101810 | 104459 | .unused, |
| 101811 | 104460 | .unused, |
| ... | ... | @@ -101817,12 +104466,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101817 | 104466 | .dst_temps = .{ .mem, .unused }, |
| 101818 | 104467 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101819 | 104468 | .each = .{ .once = &.{ |
| 101820 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101821 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104469 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104470 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 101822 | 104471 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101823 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101824 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101825 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104472 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 104473 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104474 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101826 | 104475 | } }, |
| 101827 | 104476 | }, .{ |
| 101828 | 104477 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -101833,10 +104482,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101833 | 104482 | }, |
| 101834 | 104483 | .call_frame = .{ .alignment = .@"16" }, |
| 101835 | 104484 | .extra_temps = .{ |
| 101836 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101837 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104485 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104486 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101838 | 104487 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfsi" } }, |
| 101839 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 104488 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101840 | 104489 | .unused, |
| 101841 | 104490 | .unused, |
| 101842 | 104491 | .unused, |
| ... | ... | @@ -101848,12 +104497,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101848 | 104497 | .dst_temps = .{ .mem, .unused }, |
| 101849 | 104498 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101850 | 104499 | .each = .{ .once = &.{ |
| 101851 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101852 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104500 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104501 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 101853 | 104502 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101854 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101855 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101856 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104503 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 104504 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104505 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101857 | 104506 | } }, |
| 101858 | 104507 | }, .{ |
| 101859 | 104508 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -101864,10 +104513,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101864 | 104513 | }, |
| 101865 | 104514 | .call_frame = .{ .alignment = .@"16" }, |
| 101866 | 104515 | .extra_temps = .{ |
| 101867 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101868 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104516 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104517 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101869 | 104518 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfsi" } }, |
| 101870 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 104519 | .{ .type = .u32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101871 | 104520 | .unused, |
| 101872 | 104521 | .unused, |
| 101873 | 104522 | .unused, |
| ... | ... | @@ -101879,12 +104528,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101879 | 104528 | .dst_temps = .{ .mem, .unused }, |
| 101880 | 104529 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101881 | 104530 | .each = .{ .once = &.{ |
| 101882 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101883 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104531 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104532 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 101884 | 104533 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101885 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 101886 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101887 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104534 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 104535 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104536 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101888 | 104537 | } }, |
| 101889 | 104538 | }, .{ |
| 101890 | 104539 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -101894,7 +104543,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101894 | 104543 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101895 | 104544 | }, |
| 101896 | 104545 | .extra_temps = .{ |
| 101897 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104546 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101898 | 104547 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 101899 | 104548 | .unused, |
| 101900 | 104549 | .unused, |
| ... | ... | @@ -101909,11 +104558,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101909 | 104558 | .dst_temps = .{ .mem, .unused }, |
| 101910 | 104559 | .clobbers = .{ .eflags = true }, |
| 101911 | 104560 | .each = .{ .once = &.{ |
| 101912 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101913 | | .{ .@"0:", .v_, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101914 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 101915 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101916 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104561 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104562 | .{ .@"0:", .v_, .cvttss2si, .tmp1q, .memi(.src0d, .tmp0), ._, ._ }, |
| 104563 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp1q, ._, ._ }, |
| 104564 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104565 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101917 | 104566 | } }, |
| 101918 | 104567 | }, .{ |
| 101919 | 104568 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -101923,7 +104572,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101923 | 104572 | .{ .src = .{ .to_mem, .none, .none } }, |
| 101924 | 104573 | }, |
| 101925 | 104574 | .extra_temps = .{ |
| 101926 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104575 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 101927 | 104576 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 101928 | 104577 | .unused, |
| 101929 | 104578 | .unused, |
| ... | ... | @@ -101938,11 +104587,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101938 | 104587 | .dst_temps = .{ .mem, .unused }, |
| 101939 | 104588 | .clobbers = .{ .eflags = true }, |
| 101940 | 104589 | .each = .{ .once = &.{ |
| 101941 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101942 | | .{ .@"0:", ._, .cvttss2si, .tmp1q, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 101943 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 101944 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101945 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104590 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104591 | .{ .@"0:", ._, .cvttss2si, .tmp1q, .memi(.src0d, .tmp0), ._, ._ }, |
| 104592 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp1q, ._, ._ }, |
| 104593 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104594 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101946 | 104595 | } }, |
| 101947 | 104596 | }, .{ |
| 101948 | 104597 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -101953,10 +104602,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101953 | 104602 | }, |
| 101954 | 104603 | .call_frame = .{ .alignment = .@"16" }, |
| 101955 | 104604 | .extra_temps = .{ |
| 101956 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101957 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104605 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104606 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101958 | 104607 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfdi" } }, |
| 101959 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 104608 | .{ .type = .i64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101960 | 104609 | .unused, |
| 101961 | 104610 | .unused, |
| 101962 | 104611 | .unused, |
| ... | ... | @@ -101968,12 +104617,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101968 | 104617 | .dst_temps = .{ .mem, .unused }, |
| 101969 | 104618 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 101970 | 104619 | .each = .{ .once = &.{ |
| 101971 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 101972 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104620 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104621 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 101973 | 104622 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 101974 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 101975 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 101976 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104623 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3q, ._, ._ }, |
| 104624 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104625 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 101977 | 104626 | } }, |
| 101978 | 104627 | }, .{ |
| 101979 | 104628 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -101984,10 +104633,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101984 | 104633 | }, |
| 101985 | 104634 | .call_frame = .{ .alignment = .@"16" }, |
| 101986 | 104635 | .extra_temps = .{ |
| 101987 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 101988 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104636 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104637 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101989 | 104638 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfdi" } }, |
| 101990 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104639 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 101991 | 104640 | .unused, |
| 101992 | 104641 | .unused, |
| 101993 | 104642 | .unused, |
| ... | ... | @@ -101999,12 +104648,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 101999 | 104648 | .dst_temps = .{ .mem, .unused }, |
| 102000 | 104649 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102001 | 104650 | .each = .{ .once = &.{ |
| 102002 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102003 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104651 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104652 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102004 | 104653 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102005 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 102006 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102007 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104654 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3q, ._, ._ }, |
| 104655 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104656 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102008 | 104657 | } }, |
| 102009 | 104658 | }, .{ |
| 102010 | 104659 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -102015,10 +104664,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102015 | 104664 | }, |
| 102016 | 104665 | .call_frame = .{ .alignment = .@"16" }, |
| 102017 | 104666 | .extra_temps = .{ |
| 102018 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102019 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104667 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104668 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102020 | 104669 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfdi" } }, |
| 102021 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 104670 | .{ .type = .i64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102022 | 104671 | .unused, |
| 102023 | 104672 | .unused, |
| 102024 | 104673 | .unused, |
| ... | ... | @@ -102030,12 +104679,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102030 | 104679 | .dst_temps = .{ .mem, .unused }, |
| 102031 | 104680 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102032 | 104681 | .each = .{ .once = &.{ |
| 102033 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102034 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104682 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104683 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102035 | 104684 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102036 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 102037 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102038 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104685 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3q, ._, ._ }, |
| 104686 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104687 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102039 | 104688 | } }, |
| 102040 | 104689 | }, .{ |
| 102041 | 104690 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -102046,10 +104695,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102046 | 104695 | }, |
| 102047 | 104696 | .call_frame = .{ .alignment = .@"16" }, |
| 102048 | 104697 | .extra_temps = .{ |
| 102049 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102050 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104698 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104699 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102051 | 104700 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfdi" } }, |
| 102052 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104701 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102053 | 104702 | .unused, |
| 102054 | 104703 | .unused, |
| 102055 | 104704 | .unused, |
| ... | ... | @@ -102061,14 +104710,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102061 | 104710 | .dst_temps = .{ .mem, .unused }, |
| 102062 | 104711 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102063 | 104712 | .each = .{ .once = &.{ |
| 102064 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102065 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104713 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104714 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102066 | 104715 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102067 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 102068 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102069 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104716 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3q, ._, ._ }, |
| 104717 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104718 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102070 | 104719 | } }, |
| 102071 | 104720 | }, .{ |
| 104721 | .required_cc_abi = .sysv64, |
| 102072 | 104722 | .required_features = .{ .avx, null, null, null }, |
| 102073 | 104723 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 102074 | 104724 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -102077,11 +104727,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102077 | 104727 | }, |
| 102078 | 104728 | .call_frame = .{ .alignment = .@"16" }, |
| 102079 | 104729 | .extra_temps = .{ |
| 102080 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102081 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104730 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104731 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102082 | 104732 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfti" } }, |
| 102083 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102084 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 104733 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104734 | .unused, |
| 102085 | 104735 | .unused, |
| 102086 | 104736 | .unused, |
| 102087 | 104737 | .unused, |
| ... | ... | @@ -102092,15 +104742,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102092 | 104742 | .dst_temps = .{ .mem, .unused }, |
| 102093 | 104743 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102094 | 104744 | .each = .{ .once = &.{ |
| 102095 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102096 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104745 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104746 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102097 | 104747 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102098 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 102099 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 102100 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102101 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104748 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3q0, ._, ._ }, |
| 104749 | .{ ._, ._, .mov, .memsid(.dst0q, .@"4", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 104750 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104751 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102102 | 104752 | } }, |
| 102103 | 104753 | }, .{ |
| 104754 | .required_cc_abi = .win64, |
| 104755 | .required_features = .{ .avx, null, null, null }, |
| 104756 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 104757 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104758 | .patterns = &.{ |
| 104759 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104760 | }, |
| 104761 | .call_frame = .{ .alignment = .@"16" }, |
| 104762 | .extra_temps = .{ |
| 104763 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104764 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104765 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfti" } }, |
| 104766 | .unused, |
| 104767 | .unused, |
| 104768 | .unused, |
| 104769 | .unused, |
| 104770 | .unused, |
| 104771 | .unused, |
| 104772 | .unused, |
| 104773 | .unused, |
| 104774 | }, |
| 104775 | .dst_temps = .{ .mem, .unused }, |
| 104776 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104777 | .each = .{ .once = &.{ |
| 104778 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104779 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 104780 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104781 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 104782 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104783 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104784 | } }, |
| 104785 | }, .{ |
| 104786 | .required_cc_abi = .sysv64, |
| 102104 | 104787 | .required_features = .{ .avx, null, null, null }, |
| 102105 | 104788 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 102106 | 104789 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -102109,11 +104792,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102109 | 104792 | }, |
| 102110 | 104793 | .call_frame = .{ .alignment = .@"16" }, |
| 102111 | 104794 | .extra_temps = .{ |
| 102112 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102113 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104795 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104796 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102114 | 104797 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 102115 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102116 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 104798 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104799 | .unused, |
| 102117 | 104800 | .unused, |
| 102118 | 104801 | .unused, |
| 102119 | 104802 | .unused, |
| ... | ... | @@ -102124,15 +104807,112 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102124 | 104807 | .dst_temps = .{ .mem, .unused }, |
| 102125 | 104808 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102126 | 104809 | .each = .{ .once = &.{ |
| 102127 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102128 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104810 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104811 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102129 | 104812 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102130 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 102131 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 102132 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102133 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104813 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3q0, ._, ._ }, |
| 104814 | .{ ._, ._, .mov, .memsid(.dst0q, .@"4", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 104815 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104816 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104817 | } }, |
| 104818 | }, .{ |
| 104819 | .required_cc_abi = .win64, |
| 104820 | .required_features = .{ .avx, null, null, null }, |
| 104821 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 104822 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104823 | .patterns = &.{ |
| 104824 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104825 | }, |
| 104826 | .call_frame = .{ .alignment = .@"16" }, |
| 104827 | .extra_temps = .{ |
| 104828 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104829 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104830 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 104831 | .unused, |
| 104832 | .unused, |
| 104833 | .unused, |
| 104834 | .unused, |
| 104835 | .unused, |
| 104836 | .unused, |
| 104837 | .unused, |
| 104838 | .unused, |
| 104839 | }, |
| 104840 | .dst_temps = .{ .mem, .unused }, |
| 104841 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104842 | .each = .{ .once = &.{ |
| 104843 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104844 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 104845 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104846 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 104847 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104848 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104849 | } }, |
| 104850 | }, .{ |
| 104851 | .required_cc_abi = .win64, |
| 104852 | .required_features = .{ .sse2, null, null, null }, |
| 104853 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 104854 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104855 | .patterns = &.{ |
| 104856 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104857 | }, |
| 104858 | .call_frame = .{ .alignment = .@"16" }, |
| 104859 | .extra_temps = .{ |
| 104860 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104861 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104862 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfti" } }, |
| 104863 | .unused, |
| 104864 | .unused, |
| 104865 | .unused, |
| 104866 | .unused, |
| 104867 | .unused, |
| 104868 | .unused, |
| 104869 | .unused, |
| 104870 | .unused, |
| 104871 | }, |
| 104872 | .dst_temps = .{ .mem, .unused }, |
| 104873 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104874 | .each = .{ .once = &.{ |
| 104875 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104876 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 104877 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104878 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 104879 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104880 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104881 | } }, |
| 104882 | }, .{ |
| 104883 | .required_cc_abi = .win64, |
| 104884 | .required_features = .{ .sse2, null, null, null }, |
| 104885 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 104886 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104887 | .patterns = &.{ |
| 104888 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104889 | }, |
| 104890 | .call_frame = .{ .alignment = .@"16" }, |
| 104891 | .extra_temps = .{ |
| 104892 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104893 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104894 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 104895 | .unused, |
| 104896 | .unused, |
| 104897 | .unused, |
| 104898 | .unused, |
| 104899 | .unused, |
| 104900 | .unused, |
| 104901 | .unused, |
| 104902 | .unused, |
| 104903 | }, |
| 104904 | .dst_temps = .{ .mem, .unused }, |
| 104905 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104906 | .each = .{ .once = &.{ |
| 104907 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104908 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 104909 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104910 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 104911 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104912 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102134 | 104913 | } }, |
| 102135 | 104914 | }, .{ |
| 104915 | .required_cc_abi = .sysv64, |
| 102136 | 104916 | .required_features = .{ .sse, null, null, null }, |
| 102137 | 104917 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 102138 | 104918 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -102141,11 +104921,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102141 | 104921 | }, |
| 102142 | 104922 | .call_frame = .{ .alignment = .@"16" }, |
| 102143 | 104923 | .extra_temps = .{ |
| 102144 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102145 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104924 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104925 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102146 | 104926 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfti" } }, |
| 102147 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102148 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 104927 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104928 | .unused, |
| 102149 | 104929 | .unused, |
| 102150 | 104930 | .unused, |
| 102151 | 104931 | .unused, |
| ... | ... | @@ -102156,15 +104936,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102156 | 104936 | .dst_temps = .{ .mem, .unused }, |
| 102157 | 104937 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102158 | 104938 | .each = .{ .once = &.{ |
| 102159 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102160 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104939 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104940 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102161 | 104941 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102162 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 102163 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 102164 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102165 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 104942 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3q0, ._, ._ }, |
| 104943 | .{ ._, ._, .mov, .memsid(.dst0q, .@"4", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 104944 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104945 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102166 | 104946 | } }, |
| 102167 | 104947 | }, .{ |
| 104948 | .required_cc_abi = .win64, |
| 104949 | .required_features = .{ .sse, null, null, null }, |
| 104950 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 104951 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 104952 | .patterns = &.{ |
| 104953 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104954 | }, |
| 104955 | .call_frame = .{ .alignment = .@"16" }, |
| 104956 | .extra_temps = .{ |
| 104957 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104958 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104959 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfti" } }, |
| 104960 | .unused, |
| 104961 | .unused, |
| 104962 | .unused, |
| 104963 | .unused, |
| 104964 | .unused, |
| 104965 | .unused, |
| 104966 | .unused, |
| 104967 | .unused, |
| 104968 | }, |
| 104969 | .dst_temps = .{ .mem, .unused }, |
| 104970 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104971 | .each = .{ .once = &.{ |
| 104972 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 104973 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 104974 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104975 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 104976 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 104977 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104978 | } }, |
| 104979 | }, .{ |
| 104980 | .required_cc_abi = .sysv64, |
| 102168 | 104981 | .required_features = .{ .sse, null, null, null }, |
| 102169 | 104982 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 102170 | 104983 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -102173,11 +104986,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102173 | 104986 | }, |
| 102174 | 104987 | .call_frame = .{ .alignment = .@"16" }, |
| 102175 | 104988 | .extra_temps = .{ |
| 102176 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 102177 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 104989 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104990 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 102178 | 104991 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 102179 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 102180 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 104992 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104993 | .unused, |
| 102181 | 104994 | .unused, |
| 102182 | 104995 | .unused, |
| 102183 | 104996 | .unused, |
| ... | ... | @@ -102188,13 +105001,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102188 | 105001 | .dst_temps = .{ .mem, .unused }, |
| 102189 | 105002 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102190 | 105003 | .each = .{ .once = &.{ |
| 102191 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102192 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105004 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 105005 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102193 | 105006 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 102194 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 102195 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"4", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 102196 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102197 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105007 | .{ ._, ._, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3q0, ._, ._ }, |
| 105008 | .{ ._, ._, .mov, .memsid(.dst0q, .@"4", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 105009 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 105010 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105011 | } }, |
| 105012 | }, .{ |
| 105013 | .required_cc_abi = .win64, |
| 105014 | .required_features = .{ .sse, null, null, null }, |
| 105015 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 105016 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 105017 | .patterns = &.{ |
| 105018 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105019 | }, |
| 105020 | .call_frame = .{ .alignment = .@"16" }, |
| 105021 | .extra_temps = .{ |
| 105022 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105023 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105024 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfti" } }, |
| 105025 | .unused, |
| 105026 | .unused, |
| 105027 | .unused, |
| 105028 | .unused, |
| 105029 | .unused, |
| 105030 | .unused, |
| 105031 | .unused, |
| 105032 | .unused, |
| 105033 | }, |
| 105034 | .dst_temps = .{ .mem, .unused }, |
| 105035 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105036 | .each = .{ .once = &.{ |
| 105037 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 105038 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 105039 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105040 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 105041 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 105042 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102198 | 105043 | } }, |
| 102199 | 105044 | }, .{ |
| 102200 | 105045 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -102205,11 +105050,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102205 | 105050 | }, |
| 102206 | 105051 | .call_frame = .{ .alignment = .@"16" }, |
| 102207 | 105052 | .extra_temps = .{ |
| 102208 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105053 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102209 | 105054 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102210 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102211 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102212 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 105055 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105056 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 105057 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 102213 | 105058 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfei" } }, |
| 102214 | 105059 | .unused, |
| 102215 | 105060 | .unused, |
| ... | ... | @@ -102220,15 +105065,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102220 | 105065 | .dst_temps = .{ .mem, .unused }, |
| 102221 | 105066 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102222 | 105067 | .each = .{ .once = &.{ |
| 102223 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102224 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105068 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 105069 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 102225 | 105070 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 102226 | 105071 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102227 | | .{ ._, .v_ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105072 | .{ ._, .v_ss, .mov, .tmp4x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102228 | 105073 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 102229 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 102230 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102231 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105074 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 105075 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 105076 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102232 | 105077 | } }, |
| 102233 | 105078 | }, .{ |
| 102234 | 105079 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -102239,11 +105084,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102239 | 105084 | }, |
| 102240 | 105085 | .call_frame = .{ .alignment = .@"16" }, |
| 102241 | 105086 | .extra_temps = .{ |
| 102242 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105087 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102243 | 105088 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102244 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102245 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102246 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 105089 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105090 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 105091 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 102247 | 105092 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfei" } }, |
| 102248 | 105093 | .unused, |
| 102249 | 105094 | .unused, |
| ... | ... | @@ -102254,15 +105099,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102254 | 105099 | .dst_temps = .{ .mem, .unused }, |
| 102255 | 105100 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102256 | 105101 | .each = .{ .once = &.{ |
| 102257 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102258 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105102 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 105103 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 102259 | 105104 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 102260 | 105105 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102261 | | .{ ._, .v_ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105106 | .{ ._, .v_ss, .mov, .tmp4x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102262 | 105107 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 102263 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 102264 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102265 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105108 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 105109 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 105110 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102266 | 105111 | } }, |
| 102267 | 105112 | }, .{ |
| 102268 | 105113 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -102273,11 +105118,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102273 | 105118 | }, |
| 102274 | 105119 | .call_frame = .{ .alignment = .@"16" }, |
| 102275 | 105120 | .extra_temps = .{ |
| 102276 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105121 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102277 | 105122 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102278 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102279 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102280 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 105123 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105124 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 105125 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 102281 | 105126 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfei" } }, |
| 102282 | 105127 | .unused, |
| 102283 | 105128 | .unused, |
| ... | ... | @@ -102288,15 +105133,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102288 | 105133 | .dst_temps = .{ .mem, .unused }, |
| 102289 | 105134 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102290 | 105135 | .each = .{ .once = &.{ |
| 102291 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102292 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105136 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 105137 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 102293 | 105138 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 102294 | 105139 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102295 | | .{ ._, ._ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105140 | .{ ._, ._ss, .mov, .tmp4x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102296 | 105141 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 102297 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 102298 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102299 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105142 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 105143 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 105144 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102300 | 105145 | } }, |
| 102301 | 105146 | }, .{ |
| 102302 | 105147 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -102307,11 +105152,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102307 | 105152 | }, |
| 102308 | 105153 | .call_frame = .{ .alignment = .@"16" }, |
| 102309 | 105154 | .extra_temps = .{ |
| 102310 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105155 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102311 | 105156 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 102312 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102313 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 102314 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 105157 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105158 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 105159 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 102315 | 105160 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunssfei" } }, |
| 102316 | 105161 | .unused, |
| 102317 | 105162 | .unused, |
| ... | ... | @@ -102322,15 +105167,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102322 | 105167 | .dst_temps = .{ .mem, .unused }, |
| 102323 | 105168 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102324 | 105169 | .each = .{ .once = &.{ |
| 102325 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 102326 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 105170 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 105171 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 102327 | 105172 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 102328 | 105173 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 102329 | | .{ ._, ._ss, .mov, .tmp4x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 105174 | .{ ._, ._ss, .mov, .tmp4x, .memi(.src0d, .tmp0), ._, ._ }, |
| 102330 | 105175 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 102331 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 102332 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102333 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105176 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 105177 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 105178 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102334 | 105179 | } }, |
| 102335 | 105180 | }, .{ |
| 102336 | 105181 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -102643,11 +105488,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102643 | 105488 | .{ ._, ._, .@"or", .dst0q, .tmp5q, ._, ._ }, |
| 102644 | 105489 | } }, |
| 102645 | 105490 | }, .{ |
| 102646 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105491 | .required_cc_abi = .sysv64, |
| 105492 | .required_features = .{ .sse, null, null, null }, |
| 102647 | 105493 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 102648 | 105494 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 102649 | 105495 | .patterns = &.{ |
| 102650 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 105496 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 102651 | 105497 | }, |
| 102652 | 105498 | .call_frame = .{ .alignment = .@"16" }, |
| 102653 | 105499 | .extra_temps = .{ |
| ... | ... | @@ -102663,17 +105509,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102663 | 105509 | .unused, |
| 102664 | 105510 | .unused, |
| 102665 | 105511 | }, |
| 102666 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 105512 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 102667 | 105513 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102668 | 105514 | .each = .{ .once = &.{ |
| 102669 | 105515 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 102670 | 105516 | } }, |
| 102671 | 105517 | }, .{ |
| 102672 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 105518 | .required_cc_abi = .win64, |
| 105519 | .required_features = .{ .sse, null, null, null }, |
| 105520 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 105521 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 105522 | .patterns = &.{ |
| 105523 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 105524 | }, |
| 105525 | .call_frame = .{ .alignment = .@"16" }, |
| 105526 | .extra_temps = .{ |
| 105527 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfti" } }, |
| 105528 | .unused, |
| 105529 | .unused, |
| 105530 | .unused, |
| 105531 | .unused, |
| 105532 | .unused, |
| 105533 | .unused, |
| 105534 | .unused, |
| 105535 | .unused, |
| 105536 | .unused, |
| 105537 | .unused, |
| 105538 | }, |
| 105539 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 105540 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105541 | .each = .{ .once = &.{ |
| 105542 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 105543 | } }, |
| 105544 | }, .{ |
| 105545 | .required_cc_abi = .sysv64, |
| 105546 | .required_features = .{ .sse, null, null, null }, |
| 102673 | 105547 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 102674 | 105548 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 102675 | 105549 | .patterns = &.{ |
| 102676 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 105550 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 102677 | 105551 | }, |
| 102678 | 105552 | .call_frame = .{ .alignment = .@"16" }, |
| 102679 | 105553 | .extra_temps = .{ |
| ... | ... | @@ -102689,7 +105563,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102689 | 105563 | .unused, |
| 102690 | 105564 | .unused, |
| 102691 | 105565 | }, |
| 102692 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 105566 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 105567 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105568 | .each = .{ .once = &.{ |
| 105569 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 105570 | } }, |
| 105571 | }, .{ |
| 105572 | .required_cc_abi = .win64, |
| 105573 | .required_features = .{ .sse, null, null, null }, |
| 105574 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 105575 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 105576 | .patterns = &.{ |
| 105577 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 105578 | }, |
| 105579 | .call_frame = .{ .alignment = .@"16" }, |
| 105580 | .extra_temps = .{ |
| 105581 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfti" } }, |
| 105582 | .unused, |
| 105583 | .unused, |
| 105584 | .unused, |
| 105585 | .unused, |
| 105586 | .unused, |
| 105587 | .unused, |
| 105588 | .unused, |
| 105589 | .unused, |
| 105590 | .unused, |
| 105591 | .unused, |
| 105592 | }, |
| 105593 | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 102693 | 105594 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 102694 | 105595 | .each = .{ .once = &.{ |
| 102695 | 105596 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -102699,12 +105600,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102699 | 105600 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 102700 | 105601 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102701 | 105602 | .patterns = &.{ |
| 102702 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 105603 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } }, .none, .none } }, |
| 102703 | 105604 | }, |
| 102704 | 105605 | .call_frame = .{ .alignment = .@"16" }, |
| 102705 | 105606 | .extra_temps = .{ |
| 102706 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102707 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105607 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105608 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 102708 | 105609 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfei" } }, |
| 102709 | 105610 | .unused, |
| 102710 | 105611 | .unused, |
| ... | ... | @@ -102727,12 +105628,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102727 | 105628 | .src_constraints = .{ .{ .float = .qword }, .any, .any }, |
| 102728 | 105629 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 102729 | 105630 | .patterns = &.{ |
| 102730 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 105631 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } }, .none, .none } }, |
| 102731 | 105632 | }, |
| 102732 | 105633 | .call_frame = .{ .alignment = .@"16" }, |
| 102733 | 105634 | .extra_temps = .{ |
| 102734 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 102735 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 105635 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105636 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 102736 | 105637 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfei" } }, |
| 102737 | 105638 | .unused, |
| 102738 | 105639 | .unused, |
| ... | ... | @@ -102839,7 +105740,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102839 | 105740 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102840 | 105741 | }, |
| 102841 | 105742 | .extra_temps = .{ |
| 102842 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105743 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102843 | 105744 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 102844 | 105745 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 102845 | 105746 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| ... | ... | @@ -102856,22 +105757,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102856 | 105757 | .each = .{ .once = &.{ |
| 102857 | 105758 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 102858 | 105759 | .{ ._, .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 102859 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102860 | | .{ .@"0:", .v_, .cvttpd2dq, .tmp3x, .memsia(.src0y, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105760 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_size), ._, ._ }, |
| 105761 | .{ .@"0:", .v_, .cvttpd2dq, .tmp3x, .memsi(.src0y, .@"8", .tmp0), ._, ._ }, |
| 102861 | 105762 | .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, |
| 102862 | | .{ ._, .v_d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 102863 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 102864 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105763 | .{ ._, .v_d, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 105764 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 105765 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102865 | 105766 | } }, |
| 102866 | 105767 | }, .{ |
| 102867 | | .required_features = .{ .ssse3, null, null, null }, |
| 105768 | .required_features = .{ .sse4_1, null, null, null }, |
| 102868 | 105769 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 102869 | 105770 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 102870 | 105771 | .patterns = &.{ |
| 102871 | 105772 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102872 | 105773 | }, |
| 102873 | 105774 | .extra_temps = .{ |
| 102874 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105775 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102875 | 105776 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 102876 | 105777 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 102877 | 105778 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| ... | ... | @@ -102888,12 +105789,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102888 | 105789 | .each = .{ .once = &.{ |
| 102889 | 105790 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 102890 | 105791 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 102891 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102892 | | .{ .@"0:", ._, .cvttpd2dq, .tmp3x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105792 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_size), ._, ._ }, |
| 105793 | .{ .@"0:", ._, .cvttpd2dq, .tmp3x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 102893 | 105794 | .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, |
| 102894 | | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 102895 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 102896 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105795 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 105796 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 105797 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105798 | } }, |
| 105799 | }, .{ |
| 105800 | .required_features = .{ .ssse3, null, null, null }, |
| 105801 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, .any, .any }, |
| 105802 | .dst_constraints = .{ .{ .multiple_scalar_int = .{ .of = .word, .is = .byte } }, .any }, |
| 105803 | .patterns = &.{ |
| 105804 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105805 | }, |
| 105806 | .extra_temps = .{ |
| 105807 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105808 | .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .dword, .to = .byte } } }, |
| 105809 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 105810 | .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, |
| 105811 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 105812 | .unused, |
| 105813 | .unused, |
| 105814 | .unused, |
| 105815 | .unused, |
| 105816 | .unused, |
| 105817 | .unused, |
| 105818 | }, |
| 105819 | .dst_temps = .{ .mem, .unused }, |
| 105820 | .clobbers = .{ .eflags = true }, |
| 105821 | .each = .{ .once = &.{ |
| 105822 | .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, |
| 105823 | .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 105824 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_size), ._, ._ }, |
| 105825 | .{ .@"0:", ._, .cvttpd2dq, .tmp3x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 105826 | .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, |
| 105827 | .{ ._, ._d, .mov, .tmp4d, .tmp3x, ._, ._ }, |
| 105828 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp4w, ._, ._ }, |
| 105829 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 105830 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102897 | 105831 | } }, |
| 102898 | 105832 | }, .{ |
| 102899 | 105833 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| ... | ... | @@ -102903,7 +105837,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102903 | 105837 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102904 | 105838 | }, |
| 102905 | 105839 | .extra_temps = .{ |
| 102906 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105840 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102907 | 105841 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 102908 | 105842 | .unused, |
| 102909 | 105843 | .unused, |
| ... | ... | @@ -102918,11 +105852,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102918 | 105852 | .dst_temps = .{ .mem, .unused }, |
| 102919 | 105853 | .clobbers = .{ .eflags = true }, |
| 102920 | 105854 | .each = .{ .once = &.{ |
| 102921 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102922 | | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102923 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 102924 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 102925 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105855 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 105856 | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 105857 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp1b, ._, ._ }, |
| 105858 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 105859 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102926 | 105860 | } }, |
| 102927 | 105861 | }, .{ |
| 102928 | 105862 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -102932,7 +105866,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102932 | 105866 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102933 | 105867 | }, |
| 102934 | 105868 | .extra_temps = .{ |
| 102935 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105869 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102936 | 105870 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 102937 | 105871 | .unused, |
| 102938 | 105872 | .unused, |
| ... | ... | @@ -102947,11 +105881,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102947 | 105881 | .dst_temps = .{ .mem, .unused }, |
| 102948 | 105882 | .clobbers = .{ .eflags = true }, |
| 102949 | 105883 | .each = .{ .once = &.{ |
| 102950 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 102951 | | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 102952 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, |
| 102953 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 102954 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105884 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 105885 | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 105886 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp1b, ._, ._ }, |
| 105887 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 105888 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 102955 | 105889 | } }, |
| 102956 | 105890 | }, .{ |
| 102957 | 105891 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| ... | ... | @@ -102961,7 +105895,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102961 | 105895 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102962 | 105896 | }, |
| 102963 | 105897 | .extra_temps = .{ |
| 102964 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105898 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 102965 | 105899 | .{ .type = .u16, .kind = .mem }, |
| 102966 | 105900 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 102967 | 105901 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -102976,18 +105910,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102976 | 105910 | .dst_temps = .{ .mem, .unused }, |
| 102977 | 105911 | .clobbers = .{ .eflags = true }, |
| 102978 | 105912 | .each = .{ .once = &.{ |
| 102979 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105913 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 102980 | 105914 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 102981 | 105915 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 102982 | 105916 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 102983 | 105917 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 102984 | 105918 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 102985 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105919 | .{ .@"0:", .f_, .ld, .memsi(.src0q, .@"8", .tmp0), ._, ._, ._ }, |
| 102986 | 105920 | .{ ._, .fi_p, .st, .tmp4w, ._, ._, ._ }, |
| 102987 | 105921 | .{ ._, ._, .movzx, .tmp2d, .tmp4b, ._, ._ }, |
| 102988 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 102989 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 102990 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105922 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp2b, ._, ._ }, |
| 105923 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 105924 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 102991 | 105925 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 102992 | 105926 | } }, |
| 102993 | 105927 | }, .{ |
| ... | ... | @@ -102998,7 +105932,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 102998 | 105932 | .{ .src = .{ .to_mem, .none, .none } }, |
| 102999 | 105933 | }, |
| 103000 | 105934 | .extra_temps = .{ |
| 103001 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105935 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103002 | 105936 | .{ .type = .u16, .kind = .mem }, |
| 103003 | 105937 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 103004 | 105938 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -103013,18 +105947,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103013 | 105947 | .dst_temps = .{ .mem, .unused }, |
| 103014 | 105948 | .clobbers = .{ .eflags = true }, |
| 103015 | 105949 | .each = .{ .once = &.{ |
| 103016 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105950 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 103017 | 105951 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 103018 | 105952 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 103019 | 105953 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 103020 | 105954 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 103021 | 105955 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 103022 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105956 | .{ .@"0:", .f_, .ld, .memsi(.src0q, .@"8", .tmp0), ._, ._, ._ }, |
| 103023 | 105957 | .{ ._, .fi_p, .st, .tmp4w, ._, ._, ._ }, |
| 103024 | 105958 | .{ ._, ._, .movzx, .tmp2d, .tmp4b, ._, ._ }, |
| 103025 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp2b, ._, ._ }, |
| 103026 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 103027 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 105959 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp2b, ._, ._ }, |
| 105960 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 105961 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 103028 | 105962 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 103029 | 105963 | } }, |
| 103030 | 105964 | }, .{ |
| ... | ... | @@ -103036,10 +105970,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103036 | 105970 | }, |
| 103037 | 105971 | .call_frame = .{ .alignment = .@"16" }, |
| 103038 | 105972 | .extra_temps = .{ |
| 103039 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103040 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 105973 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105974 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103041 | 105975 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfsi" } }, |
| 103042 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 105976 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103043 | 105977 | .unused, |
| 103044 | 105978 | .unused, |
| 103045 | 105979 | .unused, |
| ... | ... | @@ -103051,12 +105985,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103051 | 105985 | .dst_temps = .{ .mem, .unused }, |
| 103052 | 105986 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103053 | 105987 | .each = .{ .once = &.{ |
| 103054 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103055 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 105988 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 105989 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 103056 | 105990 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103057 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 103058 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 103059 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 105991 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 105992 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 105993 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103060 | 105994 | } }, |
| 103061 | 105995 | }, .{ |
| 103062 | 105996 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -103067,10 +106001,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103067 | 106001 | }, |
| 103068 | 106002 | .call_frame = .{ .alignment = .@"16" }, |
| 103069 | 106003 | .extra_temps = .{ |
| 103070 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103071 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106004 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106005 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103072 | 106006 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfsi" } }, |
| 103073 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106007 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103074 | 106008 | .unused, |
| 103075 | 106009 | .unused, |
| 103076 | 106010 | .unused, |
| ... | ... | @@ -103082,12 +106016,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103082 | 106016 | .dst_temps = .{ .mem, .unused }, |
| 103083 | 106017 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103084 | 106018 | .each = .{ .once = &.{ |
| 103085 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103086 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106019 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 106020 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 103087 | 106021 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103088 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 103089 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 103090 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 106022 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 106023 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 106024 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 103091 | 106025 | } }, |
| 103092 | 106026 | }, .{ |
| 103093 | 106027 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| ... | ... | @@ -103098,10 +106032,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103098 | 106032 | }, |
| 103099 | 106033 | .call_frame = .{ .alignment = .@"16" }, |
| 103100 | 106034 | .extra_temps = .{ |
| 103101 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103102 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106035 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106036 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103103 | 106037 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfsi" } }, |
| 103104 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106038 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103105 | 106039 | .unused, |
| 103106 | 106040 | .unused, |
| 103107 | 106041 | .unused, |
| ... | ... | @@ -103113,12 +106047,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103113 | 106047 | .dst_temps = .{ .mem, .unused }, |
| 103114 | 106048 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103115 | 106049 | .each = .{ .once = &.{ |
| 103116 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103117 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106050 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 106051 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 103118 | 106052 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103119 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 103120 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 103121 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106053 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 106054 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 106055 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103122 | 106056 | } }, |
| 103123 | 106057 | }, .{ |
| 103124 | 106058 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -103129,10 +106063,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103129 | 106063 | }, |
| 103130 | 106064 | .call_frame = .{ .alignment = .@"16" }, |
| 103131 | 106065 | .extra_temps = .{ |
| 103132 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103133 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106066 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106067 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103134 | 106068 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfsi" } }, |
| 103135 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106069 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103136 | 106070 | .unused, |
| 103137 | 106071 | .unused, |
| 103138 | 106072 | .unused, |
| ... | ... | @@ -103144,12 +106078,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103144 | 106078 | .dst_temps = .{ .mem, .unused }, |
| 103145 | 106079 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103146 | 106080 | .each = .{ .once = &.{ |
| 103147 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103148 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106081 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 106082 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 103149 | 106083 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103150 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 103151 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 103152 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 106084 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 106085 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 106086 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 103153 | 106087 | } }, |
| 103154 | 106088 | }, .{ |
| 103155 | 106089 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -103160,10 +106094,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103160 | 106094 | }, |
| 103161 | 106095 | .call_frame = .{ .alignment = .@"16" }, |
| 103162 | 106096 | .extra_temps = .{ |
| 103163 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103164 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106097 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106098 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103165 | 106099 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfsi" } }, |
| 103166 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106100 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103167 | 106101 | .unused, |
| 103168 | 106102 | .unused, |
| 103169 | 106103 | .unused, |
| ... | ... | @@ -103175,13 +106109,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103175 | 106109 | .dst_temps = .{ .mem, .unused }, |
| 103176 | 106110 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103177 | 106111 | .each = .{ .once = &.{ |
| 103178 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106112 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 103179 | 106113 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103180 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106114 | .{ ._, ._ps, .movl, .tmp1x, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 103181 | 106115 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103182 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 103183 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 103184 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106116 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 106117 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 106118 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103185 | 106119 | } }, |
| 103186 | 106120 | }, .{ |
| 103187 | 106121 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -103192,10 +106126,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103192 | 106126 | }, |
| 103193 | 106127 | .call_frame = .{ .alignment = .@"16" }, |
| 103194 | 106128 | .extra_temps = .{ |
| 103195 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103196 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106129 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106130 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103197 | 106131 | .{ .type = .usize, .kind = .{ .extern_func = "__fixsfsi" } }, |
| 103198 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106132 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103199 | 106133 | .unused, |
| 103200 | 106134 | .unused, |
| 103201 | 106135 | .unused, |
| ... | ... | @@ -103207,13 +106141,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103207 | 106141 | .dst_temps = .{ .mem, .unused }, |
| 103208 | 106142 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103209 | 106143 | .each = .{ .once = &.{ |
| 103210 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106144 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 103211 | 106145 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103212 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106146 | .{ ._, ._ps, .movl, .tmp1x, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 103213 | 106147 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103214 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 103215 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 103216 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 106148 | .{ ._, ._, .mov, .memi(.dst0b, .tmp0), .tmp3b, ._, ._ }, |
| 106149 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 106150 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 103217 | 106151 | } }, |
| 103218 | 106152 | }, .{ |
| 103219 | 106153 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -103301,7 +106235,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103301 | 106235 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103302 | 106236 | }, |
| 103303 | 106237 | .extra_temps = .{ |
| 103304 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106238 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103305 | 106239 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 103306 | 106240 | .unused, |
| 103307 | 106241 | .unused, |
| ... | ... | @@ -103316,12 +106250,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103316 | 106250 | .dst_temps = .{ .mem, .unused }, |
| 103317 | 106251 | .clobbers = .{ .eflags = true }, |
| 103318 | 106252 | .each = .{ .once = &.{ |
| 103319 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103320 | | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106253 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 106254 | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsi(.src0y, .@"4", .tmp0), ._, ._ }, |
| 103321 | 106255 | .{ ._, .vp_w, .ackssd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 103322 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 103323 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103324 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106256 | .{ ._, .v_q, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 106257 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 106258 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103325 | 106259 | } }, |
| 103326 | 106260 | }, .{ |
| 103327 | 106261 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -103331,7 +106265,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103331 | 106265 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103332 | 106266 | }, |
| 103333 | 106267 | .extra_temps = .{ |
| 103334 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106268 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103335 | 106269 | .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, |
| 103336 | 106270 | .unused, |
| 103337 | 106271 | .unused, |
| ... | ... | @@ -103346,12 +106280,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103346 | 106280 | .dst_temps = .{ .mem, .unused }, |
| 103347 | 106281 | .clobbers = .{ .eflags = true }, |
| 103348 | 106282 | .each = .{ .once = &.{ |
| 103349 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103350 | | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106283 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_size), ._, ._ }, |
| 106284 | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 103351 | 106285 | .{ ._, .p_w, .ackssd, .tmp1x, .tmp1x, ._, ._ }, |
| 103352 | | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 103353 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103354 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106286 | .{ ._, ._d, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 106287 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 106288 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103355 | 106289 | } }, |
| 103356 | 106290 | }, .{ |
| 103357 | 106291 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -103361,7 +106295,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103361 | 106295 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103362 | 106296 | }, |
| 103363 | 106297 | .extra_temps = .{ |
| 103364 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106298 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103365 | 106299 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 103366 | 106300 | .unused, |
| 103367 | 106301 | .unused, |
| ... | ... | @@ -103376,12 +106310,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103376 | 106310 | .dst_temps = .{ .mem, .unused }, |
| 103377 | 106311 | .clobbers = .{ .eflags = true }, |
| 103378 | 106312 | .each = .{ .once = &.{ |
| 103379 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103380 | | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106313 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 106314 | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsi(.src0y, .@"4", .tmp0), ._, ._ }, |
| 103381 | 106315 | .{ ._, .vp_w, .ackusd, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 103382 | | .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 103383 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103384 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106316 | .{ ._, .v_q, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 106317 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 106318 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103385 | 106319 | } }, |
| 103386 | 106320 | }, .{ |
| 103387 | 106321 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -103391,7 +106325,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103391 | 106325 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103392 | 106326 | }, |
| 103393 | 106327 | .extra_temps = .{ |
| 103394 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106328 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103395 | 106329 | .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, |
| 103396 | 106330 | .unused, |
| 103397 | 106331 | .unused, |
| ... | ... | @@ -103406,12 +106340,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103406 | 106340 | .dst_temps = .{ .mem, .unused }, |
| 103407 | 106341 | .clobbers = .{ .eflags = true }, |
| 103408 | 106342 | .each = .{ .once = &.{ |
| 103409 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103410 | | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106343 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_size), ._, ._ }, |
| 106344 | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 103411 | 106345 | .{ ._, .p_w, .ackusd, .tmp1x, .tmp1x, ._, ._ }, |
| 103412 | | .{ ._, ._d, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 103413 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103414 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106346 | .{ ._, ._d, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 106347 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 106348 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103415 | 106349 | } }, |
| 103416 | 106350 | }, .{ |
| 103417 | 106351 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -103421,7 +106355,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103421 | 106355 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103422 | 106356 | }, |
| 103423 | 106357 | .extra_temps = .{ |
| 103424 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106358 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103425 | 106359 | .{ .type = .i32, .kind = .{ .rc = .general_purpose } }, |
| 103426 | 106360 | .unused, |
| 103427 | 106361 | .unused, |
| ... | ... | @@ -103436,11 +106370,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103436 | 106370 | .dst_temps = .{ .mem, .unused }, |
| 103437 | 106371 | .clobbers = .{ .eflags = true }, |
| 103438 | 106372 | .each = .{ .once = &.{ |
| 103439 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103440 | | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103441 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 103442 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103443 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106373 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 106374 | .{ .@"0:", ._, .cvttsd2si, .tmp1d, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 106375 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 106376 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 106377 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103444 | 106378 | } }, |
| 103445 | 106379 | }, .{ |
| 103446 | 106380 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -103450,7 +106384,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103450 | 106384 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103451 | 106385 | }, |
| 103452 | 106386 | .extra_temps = .{ |
| 103453 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106387 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103454 | 106388 | .{ .type = .u16, .kind = .mem }, |
| 103455 | 106389 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 103456 | 106390 | .unused, |
| ... | ... | @@ -103470,11 +106404,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103470 | 106404 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 103471 | 106405 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 103472 | 106406 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ }, |
| 103473 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103474 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103475 | | .{ ._, .fi_p, .st, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103476 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103477 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106407 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 106408 | .{ .@"0:", .f_, .ld, .memsi(.src0q, .@"4", .tmp0), ._, ._, ._ }, |
| 106409 | .{ ._, .fi_p, .st, .memi(.dst0w, .tmp0), ._, ._, ._ }, |
| 106410 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 106411 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103478 | 106412 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 103479 | 106413 | } }, |
| 103480 | 106414 | }, .{ |
| ... | ... | @@ -103485,7 +106419,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103485 | 106419 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103486 | 106420 | }, |
| 103487 | 106421 | .extra_temps = .{ |
| 103488 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106422 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103489 | 106423 | .{ .type = .u16, .kind = .mem }, |
| 103490 | 106424 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 103491 | 106425 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -103500,18 +106434,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103500 | 106434 | .dst_temps = .{ .mem, .unused }, |
| 103501 | 106435 | .clobbers = .{ .eflags = true }, |
| 103502 | 106436 | .each = .{ .once = &.{ |
| 103503 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106437 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 103504 | 106438 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 103505 | 106439 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 103506 | 106440 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 103507 | 106441 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 103508 | 106442 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 103509 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 106443 | .{ .@"0:", .f_, .ld, .memsi(.src0q, .@"4", .tmp0), ._, ._, ._ }, |
| 103510 | 106444 | .{ ._, .fi_p, .st, .tmp4d, ._, ._, ._ }, |
| 103511 | 106445 | .{ ._, ._, .mov, .tmp2d, .tmp4d, ._, ._ }, |
| 103512 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 103513 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103514 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106446 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp2w, ._, ._ }, |
| 106447 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 106448 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103515 | 106449 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 103516 | 106450 | } }, |
| 103517 | 106451 | }, .{ |
| ... | ... | @@ -103523,10 +106457,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103523 | 106457 | }, |
| 103524 | 106458 | .call_frame = .{ .alignment = .@"16" }, |
| 103525 | 106459 | .extra_temps = .{ |
| 103526 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103527 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106460 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106461 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103528 | 106462 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfsi" } }, |
| 103529 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106463 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103530 | 106464 | .unused, |
| 103531 | 106465 | .unused, |
| 103532 | 106466 | .unused, |
| ... | ... | @@ -103538,12 +106472,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103538 | 106472 | .dst_temps = .{ .mem, .unused }, |
| 103539 | 106473 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103540 | 106474 | .each = .{ .once = &.{ |
| 103541 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103542 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106475 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 106476 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 103543 | 106477 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103544 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 103545 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103546 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106478 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 106479 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 106480 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103547 | 106481 | } }, |
| 103548 | 106482 | }, .{ |
| 103549 | 106483 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -103554,10 +106488,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103554 | 106488 | }, |
| 103555 | 106489 | .call_frame = .{ .alignment = .@"16" }, |
| 103556 | 106490 | .extra_temps = .{ |
| 103557 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103558 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106491 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106492 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103559 | 106493 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfsi" } }, |
| 103560 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106494 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103561 | 106495 | .unused, |
| 103562 | 106496 | .unused, |
| 103563 | 106497 | .unused, |
| ... | ... | @@ -103569,12 +106503,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103569 | 106503 | .dst_temps = .{ .mem, .unused }, |
| 103570 | 106504 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103571 | 106505 | .each = .{ .once = &.{ |
| 103572 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103573 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106506 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 106507 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 103574 | 106508 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103575 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 103576 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103577 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106509 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 106510 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 106511 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103578 | 106512 | } }, |
| 103579 | 106513 | }, .{ |
| 103580 | 106514 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -103585,10 +106519,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103585 | 106519 | }, |
| 103586 | 106520 | .call_frame = .{ .alignment = .@"16" }, |
| 103587 | 106521 | .extra_temps = .{ |
| 103588 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103589 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106522 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106523 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103590 | 106524 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfsi" } }, |
| 103591 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106525 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103592 | 106526 | .unused, |
| 103593 | 106527 | .unused, |
| 103594 | 106528 | .unused, |
| ... | ... | @@ -103600,13 +106534,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103600 | 106534 | .dst_temps = .{ .mem, .unused }, |
| 103601 | 106535 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103602 | 106536 | .each = .{ .once = &.{ |
| 103603 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106537 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 103604 | 106538 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103605 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106539 | .{ ._, ._ps, .movl, .tmp1x, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 103606 | 106540 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103607 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 103608 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 103609 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106541 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 106542 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 106543 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103610 | 106544 | } }, |
| 103611 | 106545 | }, .{ |
| 103612 | 106546 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -103652,7 +106586,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103652 | 106586 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103653 | 106587 | }, |
| 103654 | 106588 | .extra_temps = .{ |
| 103655 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106589 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103656 | 106590 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 103657 | 106591 | .unused, |
| 103658 | 106592 | .unused, |
| ... | ... | @@ -103667,11 +106601,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103667 | 106601 | .dst_temps = .{ .mem, .unused }, |
| 103668 | 106602 | .clobbers = .{ .eflags = true }, |
| 103669 | 106603 | .each = .{ .once = &.{ |
| 103670 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103671 | | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103672 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 103673 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 103674 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106604 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 106605 | .{ .@"0:", .v_, .cvttpd2dq, .tmp1x, .memsi(.src0y, .@"2", .tmp0), ._, ._ }, |
| 106606 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 106607 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 106608 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103675 | 106609 | } }, |
| 103676 | 106610 | }, .{ |
| 103677 | 106611 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -103681,7 +106615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103681 | 106615 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103682 | 106616 | }, |
| 103683 | 106617 | .extra_temps = .{ |
| 103684 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106618 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103685 | 106619 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 103686 | 106620 | .unused, |
| 103687 | 106621 | .unused, |
| ... | ... | @@ -103696,11 +106630,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103696 | 106630 | .dst_temps = .{ .mem, .unused }, |
| 103697 | 106631 | .clobbers = .{ .eflags = true }, |
| 103698 | 106632 | .each = .{ .once = &.{ |
| 103699 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103700 | | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 103701 | | .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 103702 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103703 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106633 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 106634 | .{ .@"0:", ._, .cvttpd2dq, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 106635 | .{ ._, ._q, .mov, .memi(.dst0q, .tmp0), .tmp1q, ._, ._ }, |
| 106636 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 106637 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103704 | 106638 | } }, |
| 103705 | 106639 | }, .{ |
| 103706 | 106640 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -103710,7 +106644,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103710 | 106644 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103711 | 106645 | }, |
| 103712 | 106646 | .extra_temps = .{ |
| 103713 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106647 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103714 | 106648 | .{ .type = .u16, .kind = .mem }, |
| 103715 | 106649 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 103716 | 106650 | .unused, |
| ... | ... | @@ -103730,11 +106664,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103730 | 106664 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 103731 | 106665 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 103732 | 106666 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ }, |
| 103733 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103734 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103735 | | .{ ._, .fi_p, .st, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 103736 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103737 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106667 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 106668 | .{ .@"0:", .f_, .ld, .memsi(.src0q, .@"2", .tmp0), ._, ._, ._ }, |
| 106669 | .{ ._, .fi_p, .st, .memi(.dst0d, .tmp0), ._, ._, ._ }, |
| 106670 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 106671 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103738 | 106672 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 103739 | 106673 | } }, |
| 103740 | 106674 | }, .{ |
| ... | ... | @@ -103745,7 +106679,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103745 | 106679 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103746 | 106680 | }, |
| 103747 | 106681 | .extra_temps = .{ |
| 103748 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106682 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103749 | 106683 | .{ .type = .u16, .kind = .mem }, |
| 103750 | 106684 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103751 | 106685 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -103760,18 +106694,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103760 | 106694 | .dst_temps = .{ .mem, .unused }, |
| 103761 | 106695 | .clobbers = .{ .eflags = true }, |
| 103762 | 106696 | .each = .{ .once = &.{ |
| 103763 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106697 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 103764 | 106698 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 103765 | 106699 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 103766 | 106700 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 103767 | 106701 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 103768 | 106702 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 103769 | | .{ .@"0:", .f_, .ld, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 106703 | .{ .@"0:", .f_, .ld, .memsi(.src0q, .@"2", .tmp0), ._, ._, ._ }, |
| 103770 | 106704 | .{ ._, .fi_p, .st, .tmp4q, ._, ._, ._ }, |
| 103771 | 106705 | .{ ._, ._, .mov, .tmp2d, .tmp4d, ._, ._ }, |
| 103772 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 103773 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103774 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106706 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp2d, ._, ._ }, |
| 106707 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 106708 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103775 | 106709 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 103776 | 106710 | } }, |
| 103777 | 106711 | }, .{ |
| ... | ... | @@ -103783,10 +106717,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103783 | 106717 | }, |
| 103784 | 106718 | .call_frame = .{ .alignment = .@"16" }, |
| 103785 | 106719 | .extra_temps = .{ |
| 103786 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103787 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106720 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106721 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103788 | 106722 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfsi" } }, |
| 103789 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106723 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103790 | 106724 | .unused, |
| 103791 | 106725 | .unused, |
| 103792 | 106726 | .unused, |
| ... | ... | @@ -103798,12 +106732,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103798 | 106732 | .dst_temps = .{ .mem, .unused }, |
| 103799 | 106733 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103800 | 106734 | .each = .{ .once = &.{ |
| 103801 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103802 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106735 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 106736 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 103803 | 106737 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103804 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103805 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103806 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106738 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 106739 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 106740 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103807 | 106741 | } }, |
| 103808 | 106742 | }, .{ |
| 103809 | 106743 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -103814,10 +106748,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103814 | 106748 | }, |
| 103815 | 106749 | .call_frame = .{ .alignment = .@"16" }, |
| 103816 | 106750 | .extra_temps = .{ |
| 103817 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103818 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106751 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106752 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103819 | 106753 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfsi" } }, |
| 103820 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 106754 | .{ .type = .u32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103821 | 106755 | .unused, |
| 103822 | 106756 | .unused, |
| 103823 | 106757 | .unused, |
| ... | ... | @@ -103829,12 +106763,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103829 | 106763 | .dst_temps = .{ .mem, .unused }, |
| 103830 | 106764 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103831 | 106765 | .each = .{ .once = &.{ |
| 103832 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103833 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106766 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 106767 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 103834 | 106768 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103835 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103836 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103837 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106769 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 106770 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 106771 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103838 | 106772 | } }, |
| 103839 | 106773 | }, .{ |
| 103840 | 106774 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -103845,10 +106779,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103845 | 106779 | }, |
| 103846 | 106780 | .call_frame = .{ .alignment = .@"16" }, |
| 103847 | 106781 | .extra_temps = .{ |
| 103848 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103849 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106782 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106783 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103850 | 106784 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfsi" } }, |
| 103851 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106785 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103852 | 106786 | .unused, |
| 103853 | 106787 | .unused, |
| 103854 | 106788 | .unused, |
| ... | ... | @@ -103860,12 +106794,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103860 | 106794 | .dst_temps = .{ .mem, .unused }, |
| 103861 | 106795 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103862 | 106796 | .each = .{ .once = &.{ |
| 103863 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103864 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106797 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 106798 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 103865 | 106799 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103866 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103867 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103868 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106800 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 106801 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 106802 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103869 | 106803 | } }, |
| 103870 | 106804 | }, .{ |
| 103871 | 106805 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -103876,10 +106810,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103876 | 106810 | }, |
| 103877 | 106811 | .call_frame = .{ .alignment = .@"16" }, |
| 103878 | 106812 | .extra_temps = .{ |
| 103879 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103880 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106813 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106814 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103881 | 106815 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfsi" } }, |
| 103882 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 106816 | .{ .type = .u32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103883 | 106817 | .unused, |
| 103884 | 106818 | .unused, |
| 103885 | 106819 | .unused, |
| ... | ... | @@ -103891,12 +106825,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103891 | 106825 | .dst_temps = .{ .mem, .unused }, |
| 103892 | 106826 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103893 | 106827 | .each = .{ .once = &.{ |
| 103894 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 103895 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106828 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 106829 | .{ .@"0:", ._sd, .mov, .tmp1x, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 103896 | 106830 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103897 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103898 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103899 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106831 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 106832 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 106833 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103900 | 106834 | } }, |
| 103901 | 106835 | }, .{ |
| 103902 | 106836 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -103907,10 +106841,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103907 | 106841 | }, |
| 103908 | 106842 | .call_frame = .{ .alignment = .@"16" }, |
| 103909 | 106843 | .extra_temps = .{ |
| 103910 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103911 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106844 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106845 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103912 | 106846 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfsi" } }, |
| 103913 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 106847 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103914 | 106848 | .unused, |
| 103915 | 106849 | .unused, |
| 103916 | 106850 | .unused, |
| ... | ... | @@ -103922,13 +106856,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103922 | 106856 | .dst_temps = .{ .mem, .unused }, |
| 103923 | 106857 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103924 | 106858 | .each = .{ .once = &.{ |
| 103925 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106859 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 103926 | 106860 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103927 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106861 | .{ ._, ._ps, .movl, .tmp1x, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 103928 | 106862 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103929 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103930 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103931 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106863 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 106864 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 106865 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103932 | 106866 | } }, |
| 103933 | 106867 | }, .{ |
| 103934 | 106868 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -103939,10 +106873,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103939 | 106873 | }, |
| 103940 | 106874 | .call_frame = .{ .alignment = .@"16" }, |
| 103941 | 106875 | .extra_temps = .{ |
| 103942 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 103943 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 106876 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106877 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103944 | 106878 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfsi" } }, |
| 103945 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 106879 | .{ .type = .u32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 103946 | 106880 | .unused, |
| 103947 | 106881 | .unused, |
| 103948 | 106882 | .unused, |
| ... | ... | @@ -103954,13 +106888,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103954 | 106888 | .dst_temps = .{ .mem, .unused }, |
| 103955 | 106889 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 103956 | 106890 | .each = .{ .once = &.{ |
| 103957 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106891 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 103958 | 106892 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 103959 | | .{ ._, ._ps, .movl, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 106893 | .{ ._, ._ps, .movl, .tmp1x, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 103960 | 106894 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 103961 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 103962 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 103963 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106895 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 106896 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 106897 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103964 | 106898 | } }, |
| 103965 | 106899 | }, .{ |
| 103966 | 106900 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -103970,7 +106904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103970 | 106904 | .{ .src = .{ .to_mem, .none, .none } }, |
| 103971 | 106905 | }, |
| 103972 | 106906 | .extra_temps = .{ |
| 103973 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106907 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 103974 | 106908 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 103975 | 106909 | .unused, |
| 103976 | 106910 | .unused, |
| ... | ... | @@ -103985,11 +106919,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103985 | 106919 | .dst_temps = .{ .mem, .unused }, |
| 103986 | 106920 | .clobbers = .{ .eflags = true }, |
| 103987 | 106921 | .each = .{ .once = &.{ |
| 103988 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 103989 | | .{ .@"0:", .v_, .cvttsd2si, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 103990 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 103991 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 103992 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106922 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 106923 | .{ .@"0:", .v_, .cvttsd2si, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 106924 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp1q, ._, ._ }, |
| 106925 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 106926 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 103993 | 106927 | } }, |
| 103994 | 106928 | }, .{ |
| 103995 | 106929 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -103999,7 +106933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 103999 | 106933 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104000 | 106934 | }, |
| 104001 | 106935 | .extra_temps = .{ |
| 104002 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106936 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104003 | 106937 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 104004 | 106938 | .unused, |
| 104005 | 106939 | .unused, |
| ... | ... | @@ -104014,11 +106948,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104014 | 106948 | .dst_temps = .{ .mem, .unused }, |
| 104015 | 106949 | .clobbers = .{ .eflags = true }, |
| 104016 | 106950 | .each = .{ .once = &.{ |
| 104017 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104018 | | .{ .@"0:", ._, .cvttsd2si, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 104019 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, |
| 104020 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104021 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106951 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 106952 | .{ .@"0:", ._, .cvttsd2si, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 106953 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp1q, ._, ._ }, |
| 106954 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 106955 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104022 | 106956 | } }, |
| 104023 | 106957 | }, .{ |
| 104024 | 106958 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -104028,7 +106962,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104028 | 106962 | .{ .src = .{ .to_mem, .none, .none } }, |
| 104029 | 106963 | }, |
| 104030 | 106964 | .extra_temps = .{ |
| 104031 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106965 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104032 | 106966 | .{ .type = .u16, .kind = .mem }, |
| 104033 | 106967 | .{ .type = .f64, .kind = .{ .reg = .st7 } }, |
| 104034 | 106968 | .unused, |
| ... | ... | @@ -104048,11 +106982,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104048 | 106982 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 104049 | 106983 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 104050 | 106984 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ }, |
| 104051 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 104052 | | .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104053 | | .{ ._, .fi_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 104054 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104055 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 106985 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 106986 | .{ .@"0:", .f_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ }, |
| 106987 | .{ ._, .fi_p, .st, .memi(.dst0q, .tmp0), ._, ._, ._ }, |
| 106988 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 106989 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104056 | 106990 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 104057 | 106991 | } }, |
| 104058 | 106992 | }, .{ |
| ... | ... | @@ -104064,10 +106998,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104064 | 106998 | }, |
| 104065 | 106999 | .call_frame = .{ .alignment = .@"16" }, |
| 104066 | 107000 | .extra_temps = .{ |
| 104067 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104068 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107001 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107002 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104069 | 107003 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfdi" } }, |
| 104070 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 107004 | .{ .type = .i64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104071 | 107005 | .unused, |
| 104072 | 107006 | .unused, |
| 104073 | 107007 | .unused, |
| ... | ... | @@ -104079,12 +107013,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104079 | 107013 | .dst_temps = .{ .mem, .unused }, |
| 104080 | 107014 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104081 | 107015 | .each = .{ .once = &.{ |
| 104082 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104083 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107016 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107017 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104084 | 107018 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104085 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104086 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104087 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107019 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 107020 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107021 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104088 | 107022 | } }, |
| 104089 | 107023 | }, .{ |
| 104090 | 107024 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -104095,10 +107029,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104095 | 107029 | }, |
| 104096 | 107030 | .call_frame = .{ .alignment = .@"16" }, |
| 104097 | 107031 | .extra_temps = .{ |
| 104098 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104099 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107032 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107033 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104100 | 107034 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfdi" } }, |
| 104101 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107035 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104102 | 107036 | .unused, |
| 104103 | 107037 | .unused, |
| 104104 | 107038 | .unused, |
| ... | ... | @@ -104110,12 +107044,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104110 | 107044 | .dst_temps = .{ .mem, .unused }, |
| 104111 | 107045 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104112 | 107046 | .each = .{ .once = &.{ |
| 104113 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104114 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107047 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107048 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104115 | 107049 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104116 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104117 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104118 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107050 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 107051 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107052 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104119 | 107053 | } }, |
| 104120 | 107054 | }, .{ |
| 104121 | 107055 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -104126,10 +107060,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104126 | 107060 | }, |
| 104127 | 107061 | .call_frame = .{ .alignment = .@"16" }, |
| 104128 | 107062 | .extra_temps = .{ |
| 104129 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104130 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107063 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107064 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104131 | 107065 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfdi" } }, |
| 104132 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 107066 | .{ .type = .i64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104133 | 107067 | .unused, |
| 104134 | 107068 | .unused, |
| 104135 | 107069 | .unused, |
| ... | ... | @@ -104141,12 +107075,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104141 | 107075 | .dst_temps = .{ .mem, .unused }, |
| 104142 | 107076 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104143 | 107077 | .each = .{ .once = &.{ |
| 104144 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104145 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107078 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107079 | .{ .@"0:", ._sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104146 | 107080 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104147 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104148 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104149 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107081 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 107082 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107083 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104150 | 107084 | } }, |
| 104151 | 107085 | }, .{ |
| 104152 | 107086 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -104157,10 +107091,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104157 | 107091 | }, |
| 104158 | 107092 | .call_frame = .{ .alignment = .@"16" }, |
| 104159 | 107093 | .extra_temps = .{ |
| 104160 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104161 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107094 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107095 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104162 | 107096 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfdi" } }, |
| 104163 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107097 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104164 | 107098 | .unused, |
| 104165 | 107099 | .unused, |
| 104166 | 107100 | .unused, |
| ... | ... | @@ -104172,12 +107106,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104172 | 107106 | .dst_temps = .{ .mem, .unused }, |
| 104173 | 107107 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104174 | 107108 | .each = .{ .once = &.{ |
| 104175 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104176 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107109 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107110 | .{ .@"0:", ._sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104177 | 107111 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104178 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104179 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104180 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107112 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 107113 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107114 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104181 | 107115 | } }, |
| 104182 | 107116 | }, .{ |
| 104183 | 107117 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -104188,10 +107122,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104188 | 107122 | }, |
| 104189 | 107123 | .call_frame = .{ .alignment = .@"16" }, |
| 104190 | 107124 | .extra_temps = .{ |
| 104191 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104192 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107125 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107126 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104193 | 107127 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfdi" } }, |
| 104194 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 107128 | .{ .type = .i64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104195 | 107129 | .unused, |
| 104196 | 107130 | .unused, |
| 104197 | 107131 | .unused, |
| ... | ... | @@ -104203,13 +107137,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104203 | 107137 | .dst_temps = .{ .mem, .unused }, |
| 104204 | 107138 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104205 | 107139 | .each = .{ .once = &.{ |
| 104206 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107140 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 104207 | 107141 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 104208 | | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107142 | .{ ._, ._ps, .movl, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104209 | 107143 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104210 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104211 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104212 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107144 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 107145 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107146 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104213 | 107147 | } }, |
| 104214 | 107148 | }, .{ |
| 104215 | 107149 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -104220,10 +107154,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104220 | 107154 | }, |
| 104221 | 107155 | .call_frame = .{ .alignment = .@"16" }, |
| 104222 | 107156 | .extra_temps = .{ |
| 104223 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104224 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107157 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107158 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104225 | 107159 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfdi" } }, |
| 104226 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107160 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104227 | 107161 | .unused, |
| 104228 | 107162 | .unused, |
| 104229 | 107163 | .unused, |
| ... | ... | @@ -104235,15 +107169,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104235 | 107169 | .dst_temps = .{ .mem, .unused }, |
| 104236 | 107170 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104237 | 107171 | .each = .{ .once = &.{ |
| 104238 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107172 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 104239 | 107173 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 104240 | | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107174 | .{ ._, ._ps, .movl, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104241 | 107175 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104242 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104243 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104244 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107176 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 107177 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107178 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104245 | 107179 | } }, |
| 104246 | 107180 | }, .{ |
| 107181 | .required_cc_abi = .sysv64, |
| 104247 | 107182 | .required_features = .{ .avx, null, null, null }, |
| 104248 | 107183 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 104249 | 107184 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -104252,11 +107187,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104252 | 107187 | }, |
| 104253 | 107188 | .call_frame = .{ .alignment = .@"16" }, |
| 104254 | 107189 | .extra_temps = .{ |
| 104255 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104256 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107190 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107191 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104257 | 107192 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfti" } }, |
| 104258 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104259 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 107193 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107194 | .unused, |
| 104260 | 107195 | .unused, |
| 104261 | 107196 | .unused, |
| 104262 | 107197 | .unused, |
| ... | ... | @@ -104267,15 +107202,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104267 | 107202 | .dst_temps = .{ .mem, .unused }, |
| 104268 | 107203 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104269 | 107204 | .each = .{ .once = &.{ |
| 104270 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104271 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107205 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107206 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104272 | 107207 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104273 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104274 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 104275 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104276 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107208 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3q0, ._, ._ }, |
| 107209 | .{ ._, ._, .mov, .memsid(.dst0q, .@"2", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 107210 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107211 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107212 | } }, |
| 107213 | }, .{ |
| 107214 | .required_cc_abi = .win64, |
| 107215 | .required_features = .{ .avx, null, null, null }, |
| 107216 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 107217 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107218 | .patterns = &.{ |
| 107219 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107220 | }, |
| 107221 | .call_frame = .{ .alignment = .@"16" }, |
| 107222 | .extra_temps = .{ |
| 107223 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107224 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107225 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfti" } }, |
| 107226 | .unused, |
| 107227 | .unused, |
| 107228 | .unused, |
| 107229 | .unused, |
| 107230 | .unused, |
| 107231 | .unused, |
| 107232 | .unused, |
| 107233 | .unused, |
| 107234 | }, |
| 107235 | .dst_temps = .{ .mem, .unused }, |
| 107236 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107237 | .each = .{ .once = &.{ |
| 107238 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107239 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 107240 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107241 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 107242 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107243 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104277 | 107244 | } }, |
| 104278 | 107245 | }, .{ |
| 107246 | .required_cc_abi = .sysv64, |
| 104279 | 107247 | .required_features = .{ .avx, null, null, null }, |
| 104280 | 107248 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 104281 | 107249 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -104284,11 +107252,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104284 | 107252 | }, |
| 104285 | 107253 | .call_frame = .{ .alignment = .@"16" }, |
| 104286 | 107254 | .extra_temps = .{ |
| 104287 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104288 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107255 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107256 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104289 | 107257 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfti" } }, |
| 104290 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104291 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 107258 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107259 | .unused, |
| 104292 | 107260 | .unused, |
| 104293 | 107261 | .unused, |
| 104294 | 107262 | .unused, |
| ... | ... | @@ -104299,15 +107267,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104299 | 107267 | .dst_temps = .{ .mem, .unused }, |
| 104300 | 107268 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104301 | 107269 | .each = .{ .once = &.{ |
| 104302 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104303 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107270 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107271 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104304 | 107272 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104305 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104306 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 104307 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104308 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107273 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3q0, ._, ._ }, |
| 107274 | .{ ._, ._, .mov, .memsid(.dst0q, .@"2", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 107275 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107276 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107277 | } }, |
| 107278 | }, .{ |
| 107279 | .required_cc_abi = .win64, |
| 107280 | .required_features = .{ .avx, null, null, null }, |
| 107281 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 107282 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107283 | .patterns = &.{ |
| 107284 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107285 | }, |
| 107286 | .call_frame = .{ .alignment = .@"16" }, |
| 107287 | .extra_temps = .{ |
| 107288 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107289 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107290 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfti" } }, |
| 107291 | .unused, |
| 107292 | .unused, |
| 107293 | .unused, |
| 107294 | .unused, |
| 107295 | .unused, |
| 107296 | .unused, |
| 107297 | .unused, |
| 107298 | .unused, |
| 107299 | }, |
| 107300 | .dst_temps = .{ .mem, .unused }, |
| 107301 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107302 | .each = .{ .once = &.{ |
| 107303 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107304 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 107305 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107306 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 107307 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107308 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104309 | 107309 | } }, |
| 104310 | 107310 | }, .{ |
| 107311 | .required_cc_abi = .sysv64, |
| 104311 | 107312 | .required_features = .{ .sse2, null, null, null }, |
| 104312 | 107313 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 104313 | 107314 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -104316,11 +107317,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104316 | 107317 | }, |
| 104317 | 107318 | .call_frame = .{ .alignment = .@"16" }, |
| 104318 | 107319 | .extra_temps = .{ |
| 104319 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104320 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107320 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107321 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104321 | 107322 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfti" } }, |
| 104322 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104323 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 107323 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107324 | .unused, |
| 104324 | 107325 | .unused, |
| 104325 | 107326 | .unused, |
| 104326 | 107327 | .unused, |
| ... | ... | @@ -104331,15 +107332,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104331 | 107332 | .dst_temps = .{ .mem, .unused }, |
| 104332 | 107333 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104333 | 107334 | .each = .{ .once = &.{ |
| 104334 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104335 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107335 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107336 | .{ .@"0:", ._sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104336 | 107337 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104337 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104338 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 104339 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104340 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107338 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3q0, ._, ._ }, |
| 107339 | .{ ._, ._, .mov, .memsid(.dst0q, .@"2", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 107340 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107341 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104341 | 107342 | } }, |
| 104342 | 107343 | }, .{ |
| 107344 | .required_cc_abi = .win64, |
| 107345 | .required_features = .{ .sse2, null, null, null }, |
| 107346 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 107347 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107348 | .patterns = &.{ |
| 107349 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107350 | }, |
| 107351 | .call_frame = .{ .alignment = .@"16" }, |
| 107352 | .extra_temps = .{ |
| 107353 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107354 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107355 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfti" } }, |
| 107356 | .unused, |
| 107357 | .unused, |
| 107358 | .unused, |
| 107359 | .unused, |
| 107360 | .unused, |
| 107361 | .unused, |
| 107362 | .unused, |
| 107363 | .unused, |
| 107364 | }, |
| 107365 | .dst_temps = .{ .mem, .unused }, |
| 107366 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107367 | .each = .{ .once = &.{ |
| 107368 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107369 | .{ .@"0:", ._sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 107370 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107371 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 107372 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107373 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107374 | } }, |
| 107375 | }, .{ |
| 107376 | .required_cc_abi = .sysv64, |
| 104343 | 107377 | .required_features = .{ .sse2, null, null, null }, |
| 104344 | 107378 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 104345 | 107379 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -104348,11 +107382,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104348 | 107382 | }, |
| 104349 | 107383 | .call_frame = .{ .alignment = .@"16" }, |
| 104350 | 107384 | .extra_temps = .{ |
| 104351 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104352 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107385 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107386 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104353 | 107387 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfti" } }, |
| 104354 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104355 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 107388 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107389 | .unused, |
| 104356 | 107390 | .unused, |
| 104357 | 107391 | .unused, |
| 104358 | 107392 | .unused, |
| ... | ... | @@ -104363,15 +107397,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104363 | 107397 | .dst_temps = .{ .mem, .unused }, |
| 104364 | 107398 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104365 | 107399 | .each = .{ .once = &.{ |
| 104366 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104367 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107400 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107401 | .{ .@"0:", ._sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104368 | 107402 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104369 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104370 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 104371 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104372 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107403 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3q0, ._, ._ }, |
| 107404 | .{ ._, ._, .mov, .memsid(.dst0q, .@"2", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 107405 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107406 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107407 | } }, |
| 107408 | }, .{ |
| 107409 | .required_cc_abi = .win64, |
| 107410 | .required_features = .{ .sse2, null, null, null }, |
| 107411 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 107412 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107413 | .patterns = &.{ |
| 107414 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107415 | }, |
| 107416 | .call_frame = .{ .alignment = .@"16" }, |
| 107417 | .extra_temps = .{ |
| 107418 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107419 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107420 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfti" } }, |
| 107421 | .unused, |
| 107422 | .unused, |
| 107423 | .unused, |
| 107424 | .unused, |
| 107425 | .unused, |
| 107426 | .unused, |
| 107427 | .unused, |
| 107428 | .unused, |
| 107429 | }, |
| 107430 | .dst_temps = .{ .mem, .unused }, |
| 107431 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107432 | .each = .{ .once = &.{ |
| 107433 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107434 | .{ .@"0:", ._sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 107435 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107436 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 107437 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107438 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104373 | 107439 | } }, |
| 104374 | 107440 | }, .{ |
| 107441 | .required_cc_abi = .sysv64, |
| 104375 | 107442 | .required_features = .{ .sse, null, null, null }, |
| 104376 | 107443 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 104377 | 107444 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -104380,11 +107447,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104380 | 107447 | }, |
| 104381 | 107448 | .call_frame = .{ .alignment = .@"16" }, |
| 104382 | 107449 | .extra_temps = .{ |
| 104383 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104384 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107450 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107451 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104385 | 107452 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfti" } }, |
| 104386 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104387 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 107453 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107454 | .unused, |
| 104388 | 107455 | .unused, |
| 104389 | 107456 | .unused, |
| 104390 | 107457 | .unused, |
| ... | ... | @@ -104395,16 +107462,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104395 | 107462 | .dst_temps = .{ .mem, .unused }, |
| 104396 | 107463 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104397 | 107464 | .each = .{ .once = &.{ |
| 104398 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107465 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 104399 | 107466 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 104400 | | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107467 | .{ ._, ._ps, .movl, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104401 | 107468 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104402 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104403 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 104404 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104405 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107469 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3q0, ._, ._ }, |
| 107470 | .{ ._, ._, .mov, .memsid(.dst0q, .@"2", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 107471 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107472 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107473 | } }, |
| 107474 | }, .{ |
| 107475 | .required_cc_abi = .win64, |
| 107476 | .required_features = .{ .sse, null, null, null }, |
| 107477 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 107478 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107479 | .patterns = &.{ |
| 107480 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107481 | }, |
| 107482 | .call_frame = .{ .alignment = .@"16" }, |
| 107483 | .extra_temps = .{ |
| 107484 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107485 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107486 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfti" } }, |
| 107487 | .unused, |
| 107488 | .unused, |
| 107489 | .unused, |
| 107490 | .unused, |
| 107491 | .unused, |
| 107492 | .unused, |
| 107493 | .unused, |
| 107494 | .unused, |
| 107495 | }, |
| 107496 | .dst_temps = .{ .mem, .unused }, |
| 107497 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107498 | .each = .{ .once = &.{ |
| 107499 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107500 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 107501 | .{ ._, ._ps, .movl, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 107502 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107503 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 107504 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107505 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104406 | 107506 | } }, |
| 104407 | 107507 | }, .{ |
| 107508 | .required_cc_abi = .sysv64, |
| 104408 | 107509 | .required_features = .{ .sse, null, null, null }, |
| 104409 | 107510 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 104410 | 107511 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| ... | ... | @@ -104413,11 +107514,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104413 | 107514 | }, |
| 104414 | 107515 | .call_frame = .{ .alignment = .@"16" }, |
| 104415 | 107516 | .extra_temps = .{ |
| 104416 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 104417 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107517 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107518 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 104418 | 107519 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfti" } }, |
| 104419 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 104420 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 107520 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107521 | .unused, |
| 104421 | 107522 | .unused, |
| 104422 | 107523 | .unused, |
| 104423 | 107524 | .unused, |
| ... | ... | @@ -104428,14 +107529,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104428 | 107529 | .dst_temps = .{ .mem, .unused }, |
| 104429 | 107530 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104430 | 107531 | .each = .{ .once = &.{ |
| 104431 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107532 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 104432 | 107533 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 104433 | | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107534 | .{ ._, ._ps, .movl, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104434 | 107535 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 104435 | | .{ ._, ._, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 104436 | | .{ ._, ._, .mov, .memsiad(.dst0q, .@"2", .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 104437 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104438 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107536 | .{ ._, ._, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3q0, ._, ._ }, |
| 107537 | .{ ._, ._, .mov, .memsid(.dst0q, .@"2", .tmp0, 8), .tmp3q1, ._, ._ }, |
| 107538 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107539 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107540 | } }, |
| 107541 | }, .{ |
| 107542 | .required_cc_abi = .win64, |
| 107543 | .required_features = .{ .sse, null, null, null }, |
| 107544 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 107545 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107546 | .patterns = &.{ |
| 107547 | .{ .src = .{ .to_mem, .none, .none } }, |
| 107548 | }, |
| 107549 | .call_frame = .{ .alignment = .@"16" }, |
| 107550 | .extra_temps = .{ |
| 107551 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107552 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107553 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfti" } }, |
| 107554 | .unused, |
| 107555 | .unused, |
| 107556 | .unused, |
| 107557 | .unused, |
| 107558 | .unused, |
| 107559 | .unused, |
| 107560 | .unused, |
| 107561 | .unused, |
| 107562 | }, |
| 107563 | .dst_temps = .{ .mem, .unused }, |
| 107564 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107565 | .each = .{ .once = &.{ |
| 107566 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107567 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 107568 | .{ ._, ._ps, .movl, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 107569 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107570 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 107571 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107572 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104439 | 107573 | } }, |
| 104440 | 107574 | }, .{ |
| 104441 | 107575 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -104446,11 +107580,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104446 | 107580 | }, |
| 104447 | 107581 | .call_frame = .{ .alignment = .@"16" }, |
| 104448 | 107582 | .extra_temps = .{ |
| 104449 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107583 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104450 | 107584 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104451 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104452 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104453 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107585 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107586 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 107587 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 104454 | 107588 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfei" } }, |
| 104455 | 107589 | .unused, |
| 104456 | 107590 | .unused, |
| ... | ... | @@ -104461,15 +107595,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104461 | 107595 | .dst_temps = .{ .mem, .unused }, |
| 104462 | 107596 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104463 | 107597 | .each = .{ .once = &.{ |
| 104464 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104465 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 107598 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107599 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 104466 | 107600 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104467 | 107601 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104468 | | .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107602 | .{ ._, .v_sd, .mov, .tmp4x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104469 | 107603 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 104470 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 104471 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104472 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107604 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 107605 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107606 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104473 | 107607 | } }, |
| 104474 | 107608 | }, .{ |
| 104475 | 107609 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -104480,11 +107614,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104480 | 107614 | }, |
| 104481 | 107615 | .call_frame = .{ .alignment = .@"16" }, |
| 104482 | 107616 | .extra_temps = .{ |
| 104483 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107617 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104484 | 107618 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104485 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104486 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104487 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107619 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107620 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 107621 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 104488 | 107622 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfei" } }, |
| 104489 | 107623 | .unused, |
| 104490 | 107624 | .unused, |
| ... | ... | @@ -104495,15 +107629,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104495 | 107629 | .dst_temps = .{ .mem, .unused }, |
| 104496 | 107630 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104497 | 107631 | .each = .{ .once = &.{ |
| 104498 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104499 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 107632 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107633 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 104500 | 107634 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104501 | 107635 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104502 | | .{ ._, .v_sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107636 | .{ ._, .v_sd, .mov, .tmp4x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104503 | 107637 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 104504 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 104505 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104506 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107638 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 107639 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107640 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104507 | 107641 | } }, |
| 104508 | 107642 | }, .{ |
| 104509 | 107643 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -104514,11 +107648,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104514 | 107648 | }, |
| 104515 | 107649 | .call_frame = .{ .alignment = .@"16" }, |
| 104516 | 107650 | .extra_temps = .{ |
| 104517 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107651 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104518 | 107652 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104519 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104520 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104521 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107653 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107654 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 107655 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 104522 | 107656 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfei" } }, |
| 104523 | 107657 | .unused, |
| 104524 | 107658 | .unused, |
| ... | ... | @@ -104529,15 +107663,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104529 | 107663 | .dst_temps = .{ .mem, .unused }, |
| 104530 | 107664 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104531 | 107665 | .each = .{ .once = &.{ |
| 104532 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104533 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 107666 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107667 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 104534 | 107668 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104535 | 107669 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104536 | | .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107670 | .{ ._, ._sd, .mov, .tmp4x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104537 | 107671 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 104538 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 104539 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104540 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107672 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 107673 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107674 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104541 | 107675 | } }, |
| 104542 | 107676 | }, .{ |
| 104543 | 107677 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -104548,11 +107682,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104548 | 107682 | }, |
| 104549 | 107683 | .call_frame = .{ .alignment = .@"16" }, |
| 104550 | 107684 | .extra_temps = .{ |
| 104551 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107685 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104552 | 107686 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104553 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104554 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104555 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107687 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107688 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 107689 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 104556 | 107690 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfei" } }, |
| 104557 | 107691 | .unused, |
| 104558 | 107692 | .unused, |
| ... | ... | @@ -104563,15 +107697,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104563 | 107697 | .dst_temps = .{ .mem, .unused }, |
| 104564 | 107698 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104565 | 107699 | .each = .{ .once = &.{ |
| 104566 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104567 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 107700 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107701 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 104568 | 107702 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104569 | 107703 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104570 | | .{ ._, ._sd, .mov, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107704 | .{ ._, ._sd, .mov, .tmp4x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104571 | 107705 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 104572 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 104573 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104574 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107706 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 107707 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107708 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104575 | 107709 | } }, |
| 104576 | 107710 | }, .{ |
| 104577 | 107711 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -104582,11 +107716,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104582 | 107716 | }, |
| 104583 | 107717 | .call_frame = .{ .alignment = .@"16" }, |
| 104584 | 107718 | .extra_temps = .{ |
| 104585 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107719 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104586 | 107720 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104587 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104588 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104589 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107721 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107722 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 107723 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 104590 | 107724 | .{ .type = .usize, .kind = .{ .extern_func = "__fixdfei" } }, |
| 104591 | 107725 | .unused, |
| 104592 | 107726 | .unused, |
| ... | ... | @@ -104597,16 +107731,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104597 | 107731 | .dst_temps = .{ .mem, .unused }, |
| 104598 | 107732 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104599 | 107733 | .each = .{ .once = &.{ |
| 104600 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104601 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 107734 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107735 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 104602 | 107736 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| 104603 | 107737 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104604 | 107738 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104605 | | .{ ._, ._ps, .movl, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107739 | .{ ._, ._ps, .movl, .tmp4x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104606 | 107740 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 104607 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 104608 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104609 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107741 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 107742 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107743 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104610 | 107744 | } }, |
| 104611 | 107745 | }, .{ |
| 104612 | 107746 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -104617,11 +107751,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104617 | 107751 | }, |
| 104618 | 107752 | .call_frame = .{ .alignment = .@"16" }, |
| 104619 | 107753 | .extra_temps = .{ |
| 104620 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107754 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104621 | 107755 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104622 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 104623 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 104624 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 107756 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107757 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 107758 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 104625 | 107759 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsdfei" } }, |
| 104626 | 107760 | .unused, |
| 104627 | 107761 | .unused, |
| ... | ... | @@ -104632,16 +107766,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104632 | 107766 | .dst_temps = .{ .mem, .unused }, |
| 104633 | 107767 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 104634 | 107768 | .each = .{ .once = &.{ |
| 104635 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 104636 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 107769 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 107770 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 104637 | 107771 | .{ .@"0:", ._ps, .xor, .tmp4x, .tmp4x, ._, ._ }, |
| 104638 | 107772 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 104639 | 107773 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 104640 | | .{ ._, ._ps, .movl, .tmp4x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 107774 | .{ ._, ._ps, .movl, .tmp4x, .memi(.src0q, .tmp0), ._, ._ }, |
| 104641 | 107775 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 104642 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 104643 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 104644 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107776 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 107777 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 107778 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104645 | 107779 | } }, |
| 104646 | 107780 | }, .{ |
| 104647 | 107781 | .required_features = .{ .sse3, .x87, null, null }, |
| ... | ... | @@ -104772,7 +107906,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104772 | 107906 | }, |
| 104773 | 107907 | .extra_temps = .{ |
| 104774 | 107908 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104775 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107909 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104776 | 107910 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104777 | 107911 | .{ .type = .i16, .kind = .mem }, |
| 104778 | 107912 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -104786,15 +107920,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104786 | 107920 | .dst_temps = .{ .mem, .unused }, |
| 104787 | 107921 | .clobbers = .{ .eflags = true }, |
| 104788 | 107922 | .each = .{ .once = &.{ |
| 104789 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 104790 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107923 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 107924 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 104791 | 107925 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 104792 | 107926 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 104793 | 107927 | .{ ._, ._, .movsx, .tmp4d, .tmp3b, ._, ._ }, |
| 104794 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 104795 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 104796 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 104797 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107928 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp4b, ._, ._ }, |
| 107929 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 107930 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 107931 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104798 | 107932 | } }, |
| 104799 | 107933 | }, .{ |
| 104800 | 107934 | .required_features = .{ .sse3, .x87, null, null }, |
| ... | ... | @@ -104805,7 +107939,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104805 | 107939 | }, |
| 104806 | 107940 | .extra_temps = .{ |
| 104807 | 107941 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104808 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107942 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104809 | 107943 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104810 | 107944 | .{ .type = .i16, .kind = .mem }, |
| 104811 | 107945 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -104819,15 +107953,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104819 | 107953 | .dst_temps = .{ .mem, .unused }, |
| 104820 | 107954 | .clobbers = .{ .eflags = true }, |
| 104821 | 107955 | .each = .{ .once = &.{ |
| 104822 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 104823 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107956 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 107957 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 104824 | 107958 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 104825 | 107959 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 104826 | 107960 | .{ ._, ._, .movsx, .tmp4d, .tmp3b, ._, ._ }, |
| 104827 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 104828 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 104829 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 104830 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 107961 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp4b, ._, ._ }, |
| 107962 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 107963 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 107964 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 104831 | 107965 | } }, |
| 104832 | 107966 | }, .{ |
| 104833 | 107967 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| ... | ... | @@ -104838,7 +107972,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104838 | 107972 | }, |
| 104839 | 107973 | .extra_temps = .{ |
| 104840 | 107974 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104841 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107975 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104842 | 107976 | .{ .type = .u16, .kind = .mem }, |
| 104843 | 107977 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 104844 | 107978 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -104852,8 +107986,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104852 | 107986 | .dst_temps = .{ .mem, .unused }, |
| 104853 | 107987 | .clobbers = .{ .eflags = true }, |
| 104854 | 107988 | .each = .{ .once = &.{ |
| 104855 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 104856 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107989 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 107990 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 104857 | 107991 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 104858 | 107992 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 104859 | 107993 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| ... | ... | @@ -104862,10 +107996,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104862 | 107996 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 104863 | 107997 | .{ ._, .fi_p, .st, .tmp5w, ._, ._, ._ }, |
| 104864 | 107998 | .{ ._, ._, .movsx, .tmp3d, .tmp5b, ._, ._ }, |
| 104865 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 104866 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 104867 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 104868 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 107999 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp3b, ._, ._ }, |
| 108000 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 108001 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 108002 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104869 | 108003 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 104870 | 108004 | } }, |
| 104871 | 108005 | }, .{ |
| ... | ... | @@ -104877,7 +108011,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104877 | 108011 | }, |
| 104878 | 108012 | .extra_temps = .{ |
| 104879 | 108013 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104880 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108014 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104881 | 108015 | .{ .type = .u16, .kind = .mem }, |
| 104882 | 108016 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 104883 | 108017 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -104891,8 +108025,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104891 | 108025 | .dst_temps = .{ .mem, .unused }, |
| 104892 | 108026 | .clobbers = .{ .eflags = true }, |
| 104893 | 108027 | .each = .{ .once = &.{ |
| 104894 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 104895 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108028 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 108029 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 104896 | 108030 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 104897 | 108031 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 104898 | 108032 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| ... | ... | @@ -104901,10 +108035,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104901 | 108035 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 104902 | 108036 | .{ ._, .fi_p, .st, .tmp5w, ._, ._, ._ }, |
| 104903 | 108037 | .{ ._, ._, .movsx, .tmp3d, .tmp5b, ._, ._ }, |
| 104904 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 104905 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 104906 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 104907 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 108038 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp3b, ._, ._ }, |
| 108039 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 108040 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 108041 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 104908 | 108042 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 104909 | 108043 | } }, |
| 104910 | 108044 | }, .{ |
| ... | ... | @@ -104916,7 +108050,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104916 | 108050 | }, |
| 104917 | 108051 | .extra_temps = .{ |
| 104918 | 108052 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104919 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108053 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104920 | 108054 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104921 | 108055 | .{ .type = .i16, .kind = .mem }, |
| 104922 | 108056 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -104930,15 +108064,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104930 | 108064 | .dst_temps = .{ .mem, .unused }, |
| 104931 | 108065 | .clobbers = .{ .eflags = true }, |
| 104932 | 108066 | .each = .{ .once = &.{ |
| 104933 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 104934 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108067 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 108068 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 104935 | 108069 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 104936 | 108070 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 104937 | 108071 | .{ ._, ._, .movzx, .tmp4d, .tmp3b, ._, ._ }, |
| 104938 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 104939 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 104940 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 104941 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108072 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp4b, ._, ._ }, |
| 108073 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 108074 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 108075 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 104942 | 108076 | } }, |
| 104943 | 108077 | }, .{ |
| 104944 | 108078 | .required_features = .{ .sse3, .x87, null, null }, |
| ... | ... | @@ -104949,7 +108083,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104949 | 108083 | }, |
| 104950 | 108084 | .extra_temps = .{ |
| 104951 | 108085 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104952 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108086 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104953 | 108087 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 104954 | 108088 | .{ .type = .i16, .kind = .mem }, |
| 104955 | 108089 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -104963,15 +108097,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104963 | 108097 | .dst_temps = .{ .mem, .unused }, |
| 104964 | 108098 | .clobbers = .{ .eflags = true }, |
| 104965 | 108099 | .each = .{ .once = &.{ |
| 104966 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 104967 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108100 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 108101 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 104968 | 108102 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 104969 | 108103 | .{ ._, .fi_p, .stt, .tmp3w, ._, ._, ._ }, |
| 104970 | 108104 | .{ ._, ._, .movzx, .tmp4d, .tmp3b, ._, ._ }, |
| 104971 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 104972 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 104973 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 104974 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 108105 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp4b, ._, ._ }, |
| 108106 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 108107 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 108108 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 104975 | 108109 | } }, |
| 104976 | 108110 | }, .{ |
| 104977 | 108111 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| ... | ... | @@ -104982,7 +108116,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104982 | 108116 | }, |
| 104983 | 108117 | .extra_temps = .{ |
| 104984 | 108118 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 104985 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108119 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 104986 | 108120 | .{ .type = .u16, .kind = .mem }, |
| 104987 | 108121 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 104988 | 108122 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -104996,8 +108130,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 104996 | 108130 | .dst_temps = .{ .mem, .unused }, |
| 104997 | 108131 | .clobbers = .{ .eflags = true }, |
| 104998 | 108132 | .each = .{ .once = &.{ |
| 104999 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105000 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108133 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 108134 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 105001 | 108135 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 105002 | 108136 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 105003 | 108137 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| ... | ... | @@ -105006,10 +108140,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105006 | 108140 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 105007 | 108141 | .{ ._, .fi_p, .st, .tmp5w, ._, ._, ._ }, |
| 105008 | 108142 | .{ ._, ._, .movzx, .tmp3d, .tmp5b, ._, ._ }, |
| 105009 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 105010 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105011 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 105012 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108143 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp3b, ._, ._ }, |
| 108144 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 108145 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 108146 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105013 | 108147 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 105014 | 108148 | } }, |
| 105015 | 108149 | }, .{ |
| ... | ... | @@ -105021,7 +108155,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105021 | 108155 | }, |
| 105022 | 108156 | .extra_temps = .{ |
| 105023 | 108157 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 105024 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108158 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105025 | 108159 | .{ .type = .u16, .kind = .mem }, |
| 105026 | 108160 | .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, |
| 105027 | 108161 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -105035,8 +108169,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105035 | 108169 | .dst_temps = .{ .mem, .unused }, |
| 105036 | 108170 | .clobbers = .{ .eflags = true }, |
| 105037 | 108171 | .each = .{ .once = &.{ |
| 105038 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 105039 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108172 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 108173 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 105040 | 108174 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 105041 | 108175 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 105042 | 108176 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| ... | ... | @@ -105045,10 +108179,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105045 | 108179 | .{ .@"0:", .f_, .ld, .lea(.tmp0t), ._, ._, ._ }, |
| 105046 | 108180 | .{ ._, .fi_p, .st, .tmp5w, ._, ._, ._ }, |
| 105047 | 108181 | .{ ._, ._, .movzx, .tmp3d, .tmp5b, ._, ._ }, |
| 105048 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp3b, ._, ._ }, |
| 105049 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 105050 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 105051 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 108182 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp3b, ._, ._ }, |
| 108183 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 108184 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 108185 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 105052 | 108186 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 105053 | 108187 | } }, |
| 105054 | 108188 | }, .{ |
| ... | ... | @@ -105117,7 +108251,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105117 | 108251 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105118 | 108252 | }, |
| 105119 | 108253 | .extra_temps = .{ |
| 105120 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108254 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105121 | 108255 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 105122 | 108256 | .unused, |
| 105123 | 108257 | .unused, |
| ... | ... | @@ -105132,11 +108266,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105132 | 108266 | .dst_temps = .{ .mem, .unused }, |
| 105133 | 108267 | .clobbers = .{ .eflags = true }, |
| 105134 | 108268 | .each = .{ .once = &.{ |
| 105135 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105136 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105137 | | .{ ._, .fi_p, .stt, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105138 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 105139 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108269 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 108270 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"8", .tmp0), ._, ._, ._ }, |
| 108271 | .{ ._, .fi_p, .stt, .memi(.dst0w, .tmp0), ._, ._, ._ }, |
| 108272 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 108273 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105140 | 108274 | } }, |
| 105141 | 108275 | }, .{ |
| 105142 | 108276 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -105146,7 +108280,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105146 | 108280 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105147 | 108281 | }, |
| 105148 | 108282 | .extra_temps = .{ |
| 105149 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108283 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105150 | 108284 | .{ .type = .u16, .kind = .mem }, |
| 105151 | 108285 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 105152 | 108286 | .unused, |
| ... | ... | @@ -105166,11 +108300,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105166 | 108300 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 105167 | 108301 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105168 | 108302 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ }, |
| 105169 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105170 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105171 | | .{ ._, .fi_p, .st, .memia(.dst0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105172 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 105173 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108303 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 108304 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"8", .tmp0), ._, ._, ._ }, |
| 108305 | .{ ._, .fi_p, .st, .memi(.dst0w, .tmp0), ._, ._, ._ }, |
| 108306 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 108307 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105174 | 108308 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105175 | 108309 | } }, |
| 105176 | 108310 | }, .{ |
| ... | ... | @@ -105181,7 +108315,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105181 | 108315 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105182 | 108316 | }, |
| 105183 | 108317 | .extra_temps = .{ |
| 105184 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108318 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105185 | 108319 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 105186 | 108320 | .{ .type = .i32, .kind = .mem }, |
| 105187 | 108321 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -105196,13 +108330,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105196 | 108330 | .dst_temps = .{ .mem, .unused }, |
| 105197 | 108331 | .clobbers = .{ .eflags = true }, |
| 105198 | 108332 | .each = .{ .once = &.{ |
| 105199 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105200 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 108333 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 108334 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"8", .tmp0), ._, ._, ._ }, |
| 105201 | 108335 | .{ ._, .fi_p, .stt, .tmp2d, ._, ._, ._ }, |
| 105202 | 108336 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 105203 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 105204 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 105205 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108337 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 108338 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 108339 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105206 | 108340 | } }, |
| 105207 | 108341 | }, .{ |
| 105208 | 108342 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -105212,7 +108346,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105212 | 108346 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105213 | 108347 | }, |
| 105214 | 108348 | .extra_temps = .{ |
| 105215 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108349 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105216 | 108350 | .{ .type = .u16, .kind = .mem }, |
| 105217 | 108351 | .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, |
| 105218 | 108352 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -105227,18 +108361,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105227 | 108361 | .dst_temps = .{ .mem, .unused }, |
| 105228 | 108362 | .clobbers = .{ .eflags = true }, |
| 105229 | 108363 | .each = .{ .once = &.{ |
| 105230 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108364 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 105231 | 108365 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 105232 | 108366 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 105233 | 108367 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 105234 | 108368 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105235 | 108369 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 105236 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 108370 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"8", .tmp0), ._, ._, ._ }, |
| 105237 | 108371 | .{ ._, .fi_p, .st, .tmp4d, ._, ._, ._ }, |
| 105238 | 108372 | .{ ._, ._, .mov, .tmp2d, .tmp4d, ._, ._ }, |
| 105239 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 105240 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 105241 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108373 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp2w, ._, ._ }, |
| 108374 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 108375 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105242 | 108376 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105243 | 108377 | } }, |
| 105244 | 108378 | }, .{ |
| ... | ... | @@ -105307,7 +108441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105307 | 108441 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105308 | 108442 | }, |
| 105309 | 108443 | .extra_temps = .{ |
| 105310 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108444 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105311 | 108445 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 105312 | 108446 | .unused, |
| 105313 | 108447 | .unused, |
| ... | ... | @@ -105322,11 +108456,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105322 | 108456 | .dst_temps = .{ .mem, .unused }, |
| 105323 | 108457 | .clobbers = .{ .eflags = true }, |
| 105324 | 108458 | .each = .{ .once = &.{ |
| 105325 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105326 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105327 | | .{ ._, .fi_p, .stt, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105328 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105329 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108459 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 108460 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"4", .tmp0), ._, ._, ._ }, |
| 108461 | .{ ._, .fi_p, .stt, .memi(.dst0d, .tmp0), ._, ._, ._ }, |
| 108462 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 108463 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105330 | 108464 | } }, |
| 105331 | 108465 | }, .{ |
| 105332 | 108466 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -105336,7 +108470,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105336 | 108470 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105337 | 108471 | }, |
| 105338 | 108472 | .extra_temps = .{ |
| 105339 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108473 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105340 | 108474 | .{ .type = .u16, .kind = .mem }, |
| 105341 | 108475 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 105342 | 108476 | .unused, |
| ... | ... | @@ -105356,11 +108490,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105356 | 108490 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 105357 | 108491 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105358 | 108492 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ }, |
| 105359 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105360 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105361 | | .{ ._, .fi_p, .st, .memia(.dst0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105362 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105363 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108493 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 108494 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"4", .tmp0), ._, ._, ._ }, |
| 108495 | .{ ._, .fi_p, .st, .memi(.dst0d, .tmp0), ._, ._, ._ }, |
| 108496 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 108497 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105364 | 108498 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105365 | 108499 | } }, |
| 105366 | 108500 | }, .{ |
| ... | ... | @@ -105371,7 +108505,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105371 | 108505 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105372 | 108506 | }, |
| 105373 | 108507 | .extra_temps = .{ |
| 105374 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108508 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105375 | 108509 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 105376 | 108510 | .{ .type = .i64, .kind = .mem }, |
| 105377 | 108511 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| ... | ... | @@ -105386,13 +108520,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105386 | 108520 | .dst_temps = .{ .mem, .unused }, |
| 105387 | 108521 | .clobbers = .{ .eflags = true }, |
| 105388 | 108522 | .each = .{ .once = &.{ |
| 105389 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105390 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 108523 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 108524 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"4", .tmp0), ._, ._, ._ }, |
| 105391 | 108525 | .{ ._, .fi_p, .stt, .tmp2q, ._, ._, ._ }, |
| 105392 | 108526 | .{ ._, ._, .mov, .tmp3d, .tmp2d, ._, ._ }, |
| 105393 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 105394 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105395 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108527 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 108528 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 108529 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105396 | 108530 | } }, |
| 105397 | 108531 | }, .{ |
| 105398 | 108532 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -105402,7 +108536,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105402 | 108536 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105403 | 108537 | }, |
| 105404 | 108538 | .extra_temps = .{ |
| 105405 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108539 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105406 | 108540 | .{ .type = .u16, .kind = .mem }, |
| 105407 | 108541 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105408 | 108542 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| ... | ... | @@ -105417,18 +108551,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105417 | 108551 | .dst_temps = .{ .mem, .unused }, |
| 105418 | 108552 | .clobbers = .{ .eflags = true }, |
| 105419 | 108553 | .each = .{ .once = &.{ |
| 105420 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 108554 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 105421 | 108555 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 105422 | 108556 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 105423 | 108557 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 105424 | 108558 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105425 | 108559 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 105426 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 108560 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"4", .tmp0), ._, ._, ._ }, |
| 105427 | 108561 | .{ ._, .fi_p, .st, .tmp4q, ._, ._, ._ }, |
| 105428 | 108562 | .{ ._, ._, .mov, .tmp2d, .tmp4d, ._, ._ }, |
| 105429 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp2d, ._, ._ }, |
| 105430 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 105431 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108563 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp2d, ._, ._ }, |
| 108564 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 108565 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105432 | 108566 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105433 | 108567 | } }, |
| 105434 | 108568 | }, .{ |
| ... | ... | @@ -105490,6 +108624,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105490 | 108624 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105491 | 108625 | } }, |
| 105492 | 108626 | }, .{ |
| 108627 | .required_abi = .gnu, |
| 105493 | 108628 | .required_features = .{ .@"64bit", .sse3, .x87, null }, |
| 105494 | 108629 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 105495 | 108630 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| ... | ... | @@ -105526,6 +108661,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105526 | 108661 | .{ ._, ._, .@"or", .dst0q, .tmp0q, ._, ._ }, |
| 105527 | 108662 | } }, |
| 105528 | 108663 | }, .{ |
| 108664 | .required_abi = .gnu, |
| 105529 | 108665 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 105530 | 108666 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 105531 | 108667 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| ... | ... | @@ -105567,6 +108703,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105567 | 108703 | .{ ._, ._, .@"and", .dst0q, .tmp4q, ._, ._ }, |
| 105568 | 108704 | .{ ._, ._, .@"or", .dst0q, .tmp5q, ._, ._ }, |
| 105569 | 108705 | } }, |
| 108706 | }, .{ |
| 108707 | .required_abi = .msvc, |
| 108708 | .required_features = .{ .@"64bit", .x87, null, null }, |
| 108709 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 108710 | .dst_constraints = .{ .{ .exact_unsigned_int = 64 }, .any }, |
| 108711 | .patterns = &.{ |
| 108712 | .{ .src = .{ .mem, .none, .none } }, |
| 108713 | .{ .src = .{ .to_x87, .none, .none } }, |
| 108714 | }, |
| 108715 | .extra_temps = .{ |
| 108716 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 108717 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 108718 | .{ .type = .u16, .kind = .mem }, |
| 108719 | .{ .type = .f32, .kind = .{ .@"0x1p63_mem" = .{} } }, |
| 108720 | .{ .type = .i64, .kind = .mem }, |
| 108721 | .{ .type = .i64, .kind = .{ .rc = .general_purpose } }, |
| 108722 | .unused, |
| 108723 | .unused, |
| 108724 | .unused, |
| 108725 | .unused, |
| 108726 | .unused, |
| 108727 | }, |
| 108728 | .dst_temps = .{ .{ .rc = .general_purpose }, .unused }, |
| 108729 | .clobbers = .{ .eflags = true }, |
| 108730 | .each = .{ .once = &.{ |
| 108731 | .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, |
| 108732 | .{ ._, .f_, .ld, .tmp0t, ._, ._, ._ }, |
| 108733 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 108734 | .{ ._, ._, .movzx, .dst0d, .memd(.tmp2b, 1), ._, ._ }, |
| 108735 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_11_11), ._, ._ }, |
| 108736 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 108737 | .{ ._, ._, .mov, .memd(.tmp2b, 1), .dst0b, ._, ._ }, |
| 108738 | .{ ._, ._, .lea, .dst0q, .mem(.tmp3), ._, ._ }, |
| 108739 | .{ ._, .fi_p, .st, .tmp4q, ._, ._, ._ }, |
| 108740 | .{ ._, .f_, .sub, .lea(.dst0d), ._, ._, ._ }, |
| 108741 | .{ ._, ._, .mov, .tmp5q, .tmp4q, ._, ._ }, |
| 108742 | .{ ._, .fi_p, .st, .tmp4q, ._, ._, ._ }, |
| 108743 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 108744 | .{ ._, ._, .mov, .dst0q, .tmp5q, ._, ._ }, |
| 108745 | .{ ._, ._r, .sa, .dst0q, .ui(63), ._, ._ }, |
| 108746 | .{ ._, ._, .@"and", .dst0q, .tmp4q, ._, ._ }, |
| 108747 | .{ ._, ._, .@"or", .dst0q, .tmp5q, ._, ._ }, |
| 108748 | } }, |
| 105570 | 108749 | }, .{ |
| 105571 | 108750 | .required_features = .{ .sse3, .x87, null, null }, |
| 105572 | 108751 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| ... | ... | @@ -105575,7 +108754,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105575 | 108754 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105576 | 108755 | }, |
| 105577 | 108756 | .extra_temps = .{ |
| 105578 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108757 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105579 | 108758 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 105580 | 108759 | .unused, |
| 105581 | 108760 | .unused, |
| ... | ... | @@ -105590,11 +108769,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105590 | 108769 | .dst_temps = .{ .mem, .unused }, |
| 105591 | 108770 | .clobbers = .{ .eflags = true }, |
| 105592 | 108771 | .each = .{ .once = &.{ |
| 105593 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105594 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105595 | | .{ ._, .fi_p, .stt, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105596 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105597 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108772 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 108773 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"2", .tmp0), ._, ._, ._ }, |
| 108774 | .{ ._, .fi_p, .stt, .memi(.dst0q, .tmp0), ._, ._, ._ }, |
| 108775 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 108776 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105598 | 108777 | } }, |
| 105599 | 108778 | }, .{ |
| 105600 | 108779 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -105604,7 +108783,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105604 | 108783 | .{ .src = .{ .to_mem, .none, .none } }, |
| 105605 | 108784 | }, |
| 105606 | 108785 | .extra_temps = .{ |
| 105607 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108786 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 105608 | 108787 | .{ .type = .u16, .kind = .mem }, |
| 105609 | 108788 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 105610 | 108789 | .unused, |
| ... | ... | @@ -105624,15 +108803,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105624 | 108803 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_11_00), ._, ._ }, |
| 105625 | 108804 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105626 | 108805 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp0b, ._, ._ }, |
| 105627 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105628 | | .{ .@"0:", .f_, .ld, .memsia(.src0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105629 | | .{ ._, .fi_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 105630 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105631 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108806 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 108807 | .{ .@"0:", .f_, .ld, .memsi(.src0t, .@"2", .tmp0), ._, ._, ._ }, |
| 108808 | .{ ._, .fi_p, .st, .memi(.dst0q, .tmp0), ._, ._, ._ }, |
| 108809 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 108810 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105632 | 108811 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 105633 | 108812 | } }, |
| 105634 | 108813 | }, .{ |
| 105635 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108814 | .required_cc_abi = .sysv64, |
| 108815 | .required_features = .{ .avx, null, null, null }, |
| 105636 | 108816 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105637 | 108817 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105638 | 108818 | .patterns = &.{ |
| ... | ... | @@ -105640,11 +108820,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105640 | 108820 | }, |
| 105641 | 108821 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105642 | 108822 | .extra_temps = .{ |
| 105643 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105644 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 108823 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 108824 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105645 | 108825 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105646 | | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfti" } }, |
| 105647 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 108826 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfdi" } }, |
| 108827 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105648 | 108828 | .unused, |
| 105649 | 108829 | .unused, |
| 105650 | 108830 | .unused, |
| ... | ... | @@ -105655,16 +108835,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105655 | 108835 | .dst_temps = .{ .mem, .unused }, |
| 105656 | 108836 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105657 | 108837 | .each = .{ .once = &.{ |
| 105658 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105659 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108838 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 108839 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 105660 | 108840 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 105661 | 108841 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105662 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 105663 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105664 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108842 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ }, |
| 108843 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 108844 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105665 | 108845 | } }, |
| 105666 | 108846 | }, .{ |
| 105667 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 108847 | .required_cc_abi = .sysv64, |
| 108848 | .required_features = .{ .sse2, null, null, null }, |
| 105668 | 108849 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105669 | 108850 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105670 | 108851 | .patterns = &.{ |
| ... | ... | @@ -105672,11 +108853,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105672 | 108853 | }, |
| 105673 | 108854 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105674 | 108855 | .extra_temps = .{ |
| 105675 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105676 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 108856 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 108857 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105677 | 108858 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105678 | | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfti" } }, |
| 105679 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 108859 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfdi" } }, |
| 108860 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105680 | 108861 | .unused, |
| 105681 | 108862 | .unused, |
| 105682 | 108863 | .unused, |
| ... | ... | @@ -105687,16 +108868,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105687 | 108868 | .dst_temps = .{ .mem, .unused }, |
| 105688 | 108869 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105689 | 108870 | .each = .{ .once = &.{ |
| 105690 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105691 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108871 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 108872 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 105692 | 108873 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 105693 | 108874 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105694 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 105695 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105696 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108875 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ }, |
| 108876 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 108877 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105697 | 108878 | } }, |
| 105698 | 108879 | }, .{ |
| 105699 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108880 | .required_cc_abi = .sysv64, |
| 108881 | .required_features = .{ .sse, null, null, null }, |
| 105700 | 108882 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105701 | 108883 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 105702 | 108884 | .patterns = &.{ |
| ... | ... | @@ -105704,11 +108886,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105704 | 108886 | }, |
| 105705 | 108887 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105706 | 108888 | .extra_temps = .{ |
| 105707 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105708 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 108889 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 108890 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105709 | 108891 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105710 | | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfti" } }, |
| 105711 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 108892 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfdi" } }, |
| 108893 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105712 | 108894 | .unused, |
| 105713 | 108895 | .unused, |
| 105714 | 108896 | .unused, |
| ... | ... | @@ -105719,16 +108901,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105719 | 108901 | .dst_temps = .{ .mem, .unused }, |
| 105720 | 108902 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105721 | 108903 | .each = .{ .once = &.{ |
| 105722 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 105723 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 108904 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 108905 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 105724 | 108906 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 105725 | 108907 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105726 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 105727 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 105728 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 108908 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q, ._, ._ }, |
| 108909 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 108910 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105729 | 108911 | } }, |
| 105730 | 108912 | }, .{ |
| 105731 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108913 | .required_cc_abi = .win64, |
| 108914 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 108915 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any }, |
| 108916 | .patterns = &.{ |
| 108917 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108918 | }, |
| 108919 | .call_frame = .{ .alignment = .@"16" }, |
| 108920 | .extra_temps = .{ |
| 108921 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 108922 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108923 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfdi" } }, |
| 108924 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108925 | .unused, |
| 108926 | .unused, |
| 108927 | .unused, |
| 108928 | .unused, |
| 108929 | .unused, |
| 108930 | .unused, |
| 108931 | .unused, |
| 108932 | }, |
| 108933 | .dst_temps = .{ .mem, .unused }, |
| 108934 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108935 | .each = .{ .once = &.{ |
| 108936 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 108937 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"2", .tmp0), ._, ._ }, |
| 108938 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108939 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 108940 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 108941 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108942 | } }, |
| 108943 | }, .{ |
| 108944 | .required_cc_abi = .sysv64, |
| 108945 | .required_features = .{ .avx, null, null, null }, |
| 105732 | 108946 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 105733 | 108947 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 105734 | 108948 | .patterns = &.{ |
| ... | ... | @@ -105736,7 +108950,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105736 | 108950 | }, |
| 105737 | 108951 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105738 | 108952 | .extra_temps = .{ |
| 105739 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 108953 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105740 | 108954 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105741 | 108955 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfti" } }, |
| 105742 | 108956 | .unused, |
| ... | ... | @@ -105748,7 +108962,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105748 | 108962 | .unused, |
| 105749 | 108963 | .unused, |
| 105750 | 108964 | }, |
| 105751 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 108965 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 105752 | 108966 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105753 | 108967 | .each = .{ .once = &.{ |
| 105754 | 108968 | .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| ... | ... | @@ -105756,7 +108970,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105756 | 108970 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105757 | 108971 | } }, |
| 105758 | 108972 | }, .{ |
| 105759 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 108973 | .required_cc_abi = .sysv64, |
| 108974 | .required_features = .{ .avx, null, null, null }, |
| 105760 | 108975 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 105761 | 108976 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 105762 | 108977 | .patterns = &.{ |
| ... | ... | @@ -105764,7 +108979,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105764 | 108979 | }, |
| 105765 | 108980 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105766 | 108981 | .extra_temps = .{ |
| 105767 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 108982 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105768 | 108983 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105769 | 108984 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfti" } }, |
| 105770 | 108985 | .unused, |
| ... | ... | @@ -105776,7 +108991,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105776 | 108991 | .unused, |
| 105777 | 108992 | .unused, |
| 105778 | 108993 | }, |
| 105779 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 108994 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 105780 | 108995 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105781 | 108996 | .each = .{ .once = &.{ |
| 105782 | 108997 | .{ ._, .v_dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| ... | ... | @@ -105784,7 +108999,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105784 | 108999 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105785 | 109000 | } }, |
| 105786 | 109001 | }, .{ |
| 105787 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109002 | .required_cc_abi = .sysv64, |
| 109003 | .required_features = .{ .sse2, null, null, null }, |
| 105788 | 109004 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 105789 | 109005 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 105790 | 109006 | .patterns = &.{ |
| ... | ... | @@ -105792,7 +109008,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105792 | 109008 | }, |
| 105793 | 109009 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105794 | 109010 | .extra_temps = .{ |
| 105795 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109011 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105796 | 109012 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105797 | 109013 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfti" } }, |
| 105798 | 109014 | .unused, |
| ... | ... | @@ -105804,7 +109020,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105804 | 109020 | .unused, |
| 105805 | 109021 | .unused, |
| 105806 | 109022 | }, |
| 105807 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 109023 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 105808 | 109024 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105809 | 109025 | .each = .{ .once = &.{ |
| 105810 | 109026 | .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| ... | ... | @@ -105812,7 +109028,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105812 | 109028 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105813 | 109029 | } }, |
| 105814 | 109030 | }, .{ |
| 105815 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109031 | .required_cc_abi = .sysv64, |
| 109032 | .required_features = .{ .sse2, null, null, null }, |
| 105816 | 109033 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 105817 | 109034 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 105818 | 109035 | .patterns = &.{ |
| ... | ... | @@ -105820,7 +109037,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105820 | 109037 | }, |
| 105821 | 109038 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105822 | 109039 | .extra_temps = .{ |
| 105823 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109040 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105824 | 109041 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105825 | 109042 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfti" } }, |
| 105826 | 109043 | .unused, |
| ... | ... | @@ -105832,7 +109049,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105832 | 109049 | .unused, |
| 105833 | 109050 | .unused, |
| 105834 | 109051 | }, |
| 105835 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 109052 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 105836 | 109053 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105837 | 109054 | .each = .{ .once = &.{ |
| 105838 | 109055 | .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ }, |
| ... | ... | @@ -105840,7 +109057,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105840 | 109057 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105841 | 109058 | } }, |
| 105842 | 109059 | }, .{ |
| 105843 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109060 | .required_cc_abi = .sysv64, |
| 109061 | .required_features = .{ .sse, null, null, null }, |
| 105844 | 109062 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 105845 | 109063 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 105846 | 109064 | .patterns = &.{ |
| ... | ... | @@ -105848,7 +109066,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105848 | 109066 | }, |
| 105849 | 109067 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105850 | 109068 | .extra_temps = .{ |
| 105851 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109069 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105852 | 109070 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105853 | 109071 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfti" } }, |
| 105854 | 109072 | .unused, |
| ... | ... | @@ -105860,7 +109078,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105860 | 109078 | .unused, |
| 105861 | 109079 | .unused, |
| 105862 | 109080 | }, |
| 105863 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 109081 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 105864 | 109082 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105865 | 109083 | .each = .{ .once = &.{ |
| 105866 | 109084 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| ... | ... | @@ -105868,7 +109086,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105868 | 109086 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105869 | 109087 | } }, |
| 105870 | 109088 | }, .{ |
| 105871 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109089 | .required_cc_abi = .sysv64, |
| 109090 | .required_features = .{ .sse, null, null, null }, |
| 105872 | 109091 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 105873 | 109092 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 105874 | 109093 | .patterns = &.{ |
| ... | ... | @@ -105876,7 +109095,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105876 | 109095 | }, |
| 105877 | 109096 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105878 | 109097 | .extra_temps = .{ |
| 105879 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109098 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105880 | 109099 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105881 | 109100 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfti" } }, |
| 105882 | 109101 | .unused, |
| ... | ... | @@ -105888,7 +109107,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105888 | 109107 | .unused, |
| 105889 | 109108 | .unused, |
| 105890 | 109109 | }, |
| 105891 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 109110 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 105892 | 109111 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105893 | 109112 | .each = .{ .once = &.{ |
| 105894 | 109113 | .{ ._, ._ps, .mova, .tmp0x, .src0x, ._, ._ }, |
| ... | ... | @@ -105896,7 +109115,62 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105896 | 109115 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 105897 | 109116 | } }, |
| 105898 | 109117 | }, .{ |
| 105899 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109118 | .required_cc_abi = .win64, |
| 109119 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 109120 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 109121 | .patterns = &.{ |
| 109122 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109123 | }, |
| 109124 | .call_frame = .{ .alignment = .@"16" }, |
| 109125 | .extra_temps = .{ |
| 109126 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109127 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfti" } }, |
| 109128 | .unused, |
| 109129 | .unused, |
| 109130 | .unused, |
| 109131 | .unused, |
| 109132 | .unused, |
| 109133 | .unused, |
| 109134 | .unused, |
| 109135 | .unused, |
| 109136 | .unused, |
| 109137 | }, |
| 109138 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 109139 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109140 | .each = .{ .once = &.{ |
| 109141 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109142 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 109143 | } }, |
| 109144 | }, .{ |
| 109145 | .required_cc_abi = .win64, |
| 109146 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 109147 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 109148 | .patterns = &.{ |
| 109149 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109150 | }, |
| 109151 | .call_frame = .{ .alignment = .@"16" }, |
| 109152 | .extra_temps = .{ |
| 109153 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109154 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfti" } }, |
| 109155 | .unused, |
| 109156 | .unused, |
| 109157 | .unused, |
| 109158 | .unused, |
| 109159 | .unused, |
| 109160 | .unused, |
| 109161 | .unused, |
| 109162 | .unused, |
| 109163 | .unused, |
| 109164 | }, |
| 109165 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 109166 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109167 | .each = .{ .once = &.{ |
| 109168 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 109169 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 109170 | } }, |
| 109171 | }, .{ |
| 109172 | .required_cc_abi = .sysv64, |
| 109173 | .required_features = .{ .avx, null, null, null }, |
| 105900 | 109174 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105901 | 109175 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 105902 | 109176 | .patterns = &.{ |
| ... | ... | @@ -105904,12 +109178,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105904 | 109178 | }, |
| 105905 | 109179 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105906 | 109180 | .extra_temps = .{ |
| 105907 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105908 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109181 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109182 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105909 | 109183 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105910 | 109184 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfti" } }, |
| 105911 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 105912 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 109185 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109186 | .unused, |
| 105913 | 109187 | .unused, |
| 105914 | 109188 | .unused, |
| 105915 | 109189 | .unused, |
| ... | ... | @@ -105919,17 +109193,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105919 | 109193 | .dst_temps = .{ .mem, .unused }, |
| 105920 | 109194 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105921 | 109195 | .each = .{ .once = &.{ |
| 105922 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105923 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109196 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109197 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 105924 | 109198 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 105925 | 109199 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105926 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 105927 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 105928 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 105929 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109200 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q0, ._, ._ }, |
| 109201 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp4q1, ._, ._ }, |
| 109202 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109203 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105930 | 109204 | } }, |
| 105931 | 109205 | }, .{ |
| 105932 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109206 | .required_cc_abi = .sysv64, |
| 109207 | .required_features = .{ .avx, null, null, null }, |
| 105933 | 109208 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105934 | 109209 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 105935 | 109210 | .patterns = &.{ |
| ... | ... | @@ -105937,12 +109212,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105937 | 109212 | }, |
| 105938 | 109213 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105939 | 109214 | .extra_temps = .{ |
| 105940 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105941 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109215 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109216 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105942 | 109217 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105943 | 109218 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfti" } }, |
| 105944 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 105945 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 109219 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109220 | .unused, |
| 105946 | 109221 | .unused, |
| 105947 | 109222 | .unused, |
| 105948 | 109223 | .unused, |
| ... | ... | @@ -105952,17 +109227,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105952 | 109227 | .dst_temps = .{ .mem, .unused }, |
| 105953 | 109228 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105954 | 109229 | .each = .{ .once = &.{ |
| 105955 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105956 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109230 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109231 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 105957 | 109232 | .{ ._, .v_dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 105958 | 109233 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105959 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 105960 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 105961 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 105962 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109234 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q0, ._, ._ }, |
| 109235 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp4q1, ._, ._ }, |
| 109236 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109237 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105963 | 109238 | } }, |
| 105964 | 109239 | }, .{ |
| 105965 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109240 | .required_cc_abi = .sysv64, |
| 109241 | .required_features = .{ .sse2, null, null, null }, |
| 105966 | 109242 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 105967 | 109243 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 105968 | 109244 | .patterns = &.{ |
| ... | ... | @@ -105970,12 +109246,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105970 | 109246 | }, |
| 105971 | 109247 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 105972 | 109248 | .extra_temps = .{ |
| 105973 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 105974 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109249 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109250 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 105975 | 109251 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 105976 | 109252 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfti" } }, |
| 105977 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 105978 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 109253 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109254 | .unused, |
| 105979 | 109255 | .unused, |
| 105980 | 109256 | .unused, |
| 105981 | 109257 | .unused, |
| ... | ... | @@ -105985,17 +109261,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 105985 | 109261 | .dst_temps = .{ .mem, .unused }, |
| 105986 | 109262 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 105987 | 109263 | .each = .{ .once = &.{ |
| 105988 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 105989 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109264 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109265 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 105990 | 109266 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 105991 | 109267 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 105992 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 105993 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 105994 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 105995 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109268 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q0, ._, ._ }, |
| 109269 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp4q1, ._, ._ }, |
| 109270 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109271 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 105996 | 109272 | } }, |
| 105997 | 109273 | }, .{ |
| 105998 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109274 | .required_cc_abi = .sysv64, |
| 109275 | .required_features = .{ .sse2, null, null, null }, |
| 105999 | 109276 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 106000 | 109277 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 106001 | 109278 | .patterns = &.{ |
| ... | ... | @@ -106003,12 +109280,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106003 | 109280 | }, |
| 106004 | 109281 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106005 | 109282 | .extra_temps = .{ |
| 106006 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106007 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109283 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109284 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106008 | 109285 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106009 | 109286 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfti" } }, |
| 106010 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106011 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 109287 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109288 | .unused, |
| 106012 | 109289 | .unused, |
| 106013 | 109290 | .unused, |
| 106014 | 109291 | .unused, |
| ... | ... | @@ -106018,17 +109295,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106018 | 109295 | .dst_temps = .{ .mem, .unused }, |
| 106019 | 109296 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106020 | 109297 | .each = .{ .once = &.{ |
| 106021 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106022 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109298 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109299 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 106023 | 109300 | .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ }, |
| 106024 | 109301 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 106025 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 106026 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 106027 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106028 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109302 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q0, ._, ._ }, |
| 109303 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp4q1, ._, ._ }, |
| 109304 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109305 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106029 | 109306 | } }, |
| 106030 | 109307 | }, .{ |
| 106031 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109308 | .required_cc_abi = .sysv64, |
| 109309 | .required_features = .{ .sse, null, null, null }, |
| 106032 | 109310 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 106033 | 109311 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 106034 | 109312 | .patterns = &.{ |
| ... | ... | @@ -106036,12 +109314,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106036 | 109314 | }, |
| 106037 | 109315 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106038 | 109316 | .extra_temps = .{ |
| 106039 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106040 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109317 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109318 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106041 | 109319 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106042 | 109320 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfti" } }, |
| 106043 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106044 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 109321 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109322 | .unused, |
| 106045 | 109323 | .unused, |
| 106046 | 109324 | .unused, |
| 106047 | 109325 | .unused, |
| ... | ... | @@ -106051,17 +109329,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106051 | 109329 | .dst_temps = .{ .mem, .unused }, |
| 106052 | 109330 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106053 | 109331 | .each = .{ .once = &.{ |
| 106054 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106055 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109332 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109333 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 106056 | 109334 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 106057 | 109335 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 106058 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 106059 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 106060 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106061 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109336 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q0, ._, ._ }, |
| 109337 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp4q1, ._, ._ }, |
| 109338 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109339 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106062 | 109340 | } }, |
| 106063 | 109341 | }, .{ |
| 106064 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109342 | .required_cc_abi = .sysv64, |
| 109343 | .required_features = .{ .sse, null, null, null }, |
| 106065 | 109344 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 106066 | 109345 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 106067 | 109346 | .patterns = &.{ |
| ... | ... | @@ -106069,12 +109348,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106069 | 109348 | }, |
| 106070 | 109349 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106071 | 109350 | .extra_temps = .{ |
| 106072 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106073 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109351 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109352 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106074 | 109353 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106075 | 109354 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfti" } }, |
| 106076 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 106077 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 109355 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109356 | .unused, |
| 106078 | 109357 | .unused, |
| 106079 | 109358 | .unused, |
| 106080 | 109359 | .unused, |
| ... | ... | @@ -106084,17 +109363,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106084 | 109363 | .dst_temps = .{ .mem, .unused }, |
| 106085 | 109364 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106086 | 109365 | .each = .{ .once = &.{ |
| 106087 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106088 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109366 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109367 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 106089 | 109368 | .{ ._, ._ps, .mova, .tmp2x, .tmp1x, ._, ._ }, |
| 106090 | 109369 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 106091 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4q, ._, ._ }, |
| 106092 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp5q, ._, ._ }, |
| 106093 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106094 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109370 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp4q0, ._, ._ }, |
| 109371 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp4q1, ._, ._ }, |
| 109372 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109373 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106095 | 109374 | } }, |
| 106096 | 109375 | }, .{ |
| 106097 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109376 | .required_cc_abi = .sysv64, |
| 109377 | .required_features = .{ .avx, null, null, null }, |
| 106098 | 109378 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 106099 | 109379 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106100 | 109380 | .patterns = &.{ |
| ... | ... | @@ -106102,9 +109382,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106102 | 109382 | }, |
| 106103 | 109383 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106104 | 109384 | .extra_temps = .{ |
| 106105 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106106 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106107 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109385 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109386 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109387 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106108 | 109388 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106109 | 109389 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfei" } }, |
| 106110 | 109390 | .unused, |
| ... | ... | @@ -106124,7 +109404,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106124 | 109404 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106125 | 109405 | } }, |
| 106126 | 109406 | }, .{ |
| 106127 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109407 | .required_cc_abi = .sysv64, |
| 109408 | .required_features = .{ .avx, null, null, null }, |
| 106128 | 109409 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 106129 | 109410 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106130 | 109411 | .patterns = &.{ |
| ... | ... | @@ -106132,9 +109413,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106132 | 109413 | }, |
| 106133 | 109414 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106134 | 109415 | .extra_temps = .{ |
| 106135 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106136 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106137 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109416 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109417 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109418 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106138 | 109419 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106139 | 109420 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfei" } }, |
| 106140 | 109421 | .unused, |
| ... | ... | @@ -106154,7 +109435,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106154 | 109435 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106155 | 109436 | } }, |
| 106156 | 109437 | }, .{ |
| 106157 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109438 | .required_cc_abi = .sysv64, |
| 109439 | .required_features = .{ .sse2, null, null, null }, |
| 106158 | 109440 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 106159 | 109441 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106160 | 109442 | .patterns = &.{ |
| ... | ... | @@ -106162,9 +109444,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106162 | 109444 | }, |
| 106163 | 109445 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106164 | 109446 | .extra_temps = .{ |
| 106165 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106166 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106167 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109447 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109448 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109449 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106168 | 109450 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106169 | 109451 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfei" } }, |
| 106170 | 109452 | .unused, |
| ... | ... | @@ -106184,7 +109466,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106184 | 109466 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106185 | 109467 | } }, |
| 106186 | 109468 | }, .{ |
| 106187 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109469 | .required_cc_abi = .sysv64, |
| 109470 | .required_features = .{ .sse2, null, null, null }, |
| 106188 | 109471 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 106189 | 109472 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106190 | 109473 | .patterns = &.{ |
| ... | ... | @@ -106192,9 +109475,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106192 | 109475 | }, |
| 106193 | 109476 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106194 | 109477 | .extra_temps = .{ |
| 106195 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106196 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106197 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109478 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109479 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109480 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106198 | 109481 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106199 | 109482 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfei" } }, |
| 106200 | 109483 | .unused, |
| ... | ... | @@ -106214,7 +109497,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106214 | 109497 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106215 | 109498 | } }, |
| 106216 | 109499 | }, .{ |
| 106217 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109500 | .required_cc_abi = .sysv64, |
| 109501 | .required_features = .{ .sse, null, null, null }, |
| 106218 | 109502 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 106219 | 109503 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106220 | 109504 | .patterns = &.{ |
| ... | ... | @@ -106222,9 +109506,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106222 | 109506 | }, |
| 106223 | 109507 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106224 | 109508 | .extra_temps = .{ |
| 106225 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106226 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106227 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109509 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109510 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109511 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106228 | 109512 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106229 | 109513 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfei" } }, |
| 106230 | 109514 | .unused, |
| ... | ... | @@ -106244,7 +109528,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106244 | 109528 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106245 | 109529 | } }, |
| 106246 | 109530 | }, .{ |
| 106247 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109531 | .required_cc_abi = .sysv64, |
| 109532 | .required_features = .{ .sse, null, null, null }, |
| 106248 | 109533 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 106249 | 109534 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106250 | 109535 | .patterns = &.{ |
| ... | ... | @@ -106252,9 +109537,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106252 | 109537 | }, |
| 106253 | 109538 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106254 | 109539 | .extra_temps = .{ |
| 106255 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106256 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106257 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109540 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109541 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109542 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106258 | 109543 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106259 | 109544 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfei" } }, |
| 106260 | 109545 | .unused, |
| ... | ... | @@ -106274,7 +109559,66 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106274 | 109559 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 106275 | 109560 | } }, |
| 106276 | 109561 | }, .{ |
| 106277 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109562 | .required_cc_abi = .win64, |
| 109563 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 109564 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 109565 | .patterns = &.{ |
| 109566 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109567 | }, |
| 109568 | .call_frame = .{ .alignment = .@"16" }, |
| 109569 | .extra_temps = .{ |
| 109570 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109571 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109572 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 109573 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfei" } }, |
| 109574 | .unused, |
| 109575 | .unused, |
| 109576 | .unused, |
| 109577 | .unused, |
| 109578 | .unused, |
| 109579 | .unused, |
| 109580 | .unused, |
| 109581 | }, |
| 109582 | .dst_temps = .{ .mem, .unused }, |
| 109583 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109584 | .each = .{ .once = &.{ |
| 109585 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 109586 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 109587 | .{ ._, ._, .lea, .tmp2p, .mem(.src0), ._, ._ }, |
| 109588 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 109589 | } }, |
| 109590 | }, .{ |
| 109591 | .required_cc_abi = .win64, |
| 109592 | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 109593 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 109594 | .patterns = &.{ |
| 109595 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109596 | }, |
| 109597 | .call_frame = .{ .alignment = .@"16" }, |
| 109598 | .extra_temps = .{ |
| 109599 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109600 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109601 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 109602 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfei" } }, |
| 109603 | .unused, |
| 109604 | .unused, |
| 109605 | .unused, |
| 109606 | .unused, |
| 109607 | .unused, |
| 109608 | .unused, |
| 109609 | .unused, |
| 109610 | }, |
| 109611 | .dst_temps = .{ .mem, .unused }, |
| 109612 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109613 | .each = .{ .once = &.{ |
| 109614 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 109615 | .{ ._, ._, .mov, .tmp1d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 109616 | .{ ._, ._, .lea, .tmp2p, .mem(.src0), ._, ._ }, |
| 109617 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 109618 | } }, |
| 109619 | }, .{ |
| 109620 | .required_cc_abi = .sysv64, |
| 109621 | .required_features = .{ .avx, null, null, null }, |
| 106278 | 109622 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 106279 | 109623 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106280 | 109624 | .patterns = &.{ |
| ... | ... | @@ -106282,11 +109626,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106282 | 109626 | }, |
| 106283 | 109627 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106284 | 109628 | .extra_temps = .{ |
| 106285 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109629 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106286 | 109630 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106287 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106288 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106289 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109631 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109632 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109633 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106290 | 109634 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106291 | 109635 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfei" } }, |
| 106292 | 109636 | .unused, |
| ... | ... | @@ -106297,19 +109641,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106297 | 109641 | .dst_temps = .{ .mem, .unused }, |
| 106298 | 109642 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106299 | 109643 | .each = .{ .once = &.{ |
| 106300 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106301 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106302 | | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109644 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109645 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 109646 | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 106303 | 109647 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106304 | 109648 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106305 | 109649 | .{ ._, .v_dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, |
| 106306 | 109650 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 106307 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106308 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106309 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109651 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 109652 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109653 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106310 | 109654 | } }, |
| 106311 | 109655 | }, .{ |
| 106312 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 109656 | .required_cc_abi = .sysv64, |
| 109657 | .required_features = .{ .avx, null, null, null }, |
| 106313 | 109658 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 106314 | 109659 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106315 | 109660 | .patterns = &.{ |
| ... | ... | @@ -106317,11 +109662,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106317 | 109662 | }, |
| 106318 | 109663 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106319 | 109664 | .extra_temps = .{ |
| 106320 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109665 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106321 | 109666 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106322 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106323 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106324 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109667 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109668 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109669 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106325 | 109670 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106326 | 109671 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfei" } }, |
| 106327 | 109672 | .unused, |
| ... | ... | @@ -106332,19 +109677,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106332 | 109677 | .dst_temps = .{ .mem, .unused }, |
| 106333 | 109678 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106334 | 109679 | .each = .{ .once = &.{ |
| 106335 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106336 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106337 | | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109680 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109681 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 109682 | .{ .@"0:", .v_dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 106338 | 109683 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106339 | 109684 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106340 | 109685 | .{ ._, .v_dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, |
| 106341 | 109686 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 106342 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106343 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106344 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109687 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 109688 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109689 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106345 | 109690 | } }, |
| 106346 | 109691 | }, .{ |
| 106347 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109692 | .required_cc_abi = .sysv64, |
| 109693 | .required_features = .{ .sse2, null, null, null }, |
| 106348 | 109694 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 106349 | 109695 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106350 | 109696 | .patterns = &.{ |
| ... | ... | @@ -106352,11 +109698,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106352 | 109698 | }, |
| 106353 | 109699 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106354 | 109700 | .extra_temps = .{ |
| 106355 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109701 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106356 | 109702 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106357 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106358 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106359 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109703 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109704 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109705 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106360 | 109706 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106361 | 109707 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfei" } }, |
| 106362 | 109708 | .unused, |
| ... | ... | @@ -106367,19 +109713,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106367 | 109713 | .dst_temps = .{ .mem, .unused }, |
| 106368 | 109714 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106369 | 109715 | .each = .{ .once = &.{ |
| 106370 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106371 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106372 | | .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109716 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109717 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 109718 | .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 106373 | 109719 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106374 | 109720 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106375 | 109721 | .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, |
| 106376 | 109722 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 106377 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106378 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106379 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109723 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 109724 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109725 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106380 | 109726 | } }, |
| 106381 | 109727 | }, .{ |
| 106382 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 109728 | .required_cc_abi = .sysv64, |
| 109729 | .required_features = .{ .sse2, null, null, null }, |
| 106383 | 109730 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 106384 | 109731 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106385 | 109732 | .patterns = &.{ |
| ... | ... | @@ -106387,11 +109734,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106387 | 109734 | }, |
| 106388 | 109735 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106389 | 109736 | .extra_temps = .{ |
| 106390 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109737 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106391 | 109738 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106392 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106393 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106394 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109739 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109740 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109741 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106395 | 109742 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106396 | 109743 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfei" } }, |
| 106397 | 109744 | .unused, |
| ... | ... | @@ -106402,19 +109749,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106402 | 109749 | .dst_temps = .{ .mem, .unused }, |
| 106403 | 109750 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106404 | 109751 | .each = .{ .once = &.{ |
| 106405 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106406 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106407 | | .{ .@"0:", ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109752 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109753 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 109754 | .{ .@"0:", ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 106408 | 109755 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106409 | 109756 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106410 | 109757 | .{ ._, ._dqa, .mov, .tmp5x, .tmp4x, ._, ._ }, |
| 106411 | 109758 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 106412 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106413 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106414 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109759 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 109760 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109761 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106415 | 109762 | } }, |
| 106416 | 109763 | }, .{ |
| 106417 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109764 | .required_cc_abi = .sysv64, |
| 109765 | .required_features = .{ .sse, null, null, null }, |
| 106418 | 109766 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 106419 | 109767 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106420 | 109768 | .patterns = &.{ |
| ... | ... | @@ -106422,11 +109770,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106422 | 109770 | }, |
| 106423 | 109771 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106424 | 109772 | .extra_temps = .{ |
| 106425 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109773 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106426 | 109774 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106427 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106428 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106429 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109775 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109776 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109777 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106430 | 109778 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106431 | 109779 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfei" } }, |
| 106432 | 109780 | .unused, |
| ... | ... | @@ -106437,19 +109785,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106437 | 109785 | .dst_temps = .{ .mem, .unused }, |
| 106438 | 109786 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106439 | 109787 | .each = .{ .once = &.{ |
| 106440 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106441 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106442 | | .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109788 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109789 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 109790 | .{ .@"0:", ._ps, .mova, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 106443 | 109791 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106444 | 109792 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106445 | 109793 | .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ }, |
| 106446 | 109794 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 106447 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106448 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106449 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109795 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 109796 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109797 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106450 | 109798 | } }, |
| 106451 | 109799 | }, .{ |
| 106452 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 109800 | .required_cc_abi = .sysv64, |
| 109801 | .required_features = .{ .sse, null, null, null }, |
| 106453 | 109802 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 106454 | 109803 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 106455 | 109804 | .patterns = &.{ |
| ... | ... | @@ -106457,11 +109806,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106457 | 109806 | }, |
| 106458 | 109807 | .call_frame = .{ .size = 16, .alignment = .@"16" }, |
| 106459 | 109808 | .extra_temps = .{ |
| 106460 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109809 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 106461 | 109810 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106462 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 106463 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 106464 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 109811 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109812 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109813 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 106465 | 109814 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 106466 | 109815 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfei" } }, |
| 106467 | 109816 | .unused, |
| ... | ... | @@ -106472,16 +109821,84 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106472 | 109821 | .dst_temps = .{ .mem, .unused }, |
| 106473 | 109822 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106474 | 109823 | .each = .{ .once = &.{ |
| 106475 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 106476 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 106477 | | .{ .@"0:", ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 109824 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109825 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 109826 | .{ .@"0:", ._ps, .mova, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 106478 | 109827 | .{ ._, ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 106479 | 109828 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 106480 | 109829 | .{ ._, ._ps, .mova, .tmp5x, .tmp4x, ._, ._ }, |
| 106481 | 109830 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 106482 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 106483 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 106484 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109831 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 109832 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109833 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109834 | } }, |
| 109835 | }, .{ |
| 109836 | .required_cc_abi = .win64, |
| 109837 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 109838 | .dst_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 109839 | .patterns = &.{ |
| 109840 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109841 | }, |
| 109842 | .call_frame = .{ .alignment = .@"16" }, |
| 109843 | .extra_temps = .{ |
| 109844 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109845 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 109846 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109847 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109848 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 109849 | .{ .type = .usize, .kind = .{ .extern_func = "__fixxfei" } }, |
| 109850 | .unused, |
| 109851 | .unused, |
| 109852 | .unused, |
| 109853 | .unused, |
| 109854 | .unused, |
| 109855 | }, |
| 109856 | .dst_temps = .{ .mem, .unused }, |
| 109857 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109858 | .each = .{ .once = &.{ |
| 109859 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109860 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 109861 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 109862 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 109863 | .{ ._, ._, .lea, .tmp4p, .memi(.src0, .tmp0), ._, ._ }, |
| 109864 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 109865 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 109866 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109867 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109868 | } }, |
| 109869 | }, .{ |
| 109870 | .required_cc_abi = .win64, |
| 109871 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 109872 | .dst_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 109873 | .patterns = &.{ |
| 109874 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109875 | }, |
| 109876 | .call_frame = .{ .alignment = .@"16" }, |
| 109877 | .extra_temps = .{ |
| 109878 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109879 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 109880 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109881 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 109882 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 109883 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunsxfei" } }, |
| 109884 | .unused, |
| 109885 | .unused, |
| 109886 | .unused, |
| 109887 | .unused, |
| 109888 | .unused, |
| 109889 | }, |
| 109890 | .dst_temps = .{ .mem, .unused }, |
| 109891 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109892 | .each = .{ .once = &.{ |
| 109893 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 109894 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 109895 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 109896 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 109897 | .{ ._, ._, .lea, .tmp4p, .memi(.src0, .tmp0), ._, ._ }, |
| 109898 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 109899 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 109900 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 109901 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106485 | 109902 | } }, |
| 106486 | 109903 | }, .{ |
| 106487 | 109904 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | ... | @@ -106493,10 +109910,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106493 | 109910 | .call_frame = .{ .alignment = .@"16" }, |
| 106494 | 109911 | .extra_temps = .{ |
| 106495 | 109912 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106496 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106497 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 109913 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109914 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106498 | 109915 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106499 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 109916 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106500 | 109917 | .unused, |
| 106501 | 109918 | .unused, |
| 106502 | 109919 | .unused, |
| ... | ... | @@ -106507,14 +109924,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106507 | 109924 | .dst_temps = .{ .mem, .unused }, |
| 106508 | 109925 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106509 | 109926 | .each = .{ .once = &.{ |
| 106510 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 106511 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109927 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 109928 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 106512 | 109929 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 106513 | 109930 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 106514 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 106515 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 106516 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 106517 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109931 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp4b, ._, ._ }, |
| 109932 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 109933 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 109934 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106518 | 109935 | } }, |
| 106519 | 109936 | }, .{ |
| 106520 | 109937 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -106526,10 +109943,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106526 | 109943 | .call_frame = .{ .alignment = .@"16" }, |
| 106527 | 109944 | .extra_temps = .{ |
| 106528 | 109945 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106529 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106530 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 109946 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109947 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106531 | 109948 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106532 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 109949 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106533 | 109950 | .unused, |
| 106534 | 109951 | .unused, |
| 106535 | 109952 | .unused, |
| ... | ... | @@ -106540,14 +109957,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106540 | 109957 | .dst_temps = .{ .mem, .unused }, |
| 106541 | 109958 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106542 | 109959 | .each = .{ .once = &.{ |
| 106543 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 106544 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109960 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 109961 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 106545 | 109962 | .{ .@"0:", .v_dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 106546 | 109963 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 106547 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 106548 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 106549 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 106550 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 109964 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp4b, ._, ._ }, |
| 109965 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 109966 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 109967 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 106551 | 109968 | } }, |
| 106552 | 109969 | }, .{ |
| 106553 | 109970 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| ... | ... | @@ -106559,10 +109976,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106559 | 109976 | .call_frame = .{ .alignment = .@"16" }, |
| 106560 | 109977 | .extra_temps = .{ |
| 106561 | 109978 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106562 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106563 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 109979 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109980 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106564 | 109981 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106565 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 109982 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106566 | 109983 | .unused, |
| 106567 | 109984 | .unused, |
| 106568 | 109985 | .unused, |
| ... | ... | @@ -106573,14 +109990,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106573 | 109990 | .dst_temps = .{ .mem, .unused }, |
| 106574 | 109991 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106575 | 109992 | .each = .{ .once = &.{ |
| 106576 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 106577 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109993 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 109994 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 106578 | 109995 | .{ .@"0:", ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 106579 | 109996 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 106580 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 106581 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 106582 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 106583 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 109997 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp4b, ._, ._ }, |
| 109998 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 109999 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 110000 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106584 | 110001 | } }, |
| 106585 | 110002 | }, .{ |
| 106586 | 110003 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -106592,10 +110009,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106592 | 110009 | .call_frame = .{ .alignment = .@"16" }, |
| 106593 | 110010 | .extra_temps = .{ |
| 106594 | 110011 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106595 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106596 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110012 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110013 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106597 | 110014 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106598 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 110015 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106599 | 110016 | .unused, |
| 106600 | 110017 | .unused, |
| 106601 | 110018 | .unused, |
| ... | ... | @@ -106606,14 +110023,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106606 | 110023 | .dst_temps = .{ .mem, .unused }, |
| 106607 | 110024 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106608 | 110025 | .each = .{ .once = &.{ |
| 106609 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 106610 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110026 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 110027 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 106611 | 110028 | .{ .@"0:", ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 106612 | 110029 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 106613 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 106614 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 106615 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 106616 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110030 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp4b, ._, ._ }, |
| 110031 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 110032 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 110033 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 106617 | 110034 | } }, |
| 106618 | 110035 | }, .{ |
| 106619 | 110036 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -106625,10 +110042,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106625 | 110042 | .call_frame = .{ .alignment = .@"16" }, |
| 106626 | 110043 | .extra_temps = .{ |
| 106627 | 110044 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106628 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106629 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110045 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110046 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106630 | 110047 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106631 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 110048 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106632 | 110049 | .unused, |
| 106633 | 110050 | .unused, |
| 106634 | 110051 | .unused, |
| ... | ... | @@ -106639,14 +110056,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106639 | 110056 | .dst_temps = .{ .mem, .unused }, |
| 106640 | 110057 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106641 | 110058 | .each = .{ .once = &.{ |
| 106642 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 106643 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110059 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 110060 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 106644 | 110061 | .{ .@"0:", ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 106645 | 110062 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 106646 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 106647 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 106648 | | .{ ._, ._, .add, .tmp1p, .si(1), ._, ._ }, |
| 106649 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110063 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp4b, ._, ._ }, |
| 110064 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 110065 | .{ ._, ._, .sub, .tmp1d, .si(1), ._, ._ }, |
| 110066 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106650 | 110067 | } }, |
| 106651 | 110068 | }, .{ |
| 106652 | 110069 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -106658,10 +110075,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106658 | 110075 | .call_frame = .{ .alignment = .@"16" }, |
| 106659 | 110076 | .extra_temps = .{ |
| 106660 | 110077 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 106661 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106662 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110078 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110079 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106663 | 110080 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106664 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 110081 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106665 | 110082 | .unused, |
| 106666 | 110083 | .unused, |
| 106667 | 110084 | .unused, |
| ... | ... | @@ -106672,14 +110089,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106672 | 110089 | .dst_temps = .{ .mem, .unused }, |
| 106673 | 110090 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106674 | 110091 | .each = .{ .once = &.{ |
| 106675 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 106676 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110092 | .{ ._, ._, .lea, .tmp0p, .memad(.src0, .add_unaligned_size, -16), ._, ._ }, |
| 110093 | .{ ._, ._, .mov, .tmp1d, .sia(-1, .dst0, .add_unaligned_size), ._, ._ }, |
| 106677 | 110094 | .{ .@"0:", ._ps, .mova, .tmp2x, .lea(.tmp0x), ._, ._ }, |
| 106678 | 110095 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 106679 | | .{ ._, ._, .mov, .memia(.dst0b, .tmp1, .add_unaligned_size), .tmp4b, ._, ._ }, |
| 106680 | | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 16), ._, ._ }, |
| 106681 | | .{ ._, ._c, .in, .tmp1p, ._, ._, ._ }, |
| 106682 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 110096 | .{ ._, ._, .mov, .memi(.dst0b, .tmp1), .tmp4b, ._, ._ }, |
| 110097 | .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, -16), ._, ._ }, |
| 110098 | .{ ._, ._c, .de, .tmp1d, ._, ._, ._ }, |
| 110099 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 106683 | 110100 | } }, |
| 106684 | 110101 | }, .{ |
| 106685 | 110102 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -106690,10 +110107,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106690 | 110107 | }, |
| 106691 | 110108 | .call_frame = .{ .alignment = .@"16" }, |
| 106692 | 110109 | .extra_temps = .{ |
| 106693 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106694 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110110 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110111 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106695 | 110112 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106696 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 110113 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106697 | 110114 | .unused, |
| 106698 | 110115 | .unused, |
| 106699 | 110116 | .unused, |
| ... | ... | @@ -106705,12 +110122,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106705 | 110122 | .dst_temps = .{ .mem, .unused }, |
| 106706 | 110123 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106707 | 110124 | .each = .{ .once = &.{ |
| 106708 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106709 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110125 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110126 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 106710 | 110127 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106711 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 106712 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106713 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110128 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 110129 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 110130 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106714 | 110131 | } }, |
| 106715 | 110132 | }, .{ |
| 106716 | 110133 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -106721,10 +110138,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106721 | 110138 | }, |
| 106722 | 110139 | .call_frame = .{ .alignment = .@"16" }, |
| 106723 | 110140 | .extra_temps = .{ |
| 106724 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106725 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110141 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110142 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106726 | 110143 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106727 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 110144 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106728 | 110145 | .unused, |
| 106729 | 110146 | .unused, |
| 106730 | 110147 | .unused, |
| ... | ... | @@ -106736,12 +110153,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106736 | 110153 | .dst_temps = .{ .mem, .unused }, |
| 106737 | 110154 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106738 | 110155 | .each = .{ .once = &.{ |
| 106739 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106740 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110156 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110157 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 106741 | 110158 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106742 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 106743 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106744 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110159 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 110160 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 110161 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106745 | 110162 | } }, |
| 106746 | 110163 | }, .{ |
| 106747 | 110164 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -106752,10 +110169,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106752 | 110169 | }, |
| 106753 | 110170 | .call_frame = .{ .alignment = .@"16" }, |
| 106754 | 110171 | .extra_temps = .{ |
| 106755 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106756 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110172 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110173 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106757 | 110174 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106758 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 110175 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106759 | 110176 | .unused, |
| 106760 | 110177 | .unused, |
| 106761 | 110178 | .unused, |
| ... | ... | @@ -106767,19 +110184,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106767 | 110184 | .dst_temps = .{ .mem, .unused }, |
| 106768 | 110185 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106769 | 110186 | .each = .{ .once = &.{ |
| 106770 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106771 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110187 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110188 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsi(.src0x, .@"8", .tmp0), ._, ._ }, |
| 106772 | 110189 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106773 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3w, ._, ._ }, |
| 106774 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 106775 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110190 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp3w, ._, ._ }, |
| 110191 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 110192 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106776 | 110193 | } }, |
| 106777 | 110194 | }, .{ |
| 106778 | 110195 | .required_features = .{ .sse, null, null, null }, |
| 106779 | 110196 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 106780 | 110197 | .dst_constraints = .{ .{ .signed_int = .dword }, .any }, |
| 106781 | 110198 | .patterns = &.{ |
| 106782 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 110199 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 106783 | 110200 | }, |
| 106784 | 110201 | .call_frame = .{ .alignment = .@"16" }, |
| 106785 | 110202 | .extra_temps = .{ |
| ... | ... | @@ -106795,7 +110212,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106795 | 110212 | .unused, |
| 106796 | 110213 | .unused, |
| 106797 | 110214 | }, |
| 106798 | | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 110215 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 106799 | 110216 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106800 | 110217 | .each = .{ .once = &.{ |
| 106801 | 110218 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -106805,7 +110222,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106805 | 110222 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 106806 | 110223 | .dst_constraints = .{ .{ .unsigned_int = .dword }, .any }, |
| 106807 | 110224 | .patterns = &.{ |
| 106808 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 110225 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 106809 | 110226 | }, |
| 106810 | 110227 | .call_frame = .{ .alignment = .@"16" }, |
| 106811 | 110228 | .extra_temps = .{ |
| ... | ... | @@ -106821,7 +110238,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106821 | 110238 | .unused, |
| 106822 | 110239 | .unused, |
| 106823 | 110240 | }, |
| 106824 | | .dst_temps = .{ .{ .reg = .eax }, .unused }, |
| 110241 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 106825 | 110242 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106826 | 110243 | .each = .{ .once = &.{ |
| 106827 | 110244 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -106835,10 +110252,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106835 | 110252 | }, |
| 106836 | 110253 | .call_frame = .{ .alignment = .@"16" }, |
| 106837 | 110254 | .extra_temps = .{ |
| 106838 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106839 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110255 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110256 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106840 | 110257 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106841 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 110258 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106842 | 110259 | .unused, |
| 106843 | 110260 | .unused, |
| 106844 | 110261 | .unused, |
| ... | ... | @@ -106850,12 +110267,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106850 | 110267 | .dst_temps = .{ .mem, .unused }, |
| 106851 | 110268 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106852 | 110269 | .each = .{ .once = &.{ |
| 106853 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106854 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110270 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 110271 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 106855 | 110272 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106856 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 106857 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 106858 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110273 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 110274 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 110275 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106859 | 110276 | } }, |
| 106860 | 110277 | }, .{ |
| 106861 | 110278 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -106866,10 +110283,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106866 | 110283 | }, |
| 106867 | 110284 | .call_frame = .{ .alignment = .@"16" }, |
| 106868 | 110285 | .extra_temps = .{ |
| 106869 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106870 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110286 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110287 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106871 | 110288 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfsi" } }, |
| 106872 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 110289 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106873 | 110290 | .unused, |
| 106874 | 110291 | .unused, |
| 106875 | 110292 | .unused, |
| ... | ... | @@ -106881,12 +110298,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106881 | 110298 | .dst_temps = .{ .mem, .unused }, |
| 106882 | 110299 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106883 | 110300 | .each = .{ .once = &.{ |
| 106884 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106885 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110301 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 110302 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 106886 | 110303 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106887 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 106888 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 106889 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110304 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 110305 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 110306 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106890 | 110307 | } }, |
| 106891 | 110308 | }, .{ |
| 106892 | 110309 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -106897,10 +110314,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106897 | 110314 | }, |
| 106898 | 110315 | .call_frame = .{ .alignment = .@"16" }, |
| 106899 | 110316 | .extra_temps = .{ |
| 106900 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106901 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110317 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110318 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106902 | 110319 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106903 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 110320 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106904 | 110321 | .unused, |
| 106905 | 110322 | .unused, |
| 106906 | 110323 | .unused, |
| ... | ... | @@ -106912,12 +110329,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106912 | 110329 | .dst_temps = .{ .mem, .unused }, |
| 106913 | 110330 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106914 | 110331 | .each = .{ .once = &.{ |
| 106915 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106916 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110332 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 110333 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 106917 | 110334 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106918 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 106919 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 106920 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110335 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 110336 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 110337 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106921 | 110338 | } }, |
| 106922 | 110339 | }, .{ |
| 106923 | 110340 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -106928,10 +110345,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106928 | 110345 | }, |
| 106929 | 110346 | .call_frame = .{ .alignment = .@"16" }, |
| 106930 | 110347 | .extra_temps = .{ |
| 106931 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106932 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110348 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110349 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106933 | 110350 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfsi" } }, |
| 106934 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 110351 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106935 | 110352 | .unused, |
| 106936 | 110353 | .unused, |
| 106937 | 110354 | .unused, |
| ... | ... | @@ -106943,12 +110360,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106943 | 110360 | .dst_temps = .{ .mem, .unused }, |
| 106944 | 110361 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106945 | 110362 | .each = .{ .once = &.{ |
| 106946 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106947 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110363 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 110364 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 106948 | 110365 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106949 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 106950 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 106951 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110366 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 110367 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 110368 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106952 | 110369 | } }, |
| 106953 | 110370 | }, .{ |
| 106954 | 110371 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -106959,10 +110376,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106959 | 110376 | }, |
| 106960 | 110377 | .call_frame = .{ .alignment = .@"16" }, |
| 106961 | 110378 | .extra_temps = .{ |
| 106962 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106963 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110379 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110380 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106964 | 110381 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfsi" } }, |
| 106965 | | .{ .type = .i32, .kind = .{ .reg = .eax } }, |
| 110382 | .{ .type = .i32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106966 | 110383 | .unused, |
| 106967 | 110384 | .unused, |
| 106968 | 110385 | .unused, |
| ... | ... | @@ -106974,12 +110391,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106974 | 110391 | .dst_temps = .{ .mem, .unused }, |
| 106975 | 110392 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 106976 | 110393 | .each = .{ .once = &.{ |
| 106977 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 106978 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110394 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 110395 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 106979 | 110396 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 106980 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 106981 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 106982 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110397 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 110398 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 110399 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 106983 | 110400 | } }, |
| 106984 | 110401 | }, .{ |
| 106985 | 110402 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -106990,10 +110407,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 106990 | 110407 | }, |
| 106991 | 110408 | .call_frame = .{ .alignment = .@"16" }, |
| 106992 | 110409 | .extra_temps = .{ |
| 106993 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 106994 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110410 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110411 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106995 | 110412 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfsi" } }, |
| 106996 | | .{ .type = .u32, .kind = .{ .reg = .eax } }, |
| 110413 | .{ .type = .u32, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 106997 | 110414 | .unused, |
| 106998 | 110415 | .unused, |
| 106999 | 110416 | .unused, |
| ... | ... | @@ -107005,19 +110422,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107005 | 110422 | .dst_temps = .{ .mem, .unused }, |
| 107006 | 110423 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107007 | 110424 | .each = .{ .once = &.{ |
| 107008 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107009 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110425 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 110426 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsi(.src0x, .@"4", .tmp0), ._, ._ }, |
| 107010 | 110427 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107011 | | .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3d, ._, ._ }, |
| 107012 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 107013 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110428 | .{ ._, ._, .mov, .memi(.dst0d, .tmp0), .tmp3d, ._, ._ }, |
| 110429 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 110430 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107014 | 110431 | } }, |
| 107015 | 110432 | }, .{ |
| 107016 | 110433 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 107017 | 110434 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 107018 | 110435 | .dst_constraints = .{ .{ .signed_int = .qword }, .any }, |
| 107019 | 110436 | .patterns = &.{ |
| 107020 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 110437 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 107021 | 110438 | }, |
| 107022 | 110439 | .call_frame = .{ .alignment = .@"16" }, |
| 107023 | 110440 | .extra_temps = .{ |
| ... | ... | @@ -107033,7 +110450,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107033 | 110450 | .unused, |
| 107034 | 110451 | .unused, |
| 107035 | 110452 | }, |
| 107036 | | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 110453 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 107037 | 110454 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107038 | 110455 | .each = .{ .once = &.{ |
| 107039 | 110456 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -107043,7 +110460,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107043 | 110460 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 107044 | 110461 | .dst_constraints = .{ .{ .unsigned_int = .qword }, .any }, |
| 107045 | 110462 | .patterns = &.{ |
| 107046 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 110463 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 107047 | 110464 | }, |
| 107048 | 110465 | .call_frame = .{ .alignment = .@"16" }, |
| 107049 | 110466 | .extra_temps = .{ |
| ... | ... | @@ -107059,7 +110476,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107059 | 110476 | .unused, |
| 107060 | 110477 | .unused, |
| 107061 | 110478 | }, |
| 107062 | | .dst_temps = .{ .{ .reg = .rax }, .unused }, |
| 110479 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 107063 | 110480 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107064 | 110481 | .each = .{ .once = &.{ |
| 107065 | 110482 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -107073,10 +110490,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107073 | 110490 | }, |
| 107074 | 110491 | .call_frame = .{ .alignment = .@"16" }, |
| 107075 | 110492 | .extra_temps = .{ |
| 107076 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107077 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110493 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110494 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107078 | 110495 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfdi" } }, |
| 107079 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 110496 | .{ .type = .i64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107080 | 110497 | .unused, |
| 107081 | 110498 | .unused, |
| 107082 | 110499 | .unused, |
| ... | ... | @@ -107088,12 +110505,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107088 | 110505 | .dst_temps = .{ .mem, .unused }, |
| 107089 | 110506 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107090 | 110507 | .each = .{ .once = &.{ |
| 107091 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107092 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110508 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 110509 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 107093 | 110510 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107094 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107095 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107096 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110511 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 110512 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 110513 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107097 | 110514 | } }, |
| 107098 | 110515 | }, .{ |
| 107099 | 110516 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -107104,10 +110521,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107104 | 110521 | }, |
| 107105 | 110522 | .call_frame = .{ .alignment = .@"16" }, |
| 107106 | 110523 | .extra_temps = .{ |
| 107107 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107108 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110524 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110525 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107109 | 110526 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfdi" } }, |
| 107110 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 110527 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107111 | 110528 | .unused, |
| 107112 | 110529 | .unused, |
| 107113 | 110530 | .unused, |
| ... | ... | @@ -107119,12 +110536,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107119 | 110536 | .dst_temps = .{ .mem, .unused }, |
| 107120 | 110537 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107121 | 110538 | .each = .{ .once = &.{ |
| 107122 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107123 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110539 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 110540 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 107124 | 110541 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107125 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107126 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107127 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110542 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 110543 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 110544 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107128 | 110545 | } }, |
| 107129 | 110546 | }, .{ |
| 107130 | 110547 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -107135,10 +110552,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107135 | 110552 | }, |
| 107136 | 110553 | .call_frame = .{ .alignment = .@"16" }, |
| 107137 | 110554 | .extra_temps = .{ |
| 107138 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107139 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110555 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110556 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107140 | 110557 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfdi" } }, |
| 107141 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 110558 | .{ .type = .i64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107142 | 110559 | .unused, |
| 107143 | 110560 | .unused, |
| 107144 | 110561 | .unused, |
| ... | ... | @@ -107150,12 +110567,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107150 | 110567 | .dst_temps = .{ .mem, .unused }, |
| 107151 | 110568 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107152 | 110569 | .each = .{ .once = &.{ |
| 107153 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107154 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110570 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 110571 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 107155 | 110572 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107156 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107157 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107158 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110573 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 110574 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 110575 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107159 | 110576 | } }, |
| 107160 | 110577 | }, .{ |
| 107161 | 110578 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -107166,10 +110583,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107166 | 110583 | }, |
| 107167 | 110584 | .call_frame = .{ .alignment = .@"16" }, |
| 107168 | 110585 | .extra_temps = .{ |
| 107169 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107170 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110586 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110587 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107171 | 110588 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfdi" } }, |
| 107172 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 110589 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107173 | 110590 | .unused, |
| 107174 | 110591 | .unused, |
| 107175 | 110592 | .unused, |
| ... | ... | @@ -107181,12 +110598,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107181 | 110598 | .dst_temps = .{ .mem, .unused }, |
| 107182 | 110599 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107183 | 110600 | .each = .{ .once = &.{ |
| 107184 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107185 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110601 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 110602 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 107186 | 110603 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107187 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107188 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107189 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110604 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 110605 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 110606 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107190 | 110607 | } }, |
| 107191 | 110608 | }, .{ |
| 107192 | 110609 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -107197,10 +110614,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107197 | 110614 | }, |
| 107198 | 110615 | .call_frame = .{ .alignment = .@"16" }, |
| 107199 | 110616 | .extra_temps = .{ |
| 107200 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107201 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110617 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110618 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107202 | 110619 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfdi" } }, |
| 107203 | | .{ .type = .i64, .kind = .{ .reg = .rax } }, |
| 110620 | .{ .type = .i64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107204 | 110621 | .unused, |
| 107205 | 110622 | .unused, |
| 107206 | 110623 | .unused, |
| ... | ... | @@ -107212,12 +110629,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107212 | 110629 | .dst_temps = .{ .mem, .unused }, |
| 107213 | 110630 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107214 | 110631 | .each = .{ .once = &.{ |
| 107215 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107216 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110632 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 110633 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 107217 | 110634 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107218 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107219 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107220 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110635 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 110636 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 110637 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107221 | 110638 | } }, |
| 107222 | 110639 | }, .{ |
| 107223 | 110640 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -107228,10 +110645,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107228 | 110645 | }, |
| 107229 | 110646 | .call_frame = .{ .alignment = .@"16" }, |
| 107230 | 110647 | .extra_temps = .{ |
| 107231 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107232 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110648 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110649 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107233 | 110650 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfdi" } }, |
| 107234 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 110651 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107235 | 110652 | .unused, |
| 107236 | 110653 | .unused, |
| 107237 | 110654 | .unused, |
| ... | ... | @@ -107243,19 +110660,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107243 | 110660 | .dst_temps = .{ .mem, .unused }, |
| 107244 | 110661 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107245 | 110662 | .each = .{ .once = &.{ |
| 107246 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 107247 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110663 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 110664 | .{ .@"0:", ._ps, .mova, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 107248 | 110665 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107249 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107250 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 107251 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110666 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q, ._, ._ }, |
| 110667 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 110668 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107252 | 110669 | } }, |
| 107253 | 110670 | }, .{ |
| 107254 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 110671 | .required_cc_abi = .sysv64, |
| 110672 | .required_features = .{ .sse, null, null, null }, |
| 107255 | 110673 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 107256 | 110674 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 107257 | 110675 | .patterns = &.{ |
| 107258 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 110676 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 107259 | 110677 | }, |
| 107260 | 110678 | .call_frame = .{ .alignment = .@"16" }, |
| 107261 | 110679 | .extra_temps = .{ |
| ... | ... | @@ -107271,17 +110689,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107271 | 110689 | .unused, |
| 107272 | 110690 | .unused, |
| 107273 | 110691 | }, |
| 107274 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 110692 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 107275 | 110693 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107276 | 110694 | .each = .{ .once = &.{ |
| 107277 | 110695 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 107278 | 110696 | } }, |
| 107279 | 110697 | }, .{ |
| 107280 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 110698 | .required_cc_abi = .win64, |
| 110699 | .required_features = .{ .sse, null, null, null }, |
| 110700 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 110701 | .dst_constraints = .{ .{ .signed_int = .xword }, .any }, |
| 110702 | .patterns = &.{ |
| 110703 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 110704 | }, |
| 110705 | .call_frame = .{ .alignment = .@"16" }, |
| 110706 | .extra_temps = .{ |
| 110707 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfti" } }, |
| 110708 | .unused, |
| 110709 | .unused, |
| 110710 | .unused, |
| 110711 | .unused, |
| 110712 | .unused, |
| 110713 | .unused, |
| 110714 | .unused, |
| 110715 | .unused, |
| 110716 | .unused, |
| 110717 | .unused, |
| 110718 | }, |
| 110719 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 110720 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110721 | .each = .{ .once = &.{ |
| 110722 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 110723 | } }, |
| 110724 | }, .{ |
| 110725 | .required_cc_abi = .sysv64, |
| 110726 | .required_features = .{ .sse, null, null, null }, |
| 107281 | 110727 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 107282 | 110728 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 107283 | 110729 | .patterns = &.{ |
| 107284 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 110730 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 107285 | 110731 | }, |
| 107286 | 110732 | .call_frame = .{ .alignment = .@"16" }, |
| 107287 | 110733 | .extra_temps = .{ |
| ... | ... | @@ -107297,13 +110743,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107297 | 110743 | .unused, |
| 107298 | 110744 | .unused, |
| 107299 | 110745 | }, |
| 107300 | | .dst_temps = .{ .{ .reg_pair = .{ .rax, .rdx } }, .unused }, |
| 110746 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 107301 | 110747 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107302 | 110748 | .each = .{ .once = &.{ |
| 107303 | 110749 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 107304 | 110750 | } }, |
| 107305 | 110751 | }, .{ |
| 107306 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 110752 | .required_cc_abi = .win64, |
| 110753 | .required_features = .{ .sse, null, null, null }, |
| 110754 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 110755 | .dst_constraints = .{ .{ .unsigned_int = .xword }, .any }, |
| 110756 | .patterns = &.{ |
| 110757 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 110758 | }, |
| 110759 | .call_frame = .{ .alignment = .@"16" }, |
| 110760 | .extra_temps = .{ |
| 110761 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfti" } }, |
| 110762 | .unused, |
| 110763 | .unused, |
| 110764 | .unused, |
| 110765 | .unused, |
| 110766 | .unused, |
| 110767 | .unused, |
| 110768 | .unused, |
| 110769 | .unused, |
| 110770 | .unused, |
| 110771 | .unused, |
| 110772 | }, |
| 110773 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 110774 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110775 | .each = .{ .once = &.{ |
| 110776 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 110777 | } }, |
| 110778 | }, .{ |
| 110779 | .required_cc_abi = .sysv64, |
| 110780 | .required_features = .{ .avx, null, null, null }, |
| 107307 | 110781 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 107308 | 110782 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107309 | 110783 | .patterns = &.{ |
| ... | ... | @@ -107311,11 +110785,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107311 | 110785 | }, |
| 107312 | 110786 | .call_frame = .{ .alignment = .@"16" }, |
| 107313 | 110787 | .extra_temps = .{ |
| 107314 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107315 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110788 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110789 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107316 | 110790 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfti" } }, |
| 107317 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107318 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 110791 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110792 | .unused, |
| 107319 | 110793 | .unused, |
| 107320 | 110794 | .unused, |
| 107321 | 110795 | .unused, |
| ... | ... | @@ -107326,16 +110800,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107326 | 110800 | .dst_temps = .{ .mem, .unused }, |
| 107327 | 110801 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107328 | 110802 | .each = .{ .once = &.{ |
| 107329 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107330 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110803 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 110804 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107331 | 110805 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107332 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107333 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 107334 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107335 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110806 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q0, ._, ._ }, |
| 110807 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp3q1, ._, ._ }, |
| 110808 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 110809 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107336 | 110810 | } }, |
| 107337 | 110811 | }, .{ |
| 107338 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 110812 | .required_cc_abi = .win64, |
| 110813 | .required_features = .{ .avx, null, null, null }, |
| 110814 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110815 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 110816 | .patterns = &.{ |
| 110817 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110818 | }, |
| 110819 | .call_frame = .{ .alignment = .@"16" }, |
| 110820 | .extra_temps = .{ |
| 110821 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110822 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110823 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfti" } }, |
| 110824 | .unused, |
| 110825 | .unused, |
| 110826 | .unused, |
| 110827 | .unused, |
| 110828 | .unused, |
| 110829 | .unused, |
| 110830 | .unused, |
| 110831 | .unused, |
| 110832 | }, |
| 110833 | .dst_temps = .{ .mem, .unused }, |
| 110834 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110835 | .each = .{ .once = &.{ |
| 110836 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 110837 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 110838 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110839 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 110840 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 110841 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110842 | } }, |
| 110843 | }, .{ |
| 110844 | .required_cc_abi = .sysv64, |
| 110845 | .required_features = .{ .avx, null, null, null }, |
| 107339 | 110846 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 107340 | 110847 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107341 | 110848 | .patterns = &.{ |
| ... | ... | @@ -107343,11 +110850,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107343 | 110850 | }, |
| 107344 | 110851 | .call_frame = .{ .alignment = .@"16" }, |
| 107345 | 110852 | .extra_temps = .{ |
| 107346 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107347 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110853 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110854 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107348 | 110855 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfti" } }, |
| 107349 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107350 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 110856 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110857 | .unused, |
| 107351 | 110858 | .unused, |
| 107352 | 110859 | .unused, |
| 107353 | 110860 | .unused, |
| ... | ... | @@ -107358,16 +110865,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107358 | 110865 | .dst_temps = .{ .mem, .unused }, |
| 107359 | 110866 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107360 | 110867 | .each = .{ .once = &.{ |
| 107361 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107362 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110868 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 110869 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107363 | 110870 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107364 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107365 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 107366 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107367 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110871 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q0, ._, ._ }, |
| 110872 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp3q1, ._, ._ }, |
| 110873 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 110874 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107368 | 110875 | } }, |
| 107369 | 110876 | }, .{ |
| 107370 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 110877 | .required_cc_abi = .win64, |
| 110878 | .required_features = .{ .avx, null, null, null }, |
| 110879 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110880 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 110881 | .patterns = &.{ |
| 110882 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110883 | }, |
| 110884 | .call_frame = .{ .alignment = .@"16" }, |
| 110885 | .extra_temps = .{ |
| 110886 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110887 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110888 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfti" } }, |
| 110889 | .unused, |
| 110890 | .unused, |
| 110891 | .unused, |
| 110892 | .unused, |
| 110893 | .unused, |
| 110894 | .unused, |
| 110895 | .unused, |
| 110896 | .unused, |
| 110897 | }, |
| 110898 | .dst_temps = .{ .mem, .unused }, |
| 110899 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110900 | .each = .{ .once = &.{ |
| 110901 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 110902 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 110903 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110904 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 110905 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 110906 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110907 | } }, |
| 110908 | }, .{ |
| 110909 | .required_cc_abi = .sysv64, |
| 110910 | .required_features = .{ .sse2, null, null, null }, |
| 107371 | 110911 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 107372 | 110912 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107373 | 110913 | .patterns = &.{ |
| ... | ... | @@ -107375,11 +110915,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107375 | 110915 | }, |
| 107376 | 110916 | .call_frame = .{ .alignment = .@"16" }, |
| 107377 | 110917 | .extra_temps = .{ |
| 107378 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107379 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110918 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110919 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107380 | 110920 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfti" } }, |
| 107381 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107382 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 110921 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110922 | .unused, |
| 107383 | 110923 | .unused, |
| 107384 | 110924 | .unused, |
| 107385 | 110925 | .unused, |
| ... | ... | @@ -107390,16 +110930,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107390 | 110930 | .dst_temps = .{ .mem, .unused }, |
| 107391 | 110931 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107392 | 110932 | .each = .{ .once = &.{ |
| 107393 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107394 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110933 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 110934 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107395 | 110935 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107396 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107397 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 107398 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107399 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 110936 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q0, ._, ._ }, |
| 110937 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp3q1, ._, ._ }, |
| 110938 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 110939 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107400 | 110940 | } }, |
| 107401 | 110941 | }, .{ |
| 107402 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 110942 | .required_cc_abi = .win64, |
| 110943 | .required_features = .{ .sse2, null, null, null }, |
| 110944 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110945 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 110946 | .patterns = &.{ |
| 110947 | .{ .src = .{ .to_mem, .none, .none } }, |
| 110948 | }, |
| 110949 | .call_frame = .{ .alignment = .@"16" }, |
| 110950 | .extra_temps = .{ |
| 110951 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110952 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110953 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfti" } }, |
| 110954 | .unused, |
| 110955 | .unused, |
| 110956 | .unused, |
| 110957 | .unused, |
| 110958 | .unused, |
| 110959 | .unused, |
| 110960 | .unused, |
| 110961 | .unused, |
| 110962 | }, |
| 110963 | .dst_temps = .{ .mem, .unused }, |
| 110964 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110965 | .each = .{ .once = &.{ |
| 110966 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 110967 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 110968 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110969 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 110970 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 110971 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110972 | } }, |
| 110973 | }, .{ |
| 110974 | .required_cc_abi = .sysv64, |
| 110975 | .required_features = .{ .sse2, null, null, null }, |
| 107403 | 110976 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 107404 | 110977 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107405 | 110978 | .patterns = &.{ |
| ... | ... | @@ -107407,11 +110980,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107407 | 110980 | }, |
| 107408 | 110981 | .call_frame = .{ .alignment = .@"16" }, |
| 107409 | 110982 | .extra_temps = .{ |
| 107410 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107411 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 110983 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 110984 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107412 | 110985 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfti" } }, |
| 107413 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107414 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 110986 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110987 | .unused, |
| 107415 | 110988 | .unused, |
| 107416 | 110989 | .unused, |
| 107417 | 110990 | .unused, |
| ... | ... | @@ -107422,16 +110995,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107422 | 110995 | .dst_temps = .{ .mem, .unused }, |
| 107423 | 110996 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107424 | 110997 | .each = .{ .once = &.{ |
| 107425 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107426 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 110998 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 110999 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107427 | 111000 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107428 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107429 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 107430 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107431 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111001 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q0, ._, ._ }, |
| 111002 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp3q1, ._, ._ }, |
| 111003 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111004 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107432 | 111005 | } }, |
| 107433 | 111006 | }, .{ |
| 107434 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111007 | .required_cc_abi = .win64, |
| 111008 | .required_features = .{ .sse2, null, null, null }, |
| 111009 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 111010 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 111011 | .patterns = &.{ |
| 111012 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111013 | }, |
| 111014 | .call_frame = .{ .alignment = .@"16" }, |
| 111015 | .extra_temps = .{ |
| 111016 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111017 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111018 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfti" } }, |
| 111019 | .unused, |
| 111020 | .unused, |
| 111021 | .unused, |
| 111022 | .unused, |
| 111023 | .unused, |
| 111024 | .unused, |
| 111025 | .unused, |
| 111026 | .unused, |
| 111027 | }, |
| 111028 | .dst_temps = .{ .mem, .unused }, |
| 111029 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111030 | .each = .{ .once = &.{ |
| 111031 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111032 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 111033 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111034 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 111035 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111036 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111037 | } }, |
| 111038 | }, .{ |
| 111039 | .required_cc_abi = .sysv64, |
| 111040 | .required_features = .{ .sse, null, null, null }, |
| 107435 | 111041 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 107436 | 111042 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107437 | 111043 | .patterns = &.{ |
| ... | ... | @@ -107439,11 +111045,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107439 | 111045 | }, |
| 107440 | 111046 | .call_frame = .{ .alignment = .@"16" }, |
| 107441 | 111047 | .extra_temps = .{ |
| 107442 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107443 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 111048 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111049 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107444 | 111050 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfti" } }, |
| 107445 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107446 | | .{ .type = .i64, .kind = .{ .reg = .rdx } }, |
| 111051 | .{ .type = .i128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111052 | .unused, |
| 107447 | 111053 | .unused, |
| 107448 | 111054 | .unused, |
| 107449 | 111055 | .unused, |
| ... | ... | @@ -107454,16 +111060,49 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107454 | 111060 | .dst_temps = .{ .mem, .unused }, |
| 107455 | 111061 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107456 | 111062 | .each = .{ .once = &.{ |
| 107457 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107458 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111063 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111064 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107459 | 111065 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107460 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107461 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 107462 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107463 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111066 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q0, ._, ._ }, |
| 111067 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp3q1, ._, ._ }, |
| 111068 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111069 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107464 | 111070 | } }, |
| 107465 | 111071 | }, .{ |
| 107466 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111072 | .required_cc_abi = .win64, |
| 111073 | .required_features = .{ .sse, null, null, null }, |
| 111074 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 111075 | .dst_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 111076 | .patterns = &.{ |
| 111077 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111078 | }, |
| 111079 | .call_frame = .{ .alignment = .@"16" }, |
| 111080 | .extra_temps = .{ |
| 111081 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111082 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111083 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfti" } }, |
| 111084 | .unused, |
| 111085 | .unused, |
| 111086 | .unused, |
| 111087 | .unused, |
| 111088 | .unused, |
| 111089 | .unused, |
| 111090 | .unused, |
| 111091 | .unused, |
| 111092 | }, |
| 111093 | .dst_temps = .{ .mem, .unused }, |
| 111094 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111095 | .each = .{ .once = &.{ |
| 111096 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111097 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 111098 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111099 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 111100 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111101 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111102 | } }, |
| 111103 | }, .{ |
| 111104 | .required_cc_abi = .sysv64, |
| 111105 | .required_features = .{ .sse, null, null, null }, |
| 107467 | 111106 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 107468 | 111107 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 107469 | 111108 | .patterns = &.{ |
| ... | ... | @@ -107471,11 +111110,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107471 | 111110 | }, |
| 107472 | 111111 | .call_frame = .{ .alignment = .@"16" }, |
| 107473 | 111112 | .extra_temps = .{ |
| 107474 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 107475 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 111113 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111114 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 107476 | 111115 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfti" } }, |
| 107477 | | .{ .type = .u64, .kind = .{ .reg = .rax } }, |
| 107478 | | .{ .type = .u64, .kind = .{ .reg = .rdx } }, |
| 111116 | .{ .type = .u128, .kind = .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111117 | .unused, |
| 107479 | 111118 | .unused, |
| 107480 | 111119 | .unused, |
| 107481 | 111120 | .unused, |
| ... | ... | @@ -107486,25 +111125,57 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107486 | 111125 | .dst_temps = .{ .mem, .unused }, |
| 107487 | 111126 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107488 | 111127 | .each = .{ .once = &.{ |
| 107489 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107490 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111128 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111129 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107491 | 111130 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 107492 | | .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3q, ._, ._ }, |
| 107493 | | .{ ._, ._, .mov, .memiad(.dst0q, .tmp0, .add_unaligned_size, 8), .tmp4q, ._, ._ }, |
| 107494 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107495 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111131 | .{ ._, ._, .mov, .memi(.dst0q, .tmp0), .tmp3q0, ._, ._ }, |
| 111132 | .{ ._, ._, .mov, .memid(.dst0q, .tmp0, 8), .tmp3q1, ._, ._ }, |
| 111133 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111134 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111135 | } }, |
| 111136 | }, .{ |
| 111137 | .required_cc_abi = .win64, |
| 111138 | .required_features = .{ .sse, null, null, null }, |
| 111139 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 111140 | .dst_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any }, |
| 111141 | .patterns = &.{ |
| 111142 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111143 | }, |
| 111144 | .call_frame = .{ .alignment = .@"16" }, |
| 111145 | .extra_temps = .{ |
| 111146 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111147 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111148 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfti" } }, |
| 111149 | .unused, |
| 111150 | .unused, |
| 111151 | .unused, |
| 111152 | .unused, |
| 111153 | .unused, |
| 111154 | .unused, |
| 111155 | .unused, |
| 111156 | .unused, |
| 111157 | }, |
| 111158 | .dst_temps = .{ .mem, .unused }, |
| 111159 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111160 | .each = .{ .once = &.{ |
| 111161 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111162 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 111163 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111164 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 111165 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111166 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107496 | 111167 | } }, |
| 107497 | 111168 | }, .{ |
| 107498 | 111169 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 107499 | 111170 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 107500 | 111171 | .dst_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107501 | 111172 | .patterns = &.{ |
| 107502 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 111173 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } }, .none, .none } }, |
| 107503 | 111174 | }, |
| 107504 | 111175 | .call_frame = .{ .alignment = .@"16" }, |
| 107505 | 111176 | .extra_temps = .{ |
| 107506 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107507 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 111177 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111178 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 107508 | 111179 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfei" } }, |
| 107509 | 111180 | .unused, |
| 107510 | 111181 | .unused, |
| ... | ... | @@ -107527,12 +111198,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107527 | 111198 | .src_constraints = .{ .{ .float = .xword }, .any, .any }, |
| 107528 | 111199 | .dst_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any }, |
| 107529 | 111200 | .patterns = &.{ |
| 107530 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .none, .none } }, |
| 111201 | .{ .src = .{ .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } }, .none, .none } }, |
| 107531 | 111202 | }, |
| 107532 | 111203 | .call_frame = .{ .alignment = .@"16" }, |
| 107533 | 111204 | .extra_temps = .{ |
| 107534 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107535 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 111205 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111206 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 107536 | 111207 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfei" } }, |
| 107537 | 111208 | .unused, |
| 107538 | 111209 | .unused, |
| ... | ... | @@ -107559,11 +111230,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107559 | 111230 | }, |
| 107560 | 111231 | .call_frame = .{ .alignment = .@"16" }, |
| 107561 | 111232 | .extra_temps = .{ |
| 107562 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111233 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107563 | 111234 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107564 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107565 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107566 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 111235 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111236 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 111237 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 107567 | 111238 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfei" } }, |
| 107568 | 111239 | .unused, |
| 107569 | 111240 | .unused, |
| ... | ... | @@ -107574,15 +111245,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107574 | 111245 | .dst_temps = .{ .mem, .unused }, |
| 107575 | 111246 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107576 | 111247 | .each = .{ .once = &.{ |
| 107577 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107578 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 111248 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111249 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 107579 | 111250 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 107580 | 111251 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 107581 | | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111252 | .{ ._, .v_dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107582 | 111253 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 107583 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 107584 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107585 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111254 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 111255 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111256 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107586 | 111257 | } }, |
| 107587 | 111258 | }, .{ |
| 107588 | 111259 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -107593,11 +111264,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107593 | 111264 | }, |
| 107594 | 111265 | .call_frame = .{ .alignment = .@"16" }, |
| 107595 | 111266 | .extra_temps = .{ |
| 107596 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111267 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107597 | 111268 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107598 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107599 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107600 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 111269 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111270 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 111271 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 107601 | 111272 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfei" } }, |
| 107602 | 111273 | .unused, |
| 107603 | 111274 | .unused, |
| ... | ... | @@ -107608,15 +111279,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107608 | 111279 | .dst_temps = .{ .mem, .unused }, |
| 107609 | 111280 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107610 | 111281 | .each = .{ .once = &.{ |
| 107611 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107612 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 111282 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111283 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 107613 | 111284 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 107614 | 111285 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 107615 | | .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111286 | .{ ._, .v_dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107616 | 111287 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 107617 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 107618 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107619 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111288 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 111289 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111290 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107620 | 111291 | } }, |
| 107621 | 111292 | }, .{ |
| 107622 | 111293 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -107627,11 +111298,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107627 | 111298 | }, |
| 107628 | 111299 | .call_frame = .{ .alignment = .@"16" }, |
| 107629 | 111300 | .extra_temps = .{ |
| 107630 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111301 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107631 | 111302 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107632 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107633 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107634 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 111303 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111304 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 111305 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 107635 | 111306 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfei" } }, |
| 107636 | 111307 | .unused, |
| 107637 | 111308 | .unused, |
| ... | ... | @@ -107642,15 +111313,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107642 | 111313 | .dst_temps = .{ .mem, .unused }, |
| 107643 | 111314 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107644 | 111315 | .each = .{ .once = &.{ |
| 107645 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107646 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 111316 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111317 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 107647 | 111318 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 107648 | 111319 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 107649 | | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111320 | .{ ._, ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107650 | 111321 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 107651 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 107652 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107653 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111322 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 111323 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111324 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107654 | 111325 | } }, |
| 107655 | 111326 | }, .{ |
| 107656 | 111327 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -107661,11 +111332,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107661 | 111332 | }, |
| 107662 | 111333 | .call_frame = .{ .alignment = .@"16" }, |
| 107663 | 111334 | .extra_temps = .{ |
| 107664 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111335 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107665 | 111336 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107666 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107667 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107668 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 111337 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111338 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 111339 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 107669 | 111340 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfei" } }, |
| 107670 | 111341 | .unused, |
| 107671 | 111342 | .unused, |
| ... | ... | @@ -107676,15 +111347,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107676 | 111347 | .dst_temps = .{ .mem, .unused }, |
| 107677 | 111348 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107678 | 111349 | .each = .{ .once = &.{ |
| 107679 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107680 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 111350 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111351 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 107681 | 111352 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 107682 | 111353 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 107683 | | .{ ._, ._dqa, .mov, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111354 | .{ ._, ._dqa, .mov, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107684 | 111355 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 107685 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 107686 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107687 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111356 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 111357 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111358 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107688 | 111359 | } }, |
| 107689 | 111360 | }, .{ |
| 107690 | 111361 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -107695,11 +111366,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107695 | 111366 | }, |
| 107696 | 111367 | .call_frame = .{ .alignment = .@"16" }, |
| 107697 | 111368 | .extra_temps = .{ |
| 107698 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111369 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107699 | 111370 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107700 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107701 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107702 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 111371 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111372 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 111373 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 107703 | 111374 | .{ .type = .usize, .kind = .{ .extern_func = "__fixtfei" } }, |
| 107704 | 111375 | .unused, |
| 107705 | 111376 | .unused, |
| ... | ... | @@ -107710,15 +111381,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107710 | 111381 | .dst_temps = .{ .mem, .unused }, |
| 107711 | 111382 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107712 | 111383 | .each = .{ .once = &.{ |
| 107713 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107714 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 111384 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111385 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 107715 | 111386 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 107716 | 111387 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 107717 | | .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111388 | .{ ._, ._ps, .mova, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107718 | 111389 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 107719 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 107720 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107721 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111390 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 111391 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111392 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107722 | 111393 | } }, |
| 107723 | 111394 | }, .{ |
| 107724 | 111395 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -107729,11 +111400,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107729 | 111400 | }, |
| 107730 | 111401 | .call_frame = .{ .alignment = .@"16" }, |
| 107731 | 111402 | .extra_temps = .{ |
| 107732 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111403 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 107733 | 111404 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 107734 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 107735 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 107736 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 111405 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111406 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 111407 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 2 } } }, |
| 107737 | 111408 | .{ .type = .usize, .kind = .{ .extern_func = "__fixunstfei" } }, |
| 107738 | 111409 | .unused, |
| 107739 | 111410 | .unused, |
| ... | ... | @@ -107744,15 +111415,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107744 | 111415 | .dst_temps = .{ .mem, .unused }, |
| 107745 | 111416 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 107746 | 111417 | .each = .{ .once = &.{ |
| 107747 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 107748 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 111418 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 111419 | .{ ._, ._, .lea, .tmp1p, .mema(.dst0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 107749 | 111420 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 107750 | 111421 | .{ ._, ._, .mov, .tmp3d, .sa(.dst0, .add_bit_size), ._, ._ }, |
| 107751 | | .{ ._, ._ps, .mova, .tmp4x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 111422 | .{ ._, ._ps, .mova, .tmp4x, .memi(.src0x, .tmp0), ._, ._ }, |
| 107752 | 111423 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 107753 | | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .add_dst0_elem_size), ._, ._ }, |
| 107754 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 107755 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 111424 | .{ ._, ._, .lea, .tmp1p, .leaa(.tmp1, .sub_dst0_elem_size), ._, ._ }, |
| 111425 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 111426 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 107756 | 111427 | } }, |
| 107757 | 111428 | } }) catch |err| switch (err) { |
| 107758 | 111429 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| ... | ... | @@ -107767,7 +111438,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107767 | 111438 | }, |
| 107768 | 111439 | .int_from_float_safe => unreachable, |
| 107769 | 111440 | .int_from_float_optimized_safe => unreachable, |
| 107770 | | .float_from_int => |air_tag| if (use_old) try cg.airFloatFromInt(inst) else { |
| 111441 | .float_from_int => |air_tag| { |
| 107771 | 111442 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 107772 | 111443 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| 107773 | 111444 | var res: [1]Temp = undefined; |
| ... | ... | @@ -107980,7 +111651,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107980 | 111651 | .src_constraints = .{ .{ .signed_int = .byte }, .any, .any }, |
| 107981 | 111652 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 107982 | 111653 | .patterns = &.{ |
| 107983 | | .{ .src = .{ .{ .to_reg = .dil }, .none, .none } }, |
| 111654 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 107984 | 111655 | }, |
| 107985 | 111656 | .call_frame = .{ .alignment = .@"16" }, |
| 107986 | 111657 | .extra_temps = .{ |
| ... | ... | @@ -107996,7 +111667,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 107996 | 111667 | .unused, |
| 107997 | 111668 | .unused, |
| 107998 | 111669 | }, |
| 107999 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111670 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108000 | 111671 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108001 | 111672 | .each = .{ .once = &.{ |
| 108002 | 111673 | .{ ._, ._, .movsx, .src0d, .src0b, ._, ._ }, |
| ... | ... | @@ -108007,7 +111678,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108007 | 111678 | .src_constraints = .{ .{ .unsigned_int = .byte }, .any, .any }, |
| 108008 | 111679 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108009 | 111680 | .patterns = &.{ |
| 108010 | | .{ .src = .{ .{ .to_reg = .dil }, .none, .none } }, |
| 111681 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 108011 | 111682 | }, |
| 108012 | 111683 | .call_frame = .{ .alignment = .@"16" }, |
| 108013 | 111684 | .extra_temps = .{ |
| ... | ... | @@ -108023,7 +111694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108023 | 111694 | .unused, |
| 108024 | 111695 | .unused, |
| 108025 | 111696 | }, |
| 108026 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111697 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108027 | 111698 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108028 | 111699 | .each = .{ .once = &.{ |
| 108029 | 111700 | .{ ._, ._, .movzx, .src0d, .src0b, ._, ._ }, |
| ... | ... | @@ -108034,7 +111705,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108034 | 111705 | .src_constraints = .{ .{ .signed_int = .word }, .any, .any }, |
| 108035 | 111706 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108036 | 111707 | .patterns = &.{ |
| 108037 | | .{ .src = .{ .{ .to_reg = .di }, .none, .none } }, |
| 111708 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 108038 | 111709 | }, |
| 108039 | 111710 | .call_frame = .{ .alignment = .@"16" }, |
| 108040 | 111711 | .extra_temps = .{ |
| ... | ... | @@ -108050,7 +111721,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108050 | 111721 | .unused, |
| 108051 | 111722 | .unused, |
| 108052 | 111723 | }, |
| 108053 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111724 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108054 | 111725 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108055 | 111726 | .each = .{ .once = &.{ |
| 108056 | 111727 | .{ ._, ._, .movsx, .src0d, .src0w, ._, ._ }, |
| ... | ... | @@ -108061,7 +111732,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108061 | 111732 | .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, |
| 108062 | 111733 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108063 | 111734 | .patterns = &.{ |
| 108064 | | .{ .src = .{ .{ .to_reg = .di }, .none, .none } }, |
| 111735 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 108065 | 111736 | }, |
| 108066 | 111737 | .call_frame = .{ .alignment = .@"16" }, |
| 108067 | 111738 | .extra_temps = .{ |
| ... | ... | @@ -108077,7 +111748,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108077 | 111748 | .unused, |
| 108078 | 111749 | .unused, |
| 108079 | 111750 | }, |
| 108080 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111751 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108081 | 111752 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108082 | 111753 | .each = .{ .once = &.{ |
| 108083 | 111754 | .{ ._, ._, .movzx, .src0d, .src0w, ._, ._ }, |
| ... | ... | @@ -108088,7 +111759,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108088 | 111759 | .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, |
| 108089 | 111760 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108090 | 111761 | .patterns = &.{ |
| 108091 | | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 111762 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 108092 | 111763 | }, |
| 108093 | 111764 | .call_frame = .{ .alignment = .@"16" }, |
| 108094 | 111765 | .extra_temps = .{ |
| ... | ... | @@ -108104,7 +111775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108104 | 111775 | .unused, |
| 108105 | 111776 | .unused, |
| 108106 | 111777 | }, |
| 108107 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111778 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108108 | 111779 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108109 | 111780 | .each = .{ .once = &.{ |
| 108110 | 111781 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -108114,7 +111785,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108114 | 111785 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| 108115 | 111786 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108116 | 111787 | .patterns = &.{ |
| 108117 | | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 111788 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 108118 | 111789 | }, |
| 108119 | 111790 | .call_frame = .{ .alignment = .@"16" }, |
| 108120 | 111791 | .extra_temps = .{ |
| ... | ... | @@ -108130,7 +111801,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108130 | 111801 | .unused, |
| 108131 | 111802 | .unused, |
| 108132 | 111803 | }, |
| 108133 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111804 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108134 | 111805 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108135 | 111806 | .each = .{ .once = &.{ |
| 108136 | 111807 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -108140,7 +111811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108140 | 111811 | .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, |
| 108141 | 111812 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108142 | 111813 | .patterns = &.{ |
| 108143 | | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 111814 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 108144 | 111815 | }, |
| 108145 | 111816 | .call_frame = .{ .alignment = .@"16" }, |
| 108146 | 111817 | .extra_temps = .{ |
| ... | ... | @@ -108156,7 +111827,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108156 | 111827 | .unused, |
| 108157 | 111828 | .unused, |
| 108158 | 111829 | }, |
| 108159 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111830 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108160 | 111831 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108161 | 111832 | .each = .{ .once = &.{ |
| 108162 | 111833 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -108166,7 +111837,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108166 | 111837 | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, |
| 108167 | 111838 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108168 | 111839 | .patterns = &.{ |
| 108169 | | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 111840 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 108170 | 111841 | }, |
| 108171 | 111842 | .call_frame = .{ .alignment = .@"16" }, |
| 108172 | 111843 | .extra_temps = .{ |
| ... | ... | @@ -108182,17 +111853,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108182 | 111853 | .unused, |
| 108183 | 111854 | .unused, |
| 108184 | 111855 | }, |
| 108185 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111856 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108186 | 111857 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108187 | 111858 | .each = .{ .once = &.{ |
| 108188 | 111859 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 108189 | 111860 | } }, |
| 108190 | 111861 | }, .{ |
| 108191 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111862 | .required_cc_abi = .sysv64, |
| 111863 | .required_features = .{ .sse, null, null, null }, |
| 108192 | 111864 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 108193 | 111865 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108194 | 111866 | .patterns = &.{ |
| 108195 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 111867 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 108196 | 111868 | }, |
| 108197 | 111869 | .call_frame = .{ .alignment = .@"16" }, |
| 108198 | 111870 | .extra_temps = .{ |
| ... | ... | @@ -108208,17 +111880,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108208 | 111880 | .unused, |
| 108209 | 111881 | .unused, |
| 108210 | 111882 | }, |
| 108211 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111883 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108212 | 111884 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108213 | 111885 | .each = .{ .once = &.{ |
| 108214 | 111886 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 108215 | 111887 | } }, |
| 108216 | 111888 | }, .{ |
| 108217 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111889 | .required_cc_abi = .win64, |
| 111890 | .required_features = .{ .sse, null, null, null }, |
| 111891 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 111892 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 111893 | .patterns = &.{ |
| 111894 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111895 | }, |
| 111896 | .call_frame = .{ .alignment = .@"16" }, |
| 111897 | .extra_temps = .{ |
| 111898 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111899 | .{ .type = .usize, .kind = .{ .extern_func = "__floattihf" } }, |
| 111900 | .unused, |
| 111901 | .unused, |
| 111902 | .unused, |
| 111903 | .unused, |
| 111904 | .unused, |
| 111905 | .unused, |
| 111906 | .unused, |
| 111907 | .unused, |
| 111908 | .unused, |
| 111909 | }, |
| 111910 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 111911 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111912 | .each = .{ .once = &.{ |
| 111913 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 111914 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 111915 | } }, |
| 111916 | }, .{ |
| 111917 | .required_cc_abi = .sysv64, |
| 111918 | .required_features = .{ .sse, null, null, null }, |
| 108218 | 111919 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 108219 | 111920 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 108220 | 111921 | .patterns = &.{ |
| 108221 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 111922 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 108222 | 111923 | }, |
| 108223 | 111924 | .call_frame = .{ .alignment = .@"16" }, |
| 108224 | 111925 | .extra_temps = .{ |
| ... | ... | @@ -108234,11 +111935,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108234 | 111935 | .unused, |
| 108235 | 111936 | .unused, |
| 108236 | 111937 | }, |
| 108237 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111938 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108238 | 111939 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108239 | 111940 | .each = .{ .once = &.{ |
| 108240 | 111941 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 108241 | 111942 | } }, |
| 111943 | }, .{ |
| 111944 | .required_cc_abi = .win64, |
| 111945 | .required_features = .{ .sse, null, null, null }, |
| 111946 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 111947 | .dst_constraints = .{ .{ .float = .word }, .any }, |
| 111948 | .patterns = &.{ |
| 111949 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111950 | }, |
| 111951 | .call_frame = .{ .alignment = .@"16" }, |
| 111952 | .extra_temps = .{ |
| 111953 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111954 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntihf" } }, |
| 111955 | .unused, |
| 111956 | .unused, |
| 111957 | .unused, |
| 111958 | .unused, |
| 111959 | .unused, |
| 111960 | .unused, |
| 111961 | .unused, |
| 111962 | .unused, |
| 111963 | .unused, |
| 111964 | }, |
| 111965 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 111966 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111967 | .each = .{ .once = &.{ |
| 111968 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 111969 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 111970 | } }, |
| 108242 | 111971 | }, .{ |
| 108243 | 111972 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 108244 | 111973 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| ... | ... | @@ -108248,8 +111977,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108248 | 111977 | }, |
| 108249 | 111978 | .call_frame = .{ .alignment = .@"16" }, |
| 108250 | 111979 | .extra_temps = .{ |
| 108251 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 108252 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 111980 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111981 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 108253 | 111982 | .{ .type = .usize, .kind = .{ .extern_func = "__floateihf" } }, |
| 108254 | 111983 | .unused, |
| 108255 | 111984 | .unused, |
| ... | ... | @@ -108260,7 +111989,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108260 | 111989 | .unused, |
| 108261 | 111990 | .unused, |
| 108262 | 111991 | }, |
| 108263 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 111992 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108264 | 111993 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108265 | 111994 | .each = .{ .once = &.{ |
| 108266 | 111995 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| ... | ... | @@ -108276,8 +112005,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108276 | 112005 | }, |
| 108277 | 112006 | .call_frame = .{ .alignment = .@"16" }, |
| 108278 | 112007 | .extra_temps = .{ |
| 108279 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 108280 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 112008 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112009 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 108281 | 112010 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneihf" } }, |
| 108282 | 112011 | .unused, |
| 108283 | 112012 | .unused, |
| ... | ... | @@ -108288,7 +112017,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108288 | 112017 | .unused, |
| 108289 | 112018 | .unused, |
| 108290 | 112019 | }, |
| 108291 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 112020 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 108292 | 112021 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108293 | 112022 | .each = .{ .once = &.{ |
| 108294 | 112023 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| ... | ... | @@ -108359,7 +112088,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108359 | 112088 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108360 | 112089 | }, |
| 108361 | 112090 | .extra_temps = .{ |
| 108362 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112091 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 108363 | 112092 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 108364 | 112093 | .unused, |
| 108365 | 112094 | .unused, |
| ... | ... | @@ -108374,12 +112103,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108374 | 112103 | .dst_temps = .{ .mem, .unused }, |
| 108375 | 112104 | .clobbers = .{ .eflags = true }, |
| 108376 | 112105 | .each = .{ .once = &.{ |
| 108377 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108378 | | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112106 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 112107 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ }, |
| 108379 | 112108 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 108380 | | .{ ._, .v_, .cvtps2ph, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 108381 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 108382 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112109 | .{ ._, .v_, .cvtps2ph, .memsi(.dst0x, .@"2", .tmp0), .tmp1y, .rm(.{}), ._ }, |
| 112110 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 112111 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108383 | 112112 | } }, |
| 108384 | 112113 | }, .{ |
| 108385 | 112114 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -108389,7 +112118,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108389 | 112118 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108390 | 112119 | }, |
| 108391 | 112120 | .extra_temps = .{ |
| 108392 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112121 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 108393 | 112122 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 108394 | 112123 | .unused, |
| 108395 | 112124 | .unused, |
| ... | ... | @@ -108404,12 +112133,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108404 | 112133 | .dst_temps = .{ .mem, .unused }, |
| 108405 | 112134 | .clobbers = .{ .eflags = true }, |
| 108406 | 112135 | .each = .{ .once = &.{ |
| 108407 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108408 | | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112136 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 112137 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 108409 | 112138 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 108410 | | .{ ._, .v_, .cvtps2ph, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 108411 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108412 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112139 | .{ ._, .v_, .cvtps2ph, .memsi(.dst0q, .@"2", .tmp0), .tmp1x, .rm(.{}), ._ }, |
| 112140 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 112141 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108413 | 112142 | } }, |
| 108414 | 112143 | }, .{ |
| 108415 | 112144 | .required_features = .{ .f16c, .avx2, null, null }, |
| ... | ... | @@ -108419,7 +112148,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108419 | 112148 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108420 | 112149 | }, |
| 108421 | 112150 | .extra_temps = .{ |
| 108422 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112151 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 108423 | 112152 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 108424 | 112153 | .unused, |
| 108425 | 112154 | .unused, |
| ... | ... | @@ -108434,12 +112163,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108434 | 112163 | .dst_temps = .{ .mem, .unused }, |
| 108435 | 112164 | .clobbers = .{ .eflags = true }, |
| 108436 | 112165 | .each = .{ .once = &.{ |
| 108437 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108438 | | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112166 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 112167 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ }, |
| 108439 | 112168 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 108440 | | .{ ._, .v_, .cvtps2ph, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 108441 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 108442 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112169 | .{ ._, .v_, .cvtps2ph, .memsi(.dst0x, .@"2", .tmp0), .tmp1y, .rm(.{}), ._ }, |
| 112170 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 112171 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108443 | 112172 | } }, |
| 108444 | 112173 | }, .{ |
| 108445 | 112174 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -108449,7 +112178,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108449 | 112178 | .{ .src = .{ .to_mem, .none, .none } }, |
| 108450 | 112179 | }, |
| 108451 | 112180 | .extra_temps = .{ |
| 108452 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112181 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 108453 | 112182 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 108454 | 112183 | .unused, |
| 108455 | 112184 | .unused, |
| ... | ... | @@ -108464,12 +112193,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108464 | 112193 | .dst_temps = .{ .mem, .unused }, |
| 108465 | 112194 | .clobbers = .{ .eflags = true }, |
| 108466 | 112195 | .each = .{ .once = &.{ |
| 108467 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108468 | | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112196 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 112197 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 108469 | 112198 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 108470 | | .{ ._, .v_, .cvtps2ph, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 108471 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 108472 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112199 | .{ ._, .v_, .cvtps2ph, .memsi(.dst0q, .@"2", .tmp0), .tmp1x, .rm(.{}), ._ }, |
| 112200 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 112201 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108473 | 112202 | } }, |
| 108474 | 112203 | }, .{ |
| 108475 | 112204 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | ... | @@ -108480,10 +112209,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108480 | 112209 | }, |
| 108481 | 112210 | .call_frame = .{ .alignment = .@"16" }, |
| 108482 | 112211 | .extra_temps = .{ |
| 108483 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108484 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112212 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112213 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108485 | 112214 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 108486 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112215 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108487 | 112216 | .unused, |
| 108488 | 112217 | .unused, |
| 108489 | 112218 | .unused, |
| ... | ... | @@ -108495,12 +112224,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108495 | 112224 | .dst_temps = .{ .mem, .unused }, |
| 108496 | 112225 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108497 | 112226 | .each = .{ .once = &.{ |
| 108498 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108499 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112227 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112228 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108500 | 112229 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108501 | | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108502 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108503 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112230 | .{ ._, .vp_w, .extr, .memsi(.dst0w, .@"2", .tmp0), .tmp3x, .ui(0), ._ }, |
| 112231 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 112232 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108504 | 112233 | } }, |
| 108505 | 112234 | }, .{ |
| 108506 | 112235 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -108511,10 +112240,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108511 | 112240 | }, |
| 108512 | 112241 | .call_frame = .{ .alignment = .@"16" }, |
| 108513 | 112242 | .extra_temps = .{ |
| 108514 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108515 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112243 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112244 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108516 | 112245 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 108517 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112246 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108518 | 112247 | .unused, |
| 108519 | 112248 | .unused, |
| 108520 | 112249 | .unused, |
| ... | ... | @@ -108526,12 +112255,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108526 | 112255 | .dst_temps = .{ .mem, .unused }, |
| 108527 | 112256 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108528 | 112257 | .each = .{ .once = &.{ |
| 108529 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108530 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112258 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112259 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108531 | 112260 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108532 | | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108533 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108534 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 112261 | .{ ._, .vp_w, .extr, .memsi(.dst0w, .@"2", .tmp0), .tmp3x, .ui(0), ._ }, |
| 112262 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 112263 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 108535 | 112264 | } }, |
| 108536 | 112265 | }, .{ |
| 108537 | 112266 | .required_features = .{ .sse4_1, .slow_incdec, null, null }, |
| ... | ... | @@ -108542,10 +112271,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108542 | 112271 | }, |
| 108543 | 112272 | .call_frame = .{ .alignment = .@"16" }, |
| 108544 | 112273 | .extra_temps = .{ |
| 108545 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108546 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112274 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112275 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108547 | 112276 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 108548 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112277 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108549 | 112278 | .unused, |
| 108550 | 112279 | .unused, |
| 108551 | 112280 | .unused, |
| ... | ... | @@ -108557,12 +112286,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108557 | 112286 | .dst_temps = .{ .mem, .unused }, |
| 108558 | 112287 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108559 | 112288 | .each = .{ .once = &.{ |
| 108560 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108561 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112289 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112290 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108562 | 112291 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108563 | | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108564 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108565 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112292 | .{ ._, .p_w, .extr, .memsi(.dst0w, .@"2", .tmp0), .tmp3x, .ui(0), ._ }, |
| 112293 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 112294 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108566 | 112295 | } }, |
| 108567 | 112296 | }, .{ |
| 108568 | 112297 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -108573,10 +112302,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108573 | 112302 | }, |
| 108574 | 112303 | .call_frame = .{ .alignment = .@"16" }, |
| 108575 | 112304 | .extra_temps = .{ |
| 108576 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108577 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112305 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112306 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108578 | 112307 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 108579 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112308 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108580 | 112309 | .unused, |
| 108581 | 112310 | .unused, |
| 108582 | 112311 | .unused, |
| ... | ... | @@ -108588,12 +112317,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108588 | 112317 | .dst_temps = .{ .mem, .unused }, |
| 108589 | 112318 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108590 | 112319 | .each = .{ .once = &.{ |
| 108591 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108592 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112320 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112321 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108593 | 112322 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108594 | | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108595 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108596 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 112323 | .{ ._, .p_w, .extr, .memsi(.dst0w, .@"2", .tmp0), .tmp3x, .ui(0), ._ }, |
| 112324 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 112325 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 108597 | 112326 | } }, |
| 108598 | 112327 | }, .{ |
| 108599 | 112328 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| ... | ... | @@ -108604,10 +112333,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108604 | 112333 | }, |
| 108605 | 112334 | .call_frame = .{ .alignment = .@"16" }, |
| 108606 | 112335 | .extra_temps = .{ |
| 108607 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108608 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112336 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112337 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108609 | 112338 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 108610 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112339 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108611 | 112340 | .unused, |
| 108612 | 112341 | .unused, |
| 108613 | 112342 | .unused, |
| ... | ... | @@ -108619,13 +112348,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108619 | 112348 | .dst_temps = .{ .mem, .unused }, |
| 108620 | 112349 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108621 | 112350 | .each = .{ .once = &.{ |
| 108622 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108623 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112351 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112352 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108624 | 112353 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108625 | 112354 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108626 | | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108627 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108628 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112355 | .{ ._, ._, .mov, .memsi(.dst0w, .@"2", .tmp0), .tmp1w, ._, ._ }, |
| 112356 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 112357 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108629 | 112358 | } }, |
| 108630 | 112359 | }, .{ |
| 108631 | 112360 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -108636,10 +112365,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108636 | 112365 | }, |
| 108637 | 112366 | .call_frame = .{ .alignment = .@"16" }, |
| 108638 | 112367 | .extra_temps = .{ |
| 108639 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108640 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112368 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112369 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108641 | 112370 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 108642 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112371 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108643 | 112372 | .unused, |
| 108644 | 112373 | .unused, |
| 108645 | 112374 | .unused, |
| ... | ... | @@ -108651,13 +112380,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108651 | 112380 | .dst_temps = .{ .mem, .unused }, |
| 108652 | 112381 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108653 | 112382 | .each = .{ .once = &.{ |
| 108654 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108655 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112383 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112384 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108656 | 112385 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108657 | 112386 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108658 | | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108659 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108660 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 112387 | .{ ._, ._, .mov, .memsi(.dst0w, .@"2", .tmp0), .tmp1w, ._, ._ }, |
| 112388 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 112389 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 108661 | 112390 | } }, |
| 108662 | 112391 | }, .{ |
| 108663 | 112392 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -108668,10 +112397,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108668 | 112397 | }, |
| 108669 | 112398 | .call_frame = .{ .alignment = .@"16" }, |
| 108670 | 112399 | .extra_temps = .{ |
| 108671 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108672 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112400 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112401 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108673 | 112402 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 108674 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112403 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108675 | 112404 | .{ .type = .f32, .kind = .mem }, |
| 108676 | 112405 | .unused, |
| 108677 | 112406 | .unused, |
| ... | ... | @@ -108683,14 +112412,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108683 | 112412 | .dst_temps = .{ .mem, .unused }, |
| 108684 | 112413 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108685 | 112414 | .each = .{ .once = &.{ |
| 108686 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108687 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112415 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112416 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108688 | 112417 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108689 | 112418 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108690 | 112419 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108691 | | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108692 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108693 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112420 | .{ ._, ._, .mov, .memsi(.dst0w, .@"2", .tmp0), .tmp1w, ._, ._ }, |
| 112421 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 112422 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108694 | 112423 | } }, |
| 108695 | 112424 | }, .{ |
| 108696 | 112425 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -108701,10 +112430,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108701 | 112430 | }, |
| 108702 | 112431 | .call_frame = .{ .alignment = .@"16" }, |
| 108703 | 112432 | .extra_temps = .{ |
| 108704 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108705 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112433 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112434 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108706 | 112435 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 108707 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112436 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108708 | 112437 | .{ .type = .f32, .kind = .mem }, |
| 108709 | 112438 | .unused, |
| 108710 | 112439 | .unused, |
| ... | ... | @@ -108716,14 +112445,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108716 | 112445 | .dst_temps = .{ .mem, .unused }, |
| 108717 | 112446 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108718 | 112447 | .each = .{ .once = &.{ |
| 108719 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108720 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112448 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112449 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108721 | 112450 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108722 | 112451 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108723 | 112452 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108724 | | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108725 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108726 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 112453 | .{ ._, ._, .mov, .memsi(.dst0w, .@"2", .tmp0), .tmp1w, ._, ._ }, |
| 112454 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 112455 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 108727 | 112456 | } }, |
| 108728 | 112457 | }, .{ |
| 108729 | 112458 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | ... | @@ -108734,10 +112463,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108734 | 112463 | }, |
| 108735 | 112464 | .call_frame = .{ .alignment = .@"16" }, |
| 108736 | 112465 | .extra_temps = .{ |
| 108737 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108738 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112466 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112467 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108739 | 112468 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 108740 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112469 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108741 | 112470 | .unused, |
| 108742 | 112471 | .unused, |
| 108743 | 112472 | .unused, |
| ... | ... | @@ -108749,12 +112478,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108749 | 112478 | .dst_temps = .{ .mem, .unused }, |
| 108750 | 112479 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108751 | 112480 | .each = .{ .once = &.{ |
| 108752 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108753 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112481 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112482 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108754 | 112483 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108755 | | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108756 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108757 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112484 | .{ ._, .vp_w, .extr, .memsi(.dst0w, .@"2", .tmp0), .tmp3x, .ui(0), ._ }, |
| 112485 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 112486 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108758 | 112487 | } }, |
| 108759 | 112488 | }, .{ |
| 108760 | 112489 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -108765,10 +112494,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108765 | 112494 | }, |
| 108766 | 112495 | .call_frame = .{ .alignment = .@"16" }, |
| 108767 | 112496 | .extra_temps = .{ |
| 108768 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108769 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112497 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112498 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108770 | 112499 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 108771 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112500 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108772 | 112501 | .unused, |
| 108773 | 112502 | .unused, |
| 108774 | 112503 | .unused, |
| ... | ... | @@ -108780,12 +112509,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108780 | 112509 | .dst_temps = .{ .mem, .unused }, |
| 108781 | 112510 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108782 | 112511 | .each = .{ .once = &.{ |
| 108783 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108784 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112512 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112513 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108785 | 112514 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108786 | | .{ ._, .vp_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108787 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108788 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 112515 | .{ ._, .vp_w, .extr, .memsi(.dst0w, .@"2", .tmp0), .tmp3x, .ui(0), ._ }, |
| 112516 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 112517 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 108789 | 112518 | } }, |
| 108790 | 112519 | }, .{ |
| 108791 | 112520 | .required_features = .{ .sse4_1, .slow_incdec, null, null }, |
| ... | ... | @@ -108796,10 +112525,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108796 | 112525 | }, |
| 108797 | 112526 | .call_frame = .{ .alignment = .@"16" }, |
| 108798 | 112527 | .extra_temps = .{ |
| 108799 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108800 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112528 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112529 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108801 | 112530 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 108802 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112531 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108803 | 112532 | .unused, |
| 108804 | 112533 | .unused, |
| 108805 | 112534 | .unused, |
| ... | ... | @@ -108811,12 +112540,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108811 | 112540 | .dst_temps = .{ .mem, .unused }, |
| 108812 | 112541 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108813 | 112542 | .each = .{ .once = &.{ |
| 108814 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108815 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112543 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112544 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108816 | 112545 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108817 | | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108818 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108819 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112546 | .{ ._, .p_w, .extr, .memsi(.dst0w, .@"2", .tmp0), .tmp3x, .ui(0), ._ }, |
| 112547 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 112548 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108820 | 112549 | } }, |
| 108821 | 112550 | }, .{ |
| 108822 | 112551 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -108827,10 +112556,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108827 | 112556 | }, |
| 108828 | 112557 | .call_frame = .{ .alignment = .@"16" }, |
| 108829 | 112558 | .extra_temps = .{ |
| 108830 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108831 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112559 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112560 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108832 | 112561 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 108833 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112562 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108834 | 112563 | .unused, |
| 108835 | 112564 | .unused, |
| 108836 | 112565 | .unused, |
| ... | ... | @@ -108842,12 +112571,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108842 | 112571 | .dst_temps = .{ .mem, .unused }, |
| 108843 | 112572 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108844 | 112573 | .each = .{ .once = &.{ |
| 108845 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108846 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112574 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112575 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108847 | 112576 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108848 | | .{ ._, .p_w, .extr, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 108849 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108850 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 112577 | .{ ._, .p_w, .extr, .memsi(.dst0w, .@"2", .tmp0), .tmp3x, .ui(0), ._ }, |
| 112578 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 112579 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 108851 | 112580 | } }, |
| 108852 | 112581 | }, .{ |
| 108853 | 112582 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| ... | ... | @@ -108858,10 +112587,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108858 | 112587 | }, |
| 108859 | 112588 | .call_frame = .{ .alignment = .@"16" }, |
| 108860 | 112589 | .extra_temps = .{ |
| 108861 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108862 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112590 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112591 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108863 | 112592 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 108864 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112593 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108865 | 112594 | .unused, |
| 108866 | 112595 | .unused, |
| 108867 | 112596 | .unused, |
| ... | ... | @@ -108873,13 +112602,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108873 | 112602 | .dst_temps = .{ .mem, .unused }, |
| 108874 | 112603 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108875 | 112604 | .each = .{ .once = &.{ |
| 108876 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108877 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112605 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112606 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108878 | 112607 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108879 | 112608 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108880 | | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108881 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108882 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112609 | .{ ._, ._, .mov, .memsi(.dst0w, .@"2", .tmp0), .tmp1w, ._, ._ }, |
| 112610 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 112611 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108883 | 112612 | } }, |
| 108884 | 112613 | }, .{ |
| 108885 | 112614 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -108890,10 +112619,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108890 | 112619 | }, |
| 108891 | 112620 | .call_frame = .{ .alignment = .@"16" }, |
| 108892 | 112621 | .extra_temps = .{ |
| 108893 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108894 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112622 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112623 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108895 | 112624 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 108896 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112625 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108897 | 112626 | .unused, |
| 108898 | 112627 | .unused, |
| 108899 | 112628 | .unused, |
| ... | ... | @@ -108905,13 +112634,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108905 | 112634 | .dst_temps = .{ .mem, .unused }, |
| 108906 | 112635 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108907 | 112636 | .each = .{ .once = &.{ |
| 108908 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108909 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112637 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112638 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108910 | 112639 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108911 | 112640 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 108912 | | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108913 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108914 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 112641 | .{ ._, ._, .mov, .memsi(.dst0w, .@"2", .tmp0), .tmp1w, ._, ._ }, |
| 112642 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 112643 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 108915 | 112644 | } }, |
| 108916 | 112645 | }, .{ |
| 108917 | 112646 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -108922,10 +112651,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108922 | 112651 | }, |
| 108923 | 112652 | .call_frame = .{ .alignment = .@"16" }, |
| 108924 | 112653 | .extra_temps = .{ |
| 108925 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108926 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112654 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112655 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108927 | 112656 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 108928 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112657 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108929 | 112658 | .{ .type = .f32, .kind = .mem }, |
| 108930 | 112659 | .unused, |
| 108931 | 112660 | .unused, |
| ... | ... | @@ -108937,14 +112666,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108937 | 112666 | .dst_temps = .{ .mem, .unused }, |
| 108938 | 112667 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108939 | 112668 | .each = .{ .once = &.{ |
| 108940 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108941 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112669 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112670 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108942 | 112671 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108943 | 112672 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108944 | 112673 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108945 | | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108946 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 108947 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112674 | .{ ._, ._, .mov, .memsi(.dst0w, .@"2", .tmp0), .tmp1w, ._, ._ }, |
| 112675 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 112676 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 108948 | 112677 | } }, |
| 108949 | 112678 | }, .{ |
| 108950 | 112679 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -108955,10 +112684,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108955 | 112684 | }, |
| 108956 | 112685 | .call_frame = .{ .alignment = .@"16" }, |
| 108957 | 112686 | .extra_temps = .{ |
| 108958 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 108959 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 112687 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112688 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108960 | 112689 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 108961 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112690 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 108962 | 112691 | .{ .type = .f32, .kind = .mem }, |
| 108963 | 112692 | .unused, |
| 108964 | 112693 | .unused, |
| ... | ... | @@ -108970,14 +112699,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 108970 | 112699 | .dst_temps = .{ .mem, .unused }, |
| 108971 | 112700 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 108972 | 112701 | .each = .{ .once = &.{ |
| 108973 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 108974 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112702 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 112703 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 108975 | 112704 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 108976 | 112705 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 108977 | 112706 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 108978 | | .{ ._, ._, .mov, .memsia(.dst0w, .@"2", .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 108979 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 108980 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 112707 | .{ ._, ._, .mov, .memsi(.dst0w, .@"2", .tmp0), .tmp1w, ._, ._ }, |
| 112708 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 112709 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 108981 | 112710 | } }, |
| 108982 | 112711 | }, .{ |
| 108983 | 112712 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -109043,7 +112772,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109043 | 112772 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109044 | 112773 | }, |
| 109045 | 112774 | .extra_temps = .{ |
| 109046 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112775 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109047 | 112776 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 109048 | 112777 | .unused, |
| 109049 | 112778 | .unused, |
| ... | ... | @@ -109058,12 +112787,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109058 | 112787 | .dst_temps = .{ .mem, .unused }, |
| 109059 | 112788 | .clobbers = .{ .eflags = true }, |
| 109060 | 112789 | .each = .{ .once = &.{ |
| 109061 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109062 | | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112790 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 112791 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 109063 | 112792 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 109064 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 109065 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 109066 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112793 | .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ }, |
| 112794 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 112795 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109067 | 112796 | } }, |
| 109068 | 112797 | }, .{ |
| 109069 | 112798 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -109073,7 +112802,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109073 | 112802 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109074 | 112803 | }, |
| 109075 | 112804 | .extra_temps = .{ |
| 109076 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112805 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109077 | 112806 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 109078 | 112807 | .unused, |
| 109079 | 112808 | .unused, |
| ... | ... | @@ -109088,12 +112817,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109088 | 112817 | .dst_temps = .{ .mem, .unused }, |
| 109089 | 112818 | .clobbers = .{ .eflags = true }, |
| 109090 | 112819 | .each = .{ .once = &.{ |
| 109091 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109092 | | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112820 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 112821 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 109093 | 112822 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 109094 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 109095 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 109096 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112823 | .{ ._, .v_, .cvtps2ph, .memi(.dst0q, .tmp0), .tmp1x, .rm(.{}), ._ }, |
| 112824 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 112825 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109097 | 112826 | } }, |
| 109098 | 112827 | }, .{ |
| 109099 | 112828 | .required_features = .{ .f16c, .avx2, null, null }, |
| ... | ... | @@ -109103,7 +112832,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109103 | 112832 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109104 | 112833 | }, |
| 109105 | 112834 | .extra_temps = .{ |
| 109106 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112835 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109107 | 112836 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 109108 | 112837 | .unused, |
| 109109 | 112838 | .unused, |
| ... | ... | @@ -109118,12 +112847,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109118 | 112847 | .dst_temps = .{ .mem, .unused }, |
| 109119 | 112848 | .clobbers = .{ .eflags = true }, |
| 109120 | 112849 | .each = .{ .once = &.{ |
| 109121 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109122 | | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112850 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 112851 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 109123 | 112852 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 109124 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 109125 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 109126 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112853 | .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ }, |
| 112854 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 112855 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109127 | 112856 | } }, |
| 109128 | 112857 | }, .{ |
| 109129 | 112858 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -109133,7 +112862,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109133 | 112862 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109134 | 112863 | }, |
| 109135 | 112864 | .extra_temps = .{ |
| 109136 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112865 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109137 | 112866 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 109138 | 112867 | .unused, |
| 109139 | 112868 | .unused, |
| ... | ... | @@ -109148,12 +112877,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109148 | 112877 | .dst_temps = .{ .mem, .unused }, |
| 109149 | 112878 | .clobbers = .{ .eflags = true }, |
| 109150 | 112879 | .each = .{ .once = &.{ |
| 109151 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109152 | | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112880 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 112881 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 109153 | 112882 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 109154 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 109155 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 109156 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112883 | .{ ._, .v_, .cvtps2ph, .memi(.dst0q, .tmp0), .tmp1x, .rm(.{}), ._ }, |
| 112884 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 112885 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109157 | 112886 | } }, |
| 109158 | 112887 | }, .{ |
| 109159 | 112888 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -109164,10 +112893,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109164 | 112893 | }, |
| 109165 | 112894 | .call_frame = .{ .alignment = .@"16" }, |
| 109166 | 112895 | .extra_temps = .{ |
| 109167 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109168 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112896 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112897 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109169 | 112898 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 109170 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112899 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109171 | 112900 | .unused, |
| 109172 | 112901 | .unused, |
| 109173 | 112902 | .unused, |
| ... | ... | @@ -109179,12 +112908,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109179 | 112908 | .dst_temps = .{ .mem, .unused }, |
| 109180 | 112909 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109181 | 112910 | .each = .{ .once = &.{ |
| 109182 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109183 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112911 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 112912 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 109184 | 112913 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109185 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109186 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109187 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112914 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 112915 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 112916 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109188 | 112917 | } }, |
| 109189 | 112918 | }, .{ |
| 109190 | 112919 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -109195,10 +112924,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109195 | 112924 | }, |
| 109196 | 112925 | .call_frame = .{ .alignment = .@"16" }, |
| 109197 | 112926 | .extra_temps = .{ |
| 109198 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109199 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112927 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112928 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109200 | 112929 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 109201 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112930 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109202 | 112931 | .unused, |
| 109203 | 112932 | .unused, |
| 109204 | 112933 | .unused, |
| ... | ... | @@ -109210,12 +112939,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109210 | 112939 | .dst_temps = .{ .mem, .unused }, |
| 109211 | 112940 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109212 | 112941 | .each = .{ .once = &.{ |
| 109213 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109214 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112942 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 112943 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 109215 | 112944 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109216 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109217 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109218 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112945 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 112946 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 112947 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109219 | 112948 | } }, |
| 109220 | 112949 | }, .{ |
| 109221 | 112950 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -109226,10 +112955,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109226 | 112955 | }, |
| 109227 | 112956 | .call_frame = .{ .alignment = .@"16" }, |
| 109228 | 112957 | .extra_temps = .{ |
| 109229 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109230 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112958 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112959 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109231 | 112960 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 109232 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112961 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109233 | 112962 | .unused, |
| 109234 | 112963 | .unused, |
| 109235 | 112964 | .unused, |
| ... | ... | @@ -109241,13 +112970,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109241 | 112970 | .dst_temps = .{ .mem, .unused }, |
| 109242 | 112971 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109243 | 112972 | .each = .{ .once = &.{ |
| 109244 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109245 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112973 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 112974 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 109246 | 112975 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109247 | 112976 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 109248 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109249 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109250 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 112977 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 112978 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 112979 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109251 | 112980 | } }, |
| 109252 | 112981 | }, .{ |
| 109253 | 112982 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -109258,10 +112987,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109258 | 112987 | }, |
| 109259 | 112988 | .call_frame = .{ .alignment = .@"16" }, |
| 109260 | 112989 | .extra_temps = .{ |
| 109261 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109262 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 112990 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112991 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109263 | 112992 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 109264 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 112993 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109265 | 112994 | .{ .type = .f32, .kind = .mem }, |
| 109266 | 112995 | .unused, |
| 109267 | 112996 | .unused, |
| ... | ... | @@ -109273,14 +113002,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109273 | 113002 | .dst_temps = .{ .mem, .unused }, |
| 109274 | 113003 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109275 | 113004 | .each = .{ .once = &.{ |
| 109276 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109277 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113005 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 113006 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 109278 | 113007 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109279 | 113008 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 109280 | 113009 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 109281 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109282 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109283 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113010 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113011 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113012 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109284 | 113013 | } }, |
| 109285 | 113014 | }, .{ |
| 109286 | 113015 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -109291,10 +113020,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109291 | 113020 | }, |
| 109292 | 113021 | .call_frame = .{ .alignment = .@"16" }, |
| 109293 | 113022 | .extra_temps = .{ |
| 109294 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109295 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113023 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113024 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109296 | 113025 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 109297 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113026 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109298 | 113027 | .unused, |
| 109299 | 113028 | .unused, |
| 109300 | 113029 | .unused, |
| ... | ... | @@ -109306,12 +113035,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109306 | 113035 | .dst_temps = .{ .mem, .unused }, |
| 109307 | 113036 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109308 | 113037 | .each = .{ .once = &.{ |
| 109309 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109310 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113038 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 113039 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 109311 | 113040 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109312 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109313 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109314 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113041 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113042 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113043 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109315 | 113044 | } }, |
| 109316 | 113045 | }, .{ |
| 109317 | 113046 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -109322,10 +113051,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109322 | 113051 | }, |
| 109323 | 113052 | .call_frame = .{ .alignment = .@"16" }, |
| 109324 | 113053 | .extra_temps = .{ |
| 109325 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109326 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113054 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113055 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109327 | 113056 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 109328 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113057 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109329 | 113058 | .unused, |
| 109330 | 113059 | .unused, |
| 109331 | 113060 | .unused, |
| ... | ... | @@ -109337,12 +113066,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109337 | 113066 | .dst_temps = .{ .mem, .unused }, |
| 109338 | 113067 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109339 | 113068 | .each = .{ .once = &.{ |
| 109340 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109341 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113069 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 113070 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 109342 | 113071 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109343 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109344 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109345 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113072 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113073 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113074 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109346 | 113075 | } }, |
| 109347 | 113076 | }, .{ |
| 109348 | 113077 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -109353,10 +113082,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109353 | 113082 | }, |
| 109354 | 113083 | .call_frame = .{ .alignment = .@"16" }, |
| 109355 | 113084 | .extra_temps = .{ |
| 109356 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109357 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113085 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113086 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109358 | 113087 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 109359 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113088 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109360 | 113089 | .unused, |
| 109361 | 113090 | .unused, |
| 109362 | 113091 | .unused, |
| ... | ... | @@ -109368,13 +113097,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109368 | 113097 | .dst_temps = .{ .mem, .unused }, |
| 109369 | 113098 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109370 | 113099 | .each = .{ .once = &.{ |
| 109371 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109372 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113100 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 113101 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 109373 | 113102 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109374 | 113103 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 109375 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109376 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109377 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113104 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113105 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113106 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109378 | 113107 | } }, |
| 109379 | 113108 | }, .{ |
| 109380 | 113109 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -109385,10 +113114,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109385 | 113114 | }, |
| 109386 | 113115 | .call_frame = .{ .alignment = .@"16" }, |
| 109387 | 113116 | .extra_temps = .{ |
| 109388 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109389 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113117 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113118 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109390 | 113119 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 109391 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113120 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109392 | 113121 | .{ .type = .f32, .kind = .mem }, |
| 109393 | 113122 | .unused, |
| 109394 | 113123 | .unused, |
| ... | ... | @@ -109400,14 +113129,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109400 | 113129 | .dst_temps = .{ .mem, .unused }, |
| 109401 | 113130 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109402 | 113131 | .each = .{ .once = &.{ |
| 109403 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 109404 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 113132 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 113133 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 109405 | 113134 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109406 | 113135 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 109407 | 113136 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 109408 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109409 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109410 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113137 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113138 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113139 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109411 | 113140 | } }, |
| 109412 | 113141 | }, .{ |
| 109413 | 113142 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -109443,7 +113172,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109443 | 113172 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109444 | 113173 | }, |
| 109445 | 113174 | .extra_temps = .{ |
| 109446 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113175 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109447 | 113176 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 109448 | 113177 | .unused, |
| 109449 | 113178 | .unused, |
| ... | ... | @@ -109458,11 +113187,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109458 | 113187 | .dst_temps = .{ .mem, .unused }, |
| 109459 | 113188 | .clobbers = .{ .eflags = true }, |
| 109460 | 113189 | .each = .{ .once = &.{ |
| 109461 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109462 | | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memsia(.src0y, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 109463 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 109464 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 109465 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113190 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 113191 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memsi(.src0y, .@"2", .tmp0), ._, ._ }, |
| 113192 | .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ }, |
| 113193 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 113194 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109466 | 113195 | } }, |
| 109467 | 113196 | }, .{ |
| 109468 | 113197 | .required_features = .{ .f16c, null, null, null }, |
| ... | ... | @@ -109472,7 +113201,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109472 | 113201 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109473 | 113202 | }, |
| 109474 | 113203 | .extra_temps = .{ |
| 109475 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113204 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109476 | 113205 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 109477 | 113206 | .unused, |
| 109478 | 113207 | .unused, |
| ... | ... | @@ -109487,11 +113216,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109487 | 113216 | .dst_temps = .{ .mem, .unused }, |
| 109488 | 113217 | .clobbers = .{ .eflags = true }, |
| 109489 | 113218 | .each = .{ .once = &.{ |
| 109490 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109491 | | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memsia(.src0x, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 109492 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, .rm(.{}), ._ }, |
| 109493 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 109494 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113219 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_size), ._, ._ }, |
| 113220 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memsi(.src0x, .@"2", .tmp0), ._, ._ }, |
| 113221 | .{ ._, .v_, .cvtps2ph, .memi(.dst0q, .tmp0), .tmp1x, .rm(.{}), ._ }, |
| 113222 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 113223 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109495 | 113224 | } }, |
| 109496 | 113225 | }, .{ |
| 109497 | 113226 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -109502,10 +113231,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109502 | 113231 | }, |
| 109503 | 113232 | .call_frame = .{ .alignment = .@"16" }, |
| 109504 | 113233 | .extra_temps = .{ |
| 109505 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109506 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113234 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113235 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109507 | 113236 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 109508 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113237 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109509 | 113238 | .unused, |
| 109510 | 113239 | .unused, |
| 109511 | 113240 | .unused, |
| ... | ... | @@ -109517,12 +113246,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109517 | 113246 | .dst_temps = .{ .mem, .unused }, |
| 109518 | 113247 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109519 | 113248 | .each = .{ .once = &.{ |
| 109520 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109521 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113249 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113250 | .{ .@"0:", ._, .mov, .tmp1d, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 109522 | 113251 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109523 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109524 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109525 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113252 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113253 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113254 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109526 | 113255 | } }, |
| 109527 | 113256 | }, .{ |
| 109528 | 113257 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -109533,10 +113262,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109533 | 113262 | }, |
| 109534 | 113263 | .call_frame = .{ .alignment = .@"16" }, |
| 109535 | 113264 | .extra_temps = .{ |
| 109536 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109537 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113265 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113266 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109538 | 113267 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 109539 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113268 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109540 | 113269 | .unused, |
| 109541 | 113270 | .unused, |
| 109542 | 113271 | .unused, |
| ... | ... | @@ -109548,12 +113277,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109548 | 113277 | .dst_temps = .{ .mem, .unused }, |
| 109549 | 113278 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109550 | 113279 | .each = .{ .once = &.{ |
| 109551 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109552 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113280 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113281 | .{ .@"0:", ._, .mov, .tmp1d, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 109553 | 113282 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109554 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109555 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109556 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113283 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113284 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113285 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109557 | 113286 | } }, |
| 109558 | 113287 | }, .{ |
| 109559 | 113288 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -109564,10 +113293,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109564 | 113293 | }, |
| 109565 | 113294 | .call_frame = .{ .alignment = .@"16" }, |
| 109566 | 113295 | .extra_temps = .{ |
| 109567 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109568 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113296 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113297 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109569 | 113298 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 109570 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113299 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109571 | 113300 | .unused, |
| 109572 | 113301 | .unused, |
| 109573 | 113302 | .unused, |
| ... | ... | @@ -109579,13 +113308,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109579 | 113308 | .dst_temps = .{ .mem, .unused }, |
| 109580 | 113309 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109581 | 113310 | .each = .{ .once = &.{ |
| 109582 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109583 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113311 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113312 | .{ .@"0:", ._, .mov, .tmp1d, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 109584 | 113313 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109585 | 113314 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 109586 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109587 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109588 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113315 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113316 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113317 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109589 | 113318 | } }, |
| 109590 | 113319 | }, .{ |
| 109591 | 113320 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -109596,10 +113325,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109596 | 113325 | }, |
| 109597 | 113326 | .call_frame = .{ .alignment = .@"16" }, |
| 109598 | 113327 | .extra_temps = .{ |
| 109599 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109600 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 113328 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113329 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109601 | 113330 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsihf" } }, |
| 109602 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113331 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109603 | 113332 | .{ .type = .f32, .kind = .mem }, |
| 109604 | 113333 | .unused, |
| 109605 | 113334 | .unused, |
| ... | ... | @@ -109611,14 +113340,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109611 | 113340 | .dst_temps = .{ .mem, .unused }, |
| 109612 | 113341 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109613 | 113342 | .each = .{ .once = &.{ |
| 109614 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109615 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113343 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113344 | .{ .@"0:", ._, .mov, .tmp1d, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 109616 | 113345 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109617 | 113346 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 109618 | 113347 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 109619 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109620 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109621 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113348 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113349 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113350 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109622 | 113351 | } }, |
| 109623 | 113352 | }, .{ |
| 109624 | 113353 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -109629,10 +113358,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109629 | 113358 | }, |
| 109630 | 113359 | .call_frame = .{ .alignment = .@"16" }, |
| 109631 | 113360 | .extra_temps = .{ |
| 109632 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109633 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113361 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113362 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109634 | 113363 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 109635 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113364 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109636 | 113365 | .unused, |
| 109637 | 113366 | .unused, |
| 109638 | 113367 | .unused, |
| ... | ... | @@ -109644,12 +113373,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109644 | 113373 | .dst_temps = .{ .mem, .unused }, |
| 109645 | 113374 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109646 | 113375 | .each = .{ .once = &.{ |
| 109647 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109648 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113376 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113377 | .{ .@"0:", ._, .mov, .tmp1d, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 109649 | 113378 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109650 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109651 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109652 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113379 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113380 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113381 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109653 | 113382 | } }, |
| 109654 | 113383 | }, .{ |
| 109655 | 113384 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -109660,10 +113389,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109660 | 113389 | }, |
| 109661 | 113390 | .call_frame = .{ .alignment = .@"16" }, |
| 109662 | 113391 | .extra_temps = .{ |
| 109663 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109664 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113392 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113393 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109665 | 113394 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 109666 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113395 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109667 | 113396 | .unused, |
| 109668 | 113397 | .unused, |
| 109669 | 113398 | .unused, |
| ... | ... | @@ -109675,12 +113404,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109675 | 113404 | .dst_temps = .{ .mem, .unused }, |
| 109676 | 113405 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109677 | 113406 | .each = .{ .once = &.{ |
| 109678 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109679 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113407 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113408 | .{ .@"0:", ._, .mov, .tmp1d, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 109680 | 113409 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109681 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109682 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109683 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113410 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113411 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113412 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109684 | 113413 | } }, |
| 109685 | 113414 | }, .{ |
| 109686 | 113415 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -109691,10 +113420,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109691 | 113420 | }, |
| 109692 | 113421 | .call_frame = .{ .alignment = .@"16" }, |
| 109693 | 113422 | .extra_temps = .{ |
| 109694 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109695 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113423 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113424 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109696 | 113425 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 109697 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113426 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109698 | 113427 | .unused, |
| 109699 | 113428 | .unused, |
| 109700 | 113429 | .unused, |
| ... | ... | @@ -109706,13 +113435,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109706 | 113435 | .dst_temps = .{ .mem, .unused }, |
| 109707 | 113436 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109708 | 113437 | .each = .{ .once = &.{ |
| 109709 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109710 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113438 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113439 | .{ .@"0:", ._, .mov, .tmp1d, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 109711 | 113440 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109712 | 113441 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 109713 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109714 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109715 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113442 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113443 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113444 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109716 | 113445 | } }, |
| 109717 | 113446 | }, .{ |
| 109718 | 113447 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -109723,10 +113452,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109723 | 113452 | }, |
| 109724 | 113453 | .call_frame = .{ .alignment = .@"16" }, |
| 109725 | 113454 | .extra_temps = .{ |
| 109726 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109727 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 113455 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113456 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109728 | 113457 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsihf" } }, |
| 109729 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113458 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109730 | 113459 | .{ .type = .f32, .kind = .mem }, |
| 109731 | 113460 | .unused, |
| 109732 | 113461 | .unused, |
| ... | ... | @@ -109738,14 +113467,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109738 | 113467 | .dst_temps = .{ .mem, .unused }, |
| 109739 | 113468 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109740 | 113469 | .each = .{ .once = &.{ |
| 109741 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109742 | | .{ .@"0:", ._, .mov, .tmp1d, .memsia(.src0d, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113470 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113471 | .{ .@"0:", ._, .mov, .tmp1d, .memsi(.src0d, .@"2", .tmp0), ._, ._ }, |
| 109743 | 113472 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109744 | 113473 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 109745 | 113474 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 109746 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109747 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109748 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113475 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113476 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113477 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109749 | 113478 | } }, |
| 109750 | 113479 | }, .{ |
| 109751 | 113480 | .required_features = .{ .@"64bit", .f16c, null, null }, |
| ... | ... | @@ -109755,7 +113484,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109755 | 113484 | .{ .src = .{ .to_mem, .none, .none } }, |
| 109756 | 113485 | }, |
| 109757 | 113486 | .extra_temps = .{ |
| 109758 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113487 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 109759 | 113488 | .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } }, |
| 109760 | 113489 | .unused, |
| 109761 | 113490 | .unused, |
| ... | ... | @@ -109770,13 +113499,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109770 | 113499 | .dst_temps = .{ .mem, .unused }, |
| 109771 | 113500 | .clobbers = .{ .eflags = true }, |
| 109772 | 113501 | .each = .{ .once = &.{ |
| 109773 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 113502 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 109774 | 113503 | .{ .@"0:", .v_ps, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 109775 | | .{ ._, .v_ss, .cvtsi2, .tmp1x, .tmp1x, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._ }, |
| 113504 | .{ ._, .v_ss, .cvtsi2, .tmp1x, .tmp1x, .memsi(.src0q, .@"4", .tmp0), ._ }, |
| 109776 | 113505 | .{ ._, .v_, .cvtps2ph, .tmp1q, .tmp1x, .rm(.{}), ._ }, |
| 109777 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 109778 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109779 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113506 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 113507 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113508 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109780 | 113509 | } }, |
| 109781 | 113510 | }, .{ |
| 109782 | 113511 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -109787,10 +113516,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109787 | 113516 | }, |
| 109788 | 113517 | .call_frame = .{ .alignment = .@"16" }, |
| 109789 | 113518 | .extra_temps = .{ |
| 109790 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109791 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113519 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113520 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109792 | 113521 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdihf" } }, |
| 109793 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113522 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109794 | 113523 | .unused, |
| 109795 | 113524 | .unused, |
| 109796 | 113525 | .unused, |
| ... | ... | @@ -109802,12 +113531,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109802 | 113531 | .dst_temps = .{ .mem, .unused }, |
| 109803 | 113532 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109804 | 113533 | .each = .{ .once = &.{ |
| 109805 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109806 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113534 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113535 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 109807 | 113536 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109808 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109809 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109810 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113537 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113538 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113539 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109811 | 113540 | } }, |
| 109812 | 113541 | }, .{ |
| 109813 | 113542 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| ... | ... | @@ -109818,10 +113547,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109818 | 113547 | }, |
| 109819 | 113548 | .call_frame = .{ .alignment = .@"16" }, |
| 109820 | 113549 | .extra_temps = .{ |
| 109821 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109822 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113550 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113551 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109823 | 113552 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdihf" } }, |
| 109824 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113553 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109825 | 113554 | .unused, |
| 109826 | 113555 | .unused, |
| 109827 | 113556 | .unused, |
| ... | ... | @@ -109833,12 +113562,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109833 | 113562 | .dst_temps = .{ .mem, .unused }, |
| 109834 | 113563 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109835 | 113564 | .each = .{ .once = &.{ |
| 109836 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109837 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113565 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113566 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 109838 | 113567 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109839 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109840 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109841 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113568 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113569 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113570 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109842 | 113571 | } }, |
| 109843 | 113572 | }, .{ |
| 109844 | 113573 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -109849,10 +113578,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109849 | 113578 | }, |
| 109850 | 113579 | .call_frame = .{ .alignment = .@"16" }, |
| 109851 | 113580 | .extra_temps = .{ |
| 109852 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109853 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113581 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113582 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109854 | 113583 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdihf" } }, |
| 109855 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113584 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109856 | 113585 | .unused, |
| 109857 | 113586 | .unused, |
| 109858 | 113587 | .unused, |
| ... | ... | @@ -109864,13 +113593,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109864 | 113593 | .dst_temps = .{ .mem, .unused }, |
| 109865 | 113594 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109866 | 113595 | .each = .{ .once = &.{ |
| 109867 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109868 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113596 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113597 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 109869 | 113598 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109870 | 113599 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 109871 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109872 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109873 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113600 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113601 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113602 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109874 | 113603 | } }, |
| 109875 | 113604 | }, .{ |
| 109876 | 113605 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -109881,10 +113610,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109881 | 113610 | }, |
| 109882 | 113611 | .call_frame = .{ .alignment = .@"16" }, |
| 109883 | 113612 | .extra_temps = .{ |
| 109884 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109885 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 113613 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113614 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109886 | 113615 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdihf" } }, |
| 109887 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113616 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109888 | 113617 | .{ .type = .f32, .kind = .mem }, |
| 109889 | 113618 | .unused, |
| 109890 | 113619 | .unused, |
| ... | ... | @@ -109896,14 +113625,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109896 | 113625 | .dst_temps = .{ .mem, .unused }, |
| 109897 | 113626 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109898 | 113627 | .each = .{ .once = &.{ |
| 109899 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109900 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113628 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113629 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 109901 | 113630 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109902 | 113631 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 109903 | 113632 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 109904 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109905 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109906 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113633 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113634 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113635 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109907 | 113636 | } }, |
| 109908 | 113637 | }, .{ |
| 109909 | 113638 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -109914,10 +113643,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109914 | 113643 | }, |
| 109915 | 113644 | .call_frame = .{ .alignment = .@"16" }, |
| 109916 | 113645 | .extra_temps = .{ |
| 109917 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109918 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113646 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113647 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109919 | 113648 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundihf" } }, |
| 109920 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113649 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109921 | 113650 | .unused, |
| 109922 | 113651 | .unused, |
| 109923 | 113652 | .unused, |
| ... | ... | @@ -109929,12 +113658,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109929 | 113658 | .dst_temps = .{ .mem, .unused }, |
| 109930 | 113659 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109931 | 113660 | .each = .{ .once = &.{ |
| 109932 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109933 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113661 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113662 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 109934 | 113663 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109935 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109936 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109937 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113664 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113665 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113666 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109938 | 113667 | } }, |
| 109939 | 113668 | }, .{ |
| 109940 | 113669 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| ... | ... | @@ -109945,10 +113674,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109945 | 113674 | }, |
| 109946 | 113675 | .call_frame = .{ .alignment = .@"16" }, |
| 109947 | 113676 | .extra_temps = .{ |
| 109948 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109949 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113677 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113678 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109950 | 113679 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundihf" } }, |
| 109951 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113680 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109952 | 113681 | .unused, |
| 109953 | 113682 | .unused, |
| 109954 | 113683 | .unused, |
| ... | ... | @@ -109960,12 +113689,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109960 | 113689 | .dst_temps = .{ .mem, .unused }, |
| 109961 | 113690 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109962 | 113691 | .each = .{ .once = &.{ |
| 109963 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109964 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113692 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113693 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 109965 | 113694 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109966 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp3x, .ui(0), ._ }, |
| 109967 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 109968 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113695 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113696 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113697 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 109969 | 113698 | } }, |
| 109970 | 113699 | }, .{ |
| 109971 | 113700 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -109976,10 +113705,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109976 | 113705 | }, |
| 109977 | 113706 | .call_frame = .{ .alignment = .@"16" }, |
| 109978 | 113707 | .extra_temps = .{ |
| 109979 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 109980 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113708 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113709 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109981 | 113710 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundihf" } }, |
| 109982 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113711 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 109983 | 113712 | .unused, |
| 109984 | 113713 | .unused, |
| 109985 | 113714 | .unused, |
| ... | ... | @@ -109991,13 +113720,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 109991 | 113720 | .dst_temps = .{ .mem, .unused }, |
| 109992 | 113721 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 109993 | 113722 | .each = .{ .once = &.{ |
| 109994 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 109995 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113723 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113724 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 109996 | 113725 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 109997 | 113726 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 109998 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 109999 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110000 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113727 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113728 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113729 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110001 | 113730 | } }, |
| 110002 | 113731 | }, .{ |
| 110003 | 113732 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -110008,10 +113737,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110008 | 113737 | }, |
| 110009 | 113738 | .call_frame = .{ .alignment = .@"16" }, |
| 110010 | 113739 | .extra_temps = .{ |
| 110011 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110012 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 113740 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113741 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110013 | 113742 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundihf" } }, |
| 110014 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113743 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110015 | 113744 | .{ .type = .f32, .kind = .mem }, |
| 110016 | 113745 | .unused, |
| 110017 | 113746 | .unused, |
| ... | ... | @@ -110023,17 +113752,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110023 | 113752 | .dst_temps = .{ .mem, .unused }, |
| 110024 | 113753 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110025 | 113754 | .each = .{ .once = &.{ |
| 110026 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110027 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 113755 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113756 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 110028 | 113757 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 110029 | 113758 | .{ ._, ._ss, .mov, .tmp4d, .tmp3d, ._, ._ }, |
| 110030 | 113759 | .{ ._, ._, .mov, .tmp1d, .tmp4d, ._, ._ }, |
| 110031 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 110032 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110033 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113760 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113761 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113762 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110034 | 113763 | } }, |
| 110035 | 113764 | }, .{ |
| 110036 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113765 | .required_cc_abi = .sysv64, |
| 113766 | .required_features = .{ .avx, null, null, null }, |
| 110037 | 113767 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110038 | 113768 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110039 | 113769 | .patterns = &.{ |
| ... | ... | @@ -110041,11 +113771,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110041 | 113771 | }, |
| 110042 | 113772 | .call_frame = .{ .alignment = .@"16" }, |
| 110043 | 113773 | .extra_temps = .{ |
| 110044 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110045 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 110046 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113774 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113775 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110047 | 113776 | .{ .type = .usize, .kind = .{ .extern_func = "__floattihf" } }, |
| 110048 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113777 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113778 | .unused, |
| 110049 | 113779 | .unused, |
| 110050 | 113780 | .unused, |
| 110051 | 113781 | .unused, |
| ... | ... | @@ -110056,16 +113786,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110056 | 113786 | .dst_temps = .{ .mem, .unused }, |
| 110057 | 113787 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110058 | 113788 | .each = .{ .once = &.{ |
| 110059 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110060 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110061 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 110062 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 110063 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| 110064 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110065 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113789 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113790 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 113791 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"8", .tmp0, 8), ._, ._ }, |
| 113792 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113793 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113794 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113795 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110066 | 113796 | } }, |
| 110067 | 113797 | }, .{ |
| 110068 | | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 113798 | .required_cc_abi = .win64, |
| 113799 | .required_features = .{ .avx, null, null, null }, |
| 110069 | 113800 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110070 | 113801 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110071 | 113802 | .patterns = &.{ |
| ... | ... | @@ -110073,11 +113804,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110073 | 113804 | }, |
| 110074 | 113805 | .call_frame = .{ .alignment = .@"16" }, |
| 110075 | 113806 | .extra_temps = .{ |
| 110076 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110077 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 110078 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113807 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113808 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110079 | 113809 | .{ .type = .usize, .kind = .{ .extern_func = "__floattihf" } }, |
| 110080 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113810 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113811 | .unused, |
| 110081 | 113812 | .unused, |
| 110082 | 113813 | .unused, |
| 110083 | 113814 | .unused, |
| ... | ... | @@ -110088,16 +113819,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110088 | 113819 | .dst_temps = .{ .mem, .unused }, |
| 110089 | 113820 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110090 | 113821 | .each = .{ .once = &.{ |
| 110091 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110092 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110093 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 110094 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 110095 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| 110096 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110097 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113822 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113823 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 113824 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113825 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113826 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113827 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110098 | 113828 | } }, |
| 110099 | 113829 | }, .{ |
| 110100 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 113830 | .required_cc_abi = .sysv64, |
| 113831 | .required_features = .{ .sse4_1, null, null, null }, |
| 110101 | 113832 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110102 | 113833 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110103 | 113834 | .patterns = &.{ |
| ... | ... | @@ -110105,11 +113836,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110105 | 113836 | }, |
| 110106 | 113837 | .call_frame = .{ .alignment = .@"16" }, |
| 110107 | 113838 | .extra_temps = .{ |
| 110108 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110109 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 110110 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113839 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113840 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110111 | 113841 | .{ .type = .usize, .kind = .{ .extern_func = "__floattihf" } }, |
| 110112 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113842 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113843 | .unused, |
| 110113 | 113844 | .unused, |
| 110114 | 113845 | .unused, |
| 110115 | 113846 | .unused, |
| ... | ... | @@ -110120,17 +113851,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110120 | 113851 | .dst_temps = .{ .mem, .unused }, |
| 110121 | 113852 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110122 | 113853 | .each = .{ .once = &.{ |
| 110123 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110124 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110125 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 110126 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 110127 | | .{ ._, .p_w, .extr, .tmp1d, .tmp4x, .ui(0), ._ }, |
| 110128 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 110129 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110130 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113854 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113855 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 113856 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"8", .tmp0, 8), ._, ._ }, |
| 113857 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113858 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113859 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113860 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110131 | 113861 | } }, |
| 110132 | 113862 | }, .{ |
| 110133 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113863 | .required_cc_abi = .win64, |
| 113864 | .required_features = .{ .sse4_1, null, null, null }, |
| 110134 | 113865 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110135 | 113866 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110136 | 113867 | .patterns = &.{ |
| ... | ... | @@ -110138,33 +113869,167 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110138 | 113869 | }, |
| 110139 | 113870 | .call_frame = .{ .alignment = .@"16" }, |
| 110140 | 113871 | .extra_temps = .{ |
| 110141 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110142 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 110143 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 113872 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113873 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113874 | .{ .type = .usize, .kind = .{ .extern_func = "__floattihf" } }, |
| 113875 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113876 | .unused, |
| 113877 | .unused, |
| 113878 | .unused, |
| 113879 | .unused, |
| 113880 | .unused, |
| 113881 | .unused, |
| 113882 | .unused, |
| 113883 | }, |
| 113884 | .dst_temps = .{ .mem, .unused }, |
| 113885 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113886 | .each = .{ .once = &.{ |
| 113887 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113888 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 113889 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113890 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 113891 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113892 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113893 | } }, |
| 113894 | }, .{ |
| 113895 | .required_cc_abi = .sysv64, |
| 113896 | .required_features = .{ .sse2, null, null, null }, |
| 113897 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113898 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 113899 | .patterns = &.{ |
| 113900 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113901 | }, |
| 113902 | .call_frame = .{ .alignment = .@"16" }, |
| 113903 | .extra_temps = .{ |
| 113904 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113905 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110144 | 113906 | .{ .type = .usize, .kind = .{ .extern_func = "__floattihf" } }, |
| 110145 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 113907 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113908 | .unused, |
| 113909 | .unused, |
| 113910 | .unused, |
| 113911 | .unused, |
| 113912 | .unused, |
| 113913 | .unused, |
| 113914 | .unused, |
| 113915 | }, |
| 113916 | .dst_temps = .{ .mem, .unused }, |
| 113917 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113918 | .each = .{ .once = &.{ |
| 113919 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113920 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 113921 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"8", .tmp0, 8), ._, ._ }, |
| 113922 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113923 | .{ ._, .p_w, .extr, .tmp1d0, .tmp3x, .ui(0), ._ }, |
| 113924 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w0, ._, ._ }, |
| 113925 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113926 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113927 | } }, |
| 113928 | }, .{ |
| 113929 | .required_cc_abi = .win64, |
| 113930 | .required_features = .{ .sse2, null, null, null }, |
| 113931 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113932 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 113933 | .patterns = &.{ |
| 113934 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113935 | }, |
| 113936 | .call_frame = .{ .alignment = .@"16" }, |
| 113937 | .extra_temps = .{ |
| 113938 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113939 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113940 | .{ .type = .usize, .kind = .{ .extern_func = "__floattihf" } }, |
| 113941 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113942 | .unused, |
| 113943 | .unused, |
| 113944 | .unused, |
| 113945 | .unused, |
| 113946 | .unused, |
| 113947 | .unused, |
| 113948 | .unused, |
| 113949 | }, |
| 113950 | .dst_temps = .{ .mem, .unused }, |
| 113951 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113952 | .each = .{ .once = &.{ |
| 113953 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113954 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 113955 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113956 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 113957 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 113958 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113959 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113960 | } }, |
| 113961 | }, .{ |
| 113962 | .required_cc_abi = .sysv64, |
| 113963 | .required_features = .{ .sse, null, null, null }, |
| 113964 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 113965 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 113966 | .patterns = &.{ |
| 113967 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113968 | }, |
| 113969 | .call_frame = .{ .alignment = .@"16" }, |
| 113970 | .extra_temps = .{ |
| 113971 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113972 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113973 | .{ .type = .usize, .kind = .{ .extern_func = "__floattihf" } }, |
| 113974 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110146 | 113975 | .{ .type = .f32, .kind = .mem }, |
| 110147 | 113976 | .unused, |
| 110148 | 113977 | .unused, |
| 110149 | 113978 | .unused, |
| 110150 | 113979 | .unused, |
| 110151 | 113980 | .unused, |
| 113981 | .unused, |
| 110152 | 113982 | }, |
| 110153 | 113983 | .dst_temps = .{ .mem, .unused }, |
| 110154 | 113984 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110155 | 113985 | .each = .{ .once = &.{ |
| 110156 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110157 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110158 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 110159 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 110160 | | .{ ._, ._ss, .mov, .tmp5d, .tmp4d, ._, ._ }, |
| 110161 | | .{ ._, ._, .mov, .tmp1d, .tmp5d, ._, ._ }, |
| 110162 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 110163 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110164 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 113986 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 113987 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 113988 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"8", .tmp0, 8), ._, ._ }, |
| 113989 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113990 | .{ ._, ._ss, .mov, .mem(.tmp4d), .tmp3x, ._, ._ }, |
| 113991 | .{ ._, ._, .mov, .tmp1d0, .mem(.tmp4d), ._, ._ }, |
| 113992 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w0, ._, ._ }, |
| 113993 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 113994 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110165 | 113995 | } }, |
| 110166 | 113996 | }, .{ |
| 110167 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 113997 | .required_cc_abi = .win64, |
| 113998 | .required_features = .{ .sse, null, null, null }, |
| 113999 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 114000 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 114001 | .patterns = &.{ |
| 114002 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114003 | }, |
| 114004 | .call_frame = .{ .alignment = .@"16" }, |
| 114005 | .extra_temps = .{ |
| 114006 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114007 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114008 | .{ .type = .usize, .kind = .{ .extern_func = "__floattihf" } }, |
| 114009 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114010 | .{ .type = .f32, .kind = .mem }, |
| 114011 | .unused, |
| 114012 | .unused, |
| 114013 | .unused, |
| 114014 | .unused, |
| 114015 | .unused, |
| 114016 | .unused, |
| 114017 | }, |
| 114018 | .dst_temps = .{ .mem, .unused }, |
| 114019 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114020 | .each = .{ .once = &.{ |
| 114021 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 114022 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 114023 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114024 | .{ ._, ._ss, .mov, .mem(.tmp4d), .tmp3x, ._, ._ }, |
| 114025 | .{ ._, ._, .mov, .tmp1d, .mem(.tmp4d), ._, ._ }, |
| 114026 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 114027 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 114028 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114029 | } }, |
| 114030 | }, .{ |
| 114031 | .required_cc_abi = .sysv64, |
| 114032 | .required_features = .{ .avx, null, null, null }, |
| 110168 | 114033 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110169 | 114034 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110170 | 114035 | .patterns = &.{ |
| ... | ... | @@ -110172,11 +114037,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110172 | 114037 | }, |
| 110173 | 114038 | .call_frame = .{ .alignment = .@"16" }, |
| 110174 | 114039 | .extra_temps = .{ |
| 110175 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110176 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 110177 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 114040 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114041 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110178 | 114042 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntihf" } }, |
| 110179 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114043 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114044 | .unused, |
| 110180 | 114045 | .unused, |
| 110181 | 114046 | .unused, |
| 110182 | 114047 | .unused, |
| ... | ... | @@ -110187,16 +114052,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110187 | 114052 | .dst_temps = .{ .mem, .unused }, |
| 110188 | 114053 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110189 | 114054 | .each = .{ .once = &.{ |
| 110190 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110191 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110192 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 110193 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 110194 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| 110195 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110196 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114055 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 114056 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 114057 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"8", .tmp0, 8), ._, ._ }, |
| 114058 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114059 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 114060 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 114061 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110197 | 114062 | } }, |
| 110198 | 114063 | }, .{ |
| 110199 | | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| 114064 | .required_cc_abi = .win64, |
| 114065 | .required_features = .{ .avx, null, null, null }, |
| 110200 | 114066 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110201 | 114067 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110202 | 114068 | .patterns = &.{ |
| ... | ... | @@ -110204,11 +114070,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110204 | 114070 | }, |
| 110205 | 114071 | .call_frame = .{ .alignment = .@"16" }, |
| 110206 | 114072 | .extra_temps = .{ |
| 110207 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110208 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 110209 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 114073 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114074 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110210 | 114075 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntihf" } }, |
| 110211 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114076 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114077 | .unused, |
| 110212 | 114078 | .unused, |
| 110213 | 114079 | .unused, |
| 110214 | 114080 | .unused, |
| ... | ... | @@ -110219,16 +114085,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110219 | 114085 | .dst_temps = .{ .mem, .unused }, |
| 110220 | 114086 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110221 | 114087 | .each = .{ .once = &.{ |
| 110222 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110223 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110224 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 110225 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 110226 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4x, .ui(0), ._ }, |
| 110227 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110228 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114088 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 114089 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 114090 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114091 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 114092 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 114093 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110229 | 114094 | } }, |
| 110230 | 114095 | }, .{ |
| 110231 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 114096 | .required_cc_abi = .sysv64, |
| 114097 | .required_features = .{ .sse4_1, null, null, null }, |
| 110232 | 114098 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110233 | 114099 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110234 | 114100 | .patterns = &.{ |
| ... | ... | @@ -110236,11 +114102,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110236 | 114102 | }, |
| 110237 | 114103 | .call_frame = .{ .alignment = .@"16" }, |
| 110238 | 114104 | .extra_temps = .{ |
| 110239 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110240 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 110241 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 114105 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114106 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110242 | 114107 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntihf" } }, |
| 110243 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114108 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114109 | .unused, |
| 110244 | 114110 | .unused, |
| 110245 | 114111 | .unused, |
| 110246 | 114112 | .unused, |
| ... | ... | @@ -110251,17 +114117,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110251 | 114117 | .dst_temps = .{ .mem, .unused }, |
| 110252 | 114118 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110253 | 114119 | .each = .{ .once = &.{ |
| 110254 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110255 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110256 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 110257 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 110258 | | .{ ._, .p_w, .extr, .tmp1d, .tmp4x, .ui(0), ._ }, |
| 110259 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 110260 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110261 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114120 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 114121 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 114122 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"8", .tmp0, 8), ._, ._ }, |
| 114123 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114124 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 114125 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 114126 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110262 | 114127 | } }, |
| 110263 | 114128 | }, .{ |
| 110264 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114129 | .required_cc_abi = .win64, |
| 114130 | .required_features = .{ .sse4_1, null, null, null }, |
| 110265 | 114131 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 110266 | 114132 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 110267 | 114133 | .patterns = &.{ |
| ... | ... | @@ -110269,30 +114135,163 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110269 | 114135 | }, |
| 110270 | 114136 | .call_frame = .{ .alignment = .@"16" }, |
| 110271 | 114137 | .extra_temps = .{ |
| 110272 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110273 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 110274 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 114138 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114139 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110275 | 114140 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntihf" } }, |
| 110276 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114141 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114142 | .unused, |
| 114143 | .unused, |
| 114144 | .unused, |
| 114145 | .unused, |
| 114146 | .unused, |
| 114147 | .unused, |
| 114148 | .unused, |
| 114149 | }, |
| 114150 | .dst_temps = .{ .mem, .unused }, |
| 114151 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114152 | .each = .{ .once = &.{ |
| 114153 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 114154 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 114155 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114156 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp3x, .ui(0), ._ }, |
| 114157 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 114158 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114159 | } }, |
| 114160 | }, .{ |
| 114161 | .required_cc_abi = .sysv64, |
| 114162 | .required_features = .{ .sse2, null, null, null }, |
| 114163 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 114164 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 114165 | .patterns = &.{ |
| 114166 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114167 | }, |
| 114168 | .call_frame = .{ .alignment = .@"16" }, |
| 114169 | .extra_temps = .{ |
| 114170 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114171 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114172 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntihf" } }, |
| 114173 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114174 | .unused, |
| 114175 | .unused, |
| 114176 | .unused, |
| 114177 | .unused, |
| 114178 | .unused, |
| 114179 | .unused, |
| 114180 | .unused, |
| 114181 | }, |
| 114182 | .dst_temps = .{ .mem, .unused }, |
| 114183 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114184 | .each = .{ .once = &.{ |
| 114185 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 114186 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 114187 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"8", .tmp0, 8), ._, ._ }, |
| 114188 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114189 | .{ ._, .p_w, .extr, .tmp1d0, .tmp3x, .ui(0), ._ }, |
| 114190 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w0, ._, ._ }, |
| 114191 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 114192 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114193 | } }, |
| 114194 | }, .{ |
| 114195 | .required_cc_abi = .win64, |
| 114196 | .required_features = .{ .sse2, null, null, null }, |
| 114197 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 114198 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 114199 | .patterns = &.{ |
| 114200 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114201 | }, |
| 114202 | .call_frame = .{ .alignment = .@"16" }, |
| 114203 | .extra_temps = .{ |
| 114204 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114205 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114206 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntihf" } }, |
| 114207 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114208 | .unused, |
| 114209 | .unused, |
| 114210 | .unused, |
| 114211 | .unused, |
| 114212 | .unused, |
| 114213 | .unused, |
| 114214 | .unused, |
| 114215 | }, |
| 114216 | .dst_temps = .{ .mem, .unused }, |
| 114217 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114218 | .each = .{ .once = &.{ |
| 114219 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 114220 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 114221 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114222 | .{ ._, .p_w, .extr, .tmp1d, .tmp3x, .ui(0), ._ }, |
| 114223 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 114224 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 114225 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114226 | } }, |
| 114227 | }, .{ |
| 114228 | .required_cc_abi = .sysv64, |
| 114229 | .required_features = .{ .sse, null, null, null }, |
| 114230 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 114231 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 114232 | .patterns = &.{ |
| 114233 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114234 | }, |
| 114235 | .call_frame = .{ .alignment = .@"16" }, |
| 114236 | .extra_temps = .{ |
| 114237 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114238 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114239 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntihf" } }, |
| 114240 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110277 | 114241 | .{ .type = .f32, .kind = .mem }, |
| 110278 | 114242 | .unused, |
| 110279 | 114243 | .unused, |
| 110280 | 114244 | .unused, |
| 110281 | 114245 | .unused, |
| 110282 | 114246 | .unused, |
| 114247 | .unused, |
| 110283 | 114248 | }, |
| 110284 | 114249 | .dst_temps = .{ .mem, .unused }, |
| 110285 | 114250 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110286 | 114251 | .each = .{ .once = &.{ |
| 110287 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 110288 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_unaligned_size), ._, ._ }, |
| 110289 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"8", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 110290 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 110291 | | .{ ._, ._ss, .mov, .tmp5d, .tmp4d, ._, ._ }, |
| 110292 | | .{ ._, ._, .mov, .tmp1d, .tmp5d, ._, ._ }, |
| 110293 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 110294 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 110295 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114252 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 114253 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, |
| 114254 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"8", .tmp0, 8), ._, ._ }, |
| 114255 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114256 | .{ ._, ._ss, .mov, .mem(.tmp4d), .tmp3x, ._, ._ }, |
| 114257 | .{ ._, ._, .mov, .tmp1d0, .mem(.tmp4d), ._, ._ }, |
| 114258 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w0, ._, ._ }, |
| 114259 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 114260 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114261 | } }, |
| 114262 | }, .{ |
| 114263 | .required_cc_abi = .win64, |
| 114264 | .required_features = .{ .sse, null, null, null }, |
| 114265 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 114266 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, .any }, |
| 114267 | .patterns = &.{ |
| 114268 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114269 | }, |
| 114270 | .call_frame = .{ .alignment = .@"16" }, |
| 114271 | .extra_temps = .{ |
| 114272 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114273 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114274 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntihf" } }, |
| 114275 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114276 | .{ .type = .f32, .kind = .mem }, |
| 114277 | .unused, |
| 114278 | .unused, |
| 114279 | .unused, |
| 114280 | .unused, |
| 114281 | .unused, |
| 114282 | .unused, |
| 114283 | }, |
| 114284 | .dst_temps = .{ .mem, .unused }, |
| 114285 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114286 | .each = .{ .once = &.{ |
| 114287 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 114288 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"8", .tmp0), ._, ._ }, |
| 114289 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114290 | .{ ._, ._ss, .mov, .mem(.tmp4d), .tmp3x, ._, ._ }, |
| 114291 | .{ ._, ._, .mov, .tmp1d, .mem(.tmp4d), ._, ._ }, |
| 114292 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 114293 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 114294 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110296 | 114295 | } }, |
| 110297 | 114296 | }, .{ |
| 110298 | 114297 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -110304,11 +114303,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110304 | 114303 | .call_frame = .{ .alignment = .@"16" }, |
| 110305 | 114304 | .extra_temps = .{ |
| 110306 | 114305 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 110307 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110308 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 110309 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114306 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114307 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114308 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 110310 | 114309 | .{ .type = .usize, .kind = .{ .extern_func = "__floateihf" } }, |
| 110311 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114310 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110312 | 114311 | .unused, |
| 110313 | 114312 | .unused, |
| 110314 | 114313 | .unused, |
| ... | ... | @@ -110318,15 +114317,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110318 | 114317 | .dst_temps = .{ .mem, .unused }, |
| 110319 | 114318 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110320 | 114319 | .each = .{ .once = &.{ |
| 110321 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 110322 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114320 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 114321 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110323 | 114322 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 110324 | 114323 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110325 | 114324 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 110326 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| 110327 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 110328 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 110329 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114325 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp1), .tmp5x, .ui(0), ._ }, |
| 114326 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 114327 | .{ ._, ._, .sub, .tmp1d, .si(2), ._, ._ }, |
| 114328 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110330 | 114329 | } }, |
| 110331 | 114330 | }, .{ |
| 110332 | 114331 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| ... | ... | @@ -110338,11 +114337,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110338 | 114337 | .call_frame = .{ .alignment = .@"16" }, |
| 110339 | 114338 | .extra_temps = .{ |
| 110340 | 114339 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 110341 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110342 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 110343 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114340 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114341 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114342 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 110344 | 114343 | .{ .type = .usize, .kind = .{ .extern_func = "__floateihf" } }, |
| 110345 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114344 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110346 | 114345 | .unused, |
| 110347 | 114346 | .unused, |
| 110348 | 114347 | .unused, |
| ... | ... | @@ -110352,15 +114351,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110352 | 114351 | .dst_temps = .{ .mem, .unused }, |
| 110353 | 114352 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110354 | 114353 | .each = .{ .once = &.{ |
| 110355 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 110356 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114354 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 114355 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110357 | 114356 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 110358 | 114357 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110359 | 114358 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 110360 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| 110361 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 110362 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 110363 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114359 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp1), .tmp5x, .ui(0), ._ }, |
| 114360 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 114361 | .{ ._, ._, .sub, .tmp1d, .si(2), ._, ._ }, |
| 114362 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110364 | 114363 | } }, |
| 110365 | 114364 | }, .{ |
| 110366 | 114365 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -110372,11 +114371,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110372 | 114371 | .call_frame = .{ .alignment = .@"16" }, |
| 110373 | 114372 | .extra_temps = .{ |
| 110374 | 114373 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 110375 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110376 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 110377 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114374 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114375 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114376 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 110378 | 114377 | .{ .type = .usize, .kind = .{ .extern_func = "__floateihf" } }, |
| 110379 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114378 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110380 | 114379 | .unused, |
| 110381 | 114380 | .unused, |
| 110382 | 114381 | .unused, |
| ... | ... | @@ -110386,16 +114385,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110386 | 114385 | .dst_temps = .{ .mem, .unused }, |
| 110387 | 114386 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110388 | 114387 | .each = .{ .once = &.{ |
| 110389 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 110390 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114388 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 114389 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110391 | 114390 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 110392 | 114391 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110393 | 114392 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 110394 | 114393 | .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ }, |
| 110395 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 110396 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 110397 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 110398 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114394 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 114395 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 114396 | .{ ._, ._, .sub, .tmp1d, .si(2), ._, ._ }, |
| 114397 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110399 | 114398 | } }, |
| 110400 | 114399 | }, .{ |
| 110401 | 114400 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -110407,11 +114406,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110407 | 114406 | .call_frame = .{ .alignment = .@"16" }, |
| 110408 | 114407 | .extra_temps = .{ |
| 110409 | 114408 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 110410 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110411 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 110412 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114409 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114410 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114411 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 110413 | 114412 | .{ .type = .usize, .kind = .{ .extern_func = "__floateihf" } }, |
| 110414 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114413 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110415 | 114414 | .{ .type = .f32, .kind = .mem }, |
| 110416 | 114415 | .unused, |
| 110417 | 114416 | .unused, |
| ... | ... | @@ -110421,17 +114420,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110421 | 114420 | .dst_temps = .{ .mem, .unused }, |
| 110422 | 114421 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110423 | 114422 | .each = .{ .once = &.{ |
| 110424 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 110425 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114423 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 114424 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110426 | 114425 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 110427 | 114426 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110428 | 114427 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 110429 | 114428 | .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ }, |
| 110430 | 114429 | .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ }, |
| 110431 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 110432 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 110433 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 110434 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114430 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 114431 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 114432 | .{ ._, ._, .sub, .tmp1d, .si(2), ._, ._ }, |
| 114433 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110435 | 114434 | } }, |
| 110436 | 114435 | }, .{ |
| 110437 | 114436 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -110443,11 +114442,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110443 | 114442 | .call_frame = .{ .alignment = .@"16" }, |
| 110444 | 114443 | .extra_temps = .{ |
| 110445 | 114444 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 110446 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110447 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 110448 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114445 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114446 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114447 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 110449 | 114448 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneihf" } }, |
| 110450 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114449 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110451 | 114450 | .unused, |
| 110452 | 114451 | .unused, |
| 110453 | 114452 | .unused, |
| ... | ... | @@ -110457,15 +114456,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110457 | 114456 | .dst_temps = .{ .mem, .unused }, |
| 110458 | 114457 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110459 | 114458 | .each = .{ .once = &.{ |
| 110460 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 110461 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114459 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 114460 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110462 | 114461 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 110463 | 114462 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110464 | 114463 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 110465 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| 110466 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 110467 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 110468 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114464 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp1), .tmp5x, .ui(0), ._ }, |
| 114465 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 114466 | .{ ._, ._, .sub, .tmp1d, .si(2), ._, ._ }, |
| 114467 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110469 | 114468 | } }, |
| 110470 | 114469 | }, .{ |
| 110471 | 114470 | .required_features = .{ .@"64bit", .sse4_1, null, null }, |
| ... | ... | @@ -110477,11 +114476,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110477 | 114476 | .call_frame = .{ .alignment = .@"16" }, |
| 110478 | 114477 | .extra_temps = .{ |
| 110479 | 114478 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 110480 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110481 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 110482 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114479 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114480 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114481 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 110483 | 114482 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneihf" } }, |
| 110484 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114483 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110485 | 114484 | .unused, |
| 110486 | 114485 | .unused, |
| 110487 | 114486 | .unused, |
| ... | ... | @@ -110491,15 +114490,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110491 | 114490 | .dst_temps = .{ .mem, .unused }, |
| 110492 | 114491 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110493 | 114492 | .each = .{ .once = &.{ |
| 110494 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 110495 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114493 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 114494 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110496 | 114495 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 110497 | 114496 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110498 | 114497 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 110499 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp5x, .ui(0), ._ }, |
| 110500 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 110501 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 110502 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114498 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp1), .tmp5x, .ui(0), ._ }, |
| 114499 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 114500 | .{ ._, ._, .sub, .tmp1d, .si(2), ._, ._ }, |
| 114501 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110503 | 114502 | } }, |
| 110504 | 114503 | }, .{ |
| 110505 | 114504 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -110511,11 +114510,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110511 | 114510 | .call_frame = .{ .alignment = .@"16" }, |
| 110512 | 114511 | .extra_temps = .{ |
| 110513 | 114512 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 110514 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110515 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 110516 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114513 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114514 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114515 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 110517 | 114516 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneihf" } }, |
| 110518 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114517 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110519 | 114518 | .unused, |
| 110520 | 114519 | .unused, |
| 110521 | 114520 | .unused, |
| ... | ... | @@ -110525,16 +114524,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110525 | 114524 | .dst_temps = .{ .mem, .unused }, |
| 110526 | 114525 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110527 | 114526 | .each = .{ .once = &.{ |
| 110528 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 110529 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114527 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 114528 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110530 | 114529 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 110531 | 114530 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110532 | 114531 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 110533 | 114532 | .{ ._, .p_w, .extr, .tmp2d, .tmp5x, .ui(0), ._ }, |
| 110534 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 110535 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 110536 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 110537 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114533 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 114534 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 114535 | .{ ._, ._, .sub, .tmp1d, .si(2), ._, ._ }, |
| 114536 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110538 | 114537 | } }, |
| 110539 | 114538 | }, .{ |
| 110540 | 114539 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -110546,11 +114545,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110546 | 114545 | .call_frame = .{ .alignment = .@"16" }, |
| 110547 | 114546 | .extra_temps = .{ |
| 110548 | 114547 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 110549 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 110550 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 110551 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 114548 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114549 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114550 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 110552 | 114551 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneihf" } }, |
| 110553 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 114552 | .{ .type = .f16, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 110554 | 114553 | .{ .type = .f32, .kind = .mem }, |
| 110555 | 114554 | .unused, |
| 110556 | 114555 | .unused, |
| ... | ... | @@ -110560,17 +114559,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110560 | 114559 | .dst_temps = .{ .mem, .unused }, |
| 110561 | 114560 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110562 | 114561 | .each = .{ .once = &.{ |
| 110563 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 110564 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 114562 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 114563 | .{ ._, ._, .mov, .tmp1d, .sia(-2, .dst0, .add_unaligned_size), ._, ._ }, |
| 110565 | 114564 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 110566 | 114565 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 110567 | 114566 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 110568 | 114567 | .{ ._, ._ss, .mov, .tmp6d, .tmp5d, ._, ._ }, |
| 110569 | 114568 | .{ ._, ._, .mov, .tmp2d, .tmp6d, ._, ._ }, |
| 110570 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp1, .add_unaligned_size), .tmp2w, ._, ._ }, |
| 110571 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 110572 | | .{ ._, ._, .add, .tmp1p, .si(2), ._, ._ }, |
| 110573 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 114569 | .{ ._, ._, .mov, .memi(.dst0w, .tmp1), .tmp2w, ._, ._ }, |
| 114570 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 114571 | .{ ._, ._, .sub, .tmp1d, .si(2), ._, ._ }, |
| 114572 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 110574 | 114573 | } }, |
| 110575 | 114574 | }, .{ |
| 110576 | 114575 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -110965,11 +114964,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110965 | 114964 | .{ .@"1:", ._ss, .cvtsi2, .dst0x, .src0q, ._, ._ }, |
| 110966 | 114965 | } }, |
| 110967 | 114966 | }, .{ |
| 110968 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114967 | .required_cc_abi = .sysv64, |
| 114968 | .required_features = .{ .sse, null, null, null }, |
| 110969 | 114969 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 110970 | 114970 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 110971 | 114971 | .patterns = &.{ |
| 110972 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 114972 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 110973 | 114973 | }, |
| 110974 | 114974 | .call_frame = .{ .alignment = .@"16" }, |
| 110975 | 114975 | .extra_temps = .{ |
| ... | ... | @@ -110985,17 +114985,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 110985 | 114985 | .unused, |
| 110986 | 114986 | .unused, |
| 110987 | 114987 | }, |
| 110988 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 114988 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 110989 | 114989 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 110990 | 114990 | .each = .{ .once = &.{ |
| 110991 | 114991 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 110992 | 114992 | } }, |
| 110993 | 114993 | }, .{ |
| 110994 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 114994 | .required_cc_abi = .win64, |
| 114995 | .required_features = .{ .sse, null, null, null }, |
| 114996 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 114997 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 114998 | .patterns = &.{ |
| 114999 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115000 | }, |
| 115001 | .call_frame = .{ .alignment = .@"16" }, |
| 115002 | .extra_temps = .{ |
| 115003 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115004 | .{ .type = .usize, .kind = .{ .extern_func = "__floattisf" } }, |
| 115005 | .unused, |
| 115006 | .unused, |
| 115007 | .unused, |
| 115008 | .unused, |
| 115009 | .unused, |
| 115010 | .unused, |
| 115011 | .unused, |
| 115012 | .unused, |
| 115013 | .unused, |
| 115014 | }, |
| 115015 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 115016 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115017 | .each = .{ .once = &.{ |
| 115018 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115019 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 115020 | } }, |
| 115021 | }, .{ |
| 115022 | .required_cc_abi = .sysv64, |
| 115023 | .required_features = .{ .sse, null, null, null }, |
| 110995 | 115024 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 110996 | 115025 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 110997 | 115026 | .patterns = &.{ |
| 110998 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 115027 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 110999 | 115028 | }, |
| 111000 | 115029 | .call_frame = .{ .alignment = .@"16" }, |
| 111001 | 115030 | .extra_temps = .{ |
| ... | ... | @@ -111011,11 +115040,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111011 | 115040 | .unused, |
| 111012 | 115041 | .unused, |
| 111013 | 115042 | }, |
| 111014 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115043 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 111015 | 115044 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111016 | 115045 | .each = .{ .once = &.{ |
| 111017 | 115046 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 111018 | 115047 | } }, |
| 115048 | }, .{ |
| 115049 | .required_cc_abi = .win64, |
| 115050 | .required_features = .{ .sse, null, null, null }, |
| 115051 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 115052 | .dst_constraints = .{ .{ .float = .dword }, .any }, |
| 115053 | .patterns = &.{ |
| 115054 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115055 | }, |
| 115056 | .call_frame = .{ .alignment = .@"16" }, |
| 115057 | .extra_temps = .{ |
| 115058 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115059 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntisf" } }, |
| 115060 | .unused, |
| 115061 | .unused, |
| 115062 | .unused, |
| 115063 | .unused, |
| 115064 | .unused, |
| 115065 | .unused, |
| 115066 | .unused, |
| 115067 | .unused, |
| 115068 | .unused, |
| 115069 | }, |
| 115070 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 115071 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115072 | .each = .{ .once = &.{ |
| 115073 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115074 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 115075 | } }, |
| 111019 | 115076 | }, .{ |
| 111020 | 115077 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 111021 | 115078 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| ... | ... | @@ -111025,8 +115082,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111025 | 115082 | }, |
| 111026 | 115083 | .call_frame = .{ .alignment = .@"16" }, |
| 111027 | 115084 | .extra_temps = .{ |
| 111028 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 111029 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115085 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115086 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 111030 | 115087 | .{ .type = .usize, .kind = .{ .extern_func = "__floateisf" } }, |
| 111031 | 115088 | .unused, |
| 111032 | 115089 | .unused, |
| ... | ... | @@ -111037,7 +115094,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111037 | 115094 | .unused, |
| 111038 | 115095 | .unused, |
| 111039 | 115096 | }, |
| 111040 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115097 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 111041 | 115098 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111042 | 115099 | .each = .{ .once = &.{ |
| 111043 | 115100 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| ... | ... | @@ -111053,8 +115110,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111053 | 115110 | }, |
| 111054 | 115111 | .call_frame = .{ .alignment = .@"16" }, |
| 111055 | 115112 | .extra_temps = .{ |
| 111056 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 111057 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 115113 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115114 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 111058 | 115115 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneisf" } }, |
| 111059 | 115116 | .unused, |
| 111060 | 115117 | .unused, |
| ... | ... | @@ -111065,7 +115122,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111065 | 115122 | .unused, |
| 111066 | 115123 | .unused, |
| 111067 | 115124 | }, |
| 111068 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 115125 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 111069 | 115126 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111070 | 115127 | .each = .{ .once = &.{ |
| 111071 | 115128 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| ... | ... | @@ -111158,7 +115215,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111158 | 115215 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111159 | 115216 | }, |
| 111160 | 115217 | .extra_temps = .{ |
| 111161 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115218 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111162 | 115219 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 111163 | 115220 | .unused, |
| 111164 | 115221 | .unused, |
| ... | ... | @@ -111173,12 +115230,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111173 | 115230 | .dst_temps = .{ .mem, .unused }, |
| 111174 | 115231 | .clobbers = .{ .eflags = true }, |
| 111175 | 115232 | .each = .{ .once = &.{ |
| 111176 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111177 | | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115233 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 115234 | .{ .@"0:", .vp_d, .movsxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ }, |
| 111178 | 115235 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 111179 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 111180 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 111181 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115236 | .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ }, |
| 115237 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 115238 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111182 | 115239 | } }, |
| 111183 | 115240 | }, .{ |
| 111184 | 115241 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -111188,7 +115245,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111188 | 115245 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111189 | 115246 | }, |
| 111190 | 115247 | .extra_temps = .{ |
| 111191 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115248 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111192 | 115249 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111193 | 115250 | .unused, |
| 111194 | 115251 | .unused, |
| ... | ... | @@ -111203,12 +115260,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111203 | 115260 | .dst_temps = .{ .mem, .unused }, |
| 111204 | 115261 | .clobbers = .{ .eflags = true }, |
| 111205 | 115262 | .each = .{ .once = &.{ |
| 111206 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111207 | | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115263 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 115264 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 111208 | 115265 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 111209 | | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111210 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111211 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115266 | .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 115267 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 115268 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111212 | 115269 | } }, |
| 111213 | 115270 | }, .{ |
| 111214 | 115271 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -111218,7 +115275,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111218 | 115275 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111219 | 115276 | }, |
| 111220 | 115277 | .extra_temps = .{ |
| 111221 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115278 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111222 | 115279 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111223 | 115280 | .unused, |
| 111224 | 115281 | .unused, |
| ... | ... | @@ -111233,12 +115290,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111233 | 115290 | .dst_temps = .{ .mem, .unused }, |
| 111234 | 115291 | .clobbers = .{ .eflags = true }, |
| 111235 | 115292 | .each = .{ .once = &.{ |
| 111236 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111237 | | .{ .@"0:", .p_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115293 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 115294 | .{ .@"0:", .p_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 111238 | 115295 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 111239 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111240 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111241 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115296 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 115297 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 115298 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111242 | 115299 | } }, |
| 111243 | 115300 | }, .{ |
| 111244 | 115301 | .required_features = .{ .avx2, null, null, null }, |
| ... | ... | @@ -111248,7 +115305,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111248 | 115305 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111249 | 115306 | }, |
| 111250 | 115307 | .extra_temps = .{ |
| 111251 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115308 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111252 | 115309 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 111253 | 115310 | .unused, |
| 111254 | 115311 | .unused, |
| ... | ... | @@ -111263,12 +115320,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111263 | 115320 | .dst_temps = .{ .mem, .unused }, |
| 111264 | 115321 | .clobbers = .{ .eflags = true }, |
| 111265 | 115322 | .each = .{ .once = &.{ |
| 111266 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111267 | | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115323 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 115324 | .{ .@"0:", .vp_d, .movzxb, .tmp1y, .memi(.src0q, .tmp0), ._, ._ }, |
| 111268 | 115325 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 111269 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 111270 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 111271 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115326 | .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ }, |
| 115327 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 115328 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111272 | 115329 | } }, |
| 111273 | 115330 | }, .{ |
| 111274 | 115331 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -111278,7 +115335,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111278 | 115335 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111279 | 115336 | }, |
| 111280 | 115337 | .extra_temps = .{ |
| 111281 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115338 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111282 | 115339 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111283 | 115340 | .unused, |
| 111284 | 115341 | .unused, |
| ... | ... | @@ -111293,12 +115350,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111293 | 115350 | .dst_temps = .{ .mem, .unused }, |
| 111294 | 115351 | .clobbers = .{ .eflags = true }, |
| 111295 | 115352 | .each = .{ .once = &.{ |
| 111296 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111297 | | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115353 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 115354 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 111298 | 115355 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 111299 | | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111300 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111301 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115356 | .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 115357 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 115358 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111302 | 115359 | } }, |
| 111303 | 115360 | }, .{ |
| 111304 | 115361 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -111308,7 +115365,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111308 | 115365 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111309 | 115366 | }, |
| 111310 | 115367 | .extra_temps = .{ |
| 111311 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115368 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111312 | 115369 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111313 | 115370 | .unused, |
| 111314 | 115371 | .unused, |
| ... | ... | @@ -111323,12 +115380,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111323 | 115380 | .dst_temps = .{ .mem, .unused }, |
| 111324 | 115381 | .clobbers = .{ .eflags = true }, |
| 111325 | 115382 | .each = .{ .once = &.{ |
| 111326 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111327 | | .{ .@"0:", .p_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115383 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 115384 | .{ .@"0:", .p_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 111328 | 115385 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 111329 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111330 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 111331 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115386 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 115387 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 115388 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111332 | 115389 | } }, |
| 111333 | 115390 | }, .{ |
| 111334 | 115391 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | ... | @@ -111339,10 +115396,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111339 | 115396 | }, |
| 111340 | 115397 | .call_frame = .{ .alignment = .@"16" }, |
| 111341 | 115398 | .extra_temps = .{ |
| 111342 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111343 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115399 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115400 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111344 | 115401 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsisf" } }, |
| 111345 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115402 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111346 | 115403 | .unused, |
| 111347 | 115404 | .unused, |
| 111348 | 115405 | .unused, |
| ... | ... | @@ -111354,12 +115411,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111354 | 115411 | .dst_temps = .{ .mem, .unused }, |
| 111355 | 115412 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111356 | 115413 | .each = .{ .once = &.{ |
| 111357 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111358 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115414 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 115415 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 111359 | 115416 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111360 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111361 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 111362 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115417 | .{ ._, .v_ss, .mov, .memsi(.dst0d, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 115418 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 115419 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111363 | 115420 | } }, |
| 111364 | 115421 | }, .{ |
| 111365 | 115422 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -111370,10 +115427,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111370 | 115427 | }, |
| 111371 | 115428 | .call_frame = .{ .alignment = .@"16" }, |
| 111372 | 115429 | .extra_temps = .{ |
| 111373 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111374 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115430 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115431 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111375 | 115432 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsisf" } }, |
| 111376 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115433 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111377 | 115434 | .unused, |
| 111378 | 115435 | .unused, |
| 111379 | 115436 | .unused, |
| ... | ... | @@ -111385,12 +115442,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111385 | 115442 | .dst_temps = .{ .mem, .unused }, |
| 111386 | 115443 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111387 | 115444 | .each = .{ .once = &.{ |
| 111388 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111389 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115445 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 115446 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 111390 | 115447 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111391 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111392 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 111393 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 115448 | .{ ._, .v_ss, .mov, .memsi(.dst0d, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 115449 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 115450 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 111394 | 115451 | } }, |
| 111395 | 115452 | }, .{ |
| 111396 | 115453 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -111401,10 +115458,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111401 | 115458 | }, |
| 111402 | 115459 | .call_frame = .{ .alignment = .@"16" }, |
| 111403 | 115460 | .extra_temps = .{ |
| 111404 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111405 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115461 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115462 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111406 | 115463 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsisf" } }, |
| 111407 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115464 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111408 | 115465 | .unused, |
| 111409 | 115466 | .unused, |
| 111410 | 115467 | .unused, |
| ... | ... | @@ -111416,12 +115473,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111416 | 115473 | .dst_temps = .{ .mem, .unused }, |
| 111417 | 115474 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111418 | 115475 | .each = .{ .once = &.{ |
| 111419 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111420 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115476 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 115477 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 111421 | 115478 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111422 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111423 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 111424 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115479 | .{ ._, ._ss, .mov, .memsi(.dst0d, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 115480 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 115481 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111425 | 115482 | } }, |
| 111426 | 115483 | }, .{ |
| 111427 | 115484 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -111432,10 +115489,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111432 | 115489 | }, |
| 111433 | 115490 | .call_frame = .{ .alignment = .@"16" }, |
| 111434 | 115491 | .extra_temps = .{ |
| 111435 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111436 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115492 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115493 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111437 | 115494 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsisf" } }, |
| 111438 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115495 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111439 | 115496 | .unused, |
| 111440 | 115497 | .unused, |
| 111441 | 115498 | .unused, |
| ... | ... | @@ -111447,12 +115504,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111447 | 115504 | .dst_temps = .{ .mem, .unused }, |
| 111448 | 115505 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111449 | 115506 | .each = .{ .once = &.{ |
| 111450 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111451 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115507 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 115508 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 111452 | 115509 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111453 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111454 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 111455 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 115510 | .{ ._, ._ss, .mov, .memsi(.dst0d, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 115511 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 115512 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 111456 | 115513 | } }, |
| 111457 | 115514 | }, .{ |
| 111458 | 115515 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | ... | @@ -111463,10 +115520,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111463 | 115520 | }, |
| 111464 | 115521 | .call_frame = .{ .alignment = .@"16" }, |
| 111465 | 115522 | .extra_temps = .{ |
| 111466 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111467 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115523 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115524 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111468 | 115525 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsisf" } }, |
| 111469 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115526 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111470 | 115527 | .unused, |
| 111471 | 115528 | .unused, |
| 111472 | 115529 | .unused, |
| ... | ... | @@ -111478,12 +115535,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111478 | 115535 | .dst_temps = .{ .mem, .unused }, |
| 111479 | 115536 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111480 | 115537 | .each = .{ .once = &.{ |
| 111481 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111482 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115538 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 115539 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 111483 | 115540 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111484 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111485 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 111486 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115541 | .{ ._, .v_ss, .mov, .memsi(.dst0d, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 115542 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 115543 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111487 | 115544 | } }, |
| 111488 | 115545 | }, .{ |
| 111489 | 115546 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -111494,10 +115551,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111494 | 115551 | }, |
| 111495 | 115552 | .call_frame = .{ .alignment = .@"16" }, |
| 111496 | 115553 | .extra_temps = .{ |
| 111497 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111498 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115554 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115555 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111499 | 115556 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsisf" } }, |
| 111500 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115557 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111501 | 115558 | .unused, |
| 111502 | 115559 | .unused, |
| 111503 | 115560 | .unused, |
| ... | ... | @@ -111509,12 +115566,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111509 | 115566 | .dst_temps = .{ .mem, .unused }, |
| 111510 | 115567 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111511 | 115568 | .each = .{ .once = &.{ |
| 111512 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111513 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115569 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 115570 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 111514 | 115571 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111515 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111516 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 111517 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 115572 | .{ ._, .v_ss, .mov, .memsi(.dst0d, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 115573 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 115574 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 111518 | 115575 | } }, |
| 111519 | 115576 | }, .{ |
| 111520 | 115577 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -111525,10 +115582,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111525 | 115582 | }, |
| 111526 | 115583 | .call_frame = .{ .alignment = .@"16" }, |
| 111527 | 115584 | .extra_temps = .{ |
| 111528 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111529 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115585 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115586 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111530 | 115587 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsisf" } }, |
| 111531 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115588 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111532 | 115589 | .unused, |
| 111533 | 115590 | .unused, |
| 111534 | 115591 | .unused, |
| ... | ... | @@ -111540,12 +115597,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111540 | 115597 | .dst_temps = .{ .mem, .unused }, |
| 111541 | 115598 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111542 | 115599 | .each = .{ .once = &.{ |
| 111543 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111544 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115600 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 115601 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 111545 | 115602 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111546 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111547 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 111548 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115603 | .{ ._, ._ss, .mov, .memsi(.dst0d, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 115604 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 115605 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111549 | 115606 | } }, |
| 111550 | 115607 | }, .{ |
| 111551 | 115608 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -111556,10 +115613,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111556 | 115613 | }, |
| 111557 | 115614 | .call_frame = .{ .alignment = .@"16" }, |
| 111558 | 115615 | .extra_temps = .{ |
| 111559 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111560 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115616 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115617 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111561 | 115618 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsisf" } }, |
| 111562 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115619 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111563 | 115620 | .unused, |
| 111564 | 115621 | .unused, |
| 111565 | 115622 | .unused, |
| ... | ... | @@ -111571,12 +115628,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111571 | 115628 | .dst_temps = .{ .mem, .unused }, |
| 111572 | 115629 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111573 | 115630 | .each = .{ .once = &.{ |
| 111574 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111575 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115631 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 115632 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 111576 | 115633 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111577 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111578 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 111579 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 115634 | .{ ._, ._ss, .mov, .memsi(.dst0d, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 115635 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 115636 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 111580 | 115637 | } }, |
| 111581 | 115638 | }, .{ |
| 111582 | 115639 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -111664,7 +115721,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111664 | 115721 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111665 | 115722 | }, |
| 111666 | 115723 | .extra_temps = .{ |
| 111667 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115724 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111668 | 115725 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 111669 | 115726 | .unused, |
| 111670 | 115727 | .unused, |
| ... | ... | @@ -111679,12 +115736,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111679 | 115736 | .dst_temps = .{ .mem, .unused }, |
| 111680 | 115737 | .clobbers = .{ .eflags = true }, |
| 111681 | 115738 | .each = .{ .once = &.{ |
| 111682 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111683 | | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115739 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 115740 | .{ .@"0:", .vp_d, .movsxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 111684 | 115741 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 111685 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 111686 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 111687 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115742 | .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ }, |
| 115743 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 115744 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111688 | 115745 | } }, |
| 111689 | 115746 | }, .{ |
| 111690 | 115747 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -111694,7 +115751,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111694 | 115751 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111695 | 115752 | }, |
| 111696 | 115753 | .extra_temps = .{ |
| 111697 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115754 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111698 | 115755 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111699 | 115756 | .unused, |
| 111700 | 115757 | .unused, |
| ... | ... | @@ -111709,12 +115766,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111709 | 115766 | .dst_temps = .{ .mem, .unused }, |
| 111710 | 115767 | .clobbers = .{ .eflags = true }, |
| 111711 | 115768 | .each = .{ .once = &.{ |
| 111712 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111713 | | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115769 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 115770 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 111714 | 115771 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 111715 | | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111716 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 111717 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115772 | .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 115773 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 115774 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111718 | 115775 | } }, |
| 111719 | 115776 | }, .{ |
| 111720 | 115777 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -111724,7 +115781,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111724 | 115781 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111725 | 115782 | }, |
| 111726 | 115783 | .extra_temps = .{ |
| 111727 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115784 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111728 | 115785 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111729 | 115786 | .unused, |
| 111730 | 115787 | .unused, |
| ... | ... | @@ -111739,12 +115796,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111739 | 115796 | .dst_temps = .{ .mem, .unused }, |
| 111740 | 115797 | .clobbers = .{ .eflags = true }, |
| 111741 | 115798 | .each = .{ .once = &.{ |
| 111742 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111743 | | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115799 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 115800 | .{ .@"0:", .p_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 111744 | 115801 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 111745 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111746 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 111747 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115802 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 115803 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 115804 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111748 | 115805 | } }, |
| 111749 | 115806 | }, .{ |
| 111750 | 115807 | .required_features = .{ .avx2, null, null, null }, |
| ... | ... | @@ -111754,7 +115811,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111754 | 115811 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111755 | 115812 | }, |
| 111756 | 115813 | .extra_temps = .{ |
| 111757 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115814 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111758 | 115815 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 111759 | 115816 | .unused, |
| 111760 | 115817 | .unused, |
| ... | ... | @@ -111769,12 +115826,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111769 | 115826 | .dst_temps = .{ .mem, .unused }, |
| 111770 | 115827 | .clobbers = .{ .eflags = true }, |
| 111771 | 115828 | .each = .{ .once = &.{ |
| 111772 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111773 | | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115829 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 115830 | .{ .@"0:", .vp_d, .movzxw, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 111774 | 115831 | .{ ._, .v_ps, .cvtdq2, .tmp1y, .tmp1y, ._, ._ }, |
| 111775 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 111776 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 111777 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115832 | .{ ._, .v_ps, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ }, |
| 115833 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 115834 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111778 | 115835 | } }, |
| 111779 | 115836 | }, .{ |
| 111780 | 115837 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -111784,7 +115841,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111784 | 115841 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111785 | 115842 | }, |
| 111786 | 115843 | .extra_temps = .{ |
| 111787 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115844 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111788 | 115845 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111789 | 115846 | .unused, |
| 111790 | 115847 | .unused, |
| ... | ... | @@ -111799,12 +115856,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111799 | 115856 | .dst_temps = .{ .mem, .unused }, |
| 111800 | 115857 | .clobbers = .{ .eflags = true }, |
| 111801 | 115858 | .each = .{ .once = &.{ |
| 111802 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111803 | | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115859 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 115860 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 111804 | 115861 | .{ ._, .v_ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 111805 | | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111806 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 111807 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115862 | .{ ._, .v_ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 115863 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 115864 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111808 | 115865 | } }, |
| 111809 | 115866 | }, .{ |
| 111810 | 115867 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -111814,7 +115871,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111814 | 115871 | .{ .src = .{ .to_mem, .none, .none } }, |
| 111815 | 115872 | }, |
| 111816 | 115873 | .extra_temps = .{ |
| 111817 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115874 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 111818 | 115875 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 111819 | 115876 | .unused, |
| 111820 | 115877 | .unused, |
| ... | ... | @@ -111829,12 +115886,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111829 | 115886 | .dst_temps = .{ .mem, .unused }, |
| 111830 | 115887 | .clobbers = .{ .eflags = true }, |
| 111831 | 115888 | .each = .{ .once = &.{ |
| 111832 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111833 | | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115889 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 115890 | .{ .@"0:", .p_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 111834 | 115891 | .{ ._, ._ps, .cvtdq2, .tmp1x, .tmp1x, ._, ._ }, |
| 111835 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 111836 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 111837 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115892 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 115893 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 115894 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111838 | 115895 | } }, |
| 111839 | 115896 | }, .{ |
| 111840 | 115897 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -111845,10 +115902,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111845 | 115902 | }, |
| 111846 | 115903 | .call_frame = .{ .alignment = .@"16" }, |
| 111847 | 115904 | .extra_temps = .{ |
| 111848 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111849 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115905 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115906 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111850 | 115907 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsisf" } }, |
| 111851 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115908 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111852 | 115909 | .unused, |
| 111853 | 115910 | .unused, |
| 111854 | 115911 | .unused, |
| ... | ... | @@ -111860,12 +115917,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111860 | 115917 | .dst_temps = .{ .mem, .unused }, |
| 111861 | 115918 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111862 | 115919 | .each = .{ .once = &.{ |
| 111863 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111864 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115920 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 115921 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 111865 | 115922 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111866 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111867 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 111868 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115923 | .{ ._, .v_ss, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 115924 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 115925 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111869 | 115926 | } }, |
| 111870 | 115927 | }, .{ |
| 111871 | 115928 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -111876,10 +115933,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111876 | 115933 | }, |
| 111877 | 115934 | .call_frame = .{ .alignment = .@"16" }, |
| 111878 | 115935 | .extra_temps = .{ |
| 111879 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111880 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 115936 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115937 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111881 | 115938 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsisf" } }, |
| 111882 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115939 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111883 | 115940 | .unused, |
| 111884 | 115941 | .unused, |
| 111885 | 115942 | .unused, |
| ... | ... | @@ -111891,12 +115948,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111891 | 115948 | .dst_temps = .{ .mem, .unused }, |
| 111892 | 115949 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111893 | 115950 | .each = .{ .once = &.{ |
| 111894 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111895 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115951 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 115952 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 111896 | 115953 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111897 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111898 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 111899 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115954 | .{ ._, ._ss, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 115955 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 115956 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111900 | 115957 | } }, |
| 111901 | 115958 | }, .{ |
| 111902 | 115959 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -111907,10 +115964,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111907 | 115964 | }, |
| 111908 | 115965 | .call_frame = .{ .alignment = .@"16" }, |
| 111909 | 115966 | .extra_temps = .{ |
| 111910 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111911 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115967 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115968 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111912 | 115969 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsisf" } }, |
| 111913 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 115970 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111914 | 115971 | .unused, |
| 111915 | 115972 | .unused, |
| 111916 | 115973 | .unused, |
| ... | ... | @@ -111922,12 +115979,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111922 | 115979 | .dst_temps = .{ .mem, .unused }, |
| 111923 | 115980 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111924 | 115981 | .each = .{ .once = &.{ |
| 111925 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111926 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 115982 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 115983 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 111927 | 115984 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111928 | | .{ ._, .v_ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111929 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 111930 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 115985 | .{ ._, .v_ss, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 115986 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 115987 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111931 | 115988 | } }, |
| 111932 | 115989 | }, .{ |
| 111933 | 115990 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -111938,10 +115995,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111938 | 115995 | }, |
| 111939 | 115996 | .call_frame = .{ .alignment = .@"16" }, |
| 111940 | 115997 | .extra_temps = .{ |
| 111941 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 111942 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 115998 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115999 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111943 | 116000 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsisf" } }, |
| 111944 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116001 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 111945 | 116002 | .unused, |
| 111946 | 116003 | .unused, |
| 111947 | 116004 | .unused, |
| ... | ... | @@ -111953,12 +116010,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 111953 | 116010 | .dst_temps = .{ .mem, .unused }, |
| 111954 | 116011 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 111955 | 116012 | .each = .{ .once = &.{ |
| 111956 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 111957 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116013 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 116014 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 111958 | 116015 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 111959 | | .{ ._, ._ss, .mov, .memsia(.dst0d, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 111960 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 111961 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116016 | .{ ._, ._ss, .mov, .memsi(.dst0d, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 116017 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 116018 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 111962 | 116019 | } }, |
| 111963 | 116020 | }, .{ |
| 111964 | 116021 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -112004,7 +116061,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112004 | 116061 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112005 | 116062 | }, |
| 112006 | 116063 | .extra_temps = .{ |
| 112007 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116064 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112008 | 116065 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 112009 | 116066 | .unused, |
| 112010 | 116067 | .unused, |
| ... | ... | @@ -112019,11 +116076,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112019 | 116076 | .dst_temps = .{ .mem, .unused }, |
| 112020 | 116077 | .clobbers = .{ .eflags = true }, |
| 112021 | 116078 | .each = .{ .once = &.{ |
| 112022 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 112023 | | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112024 | | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 112025 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 112026 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116079 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| 116080 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1y, .memi(.src0y, .tmp0), ._, ._ }, |
| 116081 | .{ ._, .v_ps, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 116082 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 116083 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112027 | 116084 | } }, |
| 112028 | 116085 | }, .{ |
| 112029 | 116086 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -112033,7 +116090,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112033 | 116090 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112034 | 116091 | }, |
| 112035 | 116092 | .extra_temps = .{ |
| 112036 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116093 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112037 | 116094 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 112038 | 116095 | .unused, |
| 112039 | 116096 | .unused, |
| ... | ... | @@ -112048,11 +116105,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112048 | 116105 | .dst_temps = .{ .mem, .unused }, |
| 112049 | 116106 | .clobbers = .{ .eflags = true }, |
| 112050 | 116107 | .each = .{ .once = &.{ |
| 112051 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112052 | | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112053 | | .{ ._, .v_ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112054 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 112055 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116108 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116109 | .{ .@"0:", .v_ps, .cvtdq2, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 116110 | .{ ._, .v_ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 116111 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116112 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112056 | 116113 | } }, |
| 112057 | 116114 | }, .{ |
| 112058 | 116115 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -112062,7 +116119,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112062 | 116119 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112063 | 116120 | }, |
| 112064 | 116121 | .extra_temps = .{ |
| 112065 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116122 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112066 | 116123 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 112067 | 116124 | .unused, |
| 112068 | 116125 | .unused, |
| ... | ... | @@ -112077,11 +116134,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112077 | 116134 | .dst_temps = .{ .mem, .unused }, |
| 112078 | 116135 | .clobbers = .{ .eflags = true }, |
| 112079 | 116136 | .each = .{ .once = &.{ |
| 112080 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112081 | | .{ .@"0:", ._ps, .cvtdq2, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112082 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112083 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 112084 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116137 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .dst0, .add_size), ._, ._ }, |
| 116138 | .{ .@"0:", ._ps, .cvtdq2, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 116139 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 116140 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 116141 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112085 | 116142 | } }, |
| 112086 | 116143 | }, .{ |
| 112087 | 116144 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -112091,7 +116148,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112091 | 116148 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112092 | 116149 | }, |
| 112093 | 116150 | .extra_temps = .{ |
| 112094 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116151 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112095 | 116152 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 112096 | 116153 | .unused, |
| 112097 | 116154 | .unused, |
| ... | ... | @@ -112106,11 +116163,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112106 | 116163 | .dst_temps = .{ .mem, .unused }, |
| 112107 | 116164 | .clobbers = .{ .eflags = true }, |
| 112108 | 116165 | .each = .{ .once = &.{ |
| 112109 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112110 | | .{ .@"0:", ._ss, .cvtsi2, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 112111 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112112 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112113 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116166 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116167 | .{ .@"0:", ._ss, .cvtsi2, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 116168 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 116169 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116170 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112114 | 116171 | } }, |
| 112115 | 116172 | }, .{ |
| 112116 | 116173 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -112121,10 +116178,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112121 | 116178 | }, |
| 112122 | 116179 | .call_frame = .{ .alignment = .@"16" }, |
| 112123 | 116180 | .extra_temps = .{ |
| 112124 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112125 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 116181 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116182 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112126 | 116183 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsisf" } }, |
| 112127 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116184 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112128 | 116185 | .unused, |
| 112129 | 116186 | .unused, |
| 112130 | 116187 | .unused, |
| ... | ... | @@ -112136,12 +116193,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112136 | 116193 | .dst_temps = .{ .mem, .unused }, |
| 112137 | 116194 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112138 | 116195 | .each = .{ .once = &.{ |
| 112139 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112140 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116196 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116197 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 112141 | 116198 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112142 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112143 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112144 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116199 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116200 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116201 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112145 | 116202 | } }, |
| 112146 | 116203 | }, .{ |
| 112147 | 116204 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -112152,10 +116209,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112152 | 116209 | }, |
| 112153 | 116210 | .call_frame = .{ .alignment = .@"16" }, |
| 112154 | 116211 | .extra_temps = .{ |
| 112155 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112156 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 116212 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116213 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112157 | 116214 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsisf" } }, |
| 112158 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116215 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112159 | 116216 | .unused, |
| 112160 | 116217 | .unused, |
| 112161 | 116218 | .unused, |
| ... | ... | @@ -112167,12 +116224,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112167 | 116224 | .dst_temps = .{ .mem, .unused }, |
| 112168 | 116225 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112169 | 116226 | .each = .{ .once = &.{ |
| 112170 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112171 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116227 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116228 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 112172 | 116229 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112173 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112174 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112175 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116230 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116231 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116232 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112176 | 116233 | } }, |
| 112177 | 116234 | }, .{ |
| 112178 | 116235 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -112183,10 +116240,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112183 | 116240 | }, |
| 112184 | 116241 | .call_frame = .{ .alignment = .@"16" }, |
| 112185 | 116242 | .extra_temps = .{ |
| 112186 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112187 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116243 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116244 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112188 | 116245 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsisf" } }, |
| 112189 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116246 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112190 | 116247 | .unused, |
| 112191 | 116248 | .unused, |
| 112192 | 116249 | .unused, |
| ... | ... | @@ -112198,12 +116255,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112198 | 116255 | .dst_temps = .{ .mem, .unused }, |
| 112199 | 116256 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112200 | 116257 | .each = .{ .once = &.{ |
| 112201 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112202 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116258 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116259 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 112203 | 116260 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112204 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112205 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112206 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116261 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116262 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116263 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112207 | 116264 | } }, |
| 112208 | 116265 | }, .{ |
| 112209 | 116266 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -112214,10 +116271,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112214 | 116271 | }, |
| 112215 | 116272 | .call_frame = .{ .alignment = .@"16" }, |
| 112216 | 116273 | .extra_temps = .{ |
| 112217 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112218 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 116274 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116275 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112219 | 116276 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsisf" } }, |
| 112220 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116277 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112221 | 116278 | .unused, |
| 112222 | 116279 | .unused, |
| 112223 | 116280 | .unused, |
| ... | ... | @@ -112229,12 +116286,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112229 | 116286 | .dst_temps = .{ .mem, .unused }, |
| 112230 | 116287 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112231 | 116288 | .each = .{ .once = &.{ |
| 112232 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112233 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116289 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116290 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 112234 | 116291 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112235 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112236 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112237 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116292 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116293 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116294 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112238 | 116295 | } }, |
| 112239 | 116296 | }, .{ |
| 112240 | 116297 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -112244,7 +116301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112244 | 116301 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112245 | 116302 | }, |
| 112246 | 116303 | .extra_temps = .{ |
| 112247 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116304 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112248 | 116305 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 112249 | 116306 | .unused, |
| 112250 | 116307 | .unused, |
| ... | ... | @@ -112259,12 +116316,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112259 | 116316 | .dst_temps = .{ .mem, .unused }, |
| 112260 | 116317 | .clobbers = .{ .eflags = true }, |
| 112261 | 116318 | .each = .{ .once = &.{ |
| 112262 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116319 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 112263 | 116320 | .{ .@"0:", .v_ps, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 112264 | | .{ ._, .v_ss, .cvtsi2, .tmp1x, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._ }, |
| 112265 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112266 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112267 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116321 | .{ ._, .v_ss, .cvtsi2, .tmp1x, .tmp1x, .memsi(.src0q, .@"2", .tmp0), ._ }, |
| 116322 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 116323 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116324 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112268 | 116325 | } }, |
| 112269 | 116326 | }, .{ |
| 112270 | 116327 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -112274,7 +116331,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112274 | 116331 | .{ .src = .{ .to_mem, .none, .none } }, |
| 112275 | 116332 | }, |
| 112276 | 116333 | .extra_temps = .{ |
| 112277 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116334 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 112278 | 116335 | .{ .type = .f32, .kind = .{ .rc = .sse } }, |
| 112279 | 116336 | .unused, |
| 112280 | 116337 | .unused, |
| ... | ... | @@ -112289,12 +116346,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112289 | 116346 | .dst_temps = .{ .mem, .unused }, |
| 112290 | 116347 | .clobbers = .{ .eflags = true }, |
| 112291 | 116348 | .each = .{ .once = &.{ |
| 112292 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116349 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 112293 | 116350 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 112294 | | .{ ._, ._ss, .cvtsi2, .tmp1x, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112295 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 112296 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112297 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116351 | .{ ._, ._ss, .cvtsi2, .tmp1x, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 116352 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 116353 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116354 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112298 | 116355 | } }, |
| 112299 | 116356 | }, .{ |
| 112300 | 116357 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -112305,10 +116362,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112305 | 116362 | }, |
| 112306 | 116363 | .call_frame = .{ .alignment = .@"16" }, |
| 112307 | 116364 | .extra_temps = .{ |
| 112308 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112309 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 116365 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116366 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112310 | 116367 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdisf" } }, |
| 112311 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116368 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112312 | 116369 | .unused, |
| 112313 | 116370 | .unused, |
| 112314 | 116371 | .unused, |
| ... | ... | @@ -112320,12 +116377,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112320 | 116377 | .dst_temps = .{ .mem, .unused }, |
| 112321 | 116378 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112322 | 116379 | .each = .{ .once = &.{ |
| 112323 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112324 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 116380 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116381 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 112325 | 116382 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112326 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112327 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112328 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116383 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116384 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116385 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112329 | 116386 | } }, |
| 112330 | 116387 | }, .{ |
| 112331 | 116388 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -112336,10 +116393,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112336 | 116393 | }, |
| 112337 | 116394 | .call_frame = .{ .alignment = .@"16" }, |
| 112338 | 116395 | .extra_temps = .{ |
| 112339 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112340 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 116396 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116397 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112341 | 116398 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdisf" } }, |
| 112342 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116399 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112343 | 116400 | .unused, |
| 112344 | 116401 | .unused, |
| 112345 | 116402 | .unused, |
| ... | ... | @@ -112351,12 +116408,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112351 | 116408 | .dst_temps = .{ .mem, .unused }, |
| 112352 | 116409 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112353 | 116410 | .each = .{ .once = &.{ |
| 112354 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112355 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 116411 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116412 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 112356 | 116413 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112357 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112358 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112359 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116414 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116415 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116416 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112360 | 116417 | } }, |
| 112361 | 116418 | }, .{ |
| 112362 | 116419 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -112367,10 +116424,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112367 | 116424 | }, |
| 112368 | 116425 | .call_frame = .{ .alignment = .@"16" }, |
| 112369 | 116426 | .extra_temps = .{ |
| 112370 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112371 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116427 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116428 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112372 | 116429 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundisf" } }, |
| 112373 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116430 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112374 | 116431 | .unused, |
| 112375 | 116432 | .unused, |
| 112376 | 116433 | .unused, |
| ... | ... | @@ -112382,12 +116439,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112382 | 116439 | .dst_temps = .{ .mem, .unused }, |
| 112383 | 116440 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112384 | 116441 | .each = .{ .once = &.{ |
| 112385 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112386 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 116442 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116443 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 112387 | 116444 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112388 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112389 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112390 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116445 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116446 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116447 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112391 | 116448 | } }, |
| 112392 | 116449 | }, .{ |
| 112393 | 116450 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -112398,10 +116455,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112398 | 116455 | }, |
| 112399 | 116456 | .call_frame = .{ .alignment = .@"16" }, |
| 112400 | 116457 | .extra_temps = .{ |
| 112401 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112402 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116458 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116459 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112403 | 116460 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundisf" } }, |
| 112404 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116461 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112405 | 116462 | .unused, |
| 112406 | 116463 | .unused, |
| 112407 | 116464 | .unused, |
| ... | ... | @@ -112413,15 +116470,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112413 | 116470 | .dst_temps = .{ .mem, .unused }, |
| 112414 | 116471 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112415 | 116472 | .each = .{ .once = &.{ |
| 112416 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112417 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 116473 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116474 | .{ .@"0:", ._, .mov, .tmp1q, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 112418 | 116475 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 112419 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 112420 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112421 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116476 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116477 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116478 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112422 | 116479 | } }, |
| 112423 | 116480 | }, .{ |
| 112424 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116481 | .required_cc_abi = .sysv64, |
| 116482 | .required_features = .{ .avx, null, null, null }, |
| 112425 | 116483 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112426 | 116484 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112427 | 116485 | .patterns = &.{ |
| ... | ... | @@ -112429,11 +116487,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112429 | 116487 | }, |
| 112430 | 116488 | .call_frame = .{ .alignment = .@"16" }, |
| 112431 | 116489 | .extra_temps = .{ |
| 112432 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112433 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112434 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 116490 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116491 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112435 | 116492 | .{ .type = .usize, .kind = .{ .extern_func = "__floattisf" } }, |
| 112436 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116493 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116494 | .unused, |
| 112437 | 116495 | .unused, |
| 112438 | 116496 | .unused, |
| 112439 | 116497 | .unused, |
| ... | ... | @@ -112444,16 +116502,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112444 | 116502 | .dst_temps = .{ .mem, .unused }, |
| 112445 | 116503 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112446 | 116504 | .each = .{ .once = &.{ |
| 112447 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112448 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112449 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 112450 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 112451 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 112452 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112453 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116505 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116506 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 116507 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"4", .tmp0, 8), ._, ._ }, |
| 116508 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116509 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116510 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116511 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112454 | 116512 | } }, |
| 112455 | 116513 | }, .{ |
| 112456 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116514 | .required_cc_abi = .win64, |
| 116515 | .required_features = .{ .avx, null, null, null }, |
| 112457 | 116516 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112458 | 116517 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112459 | 116518 | .patterns = &.{ |
| ... | ... | @@ -112461,11 +116520,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112461 | 116520 | }, |
| 112462 | 116521 | .call_frame = .{ .alignment = .@"16" }, |
| 112463 | 116522 | .extra_temps = .{ |
| 112464 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112465 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112466 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 116523 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116524 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112467 | 116525 | .{ .type = .usize, .kind = .{ .extern_func = "__floattisf" } }, |
| 112468 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116526 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116527 | .unused, |
| 112469 | 116528 | .unused, |
| 112470 | 116529 | .unused, |
| 112471 | 116530 | .unused, |
| ... | ... | @@ -112476,16 +116535,81 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112476 | 116535 | .dst_temps = .{ .mem, .unused }, |
| 112477 | 116536 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112478 | 116537 | .each = .{ .once = &.{ |
| 112479 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112480 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112481 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 112482 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 112483 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 112484 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112485 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116538 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116539 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"4", .tmp0), ._, ._ }, |
| 116540 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116541 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116542 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116543 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112486 | 116544 | } }, |
| 112487 | 116545 | }, .{ |
| 112488 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 116546 | .required_cc_abi = .sysv64, |
| 116547 | .required_features = .{ .sse, null, null, null }, |
| 116548 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116549 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 116550 | .patterns = &.{ |
| 116551 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116552 | }, |
| 116553 | .call_frame = .{ .alignment = .@"16" }, |
| 116554 | .extra_temps = .{ |
| 116555 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116556 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116557 | .{ .type = .usize, .kind = .{ .extern_func = "__floattisf" } }, |
| 116558 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116559 | .unused, |
| 116560 | .unused, |
| 116561 | .unused, |
| 116562 | .unused, |
| 116563 | .unused, |
| 116564 | .unused, |
| 116565 | .unused, |
| 116566 | }, |
| 116567 | .dst_temps = .{ .mem, .unused }, |
| 116568 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116569 | .each = .{ .once = &.{ |
| 116570 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116571 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 116572 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"4", .tmp0, 8), ._, ._ }, |
| 116573 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116574 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116575 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116576 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116577 | } }, |
| 116578 | }, .{ |
| 116579 | .required_cc_abi = .win64, |
| 116580 | .required_features = .{ .sse, null, null, null }, |
| 116581 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116582 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 116583 | .patterns = &.{ |
| 116584 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116585 | }, |
| 116586 | .call_frame = .{ .alignment = .@"16" }, |
| 116587 | .extra_temps = .{ |
| 116588 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116589 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116590 | .{ .type = .usize, .kind = .{ .extern_func = "__floattisf" } }, |
| 116591 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116592 | .unused, |
| 116593 | .unused, |
| 116594 | .unused, |
| 116595 | .unused, |
| 116596 | .unused, |
| 116597 | .unused, |
| 116598 | .unused, |
| 116599 | }, |
| 116600 | .dst_temps = .{ .mem, .unused }, |
| 116601 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116602 | .each = .{ .once = &.{ |
| 116603 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116604 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"4", .tmp0), ._, ._ }, |
| 116605 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116606 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116607 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116608 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116609 | } }, |
| 116610 | }, .{ |
| 116611 | .required_cc_abi = .sysv64, |
| 116612 | .required_features = .{ .avx, null, null, null }, |
| 112489 | 116613 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112490 | 116614 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112491 | 116615 | .patterns = &.{ |
| ... | ... | @@ -112493,11 +116617,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112493 | 116617 | }, |
| 112494 | 116618 | .call_frame = .{ .alignment = .@"16" }, |
| 112495 | 116619 | .extra_temps = .{ |
| 112496 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112497 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112498 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 116620 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116621 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112499 | 116622 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntisf" } }, |
| 112500 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116623 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116624 | .unused, |
| 112501 | 116625 | .unused, |
| 112502 | 116626 | .unused, |
| 112503 | 116627 | .unused, |
| ... | ... | @@ -112508,16 +116632,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112508 | 116632 | .dst_temps = .{ .mem, .unused }, |
| 112509 | 116633 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112510 | 116634 | .each = .{ .once = &.{ |
| 112511 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112512 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112513 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 112514 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 112515 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 112516 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112517 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116635 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116636 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 116637 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"4", .tmp0, 8), ._, ._ }, |
| 116638 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116639 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116640 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116641 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112518 | 116642 | } }, |
| 112519 | 116643 | }, .{ |
| 112520 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116644 | .required_cc_abi = .win64, |
| 116645 | .required_features = .{ .avx, null, null, null }, |
| 112521 | 116646 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 112522 | 116647 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 112523 | 116648 | .patterns = &.{ |
| ... | ... | @@ -112525,11 +116650,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112525 | 116650 | }, |
| 112526 | 116651 | .call_frame = .{ .alignment = .@"16" }, |
| 112527 | 116652 | .extra_temps = .{ |
| 112528 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112529 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 112530 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 116653 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116654 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112531 | 116655 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntisf" } }, |
| 112532 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116656 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116657 | .unused, |
| 112533 | 116658 | .unused, |
| 112534 | 116659 | .unused, |
| 112535 | 116660 | .unused, |
| ... | ... | @@ -112540,13 +116665,77 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112540 | 116665 | .dst_temps = .{ .mem, .unused }, |
| 112541 | 116666 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112542 | 116667 | .each = .{ .once = &.{ |
| 112543 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 112544 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"4", .tmp0, .add_unaligned_size), ._, ._ }, |
| 112545 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"4", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 112546 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 112547 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 112548 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 112549 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116668 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116669 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"4", .tmp0), ._, ._ }, |
| 116670 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116671 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116672 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116673 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116674 | } }, |
| 116675 | }, .{ |
| 116676 | .required_cc_abi = .sysv64, |
| 116677 | .required_features = .{ .sse, null, null, null }, |
| 116678 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116679 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 116680 | .patterns = &.{ |
| 116681 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116682 | }, |
| 116683 | .call_frame = .{ .alignment = .@"16" }, |
| 116684 | .extra_temps = .{ |
| 116685 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116686 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116687 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntisf" } }, |
| 116688 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116689 | .unused, |
| 116690 | .unused, |
| 116691 | .unused, |
| 116692 | .unused, |
| 116693 | .unused, |
| 116694 | .unused, |
| 116695 | .unused, |
| 116696 | }, |
| 116697 | .dst_temps = .{ .mem, .unused }, |
| 116698 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116699 | .each = .{ .once = &.{ |
| 116700 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116701 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"4", .tmp0), ._, ._ }, |
| 116702 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"4", .tmp0, 8), ._, ._ }, |
| 116703 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116704 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116705 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116706 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116707 | } }, |
| 116708 | }, .{ |
| 116709 | .required_cc_abi = .win64, |
| 116710 | .required_features = .{ .sse, null, null, null }, |
| 116711 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116712 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } }, .any }, |
| 116713 | .patterns = &.{ |
| 116714 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116715 | }, |
| 116716 | .call_frame = .{ .alignment = .@"16" }, |
| 116717 | .extra_temps = .{ |
| 116718 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116719 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116720 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntisf" } }, |
| 116721 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116722 | .unused, |
| 116723 | .unused, |
| 116724 | .unused, |
| 116725 | .unused, |
| 116726 | .unused, |
| 116727 | .unused, |
| 116728 | .unused, |
| 116729 | }, |
| 116730 | .dst_temps = .{ .mem, .unused }, |
| 116731 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116732 | .each = .{ .once = &.{ |
| 116733 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 116734 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"4", .tmp0), ._, ._ }, |
| 116735 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116736 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp3x, ._, ._ }, |
| 116737 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 116738 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112550 | 116739 | } }, |
| 112551 | 116740 | }, .{ |
| 112552 | 116741 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -112558,11 +116747,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112558 | 116747 | .call_frame = .{ .alignment = .@"16" }, |
| 112559 | 116748 | .extra_temps = .{ |
| 112560 | 116749 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112561 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112562 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112563 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116750 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116751 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116752 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 112564 | 116753 | .{ .type = .usize, .kind = .{ .extern_func = "__floateisf" } }, |
| 112565 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116754 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112566 | 116755 | .unused, |
| 112567 | 116756 | .unused, |
| 112568 | 116757 | .unused, |
| ... | ... | @@ -112572,15 +116761,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112572 | 116761 | .dst_temps = .{ .mem, .unused }, |
| 112573 | 116762 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112574 | 116763 | .each = .{ .once = &.{ |
| 112575 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112576 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116764 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 116765 | .{ ._, ._, .mov, .tmp1d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 112577 | 116766 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 112578 | 116767 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112579 | 116768 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 112580 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 112581 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 112582 | | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 112583 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116769 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp1), .tmp5x, ._, ._ }, |
| 116770 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 116771 | .{ ._, ._, .sub, .tmp1d, .si(4), ._, ._ }, |
| 116772 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112584 | 116773 | } }, |
| 112585 | 116774 | }, .{ |
| 112586 | 116775 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -112592,11 +116781,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112592 | 116781 | .call_frame = .{ .alignment = .@"16" }, |
| 112593 | 116782 | .extra_temps = .{ |
| 112594 | 116783 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112595 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112596 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112597 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116784 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116785 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116786 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 112598 | 116787 | .{ .type = .usize, .kind = .{ .extern_func = "__floateisf" } }, |
| 112599 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116788 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112600 | 116789 | .unused, |
| 112601 | 116790 | .unused, |
| 112602 | 116791 | .unused, |
| ... | ... | @@ -112606,15 +116795,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112606 | 116795 | .dst_temps = .{ .mem, .unused }, |
| 112607 | 116796 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112608 | 116797 | .each = .{ .once = &.{ |
| 112609 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112610 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116798 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 116799 | .{ ._, ._, .mov, .tmp1d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 112611 | 116800 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 112612 | 116801 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112613 | 116802 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 112614 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 112615 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 112616 | | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 112617 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116803 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp1), .tmp5x, ._, ._ }, |
| 116804 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 116805 | .{ ._, ._, .sub, .tmp1d, .si(4), ._, ._ }, |
| 116806 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112618 | 116807 | } }, |
| 112619 | 116808 | }, .{ |
| 112620 | 116809 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -112626,11 +116815,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112626 | 116815 | .call_frame = .{ .alignment = .@"16" }, |
| 112627 | 116816 | .extra_temps = .{ |
| 112628 | 116817 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112629 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112630 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112631 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116818 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116819 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116820 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 112632 | 116821 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneisf" } }, |
| 112633 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116822 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112634 | 116823 | .unused, |
| 112635 | 116824 | .unused, |
| 112636 | 116825 | .unused, |
| ... | ... | @@ -112640,15 +116829,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112640 | 116829 | .dst_temps = .{ .mem, .unused }, |
| 112641 | 116830 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112642 | 116831 | .each = .{ .once = &.{ |
| 112643 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112644 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116832 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 116833 | .{ ._, ._, .mov, .tmp1d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 112645 | 116834 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 112646 | 116835 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112647 | 116836 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 112648 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 112649 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 112650 | | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 112651 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116837 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp1), .tmp5x, ._, ._ }, |
| 116838 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 116839 | .{ ._, ._, .sub, .tmp1d, .si(4), ._, ._ }, |
| 116840 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112652 | 116841 | } }, |
| 112653 | 116842 | }, .{ |
| 112654 | 116843 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -112660,11 +116849,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112660 | 116849 | .call_frame = .{ .alignment = .@"16" }, |
| 112661 | 116850 | .extra_temps = .{ |
| 112662 | 116851 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 112663 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 112664 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 112665 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 116852 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116853 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116854 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 112666 | 116855 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneisf" } }, |
| 112667 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 116856 | .{ .type = .f32, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 112668 | 116857 | .unused, |
| 112669 | 116858 | .unused, |
| 112670 | 116859 | .unused, |
| ... | ... | @@ -112674,15 +116863,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 112674 | 116863 | .dst_temps = .{ .mem, .unused }, |
| 112675 | 116864 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 112676 | 116865 | .each = .{ .once = &.{ |
| 112677 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 112678 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 116866 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 116867 | .{ ._, ._, .mov, .tmp1d, .sia(-4, .dst0, .add_unaligned_size), ._, ._ }, |
| 112679 | 116868 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 112680 | 116869 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 112681 | 116870 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 112682 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 112683 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 112684 | | .{ ._, ._, .add, .tmp1p, .si(4), ._, ._ }, |
| 112685 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 116871 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp1), .tmp5x, ._, ._ }, |
| 116872 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 116873 | .{ ._, ._, .sub, .tmp1d, .si(4), ._, ._ }, |
| 116874 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 112686 | 116875 | } }, |
| 112687 | 116876 | }, .{ |
| 112688 | 116877 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -113295,11 +117484,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113295 | 117484 | .{ .@"0:", .f_p, .st, .dst0q, ._, ._, ._ }, |
| 113296 | 117485 | } }, |
| 113297 | 117486 | }, .{ |
| 113298 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 117487 | .required_cc_abi = .sysv64, |
| 117488 | .required_features = .{ .sse, null, null, null }, |
| 113299 | 117489 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 113300 | 117490 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113301 | 117491 | .patterns = &.{ |
| 113302 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 117492 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 113303 | 117493 | }, |
| 113304 | 117494 | .call_frame = .{ .alignment = .@"16" }, |
| 113305 | 117495 | .extra_temps = .{ |
| ... | ... | @@ -113315,17 +117505,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113315 | 117505 | .unused, |
| 113316 | 117506 | .unused, |
| 113317 | 117507 | }, |
| 113318 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 117508 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 113319 | 117509 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113320 | 117510 | .each = .{ .once = &.{ |
| 113321 | 117511 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113322 | 117512 | } }, |
| 113323 | 117513 | }, .{ |
| 113324 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 117514 | .required_cc_abi = .win64, |
| 117515 | .required_features = .{ .sse, null, null, null }, |
| 117516 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 117517 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 117518 | .patterns = &.{ |
| 117519 | .{ .src = .{ .to_mem, .none, .none } }, |
| 117520 | }, |
| 117521 | .call_frame = .{ .alignment = .@"16" }, |
| 117522 | .extra_temps = .{ |
| 117523 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117524 | .{ .type = .usize, .kind = .{ .extern_func = "__floattidf" } }, |
| 117525 | .unused, |
| 117526 | .unused, |
| 117527 | .unused, |
| 117528 | .unused, |
| 117529 | .unused, |
| 117530 | .unused, |
| 117531 | .unused, |
| 117532 | .unused, |
| 117533 | .unused, |
| 117534 | }, |
| 117535 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 117536 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117537 | .each = .{ .once = &.{ |
| 117538 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 117539 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 117540 | } }, |
| 117541 | }, .{ |
| 117542 | .required_cc_abi = .sysv64, |
| 117543 | .required_features = .{ .sse, null, null, null }, |
| 113325 | 117544 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 113326 | 117545 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 113327 | 117546 | .patterns = &.{ |
| 113328 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 117547 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 113329 | 117548 | }, |
| 113330 | 117549 | .call_frame = .{ .alignment = .@"16" }, |
| 113331 | 117550 | .extra_temps = .{ |
| ... | ... | @@ -113341,11 +117560,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113341 | 117560 | .unused, |
| 113342 | 117561 | .unused, |
| 113343 | 117562 | }, |
| 113344 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 117563 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 113345 | 117564 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113346 | 117565 | .each = .{ .once = &.{ |
| 113347 | 117566 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 113348 | 117567 | } }, |
| 117568 | }, .{ |
| 117569 | .required_cc_abi = .win64, |
| 117570 | .required_features = .{ .sse, null, null, null }, |
| 117571 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 117572 | .dst_constraints = .{ .{ .float = .qword }, .any }, |
| 117573 | .patterns = &.{ |
| 117574 | .{ .src = .{ .to_mem, .none, .none } }, |
| 117575 | }, |
| 117576 | .call_frame = .{ .alignment = .@"16" }, |
| 117577 | .extra_temps = .{ |
| 117578 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117579 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntidf" } }, |
| 117580 | .unused, |
| 117581 | .unused, |
| 117582 | .unused, |
| 117583 | .unused, |
| 117584 | .unused, |
| 117585 | .unused, |
| 117586 | .unused, |
| 117587 | .unused, |
| 117588 | .unused, |
| 117589 | }, |
| 117590 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 117591 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117592 | .each = .{ .once = &.{ |
| 117593 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 117594 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 117595 | } }, |
| 113349 | 117596 | }, .{ |
| 113350 | 117597 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 113351 | 117598 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| ... | ... | @@ -113355,8 +117602,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113355 | 117602 | }, |
| 113356 | 117603 | .call_frame = .{ .alignment = .@"16" }, |
| 113357 | 117604 | .extra_temps = .{ |
| 113358 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 113359 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 117605 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117606 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 113360 | 117607 | .{ .type = .usize, .kind = .{ .extern_func = "__floateidf" } }, |
| 113361 | 117608 | .unused, |
| 113362 | 117609 | .unused, |
| ... | ... | @@ -113367,7 +117614,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113367 | 117614 | .unused, |
| 113368 | 117615 | .unused, |
| 113369 | 117616 | }, |
| 113370 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 117617 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 113371 | 117618 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113372 | 117619 | .each = .{ .once = &.{ |
| 113373 | 117620 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| ... | ... | @@ -113383,8 +117630,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113383 | 117630 | }, |
| 113384 | 117631 | .call_frame = .{ .alignment = .@"16" }, |
| 113385 | 117632 | .extra_temps = .{ |
| 113386 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 113387 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 117633 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117634 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 113388 | 117635 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneidf" } }, |
| 113389 | 117636 | .unused, |
| 113390 | 117637 | .unused, |
| ... | ... | @@ -113395,7 +117642,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113395 | 117642 | .unused, |
| 113396 | 117643 | .unused, |
| 113397 | 117644 | }, |
| 113398 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 117645 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 113399 | 117646 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113400 | 117647 | .each = .{ .once = &.{ |
| 113401 | 117648 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| ... | ... | @@ -113488,7 +117735,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113488 | 117735 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113489 | 117736 | }, |
| 113490 | 117737 | .extra_temps = .{ |
| 113491 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117738 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113492 | 117739 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 113493 | 117740 | .unused, |
| 113494 | 117741 | .unused, |
| ... | ... | @@ -113503,12 +117750,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113503 | 117750 | .dst_temps = .{ .mem, .unused }, |
| 113504 | 117751 | .clobbers = .{ .eflags = true }, |
| 113505 | 117752 | .each = .{ .once = &.{ |
| 113506 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113507 | | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 117753 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 117754 | .{ .@"0:", .vp_d, .movsxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 113508 | 117755 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 113509 | | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 113510 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113511 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117756 | .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"8", .tmp0), .tmp1y, ._, ._ }, |
| 117757 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 117758 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113512 | 117759 | } }, |
| 113513 | 117760 | }, .{ |
| 113514 | 117761 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -113518,7 +117765,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113518 | 117765 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113519 | 117766 | }, |
| 113520 | 117767 | .extra_temps = .{ |
| 113521 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117768 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113522 | 117769 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 113523 | 117770 | .unused, |
| 113524 | 117771 | .unused, |
| ... | ... | @@ -113533,14 +117780,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113533 | 117780 | .dst_temps = .{ .mem, .unused }, |
| 113534 | 117781 | .clobbers = .{ .eflags = true }, |
| 113535 | 117782 | .each = .{ .once = &.{ |
| 113536 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117783 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_size), ._, ._ }, |
| 113537 | 117784 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 113538 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 117785 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 113539 | 117786 | .{ ._, .vp_d, .movsxb, .tmp1x, .tmp1d, ._, ._ }, |
| 113540 | 117787 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 113541 | | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113542 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113543 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117788 | .{ ._, .v_pd, .mova, .memsi(.dst0x, .@"8", .tmp0), .tmp1x, ._, ._ }, |
| 117789 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 117790 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113544 | 117791 | } }, |
| 113545 | 117792 | }, .{ |
| 113546 | 117793 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -113550,7 +117797,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113550 | 117797 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113551 | 117798 | }, |
| 113552 | 117799 | .extra_temps = .{ |
| 113553 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117800 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113554 | 117801 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 113555 | 117802 | .unused, |
| 113556 | 117803 | .unused, |
| ... | ... | @@ -113565,14 +117812,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113565 | 117812 | .dst_temps = .{ .mem, .unused }, |
| 113566 | 117813 | .clobbers = .{ .eflags = true }, |
| 113567 | 117814 | .each = .{ .once = &.{ |
| 113568 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117815 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_size), ._, ._ }, |
| 113569 | 117816 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 113570 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 117817 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 113571 | 117818 | .{ ._, .p_d, .movsxb, .tmp1x, .tmp1d, ._, ._ }, |
| 113572 | 117819 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 113573 | | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113574 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113575 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117820 | .{ ._, ._pd, .mova, .memsi(.dst0x, .@"8", .tmp0), .tmp1x, ._, ._ }, |
| 117821 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 117822 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113576 | 117823 | } }, |
| 113577 | 117824 | }, .{ |
| 113578 | 117825 | .required_features = .{ .avx2, null, null, null }, |
| ... | ... | @@ -113582,7 +117829,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113582 | 117829 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113583 | 117830 | }, |
| 113584 | 117831 | .extra_temps = .{ |
| 113585 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117832 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113586 | 117833 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 113587 | 117834 | .unused, |
| 113588 | 117835 | .unused, |
| ... | ... | @@ -113597,12 +117844,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113597 | 117844 | .dst_temps = .{ .mem, .unused }, |
| 113598 | 117845 | .clobbers = .{ .eflags = true }, |
| 113599 | 117846 | .each = .{ .once = &.{ |
| 113600 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113601 | | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 117847 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 117848 | .{ .@"0:", .vp_d, .movzxb, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 113602 | 117849 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 113603 | | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"8", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 113604 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 113605 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117850 | .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"8", .tmp0), .tmp1y, ._, ._ }, |
| 117851 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 117852 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113606 | 117853 | } }, |
| 113607 | 117854 | }, .{ |
| 113608 | 117855 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -113612,7 +117859,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113612 | 117859 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113613 | 117860 | }, |
| 113614 | 117861 | .extra_temps = .{ |
| 113615 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117862 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113616 | 117863 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 113617 | 117864 | .unused, |
| 113618 | 117865 | .unused, |
| ... | ... | @@ -113627,14 +117874,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113627 | 117874 | .dst_temps = .{ .mem, .unused }, |
| 113628 | 117875 | .clobbers = .{ .eflags = true }, |
| 113629 | 117876 | .each = .{ .once = &.{ |
| 113630 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117877 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_size), ._, ._ }, |
| 113631 | 117878 | .{ .@"0:", .vp_, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 113632 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 117879 | .{ ._, .vp_w, .insr, .tmp1x, .tmp1x, .memi(.src0w, .tmp0), .ui(0) }, |
| 113633 | 117880 | .{ ._, .vp_d, .movzxb, .tmp1x, .tmp1d, ._, ._ }, |
| 113634 | 117881 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 113635 | | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113636 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113637 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117882 | .{ ._, .v_pd, .mova, .memsi(.dst0x, .@"8", .tmp0), .tmp1x, ._, ._ }, |
| 117883 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 117884 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113638 | 117885 | } }, |
| 113639 | 117886 | }, .{ |
| 113640 | 117887 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -113644,7 +117891,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113644 | 117891 | .{ .src = .{ .to_mem, .none, .none } }, |
| 113645 | 117892 | }, |
| 113646 | 117893 | .extra_temps = .{ |
| 113647 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117894 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 113648 | 117895 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 113649 | 117896 | .unused, |
| 113650 | 117897 | .unused, |
| ... | ... | @@ -113659,14 +117906,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113659 | 117906 | .dst_temps = .{ .mem, .unused }, |
| 113660 | 117907 | .clobbers = .{ .eflags = true }, |
| 113661 | 117908 | .each = .{ .once = &.{ |
| 113662 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117909 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_size), ._, ._ }, |
| 113663 | 117910 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 113664 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 117911 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 113665 | 117912 | .{ ._, .p_d, .movzxb, .tmp1x, .tmp1d, ._, ._ }, |
| 113666 | 117913 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 113667 | | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 113668 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 113669 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117914 | .{ ._, ._pd, .mova, .memsi(.dst0x, .@"8", .tmp0), .tmp1x, ._, ._ }, |
| 117915 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 117916 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113670 | 117917 | } }, |
| 113671 | 117918 | }, .{ |
| 113672 | 117919 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | ... | @@ -113677,10 +117924,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113677 | 117924 | }, |
| 113678 | 117925 | .call_frame = .{ .alignment = .@"16" }, |
| 113679 | 117926 | .extra_temps = .{ |
| 113680 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113681 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 117927 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117928 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113682 | 117929 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 113683 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 117930 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113684 | 117931 | .unused, |
| 113685 | 117932 | .unused, |
| 113686 | 117933 | .unused, |
| ... | ... | @@ -113692,12 +117939,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113692 | 117939 | .dst_temps = .{ .mem, .unused }, |
| 113693 | 117940 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113694 | 117941 | .each = .{ .once = &.{ |
| 113695 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113696 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 117942 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 117943 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 113697 | 117944 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113698 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113699 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113700 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 117945 | .{ ._, .v_sd, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 117946 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 117947 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113701 | 117948 | } }, |
| 113702 | 117949 | }, .{ |
| 113703 | 117950 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -113708,10 +117955,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113708 | 117955 | }, |
| 113709 | 117956 | .call_frame = .{ .alignment = .@"16" }, |
| 113710 | 117957 | .extra_temps = .{ |
| 113711 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113712 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 117958 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117959 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113713 | 117960 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 113714 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 117961 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113715 | 117962 | .unused, |
| 113716 | 117963 | .unused, |
| 113717 | 117964 | .unused, |
| ... | ... | @@ -113723,12 +117970,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113723 | 117970 | .dst_temps = .{ .mem, .unused }, |
| 113724 | 117971 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113725 | 117972 | .each = .{ .once = &.{ |
| 113726 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113727 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 117973 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 117974 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 113728 | 117975 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113729 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113730 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 113731 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 117976 | .{ ._, .v_sd, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 117977 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 117978 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 113732 | 117979 | } }, |
| 113733 | 117980 | }, .{ |
| 113734 | 117981 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| ... | ... | @@ -113739,10 +117986,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113739 | 117986 | }, |
| 113740 | 117987 | .call_frame = .{ .alignment = .@"16" }, |
| 113741 | 117988 | .extra_temps = .{ |
| 113742 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113743 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 117989 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117990 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113744 | 117991 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 113745 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 117992 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113746 | 117993 | .unused, |
| 113747 | 117994 | .unused, |
| 113748 | 117995 | .unused, |
| ... | ... | @@ -113754,12 +118001,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113754 | 118001 | .dst_temps = .{ .mem, .unused }, |
| 113755 | 118002 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113756 | 118003 | .each = .{ .once = &.{ |
| 113757 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113758 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118004 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 118005 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 113759 | 118006 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113760 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113761 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113762 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118007 | .{ ._, ._sd, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 118008 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 118009 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113763 | 118010 | } }, |
| 113764 | 118011 | }, .{ |
| 113765 | 118012 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -113770,10 +118017,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113770 | 118017 | }, |
| 113771 | 118018 | .call_frame = .{ .alignment = .@"16" }, |
| 113772 | 118019 | .extra_temps = .{ |
| 113773 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113774 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 118020 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118021 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113775 | 118022 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 113776 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118023 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113777 | 118024 | .unused, |
| 113778 | 118025 | .unused, |
| 113779 | 118026 | .unused, |
| ... | ... | @@ -113785,12 +118032,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113785 | 118032 | .dst_temps = .{ .mem, .unused }, |
| 113786 | 118033 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113787 | 118034 | .each = .{ .once = &.{ |
| 113788 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113789 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118035 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 118036 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 113790 | 118037 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113791 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113792 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 113793 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 118038 | .{ ._, ._sd, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 118039 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 118040 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 113794 | 118041 | } }, |
| 113795 | 118042 | }, .{ |
| 113796 | 118043 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -113801,10 +118048,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113801 | 118048 | }, |
| 113802 | 118049 | .call_frame = .{ .alignment = .@"16" }, |
| 113803 | 118050 | .extra_temps = .{ |
| 113804 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113805 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 118051 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118052 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113806 | 118053 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 113807 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118054 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113808 | 118055 | .unused, |
| 113809 | 118056 | .unused, |
| 113810 | 118057 | .unused, |
| ... | ... | @@ -113816,12 +118063,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113816 | 118063 | .dst_temps = .{ .mem, .unused }, |
| 113817 | 118064 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113818 | 118065 | .each = .{ .once = &.{ |
| 113819 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113820 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118066 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 118067 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 113821 | 118068 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113822 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113823 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113824 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118069 | .{ ._, ._ps, .movl, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 118070 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 118071 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113825 | 118072 | } }, |
| 113826 | 118073 | }, .{ |
| 113827 | 118074 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -113832,10 +118079,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113832 | 118079 | }, |
| 113833 | 118080 | .call_frame = .{ .alignment = .@"16" }, |
| 113834 | 118081 | .extra_temps = .{ |
| 113835 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113836 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 118082 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118083 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113837 | 118084 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 113838 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118085 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113839 | 118086 | .unused, |
| 113840 | 118087 | .unused, |
| 113841 | 118088 | .unused, |
| ... | ... | @@ -113847,12 +118094,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113847 | 118094 | .dst_temps = .{ .mem, .unused }, |
| 113848 | 118095 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113849 | 118096 | .each = .{ .once = &.{ |
| 113850 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113851 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118097 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 118098 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 113852 | 118099 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113853 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113854 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 113855 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 118100 | .{ ._, ._ps, .movl, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 118101 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 118102 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 113856 | 118103 | } }, |
| 113857 | 118104 | }, .{ |
| 113858 | 118105 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | ... | @@ -113863,10 +118110,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113863 | 118110 | }, |
| 113864 | 118111 | .call_frame = .{ .alignment = .@"16" }, |
| 113865 | 118112 | .extra_temps = .{ |
| 113866 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113867 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118113 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118114 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113868 | 118115 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 113869 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118116 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113870 | 118117 | .unused, |
| 113871 | 118118 | .unused, |
| 113872 | 118119 | .unused, |
| ... | ... | @@ -113878,12 +118125,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113878 | 118125 | .dst_temps = .{ .mem, .unused }, |
| 113879 | 118126 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113880 | 118127 | .each = .{ .once = &.{ |
| 113881 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113882 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118128 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 118129 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 113883 | 118130 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113884 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113885 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113886 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118131 | .{ ._, .v_sd, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 118132 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 118133 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113887 | 118134 | } }, |
| 113888 | 118135 | }, .{ |
| 113889 | 118136 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -113894,10 +118141,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113894 | 118141 | }, |
| 113895 | 118142 | .call_frame = .{ .alignment = .@"16" }, |
| 113896 | 118143 | .extra_temps = .{ |
| 113897 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113898 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118144 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118145 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113899 | 118146 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 113900 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118147 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113901 | 118148 | .unused, |
| 113902 | 118149 | .unused, |
| 113903 | 118150 | .unused, |
| ... | ... | @@ -113909,12 +118156,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113909 | 118156 | .dst_temps = .{ .mem, .unused }, |
| 113910 | 118157 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113911 | 118158 | .each = .{ .once = &.{ |
| 113912 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113913 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118159 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 118160 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 113914 | 118161 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113915 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113916 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 113917 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 118162 | .{ ._, .v_sd, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 118163 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 118164 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 113918 | 118165 | } }, |
| 113919 | 118166 | }, .{ |
| 113920 | 118167 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| ... | ... | @@ -113925,10 +118172,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113925 | 118172 | }, |
| 113926 | 118173 | .call_frame = .{ .alignment = .@"16" }, |
| 113927 | 118174 | .extra_temps = .{ |
| 113928 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113929 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118175 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118176 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113930 | 118177 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 113931 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118178 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113932 | 118179 | .unused, |
| 113933 | 118180 | .unused, |
| 113934 | 118181 | .unused, |
| ... | ... | @@ -113940,12 +118187,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113940 | 118187 | .dst_temps = .{ .mem, .unused }, |
| 113941 | 118188 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113942 | 118189 | .each = .{ .once = &.{ |
| 113943 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113944 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118190 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 118191 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 113945 | 118192 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113946 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113947 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 113948 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118193 | .{ ._, ._sd, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 118194 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 118195 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 113949 | 118196 | } }, |
| 113950 | 118197 | }, .{ |
| 113951 | 118198 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -113956,10 +118203,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113956 | 118203 | }, |
| 113957 | 118204 | .call_frame = .{ .alignment = .@"16" }, |
| 113958 | 118205 | .extra_temps = .{ |
| 113959 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113960 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118206 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118207 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113961 | 118208 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 113962 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118209 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113963 | 118210 | .unused, |
| 113964 | 118211 | .unused, |
| 113965 | 118212 | .unused, |
| ... | ... | @@ -113971,12 +118218,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113971 | 118218 | .dst_temps = .{ .mem, .unused }, |
| 113972 | 118219 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 113973 | 118220 | .each = .{ .once = &.{ |
| 113974 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 113975 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118221 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 118222 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 113976 | 118223 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 113977 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 113978 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 113979 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 118224 | .{ ._, ._sd, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 118225 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 118226 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 113980 | 118227 | } }, |
| 113981 | 118228 | }, .{ |
| 113982 | 118229 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -113987,10 +118234,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 113987 | 118234 | }, |
| 113988 | 118235 | .call_frame = .{ .alignment = .@"16" }, |
| 113989 | 118236 | .extra_temps = .{ |
| 113990 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 113991 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118237 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118238 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113992 | 118239 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 113993 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118240 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 113994 | 118241 | .unused, |
| 113995 | 118242 | .unused, |
| 113996 | 118243 | .unused, |
| ... | ... | @@ -114002,12 +118249,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114002 | 118249 | .dst_temps = .{ .mem, .unused }, |
| 114003 | 118250 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114004 | 118251 | .each = .{ .once = &.{ |
| 114005 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114006 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118252 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 118253 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 114007 | 118254 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114008 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114009 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 114010 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118255 | .{ ._, ._ps, .movl, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 118256 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 118257 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114011 | 118258 | } }, |
| 114012 | 118259 | }, .{ |
| 114013 | 118260 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -114018,10 +118265,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114018 | 118265 | }, |
| 114019 | 118266 | .call_frame = .{ .alignment = .@"16" }, |
| 114020 | 118267 | .extra_temps = .{ |
| 114021 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114022 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118268 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118269 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114023 | 118270 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 114024 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118271 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114025 | 118272 | .unused, |
| 114026 | 118273 | .unused, |
| 114027 | 118274 | .unused, |
| ... | ... | @@ -114033,12 +118280,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114033 | 118280 | .dst_temps = .{ .mem, .unused }, |
| 114034 | 118281 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114035 | 118282 | .each = .{ .once = &.{ |
| 114036 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114037 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118283 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 118284 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0b, .tmp0), ._, ._ }, |
| 114038 | 118285 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114039 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114040 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 114041 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 118286 | .{ ._, ._ps, .movl, .memsi(.dst0q, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 118287 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 118288 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 114042 | 118289 | } }, |
| 114043 | 118290 | }, .{ |
| 114044 | 118291 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -114126,7 +118373,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114126 | 118373 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114127 | 118374 | }, |
| 114128 | 118375 | .extra_temps = .{ |
| 114129 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118376 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114130 | 118377 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 114131 | 118378 | .unused, |
| 114132 | 118379 | .unused, |
| ... | ... | @@ -114141,12 +118388,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114141 | 118388 | .dst_temps = .{ .mem, .unused }, |
| 114142 | 118389 | .clobbers = .{ .eflags = true }, |
| 114143 | 118390 | .each = .{ .once = &.{ |
| 114144 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114145 | | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118391 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 118392 | .{ .@"0:", .vp_d, .movsxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 114146 | 118393 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 114147 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 114148 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114149 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118394 | .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ }, |
| 118395 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 118396 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114150 | 118397 | } }, |
| 114151 | 118398 | }, .{ |
| 114152 | 118399 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -114156,7 +118403,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114156 | 118403 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114157 | 118404 | }, |
| 114158 | 118405 | .extra_temps = .{ |
| 114159 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118406 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114160 | 118407 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 114161 | 118408 | .unused, |
| 114162 | 118409 | .unused, |
| ... | ... | @@ -114171,13 +118418,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114171 | 118418 | .dst_temps = .{ .mem, .unused }, |
| 114172 | 118419 | .clobbers = .{ .eflags = true }, |
| 114173 | 118420 | .each = .{ .once = &.{ |
| 114174 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114175 | | .{ .@"0:", .v_d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118421 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 118422 | .{ .@"0:", .v_d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 114176 | 118423 | .{ ._, .vp_d, .movsxw, .tmp1x, .tmp1q, ._, ._ }, |
| 114177 | 118424 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 114178 | | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 114179 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114180 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118425 | .{ ._, .v_pd, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 118426 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 118427 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114181 | 118428 | } }, |
| 114182 | 118429 | }, .{ |
| 114183 | 118430 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -114187,7 +118434,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114187 | 118434 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114188 | 118435 | }, |
| 114189 | 118436 | .extra_temps = .{ |
| 114190 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118437 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114191 | 118438 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 114192 | 118439 | .unused, |
| 114193 | 118440 | .unused, |
| ... | ... | @@ -114202,13 +118449,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114202 | 118449 | .dst_temps = .{ .mem, .unused }, |
| 114203 | 118450 | .clobbers = .{ .eflags = true }, |
| 114204 | 118451 | .each = .{ .once = &.{ |
| 114205 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114206 | | .{ .@"0:", ._d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118452 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 118453 | .{ .@"0:", ._d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 114207 | 118454 | .{ ._, .p_d, .movsxw, .tmp1x, .tmp1q, ._, ._ }, |
| 114208 | 118455 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 114209 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 114210 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114211 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118456 | .{ ._, ._pd, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 118457 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 118458 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114212 | 118459 | } }, |
| 114213 | 118460 | }, .{ |
| 114214 | 118461 | .required_features = .{ .avx2, null, null, null }, |
| ... | ... | @@ -114218,7 +118465,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114218 | 118465 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114219 | 118466 | }, |
| 114220 | 118467 | .extra_temps = .{ |
| 114221 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118468 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114222 | 118469 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 114223 | 118470 | .unused, |
| 114224 | 118471 | .unused, |
| ... | ... | @@ -114233,12 +118480,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114233 | 118480 | .dst_temps = .{ .mem, .unused }, |
| 114234 | 118481 | .clobbers = .{ .eflags = true }, |
| 114235 | 118482 | .each = .{ .once = &.{ |
| 114236 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114237 | | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118483 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 118484 | .{ .@"0:", .vp_d, .movzxw, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 114238 | 118485 | .{ ._, .v_pd, .cvtdq2, .tmp1y, .tmp1x, ._, ._ }, |
| 114239 | | .{ ._, .v_ps, .mova, .memsia(.dst0y, .@"4", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 114240 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114241 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118486 | .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"4", .tmp0), .tmp1y, ._, ._ }, |
| 118487 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 118488 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114242 | 118489 | } }, |
| 114243 | 118490 | }, .{ |
| 114244 | 118491 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -114248,7 +118495,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114248 | 118495 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114249 | 118496 | }, |
| 114250 | 118497 | .extra_temps = .{ |
| 114251 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118498 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114252 | 118499 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 114253 | 118500 | .unused, |
| 114254 | 118501 | .unused, |
| ... | ... | @@ -114263,13 +118510,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114263 | 118510 | .dst_temps = .{ .mem, .unused }, |
| 114264 | 118511 | .clobbers = .{ .eflags = true }, |
| 114265 | 118512 | .each = .{ .once = &.{ |
| 114266 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114267 | | .{ .@"0:", .v_d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118513 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 118514 | .{ .@"0:", .v_d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 114268 | 118515 | .{ ._, .vp_d, .movzxw, .tmp1x, .tmp1q, ._, ._ }, |
| 114269 | 118516 | .{ ._, .v_pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 114270 | | .{ ._, .v_ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 114271 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114272 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118517 | .{ ._, .v_pd, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 118518 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 118519 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114273 | 118520 | } }, |
| 114274 | 118521 | }, .{ |
| 114275 | 118522 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -114279,7 +118526,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114279 | 118526 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114280 | 118527 | }, |
| 114281 | 118528 | .extra_temps = .{ |
| 114282 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118529 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114283 | 118530 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 114284 | 118531 | .unused, |
| 114285 | 118532 | .unused, |
| ... | ... | @@ -114294,13 +118541,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114294 | 118541 | .dst_temps = .{ .mem, .unused }, |
| 114295 | 118542 | .clobbers = .{ .eflags = true }, |
| 114296 | 118543 | .each = .{ .once = &.{ |
| 114297 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114298 | | .{ .@"0:", ._d, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118544 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_size), ._, ._ }, |
| 118545 | .{ .@"0:", ._d, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 114299 | 118546 | .{ ._, .p_d, .movzxw, .tmp1x, .tmp1q, ._, ._ }, |
| 114300 | 118547 | .{ ._, ._pd, .cvtdq2, .tmp1x, .tmp1q, ._, ._ }, |
| 114301 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 114302 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114303 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118548 | .{ ._, ._pd, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp1x, ._, ._ }, |
| 118549 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 118550 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114304 | 118551 | } }, |
| 114305 | 118552 | }, .{ |
| 114306 | 118553 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -114311,10 +118558,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114311 | 118558 | }, |
| 114312 | 118559 | .call_frame = .{ .alignment = .@"16" }, |
| 114313 | 118560 | .extra_temps = .{ |
| 114314 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114315 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 118561 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118562 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114316 | 118563 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 114317 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118564 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114318 | 118565 | .unused, |
| 114319 | 118566 | .unused, |
| 114320 | 118567 | .unused, |
| ... | ... | @@ -114326,12 +118573,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114326 | 118573 | .dst_temps = .{ .mem, .unused }, |
| 114327 | 118574 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114328 | 118575 | .each = .{ .once = &.{ |
| 114329 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114330 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118576 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 118577 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 114331 | 118578 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114332 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114333 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114334 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118579 | .{ ._, .v_sd, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 118580 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 118581 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114335 | 118582 | } }, |
| 114336 | 118583 | }, .{ |
| 114337 | 118584 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -114342,10 +118589,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114342 | 118589 | }, |
| 114343 | 118590 | .call_frame = .{ .alignment = .@"16" }, |
| 114344 | 118591 | .extra_temps = .{ |
| 114345 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114346 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 118592 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118593 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114347 | 118594 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 114348 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118595 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114349 | 118596 | .unused, |
| 114350 | 118597 | .unused, |
| 114351 | 118598 | .unused, |
| ... | ... | @@ -114357,12 +118604,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114357 | 118604 | .dst_temps = .{ .mem, .unused }, |
| 114358 | 118605 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114359 | 118606 | .each = .{ .once = &.{ |
| 114360 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114361 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118607 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 118608 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 114362 | 118609 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114363 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114364 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114365 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118610 | .{ ._, ._sd, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 118611 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 118612 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114366 | 118613 | } }, |
| 114367 | 118614 | }, .{ |
| 114368 | 118615 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -114373,10 +118620,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114373 | 118620 | }, |
| 114374 | 118621 | .call_frame = .{ .alignment = .@"16" }, |
| 114375 | 118622 | .extra_temps = .{ |
| 114376 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114377 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 118623 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118624 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114378 | 118625 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 114379 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118626 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114380 | 118627 | .unused, |
| 114381 | 118628 | .unused, |
| 114382 | 118629 | .unused, |
| ... | ... | @@ -114388,12 +118635,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114388 | 118635 | .dst_temps = .{ .mem, .unused }, |
| 114389 | 118636 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114390 | 118637 | .each = .{ .once = &.{ |
| 114391 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114392 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118638 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 118639 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 114393 | 118640 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114394 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114395 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114396 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118641 | .{ ._, ._ps, .movl, .memsi(.dst0q, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 118642 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 118643 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114397 | 118644 | } }, |
| 114398 | 118645 | }, .{ |
| 114399 | 118646 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -114404,10 +118651,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114404 | 118651 | }, |
| 114405 | 118652 | .call_frame = .{ .alignment = .@"16" }, |
| 114406 | 118653 | .extra_temps = .{ |
| 114407 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114408 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118654 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118655 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114409 | 118656 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 114410 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118657 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114411 | 118658 | .unused, |
| 114412 | 118659 | .unused, |
| 114413 | 118660 | .unused, |
| ... | ... | @@ -114419,12 +118666,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114419 | 118666 | .dst_temps = .{ .mem, .unused }, |
| 114420 | 118667 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114421 | 118668 | .each = .{ .once = &.{ |
| 114422 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114423 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118669 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 118670 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 114424 | 118671 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114425 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114426 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114427 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118672 | .{ ._, .v_sd, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 118673 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 118674 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114428 | 118675 | } }, |
| 114429 | 118676 | }, .{ |
| 114430 | 118677 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -114435,10 +118682,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114435 | 118682 | }, |
| 114436 | 118683 | .call_frame = .{ .alignment = .@"16" }, |
| 114437 | 118684 | .extra_temps = .{ |
| 114438 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114439 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118685 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118686 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114440 | 118687 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 114441 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118688 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114442 | 118689 | .unused, |
| 114443 | 118690 | .unused, |
| 114444 | 118691 | .unused, |
| ... | ... | @@ -114450,12 +118697,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114450 | 118697 | .dst_temps = .{ .mem, .unused }, |
| 114451 | 118698 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114452 | 118699 | .each = .{ .once = &.{ |
| 114453 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114454 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118700 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 118701 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 114455 | 118702 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114456 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114457 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114458 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118703 | .{ ._, ._sd, .mov, .memsi(.dst0q, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 118704 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 118705 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114459 | 118706 | } }, |
| 114460 | 118707 | }, .{ |
| 114461 | 118708 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -114466,10 +118713,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114466 | 118713 | }, |
| 114467 | 118714 | .call_frame = .{ .alignment = .@"16" }, |
| 114468 | 118715 | .extra_temps = .{ |
| 114469 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114470 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118716 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118717 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114471 | 118718 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 114472 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118719 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114473 | 118720 | .unused, |
| 114474 | 118721 | .unused, |
| 114475 | 118722 | .unused, |
| ... | ... | @@ -114481,12 +118728,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114481 | 118728 | .dst_temps = .{ .mem, .unused }, |
| 114482 | 118729 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114483 | 118730 | .each = .{ .once = &.{ |
| 114484 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114485 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118731 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 118732 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 114486 | 118733 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114487 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114488 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 114489 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118734 | .{ ._, ._ps, .movl, .memsi(.dst0q, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 118735 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 118736 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114490 | 118737 | } }, |
| 114491 | 118738 | }, .{ |
| 114492 | 118739 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -114532,7 +118779,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114532 | 118779 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114533 | 118780 | }, |
| 114534 | 118781 | .extra_temps = .{ |
| 114535 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118782 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114536 | 118783 | .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } }, |
| 114537 | 118784 | .unused, |
| 114538 | 118785 | .unused, |
| ... | ... | @@ -114547,11 +118794,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114547 | 118794 | .dst_temps = .{ .mem, .unused }, |
| 114548 | 118795 | .clobbers = .{ .eflags = true }, |
| 114549 | 118796 | .each = .{ .once = &.{ |
| 114550 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114551 | | .{ .@"0:", .v_pd, .cvtdq2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114552 | | .{ ._, .v_pd, .mova, .memsia(.dst0y, .@"2", .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 114553 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 114554 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118797 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 118798 | .{ .@"0:", .v_pd, .cvtdq2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 118799 | .{ ._, .v_pd, .mova, .memsi(.dst0y, .@"2", .tmp0), .tmp1y, ._, ._ }, |
| 118800 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 118801 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114555 | 118802 | } }, |
| 114556 | 118803 | }, .{ |
| 114557 | 118804 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -114561,7 +118808,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114561 | 118808 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114562 | 118809 | }, |
| 114563 | 118810 | .extra_temps = .{ |
| 114564 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118811 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114565 | 118812 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 114566 | 118813 | .unused, |
| 114567 | 118814 | .unused, |
| ... | ... | @@ -114576,11 +118823,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114576 | 118823 | .dst_temps = .{ .mem, .unused }, |
| 114577 | 118824 | .clobbers = .{ .eflags = true }, |
| 114578 | 118825 | .each = .{ .once = &.{ |
| 114579 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114580 | | .{ .@"0:", .v_pd, .cvtdq2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114581 | | .{ ._, .v_pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 114582 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114583 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118826 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 118827 | .{ .@"0:", .v_pd, .cvtdq2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 118828 | .{ ._, .v_pd, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 118829 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 118830 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114584 | 118831 | } }, |
| 114585 | 118832 | }, .{ |
| 114586 | 118833 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -114590,7 +118837,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114590 | 118837 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114591 | 118838 | }, |
| 114592 | 118839 | .extra_temps = .{ |
| 114593 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118840 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114594 | 118841 | .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } }, |
| 114595 | 118842 | .unused, |
| 114596 | 118843 | .unused, |
| ... | ... | @@ -114605,11 +118852,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114605 | 118852 | .dst_temps = .{ .mem, .unused }, |
| 114606 | 118853 | .clobbers = .{ .eflags = true }, |
| 114607 | 118854 | .each = .{ .once = &.{ |
| 114608 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114609 | | .{ .@"0:", ._pd, .cvtdq2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114610 | | .{ ._, ._pd, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 114611 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114612 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118855 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, |
| 118856 | .{ .@"0:", ._pd, .cvtdq2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 118857 | .{ ._, ._pd, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp1x, ._, ._ }, |
| 118858 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 118859 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114613 | 118860 | } }, |
| 114614 | 118861 | }, .{ |
| 114615 | 118862 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -114620,10 +118867,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114620 | 118867 | }, |
| 114621 | 118868 | .call_frame = .{ .alignment = .@"16" }, |
| 114622 | 118869 | .extra_temps = .{ |
| 114623 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114624 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 118870 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118871 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114625 | 118872 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 114626 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118873 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114627 | 118874 | .unused, |
| 114628 | 118875 | .unused, |
| 114629 | 118876 | .unused, |
| ... | ... | @@ -114635,12 +118882,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114635 | 118882 | .dst_temps = .{ .mem, .unused }, |
| 114636 | 118883 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114637 | 118884 | .each = .{ .once = &.{ |
| 114638 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114639 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118885 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 118886 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 114640 | 118887 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114641 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114642 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114643 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118888 | .{ ._, .v_sd, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 118889 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 118890 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114644 | 118891 | } }, |
| 114645 | 118892 | }, .{ |
| 114646 | 118893 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -114651,10 +118898,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114651 | 118898 | }, |
| 114652 | 118899 | .call_frame = .{ .alignment = .@"16" }, |
| 114653 | 118900 | .extra_temps = .{ |
| 114654 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114655 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 118901 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118902 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114656 | 118903 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 114657 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118904 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114658 | 118905 | .unused, |
| 114659 | 118906 | .unused, |
| 114660 | 118907 | .unused, |
| ... | ... | @@ -114666,12 +118913,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114666 | 118913 | .dst_temps = .{ .mem, .unused }, |
| 114667 | 118914 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114668 | 118915 | .each = .{ .once = &.{ |
| 114669 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114670 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118916 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 118917 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 114671 | 118918 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114672 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114673 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114674 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118919 | .{ ._, ._sd, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 118920 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 118921 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114675 | 118922 | } }, |
| 114676 | 118923 | }, .{ |
| 114677 | 118924 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -114682,10 +118929,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114682 | 118929 | }, |
| 114683 | 118930 | .call_frame = .{ .alignment = .@"16" }, |
| 114684 | 118931 | .extra_temps = .{ |
| 114685 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114686 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 118932 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118933 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114687 | 118934 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsidf" } }, |
| 114688 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118935 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114689 | 118936 | .unused, |
| 114690 | 118937 | .unused, |
| 114691 | 118938 | .unused, |
| ... | ... | @@ -114697,12 +118944,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114697 | 118944 | .dst_temps = .{ .mem, .unused }, |
| 114698 | 118945 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114699 | 118946 | .each = .{ .once = &.{ |
| 114700 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114701 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118947 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 118948 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 114702 | 118949 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114703 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114704 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114705 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118950 | .{ ._, ._ps, .movl, .memsi(.dst0q, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 118951 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 118952 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114706 | 118953 | } }, |
| 114707 | 118954 | }, .{ |
| 114708 | 118955 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -114713,10 +118960,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114713 | 118960 | }, |
| 114714 | 118961 | .call_frame = .{ .alignment = .@"16" }, |
| 114715 | 118962 | .extra_temps = .{ |
| 114716 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114717 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118963 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118964 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114718 | 118965 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 114719 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118966 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114720 | 118967 | .unused, |
| 114721 | 118968 | .unused, |
| 114722 | 118969 | .unused, |
| ... | ... | @@ -114728,12 +118975,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114728 | 118975 | .dst_temps = .{ .mem, .unused }, |
| 114729 | 118976 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114730 | 118977 | .each = .{ .once = &.{ |
| 114731 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114732 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 118978 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 118979 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 114733 | 118980 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114734 | | .{ ._, .v_sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114735 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114736 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 118981 | .{ ._, .v_sd, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 118982 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 118983 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114737 | 118984 | } }, |
| 114738 | 118985 | }, .{ |
| 114739 | 118986 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -114744,10 +118991,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114744 | 118991 | }, |
| 114745 | 118992 | .call_frame = .{ .alignment = .@"16" }, |
| 114746 | 118993 | .extra_temps = .{ |
| 114747 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114748 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 118994 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 118995 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114749 | 118996 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 114750 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 118997 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114751 | 118998 | .unused, |
| 114752 | 118999 | .unused, |
| 114753 | 119000 | .unused, |
| ... | ... | @@ -114759,12 +119006,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114759 | 119006 | .dst_temps = .{ .mem, .unused }, |
| 114760 | 119007 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114761 | 119008 | .each = .{ .once = &.{ |
| 114762 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114763 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 119009 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 119010 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 114764 | 119011 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114765 | | .{ ._, ._sd, .mov, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114766 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114767 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119012 | .{ ._, ._sd, .mov, .memsi(.dst0q, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 119013 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 119014 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114768 | 119015 | } }, |
| 114769 | 119016 | }, .{ |
| 114770 | 119017 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -114775,10 +119022,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114775 | 119022 | }, |
| 114776 | 119023 | .call_frame = .{ .alignment = .@"16" }, |
| 114777 | 119024 | .extra_temps = .{ |
| 114778 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114779 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 119025 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119026 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114780 | 119027 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsidf" } }, |
| 114781 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119028 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114782 | 119029 | .unused, |
| 114783 | 119030 | .unused, |
| 114784 | 119031 | .unused, |
| ... | ... | @@ -114790,12 +119037,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114790 | 119037 | .dst_temps = .{ .mem, .unused }, |
| 114791 | 119038 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114792 | 119039 | .each = .{ .once = &.{ |
| 114793 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114794 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 119040 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 119041 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 114795 | 119042 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114796 | | .{ ._, ._ps, .movl, .memsia(.dst0q, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114797 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 114798 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119043 | .{ ._, ._ps, .movl, .memsi(.dst0q, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 119044 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 119045 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114799 | 119046 | } }, |
| 114800 | 119047 | }, .{ |
| 114801 | 119048 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -114805,7 +119052,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114805 | 119052 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114806 | 119053 | }, |
| 114807 | 119054 | .extra_temps = .{ |
| 114808 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 119055 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114809 | 119056 | .{ .type = .f64, .kind = .{ .rc = .sse } }, |
| 114810 | 119057 | .unused, |
| 114811 | 119058 | .unused, |
| ... | ... | @@ -114820,12 +119067,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114820 | 119067 | .dst_temps = .{ .mem, .unused }, |
| 114821 | 119068 | .clobbers = .{ .eflags = true }, |
| 114822 | 119069 | .each = .{ .once = &.{ |
| 114823 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 119070 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 114824 | 119071 | .{ .@"0:", .v_pd, .xor, .tmp1x, .tmp1x, .tmp1x, ._ }, |
| 114825 | | .{ ._, .v_sd, .cvtsi2, .tmp1x, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._ }, |
| 114826 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 114827 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114828 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119072 | .{ ._, .v_sd, .cvtsi2, .tmp1x, .tmp1x, .memi(.src0q, .tmp0), ._ }, |
| 119073 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 119074 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119075 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114829 | 119076 | } }, |
| 114830 | 119077 | }, .{ |
| 114831 | 119078 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -114835,7 +119082,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114835 | 119082 | .{ .src = .{ .to_mem, .none, .none } }, |
| 114836 | 119083 | }, |
| 114837 | 119084 | .extra_temps = .{ |
| 114838 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 119085 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 114839 | 119086 | .{ .type = .f64, .kind = .{ .rc = .sse } }, |
| 114840 | 119087 | .unused, |
| 114841 | 119088 | .unused, |
| ... | ... | @@ -114850,12 +119097,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114850 | 119097 | .dst_temps = .{ .mem, .unused }, |
| 114851 | 119098 | .clobbers = .{ .eflags = true }, |
| 114852 | 119099 | .each = .{ .once = &.{ |
| 114853 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 119100 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 114854 | 119101 | .{ .@"0:", ._pd, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 114855 | | .{ ._, ._sd, .cvtsi2, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 114856 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 114857 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114858 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119102 | .{ ._, ._sd, .cvtsi2, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 119103 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 119104 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119105 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114859 | 119106 | } }, |
| 114860 | 119107 | }, .{ |
| 114861 | 119108 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -114866,10 +119113,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114866 | 119113 | }, |
| 114867 | 119114 | .call_frame = .{ .alignment = .@"16" }, |
| 114868 | 119115 | .extra_temps = .{ |
| 114869 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114870 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 119116 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119117 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114871 | 119118 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdidf" } }, |
| 114872 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119119 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114873 | 119120 | .unused, |
| 114874 | 119121 | .unused, |
| 114875 | 119122 | .unused, |
| ... | ... | @@ -114881,12 +119128,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114881 | 119128 | .dst_temps = .{ .mem, .unused }, |
| 114882 | 119129 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114883 | 119130 | .each = .{ .once = &.{ |
| 114884 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114885 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 119131 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 119132 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 114886 | 119133 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114887 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114888 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114889 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119134 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119135 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119136 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114890 | 119137 | } }, |
| 114891 | 119138 | }, .{ |
| 114892 | 119139 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -114897,10 +119144,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114897 | 119144 | }, |
| 114898 | 119145 | .call_frame = .{ .alignment = .@"16" }, |
| 114899 | 119146 | .extra_temps = .{ |
| 114900 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114901 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 119147 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119148 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114902 | 119149 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdidf" } }, |
| 114903 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119150 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114904 | 119151 | .unused, |
| 114905 | 119152 | .unused, |
| 114906 | 119153 | .unused, |
| ... | ... | @@ -114912,12 +119159,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114912 | 119159 | .dst_temps = .{ .mem, .unused }, |
| 114913 | 119160 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114914 | 119161 | .each = .{ .once = &.{ |
| 114915 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114916 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 119162 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 119163 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 114917 | 119164 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114918 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114919 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114920 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119165 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119166 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119167 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114921 | 119168 | } }, |
| 114922 | 119169 | }, .{ |
| 114923 | 119170 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -114928,10 +119175,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114928 | 119175 | }, |
| 114929 | 119176 | .call_frame = .{ .alignment = .@"16" }, |
| 114930 | 119177 | .extra_temps = .{ |
| 114931 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114932 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 119178 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119179 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114933 | 119180 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdidf" } }, |
| 114934 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119181 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114935 | 119182 | .unused, |
| 114936 | 119183 | .unused, |
| 114937 | 119184 | .unused, |
| ... | ... | @@ -114943,12 +119190,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114943 | 119190 | .dst_temps = .{ .mem, .unused }, |
| 114944 | 119191 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114945 | 119192 | .each = .{ .once = &.{ |
| 114946 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114947 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 119193 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 119194 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 114948 | 119195 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114949 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114950 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114951 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119196 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119197 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119198 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114952 | 119199 | } }, |
| 114953 | 119200 | }, .{ |
| 114954 | 119201 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -114959,10 +119206,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114959 | 119206 | }, |
| 114960 | 119207 | .call_frame = .{ .alignment = .@"16" }, |
| 114961 | 119208 | .extra_temps = .{ |
| 114962 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114963 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 119209 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119210 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114964 | 119211 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundidf" } }, |
| 114965 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119212 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114966 | 119213 | .unused, |
| 114967 | 119214 | .unused, |
| 114968 | 119215 | .unused, |
| ... | ... | @@ -114974,12 +119221,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114974 | 119221 | .dst_temps = .{ .mem, .unused }, |
| 114975 | 119222 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 114976 | 119223 | .each = .{ .once = &.{ |
| 114977 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 114978 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 119224 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 119225 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 114979 | 119226 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 114980 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 114981 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 114982 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119227 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119228 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119229 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 114983 | 119230 | } }, |
| 114984 | 119231 | }, .{ |
| 114985 | 119232 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -114990,10 +119237,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 114990 | 119237 | }, |
| 114991 | 119238 | .call_frame = .{ .alignment = .@"16" }, |
| 114992 | 119239 | .extra_temps = .{ |
| 114993 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 114994 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 119240 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119241 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114995 | 119242 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundidf" } }, |
| 114996 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119243 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 114997 | 119244 | .unused, |
| 114998 | 119245 | .unused, |
| 114999 | 119246 | .unused, |
| ... | ... | @@ -115005,12 +119252,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115005 | 119252 | .dst_temps = .{ .mem, .unused }, |
| 115006 | 119253 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115007 | 119254 | .each = .{ .once = &.{ |
| 115008 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115009 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 119255 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 119256 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 115010 | 119257 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 115011 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 115012 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115013 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119258 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119259 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119260 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115014 | 119261 | } }, |
| 115015 | 119262 | }, .{ |
| 115016 | 119263 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -115021,10 +119268,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115021 | 119268 | }, |
| 115022 | 119269 | .call_frame = .{ .alignment = .@"16" }, |
| 115023 | 119270 | .extra_temps = .{ |
| 115024 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115025 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 119271 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119272 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115026 | 119273 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundidf" } }, |
| 115027 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119274 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115028 | 119275 | .unused, |
| 115029 | 119276 | .unused, |
| 115030 | 119277 | .unused, |
| ... | ... | @@ -115036,15 +119283,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115036 | 119283 | .dst_temps = .{ .mem, .unused }, |
| 115037 | 119284 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115038 | 119285 | .each = .{ .once = &.{ |
| 115039 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115040 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 119286 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 119287 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 115041 | 119288 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 115042 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 115043 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115044 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119289 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119290 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119291 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115045 | 119292 | } }, |
| 115046 | 119293 | }, .{ |
| 115047 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 119294 | .required_cc_abi = .sysv64, |
| 119295 | .required_features = .{ .avx, null, null, null }, |
| 115048 | 119296 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115049 | 119297 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115050 | 119298 | .patterns = &.{ |
| ... | ... | @@ -115052,11 +119300,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115052 | 119300 | }, |
| 115053 | 119301 | .call_frame = .{ .alignment = .@"16" }, |
| 115054 | 119302 | .extra_temps = .{ |
| 115055 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115056 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115057 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 119303 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119304 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115058 | 119305 | .{ .type = .usize, .kind = .{ .extern_func = "__floattidf" } }, |
| 115059 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119306 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119307 | .unused, |
| 115060 | 119308 | .unused, |
| 115061 | 119309 | .unused, |
| 115062 | 119310 | .unused, |
| ... | ... | @@ -115067,16 +119315,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115067 | 119315 | .dst_temps = .{ .mem, .unused }, |
| 115068 | 119316 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115069 | 119317 | .each = .{ .once = &.{ |
| 115070 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 115071 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 115072 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115073 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115074 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115075 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115076 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119318 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119319 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 119320 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"2", .tmp0, 8), ._, ._ }, |
| 119321 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119322 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119323 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119324 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115077 | 119325 | } }, |
| 115078 | 119326 | }, .{ |
| 115079 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 119327 | .required_cc_abi = .win64, |
| 119328 | .required_features = .{ .avx, null, null, null }, |
| 115080 | 119329 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115081 | 119330 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115082 | 119331 | .patterns = &.{ |
| ... | ... | @@ -115084,11 +119333,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115084 | 119333 | }, |
| 115085 | 119334 | .call_frame = .{ .alignment = .@"16" }, |
| 115086 | 119335 | .extra_temps = .{ |
| 115087 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115088 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115089 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 119336 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119337 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115090 | 119338 | .{ .type = .usize, .kind = .{ .extern_func = "__floattidf" } }, |
| 115091 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119339 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119340 | .unused, |
| 115092 | 119341 | .unused, |
| 115093 | 119342 | .unused, |
| 115094 | 119343 | .unused, |
| ... | ... | @@ -115099,16 +119348,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115099 | 119348 | .dst_temps = .{ .mem, .unused }, |
| 115100 | 119349 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115101 | 119350 | .each = .{ .once = &.{ |
| 115102 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 115103 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 115104 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115105 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115106 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115107 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115108 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119351 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119352 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"2", .tmp0), ._, ._ }, |
| 119353 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119354 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119355 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119356 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115109 | 119357 | } }, |
| 115110 | 119358 | }, .{ |
| 115111 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 119359 | .required_cc_abi = .sysv64, |
| 119360 | .required_features = .{ .sse2, null, null, null }, |
| 115112 | 119361 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115113 | 119362 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115114 | 119363 | .patterns = &.{ |
| ... | ... | @@ -115116,11 +119365,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115116 | 119365 | }, |
| 115117 | 119366 | .call_frame = .{ .alignment = .@"16" }, |
| 115118 | 119367 | .extra_temps = .{ |
| 115119 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115120 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115121 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 119368 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119369 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115122 | 119370 | .{ .type = .usize, .kind = .{ .extern_func = "__floattidf" } }, |
| 115123 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119371 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119372 | .unused, |
| 115124 | 119373 | .unused, |
| 115125 | 119374 | .unused, |
| 115126 | 119375 | .unused, |
| ... | ... | @@ -115131,16 +119380,114 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115131 | 119380 | .dst_temps = .{ .mem, .unused }, |
| 115132 | 119381 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115133 | 119382 | .each = .{ .once = &.{ |
| 115134 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 115135 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 115136 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115137 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115138 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115139 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115140 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119383 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119384 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 119385 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"2", .tmp0, 8), ._, ._ }, |
| 119386 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119387 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119388 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119389 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115141 | 119390 | } }, |
| 115142 | 119391 | }, .{ |
| 115143 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 119392 | .required_cc_abi = .win64, |
| 119393 | .required_features = .{ .sse2, null, null, null }, |
| 119394 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 119395 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 119396 | .patterns = &.{ |
| 119397 | .{ .src = .{ .to_mem, .none, .none } }, |
| 119398 | }, |
| 119399 | .call_frame = .{ .alignment = .@"16" }, |
| 119400 | .extra_temps = .{ |
| 119401 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119402 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119403 | .{ .type = .usize, .kind = .{ .extern_func = "__floattidf" } }, |
| 119404 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119405 | .unused, |
| 119406 | .unused, |
| 119407 | .unused, |
| 119408 | .unused, |
| 119409 | .unused, |
| 119410 | .unused, |
| 119411 | .unused, |
| 119412 | }, |
| 119413 | .dst_temps = .{ .mem, .unused }, |
| 119414 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 119415 | .each = .{ .once = &.{ |
| 119416 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119417 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"2", .tmp0), ._, ._ }, |
| 119418 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119419 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119420 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119421 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 119422 | } }, |
| 119423 | }, .{ |
| 119424 | .required_cc_abi = .sysv64, |
| 119425 | .required_features = .{ .sse, null, null, null }, |
| 119426 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 119427 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 119428 | .patterns = &.{ |
| 119429 | .{ .src = .{ .to_mem, .none, .none } }, |
| 119430 | }, |
| 119431 | .call_frame = .{ .alignment = .@"16" }, |
| 119432 | .extra_temps = .{ |
| 119433 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119434 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119435 | .{ .type = .usize, .kind = .{ .extern_func = "__floattidf" } }, |
| 119436 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119437 | .unused, |
| 119438 | .unused, |
| 119439 | .unused, |
| 119440 | .unused, |
| 119441 | .unused, |
| 119442 | .unused, |
| 119443 | .unused, |
| 119444 | }, |
| 119445 | .dst_temps = .{ .mem, .unused }, |
| 119446 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 119447 | .each = .{ .once = &.{ |
| 119448 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119449 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 119450 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"2", .tmp0, 8), ._, ._ }, |
| 119451 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119452 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119453 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119454 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 119455 | } }, |
| 119456 | }, .{ |
| 119457 | .required_cc_abi = .win64, |
| 119458 | .required_features = .{ .sse, null, null, null }, |
| 119459 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 119460 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 119461 | .patterns = &.{ |
| 119462 | .{ .src = .{ .to_mem, .none, .none } }, |
| 119463 | }, |
| 119464 | .call_frame = .{ .alignment = .@"16" }, |
| 119465 | .extra_temps = .{ |
| 119466 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119467 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119468 | .{ .type = .usize, .kind = .{ .extern_func = "__floattidf" } }, |
| 119469 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119470 | .unused, |
| 119471 | .unused, |
| 119472 | .unused, |
| 119473 | .unused, |
| 119474 | .unused, |
| 119475 | .unused, |
| 119476 | .unused, |
| 119477 | }, |
| 119478 | .dst_temps = .{ .mem, .unused }, |
| 119479 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 119480 | .each = .{ .once = &.{ |
| 119481 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119482 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"2", .tmp0), ._, ._ }, |
| 119483 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119484 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119485 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119486 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 119487 | } }, |
| 119488 | }, .{ |
| 119489 | .required_cc_abi = .sysv64, |
| 119490 | .required_features = .{ .avx, null, null, null }, |
| 115144 | 119491 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115145 | 119492 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115146 | 119493 | .patterns = &.{ |
| ... | ... | @@ -115148,11 +119495,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115148 | 119495 | }, |
| 115149 | 119496 | .call_frame = .{ .alignment = .@"16" }, |
| 115150 | 119497 | .extra_temps = .{ |
| 115151 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115152 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115153 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 119498 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119499 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115154 | 119500 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntidf" } }, |
| 115155 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119501 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119502 | .unused, |
| 115156 | 119503 | .unused, |
| 115157 | 119504 | .unused, |
| 115158 | 119505 | .unused, |
| ... | ... | @@ -115163,16 +119510,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115163 | 119510 | .dst_temps = .{ .mem, .unused }, |
| 115164 | 119511 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115165 | 119512 | .each = .{ .once = &.{ |
| 115166 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 115167 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 115168 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115169 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115170 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115171 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115172 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119513 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119514 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 119515 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"2", .tmp0, 8), ._, ._ }, |
| 119516 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119517 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119518 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119519 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115173 | 119520 | } }, |
| 115174 | 119521 | }, .{ |
| 115175 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 119522 | .required_cc_abi = .win64, |
| 119523 | .required_features = .{ .avx, null, null, null }, |
| 115176 | 119524 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115177 | 119525 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115178 | 119526 | .patterns = &.{ |
| ... | ... | @@ -115180,11 +119528,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115180 | 119528 | }, |
| 115181 | 119529 | .call_frame = .{ .alignment = .@"16" }, |
| 115182 | 119530 | .extra_temps = .{ |
| 115183 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115184 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115185 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 119531 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119532 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115186 | 119533 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntidf" } }, |
| 115187 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119534 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119535 | .unused, |
| 115188 | 119536 | .unused, |
| 115189 | 119537 | .unused, |
| 115190 | 119538 | .unused, |
| ... | ... | @@ -115195,16 +119543,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115195 | 119543 | .dst_temps = .{ .mem, .unused }, |
| 115196 | 119544 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115197 | 119545 | .each = .{ .once = &.{ |
| 115198 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 115199 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 115200 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115201 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115202 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115203 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115204 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119546 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119547 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"2", .tmp0), ._, ._ }, |
| 119548 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119549 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119550 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119551 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115205 | 119552 | } }, |
| 115206 | 119553 | }, .{ |
| 115207 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 119554 | .required_cc_abi = .sysv64, |
| 119555 | .required_features = .{ .sse2, null, null, null }, |
| 115208 | 119556 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 115209 | 119557 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 115210 | 119558 | .patterns = &.{ |
| ... | ... | @@ -115212,11 +119560,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115212 | 119560 | }, |
| 115213 | 119561 | .call_frame = .{ .alignment = .@"16" }, |
| 115214 | 119562 | .extra_temps = .{ |
| 115215 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115216 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 115217 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 119563 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119564 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115218 | 119565 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntidf" } }, |
| 115219 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119566 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119567 | .unused, |
| 115220 | 119568 | .unused, |
| 115221 | 119569 | .unused, |
| 115222 | 119570 | .unused, |
| ... | ... | @@ -115227,13 +119575,110 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115227 | 119575 | .dst_temps = .{ .mem, .unused }, |
| 115228 | 119576 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115229 | 119577 | .each = .{ .once = &.{ |
| 115230 | | .{ ._, ._, .mov, .tmp0p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 115231 | | .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"2", .tmp0, .add_unaligned_size), ._, ._ }, |
| 115232 | | .{ ._, ._, .mov, .tmp2q, .memsiad(.src0q, .@"2", .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 115233 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115234 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 115235 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 115236 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119578 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119579 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 119580 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"2", .tmp0, 8), ._, ._ }, |
| 119581 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119582 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119583 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119584 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 119585 | } }, |
| 119586 | }, .{ |
| 119587 | .required_cc_abi = .win64, |
| 119588 | .required_features = .{ .sse2, null, null, null }, |
| 119589 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 119590 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 119591 | .patterns = &.{ |
| 119592 | .{ .src = .{ .to_mem, .none, .none } }, |
| 119593 | }, |
| 119594 | .call_frame = .{ .alignment = .@"16" }, |
| 119595 | .extra_temps = .{ |
| 119596 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119597 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119598 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntidf" } }, |
| 119599 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119600 | .unused, |
| 119601 | .unused, |
| 119602 | .unused, |
| 119603 | .unused, |
| 119604 | .unused, |
| 119605 | .unused, |
| 119606 | .unused, |
| 119607 | }, |
| 119608 | .dst_temps = .{ .mem, .unused }, |
| 119609 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 119610 | .each = .{ .once = &.{ |
| 119611 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119612 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"2", .tmp0), ._, ._ }, |
| 119613 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119614 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119615 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 119616 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 119617 | } }, |
| 119618 | }, .{ |
| 119619 | .required_cc_abi = .sysv64, |
| 119620 | .required_features = .{ .sse, null, null, null }, |
| 119621 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 119622 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 119623 | .patterns = &.{ |
| 119624 | .{ .src = .{ .to_mem, .none, .none } }, |
| 119625 | }, |
| 119626 | .call_frame = .{ .alignment = .@"16" }, |
| 119627 | .extra_temps = .{ |
| 119628 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119629 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119630 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntidf" } }, |
| 119631 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119632 | .unused, |
| 119633 | .unused, |
| 119634 | .unused, |
| 119635 | .unused, |
| 119636 | .unused, |
| 119637 | .unused, |
| 119638 | .unused, |
| 119639 | }, |
| 119640 | .dst_temps = .{ .mem, .unused }, |
| 119641 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 119642 | .each = .{ .once = &.{ |
| 119643 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119644 | .{ .@"0:", ._, .mov, .tmp1q0, .memsi(.src0q, .@"2", .tmp0), ._, ._ }, |
| 119645 | .{ ._, ._, .mov, .tmp1q1, .memsid(.src0q, .@"2", .tmp0, 8), ._, ._ }, |
| 119646 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119647 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119648 | .{ ._, ._, .sub, .tmp0p, .si(8), ._, ._ }, |
| 119649 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 119650 | } }, |
| 119651 | }, .{ |
| 119652 | .required_cc_abi = .win64, |
| 119653 | .required_features = .{ .sse, null, null, null }, |
| 119654 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 119655 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, .any }, |
| 119656 | .patterns = &.{ |
| 119657 | .{ .src = .{ .to_mem, .none, .none } }, |
| 119658 | }, |
| 119659 | .call_frame = .{ .alignment = .@"16" }, |
| 119660 | .extra_temps = .{ |
| 119661 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119662 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119663 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntidf" } }, |
| 119664 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119665 | .unused, |
| 119666 | .unused, |
| 119667 | .unused, |
| 119668 | .unused, |
| 119669 | .unused, |
| 119670 | .unused, |
| 119671 | .unused, |
| 119672 | }, |
| 119673 | .dst_temps = .{ .mem, .unused }, |
| 119674 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 119675 | .each = .{ .once = &.{ |
| 119676 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 119677 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.src0, .@"2", .tmp0), ._, ._ }, |
| 119678 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 119679 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp0), .tmp3x, ._, ._ }, |
| 119680 | .{ ._, ._, .sub, .tmp0p, .si(8), ._, ._ }, |
| 119681 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115237 | 119682 | } }, |
| 115238 | 119683 | }, .{ |
| 115239 | 119684 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -115245,11 +119690,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115245 | 119690 | .call_frame = .{ .alignment = .@"16" }, |
| 115246 | 119691 | .extra_temps = .{ |
| 115247 | 119692 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115248 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115249 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115250 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 119693 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119694 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119695 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 115251 | 119696 | .{ .type = .usize, .kind = .{ .extern_func = "__floateidf" } }, |
| 115252 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119697 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115253 | 119698 | .unused, |
| 115254 | 119699 | .unused, |
| 115255 | 119700 | .unused, |
| ... | ... | @@ -115259,15 +119704,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115259 | 119704 | .dst_temps = .{ .mem, .unused }, |
| 115260 | 119705 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115261 | 119706 | .each = .{ .once = &.{ |
| 115262 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115263 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 119707 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 119708 | .{ ._, ._, .mov, .tmp1d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 115264 | 119709 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115265 | 119710 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115266 | 119711 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 115267 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 115268 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 115269 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 115270 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119712 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp1), .tmp5x, ._, ._ }, |
| 119713 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 119714 | .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ }, |
| 119715 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115271 | 119716 | } }, |
| 115272 | 119717 | }, .{ |
| 115273 | 119718 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -115279,11 +119724,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115279 | 119724 | .call_frame = .{ .alignment = .@"16" }, |
| 115280 | 119725 | .extra_temps = .{ |
| 115281 | 119726 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115282 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115283 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115284 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 119727 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119728 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119729 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 115285 | 119730 | .{ .type = .usize, .kind = .{ .extern_func = "__floateidf" } }, |
| 115286 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119731 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115287 | 119732 | .unused, |
| 115288 | 119733 | .unused, |
| 115289 | 119734 | .unused, |
| ... | ... | @@ -115293,15 +119738,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115293 | 119738 | .dst_temps = .{ .mem, .unused }, |
| 115294 | 119739 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115295 | 119740 | .each = .{ .once = &.{ |
| 115296 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115297 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 119741 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 119742 | .{ ._, ._, .mov, .tmp1d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 115298 | 119743 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115299 | 119744 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115300 | 119745 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 115301 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 115302 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 115303 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 115304 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119746 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp1), .tmp5x, ._, ._ }, |
| 119747 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 119748 | .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ }, |
| 119749 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115305 | 119750 | } }, |
| 115306 | 119751 | }, .{ |
| 115307 | 119752 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -115313,11 +119758,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115313 | 119758 | .call_frame = .{ .alignment = .@"16" }, |
| 115314 | 119759 | .extra_temps = .{ |
| 115315 | 119760 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115316 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115317 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115318 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 119761 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119762 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119763 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 115319 | 119764 | .{ .type = .usize, .kind = .{ .extern_func = "__floateidf" } }, |
| 115320 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119765 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115321 | 119766 | .unused, |
| 115322 | 119767 | .unused, |
| 115323 | 119768 | .unused, |
| ... | ... | @@ -115327,15 +119772,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115327 | 119772 | .dst_temps = .{ .mem, .unused }, |
| 115328 | 119773 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115329 | 119774 | .each = .{ .once = &.{ |
| 115330 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115331 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 119775 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 119776 | .{ ._, ._, .mov, .tmp1d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 115332 | 119777 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115333 | 119778 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115334 | 119779 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 115335 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 115336 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 115337 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 115338 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119780 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp1), .tmp5x, ._, ._ }, |
| 119781 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 119782 | .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ }, |
| 119783 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115339 | 119784 | } }, |
| 115340 | 119785 | }, .{ |
| 115341 | 119786 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -115347,11 +119792,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115347 | 119792 | .call_frame = .{ .alignment = .@"16" }, |
| 115348 | 119793 | .extra_temps = .{ |
| 115349 | 119794 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115350 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115351 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115352 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 119795 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119796 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119797 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 115353 | 119798 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneidf" } }, |
| 115354 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119799 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115355 | 119800 | .unused, |
| 115356 | 119801 | .unused, |
| 115357 | 119802 | .unused, |
| ... | ... | @@ -115361,15 +119806,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115361 | 119806 | .dst_temps = .{ .mem, .unused }, |
| 115362 | 119807 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115363 | 119808 | .each = .{ .once = &.{ |
| 115364 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115365 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 119809 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 119810 | .{ ._, ._, .mov, .tmp1d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 115366 | 119811 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115367 | 119812 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115368 | 119813 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 115369 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 115370 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 115371 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 115372 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119814 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp1), .tmp5x, ._, ._ }, |
| 119815 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 119816 | .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ }, |
| 119817 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115373 | 119818 | } }, |
| 115374 | 119819 | }, .{ |
| 115375 | 119820 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -115381,11 +119826,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115381 | 119826 | .call_frame = .{ .alignment = .@"16" }, |
| 115382 | 119827 | .extra_temps = .{ |
| 115383 | 119828 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115384 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115385 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115386 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 119829 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119830 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119831 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 115387 | 119832 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneidf" } }, |
| 115388 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119833 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115389 | 119834 | .unused, |
| 115390 | 119835 | .unused, |
| 115391 | 119836 | .unused, |
| ... | ... | @@ -115395,15 +119840,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115395 | 119840 | .dst_temps = .{ .mem, .unused }, |
| 115396 | 119841 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115397 | 119842 | .each = .{ .once = &.{ |
| 115398 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115399 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 119843 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 119844 | .{ ._, ._, .mov, .tmp1d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 115400 | 119845 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115401 | 119846 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115402 | 119847 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 115403 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 115404 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 115405 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 115406 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119848 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp1), .tmp5x, ._, ._ }, |
| 119849 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 119850 | .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ }, |
| 119851 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115407 | 119852 | } }, |
| 115408 | 119853 | }, .{ |
| 115409 | 119854 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -115415,11 +119860,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115415 | 119860 | .call_frame = .{ .alignment = .@"16" }, |
| 115416 | 119861 | .extra_temps = .{ |
| 115417 | 119862 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115418 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 115419 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115420 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 119863 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 119864 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 119865 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 115421 | 119866 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneidf" } }, |
| 115422 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 119867 | .{ .type = .f64, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115423 | 119868 | .unused, |
| 115424 | 119869 | .unused, |
| 115425 | 119870 | .unused, |
| ... | ... | @@ -115429,15 +119874,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115429 | 119874 | .dst_temps = .{ .mem, .unused }, |
| 115430 | 119875 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115431 | 119876 | .each = .{ .once = &.{ |
| 115432 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 115433 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 119877 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 119878 | .{ ._, ._, .mov, .tmp1d, .sia(-8, .dst0, .add_unaligned_size), ._, ._ }, |
| 115434 | 119879 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 115435 | 119880 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115436 | 119881 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 115437 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 115438 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 115439 | | .{ ._, ._, .add, .tmp1p, .si(8), ._, ._ }, |
| 115440 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 119882 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp1), .tmp5x, ._, ._ }, |
| 119883 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 119884 | .{ ._, ._, .sub, .tmp1d, .si(8), ._, ._ }, |
| 119885 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115441 | 119886 | } }, |
| 115442 | 119887 | }, .{ |
| 115443 | 119888 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -115627,6 +120072,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115627 | 120072 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 115628 | 120073 | } }, |
| 115629 | 120074 | }, .{ |
| 120075 | .required_abi = .gnu, |
| 115630 | 120076 | .required_features = .{ .x87, null, null, null }, |
| 115631 | 120077 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 115632 | 120078 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| ... | ... | @@ -115634,10 +120080,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115634 | 120080 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115635 | 120081 | }, |
| 115636 | 120082 | .extra_temps = .{ |
| 120083 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 115637 | 120084 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115638 | | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 115639 | 120085 | .{ .type = .vector_2_f32, .kind = .f32_0_0x1p64_mem }, |
| 115640 | | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 120086 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 115641 | 120087 | .unused, |
| 115642 | 120088 | .unused, |
| 115643 | 120089 | .unused, |
| ... | ... | @@ -115650,18 +120096,56 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115650 | 120096 | .clobbers = .{ .eflags = true }, |
| 115651 | 120097 | .each = .{ .once = &.{ |
| 115652 | 120098 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 115653 | | .{ ._, ._, .lea, .tmp0p, .mem(.tmp2), ._, ._ }, |
| 120099 | .{ ._, ._, .lea, .tmp1p, .mem(.tmp2), ._, ._ }, |
| 120100 | .{ ._, ._, .mov, .tmp3d, .memd(.src0d, 4), ._, ._ }, |
| 120101 | .{ ._, ._r, .sh, .tmp3d, .ui(31), ._, ._ }, |
| 120102 | .{ ._, .f_, .add, .leasi(.tmp1d, .@"4", .tmp3), ._, ._, ._ }, |
| 120103 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 120104 | } }, |
| 120105 | }, .{ |
| 120106 | .required_abi = .msvc, |
| 120107 | .required_features = .{ .x87, null, null, null }, |
| 120108 | .src_constraints = .{ .{ .exact_unsigned_int = 64 }, .any, .any }, |
| 120109 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 120110 | .patterns = &.{ |
| 120111 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120112 | }, |
| 120113 | .extra_temps = .{ |
| 120114 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 120115 | .{ .type = .u1, .kind = .{ .rc = .general_purpose } }, |
| 120116 | .{ .type = .u16, .kind = .mem }, |
| 120117 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 120118 | .{ .type = .vector_2_f32, .kind = .f32_0_0x1p64_mem }, |
| 120119 | .unused, |
| 120120 | .unused, |
| 120121 | .unused, |
| 120122 | .unused, |
| 120123 | .unused, |
| 120124 | .unused, |
| 120125 | }, |
| 120126 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 120127 | .clobbers = .{ .eflags = true }, |
| 120128 | .each = .{ .once = &.{ |
| 120129 | .{ ._, .fi_, .ld, .src0q, ._, ._, ._ }, |
| 115654 | 120130 | .{ ._, ._, .mov, .tmp1d, .memd(.src0d, 4), ._, ._ }, |
| 115655 | 120131 | .{ ._, ._r, .sh, .tmp1d, .ui(31), ._, ._ }, |
| 115656 | | .{ ._, .f_, .add, .leasi(.tmp0d, .@"4", .tmp1), ._, ._, ._ }, |
| 120132 | .{ ._, .fn_cw, .st, .tmp2w, ._, ._, ._ }, |
| 120133 | .{ ._, ._, .movzx, .tmp3d, .memd(.tmp2b, 1), ._, ._ }, |
| 120134 | .{ ._, ._, .@"or", .memd(.tmp2b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 120135 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 120136 | .{ ._, ._, .mov, .memd(.tmp2b, 1), .tmp3b, ._, ._ }, |
| 120137 | .{ ._, ._, .lea, .tmp3p, .mem(.tmp4), ._, ._ }, |
| 120138 | .{ ._, .f_, .add, .leasi(.tmp3d, .@"4", .tmp1), ._, ._, ._ }, |
| 120139 | .{ ._, .f_cw, .ld, .tmp2w, ._, ._, ._ }, |
| 115657 | 120140 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 115658 | 120141 | } }, |
| 115659 | 120142 | }, .{ |
| 115660 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 120143 | .required_cc_abi = .sysv64, |
| 120144 | .required_features = .{ .sse, null, null, null }, |
| 115661 | 120145 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 115662 | 120146 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115663 | 120147 | .patterns = &.{ |
| 115664 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 120148 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 115665 | 120149 | }, |
| 115666 | 120150 | .call_frame = .{ .alignment = .@"16" }, |
| 115667 | 120151 | .extra_temps = .{ |
| ... | ... | @@ -115683,11 +120167,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115683 | 120167 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 115684 | 120168 | } }, |
| 115685 | 120169 | }, .{ |
| 115686 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 120170 | .required_cc_abi = .win64, |
| 120171 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 120172 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 120173 | .patterns = &.{ |
| 120174 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120175 | }, |
| 120176 | .call_frame = .{ .alignment = .@"16" }, |
| 120177 | .extra_temps = .{ |
| 120178 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120179 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 120180 | .{ .type = .usize, .kind = .{ .extern_func = "__floattixf" } }, |
| 120181 | .unused, |
| 120182 | .unused, |
| 120183 | .unused, |
| 120184 | .unused, |
| 120185 | .unused, |
| 120186 | .unused, |
| 120187 | .unused, |
| 120188 | .unused, |
| 120189 | }, |
| 120190 | .dst_temps = .{ .mem, .unused }, |
| 120191 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 120192 | .each = .{ .once = &.{ |
| 120193 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 120194 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 120195 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 120196 | } }, |
| 120197 | }, .{ |
| 120198 | .required_cc_abi = .sysv64, |
| 120199 | .required_features = .{ .sse, null, null, null }, |
| 115687 | 120200 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 115688 | 120201 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115689 | 120202 | .patterns = &.{ |
| 115690 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 120203 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 115691 | 120204 | }, |
| 115692 | 120205 | .call_frame = .{ .alignment = .@"16" }, |
| 115693 | 120206 | .extra_temps = .{ |
| ... | ... | @@ -115709,7 +120222,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115709 | 120222 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 115710 | 120223 | } }, |
| 115711 | 120224 | }, .{ |
| 115712 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 120225 | .required_cc_abi = .win64, |
| 120226 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 120227 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 120228 | .patterns = &.{ |
| 120229 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120230 | }, |
| 120231 | .call_frame = .{ .alignment = .@"16" }, |
| 120232 | .extra_temps = .{ |
| 120233 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120234 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 120235 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntixf" } }, |
| 120236 | .unused, |
| 120237 | .unused, |
| 120238 | .unused, |
| 120239 | .unused, |
| 120240 | .unused, |
| 120241 | .unused, |
| 120242 | .unused, |
| 120243 | .unused, |
| 120244 | }, |
| 120245 | .dst_temps = .{ .mem, .unused }, |
| 120246 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 120247 | .each = .{ .once = &.{ |
| 120248 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 120249 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 120250 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 120251 | } }, |
| 120252 | }, .{ |
| 120253 | .required_cc_abi = .sysv64, |
| 120254 | .required_features = .{ .sse, null, null, null }, |
| 115713 | 120255 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115714 | 120256 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115715 | 120257 | .patterns = &.{ |
| ... | ... | @@ -115717,8 +120259,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115717 | 120259 | }, |
| 115718 | 120260 | .call_frame = .{ .alignment = .@"16" }, |
| 115719 | 120261 | .extra_temps = .{ |
| 115720 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115721 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 120262 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120263 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 115722 | 120264 | .{ .type = .usize, .kind = .{ .extern_func = "__floateixf" } }, |
| 115723 | 120265 | .unused, |
| 115724 | 120266 | .unused, |
| ... | ... | @@ -115737,7 +120279,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115737 | 120279 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 115738 | 120280 | } }, |
| 115739 | 120281 | }, .{ |
| 115740 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 120282 | .required_cc_abi = .win64, |
| 120283 | .required_features = .{ .sse, null, null, null }, |
| 120284 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 120285 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 120286 | .patterns = &.{ |
| 120287 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120288 | }, |
| 120289 | .call_frame = .{ .alignment = .@"16" }, |
| 120290 | .extra_temps = .{ |
| 120291 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120292 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 120293 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 120294 | .{ .type = .usize, .kind = .{ .extern_func = "__floateixf" } }, |
| 120295 | .unused, |
| 120296 | .unused, |
| 120297 | .unused, |
| 120298 | .unused, |
| 120299 | .unused, |
| 120300 | .unused, |
| 120301 | .unused, |
| 120302 | }, |
| 120303 | .dst_temps = .{ .mem, .unused }, |
| 120304 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 120305 | .each = .{ .once = &.{ |
| 120306 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 120307 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 120308 | .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 120309 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 120310 | } }, |
| 120311 | }, .{ |
| 120312 | .required_cc_abi = .sysv64, |
| 120313 | .required_features = .{ .sse, null, null, null }, |
| 115741 | 120314 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 115742 | 120315 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 115743 | 120316 | .patterns = &.{ |
| ... | ... | @@ -115745,8 +120318,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115745 | 120318 | }, |
| 115746 | 120319 | .call_frame = .{ .alignment = .@"16" }, |
| 115747 | 120320 | .extra_temps = .{ |
| 115748 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 115749 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 120321 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120322 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 115750 | 120323 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneixf" } }, |
| 115751 | 120324 | .unused, |
| 115752 | 120325 | .unused, |
| ... | ... | @@ -115764,6 +120337,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115764 | 120337 | .{ ._, ._, .mov, .tmp1d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 115765 | 120338 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 115766 | 120339 | } }, |
| 120340 | }, .{ |
| 120341 | .required_cc_abi = .win64, |
| 120342 | .required_features = .{ .sse, null, null, null }, |
| 120343 | .src_constraints = .{ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 120344 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 120345 | .patterns = &.{ |
| 120346 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120347 | }, |
| 120348 | .call_frame = .{ .alignment = .@"16" }, |
| 120349 | .extra_temps = .{ |
| 120350 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120351 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 120352 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 120353 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneixf" } }, |
| 120354 | .unused, |
| 120355 | .unused, |
| 120356 | .unused, |
| 120357 | .unused, |
| 120358 | .unused, |
| 120359 | .unused, |
| 120360 | .unused, |
| 120361 | }, |
| 120362 | .dst_temps = .{ .mem, .unused }, |
| 120363 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 120364 | .each = .{ .once = &.{ |
| 120365 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 120366 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 120367 | .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 120368 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 120369 | } }, |
| 115767 | 120370 | }, .{ |
| 115768 | 120371 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 115769 | 120372 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| ... | ... | @@ -115772,7 +120375,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115772 | 120375 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115773 | 120376 | }, |
| 115774 | 120377 | .extra_temps = .{ |
| 115775 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 120378 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115776 | 120379 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115777 | 120380 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 115778 | 120381 | .{ .type = .i16, .kind = .mem }, |
| ... | ... | @@ -115787,15 +120390,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115787 | 120390 | .dst_temps = .{ .mem, .unused }, |
| 115788 | 120391 | .clobbers = .{ .eflags = true }, |
| 115789 | 120392 | .each = .{ .once = &.{ |
| 115790 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115791 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115792 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120393 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120394 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120395 | .{ .@"0:", ._, .movsx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 115793 | 120396 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 115794 | 120397 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 115795 | 120398 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 115796 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115797 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 115798 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 120399 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120400 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 120401 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115799 | 120402 | } }, |
| 115800 | 120403 | }, .{ |
| 115801 | 120404 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -115805,7 +120408,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115805 | 120408 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115806 | 120409 | }, |
| 115807 | 120410 | .extra_temps = .{ |
| 115808 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 120411 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115809 | 120412 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115810 | 120413 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 115811 | 120414 | .{ .type = .i16, .kind = .mem }, |
| ... | ... | @@ -115820,15 +120423,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115820 | 120423 | .dst_temps = .{ .mem, .unused }, |
| 115821 | 120424 | .clobbers = .{ .eflags = true }, |
| 115822 | 120425 | .each = .{ .once = &.{ |
| 115823 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115824 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115825 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120426 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120427 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120428 | .{ .@"0:", ._, .movsx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 115826 | 120429 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 115827 | 120430 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 115828 | 120431 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 115829 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115830 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 115831 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 120432 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120433 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 120434 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 115832 | 120435 | } }, |
| 115833 | 120436 | }, .{ |
| 115834 | 120437 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| ... | ... | @@ -115838,7 +120441,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115838 | 120441 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115839 | 120442 | }, |
| 115840 | 120443 | .extra_temps = .{ |
| 115841 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 120444 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115842 | 120445 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115843 | 120446 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 115844 | 120447 | .{ .type = .i16, .kind = .mem }, |
| ... | ... | @@ -115853,15 +120456,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115853 | 120456 | .dst_temps = .{ .mem, .unused }, |
| 115854 | 120457 | .clobbers = .{ .eflags = true }, |
| 115855 | 120458 | .each = .{ .once = &.{ |
| 115856 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115857 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115858 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120459 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120460 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120461 | .{ .@"0:", ._, .movzx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 115859 | 120462 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 115860 | 120463 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 115861 | 120464 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 115862 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115863 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 115864 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 120465 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120466 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 120467 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115865 | 120468 | } }, |
| 115866 | 120469 | }, .{ |
| 115867 | 120470 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -115871,7 +120474,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115871 | 120474 | .{ .src = .{ .to_mem, .none, .none } }, |
| 115872 | 120475 | }, |
| 115873 | 120476 | .extra_temps = .{ |
| 115874 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 120477 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115875 | 120478 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115876 | 120479 | .{ .type = .i8, .kind = .{ .rc = .general_purpose } }, |
| 115877 | 120480 | .{ .type = .i16, .kind = .mem }, |
| ... | ... | @@ -115886,17 +120489,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115886 | 120489 | .dst_temps = .{ .mem, .unused }, |
| 115887 | 120490 | .clobbers = .{ .eflags = true }, |
| 115888 | 120491 | .each = .{ .once = &.{ |
| 115889 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115890 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115891 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120492 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120493 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120494 | .{ .@"0:", ._, .movzx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 115892 | 120495 | .{ ._, ._, .mov, .tmp3w, .tmp2w, ._, ._ }, |
| 115893 | 120496 | .{ ._, .fi_, .ld, .tmp3w, ._, ._, ._ }, |
| 115894 | 120497 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 115895 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115896 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 115897 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 120498 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120499 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 120500 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 115898 | 120501 | } }, |
| 115899 | 120502 | }, .{ |
| 120503 | .required_cc_abi = .sysv64, |
| 115900 | 120504 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 115901 | 120505 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115902 | 120506 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -115905,9 +120509,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115905 | 120509 | }, |
| 115906 | 120510 | .call_frame = .{ .alignment = .@"16" }, |
| 115907 | 120511 | .extra_temps = .{ |
| 115908 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 120512 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115909 | 120513 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115910 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 120514 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115911 | 120515 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsixf" } }, |
| 115912 | 120516 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 115913 | 120517 | .unused, |
| ... | ... | @@ -115920,17 +120524,52 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115920 | 120524 | .dst_temps = .{ .mem, .unused }, |
| 115921 | 120525 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115922 | 120526 | .each = .{ .once = &.{ |
| 115923 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115924 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115925 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120527 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120528 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120529 | .{ .@"0:", ._, .movsx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 115926 | 120530 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115927 | 120531 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115928 | 120532 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 115929 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115930 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 115931 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 120533 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120534 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 120535 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 115932 | 120536 | } }, |
| 115933 | 120537 | }, .{ |
| 120538 | .required_cc_abi = .win64, |
| 120539 | .required_features = .{ .slow_incdec, null, null, null }, |
| 120540 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 120541 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 120542 | .patterns = &.{ |
| 120543 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120544 | }, |
| 120545 | .call_frame = .{ .alignment = .@"16" }, |
| 120546 | .extra_temps = .{ |
| 120547 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 120548 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 120549 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120550 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 120551 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsixf" } }, |
| 120552 | .unused, |
| 120553 | .unused, |
| 120554 | .unused, |
| 120555 | .unused, |
| 120556 | .unused, |
| 120557 | .unused, |
| 120558 | }, |
| 120559 | .dst_temps = .{ .mem, .unused }, |
| 120560 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 120561 | .each = .{ .once = &.{ |
| 120562 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120563 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120564 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 120565 | .{ ._, ._, .movsx, .tmp3d, .memi(.src0b, .tmp0), ._, ._ }, |
| 120566 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 120567 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120568 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 120569 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 120570 | } }, |
| 120571 | }, .{ |
| 120572 | .required_cc_abi = .sysv64, |
| 115934 | 120573 | .required_features = .{ .x87, null, null, null }, |
| 115935 | 120574 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115936 | 120575 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -115939,9 +120578,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115939 | 120578 | }, |
| 115940 | 120579 | .call_frame = .{ .alignment = .@"16" }, |
| 115941 | 120580 | .extra_temps = .{ |
| 115942 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 120581 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115943 | 120582 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115944 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 120583 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115945 | 120584 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsixf" } }, |
| 115946 | 120585 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 115947 | 120586 | .unused, |
| ... | ... | @@ -115954,17 +120593,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115954 | 120593 | .dst_temps = .{ .mem, .unused }, |
| 115955 | 120594 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115956 | 120595 | .each = .{ .once = &.{ |
| 115957 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115958 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115959 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120596 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120597 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120598 | .{ .@"0:", ._, .movsx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 115960 | 120599 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115961 | 120600 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115962 | 120601 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 115963 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115964 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 115965 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 120602 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120603 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 120604 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 120605 | } }, |
| 120606 | }, .{ |
| 120607 | .required_cc_abi = .win64, |
| 120608 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 120609 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 120610 | .patterns = &.{ |
| 120611 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120612 | }, |
| 120613 | .call_frame = .{ .alignment = .@"16" }, |
| 120614 | .extra_temps = .{ |
| 120615 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 120616 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 120617 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120618 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 120619 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsixf" } }, |
| 120620 | .unused, |
| 120621 | .unused, |
| 120622 | .unused, |
| 120623 | .unused, |
| 120624 | .unused, |
| 120625 | .unused, |
| 120626 | }, |
| 120627 | .dst_temps = .{ .mem, .unused }, |
| 120628 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 120629 | .each = .{ .once = &.{ |
| 120630 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120631 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120632 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 120633 | .{ ._, ._, .movsx, .tmp3d, .memi(.src0b, .tmp0), ._, ._ }, |
| 120634 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 120635 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120636 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 120637 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 115966 | 120638 | } }, |
| 115967 | 120639 | }, .{ |
| 120640 | .required_cc_abi = .sysv64, |
| 115968 | 120641 | .required_features = .{ .x87, .slow_incdec, null, null }, |
| 115969 | 120642 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 115970 | 120643 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -115973,9 +120646,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115973 | 120646 | }, |
| 115974 | 120647 | .call_frame = .{ .alignment = .@"16" }, |
| 115975 | 120648 | .extra_temps = .{ |
| 115976 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 120649 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 115977 | 120650 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 115978 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 120651 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 115979 | 120652 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsixf" } }, |
| 115980 | 120653 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 115981 | 120654 | .unused, |
| ... | ... | @@ -115988,17 +120661,52 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 115988 | 120661 | .dst_temps = .{ .mem, .unused }, |
| 115989 | 120662 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 115990 | 120663 | .each = .{ .once = &.{ |
| 115991 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 115992 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 115993 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120664 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120665 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120666 | .{ .@"0:", ._, .movzx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 115994 | 120667 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 115995 | 120668 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 115996 | 120669 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 115997 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 115998 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 115999 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 120670 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120671 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 120672 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 120673 | } }, |
| 120674 | }, .{ |
| 120675 | .required_cc_abi = .win64, |
| 120676 | .required_features = .{ .slow_incdec, null, null, null }, |
| 120677 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 120678 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 120679 | .patterns = &.{ |
| 120680 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120681 | }, |
| 120682 | .call_frame = .{ .alignment = .@"16" }, |
| 120683 | .extra_temps = .{ |
| 120684 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 120685 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 120686 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120687 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 120688 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsixf" } }, |
| 120689 | .unused, |
| 120690 | .unused, |
| 120691 | .unused, |
| 120692 | .unused, |
| 120693 | .unused, |
| 120694 | .unused, |
| 120695 | }, |
| 120696 | .dst_temps = .{ .mem, .unused }, |
| 120697 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 120698 | .each = .{ .once = &.{ |
| 120699 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120700 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120701 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 120702 | .{ ._, ._, .movzx, .tmp3d, .memi(.src0b, .tmp0), ._, ._ }, |
| 120703 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 120704 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120705 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 120706 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116000 | 120707 | } }, |
| 116001 | 120708 | }, .{ |
| 120709 | .required_cc_abi = .sysv64, |
| 116002 | 120710 | .required_features = .{ .x87, null, null, null }, |
| 116003 | 120711 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 116004 | 120712 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -116007,9 +120715,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116007 | 120715 | }, |
| 116008 | 120716 | .call_frame = .{ .alignment = .@"16" }, |
| 116009 | 120717 | .extra_temps = .{ |
| 116010 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 120718 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116011 | 120719 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116012 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 120720 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116013 | 120721 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsixf" } }, |
| 116014 | 120722 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116015 | 120723 | .unused, |
| ... | ... | @@ -116022,15 +120730,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116022 | 120730 | .dst_temps = .{ .mem, .unused }, |
| 116023 | 120731 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116024 | 120732 | .each = .{ .once = &.{ |
| 116025 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116026 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 116027 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120733 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120734 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120735 | .{ .@"0:", ._, .movzx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 116028 | 120736 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116029 | 120737 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116030 | 120738 | .{ ._, .f_p, .st, .lea(.tmp1t), ._, ._, ._ }, |
| 116031 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 116032 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 116033 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 120739 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120740 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 120741 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 120742 | } }, |
| 120743 | }, .{ |
| 120744 | .required_cc_abi = .win64, |
| 120745 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, .any, .any }, |
| 120746 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 120747 | .patterns = &.{ |
| 120748 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120749 | }, |
| 120750 | .call_frame = .{ .alignment = .@"16" }, |
| 120751 | .extra_temps = .{ |
| 120752 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 120753 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 120754 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120755 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 120756 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsixf" } }, |
| 120757 | .unused, |
| 120758 | .unused, |
| 120759 | .unused, |
| 120760 | .unused, |
| 120761 | .unused, |
| 120762 | .unused, |
| 120763 | }, |
| 120764 | .dst_temps = .{ .mem, .unused }, |
| 120765 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 120766 | .each = .{ .once = &.{ |
| 120767 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 120768 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 120769 | .{ .@"0:", ._, .mov, .tmp2p, .tmp1p, ._, ._ }, |
| 120770 | .{ ._, ._, .movzx, .tmp3d, .memi(.src0b, .tmp0), ._, ._ }, |
| 120771 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 120772 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 120773 | .{ ._, ._c, .de, .tmp0d, .si(1), ._, ._ }, |
| 120774 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 116034 | 120775 | } }, |
| 116035 | 120776 | }, .{ |
| 116036 | 120777 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -116040,7 +120781,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116040 | 120781 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116041 | 120782 | }, |
| 116042 | 120783 | .extra_temps = .{ |
| 116043 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 120784 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116044 | 120785 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116045 | 120786 | .unused, |
| 116046 | 120787 | .unused, |
| ... | ... | @@ -116055,13 +120796,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116055 | 120796 | .dst_temps = .{ .mem, .unused }, |
| 116056 | 120797 | .clobbers = .{ .eflags = true }, |
| 116057 | 120798 | .each = .{ .once = &.{ |
| 116058 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116059 | | .{ .@"0:", .fi_, .ld, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116060 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116061 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 116062 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 120799 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 120800 | .{ .@"0:", .fi_, .ld, .memi(.src0w, .tmp0), ._, ._, ._ }, |
| 120801 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"8", .tmp0), ._, ._, ._ }, |
| 120802 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 120803 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116063 | 120804 | } }, |
| 116064 | 120805 | }, .{ |
| 120806 | .required_cc_abi = .sysv64, |
| 116065 | 120807 | .required_features = .{ .x87, null, null, null }, |
| 116066 | 120808 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 116067 | 120809 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -116070,8 +120812,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116070 | 120812 | }, |
| 116071 | 120813 | .call_frame = .{ .alignment = .@"16" }, |
| 116072 | 120814 | .extra_temps = .{ |
| 116073 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116074 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 120815 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 120816 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116075 | 120817 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsixf" } }, |
| 116076 | 120818 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116077 | 120819 | .unused, |
| ... | ... | @@ -116085,15 +120827,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116085 | 120827 | .dst_temps = .{ .mem, .unused }, |
| 116086 | 120828 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116087 | 120829 | .each = .{ .once = &.{ |
| 116088 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116089 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120830 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 120831 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 116090 | 120832 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116091 | 120833 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116092 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116093 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 116094 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 120834 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"8", .tmp0), ._, ._, ._ }, |
| 120835 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 120836 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116095 | 120837 | } }, |
| 116096 | 120838 | }, .{ |
| 120839 | .required_cc_abi = .win64, |
| 120840 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 120841 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 120842 | .patterns = &.{ |
| 120843 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120844 | }, |
| 120845 | .call_frame = .{ .alignment = .@"16" }, |
| 120846 | .extra_temps = .{ |
| 120847 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 120848 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120849 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 120850 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsixf" } }, |
| 120851 | .unused, |
| 120852 | .unused, |
| 120853 | .unused, |
| 120854 | .unused, |
| 120855 | .unused, |
| 120856 | .unused, |
| 120857 | .unused, |
| 120858 | }, |
| 120859 | .dst_temps = .{ .mem, .unused }, |
| 120860 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 120861 | .each = .{ .once = &.{ |
| 120862 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 120863 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.dst0, .@"8", .tmp0), ._, ._ }, |
| 120864 | .{ ._, ._, .movsx, .tmp2d, .memi(.src0w, .tmp0), ._, ._ }, |
| 120865 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 120866 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 120867 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 120868 | } }, |
| 120869 | }, .{ |
| 120870 | .required_cc_abi = .sysv64, |
| 116097 | 120871 | .required_features = .{ .x87, null, null, null }, |
| 116098 | 120872 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 116099 | 120873 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -116102,8 +120876,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116102 | 120876 | }, |
| 116103 | 120877 | .call_frame = .{ .alignment = .@"16" }, |
| 116104 | 120878 | .extra_temps = .{ |
| 116105 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116106 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 120879 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 120880 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116107 | 120881 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsixf" } }, |
| 116108 | 120882 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116109 | 120883 | .unused, |
| ... | ... | @@ -116117,13 +120891,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116117 | 120891 | .dst_temps = .{ .mem, .unused }, |
| 116118 | 120892 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116119 | 120893 | .each = .{ .once = &.{ |
| 116120 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116121 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120894 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 120895 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 116122 | 120896 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116123 | 120897 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116124 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"8", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116125 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 116126 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 120898 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"8", .tmp0), ._, ._, ._ }, |
| 120899 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 120900 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 120901 | } }, |
| 120902 | }, .{ |
| 120903 | .required_cc_abi = .win64, |
| 120904 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, .any, .any }, |
| 120905 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 120906 | .patterns = &.{ |
| 120907 | .{ .src = .{ .to_mem, .none, .none } }, |
| 120908 | }, |
| 120909 | .call_frame = .{ .alignment = .@"16" }, |
| 120910 | .extra_temps = .{ |
| 120911 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 120912 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 120913 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 120914 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsixf" } }, |
| 120915 | .unused, |
| 120916 | .unused, |
| 120917 | .unused, |
| 120918 | .unused, |
| 120919 | .unused, |
| 120920 | .unused, |
| 120921 | .unused, |
| 120922 | }, |
| 120923 | .dst_temps = .{ .mem, .unused }, |
| 120924 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 120925 | .each = .{ .once = &.{ |
| 120926 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 120927 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.dst0, .@"8", .tmp0), ._, ._ }, |
| 120928 | .{ ._, ._, .movzx, .tmp2d, .memi(.src0w, .tmp0), ._, ._ }, |
| 120929 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 120930 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 120931 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116127 | 120932 | } }, |
| 116128 | 120933 | }, .{ |
| 116129 | 120934 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -116133,7 +120938,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116133 | 120938 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116134 | 120939 | }, |
| 116135 | 120940 | .extra_temps = .{ |
| 116136 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 120941 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116137 | 120942 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116138 | 120943 | .unused, |
| 116139 | 120944 | .unused, |
| ... | ... | @@ -116148,13 +120953,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116148 | 120953 | .dst_temps = .{ .mem, .unused }, |
| 116149 | 120954 | .clobbers = .{ .eflags = true }, |
| 116150 | 120955 | .each = .{ .once = &.{ |
| 116151 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116152 | | .{ .@"0:", .fi_, .ld, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116153 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116154 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116155 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 120956 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 120957 | .{ .@"0:", .fi_, .ld, .memi(.src0d, .tmp0), ._, ._, ._ }, |
| 120958 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"4", .tmp0), ._, ._, ._ }, |
| 120959 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 120960 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116156 | 120961 | } }, |
| 116157 | 120962 | }, .{ |
| 120963 | .required_cc_abi = .sysv64, |
| 116158 | 120964 | .required_features = .{ .x87, null, null, null }, |
| 116159 | 120965 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116160 | 120966 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -116163,8 +120969,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116163 | 120969 | }, |
| 116164 | 120970 | .call_frame = .{ .alignment = .@"16" }, |
| 116165 | 120971 | .extra_temps = .{ |
| 116166 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116167 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 120972 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 120973 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116168 | 120974 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsixf" } }, |
| 116169 | 120975 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116170 | 120976 | .unused, |
| ... | ... | @@ -116178,15 +120984,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116178 | 120984 | .dst_temps = .{ .mem, .unused }, |
| 116179 | 120985 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116180 | 120986 | .each = .{ .once = &.{ |
| 116181 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116182 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 120987 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 120988 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 116183 | 120989 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116184 | 120990 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116185 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116186 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116187 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 120991 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"4", .tmp0), ._, ._, ._ }, |
| 120992 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 120993 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 120994 | } }, |
| 120995 | }, .{ |
| 120996 | .required_cc_abi = .win64, |
| 120997 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 120998 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 120999 | .patterns = &.{ |
| 121000 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121001 | }, |
| 121002 | .call_frame = .{ .alignment = .@"16" }, |
| 121003 | .extra_temps = .{ |
| 121004 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121005 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121006 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 121007 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsixf" } }, |
| 121008 | .unused, |
| 121009 | .unused, |
| 121010 | .unused, |
| 121011 | .unused, |
| 121012 | .unused, |
| 121013 | .unused, |
| 121014 | .unused, |
| 121015 | }, |
| 121016 | .dst_temps = .{ .mem, .unused }, |
| 121017 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 121018 | .each = .{ .once = &.{ |
| 121019 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 121020 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.dst0, .@"4", .tmp0), ._, ._ }, |
| 121021 | .{ ._, ._, .mov, .tmp2d, .memi(.src0d, .tmp0), ._, ._ }, |
| 121022 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 121023 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 121024 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116188 | 121025 | } }, |
| 116189 | 121026 | }, .{ |
| 121027 | .required_cc_abi = .sysv64, |
| 116190 | 121028 | .required_features = .{ .x87, null, null, null }, |
| 116191 | 121029 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116192 | 121030 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -116195,8 +121033,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116195 | 121033 | }, |
| 116196 | 121034 | .call_frame = .{ .alignment = .@"16" }, |
| 116197 | 121035 | .extra_temps = .{ |
| 116198 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116199 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 121036 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121037 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116200 | 121038 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsixf" } }, |
| 116201 | 121039 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116202 | 121040 | .unused, |
| ... | ... | @@ -116210,13 +121048,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116210 | 121048 | .dst_temps = .{ .mem, .unused }, |
| 116211 | 121049 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116212 | 121050 | .each = .{ .once = &.{ |
| 116213 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116214 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 121051 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 121052 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 116215 | 121053 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116216 | 121054 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116217 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"4", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116218 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 116219 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 121055 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"4", .tmp0), ._, ._, ._ }, |
| 121056 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 121057 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 121058 | } }, |
| 121059 | }, .{ |
| 121060 | .required_cc_abi = .win64, |
| 121061 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 121062 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 121063 | .patterns = &.{ |
| 121064 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121065 | }, |
| 121066 | .call_frame = .{ .alignment = .@"16" }, |
| 121067 | .extra_temps = .{ |
| 121068 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121069 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121070 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 121071 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsixf" } }, |
| 121072 | .unused, |
| 121073 | .unused, |
| 121074 | .unused, |
| 121075 | .unused, |
| 121076 | .unused, |
| 121077 | .unused, |
| 121078 | .unused, |
| 121079 | }, |
| 121080 | .dst_temps = .{ .mem, .unused }, |
| 121081 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 121082 | .each = .{ .once = &.{ |
| 121083 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 121084 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.dst0, .@"4", .tmp0), ._, ._ }, |
| 121085 | .{ ._, ._, .mov, .tmp2d, .memi(.src0d, .tmp0), ._, ._ }, |
| 121086 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 121087 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 121088 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116220 | 121089 | } }, |
| 116221 | 121090 | }, .{ |
| 116222 | 121091 | .required_features = .{ .x87, null, null, null }, |
| ... | ... | @@ -116226,7 +121095,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116226 | 121095 | .{ .src = .{ .to_mem, .none, .none } }, |
| 116227 | 121096 | }, |
| 116228 | 121097 | .extra_temps = .{ |
| 116229 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 121098 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116230 | 121099 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116231 | 121100 | .unused, |
| 116232 | 121101 | .unused, |
| ... | ... | @@ -116241,14 +121110,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116241 | 121110 | .dst_temps = .{ .mem, .unused }, |
| 116242 | 121111 | .clobbers = .{ .eflags = true }, |
| 116243 | 121112 | .each = .{ .once = &.{ |
| 116244 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116245 | | .{ .@"0:", .fi_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116246 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116247 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116248 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 121113 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 121114 | .{ .@"0:", .fi_, .ld, .memi(.src0q, .tmp0), ._, ._, ._ }, |
| 121115 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"2", .tmp0), ._, ._, ._ }, |
| 121116 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 121117 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116249 | 121118 | } }, |
| 116250 | 121119 | }, .{ |
| 116251 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 121120 | .required_cc_abi = .sysv64, |
| 121121 | .required_features = .{ .x87, null, null, null }, |
| 116252 | 121122 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116253 | 121123 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116254 | 121124 | .patterns = &.{ |
| ... | ... | @@ -116256,8 +121126,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116256 | 121126 | }, |
| 116257 | 121127 | .call_frame = .{ .alignment = .@"16" }, |
| 116258 | 121128 | .extra_temps = .{ |
| 116259 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116260 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 121129 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121130 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116261 | 121131 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdixf" } }, |
| 116262 | 121132 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116263 | 121133 | .unused, |
| ... | ... | @@ -116271,16 +121141,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116271 | 121141 | .dst_temps = .{ .mem, .unused }, |
| 116272 | 121142 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116273 | 121143 | .each = .{ .once = &.{ |
| 116274 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116275 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 121144 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 121145 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 116276 | 121146 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116277 | 121147 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116278 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116279 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116280 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 121148 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"2", .tmp0), ._, ._, ._ }, |
| 121149 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 121150 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116281 | 121151 | } }, |
| 116282 | 121152 | }, .{ |
| 116283 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 121153 | .required_cc_abi = .win64, |
| 121154 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 121155 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 121156 | .patterns = &.{ |
| 121157 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121158 | }, |
| 121159 | .call_frame = .{ .alignment = .@"16" }, |
| 121160 | .extra_temps = .{ |
| 121161 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121162 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121163 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 121164 | .{ .type = .usize, .kind = .{ .extern_func = "__floatdixf" } }, |
| 121165 | .unused, |
| 121166 | .unused, |
| 121167 | .unused, |
| 121168 | .unused, |
| 121169 | .unused, |
| 121170 | .unused, |
| 121171 | .unused, |
| 121172 | }, |
| 121173 | .dst_temps = .{ .mem, .unused }, |
| 121174 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 121175 | .each = .{ .once = &.{ |
| 121176 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 121177 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.dst0, .@"2", .tmp0), ._, ._ }, |
| 121178 | .{ ._, ._, .mov, .tmp2q, .memi(.src0q, .tmp0), ._, ._ }, |
| 121179 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 121180 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 121181 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 121182 | } }, |
| 121183 | }, .{ |
| 121184 | .required_cc_abi = .sysv64, |
| 121185 | .required_features = .{ .x87, null, null, null }, |
| 116284 | 121186 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 116285 | 121187 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116286 | 121188 | .patterns = &.{ |
| ... | ... | @@ -116288,8 +121190,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116288 | 121190 | }, |
| 116289 | 121191 | .call_frame = .{ .alignment = .@"16" }, |
| 116290 | 121192 | .extra_temps = .{ |
| 116291 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116292 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 121193 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121194 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116293 | 121195 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundixf" } }, |
| 116294 | 121196 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116295 | 121197 | .unused, |
| ... | ... | @@ -116303,16 +121205,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116303 | 121205 | .dst_temps = .{ .mem, .unused }, |
| 116304 | 121206 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116305 | 121207 | .each = .{ .once = &.{ |
| 116306 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116307 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 121208 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 121209 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 116308 | 121210 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116309 | 121211 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116310 | | .{ ._, .f_p, .st, .memsia(.dst0t, .@"2", .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116311 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 116312 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 121212 | .{ ._, .f_p, .st, .memsi(.dst0t, .@"2", .tmp0), ._, ._, ._ }, |
| 121213 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 121214 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116313 | 121215 | } }, |
| 116314 | 121216 | }, .{ |
| 116315 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 121217 | .required_cc_abi = .win64, |
| 121218 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } }, .any, .any }, |
| 121219 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 121220 | .patterns = &.{ |
| 121221 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121222 | }, |
| 121223 | .call_frame = .{ .alignment = .@"16" }, |
| 121224 | .extra_temps = .{ |
| 121225 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121226 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121227 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 121228 | .{ .type = .usize, .kind = .{ .extern_func = "__floatundixf" } }, |
| 121229 | .unused, |
| 121230 | .unused, |
| 121231 | .unused, |
| 121232 | .unused, |
| 121233 | .unused, |
| 121234 | .unused, |
| 121235 | .unused, |
| 121236 | }, |
| 121237 | .dst_temps = .{ .mem, .unused }, |
| 121238 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 121239 | .each = .{ .once = &.{ |
| 121240 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 121241 | .{ .@"0:", ._, .lea, .tmp1p, .memsi(.dst0, .@"2", .tmp0), ._, ._ }, |
| 121242 | .{ ._, ._, .mov, .tmp2q, .memi(.src0q, .tmp0), ._, ._ }, |
| 121243 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 121244 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 121245 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 121246 | } }, |
| 121247 | }, .{ |
| 121248 | .required_cc_abi = .sysv64, |
| 121249 | .required_features = .{ .x87, null, null, null }, |
| 116316 | 121250 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116317 | 121251 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116318 | 121252 | .patterns = &.{ |
| ... | ... | @@ -116320,9 +121254,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116320 | 121254 | }, |
| 116321 | 121255 | .call_frame = .{ .alignment = .@"16" }, |
| 116322 | 121256 | .extra_temps = .{ |
| 116323 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116324 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116325 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 121257 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121258 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116326 | 121259 | .{ .type = .usize, .kind = .{ .extern_func = "__floattixf" } }, |
| 116327 | 121260 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116328 | 121261 | .unused, |
| ... | ... | @@ -116331,21 +121264,54 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116331 | 121264 | .unused, |
| 116332 | 121265 | .unused, |
| 116333 | 121266 | .unused, |
| 121267 | .unused, |
| 116334 | 121268 | }, |
| 116335 | 121269 | .dst_temps = .{ .mem, .unused }, |
| 116336 | 121270 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116337 | 121271 | .each = .{ .once = &.{ |
| 116338 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116339 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116340 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116341 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 121272 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 121273 | .{ .@"0:", ._, .mov, .tmp1q0, .memi(.src0q, .tmp0), ._, ._ }, |
| 121274 | .{ ._, ._, .mov, .tmp1q1, .memid(.src0q, .tmp0, 8), ._, ._ }, |
| 121275 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116342 | 121276 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116343 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116344 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 116345 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 121277 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp0), ._, ._, ._ }, |
| 121278 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 121279 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116346 | 121280 | } }, |
| 116347 | 121281 | }, .{ |
| 116348 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 121282 | .required_cc_abi = .win64, |
| 121283 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 121284 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 121285 | .patterns = &.{ |
| 121286 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121287 | }, |
| 121288 | .call_frame = .{ .alignment = .@"16" }, |
| 121289 | .extra_temps = .{ |
| 121290 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121291 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121292 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 121293 | .{ .type = .usize, .kind = .{ .extern_func = "__floattixf" } }, |
| 121294 | .unused, |
| 121295 | .unused, |
| 121296 | .unused, |
| 121297 | .unused, |
| 121298 | .unused, |
| 121299 | .unused, |
| 121300 | .unused, |
| 121301 | }, |
| 121302 | .dst_temps = .{ .mem, .unused }, |
| 121303 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 121304 | .each = .{ .once = &.{ |
| 121305 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 121306 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.dst0, .tmp0), ._, ._ }, |
| 121307 | .{ ._, ._, .lea, .tmp2p, .memi(.src0, .tmp0), ._, ._ }, |
| 121308 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 121309 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 121310 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 121311 | } }, |
| 121312 | }, .{ |
| 121313 | .required_cc_abi = .sysv64, |
| 121314 | .required_features = .{ .x87, null, null, null }, |
| 116349 | 121315 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 116350 | 121316 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116351 | 121317 | .patterns = &.{ |
| ... | ... | @@ -116353,9 +121319,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116353 | 121319 | }, |
| 116354 | 121320 | .call_frame = .{ .alignment = .@"16" }, |
| 116355 | 121321 | .extra_temps = .{ |
| 116356 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116357 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 116358 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 121322 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121323 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116359 | 121324 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntixf" } }, |
| 116360 | 121325 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116361 | 121326 | .unused, |
| ... | ... | @@ -116364,21 +121329,54 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116364 | 121329 | .unused, |
| 116365 | 121330 | .unused, |
| 116366 | 121331 | .unused, |
| 121332 | .unused, |
| 116367 | 121333 | }, |
| 116368 | 121334 | .dst_temps = .{ .mem, .unused }, |
| 116369 | 121335 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116370 | 121336 | .each = .{ .once = &.{ |
| 116371 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116372 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 116373 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 116374 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 121337 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 121338 | .{ .@"0:", ._, .mov, .tmp1q0, .memi(.src0q, .tmp0), ._, ._ }, |
| 121339 | .{ ._, ._, .mov, .tmp1q1, .memid(.src0q, .tmp0, 8), ._, ._ }, |
| 121340 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 116375 | 121341 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116376 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 116377 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 116378 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 121342 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp0), ._, ._, ._ }, |
| 121343 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 121344 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116379 | 121345 | } }, |
| 116380 | 121346 | }, .{ |
| 116381 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 121347 | .required_cc_abi = .win64, |
| 121348 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 121349 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 121350 | .patterns = &.{ |
| 121351 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121352 | }, |
| 121353 | .call_frame = .{ .alignment = .@"16" }, |
| 121354 | .extra_temps = .{ |
| 121355 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121356 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121357 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 121358 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntixf" } }, |
| 121359 | .unused, |
| 121360 | .unused, |
| 121361 | .unused, |
| 121362 | .unused, |
| 121363 | .unused, |
| 121364 | .unused, |
| 121365 | .unused, |
| 121366 | }, |
| 121367 | .dst_temps = .{ .mem, .unused }, |
| 121368 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 121369 | .each = .{ .once = &.{ |
| 121370 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 121371 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.dst0, .tmp0), ._, ._ }, |
| 121372 | .{ ._, ._, .lea, .tmp2p, .memi(.src0, .tmp0), ._, ._ }, |
| 121373 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 121374 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 121375 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 121376 | } }, |
| 121377 | }, .{ |
| 121378 | .required_cc_abi = .sysv64, |
| 121379 | .required_features = .{ .x87, null, null, null }, |
| 116382 | 121380 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116383 | 121381 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116384 | 121382 | .patterns = &.{ |
| ... | ... | @@ -116387,9 +121385,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116387 | 121385 | .call_frame = .{ .alignment = .@"16" }, |
| 116388 | 121386 | .extra_temps = .{ |
| 116389 | 121387 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116390 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116391 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116392 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 121388 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121389 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121390 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 116393 | 121391 | .{ .type = .usize, .kind = .{ .extern_func = "__floateixf" } }, |
| 116394 | 121392 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116395 | 121393 | .unused, |
| ... | ... | @@ -116401,19 +121399,54 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116401 | 121399 | .dst_temps = .{ .mem, .unused }, |
| 116402 | 121400 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116403 | 121401 | .each = .{ .once = &.{ |
| 116404 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 116405 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 121402 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 121403 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 116406 | 121404 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 116407 | 121405 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 116408 | 121406 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 116409 | 121407 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116410 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 116411 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 116412 | | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 116413 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 121408 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp1), ._, ._, ._ }, |
| 121409 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 121410 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 121411 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116414 | 121412 | } }, |
| 116415 | 121413 | }, .{ |
| 116416 | | .required_features = .{ .@"64bit", .x87, null, null }, |
| 121414 | .required_cc_abi = .win64, |
| 121415 | .src_constraints = .{ .{ .scalar_remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 121416 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 121417 | .patterns = &.{ |
| 121418 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121419 | }, |
| 121420 | .call_frame = .{ .alignment = .@"16" }, |
| 121421 | .extra_temps = .{ |
| 121422 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 121423 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121424 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121425 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 121426 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 121427 | .{ .type = .usize, .kind = .{ .extern_func = "__floateixf" } }, |
| 121428 | .unused, |
| 121429 | .unused, |
| 121430 | .unused, |
| 121431 | .unused, |
| 121432 | .unused, |
| 121433 | }, |
| 121434 | .dst_temps = .{ .mem, .unused }, |
| 121435 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 121436 | .each = .{ .once = &.{ |
| 121437 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 121438 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 121439 | .{ .@"0:", ._, .lea, .tmp2p, .memi(.dst0, .tmp1), ._, ._ }, |
| 121440 | .{ ._, ._, .mov, .tmp3p, .tmp0p, ._, ._ }, |
| 121441 | .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 121442 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 121443 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 121444 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 121445 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 121446 | } }, |
| 121447 | }, .{ |
| 121448 | .required_cc_abi = .sysv64, |
| 121449 | .required_features = .{ .x87, null, null, null }, |
| 116417 | 121450 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 116418 | 121451 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 116419 | 121452 | .patterns = &.{ |
| ... | ... | @@ -116422,9 +121455,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116422 | 121455 | .call_frame = .{ .alignment = .@"16" }, |
| 116423 | 121456 | .extra_temps = .{ |
| 116424 | 121457 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116425 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 116426 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116427 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 121458 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121459 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121460 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 116428 | 121461 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneixf" } }, |
| 116429 | 121462 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 116430 | 121463 | .unused, |
| ... | ... | @@ -116436,16 +121469,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116436 | 121469 | .dst_temps = .{ .mem, .unused }, |
| 116437 | 121470 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116438 | 121471 | .each = .{ .once = &.{ |
| 116439 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 116440 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 121472 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 121473 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 116441 | 121474 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 116442 | 121475 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 116443 | 121476 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 116444 | 121477 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 116445 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 116446 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 116447 | | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 116448 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 121478 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp1), ._, ._, ._ }, |
| 121479 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 121480 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 121481 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 121482 | } }, |
| 121483 | }, .{ |
| 121484 | .required_cc_abi = .win64, |
| 121485 | .src_constraints = .{ .{ .scalar_remainder_unsigned_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| 121486 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 121487 | .patterns = &.{ |
| 121488 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121489 | }, |
| 121490 | .call_frame = .{ .alignment = .@"16" }, |
| 121491 | .extra_temps = .{ |
| 121492 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 121493 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 121494 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121495 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 121496 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 121497 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneixf" } }, |
| 121498 | .unused, |
| 121499 | .unused, |
| 121500 | .unused, |
| 121501 | .unused, |
| 121502 | .unused, |
| 121503 | }, |
| 121504 | .dst_temps = .{ .mem, .unused }, |
| 121505 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 121506 | .each = .{ .once = &.{ |
| 121507 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 121508 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 121509 | .{ .@"0:", ._, .lea, .tmp2p, .memi(.dst0, .tmp1), ._, ._ }, |
| 121510 | .{ ._, ._, .mov, .tmp3p, .tmp0p, ._, ._ }, |
| 121511 | .{ ._, ._, .mov, .tmp4d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 121512 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 121513 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 121514 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 121515 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116449 | 121516 | } }, |
| 116450 | 121517 | }, .{ |
| 116451 | 121518 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -116457,7 +121524,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116457 | 121524 | }, |
| 116458 | 121525 | .call_frame = .{ .alignment = .@"16" }, |
| 116459 | 121526 | .extra_temps = .{ |
| 116460 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 121527 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116461 | 121528 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 116462 | 121529 | .unused, |
| 116463 | 121530 | .unused, |
| ... | ... | @@ -116469,7 +121536,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116469 | 121536 | .unused, |
| 116470 | 121537 | .unused, |
| 116471 | 121538 | }, |
| 116472 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121539 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116473 | 121540 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116474 | 121541 | .each = .{ .once = &.{ |
| 116475 | 121542 | .{ ._, ._, .movsx, .tmp0d, .src0b, ._, ._ }, |
| ... | ... | @@ -116485,7 +121552,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116485 | 121552 | }, |
| 116486 | 121553 | .call_frame = .{ .alignment = .@"16" }, |
| 116487 | 121554 | .extra_temps = .{ |
| 116488 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 121555 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116489 | 121556 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 116490 | 121557 | .unused, |
| 116491 | 121558 | .unused, |
| ... | ... | @@ -116497,7 +121564,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116497 | 121564 | .unused, |
| 116498 | 121565 | .unused, |
| 116499 | 121566 | }, |
| 116500 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121567 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116501 | 121568 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116502 | 121569 | .each = .{ .once = &.{ |
| 116503 | 121570 | .{ ._, ._, .movzx, .tmp0d, .src0b, ._, ._ }, |
| ... | ... | @@ -116513,7 +121580,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116513 | 121580 | }, |
| 116514 | 121581 | .call_frame = .{ .alignment = .@"16" }, |
| 116515 | 121582 | .extra_temps = .{ |
| 116516 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 121583 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116517 | 121584 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 116518 | 121585 | .unused, |
| 116519 | 121586 | .unused, |
| ... | ... | @@ -116525,7 +121592,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116525 | 121592 | .unused, |
| 116526 | 121593 | .unused, |
| 116527 | 121594 | }, |
| 116528 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121595 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116529 | 121596 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116530 | 121597 | .each = .{ .once = &.{ |
| 116531 | 121598 | .{ ._, ._, .movsx, .tmp0d, .src0w, ._, ._ }, |
| ... | ... | @@ -116541,7 +121608,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116541 | 121608 | }, |
| 116542 | 121609 | .call_frame = .{ .alignment = .@"16" }, |
| 116543 | 121610 | .extra_temps = .{ |
| 116544 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 121611 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116545 | 121612 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 116546 | 121613 | .unused, |
| 116547 | 121614 | .unused, |
| ... | ... | @@ -116553,7 +121620,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116553 | 121620 | .unused, |
| 116554 | 121621 | .unused, |
| 116555 | 121622 | }, |
| 116556 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121623 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116557 | 121624 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116558 | 121625 | .each = .{ .once = &.{ |
| 116559 | 121626 | .{ ._, ._, .movzx, .tmp0d, .src0w, ._, ._ }, |
| ... | ... | @@ -116564,7 +121631,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116564 | 121631 | .src_constraints = .{ .{ .signed_int = .dword }, .any, .any }, |
| 116565 | 121632 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116566 | 121633 | .patterns = &.{ |
| 116567 | | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 121634 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 116568 | 121635 | }, |
| 116569 | 121636 | .call_frame = .{ .alignment = .@"16" }, |
| 116570 | 121637 | .extra_temps = .{ |
| ... | ... | @@ -116580,7 +121647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116580 | 121647 | .unused, |
| 116581 | 121648 | .unused, |
| 116582 | 121649 | }, |
| 116583 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121650 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116584 | 121651 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116585 | 121652 | .each = .{ .once = &.{ |
| 116586 | 121653 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -116590,7 +121657,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116590 | 121657 | .src_constraints = .{ .{ .unsigned_int = .dword }, .any, .any }, |
| 116591 | 121658 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116592 | 121659 | .patterns = &.{ |
| 116593 | | .{ .src = .{ .{ .to_reg = .edi }, .none, .none } }, |
| 121660 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 116594 | 121661 | }, |
| 116595 | 121662 | .call_frame = .{ .alignment = .@"16" }, |
| 116596 | 121663 | .extra_temps = .{ |
| ... | ... | @@ -116606,7 +121673,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116606 | 121673 | .unused, |
| 116607 | 121674 | .unused, |
| 116608 | 121675 | }, |
| 116609 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121676 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116610 | 121677 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116611 | 121678 | .each = .{ .once = &.{ |
| 116612 | 121679 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -116616,7 +121683,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116616 | 121683 | .src_constraints = .{ .{ .signed_int = .qword }, .any, .any }, |
| 116617 | 121684 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116618 | 121685 | .patterns = &.{ |
| 116619 | | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 121686 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 116620 | 121687 | }, |
| 116621 | 121688 | .call_frame = .{ .alignment = .@"16" }, |
| 116622 | 121689 | .extra_temps = .{ |
| ... | ... | @@ -116632,7 +121699,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116632 | 121699 | .unused, |
| 116633 | 121700 | .unused, |
| 116634 | 121701 | }, |
| 116635 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121702 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116636 | 121703 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116637 | 121704 | .each = .{ .once = &.{ |
| 116638 | 121705 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -116642,7 +121709,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116642 | 121709 | .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, |
| 116643 | 121710 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116644 | 121711 | .patterns = &.{ |
| 116645 | | .{ .src = .{ .{ .to_reg = .rdi }, .none, .none } }, |
| 121712 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 116646 | 121713 | }, |
| 116647 | 121714 | .call_frame = .{ .alignment = .@"16" }, |
| 116648 | 121715 | .extra_temps = .{ |
| ... | ... | @@ -116658,17 +121725,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116658 | 121725 | .unused, |
| 116659 | 121726 | .unused, |
| 116660 | 121727 | }, |
| 116661 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121728 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116662 | 121729 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116663 | 121730 | .each = .{ .once = &.{ |
| 116664 | 121731 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 116665 | 121732 | } }, |
| 116666 | 121733 | }, .{ |
| 116667 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 121734 | .required_cc_abi = .sysv64, |
| 121735 | .required_features = .{ .sse, null, null, null }, |
| 116668 | 121736 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 116669 | 121737 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116670 | 121738 | .patterns = &.{ |
| 116671 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 121739 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 116672 | 121740 | }, |
| 116673 | 121741 | .call_frame = .{ .alignment = .@"16" }, |
| 116674 | 121742 | .extra_temps = .{ |
| ... | ... | @@ -116684,17 +121752,46 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116684 | 121752 | .unused, |
| 116685 | 121753 | .unused, |
| 116686 | 121754 | }, |
| 116687 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121755 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116688 | 121756 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116689 | 121757 | .each = .{ .once = &.{ |
| 116690 | 121758 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 116691 | 121759 | } }, |
| 116692 | 121760 | }, .{ |
| 116693 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 121761 | .required_cc_abi = .win64, |
| 121762 | .required_features = .{ .sse, null, null, null }, |
| 121763 | .src_constraints = .{ .{ .signed_int = .xword }, .any, .any }, |
| 121764 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 121765 | .patterns = &.{ |
| 121766 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121767 | }, |
| 121768 | .call_frame = .{ .alignment = .@"16" }, |
| 121769 | .extra_temps = .{ |
| 121770 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121771 | .{ .type = .usize, .kind = .{ .extern_func = "__floattitf" } }, |
| 121772 | .unused, |
| 121773 | .unused, |
| 121774 | .unused, |
| 121775 | .unused, |
| 121776 | .unused, |
| 121777 | .unused, |
| 121778 | .unused, |
| 121779 | .unused, |
| 121780 | .unused, |
| 121781 | }, |
| 121782 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 121783 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 121784 | .each = .{ .once = &.{ |
| 121785 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 121786 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 121787 | } }, |
| 121788 | }, .{ |
| 121789 | .required_cc_abi = .sysv64, |
| 121790 | .required_features = .{ .sse, null, null, null }, |
| 116694 | 121791 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 116695 | 121792 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 116696 | 121793 | .patterns = &.{ |
| 116697 | | .{ .src = .{ .{ .to_reg_pair = .{ .rdi, .rsi } }, .none, .none } }, |
| 121794 | .{ .src = .{ .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .none, .none } }, |
| 116698 | 121795 | }, |
| 116699 | 121796 | .call_frame = .{ .alignment = .@"16" }, |
| 116700 | 121797 | .extra_temps = .{ |
| ... | ... | @@ -116710,11 +121807,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116710 | 121807 | .unused, |
| 116711 | 121808 | .unused, |
| 116712 | 121809 | }, |
| 116713 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121810 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116714 | 121811 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116715 | 121812 | .each = .{ .once = &.{ |
| 116716 | 121813 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 116717 | 121814 | } }, |
| 121815 | }, .{ |
| 121816 | .required_cc_abi = .win64, |
| 121817 | .required_features = .{ .sse, null, null, null }, |
| 121818 | .src_constraints = .{ .{ .unsigned_int = .xword }, .any, .any }, |
| 121819 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| 121820 | .patterns = &.{ |
| 121821 | .{ .src = .{ .to_mem, .none, .none } }, |
| 121822 | }, |
| 121823 | .call_frame = .{ .alignment = .@"16" }, |
| 121824 | .extra_temps = .{ |
| 121825 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121826 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntitf" } }, |
| 121827 | .unused, |
| 121828 | .unused, |
| 121829 | .unused, |
| 121830 | .unused, |
| 121831 | .unused, |
| 121832 | .unused, |
| 121833 | .unused, |
| 121834 | .unused, |
| 121835 | .unused, |
| 121836 | }, |
| 121837 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 121838 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 121839 | .each = .{ .once = &.{ |
| 121840 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 121841 | .{ ._, ._, .call, .tmp1d, ._, ._, ._ }, |
| 121842 | } }, |
| 116718 | 121843 | }, .{ |
| 116719 | 121844 | .required_features = .{ .@"64bit", .sse, null, null }, |
| 116720 | 121845 | .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }, .any, .any }, |
| ... | ... | @@ -116724,8 +121849,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116724 | 121849 | }, |
| 116725 | 121850 | .call_frame = .{ .alignment = .@"16" }, |
| 116726 | 121851 | .extra_temps = .{ |
| 116727 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116728 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 121852 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121853 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 116729 | 121854 | .{ .type = .usize, .kind = .{ .extern_func = "__floateitf" } }, |
| 116730 | 121855 | .unused, |
| 116731 | 121856 | .unused, |
| ... | ... | @@ -116736,7 +121861,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116736 | 121861 | .unused, |
| 116737 | 121862 | .unused, |
| 116738 | 121863 | }, |
| 116739 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121864 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116740 | 121865 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116741 | 121866 | .each = .{ .once = &.{ |
| 116742 | 121867 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| ... | ... | @@ -116752,8 +121877,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116752 | 121877 | }, |
| 116753 | 121878 | .call_frame = .{ .alignment = .@"16" }, |
| 116754 | 121879 | .extra_temps = .{ |
| 116755 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 116756 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 121880 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 121881 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 116757 | 121882 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneitf" } }, |
| 116758 | 121883 | .unused, |
| 116759 | 121884 | .unused, |
| ... | ... | @@ -116764,7 +121889,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116764 | 121889 | .unused, |
| 116765 | 121890 | .unused, |
| 116766 | 121891 | }, |
| 116767 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 121892 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 116768 | 121893 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116769 | 121894 | .each = .{ .once = &.{ |
| 116770 | 121895 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| ... | ... | @@ -116780,11 +121905,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116780 | 121905 | }, |
| 116781 | 121906 | .call_frame = .{ .alignment = .@"16" }, |
| 116782 | 121907 | .extra_temps = .{ |
| 116783 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 121908 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116784 | 121909 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116785 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 121910 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116786 | 121911 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 116787 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 121912 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116788 | 121913 | .unused, |
| 116789 | 121914 | .unused, |
| 116790 | 121915 | .unused, |
| ... | ... | @@ -116795,14 +121920,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116795 | 121920 | .dst_temps = .{ .mem, .unused }, |
| 116796 | 121921 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116797 | 121922 | .each = .{ .once = &.{ |
| 116798 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116799 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 116800 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 121923 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 121924 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 121925 | .{ .@"0:", ._, .movsx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 116801 | 121926 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116802 | 121927 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 116803 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 116804 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 116805 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 121928 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 121929 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 121930 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116806 | 121931 | } }, |
| 116807 | 121932 | }, .{ |
| 116808 | 121933 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -116813,11 +121938,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116813 | 121938 | }, |
| 116814 | 121939 | .call_frame = .{ .alignment = .@"16" }, |
| 116815 | 121940 | .extra_temps = .{ |
| 116816 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 121941 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116817 | 121942 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116818 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 121943 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116819 | 121944 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 116820 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 121945 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116821 | 121946 | .unused, |
| 116822 | 121947 | .unused, |
| 116823 | 121948 | .unused, |
| ... | ... | @@ -116828,14 +121953,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116828 | 121953 | .dst_temps = .{ .mem, .unused }, |
| 116829 | 121954 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116830 | 121955 | .each = .{ .once = &.{ |
| 116831 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116832 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 116833 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 121956 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 121957 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 121958 | .{ .@"0:", ._, .movsx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 116834 | 121959 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116835 | 121960 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 116836 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 116837 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 116838 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 121961 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 121962 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 121963 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 116839 | 121964 | } }, |
| 116840 | 121965 | }, .{ |
| 116841 | 121966 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| ... | ... | @@ -116846,11 +121971,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116846 | 121971 | }, |
| 116847 | 121972 | .call_frame = .{ .alignment = .@"16" }, |
| 116848 | 121973 | .extra_temps = .{ |
| 116849 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 121974 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116850 | 121975 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116851 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 121976 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116852 | 121977 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 116853 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 121978 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116854 | 121979 | .unused, |
| 116855 | 121980 | .unused, |
| 116856 | 121981 | .unused, |
| ... | ... | @@ -116861,14 +121986,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116861 | 121986 | .dst_temps = .{ .mem, .unused }, |
| 116862 | 121987 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116863 | 121988 | .each = .{ .once = &.{ |
| 116864 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116865 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 116866 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 121989 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 121990 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 121991 | .{ .@"0:", ._, .movsx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 116867 | 121992 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116868 | 121993 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 116869 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 116870 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 116871 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 121994 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 121995 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 121996 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116872 | 121997 | } }, |
| 116873 | 121998 | }, .{ |
| 116874 | 121999 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -116879,11 +122004,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116879 | 122004 | }, |
| 116880 | 122005 | .call_frame = .{ .alignment = .@"16" }, |
| 116881 | 122006 | .extra_temps = .{ |
| 116882 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 122007 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116883 | 122008 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116884 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 122009 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116885 | 122010 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 116886 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122011 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116887 | 122012 | .unused, |
| 116888 | 122013 | .unused, |
| 116889 | 122014 | .unused, |
| ... | ... | @@ -116894,14 +122019,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116894 | 122019 | .dst_temps = .{ .mem, .unused }, |
| 116895 | 122020 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116896 | 122021 | .each = .{ .once = &.{ |
| 116897 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116898 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 116899 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122022 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 122023 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 122024 | .{ .@"0:", ._, .movsx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 116900 | 122025 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116901 | 122026 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 116902 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 116903 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 116904 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 122027 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 122028 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 122029 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 116905 | 122030 | } }, |
| 116906 | 122031 | }, .{ |
| 116907 | 122032 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -116912,11 +122037,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116912 | 122037 | }, |
| 116913 | 122038 | .call_frame = .{ .alignment = .@"16" }, |
| 116914 | 122039 | .extra_temps = .{ |
| 116915 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 122040 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116916 | 122041 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116917 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 122042 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116918 | 122043 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 116919 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122044 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116920 | 122045 | .unused, |
| 116921 | 122046 | .unused, |
| 116922 | 122047 | .unused, |
| ... | ... | @@ -116927,14 +122052,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116927 | 122052 | .dst_temps = .{ .mem, .unused }, |
| 116928 | 122053 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116929 | 122054 | .each = .{ .once = &.{ |
| 116930 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116931 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 116932 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122055 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 122056 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 122057 | .{ .@"0:", ._, .movsx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 116933 | 122058 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116934 | 122059 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 116935 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 116936 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 116937 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122060 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 122061 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 122062 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 116938 | 122063 | } }, |
| 116939 | 122064 | }, .{ |
| 116940 | 122065 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -116945,11 +122070,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116945 | 122070 | }, |
| 116946 | 122071 | .call_frame = .{ .alignment = .@"16" }, |
| 116947 | 122072 | .extra_temps = .{ |
| 116948 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 122073 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116949 | 122074 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116950 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 122075 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116951 | 122076 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 116952 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122077 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116953 | 122078 | .unused, |
| 116954 | 122079 | .unused, |
| 116955 | 122080 | .unused, |
| ... | ... | @@ -116960,14 +122085,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116960 | 122085 | .dst_temps = .{ .mem, .unused }, |
| 116961 | 122086 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116962 | 122087 | .each = .{ .once = &.{ |
| 116963 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116964 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 116965 | | .{ .@"0:", ._, .movsx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122088 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 122089 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 122090 | .{ .@"0:", ._, .movsx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 116966 | 122091 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 116967 | 122092 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 116968 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 116969 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 116970 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 122093 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 122094 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 122095 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 116971 | 122096 | } }, |
| 116972 | 122097 | }, .{ |
| 116973 | 122098 | .required_features = .{ .avx, .slow_incdec, null, null }, |
| ... | ... | @@ -116978,11 +122103,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116978 | 122103 | }, |
| 116979 | 122104 | .call_frame = .{ .alignment = .@"16" }, |
| 116980 | 122105 | .extra_temps = .{ |
| 116981 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 122106 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 116982 | 122107 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 116983 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122108 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116984 | 122109 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 116985 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122110 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 116986 | 122111 | .unused, |
| 116987 | 122112 | .unused, |
| 116988 | 122113 | .unused, |
| ... | ... | @@ -116993,14 +122118,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 116993 | 122118 | .dst_temps = .{ .mem, .unused }, |
| 116994 | 122119 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 116995 | 122120 | .each = .{ .once = &.{ |
| 116996 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 116997 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 116998 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122121 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 122122 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 122123 | .{ .@"0:", ._, .movzx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 116999 | 122124 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117000 | 122125 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 117001 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 117002 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 117003 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122126 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 122127 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 122128 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117004 | 122129 | } }, |
| 117005 | 122130 | }, .{ |
| 117006 | 122131 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -117011,11 +122136,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117011 | 122136 | }, |
| 117012 | 122137 | .call_frame = .{ .alignment = .@"16" }, |
| 117013 | 122138 | .extra_temps = .{ |
| 117014 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 122139 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117015 | 122140 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 117016 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122141 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117017 | 122142 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117018 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122143 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117019 | 122144 | .unused, |
| 117020 | 122145 | .unused, |
| 117021 | 122146 | .unused, |
| ... | ... | @@ -117026,14 +122151,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117026 | 122151 | .dst_temps = .{ .mem, .unused }, |
| 117027 | 122152 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117028 | 122153 | .each = .{ .once = &.{ |
| 117029 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117030 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 117031 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122154 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 122155 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 122156 | .{ .@"0:", ._, .movzx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 117032 | 122157 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117033 | 122158 | .{ ._, .v_dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 117034 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 117035 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 117036 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 122159 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 122160 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 122161 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 117037 | 122162 | } }, |
| 117038 | 122163 | }, .{ |
| 117039 | 122164 | .required_features = .{ .sse2, .slow_incdec, null, null }, |
| ... | ... | @@ -117044,11 +122169,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117044 | 122169 | }, |
| 117045 | 122170 | .call_frame = .{ .alignment = .@"16" }, |
| 117046 | 122171 | .extra_temps = .{ |
| 117047 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 122172 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117048 | 122173 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 117049 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122174 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117050 | 122175 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117051 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122176 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117052 | 122177 | .unused, |
| 117053 | 122178 | .unused, |
| 117054 | 122179 | .unused, |
| ... | ... | @@ -117059,14 +122184,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117059 | 122184 | .dst_temps = .{ .mem, .unused }, |
| 117060 | 122185 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117061 | 122186 | .each = .{ .once = &.{ |
| 117062 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117063 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 117064 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122187 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 122188 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 122189 | .{ .@"0:", ._, .movzx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 117065 | 122190 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117066 | 122191 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 117067 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 117068 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 117069 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122192 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 122193 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 122194 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117070 | 122195 | } }, |
| 117071 | 122196 | }, .{ |
| 117072 | 122197 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -117077,11 +122202,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117077 | 122202 | }, |
| 117078 | 122203 | .call_frame = .{ .alignment = .@"16" }, |
| 117079 | 122204 | .extra_temps = .{ |
| 117080 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 122205 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117081 | 122206 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 117082 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122207 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117083 | 122208 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117084 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122209 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117085 | 122210 | .unused, |
| 117086 | 122211 | .unused, |
| 117087 | 122212 | .unused, |
| ... | ... | @@ -117092,14 +122217,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117092 | 122217 | .dst_temps = .{ .mem, .unused }, |
| 117093 | 122218 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117094 | 122219 | .each = .{ .once = &.{ |
| 117095 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117096 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 117097 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122220 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 122221 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 122222 | .{ .@"0:", ._, .movzx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 117098 | 122223 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117099 | 122224 | .{ ._, ._dqa, .mov, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 117100 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 117101 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 117102 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 122225 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 122226 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 122227 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 117103 | 122228 | } }, |
| 117104 | 122229 | }, .{ |
| 117105 | 122230 | .required_features = .{ .sse, .slow_incdec, null, null }, |
| ... | ... | @@ -117110,11 +122235,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117110 | 122235 | }, |
| 117111 | 122236 | .call_frame = .{ .alignment = .@"16" }, |
| 117112 | 122237 | .extra_temps = .{ |
| 117113 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 122238 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117114 | 122239 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 117115 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122240 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117116 | 122241 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117117 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122242 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117118 | 122243 | .unused, |
| 117119 | 122244 | .unused, |
| 117120 | 122245 | .unused, |
| ... | ... | @@ -117125,14 +122250,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117125 | 122250 | .dst_temps = .{ .mem, .unused }, |
| 117126 | 122251 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117127 | 122252 | .each = .{ .once = &.{ |
| 117128 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117129 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 117130 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122253 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 122254 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 122255 | .{ .@"0:", ._, .movzx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 117131 | 122256 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117132 | 122257 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 117133 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 117134 | | .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, |
| 117135 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122258 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 122259 | .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, |
| 122260 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117136 | 122261 | } }, |
| 117137 | 122262 | }, .{ |
| 117138 | 122263 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -117143,11 +122268,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117143 | 122268 | }, |
| 117144 | 122269 | .call_frame = .{ .alignment = .@"16" }, |
| 117145 | 122270 | .extra_temps = .{ |
| 117146 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 122271 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 117147 | 122272 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 117148 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122273 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117149 | 122274 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117150 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122275 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117151 | 122276 | .unused, |
| 117152 | 122277 | .unused, |
| 117153 | 122278 | .unused, |
| ... | ... | @@ -117158,14 +122283,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117158 | 122283 | .dst_temps = .{ .mem, .unused }, |
| 117159 | 122284 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117160 | 122285 | .each = .{ .once = &.{ |
| 117161 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117162 | | .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ }, |
| 117163 | | .{ .@"0:", ._, .movzx, .tmp2d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122286 | .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_unaligned_size), ._, ._ }, |
| 122287 | .{ ._, ._, .lea, .tmp1p, .memad(.dst0, .add_unaligned_size, -16), ._, ._ }, |
| 122288 | .{ .@"0:", ._, .movzx, .tmp2d, .memi(.src0b, .tmp0), ._, ._ }, |
| 117164 | 122289 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117165 | 122290 | .{ ._, ._ps, .mova, .lea(.tmp1x), .tmp4x, ._, ._ }, |
| 117166 | | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, 16), ._, ._ }, |
| 117167 | | .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, |
| 117168 | | .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, |
| 122291 | .{ ._, ._, .lea, .tmp1p, .lead(.tmp1, -16), ._, ._ }, |
| 122292 | .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, |
| 122293 | .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, |
| 117169 | 122294 | } }, |
| 117170 | 122295 | }, .{ |
| 117171 | 122296 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -117176,10 +122301,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117176 | 122301 | }, |
| 117177 | 122302 | .call_frame = .{ .alignment = .@"16" }, |
| 117178 | 122303 | .extra_temps = .{ |
| 117179 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117180 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 122304 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122305 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117181 | 122306 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 117182 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122307 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117183 | 122308 | .unused, |
| 117184 | 122309 | .unused, |
| 117185 | 122310 | .unused, |
| ... | ... | @@ -117191,12 +122316,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117191 | 122316 | .dst_temps = .{ .mem, .unused }, |
| 117192 | 122317 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117193 | 122318 | .each = .{ .once = &.{ |
| 117194 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117195 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122319 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 122320 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 117196 | 122321 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117197 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117198 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 117199 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122322 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 122323 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 122324 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117200 | 122325 | } }, |
| 117201 | 122326 | }, .{ |
| 117202 | 122327 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -117207,10 +122332,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117207 | 122332 | }, |
| 117208 | 122333 | .call_frame = .{ .alignment = .@"16" }, |
| 117209 | 122334 | .extra_temps = .{ |
| 117210 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117211 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 122335 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122336 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117212 | 122337 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 117213 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122338 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117214 | 122339 | .unused, |
| 117215 | 122340 | .unused, |
| 117216 | 122341 | .unused, |
| ... | ... | @@ -117222,12 +122347,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117222 | 122347 | .dst_temps = .{ .mem, .unused }, |
| 117223 | 122348 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117224 | 122349 | .each = .{ .once = &.{ |
| 117225 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117226 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122350 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 122351 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 117227 | 122352 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117228 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117229 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 117230 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122353 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 122354 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 122355 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117231 | 122356 | } }, |
| 117232 | 122357 | }, .{ |
| 117233 | 122358 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -117238,10 +122363,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117238 | 122363 | }, |
| 117239 | 122364 | .call_frame = .{ .alignment = .@"16" }, |
| 117240 | 122365 | .extra_temps = .{ |
| 117241 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117242 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 122366 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122367 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117243 | 122368 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 117244 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122369 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117245 | 122370 | .unused, |
| 117246 | 122371 | .unused, |
| 117247 | 122372 | .unused, |
| ... | ... | @@ -117253,12 +122378,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117253 | 122378 | .dst_temps = .{ .mem, .unused }, |
| 117254 | 122379 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117255 | 122380 | .each = .{ .once = &.{ |
| 117256 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117257 | | .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122381 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 122382 | .{ .@"0:", ._, .movsx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 117258 | 122383 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117259 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117260 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 117261 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122384 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 122385 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 122386 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117262 | 122387 | } }, |
| 117263 | 122388 | }, .{ |
| 117264 | 122389 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -117269,10 +122394,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117269 | 122394 | }, |
| 117270 | 122395 | .call_frame = .{ .alignment = .@"16" }, |
| 117271 | 122396 | .extra_temps = .{ |
| 117272 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117273 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122397 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122398 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117274 | 122399 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117275 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122400 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117276 | 122401 | .unused, |
| 117277 | 122402 | .unused, |
| 117278 | 122403 | .unused, |
| ... | ... | @@ -117284,12 +122409,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117284 | 122409 | .dst_temps = .{ .mem, .unused }, |
| 117285 | 122410 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117286 | 122411 | .each = .{ .once = &.{ |
| 117287 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117288 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122412 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 122413 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 117289 | 122414 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117290 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117291 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 117292 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122415 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 122416 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 122417 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117293 | 122418 | } }, |
| 117294 | 122419 | }, .{ |
| 117295 | 122420 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -117300,10 +122425,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117300 | 122425 | }, |
| 117301 | 122426 | .call_frame = .{ .alignment = .@"16" }, |
| 117302 | 122427 | .extra_temps = .{ |
| 117303 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117304 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122428 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122429 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117305 | 122430 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117306 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122431 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117307 | 122432 | .unused, |
| 117308 | 122433 | .unused, |
| 117309 | 122434 | .unused, |
| ... | ... | @@ -117315,12 +122440,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117315 | 122440 | .dst_temps = .{ .mem, .unused }, |
| 117316 | 122441 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117317 | 122442 | .each = .{ .once = &.{ |
| 117318 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117319 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122443 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 122444 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 117320 | 122445 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117321 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117322 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 117323 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122446 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 122447 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 122448 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117324 | 122449 | } }, |
| 117325 | 122450 | }, .{ |
| 117326 | 122451 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -117331,10 +122456,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117331 | 122456 | }, |
| 117332 | 122457 | .call_frame = .{ .alignment = .@"16" }, |
| 117333 | 122458 | .extra_temps = .{ |
| 117334 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117335 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122459 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122460 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117336 | 122461 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117337 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122462 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117338 | 122463 | .unused, |
| 117339 | 122464 | .unused, |
| 117340 | 122465 | .unused, |
| ... | ... | @@ -117346,12 +122471,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117346 | 122471 | .dst_temps = .{ .mem, .unused }, |
| 117347 | 122472 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117348 | 122473 | .each = .{ .once = &.{ |
| 117349 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117350 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122474 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 122475 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 117351 | 122476 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117352 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"8", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117353 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 117354 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122477 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"8", .tmp0), .tmp3x, ._, ._ }, |
| 122478 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 122479 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117355 | 122480 | } }, |
| 117356 | 122481 | }, .{ |
| 117357 | 122482 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -117362,10 +122487,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117362 | 122487 | }, |
| 117363 | 122488 | .call_frame = .{ .alignment = .@"16" }, |
| 117364 | 122489 | .extra_temps = .{ |
| 117365 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117366 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 122490 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122491 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117367 | 122492 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 117368 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122493 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117369 | 122494 | .unused, |
| 117370 | 122495 | .unused, |
| 117371 | 122496 | .unused, |
| ... | ... | @@ -117377,12 +122502,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117377 | 122502 | .dst_temps = .{ .mem, .unused }, |
| 117378 | 122503 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117379 | 122504 | .each = .{ .once = &.{ |
| 117380 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117381 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122505 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 122506 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 117382 | 122507 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117383 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117384 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 117385 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122508 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 122509 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 122510 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117386 | 122511 | } }, |
| 117387 | 122512 | }, .{ |
| 117388 | 122513 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -117393,10 +122518,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117393 | 122518 | }, |
| 117394 | 122519 | .call_frame = .{ .alignment = .@"16" }, |
| 117395 | 122520 | .extra_temps = .{ |
| 117396 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117397 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 122521 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122522 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117398 | 122523 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 117399 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122524 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117400 | 122525 | .unused, |
| 117401 | 122526 | .unused, |
| 117402 | 122527 | .unused, |
| ... | ... | @@ -117408,12 +122533,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117408 | 122533 | .dst_temps = .{ .mem, .unused }, |
| 117409 | 122534 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117410 | 122535 | .each = .{ .once = &.{ |
| 117411 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117412 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122536 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 122537 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 117413 | 122538 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117414 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117415 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 117416 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122539 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 122540 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 122541 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117417 | 122542 | } }, |
| 117418 | 122543 | }, .{ |
| 117419 | 122544 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -117424,10 +122549,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117424 | 122549 | }, |
| 117425 | 122550 | .call_frame = .{ .alignment = .@"16" }, |
| 117426 | 122551 | .extra_temps = .{ |
| 117427 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117428 | | .{ .type = .i32, .kind = .{ .reg = .edi } }, |
| 122552 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122553 | .{ .type = .i32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117429 | 122554 | .{ .type = .usize, .kind = .{ .extern_func = "__floatsitf" } }, |
| 117430 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122555 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117431 | 122556 | .unused, |
| 117432 | 122557 | .unused, |
| 117433 | 122558 | .unused, |
| ... | ... | @@ -117439,12 +122564,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117439 | 122564 | .dst_temps = .{ .mem, .unused }, |
| 117440 | 122565 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117441 | 122566 | .each = .{ .once = &.{ |
| 117442 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117443 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122567 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 122568 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 117444 | 122569 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117445 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117446 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 117447 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122570 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 122571 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 122572 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117448 | 122573 | } }, |
| 117449 | 122574 | }, .{ |
| 117450 | 122575 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -117455,10 +122580,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117455 | 122580 | }, |
| 117456 | 122581 | .call_frame = .{ .alignment = .@"16" }, |
| 117457 | 122582 | .extra_temps = .{ |
| 117458 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117459 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122583 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122584 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117460 | 122585 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117461 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122586 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117462 | 122587 | .unused, |
| 117463 | 122588 | .unused, |
| 117464 | 122589 | .unused, |
| ... | ... | @@ -117470,12 +122595,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117470 | 122595 | .dst_temps = .{ .mem, .unused }, |
| 117471 | 122596 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117472 | 122597 | .each = .{ .once = &.{ |
| 117473 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117474 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122598 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 122599 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 117475 | 122600 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117476 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117477 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 117478 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122601 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 122602 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 122603 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117479 | 122604 | } }, |
| 117480 | 122605 | }, .{ |
| 117481 | 122606 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -117486,10 +122611,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117486 | 122611 | }, |
| 117487 | 122612 | .call_frame = .{ .alignment = .@"16" }, |
| 117488 | 122613 | .extra_temps = .{ |
| 117489 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117490 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122614 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122615 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117491 | 122616 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117492 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122617 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117493 | 122618 | .unused, |
| 117494 | 122619 | .unused, |
| 117495 | 122620 | .unused, |
| ... | ... | @@ -117501,12 +122626,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117501 | 122626 | .dst_temps = .{ .mem, .unused }, |
| 117502 | 122627 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117503 | 122628 | .each = .{ .once = &.{ |
| 117504 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117505 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122629 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 122630 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 117506 | 122631 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117507 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117508 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 117509 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122632 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 122633 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 122634 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117510 | 122635 | } }, |
| 117511 | 122636 | }, .{ |
| 117512 | 122637 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -117517,10 +122642,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117517 | 122642 | }, |
| 117518 | 122643 | .call_frame = .{ .alignment = .@"16" }, |
| 117519 | 122644 | .extra_temps = .{ |
| 117520 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117521 | | .{ .type = .u32, .kind = .{ .reg = .edi } }, |
| 122645 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122646 | .{ .type = .u32, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117522 | 122647 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunsitf" } }, |
| 117523 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122648 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117524 | 122649 | .unused, |
| 117525 | 122650 | .unused, |
| 117526 | 122651 | .unused, |
| ... | ... | @@ -117532,12 +122657,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117532 | 122657 | .dst_temps = .{ .mem, .unused }, |
| 117533 | 122658 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117534 | 122659 | .each = .{ .once = &.{ |
| 117535 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117536 | | .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122660 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 122661 | .{ .@"0:", ._, .mov, .tmp1d, .memi(.src0d, .tmp0), ._, ._ }, |
| 117537 | 122662 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117538 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"4", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117539 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 117540 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122663 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"4", .tmp0), .tmp3x, ._, ._ }, |
| 122664 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 122665 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117541 | 122666 | } }, |
| 117542 | 122667 | }, .{ |
| 117543 | 122668 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -117548,10 +122673,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117548 | 122673 | }, |
| 117549 | 122674 | .call_frame = .{ .alignment = .@"16" }, |
| 117550 | 122675 | .extra_temps = .{ |
| 117551 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117552 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 122676 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122677 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117553 | 122678 | .{ .type = .usize, .kind = .{ .extern_func = "__floatditf" } }, |
| 117554 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122679 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117555 | 122680 | .unused, |
| 117556 | 122681 | .unused, |
| 117557 | 122682 | .unused, |
| ... | ... | @@ -117563,12 +122688,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117563 | 122688 | .dst_temps = .{ .mem, .unused }, |
| 117564 | 122689 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117565 | 122690 | .each = .{ .once = &.{ |
| 117566 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117567 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122691 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 122692 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 117568 | 122693 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117569 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117570 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 117571 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122694 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 122695 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 122696 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117572 | 122697 | } }, |
| 117573 | 122698 | }, .{ |
| 117574 | 122699 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -117579,10 +122704,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117579 | 122704 | }, |
| 117580 | 122705 | .call_frame = .{ .alignment = .@"16" }, |
| 117581 | 122706 | .extra_temps = .{ |
| 117582 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117583 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 122707 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122708 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117584 | 122709 | .{ .type = .usize, .kind = .{ .extern_func = "__floatditf" } }, |
| 117585 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122710 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117586 | 122711 | .unused, |
| 117587 | 122712 | .unused, |
| 117588 | 122713 | .unused, |
| ... | ... | @@ -117594,12 +122719,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117594 | 122719 | .dst_temps = .{ .mem, .unused }, |
| 117595 | 122720 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117596 | 122721 | .each = .{ .once = &.{ |
| 117597 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117598 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122722 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 122723 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 117599 | 122724 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117600 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117601 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 117602 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122725 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 122726 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 122727 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117603 | 122728 | } }, |
| 117604 | 122729 | }, .{ |
| 117605 | 122730 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -117610,10 +122735,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117610 | 122735 | }, |
| 117611 | 122736 | .call_frame = .{ .alignment = .@"16" }, |
| 117612 | 122737 | .extra_temps = .{ |
| 117613 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117614 | | .{ .type = .i64, .kind = .{ .reg = .rdi } }, |
| 122738 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122739 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117615 | 122740 | .{ .type = .usize, .kind = .{ .extern_func = "__floatditf" } }, |
| 117616 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122741 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117617 | 122742 | .unused, |
| 117618 | 122743 | .unused, |
| 117619 | 122744 | .unused, |
| ... | ... | @@ -117625,12 +122750,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117625 | 122750 | .dst_temps = .{ .mem, .unused }, |
| 117626 | 122751 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117627 | 122752 | .each = .{ .once = &.{ |
| 117628 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117629 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122753 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 122754 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 117630 | 122755 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117631 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117632 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 117633 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122756 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 122757 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 122758 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117634 | 122759 | } }, |
| 117635 | 122760 | }, .{ |
| 117636 | 122761 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -117641,10 +122766,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117641 | 122766 | }, |
| 117642 | 122767 | .call_frame = .{ .alignment = .@"16" }, |
| 117643 | 122768 | .extra_temps = .{ |
| 117644 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117645 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 122769 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122770 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117646 | 122771 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunditf" } }, |
| 117647 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122772 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117648 | 122773 | .unused, |
| 117649 | 122774 | .unused, |
| 117650 | 122775 | .unused, |
| ... | ... | @@ -117656,12 +122781,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117656 | 122781 | .dst_temps = .{ .mem, .unused }, |
| 117657 | 122782 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117658 | 122783 | .each = .{ .once = &.{ |
| 117659 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117660 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122784 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 122785 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 117661 | 122786 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117662 | | .{ ._, .v_dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117663 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 117664 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122787 | .{ ._, .v_dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 122788 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 122789 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117665 | 122790 | } }, |
| 117666 | 122791 | }, .{ |
| 117667 | 122792 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -117672,10 +122797,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117672 | 122797 | }, |
| 117673 | 122798 | .call_frame = .{ .alignment = .@"16" }, |
| 117674 | 122799 | .extra_temps = .{ |
| 117675 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117676 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 122800 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122801 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117677 | 122802 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunditf" } }, |
| 117678 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122803 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117679 | 122804 | .unused, |
| 117680 | 122805 | .unused, |
| 117681 | 122806 | .unused, |
| ... | ... | @@ -117687,12 +122812,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117687 | 122812 | .dst_temps = .{ .mem, .unused }, |
| 117688 | 122813 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117689 | 122814 | .each = .{ .once = &.{ |
| 117690 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117691 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122815 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 122816 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 117692 | 122817 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117693 | | .{ ._, ._dqa, .mov, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117694 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 117695 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122818 | .{ ._, ._dqa, .mov, .memsi(.dst0x, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 122819 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 122820 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117696 | 122821 | } }, |
| 117697 | 122822 | }, .{ |
| 117698 | 122823 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -117703,10 +122828,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117703 | 122828 | }, |
| 117704 | 122829 | .call_frame = .{ .alignment = .@"16" }, |
| 117705 | 122830 | .extra_temps = .{ |
| 117706 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117707 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 122831 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122832 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117708 | 122833 | .{ .type = .usize, .kind = .{ .extern_func = "__floatunditf" } }, |
| 117709 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122834 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117710 | 122835 | .unused, |
| 117711 | 122836 | .unused, |
| 117712 | 122837 | .unused, |
| ... | ... | @@ -117718,15 +122843,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117718 | 122843 | .dst_temps = .{ .mem, .unused }, |
| 117719 | 122844 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117720 | 122845 | .each = .{ .once = &.{ |
| 117721 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117722 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 122846 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 122847 | .{ .@"0:", ._, .mov, .tmp1q, .memi(.src0q, .tmp0), ._, ._ }, |
| 117723 | 122848 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 117724 | | .{ ._, ._ps, .mova, .memsia(.dst0x, .@"2", .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, |
| 117725 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 117726 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122849 | .{ ._, ._ps, .mova, .memsi(.dst0x, .@"2", .tmp0), .tmp3x, ._, ._ }, |
| 122850 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 122851 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117727 | 122852 | } }, |
| 117728 | 122853 | }, .{ |
| 117729 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 122854 | .required_cc_abi = .sysv64, |
| 122855 | .required_features = .{ .avx, null, null, null }, |
| 117730 | 122856 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 117731 | 122857 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117732 | 122858 | .patterns = &.{ |
| ... | ... | @@ -117734,11 +122860,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117734 | 122860 | }, |
| 117735 | 122861 | .call_frame = .{ .alignment = .@"16" }, |
| 117736 | 122862 | .extra_temps = .{ |
| 117737 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117738 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 117739 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 122863 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122864 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117740 | 122865 | .{ .type = .usize, .kind = .{ .extern_func = "__floattitf" } }, |
| 117741 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122866 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 122867 | .unused, |
| 117742 | 122868 | .unused, |
| 117743 | 122869 | .unused, |
| 117744 | 122870 | .unused, |
| ... | ... | @@ -117749,16 +122875,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117749 | 122875 | .dst_temps = .{ .mem, .unused }, |
| 117750 | 122876 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117751 | 122877 | .each = .{ .once = &.{ |
| 117752 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117753 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 117754 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 117755 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117756 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 117757 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 117758 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122878 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 122879 | .{ .@"0:", ._, .mov, .tmp1q0, .memi(.src0q, .tmp0), ._, ._ }, |
| 122880 | .{ ._, ._, .mov, .tmp1q1, .memid(.src0q, .tmp0, 8), ._, ._ }, |
| 122881 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 122882 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 122883 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 122884 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117759 | 122885 | } }, |
| 117760 | 122886 | }, .{ |
| 117761 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 122887 | .required_cc_abi = .win64, |
| 122888 | .required_features = .{ .avx, null, null, null }, |
| 117762 | 122889 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 117763 | 122890 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117764 | 122891 | .patterns = &.{ |
| ... | ... | @@ -117766,11 +122893,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117766 | 122893 | }, |
| 117767 | 122894 | .call_frame = .{ .alignment = .@"16" }, |
| 117768 | 122895 | .extra_temps = .{ |
| 117769 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117770 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 117771 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 122896 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122897 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117772 | 122898 | .{ .type = .usize, .kind = .{ .extern_func = "__floattitf" } }, |
| 117773 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122899 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 122900 | .unused, |
| 117774 | 122901 | .unused, |
| 117775 | 122902 | .unused, |
| 117776 | 122903 | .unused, |
| ... | ... | @@ -117781,16 +122908,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117781 | 122908 | .dst_temps = .{ .mem, .unused }, |
| 117782 | 122909 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117783 | 122910 | .each = .{ .once = &.{ |
| 117784 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117785 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 117786 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 117787 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117788 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 117789 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 117790 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122911 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 122912 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.src0, .tmp0), ._, ._ }, |
| 122913 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 122914 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 122915 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 122916 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117791 | 122917 | } }, |
| 117792 | 122918 | }, .{ |
| 117793 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 122919 | .required_cc_abi = .sysv64, |
| 122920 | .required_features = .{ .sse2, null, null, null }, |
| 117794 | 122921 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 117795 | 122922 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117796 | 122923 | .patterns = &.{ |
| ... | ... | @@ -117798,11 +122925,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117798 | 122925 | }, |
| 117799 | 122926 | .call_frame = .{ .alignment = .@"16" }, |
| 117800 | 122927 | .extra_temps = .{ |
| 117801 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117802 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 117803 | | .{ .type = .i64, .kind = .{ .reg = .rsi } }, |
| 122928 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122929 | .{ .type = .i128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117804 | 122930 | .{ .type = .usize, .kind = .{ .extern_func = "__floattitf" } }, |
| 117805 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 122931 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 122932 | .unused, |
| 117806 | 122933 | .unused, |
| 117807 | 122934 | .unused, |
| 117808 | 122935 | .unused, |
| ... | ... | @@ -117813,16 +122940,114 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117813 | 122940 | .dst_temps = .{ .mem, .unused }, |
| 117814 | 122941 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117815 | 122942 | .each = .{ .once = &.{ |
| 117816 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117817 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 117818 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 117819 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117820 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 117821 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 117822 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 122943 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 122944 | .{ .@"0:", ._, .mov, .tmp1q0, .memi(.src0q, .tmp0), ._, ._ }, |
| 122945 | .{ ._, ._, .mov, .tmp1q1, .memid(.src0q, .tmp0, 8), ._, ._ }, |
| 122946 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 122947 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 122948 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 122949 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117823 | 122950 | } }, |
| 117824 | 122951 | }, .{ |
| 117825 | | .required_features = .{ .@"64bit", .avx, null, null }, |
| 122952 | .required_cc_abi = .win64, |
| 122953 | .required_features = .{ .sse2, null, null, null }, |
| 122954 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 122955 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 122956 | .patterns = &.{ |
| 122957 | .{ .src = .{ .to_mem, .none, .none } }, |
| 122958 | }, |
| 122959 | .call_frame = .{ .alignment = .@"16" }, |
| 122960 | .extra_temps = .{ |
| 122961 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122962 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 122963 | .{ .type = .usize, .kind = .{ .extern_func = "__floattitf" } }, |
| 122964 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 122965 | .unused, |
| 122966 | .unused, |
| 122967 | .unused, |
| 122968 | .unused, |
| 122969 | .unused, |
| 122970 | .unused, |
| 122971 | .unused, |
| 122972 | }, |
| 122973 | .dst_temps = .{ .mem, .unused }, |
| 122974 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 122975 | .each = .{ .once = &.{ |
| 122976 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 122977 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.src0, .tmp0), ._, ._ }, |
| 122978 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 122979 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 122980 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 122981 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 122982 | } }, |
| 122983 | }, .{ |
| 122984 | .required_cc_abi = .sysv64, |
| 122985 | .required_features = .{ .sse, null, null, null }, |
| 122986 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 122987 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 122988 | .patterns = &.{ |
| 122989 | .{ .src = .{ .to_mem, .none, .none } }, |
| 122990 | }, |
| 122991 | .call_frame = .{ .alignment = .@"16" }, |
| 122992 | .extra_temps = .{ |
| 122993 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 122994 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 122995 | .{ .type = .usize, .kind = .{ .extern_func = "__floattitf" } }, |
| 122996 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 122997 | .unused, |
| 122998 | .unused, |
| 122999 | .unused, |
| 123000 | .unused, |
| 123001 | .unused, |
| 123002 | .unused, |
| 123003 | .unused, |
| 123004 | }, |
| 123005 | .dst_temps = .{ .mem, .unused }, |
| 123006 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 123007 | .each = .{ .once = &.{ |
| 123008 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 123009 | .{ .@"0:", ._, .mov, .tmp1q0, .memi(.src0q, .tmp0), ._, ._ }, |
| 123010 | .{ ._, ._, .mov, .tmp1q1, .memid(.src0q, .tmp0, 8), ._, ._ }, |
| 123011 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 123012 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 123013 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 123014 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 123015 | } }, |
| 123016 | }, .{ |
| 123017 | .required_cc_abi = .win64, |
| 123018 | .required_features = .{ .sse, null, null, null }, |
| 123019 | .src_constraints = .{ .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 123020 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 123021 | .patterns = &.{ |
| 123022 | .{ .src = .{ .to_mem, .none, .none } }, |
| 123023 | }, |
| 123024 | .call_frame = .{ .alignment = .@"16" }, |
| 123025 | .extra_temps = .{ |
| 123026 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123027 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123028 | .{ .type = .usize, .kind = .{ .extern_func = "__floattitf" } }, |
| 123029 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123030 | .unused, |
| 123031 | .unused, |
| 123032 | .unused, |
| 123033 | .unused, |
| 123034 | .unused, |
| 123035 | .unused, |
| 123036 | .unused, |
| 123037 | }, |
| 123038 | .dst_temps = .{ .mem, .unused }, |
| 123039 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 123040 | .each = .{ .once = &.{ |
| 123041 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 123042 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.src0, .tmp0), ._, ._ }, |
| 123043 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 123044 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 123045 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 123046 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 123047 | } }, |
| 123048 | }, .{ |
| 123049 | .required_cc_abi = .sysv64, |
| 123050 | .required_features = .{ .avx, null, null, null }, |
| 117826 | 123051 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 117827 | 123052 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117828 | 123053 | .patterns = &.{ |
| ... | ... | @@ -117830,11 +123055,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117830 | 123055 | }, |
| 117831 | 123056 | .call_frame = .{ .alignment = .@"16" }, |
| 117832 | 123057 | .extra_temps = .{ |
| 117833 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117834 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 117835 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 123058 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123059 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117836 | 123060 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntitf" } }, |
| 117837 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 123061 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123062 | .unused, |
| 117838 | 123063 | .unused, |
| 117839 | 123064 | .unused, |
| 117840 | 123065 | .unused, |
| ... | ... | @@ -117845,16 +123070,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117845 | 123070 | .dst_temps = .{ .mem, .unused }, |
| 117846 | 123071 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117847 | 123072 | .each = .{ .once = &.{ |
| 117848 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117849 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 117850 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 117851 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117852 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 117853 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 117854 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 123073 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 123074 | .{ .@"0:", ._, .mov, .tmp1q0, .memi(.src0q, .tmp0), ._, ._ }, |
| 123075 | .{ ._, ._, .mov, .tmp1q1, .memid(.src0q, .tmp0, 8), ._, ._ }, |
| 123076 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 123077 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 123078 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 123079 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117855 | 123080 | } }, |
| 117856 | 123081 | }, .{ |
| 117857 | | .required_features = .{ .@"64bit", .sse2, null, null }, |
| 123082 | .required_cc_abi = .win64, |
| 123083 | .required_features = .{ .avx, null, null, null }, |
| 117858 | 123084 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 117859 | 123085 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117860 | 123086 | .patterns = &.{ |
| ... | ... | @@ -117862,11 +123088,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117862 | 123088 | }, |
| 117863 | 123089 | .call_frame = .{ .alignment = .@"16" }, |
| 117864 | 123090 | .extra_temps = .{ |
| 117865 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117866 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 117867 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 123091 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123092 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117868 | 123093 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntitf" } }, |
| 117869 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 123094 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123095 | .unused, |
| 117870 | 123096 | .unused, |
| 117871 | 123097 | .unused, |
| 117872 | 123098 | .unused, |
| ... | ... | @@ -117877,16 +123103,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117877 | 123103 | .dst_temps = .{ .mem, .unused }, |
| 117878 | 123104 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117879 | 123105 | .each = .{ .once = &.{ |
| 117880 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117881 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 117882 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 117883 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117884 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 117885 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 117886 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 123106 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 123107 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.src0, .tmp0), ._, ._ }, |
| 123108 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 123109 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 123110 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 123111 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117887 | 123112 | } }, |
| 117888 | 123113 | }, .{ |
| 117889 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 123114 | .required_cc_abi = .sysv64, |
| 123115 | .required_features = .{ .sse2, null, null, null }, |
| 117890 | 123116 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 117891 | 123117 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 117892 | 123118 | .patterns = &.{ |
| ... | ... | @@ -117894,11 +123120,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117894 | 123120 | }, |
| 117895 | 123121 | .call_frame = .{ .alignment = .@"16" }, |
| 117896 | 123122 | .extra_temps = .{ |
| 117897 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117898 | | .{ .type = .u64, .kind = .{ .reg = .rdi } }, |
| 117899 | | .{ .type = .u64, .kind = .{ .reg = .rsi } }, |
| 123123 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123124 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117900 | 123125 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntitf" } }, |
| 117901 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 123126 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123127 | .unused, |
| 117902 | 123128 | .unused, |
| 117903 | 123129 | .unused, |
| 117904 | 123130 | .unused, |
| ... | ... | @@ -117909,13 +123135,110 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117909 | 123135 | .dst_temps = .{ .mem, .unused }, |
| 117910 | 123136 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117911 | 123137 | .each = .{ .once = &.{ |
| 117912 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 117913 | | .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 117914 | | .{ ._, ._, .mov, .tmp2q, .memiad(.src0q, .tmp0, .add_unaligned_size, 8), ._, ._ }, |
| 117915 | | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 117916 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 117917 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 117918 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 123138 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 123139 | .{ .@"0:", ._, .mov, .tmp1q0, .memi(.src0q, .tmp0), ._, ._ }, |
| 123140 | .{ ._, ._, .mov, .tmp1q1, .memid(.src0q, .tmp0, 8), ._, ._ }, |
| 123141 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 123142 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 123143 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 123144 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 123145 | } }, |
| 123146 | }, .{ |
| 123147 | .required_cc_abi = .win64, |
| 123148 | .required_features = .{ .sse2, null, null, null }, |
| 123149 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 123150 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 123151 | .patterns = &.{ |
| 123152 | .{ .src = .{ .to_mem, .none, .none } }, |
| 123153 | }, |
| 123154 | .call_frame = .{ .alignment = .@"16" }, |
| 123155 | .extra_temps = .{ |
| 123156 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123157 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123158 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntitf" } }, |
| 123159 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123160 | .unused, |
| 123161 | .unused, |
| 123162 | .unused, |
| 123163 | .unused, |
| 123164 | .unused, |
| 123165 | .unused, |
| 123166 | .unused, |
| 123167 | }, |
| 123168 | .dst_temps = .{ .mem, .unused }, |
| 123169 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 123170 | .each = .{ .once = &.{ |
| 123171 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 123172 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.src0, .tmp0), ._, ._ }, |
| 123173 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 123174 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 123175 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 123176 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 123177 | } }, |
| 123178 | }, .{ |
| 123179 | .required_cc_abi = .sysv64, |
| 123180 | .required_features = .{ .sse, null, null, null }, |
| 123181 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 123182 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 123183 | .patterns = &.{ |
| 123184 | .{ .src = .{ .to_mem, .none, .none } }, |
| 123185 | }, |
| 123186 | .call_frame = .{ .alignment = .@"16" }, |
| 123187 | .extra_temps = .{ |
| 123188 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123189 | .{ .type = .u128, .kind = .{ .param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123190 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntitf" } }, |
| 123191 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123192 | .unused, |
| 123193 | .unused, |
| 123194 | .unused, |
| 123195 | .unused, |
| 123196 | .unused, |
| 123197 | .unused, |
| 123198 | .unused, |
| 123199 | }, |
| 123200 | .dst_temps = .{ .mem, .unused }, |
| 123201 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 123202 | .each = .{ .once = &.{ |
| 123203 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 123204 | .{ .@"0:", ._, .mov, .tmp1q0, .memi(.src0q, .tmp0), ._, ._ }, |
| 123205 | .{ ._, ._, .mov, .tmp1q1, .memid(.src0q, .tmp0, 8), ._, ._ }, |
| 123206 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 123207 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 123208 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 123209 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 123210 | } }, |
| 123211 | }, .{ |
| 123212 | .required_cc_abi = .win64, |
| 123213 | .required_features = .{ .sse, null, null, null }, |
| 123214 | .src_constraints = .{ .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, .any, .any }, |
| 123215 | .dst_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, .any }, |
| 123216 | .patterns = &.{ |
| 123217 | .{ .src = .{ .to_mem, .none, .none } }, |
| 123218 | }, |
| 123219 | .call_frame = .{ .alignment = .@"16" }, |
| 123220 | .extra_temps = .{ |
| 123221 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123222 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123223 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuntitf" } }, |
| 123224 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123225 | .unused, |
| 123226 | .unused, |
| 123227 | .unused, |
| 123228 | .unused, |
| 123229 | .unused, |
| 123230 | .unused, |
| 123231 | .unused, |
| 123232 | }, |
| 123233 | .dst_temps = .{ .mem, .unused }, |
| 123234 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 123235 | .each = .{ .once = &.{ |
| 123236 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 123237 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.src0, .tmp0), ._, ._ }, |
| 123238 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 123239 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp3x, ._, ._ }, |
| 123240 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 123241 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117919 | 123242 | } }, |
| 117920 | 123243 | }, .{ |
| 117921 | 123244 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -117927,11 +123250,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117927 | 123250 | .call_frame = .{ .alignment = .@"16" }, |
| 117928 | 123251 | .extra_temps = .{ |
| 117929 | 123252 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 117930 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117931 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 117932 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 123253 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123254 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123255 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 117933 | 123256 | .{ .type = .usize, .kind = .{ .extern_func = "__floateitf" } }, |
| 117934 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 123257 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117935 | 123258 | .unused, |
| 117936 | 123259 | .unused, |
| 117937 | 123260 | .unused, |
| ... | ... | @@ -117941,15 +123264,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117941 | 123264 | .dst_temps = .{ .mem, .unused }, |
| 117942 | 123265 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117943 | 123266 | .each = .{ .once = &.{ |
| 117944 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 117945 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 123267 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 123268 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 117946 | 123269 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 117947 | 123270 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 117948 | 123271 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 117949 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 117950 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 117951 | | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 117952 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 123272 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp1), .tmp5x, ._, ._ }, |
| 123273 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 123274 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 123275 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117953 | 123276 | } }, |
| 117954 | 123277 | }, .{ |
| 117955 | 123278 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -117961,11 +123284,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117961 | 123284 | .call_frame = .{ .alignment = .@"16" }, |
| 117962 | 123285 | .extra_temps = .{ |
| 117963 | 123286 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 117964 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117965 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 117966 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 123287 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123288 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123289 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 117967 | 123290 | .{ .type = .usize, .kind = .{ .extern_func = "__floateitf" } }, |
| 117968 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 123291 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 117969 | 123292 | .unused, |
| 117970 | 123293 | .unused, |
| 117971 | 123294 | .unused, |
| ... | ... | @@ -117975,15 +123298,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117975 | 123298 | .dst_temps = .{ .mem, .unused }, |
| 117976 | 123299 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 117977 | 123300 | .each = .{ .once = &.{ |
| 117978 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 117979 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 123301 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 123302 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 117980 | 123303 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 117981 | 123304 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 117982 | 123305 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 117983 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 117984 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 117985 | | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 117986 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 123306 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp1), .tmp5x, ._, ._ }, |
| 123307 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 123308 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 123309 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 117987 | 123310 | } }, |
| 117988 | 123311 | }, .{ |
| 117989 | 123312 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -117995,11 +123318,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 117995 | 123318 | .call_frame = .{ .alignment = .@"16" }, |
| 117996 | 123319 | .extra_temps = .{ |
| 117997 | 123320 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 117998 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 117999 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 118000 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 123321 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123322 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123323 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 118001 | 123324 | .{ .type = .usize, .kind = .{ .extern_func = "__floateitf" } }, |
| 118002 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 123325 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 118003 | 123326 | .unused, |
| 118004 | 123327 | .unused, |
| 118005 | 123328 | .unused, |
| ... | ... | @@ -118009,15 +123332,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 118009 | 123332 | .dst_temps = .{ .mem, .unused }, |
| 118010 | 123333 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 118011 | 123334 | .each = .{ .once = &.{ |
| 118012 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 118013 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 123335 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 123336 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 118014 | 123337 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 118015 | 123338 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 118016 | 123339 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 118017 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 118018 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 118019 | | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 118020 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 123340 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp1), .tmp5x, ._, ._ }, |
| 123341 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 123342 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 123343 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 118021 | 123344 | } }, |
| 118022 | 123345 | }, .{ |
| 118023 | 123346 | .required_features = .{ .@"64bit", .avx, null, null }, |
| ... | ... | @@ -118029,11 +123352,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 118029 | 123352 | .call_frame = .{ .alignment = .@"16" }, |
| 118030 | 123353 | .extra_temps = .{ |
| 118031 | 123354 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 118032 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118033 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 118034 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 123355 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123356 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123357 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 118035 | 123358 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneitf" } }, |
| 118036 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 123359 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 118037 | 123360 | .unused, |
| 118038 | 123361 | .unused, |
| 118039 | 123362 | .unused, |
| ... | ... | @@ -118043,15 +123366,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 118043 | 123366 | .dst_temps = .{ .mem, .unused }, |
| 118044 | 123367 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 118045 | 123368 | .each = .{ .once = &.{ |
| 118046 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 118047 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 123369 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 123370 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 118048 | 123371 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 118049 | 123372 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 118050 | 123373 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 118051 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 118052 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 118053 | | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 118054 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 123374 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp1), .tmp5x, ._, ._ }, |
| 123375 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 123376 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 123377 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 118055 | 123378 | } }, |
| 118056 | 123379 | }, .{ |
| 118057 | 123380 | .required_features = .{ .@"64bit", .sse2, null, null }, |
| ... | ... | @@ -118063,11 +123386,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 118063 | 123386 | .call_frame = .{ .alignment = .@"16" }, |
| 118064 | 123387 | .extra_temps = .{ |
| 118065 | 123388 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 118066 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118067 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 118068 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 123389 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123390 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123391 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 118069 | 123392 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneitf" } }, |
| 118070 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 123393 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 118071 | 123394 | .unused, |
| 118072 | 123395 | .unused, |
| 118073 | 123396 | .unused, |
| ... | ... | @@ -118077,15 +123400,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 118077 | 123400 | .dst_temps = .{ .mem, .unused }, |
| 118078 | 123401 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 118079 | 123402 | .each = .{ .once = &.{ |
| 118080 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 118081 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 123403 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 123404 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 118082 | 123405 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 118083 | 123406 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 118084 | 123407 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 118085 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 118086 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 118087 | | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 118088 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 123408 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp1), .tmp5x, ._, ._ }, |
| 123409 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 123410 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 123411 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 118089 | 123412 | } }, |
| 118090 | 123413 | }, .{ |
| 118091 | 123414 | .required_features = .{ .@"64bit", .sse, null, null }, |
| ... | ... | @@ -118097,11 +123420,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 118097 | 123420 | .call_frame = .{ .alignment = .@"16" }, |
| 118098 | 123421 | .extra_temps = .{ |
| 118099 | 123422 | .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, |
| 118100 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 118101 | | .{ .type = .usize, .kind = .{ .reg = .rdi } }, |
| 118102 | | .{ .type = .usize, .kind = .{ .reg = .rsi } }, |
| 123423 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 123424 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 123425 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 118103 | 123426 | .{ .type = .usize, .kind = .{ .extern_func = "__floatuneitf" } }, |
| 118104 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 123427 | .{ .type = .f128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 118105 | 123428 | .unused, |
| 118106 | 123429 | .unused, |
| 118107 | 123430 | .unused, |
| ... | ... | @@ -118111,15 +123434,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 118111 | 123434 | .dst_temps = .{ .mem, .unused }, |
| 118112 | 123435 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 118113 | 123436 | .each = .{ .once = &.{ |
| 118114 | | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 118115 | | .{ ._, ._, .mov, .tmp1p, .sa(.dst0, .sub_unaligned_size), ._, ._ }, |
| 123437 | .{ ._, ._, .lea, .tmp0p, .mema(.src0, .add_unaligned_size_sub_elem_size), ._, ._ }, |
| 123438 | .{ ._, ._, .mov, .tmp1d, .sia(-16, .dst0, .add_unaligned_size), ._, ._ }, |
| 118116 | 123439 | .{ .@"0:", ._, .mov, .tmp2p, .tmp0p, ._, ._ }, |
| 118117 | 123440 | .{ ._, ._, .mov, .tmp3d, .sa(.src0, .add_bit_size), ._, ._ }, |
| 118118 | 123441 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 118119 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp1, .add_unaligned_size), .tmp5x, ._, ._ }, |
| 118120 | | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .add_src0_elem_size), ._, ._ }, |
| 118121 | | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 118122 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 123442 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp1), .tmp5x, ._, ._ }, |
| 123443 | .{ ._, ._, .lea, .tmp0p, .leaa(.tmp0, .sub_src0_elem_size), ._, ._ }, |
| 123444 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 123445 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 118123 | 123446 | } }, |
| 118124 | 123447 | } }) catch |err| switch (err) { |
| 118125 | 123448 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ |
| ... | ... | @@ -118132,7 +123455,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 118132 | 123455 | }; |
| 118133 | 123456 | try res[0].finish(inst, &.{ty_op.operand}, &ops, cg); |
| 118134 | 123457 | }, |
| 118135 | | .reduce => |air_tag| if (use_old) try cg.airReduce(inst) else { |
| 123458 | .reduce => |air_tag| { |
| 118136 | 123459 | const nan = std.math.nan(f16); |
| 118137 | 123460 | const reduce = air_datas[@intFromEnum(inst)].reduce; |
| 118138 | 123461 | const res_ty = cg.typeOfIndex(inst); |
| ... | ... | @@ -131814,7 +137137,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131814 | 137137 | .call_frame = .{ .alignment = .@"16" }, |
| 131815 | 137138 | .extra_temps = .{ |
| 131816 | 137139 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131817 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 137140 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 131818 | 137141 | .{ .type = .usize, .kind = .{ .extern_func = "__fminh" } }, |
| 131819 | 137142 | .unused, |
| 131820 | 137143 | .unused, |
| ... | ... | @@ -131825,7 +137148,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131825 | 137148 | .unused, |
| 131826 | 137149 | .unused, |
| 131827 | 137150 | }, |
| 131828 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 137151 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 131829 | 137152 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 131830 | 137153 | .each = .{ .once = &.{ |
| 131831 | 137154 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -131847,7 +137170,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131847 | 137170 | .call_frame = .{ .alignment = .@"16" }, |
| 131848 | 137171 | .extra_temps = .{ |
| 131849 | 137172 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131850 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 137173 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 131851 | 137174 | .{ .type = .usize, .kind = .{ .extern_func = "__fminh" } }, |
| 131852 | 137175 | .unused, |
| 131853 | 137176 | .unused, |
| ... | ... | @@ -131858,7 +137181,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131858 | 137181 | .unused, |
| 131859 | 137182 | .unused, |
| 131860 | 137183 | }, |
| 131861 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 137184 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 131862 | 137185 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 131863 | 137186 | .each = .{ .once = &.{ |
| 131864 | 137187 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -131882,7 +137205,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131882 | 137205 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 131883 | 137206 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 131884 | 137207 | .{ .type = .f32, .kind = .mem }, |
| 131885 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 137208 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 131886 | 137209 | .{ .type = .usize, .kind = .{ .extern_func = "__fminh" } }, |
| 131887 | 137210 | .unused, |
| 131888 | 137211 | .unused, |
| ... | ... | @@ -131891,7 +137214,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 131891 | 137214 | .unused, |
| 131892 | 137215 | .unused, |
| 131893 | 137216 | }, |
| 131894 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 137217 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 131895 | 137218 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 131896 | 137219 | .each = .{ .once = &.{ |
| 131897 | 137220 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -133482,7 +138805,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 133482 | 138805 | .call_frame = .{ .alignment = .@"16" }, |
| 133483 | 138806 | .extra_temps = .{ |
| 133484 | 138807 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 133485 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 138808 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 133486 | 138809 | .{ .type = .usize, .kind = .{ .extern_func = "fminq" } }, |
| 133487 | 138810 | .unused, |
| 133488 | 138811 | .unused, |
| ... | ... | @@ -133493,7 +138816,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 133493 | 138816 | .unused, |
| 133494 | 138817 | .unused, |
| 133495 | 138818 | }, |
| 133496 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 138819 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 133497 | 138820 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 133498 | 138821 | .each = .{ .once = &.{ |
| 133499 | 138822 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -133513,7 +138836,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 133513 | 138836 | .call_frame = .{ .alignment = .@"16" }, |
| 133514 | 138837 | .extra_temps = .{ |
| 133515 | 138838 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 133516 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 138839 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 133517 | 138840 | .{ .type = .usize, .kind = .{ .extern_func = "fminq" } }, |
| 133518 | 138841 | .unused, |
| 133519 | 138842 | .unused, |
| ... | ... | @@ -133524,7 +138847,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 133524 | 138847 | .unused, |
| 133525 | 138848 | .unused, |
| 133526 | 138849 | }, |
| 133527 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 138850 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 133528 | 138851 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 133529 | 138852 | .each = .{ .once = &.{ |
| 133530 | 138853 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -133544,7 +138867,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 133544 | 138867 | .call_frame = .{ .alignment = .@"16" }, |
| 133545 | 138868 | .extra_temps = .{ |
| 133546 | 138869 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 133547 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 138870 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 133548 | 138871 | .{ .type = .usize, .kind = .{ .extern_func = "fminq" } }, |
| 133549 | 138872 | .unused, |
| 133550 | 138873 | .unused, |
| ... | ... | @@ -133555,7 +138878,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 133555 | 138878 | .unused, |
| 133556 | 138879 | .unused, |
| 133557 | 138880 | }, |
| 133558 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 138881 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 133559 | 138882 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 133560 | 138883 | .each = .{ .once = &.{ |
| 133561 | 138884 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -141934,7 +147257,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 141934 | 147257 | .call_frame = .{ .alignment = .@"16" }, |
| 141935 | 147258 | .extra_temps = .{ |
| 141936 | 147259 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 141937 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 147260 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 141938 | 147261 | .{ .type = .usize, .kind = .{ .extern_func = "__fmaxh" } }, |
| 141939 | 147262 | .unused, |
| 141940 | 147263 | .unused, |
| ... | ... | @@ -141945,7 +147268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 141945 | 147268 | .unused, |
| 141946 | 147269 | .unused, |
| 141947 | 147270 | }, |
| 141948 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 147271 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 141949 | 147272 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 141950 | 147273 | .each = .{ .once = &.{ |
| 141951 | 147274 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -141967,7 +147290,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 141967 | 147290 | .call_frame = .{ .alignment = .@"16" }, |
| 141968 | 147291 | .extra_temps = .{ |
| 141969 | 147292 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 141970 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 147293 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 141971 | 147294 | .{ .type = .usize, .kind = .{ .extern_func = "__fmaxh" } }, |
| 141972 | 147295 | .unused, |
| 141973 | 147296 | .unused, |
| ... | ... | @@ -141978,7 +147301,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 141978 | 147301 | .unused, |
| 141979 | 147302 | .unused, |
| 141980 | 147303 | }, |
| 141981 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 147304 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 141982 | 147305 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 141983 | 147306 | .each = .{ .once = &.{ |
| 141984 | 147307 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -142002,7 +147325,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 142002 | 147325 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 142003 | 147326 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 142004 | 147327 | .{ .type = .f32, .kind = .mem }, |
| 142005 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 147328 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 142006 | 147329 | .{ .type = .usize, .kind = .{ .extern_func = "__fmaxh" } }, |
| 142007 | 147330 | .unused, |
| 142008 | 147331 | .unused, |
| ... | ... | @@ -142011,7 +147334,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 142011 | 147334 | .unused, |
| 142012 | 147335 | .unused, |
| 142013 | 147336 | }, |
| 142014 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 147337 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 142015 | 147338 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 142016 | 147339 | .each = .{ .once = &.{ |
| 142017 | 147340 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -143610,7 +148933,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 143610 | 148933 | .call_frame = .{ .alignment = .@"16" }, |
| 143611 | 148934 | .extra_temps = .{ |
| 143612 | 148935 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 143613 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 148936 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 143614 | 148937 | .{ .type = .usize, .kind = .{ .extern_func = "fmaxq" } }, |
| 143615 | 148938 | .unused, |
| 143616 | 148939 | .unused, |
| ... | ... | @@ -143621,7 +148944,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 143621 | 148944 | .unused, |
| 143622 | 148945 | .unused, |
| 143623 | 148946 | }, |
| 143624 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 148947 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 143625 | 148948 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 143626 | 148949 | .each = .{ .once = &.{ |
| 143627 | 148950 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -143641,7 +148964,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 143641 | 148964 | .call_frame = .{ .alignment = .@"16" }, |
| 143642 | 148965 | .extra_temps = .{ |
| 143643 | 148966 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 143644 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 148967 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 143645 | 148968 | .{ .type = .usize, .kind = .{ .extern_func = "fmaxq" } }, |
| 143646 | 148969 | .unused, |
| 143647 | 148970 | .unused, |
| ... | ... | @@ -143652,7 +148975,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 143652 | 148975 | .unused, |
| 143653 | 148976 | .unused, |
| 143654 | 148977 | }, |
| 143655 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 148978 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 143656 | 148979 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 143657 | 148980 | .each = .{ .once = &.{ |
| 143658 | 148981 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -143672,7 +148995,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 143672 | 148995 | .call_frame = .{ .alignment = .@"16" }, |
| 143673 | 148996 | .extra_temps = .{ |
| 143674 | 148997 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 143675 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 148998 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 143676 | 148999 | .{ .type = .usize, .kind = .{ .extern_func = "fmaxq" } }, |
| 143677 | 149000 | .unused, |
| 143678 | 149001 | .unused, |
| ... | ... | @@ -143683,7 +149006,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 143683 | 149006 | .unused, |
| 143684 | 149007 | .unused, |
| 143685 | 149008 | }, |
| 143686 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 149009 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 143687 | 149010 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 143688 | 149011 | .each = .{ .once = &.{ |
| 143689 | 149012 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -147548,7 +152871,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 147548 | 152871 | .unused, |
| 147549 | 152872 | .unused, |
| 147550 | 152873 | }, |
| 147551 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 152874 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 147552 | 152875 | .clobbers = .{ .eflags = true }, |
| 147553 | 152876 | .each = .{ .once = &.{ |
| 147554 | 152877 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -147581,7 +152904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 147581 | 152904 | .unused, |
| 147582 | 152905 | .unused, |
| 147583 | 152906 | }, |
| 147584 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 152907 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 147585 | 152908 | .clobbers = .{ .eflags = true }, |
| 147586 | 152909 | .each = .{ .once = &.{ |
| 147587 | 152910 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -147605,7 +152928,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 147605 | 152928 | .call_frame = .{ .alignment = .@"16" }, |
| 147606 | 152929 | .extra_temps = .{ |
| 147607 | 152930 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 147608 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 152931 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 147609 | 152932 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| 147610 | 152933 | .unused, |
| 147611 | 152934 | .unused, |
| ... | ... | @@ -147616,7 +152939,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 147616 | 152939 | .unused, |
| 147617 | 152940 | .unused, |
| 147618 | 152941 | }, |
| 147619 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 152942 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 147620 | 152943 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 147621 | 152944 | .each = .{ .once = &.{ |
| 147622 | 152945 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -147638,7 +152961,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 147638 | 152961 | .call_frame = .{ .alignment = .@"16" }, |
| 147639 | 152962 | .extra_temps = .{ |
| 147640 | 152963 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 147641 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 152964 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 147642 | 152965 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| 147643 | 152966 | .unused, |
| 147644 | 152967 | .unused, |
| ... | ... | @@ -147649,7 +152972,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 147649 | 152972 | .unused, |
| 147650 | 152973 | .unused, |
| 147651 | 152974 | }, |
| 147652 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 152975 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 147653 | 152976 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 147654 | 152977 | .each = .{ .once = &.{ |
| 147655 | 152978 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -147673,7 +152996,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 147673 | 152996 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 147674 | 152997 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 147675 | 152998 | .{ .type = .f32, .kind = .mem }, |
| 147676 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 152999 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 147677 | 153000 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| 147678 | 153001 | .unused, |
| 147679 | 153002 | .unused, |
| ... | ... | @@ -147682,7 +153005,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 147682 | 153005 | .unused, |
| 147683 | 153006 | .unused, |
| 147684 | 153007 | }, |
| 147685 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 153008 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 147686 | 153009 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 147687 | 153010 | .each = .{ .once = &.{ |
| 147688 | 153011 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -148150,6 +153473,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 148150 | 153473 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 148151 | 153474 | } }, |
| 148152 | 153475 | }, .{ |
| 153476 | .required_abi = .gnu, |
| 148153 | 153477 | .required_features = .{ .x87, null, null, null }, |
| 148154 | 153478 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 148155 | 153479 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| ... | ... | @@ -148157,8 +153481,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 148157 | 153481 | .{ .src = .{ .to_mem, .none, .none } }, |
| 148158 | 153482 | }, |
| 148159 | 153483 | .extra_temps = .{ |
| 148160 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 148161 | 153484 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 153485 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 148162 | 153486 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 148163 | 153487 | .unused, |
| 148164 | 153488 | .unused, |
| ... | ... | @@ -148172,13 +153496,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 148172 | 153496 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 148173 | 153497 | .clobbers = .{ .eflags = true }, |
| 148174 | 153498 | .each = .{ .once = &.{ |
| 148175 | | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| 148176 | 153499 | .{ ._, .f_, .ld, .mem(.src0t), ._, ._, ._ }, |
| 148177 | | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 153500 | .{ ._, ._, .mov, .tmp1p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| 153501 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 148178 | 153502 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 148179 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 153503 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 153504 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 153505 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 153506 | } }, |
| 153507 | }, .{ |
| 153508 | .required_abi = .msvc, |
| 153509 | .required_features = .{ .x87, null, null, null }, |
| 153510 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 153511 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 153512 | .patterns = &.{ |
| 153513 | .{ .src = .{ .to_mem, .none, .none } }, |
| 153514 | }, |
| 153515 | .extra_temps = .{ |
| 153516 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 153517 | .{ .type = .u16, .kind = .mem }, |
| 153518 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 153519 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 153520 | .unused, |
| 153521 | .unused, |
| 153522 | .unused, |
| 153523 | .unused, |
| 153524 | .unused, |
| 153525 | .unused, |
| 153526 | .unused, |
| 153527 | }, |
| 153528 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 153529 | .clobbers = .{ .eflags = true }, |
| 153530 | .each = .{ .once = &.{ |
| 153531 | .{ ._, .f_, .ld, .mem(.src0t), ._, ._, ._ }, |
| 153532 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 153533 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 153534 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 153535 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 153536 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 153537 | .{ ._, ._, .mov, .tmp2p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| 153538 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp2, .add_unaligned_size), ._, ._, ._ }, |
| 153539 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 153540 | .{ ._, ._, .add, .tmp2p, .si(16), ._, ._ }, |
| 148180 | 153541 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 148181 | 153542 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 153543 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 148182 | 153544 | } }, |
| 148183 | 153545 | }, .{ |
| 148184 | 153546 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -148190,7 +153552,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 148190 | 153552 | .call_frame = .{ .alignment = .@"16" }, |
| 148191 | 153553 | .extra_temps = .{ |
| 148192 | 153554 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 148193 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 153555 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 148194 | 153556 | .{ .type = .usize, .kind = .{ .extern_func = "__addtf3" } }, |
| 148195 | 153557 | .unused, |
| 148196 | 153558 | .unused, |
| ... | ... | @@ -148201,7 +153563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 148201 | 153563 | .unused, |
| 148202 | 153564 | .unused, |
| 148203 | 153565 | }, |
| 148204 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 153566 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 148205 | 153567 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 148206 | 153568 | .each = .{ .once = &.{ |
| 148207 | 153569 | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| ... | ... | @@ -148221,7 +153583,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 148221 | 153583 | .call_frame = .{ .alignment = .@"16" }, |
| 148222 | 153584 | .extra_temps = .{ |
| 148223 | 153585 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 148224 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 153586 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 148225 | 153587 | .{ .type = .usize, .kind = .{ .extern_func = "__addtf3" } }, |
| 148226 | 153588 | .unused, |
| 148227 | 153589 | .unused, |
| ... | ... | @@ -148232,7 +153594,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 148232 | 153594 | .unused, |
| 148233 | 153595 | .unused, |
| 148234 | 153596 | }, |
| 148235 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 153597 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 148236 | 153598 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 148237 | 153599 | .each = .{ .once = &.{ |
| 148238 | 153600 | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| ... | ... | @@ -148252,7 +153614,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 148252 | 153614 | .call_frame = .{ .alignment = .@"16" }, |
| 148253 | 153615 | .extra_temps = .{ |
| 148254 | 153616 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 148255 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 153617 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 148256 | 153618 | .{ .type = .usize, .kind = .{ .extern_func = "__addtf3" } }, |
| 148257 | 153619 | .unused, |
| 148258 | 153620 | .unused, |
| ... | ... | @@ -148263,7 +153625,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 148263 | 153625 | .unused, |
| 148264 | 153626 | .unused, |
| 148265 | 153627 | }, |
| 148266 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 153628 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 148267 | 153629 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 148268 | 153630 | .each = .{ .once = &.{ |
| 148269 | 153631 | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| ... | ... | @@ -151240,7 +156602,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151240 | 156602 | .unused, |
| 151241 | 156603 | .unused, |
| 151242 | 156604 | }, |
| 151243 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 156605 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 151244 | 156606 | .clobbers = .{ .eflags = true }, |
| 151245 | 156607 | .each = .{ .once = &.{ |
| 151246 | 156608 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -151264,7 +156626,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151264 | 156626 | .call_frame = .{ .alignment = .@"16" }, |
| 151265 | 156627 | .extra_temps = .{ |
| 151266 | 156628 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 151267 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 156629 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 151268 | 156630 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 151269 | 156631 | .unused, |
| 151270 | 156632 | .unused, |
| ... | ... | @@ -151275,7 +156637,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151275 | 156637 | .unused, |
| 151276 | 156638 | .unused, |
| 151277 | 156639 | }, |
| 151278 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 156640 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 151279 | 156641 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 151280 | 156642 | .each = .{ .once = &.{ |
| 151281 | 156643 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -151297,7 +156659,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151297 | 156659 | .call_frame = .{ .alignment = .@"16" }, |
| 151298 | 156660 | .extra_temps = .{ |
| 151299 | 156661 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 151300 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 156662 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 151301 | 156663 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 151302 | 156664 | .unused, |
| 151303 | 156665 | .unused, |
| ... | ... | @@ -151308,7 +156670,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151308 | 156670 | .unused, |
| 151309 | 156671 | .unused, |
| 151310 | 156672 | }, |
| 151311 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 156673 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 151312 | 156674 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 151313 | 156675 | .each = .{ .once = &.{ |
| 151314 | 156676 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -151332,7 +156694,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151332 | 156694 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 151333 | 156695 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 151334 | 156696 | .{ .type = .f32, .kind = .mem }, |
| 151335 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 156697 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 151336 | 156698 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 151337 | 156699 | .unused, |
| 151338 | 156700 | .unused, |
| ... | ... | @@ -151341,7 +156703,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151341 | 156703 | .unused, |
| 151342 | 156704 | .unused, |
| 151343 | 156705 | }, |
| 151344 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 156706 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 151345 | 156707 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 151346 | 156708 | .each = .{ .once = &.{ |
| 151347 | 156709 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -151689,6 +157051,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151689 | 157051 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 151690 | 157052 | } }, |
| 151691 | 157053 | }, .{ |
| 157054 | .required_abi = .gnu, |
| 151692 | 157055 | .required_features = .{ .x87, null, null, null }, |
| 151693 | 157056 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 151694 | 157057 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| ... | ... | @@ -151696,8 +157059,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151696 | 157059 | .{ .src = .{ .to_mem, .none, .none } }, |
| 151697 | 157060 | }, |
| 151698 | 157061 | .extra_temps = .{ |
| 151699 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 151700 | 157062 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 157063 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 151701 | 157064 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 151702 | 157065 | .unused, |
| 151703 | 157066 | .unused, |
| ... | ... | @@ -151711,14 +157074,52 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151711 | 157074 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 151712 | 157075 | .clobbers = .{ .eflags = true }, |
| 151713 | 157076 | .each = .{ .once = &.{ |
| 151714 | | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| 151715 | 157077 | .{ ._, .f_, .ld, .mem(.src0t), ._, ._, ._ }, |
| 151716 | | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 157078 | .{ ._, ._, .mov, .tmp1p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| 157079 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp1, .add_unaligned_size), ._, ._, ._ }, |
| 151717 | 157080 | .{ ._, .f_p, .mul, ._, ._, ._, ._ }, |
| 151718 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 157081 | .{ ._, ._, .add, .tmp1p, .si(16), ._, ._ }, |
| 151719 | 157082 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 151720 | 157083 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 151721 | 157084 | } }, |
| 157085 | }, .{ |
| 157086 | .required_abi = .msvc, |
| 157087 | .required_features = .{ .x87, null, null, null }, |
| 157088 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 157089 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 157090 | .patterns = &.{ |
| 157091 | .{ .src = .{ .to_mem, .none, .none } }, |
| 157092 | }, |
| 157093 | .extra_temps = .{ |
| 157094 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 157095 | .{ .type = .u16, .kind = .mem }, |
| 157096 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 157097 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 157098 | .unused, |
| 157099 | .unused, |
| 157100 | .unused, |
| 157101 | .unused, |
| 157102 | .unused, |
| 157103 | .unused, |
| 157104 | .unused, |
| 157105 | }, |
| 157106 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 157107 | .clobbers = .{ .eflags = true }, |
| 157108 | .each = .{ .once = &.{ |
| 157109 | .{ ._, .f_, .ld, .mem(.src0t), ._, ._, ._ }, |
| 157110 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 157111 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 157112 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 157113 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 157114 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 157115 | .{ ._, ._, .mov, .tmp2p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| 157116 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp2, .add_unaligned_size), ._, ._, ._ }, |
| 157117 | .{ ._, .f_p, .mul, ._, ._, ._, ._ }, |
| 157118 | .{ ._, ._, .add, .tmp2p, .si(16), ._, ._ }, |
| 157119 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 157120 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 157121 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 157122 | } }, |
| 151722 | 157123 | }, .{ |
| 151723 | 157124 | .required_features = .{ .avx, null, null, null }, |
| 151724 | 157125 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| ... | ... | @@ -151729,7 +157130,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151729 | 157130 | .call_frame = .{ .alignment = .@"16" }, |
| 151730 | 157131 | .extra_temps = .{ |
| 151731 | 157132 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 151732 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 157133 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 151733 | 157134 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 151734 | 157135 | .unused, |
| 151735 | 157136 | .unused, |
| ... | ... | @@ -151740,7 +157141,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151740 | 157141 | .unused, |
| 151741 | 157142 | .unused, |
| 151742 | 157143 | }, |
| 151743 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 157144 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 151744 | 157145 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 151745 | 157146 | .each = .{ .once = &.{ |
| 151746 | 157147 | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| ... | ... | @@ -151760,7 +157161,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151760 | 157161 | .call_frame = .{ .alignment = .@"16" }, |
| 151761 | 157162 | .extra_temps = .{ |
| 151762 | 157163 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 151763 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 157164 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 151764 | 157165 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 151765 | 157166 | .unused, |
| 151766 | 157167 | .unused, |
| ... | ... | @@ -151771,7 +157172,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151771 | 157172 | .unused, |
| 151772 | 157173 | .unused, |
| 151773 | 157174 | }, |
| 151774 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 157175 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 151775 | 157176 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 151776 | 157177 | .each = .{ .once = &.{ |
| 151777 | 157178 | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| ... | ... | @@ -151791,7 +157192,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151791 | 157192 | .call_frame = .{ .alignment = .@"16" }, |
| 151792 | 157193 | .extra_temps = .{ |
| 151793 | 157194 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 151794 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 157195 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 151795 | 157196 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 151796 | 157197 | .unused, |
| 151797 | 157198 | .unused, |
| ... | ... | @@ -151802,7 +157203,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151802 | 157203 | .unused, |
| 151803 | 157204 | .unused, |
| 151804 | 157205 | }, |
| 151805 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 157206 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 151806 | 157207 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 151807 | 157208 | .each = .{ .once = &.{ |
| 151808 | 157209 | .{ ._, ._, .mov, .tmp0p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| ... | ... | @@ -151836,7 +157237,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 151836 | 157237 | } |
| 151837 | 157238 | try res[0].finish(inst, &.{reduce.operand}, &ops, cg); |
| 151838 | 157239 | }, |
| 151839 | | .reduce_optimized => |air_tag| if (use_old) try cg.airReduce(inst) else { |
| 157240 | .reduce_optimized => |air_tag| { |
| 151840 | 157241 | const inf = std.math.inf(f16); |
| 151841 | 157242 | const reduce = air_datas[@intFromEnum(inst)].reduce; |
| 151842 | 157243 | var ops = try cg.tempsFromOperands(inst, .{reduce.operand}); |
| ... | ... | @@ -152303,7 +157704,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 152303 | 157704 | .call_frame = .{ .alignment = .@"16" }, |
| 152304 | 157705 | .extra_temps = .{ |
| 152305 | 157706 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 152306 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 157707 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 152307 | 157708 | .{ .type = .usize, .kind = .{ .extern_func = "__fminh" } }, |
| 152308 | 157709 | .unused, |
| 152309 | 157710 | .unused, |
| ... | ... | @@ -152314,7 +157715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 152314 | 157715 | .unused, |
| 152315 | 157716 | .unused, |
| 152316 | 157717 | }, |
| 152317 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 157718 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 152318 | 157719 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 152319 | 157720 | .each = .{ .once = &.{ |
| 152320 | 157721 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -152336,7 +157737,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 152336 | 157737 | .call_frame = .{ .alignment = .@"16" }, |
| 152337 | 157738 | .extra_temps = .{ |
| 152338 | 157739 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 152339 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 157740 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 152340 | 157741 | .{ .type = .usize, .kind = .{ .extern_func = "__fminh" } }, |
| 152341 | 157742 | .unused, |
| 152342 | 157743 | .unused, |
| ... | ... | @@ -152347,7 +157748,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 152347 | 157748 | .unused, |
| 152348 | 157749 | .unused, |
| 152349 | 157750 | }, |
| 152350 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 157751 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 152351 | 157752 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 152352 | 157753 | .each = .{ .once = &.{ |
| 152353 | 157754 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -152371,7 +157772,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 152371 | 157772 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 152372 | 157773 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 152373 | 157774 | .{ .type = .f32, .kind = .mem }, |
| 152374 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 157775 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 152375 | 157776 | .{ .type = .usize, .kind = .{ .extern_func = "__fminh" } }, |
| 152376 | 157777 | .unused, |
| 152377 | 157778 | .unused, |
| ... | ... | @@ -152380,7 +157781,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 152380 | 157781 | .unused, |
| 152381 | 157782 | .unused, |
| 152382 | 157783 | }, |
| 152383 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 157784 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 152384 | 157785 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 152385 | 157786 | .each = .{ .once = &.{ |
| 152386 | 157787 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -153451,7 +158852,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 153451 | 158852 | .call_frame = .{ .alignment = .@"16" }, |
| 153452 | 158853 | .extra_temps = .{ |
| 153453 | 158854 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 153454 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 158855 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 153455 | 158856 | .{ .type = .usize, .kind = .{ .extern_func = "fminq" } }, |
| 153456 | 158857 | .unused, |
| 153457 | 158858 | .unused, |
| ... | ... | @@ -153462,7 +158863,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 153462 | 158863 | .unused, |
| 153463 | 158864 | .unused, |
| 153464 | 158865 | }, |
| 153465 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 158866 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 153466 | 158867 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 153467 | 158868 | .each = .{ .once = &.{ |
| 153468 | 158869 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -153482,7 +158883,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 153482 | 158883 | .call_frame = .{ .alignment = .@"16" }, |
| 153483 | 158884 | .extra_temps = .{ |
| 153484 | 158885 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 153485 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 158886 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 153486 | 158887 | .{ .type = .usize, .kind = .{ .extern_func = "fminq" } }, |
| 153487 | 158888 | .unused, |
| 153488 | 158889 | .unused, |
| ... | ... | @@ -153493,7 +158894,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 153493 | 158894 | .unused, |
| 153494 | 158895 | .unused, |
| 153495 | 158896 | }, |
| 153496 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 158897 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 153497 | 158898 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 153498 | 158899 | .each = .{ .once = &.{ |
| 153499 | 158900 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -153513,7 +158914,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 153513 | 158914 | .call_frame = .{ .alignment = .@"16" }, |
| 153514 | 158915 | .extra_temps = .{ |
| 153515 | 158916 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 153516 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 158917 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 153517 | 158918 | .{ .type = .usize, .kind = .{ .extern_func = "fminq" } }, |
| 153518 | 158919 | .unused, |
| 153519 | 158920 | .unused, |
| ... | ... | @@ -153524,7 +158925,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 153524 | 158925 | .unused, |
| 153525 | 158926 | .unused, |
| 153526 | 158927 | }, |
| 153527 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 158928 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 153528 | 158929 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 153529 | 158930 | .each = .{ .once = &.{ |
| 153530 | 158931 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -153995,7 +159396,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 153995 | 159396 | .call_frame = .{ .alignment = .@"16" }, |
| 153996 | 159397 | .extra_temps = .{ |
| 153997 | 159398 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 153998 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 159399 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 153999 | 159400 | .{ .type = .usize, .kind = .{ .extern_func = "__fmaxh" } }, |
| 154000 | 159401 | .unused, |
| 154001 | 159402 | .unused, |
| ... | ... | @@ -154006,7 +159407,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 154006 | 159407 | .unused, |
| 154007 | 159408 | .unused, |
| 154008 | 159409 | }, |
| 154009 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 159410 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 154010 | 159411 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 154011 | 159412 | .each = .{ .once = &.{ |
| 154012 | 159413 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -154028,7 +159429,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 154028 | 159429 | .call_frame = .{ .alignment = .@"16" }, |
| 154029 | 159430 | .extra_temps = .{ |
| 154030 | 159431 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 154031 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 159432 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 154032 | 159433 | .{ .type = .usize, .kind = .{ .extern_func = "__fmaxh" } }, |
| 154033 | 159434 | .unused, |
| 154034 | 159435 | .unused, |
| ... | ... | @@ -154039,7 +159440,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 154039 | 159440 | .unused, |
| 154040 | 159441 | .unused, |
| 154041 | 159442 | }, |
| 154042 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 159443 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 154043 | 159444 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 154044 | 159445 | .each = .{ .once = &.{ |
| 154045 | 159446 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -154063,7 +159464,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 154063 | 159464 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 154064 | 159465 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 154065 | 159466 | .{ .type = .f32, .kind = .mem }, |
| 154066 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 159467 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 154067 | 159468 | .{ .type = .usize, .kind = .{ .extern_func = "__fmaxh" } }, |
| 154068 | 159469 | .unused, |
| 154069 | 159470 | .unused, |
| ... | ... | @@ -154072,7 +159473,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 154072 | 159473 | .unused, |
| 154073 | 159474 | .unused, |
| 154074 | 159475 | }, |
| 154075 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 159476 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 154076 | 159477 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 154077 | 159478 | .each = .{ .once = &.{ |
| 154078 | 159479 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -155143,7 +160544,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 155143 | 160544 | .call_frame = .{ .alignment = .@"16" }, |
| 155144 | 160545 | .extra_temps = .{ |
| 155145 | 160546 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 155146 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 160547 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 155147 | 160548 | .{ .type = .usize, .kind = .{ .extern_func = "fmaxq" } }, |
| 155148 | 160549 | .unused, |
| 155149 | 160550 | .unused, |
| ... | ... | @@ -155154,7 +160555,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 155154 | 160555 | .unused, |
| 155155 | 160556 | .unused, |
| 155156 | 160557 | }, |
| 155157 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 160558 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 155158 | 160559 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 155159 | 160560 | .each = .{ .once = &.{ |
| 155160 | 160561 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -155174,7 +160575,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 155174 | 160575 | .call_frame = .{ .alignment = .@"16" }, |
| 155175 | 160576 | .extra_temps = .{ |
| 155176 | 160577 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 155177 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 160578 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 155178 | 160579 | .{ .type = .usize, .kind = .{ .extern_func = "fmaxq" } }, |
| 155179 | 160580 | .unused, |
| 155180 | 160581 | .unused, |
| ... | ... | @@ -155185,7 +160586,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 155185 | 160586 | .unused, |
| 155186 | 160587 | .unused, |
| 155187 | 160588 | }, |
| 155188 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 160589 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 155189 | 160590 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 155190 | 160591 | .each = .{ .once = &.{ |
| 155191 | 160592 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -155205,7 +160606,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 155205 | 160606 | .call_frame = .{ .alignment = .@"16" }, |
| 155206 | 160607 | .extra_temps = .{ |
| 155207 | 160608 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 155208 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 160609 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 155209 | 160610 | .{ .type = .usize, .kind = .{ .extern_func = "fmaxq" } }, |
| 155210 | 160611 | .unused, |
| 155211 | 160612 | .unused, |
| ... | ... | @@ -155216,7 +160617,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 155216 | 160617 | .unused, |
| 155217 | 160618 | .unused, |
| 155218 | 160619 | }, |
| 155219 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 160620 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 155220 | 160621 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 155221 | 160622 | .each = .{ .once = &.{ |
| 155222 | 160623 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -155936,7 +161337,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 155936 | 161337 | .call_frame = .{ .alignment = .@"16" }, |
| 155937 | 161338 | .extra_temps = .{ |
| 155938 | 161339 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 155939 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 161340 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 155940 | 161341 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| 155941 | 161342 | .unused, |
| 155942 | 161343 | .unused, |
| ... | ... | @@ -155947,7 +161348,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 155947 | 161348 | .unused, |
| 155948 | 161349 | .unused, |
| 155949 | 161350 | }, |
| 155950 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 161351 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 155951 | 161352 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 155952 | 161353 | .each = .{ .once = &.{ |
| 155953 | 161354 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -155969,7 +161370,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 155969 | 161370 | .call_frame = .{ .alignment = .@"16" }, |
| 155970 | 161371 | .extra_temps = .{ |
| 155971 | 161372 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 155972 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 161373 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 155973 | 161374 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| 155974 | 161375 | .unused, |
| 155975 | 161376 | .unused, |
| ... | ... | @@ -155980,7 +161381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 155980 | 161381 | .unused, |
| 155981 | 161382 | .unused, |
| 155982 | 161383 | }, |
| 155983 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 161384 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 155984 | 161385 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 155985 | 161386 | .each = .{ .once = &.{ |
| 155986 | 161387 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -156004,7 +161405,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 156004 | 161405 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 156005 | 161406 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 156006 | 161407 | .{ .type = .f32, .kind = .mem }, |
| 156007 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 161408 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 156008 | 161409 | .{ .type = .usize, .kind = .{ .extern_func = "__addhf3" } }, |
| 156009 | 161410 | .unused, |
| 156010 | 161411 | .unused, |
| ... | ... | @@ -156013,7 +161414,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 156013 | 161414 | .unused, |
| 156014 | 161415 | .unused, |
| 156015 | 161416 | }, |
| 156016 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 161417 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 156017 | 161418 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 156018 | 161419 | .each = .{ .once = &.{ |
| 156019 | 161420 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -157362,6 +162763,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157362 | 162763 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 157363 | 162764 | } }, |
| 157364 | 162765 | }, .{ |
| 162766 | .required_abi = .gnu, |
| 157365 | 162767 | .required_features = .{ .x87, null, null, null }, |
| 157366 | 162768 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 157367 | 162769 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| ... | ... | @@ -157369,8 +162771,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157369 | 162771 | .{ .src = .{ .to_mem, .none, .none } }, |
| 157370 | 162772 | }, |
| 157371 | 162773 | .extra_temps = .{ |
| 157372 | | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 157373 | 162774 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 162775 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 157374 | 162776 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 157375 | 162777 | .unused, |
| 157376 | 162778 | .unused, |
| ... | ... | @@ -157384,14 +162786,52 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157384 | 162786 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 157385 | 162787 | .clobbers = .{ .eflags = true }, |
| 157386 | 162788 | .each = .{ .once = &.{ |
| 157387 | | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 157388 | 162789 | .{ ._, .f_, .ld, .memad(.src0t, .add_unaligned_size, -16), ._, ._, ._ }, |
| 157389 | | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp0), ._, ._, ._ }, |
| 162790 | .{ ._, ._, .mov, .tmp1d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| 162791 | .{ .@"0:", .f_, .ld, .memi(.src0t, .tmp1), ._, ._, ._ }, |
| 157390 | 162792 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 157391 | | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 162793 | .{ ._, ._, .sub, .tmp1d, .si(16), ._, ._ }, |
| 157392 | 162794 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 157393 | 162795 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 157394 | 162796 | } }, |
| 162797 | }, .{ |
| 162798 | .required_abi = .msvc, |
| 162799 | .required_features = .{ .x87, null, null, null }, |
| 162800 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 162801 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 162802 | .patterns = &.{ |
| 162803 | .{ .src = .{ .to_mem, .none, .none } }, |
| 162804 | }, |
| 162805 | .extra_temps = .{ |
| 162806 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 162807 | .{ .type = .u16, .kind = .mem }, |
| 162808 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 162809 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 162810 | .unused, |
| 162811 | .unused, |
| 162812 | .unused, |
| 162813 | .unused, |
| 162814 | .unused, |
| 162815 | .unused, |
| 162816 | .unused, |
| 162817 | }, |
| 162818 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 162819 | .clobbers = .{ .eflags = true }, |
| 162820 | .each = .{ .once = &.{ |
| 162821 | .{ ._, .f_, .ld, .mem(.src0t), ._, ._, ._ }, |
| 162822 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 162823 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 162824 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 162825 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 162826 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 162827 | .{ ._, ._, .mov, .tmp2p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| 162828 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp2, .add_unaligned_size), ._, ._, ._ }, |
| 162829 | .{ ._, .f_p, .add, ._, ._, ._, ._ }, |
| 162830 | .{ ._, ._, .add, .tmp2p, .si(16), ._, ._ }, |
| 162831 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 162832 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 162833 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 162834 | } }, |
| 157395 | 162835 | }, .{ |
| 157396 | 162836 | .required_features = .{ .avx, null, null, null }, |
| 157397 | 162837 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| ... | ... | @@ -157402,7 +162842,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157402 | 162842 | .call_frame = .{ .alignment = .@"16" }, |
| 157403 | 162843 | .extra_temps = .{ |
| 157404 | 162844 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 157405 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 162845 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 157406 | 162846 | .{ .type = .usize, .kind = .{ .extern_func = "__addtf3" } }, |
| 157407 | 162847 | .unused, |
| 157408 | 162848 | .unused, |
| ... | ... | @@ -157413,7 +162853,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157413 | 162853 | .unused, |
| 157414 | 162854 | .unused, |
| 157415 | 162855 | }, |
| 157416 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 162856 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 157417 | 162857 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 157418 | 162858 | .each = .{ .once = &.{ |
| 157419 | 162859 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -157433,7 +162873,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157433 | 162873 | .call_frame = .{ .alignment = .@"16" }, |
| 157434 | 162874 | .extra_temps = .{ |
| 157435 | 162875 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 157436 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 162876 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 157437 | 162877 | .{ .type = .usize, .kind = .{ .extern_func = "__addtf3" } }, |
| 157438 | 162878 | .unused, |
| 157439 | 162879 | .unused, |
| ... | ... | @@ -157444,7 +162884,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157444 | 162884 | .unused, |
| 157445 | 162885 | .unused, |
| 157446 | 162886 | }, |
| 157447 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 162887 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 157448 | 162888 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 157449 | 162889 | .each = .{ .once = &.{ |
| 157450 | 162890 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -157464,7 +162904,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157464 | 162904 | .call_frame = .{ .alignment = .@"16" }, |
| 157465 | 162905 | .extra_temps = .{ |
| 157466 | 162906 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 157467 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 162907 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 157468 | 162908 | .{ .type = .usize, .kind = .{ .extern_func = "__addtf3" } }, |
| 157469 | 162909 | .unused, |
| 157470 | 162910 | .unused, |
| ... | ... | @@ -157475,7 +162915,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157475 | 162915 | .unused, |
| 157476 | 162916 | .unused, |
| 157477 | 162917 | }, |
| 157478 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 162918 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 157479 | 162919 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 157480 | 162920 | .each = .{ .once = &.{ |
| 157481 | 162921 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -157946,7 +163386,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157946 | 163386 | .call_frame = .{ .alignment = .@"16" }, |
| 157947 | 163387 | .extra_temps = .{ |
| 157948 | 163388 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 157949 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 163389 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 157950 | 163390 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 157951 | 163391 | .unused, |
| 157952 | 163392 | .unused, |
| ... | ... | @@ -157957,7 +163397,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157957 | 163397 | .unused, |
| 157958 | 163398 | .unused, |
| 157959 | 163399 | }, |
| 157960 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 163400 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 157961 | 163401 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 157962 | 163402 | .each = .{ .once = &.{ |
| 157963 | 163403 | .{ ._, .vp_, .xor, .dst0x, .dst0x, .dst0x, ._ }, |
| ... | ... | @@ -157979,7 +163419,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157979 | 163419 | .call_frame = .{ .alignment = .@"16" }, |
| 157980 | 163420 | .extra_temps = .{ |
| 157981 | 163421 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 157982 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 163422 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 157983 | 163423 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 157984 | 163424 | .unused, |
| 157985 | 163425 | .unused, |
| ... | ... | @@ -157990,7 +163430,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 157990 | 163430 | .unused, |
| 157991 | 163431 | .unused, |
| 157992 | 163432 | }, |
| 157993 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 163433 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 157994 | 163434 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 157995 | 163435 | .each = .{ .once = &.{ |
| 157996 | 163436 | .{ ._, .p_, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -158014,7 +163454,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 158014 | 163454 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 158015 | 163455 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 158016 | 163456 | .{ .type = .f32, .kind = .mem }, |
| 158017 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 163457 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 158018 | 163458 | .{ .type = .usize, .kind = .{ .extern_func = "__mulhf3" } }, |
| 158019 | 163459 | .unused, |
| 158020 | 163460 | .unused, |
| ... | ... | @@ -158023,7 +163463,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 158023 | 163463 | .unused, |
| 158024 | 163464 | .unused, |
| 158025 | 163465 | }, |
| 158026 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 163466 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 158027 | 163467 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 158028 | 163468 | .each = .{ .once = &.{ |
| 158029 | 163469 | .{ ._, ._ps, .xor, .dst0x, .dst0x, ._, ._ }, |
| ... | ... | @@ -158905,6 +164345,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 158905 | 164345 | .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, |
| 158906 | 164346 | } }, |
| 158907 | 164347 | }, .{ |
| 164348 | .required_abi = .gnu, |
| 158908 | 164349 | .required_features = .{ .x87, null, null, null }, |
| 158909 | 164350 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 158910 | 164351 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| ... | ... | @@ -158935,6 +164376,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 158935 | 164376 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 158936 | 164377 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 158937 | 164378 | } }, |
| 164379 | }, .{ |
| 164380 | .required_abi = .msvc, |
| 164381 | .required_features = .{ .x87, null, null, null }, |
| 164382 | .dst_constraints = .{ .{ .float = .tbyte }, .any }, |
| 164383 | .src_constraints = .{ .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, .any, .any }, |
| 164384 | .patterns = &.{ |
| 164385 | .{ .src = .{ .to_mem, .none, .none } }, |
| 164386 | }, |
| 164387 | .extra_temps = .{ |
| 164388 | .{ .type = .f80, .kind = .{ .reg = .st7 } }, |
| 164389 | .{ .type = .u16, .kind = .mem }, |
| 164390 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 164391 | .{ .type = .f80, .kind = .{ .reg = .st6 } }, |
| 164392 | .unused, |
| 164393 | .unused, |
| 164394 | .unused, |
| 164395 | .unused, |
| 164396 | .unused, |
| 164397 | .unused, |
| 164398 | .unused, |
| 164399 | }, |
| 164400 | .dst_temps = .{ .{ .rc = .x87 }, .unused }, |
| 164401 | .clobbers = .{ .eflags = true }, |
| 164402 | .each = .{ .once = &.{ |
| 164403 | .{ ._, .f_, .ld, .mem(.src0t), ._, ._, ._ }, |
| 164404 | .{ ._, .fn_cw, .st, .tmp1w, ._, ._, ._ }, |
| 164405 | .{ ._, ._, .movzx, .tmp2d, .memd(.tmp1b, 1), ._, ._ }, |
| 164406 | .{ ._, ._, .@"or", .memd(.tmp1b, 1), .ui(0b000_0_00_11), ._, ._ }, |
| 164407 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 164408 | .{ ._, ._, .mov, .memd(.tmp1b, 1), .tmp2b, ._, ._ }, |
| 164409 | .{ ._, ._, .mov, .tmp2p, .sia(16, .src0, .sub_unaligned_size), ._, ._ }, |
| 164410 | .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp2, .add_unaligned_size), ._, ._, ._ }, |
| 164411 | .{ ._, .f_p, .mul, ._, ._, ._, ._ }, |
| 164412 | .{ ._, ._, .add, .tmp2p, .si(16), ._, ._ }, |
| 164413 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 164414 | .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, |
| 164415 | .{ ._, .f_cw, .ld, .tmp1w, ._, ._, ._ }, |
| 164416 | } }, |
| 158938 | 164417 | }, .{ |
| 158939 | 164418 | .required_features = .{ .avx, null, null, null }, |
| 158940 | 164419 | .dst_constraints = .{ .{ .float = .xword }, .any }, |
| ... | ... | @@ -158945,7 +164424,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 158945 | 164424 | .call_frame = .{ .alignment = .@"16" }, |
| 158946 | 164425 | .extra_temps = .{ |
| 158947 | 164426 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 158948 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 164427 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 158949 | 164428 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 158950 | 164429 | .unused, |
| 158951 | 164430 | .unused, |
| ... | ... | @@ -158956,7 +164435,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 158956 | 164435 | .unused, |
| 158957 | 164436 | .unused, |
| 158958 | 164437 | }, |
| 158959 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 164438 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 158960 | 164439 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 158961 | 164440 | .each = .{ .once = &.{ |
| 158962 | 164441 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -158976,7 +164455,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 158976 | 164455 | .call_frame = .{ .alignment = .@"16" }, |
| 158977 | 164456 | .extra_temps = .{ |
| 158978 | 164457 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 158979 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 164458 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 158980 | 164459 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 158981 | 164460 | .unused, |
| 158982 | 164461 | .unused, |
| ... | ... | @@ -158987,7 +164466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 158987 | 164466 | .unused, |
| 158988 | 164467 | .unused, |
| 158989 | 164468 | }, |
| 158990 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 164469 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 158991 | 164470 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 158992 | 164471 | .each = .{ .once = &.{ |
| 158993 | 164472 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -159007,7 +164486,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 159007 | 164486 | .call_frame = .{ .alignment = .@"16" }, |
| 159008 | 164487 | .extra_temps = .{ |
| 159009 | 164488 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 159010 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 164489 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 159011 | 164490 | .{ .type = .usize, .kind = .{ .extern_func = "__multf3" } }, |
| 159012 | 164491 | .unused, |
| 159013 | 164492 | .unused, |
| ... | ... | @@ -159018,7 +164497,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 159018 | 164497 | .unused, |
| 159019 | 164498 | .unused, |
| 159020 | 164499 | }, |
| 159021 | | .dst_temps = .{ .{ .reg = .xmm0 }, .unused }, |
| 164500 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 159022 | 164501 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 159023 | 164502 | .each = .{ .once = &.{ |
| 159024 | 164503 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_unaligned_size), ._, ._ }, |
| ... | ... | @@ -159040,7 +164519,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 159040 | 164519 | }; |
| 159041 | 164520 | try res[0].finish(inst, &.{reduce.operand}, &ops, cg); |
| 159042 | 164521 | }, |
| 159043 | | .splat => |air_tag| if (use_old) try cg.airSplat(inst) else fallback: { |
| 164522 | .splat => |air_tag| fallback: { |
| 159044 | 164523 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 159045 | 164524 | if (cg.typeOf(ty_op.operand).toIntern() == .bool_type) break :fallback try cg.airSplat(inst); |
| 159046 | 164525 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); |
| ... | ... | @@ -160345,16 +165824,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 160345 | 165824 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 160346 | 165825 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 160347 | 165826 | } }, |
| 160348 | | }, .{ |
| 160349 | | .required_features = .{ .sse, null, null, null }, |
| 160350 | | .dst_constraints = .{ .{ .scalar = .{ .of = .xword, .is = .xword } }, .any }, |
| 160351 | | .src_constraints = .{ .{ .int_or_float = .xword }, .any, .any }, |
| 160352 | | .patterns = &.{ |
| 160353 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 160354 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 160355 | | }, |
| 160356 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 160357 | | .each = .{ .once = &.{} }, |
| 160358 | 165827 | }, .{ |
| 160359 | 165828 | .required_features = .{ .avx2, null, null, null }, |
| 160360 | 165829 | .dst_constraints = .{ .{ .scalar = .{ .of = .yword, .is = .xword } }, .any }, |
| ... | ... | @@ -160592,16 +166061,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 160592 | 166061 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 160593 | 166062 | .{ ._, ._nb, .j, .@"0b", ._, ._, ._ }, |
| 160594 | 166063 | } }, |
| 160595 | | }, .{ |
| 160596 | | .required_features = .{ .@"64bit", .sse, null, null }, |
| 160597 | | .dst_constraints = .{ .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, .any }, |
| 160598 | | .src_constraints = .{ .{ .float = .tbyte }, .any, .any }, |
| 160599 | | .patterns = &.{ |
| 160600 | | .{ .src = .{ .mut_mem, .none, .none } }, |
| 160601 | | .{ .src = .{ .to_mut_sse, .none, .none } }, |
| 160602 | | }, |
| 160603 | | .dst_temps = .{ .{ .ref = .src0 }, .unused }, |
| 160604 | | .each = .{ .once = &.{} }, |
| 160605 | 166064 | }, .{ |
| 160606 | 166065 | .required_features = .{ .@"64bit", .avx2, null, null }, |
| 160607 | 166066 | .dst_constraints = .{ .{ .scalar_float = .{ .of = .yword, .is = .tbyte } }, .any }, |
| ... | ... | @@ -160859,11 +166318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 160859 | 166318 | |
| 160860 | 166319 | .memset => try cg.airMemset(inst, false), |
| 160861 | 166320 | .memset_safe => try cg.airMemset(inst, true), |
| 160862 | | .memcpy, .memmove => |air_tag| if (use_old) switch (air_tag) { |
| 160863 | | else => unreachable, |
| 160864 | | .memcpy => try cg.airMemcpy(inst), |
| 160865 | | .memmove => return cg.fail("TODO implement airMemmove for {}", .{cg.target.cpu.arch}), |
| 160866 | | } else { |
| 166321 | .memcpy, .memmove => |air_tag| { |
| 160867 | 166322 | const bin_op = air_datas[@intFromEnum(inst)].bin_op; |
| 160868 | 166323 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }) ++ .{undefined}; |
| 160869 | 166324 | ops[2] = ops[0].getByteLen(cg) catch |err| switch (err) { |
| ... | ... | @@ -160882,9 +166337,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 160882 | 166337 | inline .memcpy, .memmove => |symbol| comptime &.{.{ |
| 160883 | 166338 | .patterns = &.{ |
| 160884 | 166339 | .{ .src = .{ |
| 160885 | | .{ .to_param_gpr = .{ .cc = .ccc, .at = 0 } }, |
| 160886 | | .{ .to_param_gpr = .{ .cc = .ccc, .at = 1 } }, |
| 160887 | | .{ .to_param_gpr = .{ .cc = .ccc, .at = 2 } }, |
| 166340 | .{ .to_param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 166341 | .{ .to_param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 166342 | .{ .to_param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } }, |
| 160888 | 166343 | } }, |
| 160889 | 166344 | }, |
| 160890 | 166345 | .call_frame = .{ .alignment = .@"16" }, |
| ... | ... | @@ -160926,7 +166381,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 160926 | 166381 | .atomic_store_release => try cg.airAtomicStore(inst, .release), |
| 160927 | 166382 | .atomic_store_seq_cst => try cg.airAtomicStore(inst, .seq_cst), |
| 160928 | 166383 | .atomic_rmw => try cg.airAtomicRmw(inst), |
| 160929 | | .is_named_enum_value => |air_tag| if (use_old) try cg.airTagName(inst, true) else { |
| 166384 | .is_named_enum_value => |air_tag| { |
| 160930 | 166385 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 160931 | 166386 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 160932 | 166387 | var res: [1]Temp = undefined; |
| ... | ... | @@ -160934,7 +166389,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 160934 | 166389 | .required_features = .{ .avx, null, null, null }, |
| 160935 | 166390 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 160936 | 166391 | .patterns = &.{ |
| 160937 | | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .at = 0 } }, .none, .none } }, |
| 166392 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .none, .none } }, |
| 160938 | 166393 | }, |
| 160939 | 166394 | .call_frame = .{ .alignment = .@"32" }, |
| 160940 | 166395 | .extra_temps = .{ |
| ... | ... | @@ -160960,7 +166415,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 160960 | 166415 | .required_features = .{ .sse, null, null, null }, |
| 160961 | 166416 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 160962 | 166417 | .patterns = &.{ |
| 160963 | | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .at = 0 } }, .none, .none } }, |
| 166418 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .none, .none } }, |
| 160964 | 166419 | }, |
| 160965 | 166420 | .call_frame = .{ .alignment = .@"16" }, |
| 160966 | 166421 | .extra_temps = .{ |
| ... | ... | @@ -160985,7 +166440,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 160985 | 166440 | }, .{ |
| 160986 | 166441 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 160987 | 166442 | .patterns = &.{ |
| 160988 | | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .at = 0 } }, .none, .none } }, |
| 166443 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .none, .none } }, |
| 160989 | 166444 | }, |
| 160990 | 166445 | .call_frame = .{ .alignment = .@"8" }, |
| 160991 | 166446 | .extra_temps = .{ |
| ... | ... | @@ -161017,7 +166472,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161017 | 166472 | }; |
| 161018 | 166473 | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| 161019 | 166474 | }, |
| 161020 | | .tag_name => |air_tag| if (use_old) try cg.airTagName(inst, false) else { |
| 166475 | .tag_name => |air_tag| { |
| 161021 | 166476 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 161022 | 166477 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 161023 | 166478 | var res: [1]Temp = undefined; |
| ... | ... | @@ -161025,7 +166480,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161025 | 166480 | .required_features = .{ .avx, null, null, null }, |
| 161026 | 166481 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 161027 | 166482 | .patterns = &.{ |
| 161028 | | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .at = 0 } }, .none, .none } }, |
| 166483 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .none, .none } }, |
| 161029 | 166484 | }, |
| 161030 | 166485 | .call_frame = .{ .alignment = .@"32" }, |
| 161031 | 166486 | .extra_temps = .{ |
| ... | ... | @@ -161041,7 +166496,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161041 | 166496 | .unused, |
| 161042 | 166497 | .unused, |
| 161043 | 166498 | }, |
| 161044 | | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .at = 1 } }, .unused }, |
| 166499 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .after = 1, .at = 1 } }, .unused }, |
| 161045 | 166500 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, |
| 161046 | 166501 | .each = .{ .once = &.{ |
| 161047 | 166502 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -161050,7 +166505,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161050 | 166505 | .required_features = .{ .sse, null, null, null }, |
| 161051 | 166506 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 161052 | 166507 | .patterns = &.{ |
| 161053 | | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .at = 0 } }, .none, .none } }, |
| 166508 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .none, .none } }, |
| 161054 | 166509 | }, |
| 161055 | 166510 | .call_frame = .{ .alignment = .@"16" }, |
| 161056 | 166511 | .extra_temps = .{ |
| ... | ... | @@ -161066,7 +166521,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161066 | 166521 | .unused, |
| 161067 | 166522 | .unused, |
| 161068 | 166523 | }, |
| 161069 | | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .at = 1 } }, .unused }, |
| 166524 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .after = 1, .at = 1 } }, .unused }, |
| 161070 | 166525 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, |
| 161071 | 166526 | .each = .{ .once = &.{ |
| 161072 | 166527 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -161074,7 +166529,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161074 | 166529 | }, .{ |
| 161075 | 166530 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 161076 | 166531 | .patterns = &.{ |
| 161077 | | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .at = 0 } }, .none, .none } }, |
| 166532 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .none, .none } }, |
| 161078 | 166533 | }, |
| 161079 | 166534 | .call_frame = .{ .alignment = .@"8" }, |
| 161080 | 166535 | .extra_temps = .{ |
| ... | ... | @@ -161090,7 +166545,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161090 | 166545 | .unused, |
| 161091 | 166546 | .unused, |
| 161092 | 166547 | }, |
| 161093 | | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .at = 1 } }, .unused }, |
| 166548 | .dst_temps = .{ .{ .ret_gpr = .{ .cc = .zigcc, .after = 1, .at = 1 } }, .unused }, |
| 161094 | 166549 | .clobbers = .{ .eflags = true, .caller_preserved = .zigcc }, |
| 161095 | 166550 | .each = .{ .once = &.{ |
| 161096 | 166551 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| ... | ... | @@ -161106,7 +166561,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161106 | 166561 | try ops[0].toPair(&res[0], cg); |
| 161107 | 166562 | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| 161108 | 166563 | }, |
| 161109 | | .error_name => |air_tag| if (use_old) try cg.airErrorName(inst) else { |
| 166564 | .error_name => |air_tag| { |
| 161110 | 166565 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 161111 | 166566 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 161112 | 166567 | var res: [2]Temp = undefined; |
| ... | ... | @@ -161214,7 +166669,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161214 | 166669 | }; |
| 161215 | 166670 | try res[0].finish(inst, &.{un_op}, &ops, cg); |
| 161216 | 166671 | }, |
| 161217 | | .error_set_has_value => |air_tag| if (use_old) try cg.airErrorSetHasValue(inst) else { |
| 166672 | .error_set_has_value => |air_tag| { |
| 161218 | 166673 | const ty_op = air_datas[@intFromEnum(inst)].ty_op; |
| 161219 | 166674 | var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}) ++ .{try cg.tempInit(ty_op.ty.toType(), .none)}; |
| 161220 | 166675 | var res: [1]Temp = undefined; |
| ... | ... | @@ -161222,7 +166677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161222 | 166677 | .required_features = .{ .avx, null, null, null }, |
| 161223 | 166678 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 161224 | 166679 | .patterns = &.{ |
| 161225 | | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .at = 0 } }, .none, .none } }, |
| 166680 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .none, .none } }, |
| 161226 | 166681 | }, |
| 161227 | 166682 | .call_frame = .{ .alignment = .@"32" }, |
| 161228 | 166683 | .extra_temps = .{ |
| ... | ... | @@ -161248,7 +166703,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161248 | 166703 | .required_features = .{ .sse, null, null, null }, |
| 161249 | 166704 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 161250 | 166705 | .patterns = &.{ |
| 161251 | | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .at = 0 } }, .none, .none } }, |
| 166706 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .none, .none } }, |
| 161252 | 166707 | }, |
| 161253 | 166708 | .call_frame = .{ .alignment = .@"16" }, |
| 161254 | 166709 | .extra_temps = .{ |
| ... | ... | @@ -161273,7 +166728,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161273 | 166728 | }, .{ |
| 161274 | 166729 | .src_constraints = .{ .{ .int = .gpr }, .any, .any }, |
| 161275 | 166730 | .patterns = &.{ |
| 161276 | | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .at = 0 } }, .none, .none } }, |
| 166731 | .{ .src = .{ .{ .to_param_gpr = .{ .cc = .zigcc, .after = 0, .at = 0 } }, .none, .none } }, |
| 161277 | 166732 | }, |
| 161278 | 166733 | .call_frame = .{ .alignment = .@"8" }, |
| 161279 | 166734 | .extra_temps = .{ |
| ... | ... | @@ -161306,7 +166761,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161306 | 166761 | for (ops[1..]) |op| try op.die(cg); |
| 161307 | 166762 | try res[0].finish(inst, &.{ty_op.operand}, ops[0..1], cg); |
| 161308 | 166763 | }, |
| 161309 | | .aggregate_init => |air_tag| if (use_old) try cg.airAggregateInit(inst) else fallback: { |
| 166764 | .aggregate_init => |air_tag| fallback: { |
| 161310 | 166765 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 161311 | 166766 | const agg_ty = ty_pl.ty.toType(); |
| 161312 | 166767 | if ((agg_ty.isVector(zcu) and agg_ty.childType(zcu).toIntern() == .bool_type) or |
| ... | ... | @@ -161376,7 +166831,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161376 | 166831 | } |
| 161377 | 166832 | try res.finish(inst, &.{}, &.{}, cg); |
| 161378 | 166833 | }, |
| 161379 | | .union_init => if (use_old) try cg.airUnionInit(inst) else { |
| 166834 | .union_init => { |
| 161380 | 166835 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 161381 | 166836 | const union_init = cg.air.extraData(Air.UnionInit, ty_pl.payload).data; |
| 161382 | 166837 | const union_ty = ty_pl.ty.toType(); |
| ... | ... | @@ -161425,7 +166880,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161425 | 166880 | const res = try cg.tempInit(.void, .none); |
| 161426 | 166881 | try res.finish(inst, &.{prefetch.ptr}, &ops, cg); |
| 161427 | 166882 | }, |
| 161428 | | .mul_add => |air_tag| if (use_old) try cg.airMulAdd(inst) else { |
| 166883 | .mul_add => |air_tag| { |
| 161429 | 166884 | const pl_op = air_datas[@intFromEnum(inst)].pl_op; |
| 161430 | 166885 | const bin_op = cg.air.extraData(Air.Bin, pl_op.payload).data; |
| 161431 | 166886 | var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs, pl_op.operand }); |
| ... | ... | @@ -161469,7 +166924,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161469 | 166924 | .{ .scalar_float = .{ .of = .word, .is = .word } }, |
| 161470 | 166925 | }, |
| 161471 | 166926 | .patterns = &.{ |
| 161472 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .{ .to_reg = .xmm2 } } }, |
| 166927 | .{ .src = .{ |
| 166928 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 166929 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 166930 | .{ .to_param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } }, |
| 166931 | } }, |
| 161473 | 166932 | }, |
| 161474 | 166933 | .call_frame = .{ .alignment = .@"16" }, |
| 161475 | 166934 | .extra_temps = .{ |
| ... | ... | @@ -161577,7 +167036,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161577 | 167036 | .{ .src = .{ .to_mem, .to_mem, .to_mem } }, |
| 161578 | 167037 | }, |
| 161579 | 167038 | .extra_temps = .{ |
| 161580 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 167039 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 161581 | 167040 | .{ .type = .vector_8_f16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, |
| 161582 | 167041 | .{ .type = .vector_8_f16, .kind = .{ .mut_rc = .{ .ref = .src2, .rc = .sse } } }, |
| 161583 | 167042 | .{ .type = .vector_8_f16, .kind = .{ .mut_rc = .{ .ref = .src2, .rc = .sse } } }, |
| ... | ... | @@ -161591,14 +167050,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161591 | 167050 | }, |
| 161592 | 167051 | .dst_temps = .{ .mem, .unused }, |
| 161593 | 167052 | .each = .{ .once = &.{ |
| 161594 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 161595 | | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 161596 | | .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 161597 | | .{ ._, .v_ps, .cvtph2, .tmp3y, .memia(.src2x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167053 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_size), ._, ._ }, |
| 167054 | .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memi(.src0x, .tmp0), ._, ._ }, |
| 167055 | .{ ._, .v_ps, .cvtph2, .tmp2y, .memi(.src1x, .tmp0), ._, ._ }, |
| 167056 | .{ ._, .v_ps, .cvtph2, .tmp3y, .memi(.src2x, .tmp0), ._, ._ }, |
| 161598 | 167057 | .{ ._, .v_ps, .fmadd213, .tmp1y, .tmp2y, .tmp3y, ._ }, |
| 161599 | | .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, |
| 161600 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 161601 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167058 | .{ ._, .v_, .cvtps2ph, .memi(.dst0x, .tmp0), .tmp1y, .rm(.{}), ._ }, |
| 167059 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 167060 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 161602 | 167061 | } }, |
| 161603 | 167062 | }, .{ |
| 161604 | 167063 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -161612,10 +167071,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161612 | 167071 | }, |
| 161613 | 167072 | .call_frame = .{ .alignment = .@"16" }, |
| 161614 | 167073 | .extra_temps = .{ |
| 161615 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 161616 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 161617 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 161618 | | .{ .type = .f16, .kind = .{ .reg = .xmm2 } }, |
| 167074 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 167075 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167076 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167077 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 161619 | 167078 | .{ .type = .usize, .kind = .{ .extern_func = "__fmah" } }, |
| 161620 | 167079 | .unused, |
| 161621 | 167080 | .unused, |
| ... | ... | @@ -161627,15 +167086,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161627 | 167086 | .dst_temps = .{ .mem, .unused }, |
| 161628 | 167087 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 161629 | 167088 | .each = .{ .once = &.{ |
| 161630 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 167089 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 161631 | 167090 | .{ .@"0:", .vp_, .xor, .tmp3x, .tmp3x, .tmp3x, ._ }, |
| 161632 | | .{ ._, .vp_w, .insr, .tmp1x, .tmp3x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 161633 | | .{ ._, .vp_w, .insr, .tmp2x, .tmp3x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 161634 | | .{ ._, .vp_w, .insr, .tmp3x, .tmp3x, .memia(.src2w, .tmp0, .add_unaligned_size), .ui(0) }, |
| 167091 | .{ ._, .vp_w, .insr, .tmp1x, .tmp3x, .memi(.src0w, .tmp0), .ui(0) }, |
| 167092 | .{ ._, .vp_w, .insr, .tmp2x, .tmp3x, .memi(.src1w, .tmp0), .ui(0) }, |
| 167093 | .{ ._, .vp_w, .insr, .tmp3x, .tmp3x, .memi(.src2w, .tmp0), .ui(0) }, |
| 161635 | 167094 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 161636 | | .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 161637 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 161638 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167095 | .{ ._, .vp_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 167096 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 167097 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 161639 | 167098 | } }, |
| 161640 | 167099 | }, .{ |
| 161641 | 167100 | .required_features = .{ .sse4_1, null, null, null }, |
| ... | ... | @@ -161649,10 +167108,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161649 | 167108 | }, |
| 161650 | 167109 | .call_frame = .{ .alignment = .@"16" }, |
| 161651 | 167110 | .extra_temps = .{ |
| 161652 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 161653 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 161654 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 161655 | | .{ .type = .f16, .kind = .{ .reg = .xmm2 } }, |
| 167111 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 167112 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167113 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167114 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 161656 | 167115 | .{ .type = .usize, .kind = .{ .extern_func = "__fmah" } }, |
| 161657 | 167116 | .unused, |
| 161658 | 167117 | .unused, |
| ... | ... | @@ -161664,17 +167123,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161664 | 167123 | .dst_temps = .{ .mem, .unused }, |
| 161665 | 167124 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 161666 | 167125 | .each = .{ .once = &.{ |
| 161667 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 167126 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 161668 | 167127 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 161669 | 167128 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 161670 | 167129 | .{ ._, .p_, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| 161671 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 161672 | | .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 161673 | | .{ ._, .p_w, .insr, .tmp3x, .memia(.src2w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 167130 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 167131 | .{ ._, .p_w, .insr, .tmp2x, .memi(.src1w, .tmp0), .ui(0), ._ }, |
| 167132 | .{ ._, .p_w, .insr, .tmp3x, .memi(.src2w, .tmp0), .ui(0), ._ }, |
| 161674 | 167133 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 161675 | | .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, |
| 161676 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 161677 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167134 | .{ ._, .p_w, .extr, .memi(.dst0w, .tmp0), .tmp1x, .ui(0), ._ }, |
| 167135 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 167136 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 161678 | 167137 | } }, |
| 161679 | 167138 | }, .{ |
| 161680 | 167139 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -161688,10 +167147,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161688 | 167147 | }, |
| 161689 | 167148 | .call_frame = .{ .alignment = .@"16" }, |
| 161690 | 167149 | .extra_temps = .{ |
| 161691 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 161692 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 161693 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 161694 | | .{ .type = .f16, .kind = .{ .reg = .xmm2 } }, |
| 167150 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 167151 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167152 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167153 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 161695 | 167154 | .{ .type = .usize, .kind = .{ .extern_func = "__fmah" } }, |
| 161696 | 167155 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 161697 | 167156 | .unused, |
| ... | ... | @@ -161703,18 +167162,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161703 | 167162 | .dst_temps = .{ .mem, .unused }, |
| 161704 | 167163 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 161705 | 167164 | .each = .{ .once = &.{ |
| 161706 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 167165 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 161707 | 167166 | .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 161708 | 167167 | .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 161709 | 167168 | .{ ._, .p_, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| 161710 | | .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 161711 | | .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 161712 | | .{ ._, .p_w, .insr, .tmp3x, .memia(.src2w, .tmp0, .add_unaligned_size), .ui(0), ._ }, |
| 167169 | .{ ._, .p_w, .insr, .tmp1x, .memi(.src0w, .tmp0), .ui(0), ._ }, |
| 167170 | .{ ._, .p_w, .insr, .tmp2x, .memi(.src1w, .tmp0), .ui(0), ._ }, |
| 167171 | .{ ._, .p_w, .insr, .tmp3x, .memi(.src2w, .tmp0), .ui(0), ._ }, |
| 161713 | 167172 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 161714 | 167173 | .{ ._, .p_w, .extr, .tmp5d, .tmp1x, .ui(0), ._ }, |
| 161715 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp5w, ._, ._ }, |
| 161716 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 161717 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167174 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp5w, ._, ._ }, |
| 167175 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 167176 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 161718 | 167177 | } }, |
| 161719 | 167178 | }, .{ |
| 161720 | 167179 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -161728,12 +167187,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161728 | 167187 | }, |
| 161729 | 167188 | .call_frame = .{ .alignment = .@"16" }, |
| 161730 | 167189 | .extra_temps = .{ |
| 161731 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 167190 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 161732 | 167191 | .{ .type = .f16, .kind = .{ .reg = .ax } }, |
| 161733 | 167192 | .{ .type = .f32, .kind = .mem }, |
| 161734 | | .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, |
| 161735 | | .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, |
| 161736 | | .{ .type = .f16, .kind = .{ .reg = .xmm2 } }, |
| 167193 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167194 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167195 | .{ .type = .f16, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 161737 | 167196 | .{ .type = .usize, .kind = .{ .extern_func = "__fmah" } }, |
| 161738 | 167197 | .unused, |
| 161739 | 167198 | .unused, |
| ... | ... | @@ -161743,22 +167202,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161743 | 167202 | .dst_temps = .{ .mem, .unused }, |
| 161744 | 167203 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 161745 | 167204 | .each = .{ .once = &.{ |
| 161746 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 161747 | | .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167205 | .{ ._, ._, .mov, .tmp0d, .sia(-2, .src0, .add_unaligned_size), ._, ._ }, |
| 167206 | .{ .@"0:", ._, .movzx, .tmp1d, .memi(.src0w, .tmp0), ._, ._ }, |
| 161748 | 167207 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 161749 | 167208 | .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, |
| 161750 | | .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167209 | .{ ._, ._, .movzx, .tmp1d, .memi(.src1w, .tmp0), ._, ._ }, |
| 161751 | 167210 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 161752 | 167211 | .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ }, |
| 161753 | | .{ ._, ._, .movzx, .tmp1d, .memia(.src2w, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167212 | .{ ._, ._, .movzx, .tmp1d, .memi(.src2w, .tmp0), ._, ._ }, |
| 161754 | 167213 | .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, |
| 161755 | 167214 | .{ ._, ._ss, .mov, .tmp5x, .mem(.tmp2d), ._, ._ }, |
| 161756 | 167215 | .{ ._, ._, .call, .tmp6d, ._, ._, ._ }, |
| 161757 | 167216 | .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, |
| 161758 | 167217 | .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, |
| 161759 | | .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, |
| 161760 | | .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, |
| 161761 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167218 | .{ ._, ._, .mov, .memi(.dst0w, .tmp0), .tmp1w, ._, ._ }, |
| 167219 | .{ ._, ._, .sub, .tmp0d, .si(2), ._, ._ }, |
| 167220 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 161762 | 167221 | } }, |
| 161763 | 167222 | }, .{ |
| 161764 | 167223 | .required_features = .{ .fma, null, null, null }, |
| ... | ... | @@ -161818,7 +167277,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161818 | 167277 | .{ .scalar_float = .{ .of = .dword, .is = .dword } }, |
| 161819 | 167278 | }, |
| 161820 | 167279 | .patterns = &.{ |
| 161821 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .{ .to_reg = .xmm2 } } }, |
| 167280 | .{ .src = .{ |
| 167281 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 167282 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 167283 | .{ .to_param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } }, |
| 167284 | } }, |
| 161822 | 167285 | }, |
| 161823 | 167286 | .call_frame = .{ .alignment = .@"16" }, |
| 161824 | 167287 | .extra_temps = .{ |
| ... | ... | @@ -161950,7 +167413,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161950 | 167413 | .{ .src = .{ .to_mem, .to_mem, .to_mem } }, |
| 161951 | 167414 | }, |
| 161952 | 167415 | .extra_temps = .{ |
| 161953 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 167416 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 161954 | 167417 | .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, |
| 161955 | 167418 | .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src2, .rc = .sse } } }, |
| 161956 | 167419 | .unused, |
| ... | ... | @@ -161964,13 +167427,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161964 | 167427 | }, |
| 161965 | 167428 | .dst_temps = .{ .mem, .unused }, |
| 161966 | 167429 | .each = .{ .once = &.{ |
| 161967 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 161968 | | .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 161969 | | .{ ._, .v_ps, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 161970 | | .{ ._, .v_ps, .fmadd213, .tmp1y, .tmp2y, .memia(.src2y, .tmp0, .add_unaligned_size), ._ }, |
| 161971 | | .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 161972 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 161973 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167430 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| 167431 | .{ .@"0:", .v_ps, .mova, .tmp1y, .memi(.src0y, .tmp0), ._, ._ }, |
| 167432 | .{ ._, .v_ps, .mova, .tmp2y, .memi(.src1y, .tmp0), ._, ._ }, |
| 167433 | .{ ._, .v_ps, .fmadd213, .tmp1y, .tmp2y, .memi(.src2y, .tmp0), ._ }, |
| 167434 | .{ ._, .v_ps, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 167435 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 167436 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 161974 | 167437 | } }, |
| 161975 | 167438 | }, .{ |
| 161976 | 167439 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -161984,10 +167447,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161984 | 167447 | }, |
| 161985 | 167448 | .call_frame = .{ .alignment = .@"16" }, |
| 161986 | 167449 | .extra_temps = .{ |
| 161987 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 161988 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 161989 | | .{ .type = .f32, .kind = .{ .reg = .xmm1 } }, |
| 161990 | | .{ .type = .f32, .kind = .{ .reg = .xmm2 } }, |
| 167450 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 167451 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167452 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167453 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 161991 | 167454 | .{ .type = .usize, .kind = .{ .extern_func = "fmaf" } }, |
| 161992 | 167455 | .unused, |
| 161993 | 167456 | .unused, |
| ... | ... | @@ -161999,14 +167462,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 161999 | 167462 | .dst_temps = .{ .mem, .unused }, |
| 162000 | 167463 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 162001 | 167464 | .each = .{ .once = &.{ |
| 162002 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 162003 | | .{ .@"0:", .v_ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162004 | | .{ ._, .v_ss, .mov, .tmp2x, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162005 | | .{ ._, .v_ss, .mov, .tmp3x, .memia(.src2d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167465 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 167466 | .{ .@"0:", .v_ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 167467 | .{ ._, .v_ss, .mov, .tmp2x, .memi(.src1d, .tmp0), ._, ._ }, |
| 167468 | .{ ._, .v_ss, .mov, .tmp3x, .memi(.src2d, .tmp0), ._, ._ }, |
| 162006 | 167469 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 162007 | | .{ ._, .v_ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 162008 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 162009 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167470 | .{ ._, .v_ss, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 167471 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 167472 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 162010 | 167473 | } }, |
| 162011 | 167474 | }, .{ |
| 162012 | 167475 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -162020,10 +167483,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162020 | 167483 | }, |
| 162021 | 167484 | .call_frame = .{ .alignment = .@"16" }, |
| 162022 | 167485 | .extra_temps = .{ |
| 162023 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 162024 | | .{ .type = .f32, .kind = .{ .reg = .xmm0 } }, |
| 162025 | | .{ .type = .f32, .kind = .{ .reg = .xmm1 } }, |
| 162026 | | .{ .type = .f32, .kind = .{ .reg = .xmm2 } }, |
| 167486 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 167487 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167488 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167489 | .{ .type = .f32, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 162027 | 167490 | .{ .type = .usize, .kind = .{ .extern_func = "fmaf" } }, |
| 162028 | 167491 | .unused, |
| 162029 | 167492 | .unused, |
| ... | ... | @@ -162035,14 +167498,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162035 | 167498 | .dst_temps = .{ .mem, .unused }, |
| 162036 | 167499 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 162037 | 167500 | .each = .{ .once = &.{ |
| 162038 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 162039 | | .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162040 | | .{ ._, ._ss, .mov, .tmp2x, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162041 | | .{ ._, ._ss, .mov, .tmp3x, .memia(.src2d, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167501 | .{ ._, ._, .mov, .tmp0d, .sia(-4, .src0, .add_unaligned_size), ._, ._ }, |
| 167502 | .{ .@"0:", ._ss, .mov, .tmp1x, .memi(.src0d, .tmp0), ._, ._ }, |
| 167503 | .{ ._, ._ss, .mov, .tmp2x, .memi(.src1d, .tmp0), ._, ._ }, |
| 167504 | .{ ._, ._ss, .mov, .tmp3x, .memi(.src2d, .tmp0), ._, ._ }, |
| 162042 | 167505 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 162043 | | .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 162044 | | .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, |
| 162045 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167506 | .{ ._, ._ss, .mov, .memi(.dst0d, .tmp0), .tmp1x, ._, ._ }, |
| 167507 | .{ ._, ._, .sub, .tmp0d, .si(4), ._, ._ }, |
| 167508 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 162046 | 167509 | } }, |
| 162047 | 167510 | }, .{ |
| 162048 | 167511 | .required_features = .{ .fma, null, null, null }, |
| ... | ... | @@ -162102,7 +167565,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162102 | 167565 | .{ .scalar_float = .{ .of = .qword, .is = .qword } }, |
| 162103 | 167566 | }, |
| 162104 | 167567 | .patterns = &.{ |
| 162105 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .{ .to_reg = .xmm2 } } }, |
| 167568 | .{ .src = .{ |
| 167569 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 167570 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 167571 | .{ .to_param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } }, |
| 167572 | } }, |
| 162106 | 167573 | }, |
| 162107 | 167574 | .call_frame = .{ .alignment = .@"16" }, |
| 162108 | 167575 | .extra_temps = .{ |
| ... | ... | @@ -162234,7 +167701,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162234 | 167701 | .{ .src = .{ .to_mem, .to_mem, .to_mem } }, |
| 162235 | 167702 | }, |
| 162236 | 167703 | .extra_temps = .{ |
| 162237 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 167704 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 162238 | 167705 | .{ .type = .vector_4_f64, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, |
| 162239 | 167706 | .{ .type = .vector_4_f64, .kind = .{ .mut_rc = .{ .ref = .src2, .rc = .sse } } }, |
| 162240 | 167707 | .unused, |
| ... | ... | @@ -162248,13 +167715,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162248 | 167715 | }, |
| 162249 | 167716 | .dst_temps = .{ .mem, .unused }, |
| 162250 | 167717 | .each = .{ .once = &.{ |
| 162251 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 162252 | | .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162253 | | .{ ._, .v_pd, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162254 | | .{ ._, .v_pd, .fmadd213, .tmp1y, .tmp2y, .memia(.src2y, .tmp0, .add_unaligned_size), ._ }, |
| 162255 | | .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, |
| 162256 | | .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, |
| 162257 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167718 | .{ ._, ._, .mov, .tmp0d, .sia(-32, .src0, .add_size), ._, ._ }, |
| 167719 | .{ .@"0:", .v_pd, .mova, .tmp1y, .memi(.src0y, .tmp0), ._, ._ }, |
| 167720 | .{ ._, .v_pd, .mova, .tmp2y, .memi(.src1y, .tmp0), ._, ._ }, |
| 167721 | .{ ._, .v_pd, .fmadd213, .tmp1y, .tmp2y, .memi(.src2y, .tmp0), ._ }, |
| 167722 | .{ ._, .v_pd, .mova, .memi(.dst0y, .tmp0), .tmp1y, ._, ._ }, |
| 167723 | .{ ._, ._, .sub, .tmp0d, .si(32), ._, ._ }, |
| 167724 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 162258 | 167725 | } }, |
| 162259 | 167726 | }, .{ |
| 162260 | 167727 | .required_features = .{ .avx, null, null, null }, |
| ... | ... | @@ -162268,10 +167735,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162268 | 167735 | }, |
| 162269 | 167736 | .call_frame = .{ .alignment = .@"16" }, |
| 162270 | 167737 | .extra_temps = .{ |
| 162271 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 162272 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 162273 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 162274 | | .{ .type = .f64, .kind = .{ .reg = .xmm2 } }, |
| 167738 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 167739 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167740 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167741 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 162275 | 167742 | .{ .type = .usize, .kind = .{ .extern_func = "fma" } }, |
| 162276 | 167743 | .unused, |
| 162277 | 167744 | .unused, |
| ... | ... | @@ -162283,14 +167750,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162283 | 167750 | .dst_temps = .{ .mem, .unused }, |
| 162284 | 167751 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 162285 | 167752 | .each = .{ .once = &.{ |
| 162286 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 162287 | | .{ .@"0:", .v_sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162288 | | .{ ._, .v_sd, .mov, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162289 | | .{ ._, .v_sd, .mov, .tmp3x, .memia(.src2q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167753 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 167754 | .{ .@"0:", .v_sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 167755 | .{ ._, .v_sd, .mov, .tmp2x, .memi(.src1q, .tmp0), ._, ._ }, |
| 167756 | .{ ._, .v_sd, .mov, .tmp3x, .memi(.src2q, .tmp0), ._, ._ }, |
| 162290 | 167757 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 162291 | | .{ ._, .v_sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 162292 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 162293 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167758 | .{ ._, .v_sd, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 167759 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 167760 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 162294 | 167761 | } }, |
| 162295 | 167762 | }, .{ |
| 162296 | 167763 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -162304,10 +167771,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162304 | 167771 | }, |
| 162305 | 167772 | .call_frame = .{ .alignment = .@"16" }, |
| 162306 | 167773 | .extra_temps = .{ |
| 162307 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 162308 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 162309 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 162310 | | .{ .type = .f64, .kind = .{ .reg = .xmm2 } }, |
| 167774 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 167775 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167776 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167777 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 162311 | 167778 | .{ .type = .usize, .kind = .{ .extern_func = "fma" } }, |
| 162312 | 167779 | .unused, |
| 162313 | 167780 | .unused, |
| ... | ... | @@ -162319,14 +167786,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162319 | 167786 | .dst_temps = .{ .mem, .unused }, |
| 162320 | 167787 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 162321 | 167788 | .each = .{ .once = &.{ |
| 162322 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 162323 | | .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162324 | | .{ ._, ._sd, .mov, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162325 | | .{ ._, ._sd, .mov, .tmp3x, .memia(.src2q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167789 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 167790 | .{ .@"0:", ._sd, .mov, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 167791 | .{ ._, ._sd, .mov, .tmp2x, .memi(.src1q, .tmp0), ._, ._ }, |
| 167792 | .{ ._, ._sd, .mov, .tmp3x, .memi(.src2q, .tmp0), ._, ._ }, |
| 162326 | 167793 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 162327 | | .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 162328 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 162329 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167794 | .{ ._, ._sd, .mov, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 167795 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 167796 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 162330 | 167797 | } }, |
| 162331 | 167798 | }, .{ |
| 162332 | 167799 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -162340,10 +167807,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162340 | 167807 | }, |
| 162341 | 167808 | .call_frame = .{ .alignment = .@"16" }, |
| 162342 | 167809 | .extra_temps = .{ |
| 162343 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 162344 | | .{ .type = .f64, .kind = .{ .reg = .xmm0 } }, |
| 162345 | | .{ .type = .f64, .kind = .{ .reg = .xmm1 } }, |
| 162346 | | .{ .type = .f64, .kind = .{ .reg = .xmm2 } }, |
| 167810 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 167811 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167812 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167813 | .{ .type = .f64, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 162347 | 167814 | .{ .type = .usize, .kind = .{ .extern_func = "fma" } }, |
| 162348 | 167815 | .unused, |
| 162349 | 167816 | .unused, |
| ... | ... | @@ -162355,19 +167822,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162355 | 167822 | .dst_temps = .{ .mem, .unused }, |
| 162356 | 167823 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 162357 | 167824 | .each = .{ .once = &.{ |
| 162358 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 167825 | .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_unaligned_size), ._, ._ }, |
| 162359 | 167826 | .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ }, |
| 162360 | 167827 | .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ }, |
| 162361 | 167828 | .{ ._, ._ps, .xor, .tmp3x, .tmp3x, ._, ._ }, |
| 162362 | | .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162363 | | .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162364 | | .{ ._, ._ps, .movl, .tmp3x, .memia(.src2q, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167829 | .{ ._, ._ps, .movl, .tmp1x, .memi(.src0q, .tmp0), ._, ._ }, |
| 167830 | .{ ._, ._ps, .movl, .tmp2x, .memi(.src1q, .tmp0), ._, ._ }, |
| 167831 | .{ ._, ._ps, .movl, .tmp3x, .memi(.src2q, .tmp0), ._, ._ }, |
| 162365 | 167832 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 162366 | | .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 162367 | | .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, |
| 162368 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167833 | .{ ._, ._ps, .movl, .memi(.dst0q, .tmp0), .tmp1x, ._, ._ }, |
| 167834 | .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, |
| 167835 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 162369 | 167836 | } }, |
| 162370 | 167837 | }, .{ |
| 167838 | .required_cc_abi = .sysv64, |
| 162371 | 167839 | .required_features = .{ .sse, .x87, null, null }, |
| 162372 | 167840 | .src_constraints = .{ |
| 162373 | 167841 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -162379,7 +167847,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162379 | 167847 | }, |
| 162380 | 167848 | .call_frame = .{ .size = 16 * 3, .alignment = .@"16" }, |
| 162381 | 167849 | .extra_temps = .{ |
| 162382 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 167850 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 162383 | 167851 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 162384 | 167852 | .{ .type = .usize, .kind = .{ .extern_func = "__fmax" } }, |
| 162385 | 167853 | .unused, |
| ... | ... | @@ -162403,6 +167871,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162403 | 167871 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 162404 | 167872 | } }, |
| 162405 | 167873 | }, .{ |
| 167874 | .required_cc_abi = .win64, |
| 167875 | .src_constraints = .{ |
| 167876 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 167877 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 167878 | .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 167879 | }, |
| 167880 | .patterns = &.{ |
| 167881 | .{ .src = .{ .to_mem, .to_mem, .to_mem } }, |
| 167882 | }, |
| 167883 | .call_frame = .{ .alignment = .@"16" }, |
| 167884 | .extra_temps = .{ |
| 167885 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167886 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167887 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 167888 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 167889 | .{ .type = .usize, .kind = .{ .extern_func = "__fmax" } }, |
| 167890 | .unused, |
| 167891 | .unused, |
| 167892 | .unused, |
| 167893 | .unused, |
| 167894 | .unused, |
| 167895 | .unused, |
| 167896 | }, |
| 167897 | .dst_temps = .{ .mem, .unused }, |
| 167898 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 167899 | .each = .{ .once = &.{ |
| 167900 | .{ ._, ._, .lea, .tmp0p, .mem(.dst0), ._, ._ }, |
| 167901 | .{ ._, ._, .lea, .tmp1p, .mem(.src0), ._, ._ }, |
| 167902 | .{ ._, ._, .lea, .tmp2p, .mem(.src1), ._, ._ }, |
| 167903 | .{ ._, ._, .lea, .tmp3p, .mem(.src2), ._, ._ }, |
| 167904 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 167905 | } }, |
| 167906 | }, .{ |
| 167907 | .required_cc_abi = .sysv64, |
| 162406 | 167908 | .required_features = .{ .sse, .x87, null, null }, |
| 162407 | 167909 | .src_constraints = .{ |
| 162408 | 167910 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| ... | ... | @@ -162414,8 +167916,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162414 | 167916 | }, |
| 162415 | 167917 | .call_frame = .{ .size = 16 * 3, .alignment = .@"16" }, |
| 162416 | 167918 | .extra_temps = .{ |
| 162417 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 162418 | | .{ .type = .f80, .kind = .{ .reg = .xmm0 } }, |
| 167919 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 167920 | .{ .type = .f80, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 162419 | 167921 | .{ .type = .f80, .kind = .{ .frame = .call_frame } }, |
| 162420 | 167922 | .{ .type = .usize, .kind = .{ .extern_func = "__fmax" } }, |
| 162421 | 167923 | .unused, |
| ... | ... | @@ -162429,18 +167931,54 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162429 | 167931 | .dst_temps = .{ .mem, .unused }, |
| 162430 | 167932 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 162431 | 167933 | .each = .{ .once = &.{ |
| 162432 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 162433 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167934 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 167935 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 162434 | 167936 | .{ ._, ._ps, .mova, .mem(.tmp2x), .tmp1x, ._, ._ }, |
| 162435 | | .{ ._, ._ps, .mova, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167937 | .{ ._, ._ps, .mova, .tmp1x, .memi(.src1x, .tmp0), ._, ._ }, |
| 162436 | 167938 | .{ ._, ._ps, .mova, .memd(.tmp2x, 16), .tmp1x, ._, ._ }, |
| 162437 | | .{ ._, ._ps, .mova, .tmp1x, .memia(.src2x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 167939 | .{ ._, ._ps, .mova, .tmp1x, .memi(.src2x, .tmp0), ._, ._ }, |
| 162438 | 167940 | .{ ._, ._ps, .mova, .memd(.tmp2x, 16 * 2), .tmp1x, ._, ._ }, |
| 162439 | 167941 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 162440 | 167942 | .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ }, |
| 162441 | | .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, |
| 162442 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 162443 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 167943 | .{ ._, .f_p, .st, .memi(.dst0t, .tmp0), ._, ._, ._ }, |
| 167944 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 167945 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 167946 | } }, |
| 167947 | }, .{ |
| 167948 | .required_cc_abi = .win64, |
| 167949 | .src_constraints = .{ |
| 167950 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 167951 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 167952 | .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, |
| 167953 | }, |
| 167954 | .patterns = &.{ |
| 167955 | .{ .src = .{ .to_mem, .to_mem, .to_mem } }, |
| 167956 | }, |
| 167957 | .call_frame = .{ .alignment = .@"16" }, |
| 167958 | .extra_temps = .{ |
| 167959 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 167960 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 167961 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 167962 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 167963 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 167964 | .{ .type = .usize, .kind = .{ .extern_func = "__fmax" } }, |
| 167965 | .unused, |
| 167966 | .unused, |
| 167967 | .unused, |
| 167968 | .unused, |
| 167969 | .unused, |
| 167970 | }, |
| 167971 | .dst_temps = .{ .mem, .unused }, |
| 167972 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 167973 | .each = .{ .once = &.{ |
| 167974 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 167975 | .{ .@"0:", ._, .lea, .tmp1p, .memi(.dst0, .tmp0), ._, ._ }, |
| 167976 | .{ ._, ._, .lea, .tmp2p, .memi(.src0, .tmp0), ._, ._ }, |
| 167977 | .{ ._, ._, .lea, .tmp3p, .memi(.src1, .tmp0), ._, ._ }, |
| 167978 | .{ ._, ._, .lea, .tmp4p, .memi(.src2, .tmp0), ._, ._ }, |
| 167979 | .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, |
| 167980 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 167981 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 162444 | 167982 | } }, |
| 162445 | 167983 | }, .{ |
| 162446 | 167984 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -162450,7 +167988,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162450 | 167988 | .{ .scalar_float = .{ .of = .xword, .is = .xword } }, |
| 162451 | 167989 | }, |
| 162452 | 167990 | .patterns = &.{ |
| 162453 | | .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .{ .to_reg = .xmm2 } } }, |
| 167991 | .{ .src = .{ |
| 167992 | .{ .to_param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 167993 | .{ .to_param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } }, |
| 167994 | .{ .to_param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } }, |
| 167995 | } }, |
| 162454 | 167996 | }, |
| 162455 | 167997 | .call_frame = .{ .alignment = .@"16" }, |
| 162456 | 167998 | .extra_temps = .{ |
| ... | ... | @@ -162483,10 +168025,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162483 | 168025 | }, |
| 162484 | 168026 | .call_frame = .{ .alignment = .@"16" }, |
| 162485 | 168027 | .extra_temps = .{ |
| 162486 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 162487 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 162488 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 162489 | | .{ .type = .f128, .kind = .{ .reg = .xmm2 } }, |
| 168028 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 168029 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 168030 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 168031 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 162490 | 168032 | .{ .type = .usize, .kind = .{ .extern_func = "fmaq" } }, |
| 162491 | 168033 | .unused, |
| 162492 | 168034 | .unused, |
| ... | ... | @@ -162498,14 +168040,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162498 | 168040 | .dst_temps = .{ .mem, .unused }, |
| 162499 | 168041 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 162500 | 168042 | .each = .{ .once = &.{ |
| 162501 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 162502 | | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162503 | | .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162504 | | .{ ._, .v_dqa, .mov, .tmp3x, .memia(.src2x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 168043 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 168044 | .{ .@"0:", .v_dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 168045 | .{ ._, .v_dqa, .mov, .tmp2x, .memi(.src1x, .tmp0), ._, ._ }, |
| 168046 | .{ ._, .v_dqa, .mov, .tmp3x, .memi(.src2x, .tmp0), ._, ._ }, |
| 162505 | 168047 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 162506 | | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 162507 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 162508 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 168048 | .{ ._, .v_dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 168049 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 168050 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 162509 | 168051 | } }, |
| 162510 | 168052 | }, .{ |
| 162511 | 168053 | .required_features = .{ .sse2, null, null, null }, |
| ... | ... | @@ -162519,10 +168061,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162519 | 168061 | }, |
| 162520 | 168062 | .call_frame = .{ .alignment = .@"16" }, |
| 162521 | 168063 | .extra_temps = .{ |
| 162522 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 162523 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 162524 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 162525 | | .{ .type = .f128, .kind = .{ .reg = .xmm2 } }, |
| 168064 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 168065 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 168066 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 168067 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 162526 | 168068 | .{ .type = .usize, .kind = .{ .extern_func = "fmaq" } }, |
| 162527 | 168069 | .unused, |
| 162528 | 168070 | .unused, |
| ... | ... | @@ -162534,14 +168076,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162534 | 168076 | .dst_temps = .{ .mem, .unused }, |
| 162535 | 168077 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 162536 | 168078 | .each = .{ .once = &.{ |
| 162537 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 162538 | | .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162539 | | .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162540 | | .{ ._, ._dqa, .mov, .tmp3x, .memia(.src2x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 168079 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .add_unaligned_size), ._, ._ }, |
| 168080 | .{ .@"0:", ._dqa, .mov, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 168081 | .{ ._, ._dqa, .mov, .tmp2x, .memi(.src1x, .tmp0), ._, ._ }, |
| 168082 | .{ ._, ._dqa, .mov, .tmp3x, .memi(.src2x, .tmp0), ._, ._ }, |
| 162541 | 168083 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 162542 | | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 162543 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 162544 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 168084 | .{ ._, ._dqa, .mov, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 168085 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 168086 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 162545 | 168087 | } }, |
| 162546 | 168088 | }, .{ |
| 162547 | 168089 | .required_features = .{ .sse, null, null, null }, |
| ... | ... | @@ -162555,10 +168097,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162555 | 168097 | }, |
| 162556 | 168098 | .call_frame = .{ .alignment = .@"16" }, |
| 162557 | 168099 | .extra_temps = .{ |
| 162558 | | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 162559 | | .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, |
| 162560 | | .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, |
| 162561 | | .{ .type = .f128, .kind = .{ .reg = .xmm2 } }, |
| 168100 | .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, |
| 168101 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 168102 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 168103 | .{ .type = .f128, .kind = .{ .param_sse = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 162562 | 168104 | .{ .type = .usize, .kind = .{ .extern_func = "fmaq" } }, |
| 162563 | 168105 | .unused, |
| 162564 | 168106 | .unused, |
| ... | ... | @@ -162570,14 +168112,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162570 | 168112 | .dst_temps = .{ .mem, .unused }, |
| 162571 | 168113 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 162572 | 168114 | .each = .{ .once = &.{ |
| 162573 | | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 162574 | | .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162575 | | .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 162576 | | .{ ._, ._ps, .mova, .tmp3x, .memia(.src2x, .tmp0, .add_unaligned_size), ._, ._ }, |
| 168115 | .{ ._, ._, .mov, .tmp0d, .sia(-16, .src0, .sub_unaligned_size), ._, ._ }, |
| 168116 | .{ .@"0:", ._ps, .mova, .tmp1x, .memi(.src0x, .tmp0), ._, ._ }, |
| 168117 | .{ ._, ._ps, .mova, .tmp2x, .memi(.src1x, .tmp0), ._, ._ }, |
| 168118 | .{ ._, ._ps, .mova, .tmp3x, .memi(.src2x, .tmp0), ._, ._ }, |
| 162577 | 168119 | .{ ._, ._, .call, .tmp4d, ._, ._, ._ }, |
| 162578 | | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, |
| 162579 | | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 162580 | | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 168120 | .{ ._, ._ps, .mova, .memi(.dst0x, .tmp0), .tmp1x, ._, ._ }, |
| 168121 | .{ ._, ._, .sub, .tmp0d, .si(16), ._, ._ }, |
| 168122 | .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, |
| 162581 | 168123 | } }, |
| 162582 | 168124 | } }) catch |err| switch (err) { |
| 162583 | 168125 | error.SelectFailed => return cg.fail("failed to select {s} {} {} {} {}", .{ |
| ... | ... | @@ -162591,7 +168133,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162591 | 168133 | }; |
| 162592 | 168134 | try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs, pl_op.operand }, &ops, cg); |
| 162593 | 168135 | }, |
| 162594 | | .field_parent_ptr => if (use_old) try cg.airFieldParentPtr(inst) else { |
| 168136 | .field_parent_ptr => { |
| 162595 | 168137 | const ty_pl = air_datas[@intFromEnum(inst)].ty_pl; |
| 162596 | 168138 | const field_parent_ptr = cg.air.extraData(Air.FieldParentPtr, ty_pl.payload).data; |
| 162597 | 168139 | var ops = try cg.tempsFromOperands(inst, .{field_parent_ptr.field_ptr}); |
| ... | ... | @@ -162603,7 +168145,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { |
| 162603 | 168145 | try ops[0].finish(inst, &.{field_parent_ptr.field_ptr}, &ops, cg); |
| 162604 | 168146 | }, |
| 162605 | 168147 | .wasm_memory_size, .wasm_memory_grow => unreachable, |
| 162606 | | .cmp_lt_errors_len => |air_tag| if (use_old) try cg.airCmpLtErrorsLen(inst) else { |
| 168148 | .cmp_lt_errors_len => |air_tag| { |
| 162607 | 168149 | const un_op = air_datas[@intFromEnum(inst)].un_op; |
| 162608 | 168150 | var ops = try cg.tempsFromOperands(inst, .{un_op}); |
| 162609 | 168151 | var res: [1]Temp = undefined; |
| ... | ... | @@ -163494,36 +169036,38 @@ fn getValueIfFree(self: *CodeGen, value: MCValue, inst: ?Air.Inst.Index) void { |
| 163494 | 169036 | self.register_manager.getRegAssumeFree(reg, inst); |
| 163495 | 169037 | } |
| 163496 | 169038 | |
| 163497 | | fn freeReg(self: *CodeGen, reg: Register) !void { |
| 169039 | const FreeOptions = struct { emit_instructions: bool = true }; |
| 169040 | |
| 169041 | fn freeReg(self: *CodeGen, reg: Register, comptime opts: FreeOptions) !void { |
| 163498 | 169042 | self.register_manager.freeReg(reg); |
| 163499 | | if (reg.isClass(.x87)) try self.asmRegister(.{ .f_, .free }, reg); |
| 169043 | if (opts.emit_instructions and reg.isClass(.x87)) try self.asmRegister(.{ .f_, .free }, reg); |
| 163500 | 169044 | } |
| 163501 | 169045 | |
| 163502 | | fn freeValue(self: *CodeGen, value: MCValue) !void { |
| 169046 | fn freeValue(self: *CodeGen, value: MCValue, comptime opts: FreeOptions) !void { |
| 163503 | 169047 | switch (value) { |
| 163504 | | .register => |reg| try self.freeReg(reg), |
| 169048 | .register => |reg| try self.freeReg(reg, opts), |
| 163505 | 169049 | inline .register_pair, |
| 163506 | 169050 | .register_triple, |
| 163507 | 169051 | .register_quadruple, |
| 163508 | | => |regs| for (regs) |reg| try self.freeReg(reg), |
| 163509 | | .register_offset, .indirect => |reg_off| try self.freeReg(reg_off.reg), |
| 169052 | => |regs| for (regs) |reg| try self.freeReg(reg, opts), |
| 169053 | .register_offset, .indirect => |reg_off| try self.freeReg(reg_off.reg, opts), |
| 163510 | 169054 | .register_overflow => |reg_ov| { |
| 163511 | | try self.freeReg(reg_ov.reg); |
| 169055 | try self.freeReg(reg_ov.reg, opts); |
| 163512 | 169056 | self.eflags_inst = null; |
| 163513 | 169057 | }, |
| 163514 | | .register_mask => |reg_mask| try self.freeReg(reg_mask.reg), |
| 169058 | .register_mask => |reg_mask| try self.freeReg(reg_mask.reg, opts), |
| 163515 | 169059 | .eflags => self.eflags_inst = null, |
| 163516 | 169060 | else => {}, // TODO process stack allocation death |
| 163517 | 169061 | } |
| 163518 | 169062 | } |
| 163519 | 169063 | |
| 163520 | 169064 | fn feed(self: *CodeGen, bt: *Air.Liveness.BigTomb, operand: Air.Inst.Ref) !void { |
| 163521 | | if (bt.feed()) if (operand.toIndex()) |inst| try self.processDeath(inst); |
| 169065 | if (bt.feed()) if (operand.toIndex()) |inst| try self.processDeath(inst, .{}); |
| 163522 | 169066 | } |
| 163523 | 169067 | |
| 163524 | 169068 | /// Asserts there is already capacity to insert into top branch inst_table. |
| 163525 | | fn processDeath(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 163526 | | try self.inst_tracking.getPtr(inst).?.die(self, inst); |
| 169069 | fn processDeath(self: *CodeGen, inst: Air.Inst.Index, comptime opts: FreeOptions) !void { |
| 169070 | try self.inst_tracking.getPtr(inst).?.die(self, inst, opts); |
| 163527 | 169071 | } |
| 163528 | 169072 | |
| 163529 | 169073 | fn finishAirResult(self: *CodeGen, inst: Air.Inst.Index, result: MCValue) void { |
| ... | ... | @@ -163550,7 +169094,7 @@ fn finishAir( |
| 163550 | 169094 | for (0.., operands) |op_index, op| { |
| 163551 | 169095 | if (tomb_bits & @as(Air.Liveness.Bpi, 1) << @intCast(op_index) == 0) continue; |
| 163552 | 169096 | if (self.reused_operands.isSet(op_index)) continue; |
| 163553 | | try self.processDeath(op.toIndexAllowNone() orelse continue); |
| 169097 | try self.processDeath(op.toIndexAllowNone() orelse continue, .{}); |
| 163554 | 169098 | } |
| 163555 | 169099 | self.finishAirResult(inst, result); |
| 163556 | 169100 | } |
| ... | ... | @@ -163772,21 +169316,6 @@ fn vectorSize(cg: *CodeGen, kind: enum { int, float }) u6 { |
| 163772 | 169316 | })) 32 else if (cg.hasFeature(.sse)) 16 else 8; |
| 163773 | 169317 | } |
| 163774 | 169318 | |
| 163775 | | fn limbType(cg: *CodeGen, ty: Type) Type { |
| 163776 | | const pt = cg.pt; |
| 163777 | | const zcu = pt.zcu; |
| 163778 | | const vector_size = cg.vectorSize(if (ty.isRuntimeFloat()) .float else .int); |
| 163779 | | const scalar_ty, const scalar_size = scalar: { |
| 163780 | | const scalar_ty = ty.scalarType(zcu); |
| 163781 | | const scalar_size = scalar_ty.abiSize(zcu); |
| 163782 | | if (scalar_size <= vector_size) break :scalar .{ scalar_ty, scalar_size }; |
| 163783 | | }; |
| 163784 | | pt.vectorType(.{ |
| 163785 | | .len = @divExact(vector_size, scalar_size), |
| 163786 | | .child = scalar_ty.toIntern(), |
| 163787 | | }); |
| 163788 | | } |
| 163789 | | |
| 163790 | 169319 | const State = struct { |
| 163791 | 169320 | registers: RegisterManager.TrackedRegisters, |
| 163792 | 169321 | reg_tracking: [RegisterManager.RegisterBitSet.bit_length]InstTracking, |
| ... | ... | @@ -163835,12 +169364,12 @@ fn restoreState(self: *CodeGen, state: State, deaths: []const Air.Inst.Index, co |
| 163835 | 169364 | for ( |
| 163836 | 169365 | self.inst_tracking.keys()[@intFromEnum(state.next_temp_index)..@intFromEnum(self.next_temp_index)], |
| 163837 | 169366 | self.inst_tracking.values()[@intFromEnum(state.next_temp_index)..@intFromEnum(self.next_temp_index)], |
| 163838 | | ) |inst, *tracking| try tracking.die(self, inst); |
| 169367 | ) |inst, *tracking| try tracking.die(self, inst, .{ .emit_instructions = opts.emit_instructions }); |
| 163839 | 169368 | self.next_temp_index = state.next_temp_index; |
| 163840 | 169369 | for ( |
| 163841 | 169370 | self.inst_tracking.keys()[state.inst_tracking_len..], |
| 163842 | 169371 | self.inst_tracking.values()[state.inst_tracking_len..], |
| 163843 | | ) |inst, *tracking| try tracking.die(self, inst); |
| 169372 | ) |inst, *tracking| try tracking.die(self, inst, .{ .emit_instructions = opts.emit_instructions }); |
| 163844 | 169373 | self.inst_tracking.shrinkRetainingCapacity(state.inst_tracking_len); |
| 163845 | 169374 | } |
| 163846 | 169375 | |
| ... | ... | @@ -163854,7 +169383,7 @@ fn restoreState(self: *CodeGen, state: State, deaths: []const Air.Inst.Index, co |
| 163854 | 169383 | self.inst_tracking.values()[Temp.Index.max..state.inst_tracking_len], |
| 163855 | 169384 | ) |inst, *tracking| try tracking.resurrect(self, inst, state.scope_generation); |
| 163856 | 169385 | } |
| 163857 | | for (deaths) |death| try self.processDeath(death); |
| 169386 | for (deaths) |death| try self.processDeath(death, .{ .emit_instructions = opts.emit_instructions }); |
| 163858 | 169387 | |
| 163859 | 169388 | const ExpectedContents = [@typeInfo(RegisterManager.TrackedRegisters).array.len]RegisterLock; |
| 163860 | 169389 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = |
| ... | ... | @@ -169028,6 +174557,7 @@ fn load(self: *CodeGen, dst_mcv: MCValue, ptr_ty: Type, ptr_mcv: MCValue) InnerE |
| 169028 | 174557 | .register_quadruple, |
| 169029 | 174558 | .register_overflow, |
| 169030 | 174559 | .register_mask, |
| 174560 | .indirect_load_frame, |
| 169031 | 174561 | .elementwise_args, |
| 169032 | 174562 | .reserved_frame, |
| 169033 | 174563 | => unreachable, // not a valid pointer |
| ... | ... | @@ -169248,6 +174778,7 @@ fn store( |
| 169248 | 174778 | .register_quadruple, |
| 169249 | 174779 | .register_overflow, |
| 169250 | 174780 | .register_mask, |
| 174781 | .indirect_load_frame, |
| 169251 | 174782 | .elementwise_args, |
| 169252 | 174783 | .reserved_frame, |
| 169253 | 174784 | => unreachable, // not a valid pointer |
| ... | ... | @@ -169307,31 +174838,6 @@ fn airStore(self: *CodeGen, inst: Air.Inst.Index, safety: bool) !void { |
| 169307 | 174838 | return self.finishAir(inst, .none, .{ bin_op.lhs, bin_op.rhs, .none }); |
| 169308 | 174839 | } |
| 169309 | 174840 | |
| 169310 | | fn airStructFieldPtr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 169311 | | const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; |
| 169312 | | const extra = self.air.extraData(Air.StructField, ty_pl.payload).data; |
| 169313 | | const result = try self.fieldPtr(inst, extra.struct_operand, extra.field_index); |
| 169314 | | return self.finishAir(inst, result, .{ extra.struct_operand, .none, .none }); |
| 169315 | | } |
| 169316 | | |
| 169317 | | fn airStructFieldPtrIndex(self: *CodeGen, inst: Air.Inst.Index, field_index: u8) !void { |
| 169318 | | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 169319 | | const result = try self.fieldPtr(inst, ty_op.operand, field_index); |
| 169320 | | return self.finishAir(inst, result, .{ ty_op.operand, .none, .none }); |
| 169321 | | } |
| 169322 | | |
| 169323 | | fn fieldPtr(self: *CodeGen, inst: Air.Inst.Index, operand: Air.Inst.Ref, field_index: u32) !MCValue { |
| 169324 | | const ptr_field_ty = self.typeOfIndex(inst); |
| 169325 | | |
| 169326 | | const src_mcv = try self.resolveInst(operand); |
| 169327 | | const dst_mcv = if (switch (src_mcv) { |
| 169328 | | .immediate, .lea_frame => true, |
| 169329 | | .register, .register_offset => self.reuseOperand(inst, operand, 0, src_mcv), |
| 169330 | | else => false, |
| 169331 | | }) src_mcv else try self.copyToRegisterWithInstTracking(inst, ptr_field_ty, src_mcv); |
| 169332 | | return dst_mcv.offset(self.fieldOffset(self.typeOf(operand), ptr_field_ty, field_index)); |
| 169333 | | } |
| 169334 | | |
| 169335 | 174841 | fn fieldOffset(self: *CodeGen, ptr_agg_ty: Type, ptr_field_ty: Type, field_index: u32) i32 { |
| 169336 | 174842 | const pt = self.pt; |
| 169337 | 174843 | const zcu = pt.zcu; |
| ... | ... | @@ -169344,291 +174850,6 @@ fn fieldOffset(self: *CodeGen, ptr_agg_ty: Type, ptr_field_ty: Type, field_index |
| 169344 | 174850 | }; |
| 169345 | 174851 | } |
| 169346 | 174852 | |
| 169347 | | fn airStructFieldVal(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 169348 | | const pt = self.pt; |
| 169349 | | const zcu = pt.zcu; |
| 169350 | | const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; |
| 169351 | | const extra = self.air.extraData(Air.StructField, ty_pl.payload).data; |
| 169352 | | const result: MCValue = result: { |
| 169353 | | const operand = extra.struct_operand; |
| 169354 | | const index = extra.field_index; |
| 169355 | | |
| 169356 | | const container_ty = self.typeOf(operand); |
| 169357 | | const container_rc = self.regSetForType(container_ty); |
| 169358 | | const field_ty = container_ty.fieldType(index, zcu); |
| 169359 | | if (!field_ty.hasRuntimeBitsIgnoreComptime(zcu)) break :result .none; |
| 169360 | | const field_rc = self.regSetForType(field_ty); |
| 169361 | | const field_is_gp = field_rc.supersetOf(abi.RegisterClass.gp); |
| 169362 | | |
| 169363 | | const src_mcv = try self.resolveInst(operand); |
| 169364 | | const field_off: u32 = switch (container_ty.containerLayout(zcu)) { |
| 169365 | | .auto, .@"extern" => @intCast(container_ty.structFieldOffset(extra.field_index, zcu) * 8), |
| 169366 | | .@"packed" => if (zcu.typeToStruct(container_ty)) |loaded_struct| |
| 169367 | | pt.structPackedFieldBitOffset(loaded_struct, extra.field_index) |
| 169368 | | else |
| 169369 | | 0, |
| 169370 | | }; |
| 169371 | | |
| 169372 | | switch (src_mcv) { |
| 169373 | | .register => |src_reg| { |
| 169374 | | const src_reg_lock = self.register_manager.lockRegAssumeUnused(src_reg); |
| 169375 | | defer self.register_manager.unlockReg(src_reg_lock); |
| 169376 | | |
| 169377 | | const src_in_field_rc = |
| 169378 | | field_rc.isSet(RegisterManager.indexOfRegIntoTracked(src_reg).?); |
| 169379 | | const dst_reg = if (src_in_field_rc and self.reuseOperand(inst, operand, 0, src_mcv)) |
| 169380 | | src_reg |
| 169381 | | else if (field_off == 0) |
| 169382 | | (try self.copyToRegisterWithInstTracking(inst, field_ty, src_mcv)).register |
| 169383 | | else |
| 169384 | | try self.copyToTmpRegister(.usize, .{ .register = src_reg }); |
| 169385 | | const dst_mcv: MCValue = .{ .register = dst_reg }; |
| 169386 | | const dst_lock = self.register_manager.lockReg(dst_reg); |
| 169387 | | defer if (dst_lock) |lock| self.register_manager.unlockReg(lock); |
| 169388 | | |
| 169389 | | if (field_off > 0) { |
| 169390 | | try self.spillEflagsIfOccupied(); |
| 169391 | | try self.genShiftBinOpMir(.{ ._r, .sh }, .usize, dst_mcv, .u8, .{ .immediate = field_off }); |
| 169392 | | } |
| 169393 | | if (abi.RegisterClass.gp.isSet(RegisterManager.indexOfRegIntoTracked(dst_reg).?) and |
| 169394 | | container_ty.abiSize(zcu) * 8 > field_ty.bitSize(zcu)) |
| 169395 | | try self.truncateRegister(field_ty, dst_reg); |
| 169396 | | |
| 169397 | | break :result if (field_off == 0 or field_rc.supersetOf(abi.RegisterClass.gp)) |
| 169398 | | dst_mcv |
| 169399 | | else |
| 169400 | | try self.copyToRegisterWithInstTracking(inst, field_ty, dst_mcv); |
| 169401 | | }, |
| 169402 | | .register_pair => |src_regs| { |
| 169403 | | const src_regs_lock = self.register_manager.lockRegsAssumeUnused(2, src_regs); |
| 169404 | | defer for (src_regs_lock) |lock| self.register_manager.unlockReg(lock); |
| 169405 | | |
| 169406 | | const field_bit_size: u32 = @intCast(field_ty.bitSize(zcu)); |
| 169407 | | const src_reg = if (field_off + field_bit_size <= 64) |
| 169408 | | src_regs[0] |
| 169409 | | else if (field_off >= 64) |
| 169410 | | src_regs[1] |
| 169411 | | else { |
| 169412 | | const dst_regs: [2]Register = if (field_rc.supersetOf(container_rc) and |
| 169413 | | self.reuseOperand(inst, operand, 0, src_mcv)) src_regs else dst: { |
| 169414 | | const dst_regs = |
| 169415 | | try self.register_manager.allocRegs(2, @splat(null), field_rc); |
| 169416 | | const dst_locks = self.register_manager.lockRegsAssumeUnused(2, dst_regs); |
| 169417 | | defer for (dst_locks) |lock| self.register_manager.unlockReg(lock); |
| 169418 | | |
| 169419 | | try self.genCopy(container_ty, .{ .register_pair = dst_regs }, src_mcv, .{}); |
| 169420 | | break :dst dst_regs; |
| 169421 | | }; |
| 169422 | | const dst_mcv = MCValue{ .register_pair = dst_regs }; |
| 169423 | | const dst_locks = self.register_manager.lockRegs(2, dst_regs); |
| 169424 | | defer for (dst_locks) |dst_lock| if (dst_lock) |lock| |
| 169425 | | self.register_manager.unlockReg(lock); |
| 169426 | | |
| 169427 | | if (field_off > 0) { |
| 169428 | | try self.spillEflagsIfOccupied(); |
| 169429 | | try self.genShiftBinOpMir(.{ ._r, .sh }, .u128, dst_mcv, .u8, .{ .immediate = field_off }); |
| 169430 | | } |
| 169431 | | |
| 169432 | | if (field_bit_size <= 64) { |
| 169433 | | if (self.regExtraBits(field_ty) > 0) |
| 169434 | | try self.truncateRegister(field_ty, dst_regs[0]); |
| 169435 | | break :result if (field_rc.supersetOf(abi.RegisterClass.gp)) |
| 169436 | | .{ .register = dst_regs[0] } |
| 169437 | | else |
| 169438 | | try self.copyToRegisterWithInstTracking(inst, field_ty, .{ |
| 169439 | | .register = dst_regs[0], |
| 169440 | | }); |
| 169441 | | } |
| 169442 | | |
| 169443 | | if (field_bit_size < 128) try self.truncateRegister( |
| 169444 | | try pt.intType(.unsigned, @intCast(field_bit_size - 64)), |
| 169445 | | dst_regs[1], |
| 169446 | | ); |
| 169447 | | break :result if (field_rc.supersetOf(abi.RegisterClass.gp)) |
| 169448 | | dst_mcv |
| 169449 | | else |
| 169450 | | try self.copyToRegisterWithInstTracking(inst, field_ty, dst_mcv); |
| 169451 | | }; |
| 169452 | | |
| 169453 | | const dst_reg = try self.copyToTmpRegister(.usize, .{ .register = src_reg }); |
| 169454 | | const dst_mcv = MCValue{ .register = dst_reg }; |
| 169455 | | const dst_lock = self.register_manager.lockReg(dst_reg); |
| 169456 | | defer if (dst_lock) |lock| self.register_manager.unlockReg(lock); |
| 169457 | | |
| 169458 | | if (field_off % 64 > 0) { |
| 169459 | | try self.spillEflagsIfOccupied(); |
| 169460 | | try self.genShiftBinOpMir(.{ ._r, .sh }, .usize, dst_mcv, .u8, .{ .immediate = field_off % 64 }); |
| 169461 | | } |
| 169462 | | if (self.regExtraBits(field_ty) > 0) try self.truncateRegister(field_ty, dst_reg); |
| 169463 | | |
| 169464 | | break :result if (field_rc.supersetOf(abi.RegisterClass.gp)) |
| 169465 | | dst_mcv |
| 169466 | | else |
| 169467 | | try self.copyToRegisterWithInstTracking(inst, field_ty, dst_mcv); |
| 169468 | | }, |
| 169469 | | .register_overflow => |ro| { |
| 169470 | | switch (index) { |
| 169471 | | // Get wrapped value for overflow operation. |
| 169472 | | 0 => if (self.reuseOperand(inst, extra.struct_operand, 0, src_mcv)) { |
| 169473 | | self.eflags_inst = null; // actually stop tracking the overflow part |
| 169474 | | break :result .{ .register = ro.reg }; |
| 169475 | | } else break :result try self.copyToRegisterWithInstTracking(inst, .usize, .{ .register = ro.reg }), |
| 169476 | | // Get overflow bit. |
| 169477 | | 1 => if (self.reuseOperandAdvanced(inst, extra.struct_operand, 0, src_mcv, null)) { |
| 169478 | | self.eflags_inst = inst; // actually keep tracking the overflow part |
| 169479 | | break :result .{ .eflags = ro.eflags }; |
| 169480 | | } else { |
| 169481 | | const dst_reg = try self.register_manager.allocReg(inst, abi.RegisterClass.gp); |
| 169482 | | try self.asmSetccRegister(ro.eflags, dst_reg.to8()); |
| 169483 | | break :result .{ .register = dst_reg.to8() }; |
| 169484 | | }, |
| 169485 | | else => unreachable, |
| 169486 | | } |
| 169487 | | }, |
| 169488 | | .load_frame => |frame_addr| { |
| 169489 | | const field_abi_size: u32 = @intCast(field_ty.abiSize(zcu)); |
| 169490 | | if (field_off % 8 == 0) { |
| 169491 | | const field_byte_off = @divExact(field_off, 8); |
| 169492 | | const off_mcv = src_mcv.address().offset(@intCast(field_byte_off)).deref(); |
| 169493 | | const field_bit_size = field_ty.bitSize(zcu); |
| 169494 | | |
| 169495 | | if (field_abi_size <= 8) { |
| 169496 | | const int_ty = try pt.intType( |
| 169497 | | if (field_ty.isAbiInt(zcu)) field_ty.intInfo(zcu).signedness else .unsigned, |
| 169498 | | @intCast(field_bit_size), |
| 169499 | | ); |
| 169500 | | |
| 169501 | | const dst_reg = try self.register_manager.allocReg( |
| 169502 | | if (field_is_gp) inst else null, |
| 169503 | | abi.RegisterClass.gp, |
| 169504 | | ); |
| 169505 | | const dst_mcv = MCValue{ .register = dst_reg }; |
| 169506 | | const dst_lock = self.register_manager.lockRegAssumeUnused(dst_reg); |
| 169507 | | defer self.register_manager.unlockReg(dst_lock); |
| 169508 | | |
| 169509 | | try self.genCopy(int_ty, dst_mcv, off_mcv, .{}); |
| 169510 | | if (self.regExtraBits(field_ty) > 0) try self.truncateRegister(int_ty, dst_reg); |
| 169511 | | break :result if (field_is_gp) |
| 169512 | | dst_mcv |
| 169513 | | else |
| 169514 | | try self.copyToRegisterWithInstTracking(inst, field_ty, dst_mcv); |
| 169515 | | } |
| 169516 | | |
| 169517 | | const container_abi_size: u32 = @intCast(container_ty.abiSize(zcu)); |
| 169518 | | const dst_mcv = if (field_byte_off + field_abi_size <= container_abi_size and |
| 169519 | | self.reuseOperand(inst, operand, 0, src_mcv)) |
| 169520 | | off_mcv |
| 169521 | | else dst: { |
| 169522 | | const dst_mcv = try self.allocRegOrMem(inst, true); |
| 169523 | | try self.genCopy(field_ty, dst_mcv, off_mcv, .{}); |
| 169524 | | break :dst dst_mcv; |
| 169525 | | }; |
| 169526 | | if (field_abi_size * 8 > field_bit_size and dst_mcv.isBase()) { |
| 169527 | | const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 169528 | | const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg); |
| 169529 | | defer self.register_manager.unlockReg(tmp_lock); |
| 169530 | | |
| 169531 | | const hi_mcv = |
| 169532 | | dst_mcv.address().offset(@intCast(field_bit_size / 64 * 8)).deref(); |
| 169533 | | try self.genSetReg(tmp_reg, .usize, hi_mcv, .{}); |
| 169534 | | try self.truncateRegister(field_ty, tmp_reg); |
| 169535 | | try self.genCopy(.usize, hi_mcv, .{ .register = tmp_reg }, .{}); |
| 169536 | | } |
| 169537 | | break :result dst_mcv; |
| 169538 | | } |
| 169539 | | |
| 169540 | | const limb_abi_size: u31 = @min(field_abi_size, 8); |
| 169541 | | const limb_abi_bits = limb_abi_size * 8; |
| 169542 | | const field_byte_off: i32 = @intCast(field_off / limb_abi_bits * limb_abi_size); |
| 169543 | | const field_bit_off = field_off % limb_abi_bits; |
| 169544 | | |
| 169545 | | if (field_abi_size > 8) { |
| 169546 | | return self.fail("TODO implement struct_field_val with large packed field", .{}); |
| 169547 | | } |
| 169548 | | |
| 169549 | | const dst_reg = try self.register_manager.allocReg( |
| 169550 | | if (field_is_gp) inst else null, |
| 169551 | | abi.RegisterClass.gp, |
| 169552 | | ); |
| 169553 | | const field_extra_bits = self.regExtraBits(field_ty); |
| 169554 | | const load_abi_size = |
| 169555 | | if (field_bit_off < field_extra_bits) field_abi_size else field_abi_size * 2; |
| 169556 | | if (load_abi_size <= 8) { |
| 169557 | | const load_reg = registerAlias(dst_reg, load_abi_size); |
| 169558 | | try self.asmRegisterMemory(.{ ._, .mov }, load_reg, .{ |
| 169559 | | .base = .{ .frame = frame_addr.index }, |
| 169560 | | .mod = .{ .rm = .{ |
| 169561 | | .size = .fromSize(load_abi_size), |
| 169562 | | .disp = frame_addr.off + field_byte_off, |
| 169563 | | } }, |
| 169564 | | }); |
| 169565 | | try self.spillEflagsIfOccupied(); |
| 169566 | | try self.asmRegisterImmediate(.{ ._r, .sh }, load_reg, .u(field_bit_off)); |
| 169567 | | } else { |
| 169568 | | const tmp_reg = registerAlias( |
| 169569 | | try self.register_manager.allocReg(null, abi.RegisterClass.gp), |
| 169570 | | field_abi_size, |
| 169571 | | ); |
| 169572 | | const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg); |
| 169573 | | defer self.register_manager.unlockReg(tmp_lock); |
| 169574 | | |
| 169575 | | const dst_alias = registerAlias(dst_reg, field_abi_size); |
| 169576 | | try self.asmRegisterMemory( |
| 169577 | | .{ ._, .mov }, |
| 169578 | | dst_alias, |
| 169579 | | .{ |
| 169580 | | .base = .{ .frame = frame_addr.index }, |
| 169581 | | .mod = .{ .rm = .{ |
| 169582 | | .size = .fromSize(field_abi_size), |
| 169583 | | .disp = frame_addr.off + field_byte_off, |
| 169584 | | } }, |
| 169585 | | }, |
| 169586 | | ); |
| 169587 | | try self.asmRegisterMemory(.{ ._, .mov }, tmp_reg, .{ |
| 169588 | | .base = .{ .frame = frame_addr.index }, |
| 169589 | | .mod = .{ .rm = .{ |
| 169590 | | .size = .fromSize(field_abi_size), |
| 169591 | | .disp = frame_addr.off + field_byte_off + limb_abi_size, |
| 169592 | | } }, |
| 169593 | | }); |
| 169594 | | try self.spillEflagsIfOccupied(); |
| 169595 | | try self.asmRegisterRegisterImmediate( |
| 169596 | | .{ ._rd, .sh }, |
| 169597 | | dst_alias, |
| 169598 | | tmp_reg, |
| 169599 | | .u(field_bit_off), |
| 169600 | | ); |
| 169601 | | } |
| 169602 | | |
| 169603 | | if (field_extra_bits > 0) try self.truncateRegister(field_ty, dst_reg); |
| 169604 | | |
| 169605 | | const dst_mcv = MCValue{ .register = dst_reg }; |
| 169606 | | break :result if (field_is_gp) |
| 169607 | | dst_mcv |
| 169608 | | else |
| 169609 | | try self.copyToRegisterWithInstTracking(inst, field_ty, dst_mcv); |
| 169610 | | }, |
| 169611 | | else => return self.fail("TODO implement airStructFieldVal for {}", .{src_mcv}), |
| 169612 | | } |
| 169613 | | }; |
| 169614 | | return self.finishAir(inst, result, .{ extra.struct_operand, .none, .none }); |
| 169615 | | } |
| 169616 | | |
| 169617 | | fn airFieldParentPtr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 169618 | | const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; |
| 169619 | | const extra = self.air.extraData(Air.FieldParentPtr, ty_pl.payload).data; |
| 169620 | | |
| 169621 | | const ptr_agg_ty = self.typeOfIndex(inst); |
| 169622 | | const src_mcv = try self.resolveInst(extra.field_ptr); |
| 169623 | | const dst_mcv = if (src_mcv.isRegisterOffset() and |
| 169624 | | self.reuseOperand(inst, extra.field_ptr, 0, src_mcv)) |
| 169625 | | src_mcv |
| 169626 | | else |
| 169627 | | try self.copyToRegisterWithInstTracking(inst, ptr_agg_ty, src_mcv); |
| 169628 | | const result = dst_mcv.offset(-self.fieldOffset(ptr_agg_ty, self.typeOf(extra.field_ptr), extra.field_index)); |
| 169629 | | return self.finishAir(inst, result, .{ extra.field_ptr, .none, .none }); |
| 169630 | | } |
| 169631 | | |
| 169632 | 174853 | fn genUnOp(self: *CodeGen, maybe_inst: ?Air.Inst.Index, tag: Air.Inst.Tag, src_air: Air.Inst.Ref) !MCValue { |
| 169633 | 174854 | const pt = self.pt; |
| 169634 | 174855 | const zcu = pt.zcu; |
| ... | ... | @@ -169732,6 +174953,7 @@ fn genUnOpMir(self: *CodeGen, mir_tag: Mir.Inst.FixedTag, dst_ty: Type, dst_mcv: |
| 169732 | 174953 | .eflags, |
| 169733 | 174954 | .register_overflow, |
| 169734 | 174955 | .register_mask, |
| 174956 | .indirect_load_frame, |
| 169735 | 174957 | .lea_frame, |
| 169736 | 174958 | .lea_nav, |
| 169737 | 174959 | .lea_uav, |
| ... | ... | @@ -170401,495 +175623,6 @@ fn genShiftBinOpMir( |
| 170401 | 175623 | }); |
| 170402 | 175624 | } |
| 170403 | 175625 | |
| 170404 | | /// Result is always a register. |
| 170405 | | /// Clobbers .rcx for non-immediate rhs, therefore care is needed to spill .rcx upfront. |
| 170406 | | /// Asserts .rcx is free. |
| 170407 | | fn genShiftBinOp( |
| 170408 | | self: *CodeGen, |
| 170409 | | air_tag: Air.Inst.Tag, |
| 170410 | | maybe_inst: ?Air.Inst.Index, |
| 170411 | | lhs_mcv: MCValue, |
| 170412 | | rhs_mcv: MCValue, |
| 170413 | | lhs_ty: Type, |
| 170414 | | rhs_ty: Type, |
| 170415 | | ) !MCValue { |
| 170416 | | const pt = self.pt; |
| 170417 | | const zcu = pt.zcu; |
| 170418 | | if (lhs_ty.zigTypeTag(zcu) == .vector) return self.fail("TODO implement genShiftBinOp for {}", .{ |
| 170419 | | lhs_ty.fmt(pt), |
| 170420 | | }); |
| 170421 | | |
| 170422 | | try self.register_manager.getKnownReg(.rcx, null); |
| 170423 | | const rcx_lock = self.register_manager.lockReg(.rcx); |
| 170424 | | defer if (rcx_lock) |lock| self.register_manager.unlockReg(lock); |
| 170425 | | |
| 170426 | | const mat_lhs_mcv: MCValue, const can_reuse_lhs = switch (lhs_mcv) { |
| 170427 | | .register => |lhs_reg| switch (lhs_reg.class()) { |
| 170428 | | .general_purpose => .{ lhs_mcv, true }, |
| 170429 | | else => lhs: { |
| 170430 | | const mat_lhs_mcv = try self.allocTempRegOrMem(lhs_ty, true); |
| 170431 | | try self.genCopy(lhs_ty, mat_lhs_mcv, lhs_mcv, .{}); |
| 170432 | | break :lhs .{ mat_lhs_mcv, false }; |
| 170433 | | }, |
| 170434 | | }, |
| 170435 | | else => .{ lhs_mcv, true }, |
| 170436 | | }; |
| 170437 | | const lhs_lock = switch (mat_lhs_mcv) { |
| 170438 | | .register => |reg| self.register_manager.lockReg(reg), |
| 170439 | | else => null, |
| 170440 | | }; |
| 170441 | | defer if (lhs_lock) |lock| self.register_manager.unlockReg(lock); |
| 170442 | | |
| 170443 | | const rhs_lock = switch (rhs_mcv) { |
| 170444 | | .register => |reg| self.register_manager.lockReg(reg), |
| 170445 | | else => null, |
| 170446 | | }; |
| 170447 | | defer if (rhs_lock) |lock| self.register_manager.unlockReg(lock); |
| 170448 | | |
| 170449 | | const dst_mcv: MCValue = dst: { |
| 170450 | | if (can_reuse_lhs) if (maybe_inst) |inst| { |
| 170451 | | const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; |
| 170452 | | if (self.reuseOperand(inst, bin_op.lhs, 0, mat_lhs_mcv)) break :dst mat_lhs_mcv; |
| 170453 | | }; |
| 170454 | | const dst_mcv = try self.allocRegOrMemAdvanced(lhs_ty, maybe_inst, true); |
| 170455 | | try self.genCopy(lhs_ty, dst_mcv, mat_lhs_mcv, .{}); |
| 170456 | | break :dst dst_mcv; |
| 170457 | | }; |
| 170458 | | |
| 170459 | | const signedness = lhs_ty.intInfo(zcu).signedness; |
| 170460 | | try self.genShiftBinOpMir(switch (air_tag) { |
| 170461 | | .shl, .shl_exact => switch (signedness) { |
| 170462 | | .signed => .{ ._l, .sa }, |
| 170463 | | .unsigned => .{ ._l, .sh }, |
| 170464 | | }, |
| 170465 | | .shr, .shr_exact => switch (signedness) { |
| 170466 | | .signed => .{ ._r, .sa }, |
| 170467 | | .unsigned => .{ ._r, .sh }, |
| 170468 | | }, |
| 170469 | | else => unreachable, |
| 170470 | | }, lhs_ty, dst_mcv, rhs_ty, rhs_mcv); |
| 170471 | | return dst_mcv; |
| 170472 | | } |
| 170473 | | |
| 170474 | | /// Result is always a register. |
| 170475 | | /// Clobbers .rax and .rdx therefore care is needed to spill .rax and .rdx upfront. |
| 170476 | | /// Asserts .rax and .rdx are free. |
| 170477 | | fn genMulDivBinOp( |
| 170478 | | self: *CodeGen, |
| 170479 | | tag: Air.Inst.Tag, |
| 170480 | | maybe_inst: ?Air.Inst.Index, |
| 170481 | | dst_ty: Type, |
| 170482 | | src_ty: Type, |
| 170483 | | lhs_mcv: MCValue, |
| 170484 | | rhs_mcv: MCValue, |
| 170485 | | ) !MCValue { |
| 170486 | | const pt = self.pt; |
| 170487 | | const zcu = pt.zcu; |
| 170488 | | if (dst_ty.zigTypeTag(zcu) == .vector or dst_ty.zigTypeTag(zcu) == .float) return self.fail( |
| 170489 | | "TODO implement genMulDivBinOp for {s} from {} to {}", |
| 170490 | | .{ @tagName(tag), src_ty.fmt(pt), dst_ty.fmt(pt) }, |
| 170491 | | ); |
| 170492 | | const dst_abi_size: u32 = @intCast(dst_ty.abiSize(zcu)); |
| 170493 | | const src_abi_size: u32 = @intCast(src_ty.abiSize(zcu)); |
| 170494 | | |
| 170495 | | assert(self.register_manager.isRegFree(.rax)); |
| 170496 | | assert(self.register_manager.isRegFree(.rcx)); |
| 170497 | | assert(self.register_manager.isRegFree(.rdx)); |
| 170498 | | assert(self.eflags_inst == null); |
| 170499 | | |
| 170500 | | if (dst_abi_size == 16 and src_abi_size == 16) { |
| 170501 | | assert(tag == .mul or tag == .mul_wrap); |
| 170502 | | const reg_locks = self.register_manager.lockRegs(2, .{ .rax, .rdx }); |
| 170503 | | defer for (reg_locks) |reg_lock| if (reg_lock) |lock| self.register_manager.unlockReg(lock); |
| 170504 | | |
| 170505 | | const mat_lhs_mcv = switch (lhs_mcv) { |
| 170506 | | .load_nav, .load_uav, .load_lazy_sym => mat_lhs_mcv: { |
| 170507 | | // TODO clean this up! |
| 170508 | | const addr_reg = try self.copyToTmpRegister(.usize, lhs_mcv.address()); |
| 170509 | | break :mat_lhs_mcv MCValue{ .indirect = .{ .reg = addr_reg } }; |
| 170510 | | }, |
| 170511 | | else => lhs_mcv, |
| 170512 | | }; |
| 170513 | | const mat_lhs_lock = switch (mat_lhs_mcv) { |
| 170514 | | .indirect => |reg_off| self.register_manager.lockReg(reg_off.reg), |
| 170515 | | else => null, |
| 170516 | | }; |
| 170517 | | defer if (mat_lhs_lock) |lock| self.register_manager.unlockReg(lock); |
| 170518 | | const mat_rhs_mcv = switch (rhs_mcv) { |
| 170519 | | .load_nav, .load_uav, .load_lazy_sym => mat_rhs_mcv: { |
| 170520 | | // TODO clean this up! |
| 170521 | | const addr_reg = try self.copyToTmpRegister(.usize, rhs_mcv.address()); |
| 170522 | | break :mat_rhs_mcv MCValue{ .indirect = .{ .reg = addr_reg } }; |
| 170523 | | }, |
| 170524 | | else => rhs_mcv, |
| 170525 | | }; |
| 170526 | | const mat_rhs_lock = switch (mat_rhs_mcv) { |
| 170527 | | .indirect => |reg_off| self.register_manager.lockReg(reg_off.reg), |
| 170528 | | else => null, |
| 170529 | | }; |
| 170530 | | defer if (mat_rhs_lock) |lock| self.register_manager.unlockReg(lock); |
| 170531 | | |
| 170532 | | const tmp_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 170533 | | const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg); |
| 170534 | | defer self.register_manager.unlockReg(tmp_lock); |
| 170535 | | |
| 170536 | | if (mat_lhs_mcv.isBase()) |
| 170537 | | try self.asmRegisterMemory(.{ ._, .mov }, .rax, try mat_lhs_mcv.mem(self, .{ .size = .qword })) |
| 170538 | | else |
| 170539 | | try self.asmRegisterRegister(.{ ._, .mov }, .rax, mat_lhs_mcv.register_pair[0]); |
| 170540 | | if (mat_rhs_mcv.isBase()) try self.asmRegisterMemory( |
| 170541 | | .{ ._, .mov }, |
| 170542 | | tmp_reg, |
| 170543 | | try mat_rhs_mcv.address().offset(8).deref().mem(self, .{ .size = .qword }), |
| 170544 | | ) else try self.asmRegisterRegister(.{ ._, .mov }, tmp_reg, mat_rhs_mcv.register_pair[1]); |
| 170545 | | try self.asmRegisterRegister(.{ .i_, .mul }, tmp_reg, .rax); |
| 170546 | | if (mat_rhs_mcv.isBase()) |
| 170547 | | try self.asmMemory(.{ ._, .mul }, try mat_rhs_mcv.mem(self, .{ .size = .qword })) |
| 170548 | | else |
| 170549 | | try self.asmRegister(.{ ._, .mul }, mat_rhs_mcv.register_pair[0]); |
| 170550 | | try self.asmRegisterRegister(.{ ._, .add }, .rdx, tmp_reg); |
| 170551 | | if (mat_lhs_mcv.isBase()) try self.asmRegisterMemory( |
| 170552 | | .{ ._, .mov }, |
| 170553 | | tmp_reg, |
| 170554 | | try mat_lhs_mcv.address().offset(8).deref().mem(self, .{ .size = .qword }), |
| 170555 | | ) else try self.asmRegisterRegister(.{ ._, .mov }, tmp_reg, mat_lhs_mcv.register_pair[1]); |
| 170556 | | if (mat_rhs_mcv.isBase()) |
| 170557 | | try self.asmRegisterMemory(.{ .i_, .mul }, tmp_reg, try mat_rhs_mcv.mem(self, .{ .size = .qword })) |
| 170558 | | else |
| 170559 | | try self.asmRegisterRegister(.{ .i_, .mul }, tmp_reg, mat_rhs_mcv.register_pair[0]); |
| 170560 | | try self.asmRegisterRegister(.{ ._, .add }, .rdx, tmp_reg); |
| 170561 | | return .{ .register_pair = .{ .rax, .rdx } }; |
| 170562 | | } |
| 170563 | | |
| 170564 | | if (switch (tag) { |
| 170565 | | else => unreachable, |
| 170566 | | .mul, .mul_wrap => dst_abi_size != src_abi_size and dst_abi_size != src_abi_size * 2, |
| 170567 | | .div_trunc, .div_floor, .div_exact, .rem, .mod => dst_abi_size != src_abi_size, |
| 170568 | | } or src_abi_size > 8) { |
| 170569 | | const src_info = src_ty.intInfo(zcu); |
| 170570 | | switch (tag) { |
| 170571 | | .mul, .mul_wrap => { |
| 170572 | | const slow_inc = self.hasFeature(.slow_incdec); |
| 170573 | | const limb_len = std.math.divCeil(u32, src_abi_size, 8) catch unreachable; |
| 170574 | | |
| 170575 | | try self.spillRegisters(&.{ .rax, .rcx, .rdx }); |
| 170576 | | const reg_locks = self.register_manager.lockRegs(3, .{ .rax, .rcx, .rdx }); |
| 170577 | | defer for (reg_locks) |reg_lock| if (reg_lock) |lock| |
| 170578 | | self.register_manager.unlockReg(lock); |
| 170579 | | |
| 170580 | | const dst_mcv = try self.allocRegOrMemAdvanced(dst_ty, maybe_inst, false); |
| 170581 | | try self.genInlineMemset( |
| 170582 | | dst_mcv.address(), |
| 170583 | | .{ .immediate = 0 }, |
| 170584 | | .{ .immediate = src_abi_size }, |
| 170585 | | .{}, |
| 170586 | | ); |
| 170587 | | |
| 170588 | | const temp_regs = |
| 170589 | | try self.register_manager.allocRegs(4, @splat(null), abi.RegisterClass.gp); |
| 170590 | | const temp_locks = self.register_manager.lockRegsAssumeUnused(4, temp_regs); |
| 170591 | | defer for (temp_locks) |lock| self.register_manager.unlockReg(lock); |
| 170592 | | |
| 170593 | | try self.asmRegisterRegister(.{ ._, .xor }, temp_regs[0].to32(), temp_regs[0].to32()); |
| 170594 | | |
| 170595 | | const outer_loop: Mir.Inst.Index = @intCast(self.mir_instructions.len); |
| 170596 | | try self.asmRegisterMemory(.{ ._, .mov }, temp_regs[1].to64(), .{ |
| 170597 | | .base = .{ .frame = rhs_mcv.load_frame.index }, |
| 170598 | | .mod = .{ .rm = .{ |
| 170599 | | .size = .qword, |
| 170600 | | .index = temp_regs[0].to64(), |
| 170601 | | .scale = .@"8", |
| 170602 | | .disp = rhs_mcv.load_frame.off, |
| 170603 | | } }, |
| 170604 | | }); |
| 170605 | | try self.asmRegisterRegister(.{ ._, .@"test" }, temp_regs[1].to64(), temp_regs[1].to64()); |
| 170606 | | const skip_inner = try self.asmJccReloc(.z, undefined); |
| 170607 | | |
| 170608 | | try self.asmRegisterRegister(.{ ._, .xor }, temp_regs[2].to32(), temp_regs[2].to32()); |
| 170609 | | try self.asmRegisterRegister(.{ ._, .mov }, temp_regs[3].to32(), temp_regs[0].to32()); |
| 170610 | | try self.asmRegisterRegister(.{ ._, .xor }, .ecx, .ecx); |
| 170611 | | try self.asmRegisterRegister(.{ ._, .xor }, .edx, .edx); |
| 170612 | | |
| 170613 | | const inner_loop: Mir.Inst.Index = @intCast(self.mir_instructions.len); |
| 170614 | | try self.asmRegisterImmediate(.{ ._r, .sh }, .cl, .u(1)); |
| 170615 | | try self.asmMemoryRegister(.{ ._, .adc }, .{ |
| 170616 | | .base = .{ .frame = dst_mcv.load_frame.index }, |
| 170617 | | .mod = .{ .rm = .{ |
| 170618 | | .size = .qword, |
| 170619 | | .index = temp_regs[3].to64(), |
| 170620 | | .scale = .@"8", |
| 170621 | | .disp = dst_mcv.load_frame.off, |
| 170622 | | } }, |
| 170623 | | }, .rdx); |
| 170624 | | try self.asmSetccRegister(.c, .cl); |
| 170625 | | |
| 170626 | | try self.asmRegisterMemory(.{ ._, .mov }, .rax, .{ |
| 170627 | | .base = .{ .frame = lhs_mcv.load_frame.index }, |
| 170628 | | .mod = .{ .rm = .{ |
| 170629 | | .size = .qword, |
| 170630 | | .index = temp_regs[2].to64(), |
| 170631 | | .scale = .@"8", |
| 170632 | | .disp = lhs_mcv.load_frame.off, |
| 170633 | | } }, |
| 170634 | | }); |
| 170635 | | try self.asmRegister(.{ ._, .mul }, temp_regs[1].to64()); |
| 170636 | | |
| 170637 | | try self.asmRegisterImmediate(.{ ._r, .sh }, .ch, .u(1)); |
| 170638 | | try self.asmMemoryRegister(.{ ._, .adc }, .{ |
| 170639 | | .base = .{ .frame = dst_mcv.load_frame.index }, |
| 170640 | | .mod = .{ .rm = .{ |
| 170641 | | .size = .qword, |
| 170642 | | .index = temp_regs[3].to64(), |
| 170643 | | .scale = .@"8", |
| 170644 | | .disp = dst_mcv.load_frame.off, |
| 170645 | | } }, |
| 170646 | | }, .rax); |
| 170647 | | try self.asmSetccRegister(.c, .ch); |
| 170648 | | |
| 170649 | | if (slow_inc) { |
| 170650 | | try self.asmRegisterImmediate(.{ ._, .add }, temp_regs[2].to32(), .u(1)); |
| 170651 | | try self.asmRegisterImmediate(.{ ._, .add }, temp_regs[3].to32(), .u(1)); |
| 170652 | | } else { |
| 170653 | | try self.asmRegister(.{ ._c, .in }, temp_regs[2].to32()); |
| 170654 | | try self.asmRegister(.{ ._c, .in }, temp_regs[3].to32()); |
| 170655 | | } |
| 170656 | | try self.asmRegisterImmediate(.{ ._, .cmp }, temp_regs[3].to32(), .u(limb_len)); |
| 170657 | | _ = try self.asmJccReloc(.b, inner_loop); |
| 170658 | | |
| 170659 | | self.performReloc(skip_inner); |
| 170660 | | if (slow_inc) { |
| 170661 | | try self.asmRegisterImmediate(.{ ._, .add }, temp_regs[0].to32(), .u(1)); |
| 170662 | | } else { |
| 170663 | | try self.asmRegister(.{ ._c, .in }, temp_regs[0].to32()); |
| 170664 | | } |
| 170665 | | try self.asmRegisterImmediate(.{ ._, .cmp }, temp_regs[0].to32(), .u(limb_len)); |
| 170666 | | _ = try self.asmJccReloc(.b, outer_loop); |
| 170667 | | |
| 170668 | | return dst_mcv; |
| 170669 | | }, |
| 170670 | | .div_trunc, .div_floor, .div_exact, .rem, .mod => switch (src_info.signedness) { |
| 170671 | | .signed => {}, |
| 170672 | | .unsigned => { |
| 170673 | | const dst_mcv = try self.allocRegOrMemAdvanced(dst_ty, maybe_inst, false); |
| 170674 | | const manyptr_u32_ty = try pt.ptrType(.{ |
| 170675 | | .child = .u32_type, |
| 170676 | | .flags = .{ |
| 170677 | | .size = .many, |
| 170678 | | }, |
| 170679 | | }); |
| 170680 | | const manyptr_const_u32_ty = try pt.ptrType(.{ |
| 170681 | | .child = .u32_type, |
| 170682 | | .flags = .{ |
| 170683 | | .size = .many, |
| 170684 | | .is_const = true, |
| 170685 | | }, |
| 170686 | | }); |
| 170687 | | _ = try self.genCall(.{ .extern_func = .{ |
| 170688 | | .return_type = .void_type, |
| 170689 | | .param_types = &.{ |
| 170690 | | manyptr_u32_ty.toIntern(), |
| 170691 | | manyptr_const_u32_ty.toIntern(), |
| 170692 | | manyptr_const_u32_ty.toIntern(), |
| 170693 | | .usize_type, |
| 170694 | | }, |
| 170695 | | .sym = switch (tag) { |
| 170696 | | .div_trunc, |
| 170697 | | .div_floor, |
| 170698 | | .div_exact, |
| 170699 | | => "__udivei4", |
| 170700 | | .rem, |
| 170701 | | .mod, |
| 170702 | | => "__umodei4", |
| 170703 | | else => unreachable, |
| 170704 | | }, |
| 170705 | | } }, &.{ |
| 170706 | | manyptr_u32_ty, |
| 170707 | | manyptr_const_u32_ty, |
| 170708 | | manyptr_const_u32_ty, |
| 170709 | | .usize, |
| 170710 | | }, &.{ |
| 170711 | | dst_mcv.address(), |
| 170712 | | lhs_mcv.address(), |
| 170713 | | rhs_mcv.address(), |
| 170714 | | .{ .immediate = 8 * src_abi_size }, |
| 170715 | | }, .{}); |
| 170716 | | return dst_mcv; |
| 170717 | | }, |
| 170718 | | }, |
| 170719 | | else => {}, |
| 170720 | | } |
| 170721 | | return self.fail( |
| 170722 | | "TODO implement genMulDivBinOp for {s} from {} to {}", |
| 170723 | | .{ @tagName(tag), src_ty.fmt(pt), dst_ty.fmt(pt) }, |
| 170724 | | ); |
| 170725 | | } |
| 170726 | | const ty = if (dst_abi_size <= 8) dst_ty else src_ty; |
| 170727 | | const abi_size = if (dst_abi_size <= 8) dst_abi_size else src_abi_size; |
| 170728 | | |
| 170729 | | const reg_locks = self.register_manager.lockRegs(2, .{ .rax, .rdx }); |
| 170730 | | defer for (reg_locks) |reg_lock| if (reg_lock) |lock| self.register_manager.unlockReg(lock); |
| 170731 | | |
| 170732 | | const int_info = ty.intInfo(zcu); |
| 170733 | | const signedness = int_info.signedness; |
| 170734 | | switch (tag) { |
| 170735 | | .mul, |
| 170736 | | .mul_wrap, |
| 170737 | | .rem, |
| 170738 | | .div_trunc, |
| 170739 | | .div_exact, |
| 170740 | | => { |
| 170741 | | const track_inst_rax = switch (tag) { |
| 170742 | | .mul, .mul_wrap => if (dst_abi_size <= 8) maybe_inst else null, |
| 170743 | | .div_exact, .div_trunc => maybe_inst, |
| 170744 | | else => null, |
| 170745 | | }; |
| 170746 | | const track_inst_rdx = switch (tag) { |
| 170747 | | .rem => maybe_inst, |
| 170748 | | else => null, |
| 170749 | | }; |
| 170750 | | try self.register_manager.getKnownReg(.rax, track_inst_rax); |
| 170751 | | try self.register_manager.getKnownReg(.rdx, track_inst_rdx); |
| 170752 | | |
| 170753 | | try self.genIntMulDivOpMir(switch (signedness) { |
| 170754 | | .signed => switch (tag) { |
| 170755 | | .mul, .mul_wrap => .{ .i_, .mul }, |
| 170756 | | .div_trunc, .div_exact, .rem => .{ .i_, .div }, |
| 170757 | | else => unreachable, |
| 170758 | | }, |
| 170759 | | .unsigned => switch (tag) { |
| 170760 | | .mul, .mul_wrap => .{ ._, .mul }, |
| 170761 | | .div_trunc, .div_exact, .rem => .{ ._, .div }, |
| 170762 | | else => unreachable, |
| 170763 | | }, |
| 170764 | | }, ty, lhs_mcv, rhs_mcv); |
| 170765 | | |
| 170766 | | switch (tag) { |
| 170767 | | .mul, .rem, .div_trunc, .div_exact => {}, |
| 170768 | | .mul_wrap => if (dst_ty.intInfo(zcu).bits < 8 * dst_abi_size) try self.truncateRegister( |
| 170769 | | dst_ty, |
| 170770 | | if (dst_abi_size <= 8) .rax else .rdx, |
| 170771 | | ), |
| 170772 | | else => unreachable, |
| 170773 | | } |
| 170774 | | |
| 170775 | | if (dst_abi_size <= 8) return .{ .register = registerAlias(switch (tag) { |
| 170776 | | .mul, .mul_wrap, .div_trunc, .div_exact => .rax, |
| 170777 | | .rem => .rdx, |
| 170778 | | else => unreachable, |
| 170779 | | }, dst_abi_size) }; |
| 170780 | | |
| 170781 | | const dst_mcv = try self.allocRegOrMemAdvanced(dst_ty, maybe_inst, false); |
| 170782 | | try self.asmMemoryRegister(.{ ._, .mov }, .{ |
| 170783 | | .base = .{ .frame = dst_mcv.load_frame.index }, |
| 170784 | | .mod = .{ .rm = .{ |
| 170785 | | .size = .qword, |
| 170786 | | .disp = dst_mcv.load_frame.off, |
| 170787 | | } }, |
| 170788 | | }, .rax); |
| 170789 | | try self.asmMemoryRegister(.{ ._, .mov }, .{ |
| 170790 | | .base = .{ .frame = dst_mcv.load_frame.index }, |
| 170791 | | .mod = .{ .rm = .{ |
| 170792 | | .size = .qword, |
| 170793 | | .disp = dst_mcv.load_frame.off + 8, |
| 170794 | | } }, |
| 170795 | | }, .rdx); |
| 170796 | | return dst_mcv; |
| 170797 | | }, |
| 170798 | | |
| 170799 | | .mod => { |
| 170800 | | try self.register_manager.getKnownReg(.rax, null); |
| 170801 | | try self.register_manager.getKnownReg( |
| 170802 | | .rdx, |
| 170803 | | if (signedness == .unsigned) maybe_inst else null, |
| 170804 | | ); |
| 170805 | | |
| 170806 | | switch (signedness) { |
| 170807 | | .signed => { |
| 170808 | | const lhs_lock = switch (lhs_mcv) { |
| 170809 | | .register => |reg| self.register_manager.lockReg(reg), |
| 170810 | | else => null, |
| 170811 | | }; |
| 170812 | | defer if (lhs_lock) |lock| self.register_manager.unlockReg(lock); |
| 170813 | | const rhs_lock = switch (rhs_mcv) { |
| 170814 | | .register => |reg| self.register_manager.lockReg(reg), |
| 170815 | | else => null, |
| 170816 | | }; |
| 170817 | | defer if (rhs_lock) |lock| self.register_manager.unlockReg(lock); |
| 170818 | | |
| 170819 | | // hack around hazard between rhs and div_floor by copying rhs to another register |
| 170820 | | const rhs_copy = try self.copyToTmpRegister(ty, rhs_mcv); |
| 170821 | | const rhs_copy_lock = self.register_manager.lockRegAssumeUnused(rhs_copy); |
| 170822 | | defer self.register_manager.unlockReg(rhs_copy_lock); |
| 170823 | | |
| 170824 | | const div_floor = try self.genInlineIntDivFloor(ty, lhs_mcv, rhs_mcv); |
| 170825 | | try self.genIntMulComplexOpMir(ty, div_floor, .{ .register = rhs_copy }); |
| 170826 | | const div_floor_lock = self.register_manager.lockReg(div_floor.register); |
| 170827 | | defer if (div_floor_lock) |lock| self.register_manager.unlockReg(lock); |
| 170828 | | |
| 170829 | | const result: MCValue = if (maybe_inst) |inst| |
| 170830 | | try self.copyToRegisterWithInstTracking(inst, ty, lhs_mcv) |
| 170831 | | else |
| 170832 | | .{ .register = try self.copyToTmpRegister(ty, lhs_mcv) }; |
| 170833 | | try self.genBinOpMir(.{ ._, .sub }, ty, result, div_floor); |
| 170834 | | |
| 170835 | | return result; |
| 170836 | | }, |
| 170837 | | .unsigned => { |
| 170838 | | try self.genIntMulDivOpMir(.{ ._, .div }, ty, lhs_mcv, rhs_mcv); |
| 170839 | | return .{ .register = registerAlias(.rdx, abi_size) }; |
| 170840 | | }, |
| 170841 | | } |
| 170842 | | }, |
| 170843 | | |
| 170844 | | .div_floor => { |
| 170845 | | try self.register_manager.getKnownReg( |
| 170846 | | .rax, |
| 170847 | | if (signedness == .unsigned) maybe_inst else null, |
| 170848 | | ); |
| 170849 | | try self.register_manager.getKnownReg(.rdx, null); |
| 170850 | | |
| 170851 | | const lhs_lock: ?RegisterLock = switch (lhs_mcv) { |
| 170852 | | .register => |reg| self.register_manager.lockRegAssumeUnused(reg), |
| 170853 | | else => null, |
| 170854 | | }; |
| 170855 | | defer if (lhs_lock) |lock| self.register_manager.unlockReg(lock); |
| 170856 | | |
| 170857 | | const actual_rhs_mcv: MCValue = blk: { |
| 170858 | | switch (signedness) { |
| 170859 | | .signed => { |
| 170860 | | const rhs_lock: ?RegisterLock = switch (rhs_mcv) { |
| 170861 | | .register => |reg| self.register_manager.lockRegAssumeUnused(reg), |
| 170862 | | else => null, |
| 170863 | | }; |
| 170864 | | defer if (rhs_lock) |lock| self.register_manager.unlockReg(lock); |
| 170865 | | |
| 170866 | | if (maybe_inst) |inst| { |
| 170867 | | break :blk try self.copyToRegisterWithInstTracking(inst, ty, rhs_mcv); |
| 170868 | | } |
| 170869 | | break :blk MCValue{ .register = try self.copyToTmpRegister(ty, rhs_mcv) }; |
| 170870 | | }, |
| 170871 | | .unsigned => break :blk rhs_mcv, |
| 170872 | | } |
| 170873 | | }; |
| 170874 | | const rhs_lock: ?RegisterLock = switch (actual_rhs_mcv) { |
| 170875 | | .register => |reg| self.register_manager.lockReg(reg), |
| 170876 | | else => null, |
| 170877 | | }; |
| 170878 | | defer if (rhs_lock) |lock| self.register_manager.unlockReg(lock); |
| 170879 | | |
| 170880 | | switch (signedness) { |
| 170881 | | .signed => return try self.genInlineIntDivFloor(ty, lhs_mcv, actual_rhs_mcv), |
| 170882 | | .unsigned => { |
| 170883 | | try self.genIntMulDivOpMir(.{ ._, .div }, ty, lhs_mcv, actual_rhs_mcv); |
| 170884 | | return .{ .register = registerAlias(.rax, abi_size) }; |
| 170885 | | }, |
| 170886 | | } |
| 170887 | | }, |
| 170888 | | |
| 170889 | | else => unreachable, |
| 170890 | | } |
| 170891 | | } |
| 170892 | | |
| 170893 | 175626 | fn genBinOp( |
| 170894 | 175627 | self: *CodeGen, |
| 170895 | 175628 | maybe_inst: ?Air.Inst.Index, |
| ... | ... | @@ -171403,6 +176136,7 @@ fn genBinOp( |
| 171403 | 176136 | .register_offset, |
| 171404 | 176137 | .register_overflow, |
| 171405 | 176138 | .register_mask, |
| 176139 | .indirect_load_frame, |
| 171406 | 176140 | .lea_frame, |
| 171407 | 176141 | .load_nav, |
| 171408 | 176142 | .lea_nav, |
| ... | ... | @@ -172238,7 +176972,7 @@ fn genBinOp( |
| 172238 | 176972 | lhs_reg, |
| 172239 | 176973 | try src_mcv.mem(self, .{ .size = switch (lhs_ty.zigTypeTag(zcu)) { |
| 172240 | 176974 | else => .fromSize(abi_size), |
| 172241 | | .vector => .fromBitSize(dst_reg.bitSize()), |
| 176975 | .vector => dst_reg.size(), |
| 172242 | 176976 | } }), |
| 172243 | 176977 | ) else try self.asmRegisterRegisterRegister( |
| 172244 | 176978 | mir_tag, |
| ... | ... | @@ -172256,7 +176990,7 @@ fn genBinOp( |
| 172256 | 176990 | dst_reg, |
| 172257 | 176991 | try src_mcv.mem(self, .{ .size = switch (lhs_ty.zigTypeTag(zcu)) { |
| 172258 | 176992 | else => .fromSize(abi_size), |
| 172259 | | .vector => .fromBitSize(dst_reg.bitSize()), |
| 176993 | .vector => dst_reg.size(), |
| 172260 | 176994 | } }), |
| 172261 | 176995 | ) else try self.asmRegisterRegister( |
| 172262 | 176996 | mir_tag, |
| ... | ... | @@ -172284,7 +177018,7 @@ fn genBinOp( |
| 172284 | 177018 | lhs_reg, |
| 172285 | 177019 | try src_mcv.mem(self, .{ .size = switch (lhs_ty.zigTypeTag(zcu)) { |
| 172286 | 177020 | else => .fromSize(abi_size), |
| 172287 | | .vector => .fromBitSize(dst_reg.bitSize()), |
| 177021 | .vector => dst_reg.size(), |
| 172288 | 177022 | } }), |
| 172289 | 177023 | imm, |
| 172290 | 177024 | ) else try self.asmRegisterRegisterRegisterImmediate( |
| ... | ... | @@ -172304,7 +177038,7 @@ fn genBinOp( |
| 172304 | 177038 | dst_reg, |
| 172305 | 177039 | try src_mcv.mem(self, .{ .size = switch (lhs_ty.zigTypeTag(zcu)) { |
| 172306 | 177040 | else => .fromSize(abi_size), |
| 172307 | | .vector => .fromBitSize(dst_reg.bitSize()), |
| 177041 | .vector => dst_reg.size(), |
| 172308 | 177042 | } }), |
| 172309 | 177043 | imm, |
| 172310 | 177044 | ) else try self.asmRegisterRegisterImmediate( |
| ... | ... | @@ -172321,15 +177055,6 @@ fn genBinOp( |
| 172321 | 177055 | } |
| 172322 | 177056 | |
| 172323 | 177057 | switch (air_tag) { |
| 172324 | | .add, .add_wrap, .sub, .sub_wrap, .mul, .mul_wrap, .div_float, .div_exact => {}, |
| 172325 | | .div_trunc, .div_floor => try self.genRound(lhs_ty, dst_reg, .{ .register = dst_reg }, .{ |
| 172326 | | .direction = switch (air_tag) { |
| 172327 | | .div_trunc => .zero, |
| 172328 | | .div_floor => .down, |
| 172329 | | else => unreachable, |
| 172330 | | }, |
| 172331 | | .precision = .inexact, |
| 172332 | | }), |
| 172333 | 177058 | .bit_and, .bit_or, .xor => {}, |
| 172334 | 177059 | .max, .min => if (maybe_mask_reg) |mask_reg| if (self.hasFeature(.avx)) { |
| 172335 | 177060 | const rhs_copy_reg = registerAlias(src_mcv.getReg().?, abi_size); |
| ... | ... | @@ -172596,6 +177321,7 @@ fn genBinOpMir( |
| 172596 | 177321 | .lea_uav, |
| 172597 | 177322 | .lea_lazy_sym, |
| 172598 | 177323 | .lea_extern_func, |
| 177324 | .indirect_load_frame, |
| 172599 | 177325 | .elementwise_args, |
| 172600 | 177326 | .reserved_frame, |
| 172601 | 177327 | .air_ref, |
| ... | ... | @@ -172632,6 +177358,7 @@ fn genBinOpMir( |
| 172632 | 177358 | .undef, |
| 172633 | 177359 | .register_overflow, |
| 172634 | 177360 | .register_mask, |
| 177361 | .indirect_load_frame, |
| 172635 | 177362 | .elementwise_args, |
| 172636 | 177363 | .reserved_frame, |
| 172637 | 177364 | => unreachable, |
| ... | ... | @@ -172803,6 +177530,7 @@ fn genBinOpMir( |
| 172803 | 177530 | .undef, |
| 172804 | 177531 | .register_overflow, |
| 172805 | 177532 | .register_mask, |
| 177533 | .indirect_load_frame, |
| 172806 | 177534 | .elementwise_args, |
| 172807 | 177535 | .reserved_frame, |
| 172808 | 177536 | .air_ref, |
| ... | ... | @@ -172906,6 +177634,7 @@ fn genBinOpMir( |
| 172906 | 177634 | .undef, |
| 172907 | 177635 | .register_overflow, |
| 172908 | 177636 | .register_mask, |
| 177637 | .indirect_load_frame, |
| 172909 | 177638 | .elementwise_args, |
| 172910 | 177639 | .reserved_frame, |
| 172911 | 177640 | .air_ref, |
| ... | ... | @@ -173036,6 +177765,7 @@ fn genIntMulComplexOpMir(self: *CodeGen, dst_ty: Type, dst_mcv: MCValue, src_mcv |
| 173036 | 177765 | .register_offset, |
| 173037 | 177766 | .register_overflow, |
| 173038 | 177767 | .register_mask, |
| 177768 | .indirect_load_frame, |
| 173039 | 177769 | .lea_frame, |
| 173040 | 177770 | .lea_nav, |
| 173041 | 177771 | .lea_uav, |
| ... | ... | @@ -173073,6 +177803,7 @@ fn genIntMulComplexOpMir(self: *CodeGen, dst_ty: Type, dst_mcv: MCValue, src_mcv |
| 173073 | 177803 | .register_quadruple, |
| 173074 | 177804 | .register_overflow, |
| 173075 | 177805 | .register_mask, |
| 177806 | .indirect_load_frame, |
| 173076 | 177807 | .elementwise_args, |
| 173077 | 177808 | .reserved_frame, |
| 173078 | 177809 | .air_ref, |
| ... | ... | @@ -173195,11 +177926,20 @@ fn airArg(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 173195 | 177926 | break :result src_mcv; |
| 173196 | 177927 | }, |
| 173197 | 177928 | .indirect => |reg_off| { |
| 173198 | | self.register_manager.getRegAssumeFree(reg_off.reg, inst); |
| 177929 | self.register_manager.getRegAssumeFree(reg_off.reg, null); |
| 173199 | 177930 | const dst_mcv = try self.allocRegOrMem(inst, false); |
| 173200 | 177931 | try self.genCopy(arg_ty, dst_mcv, src_mcv, .{}); |
| 173201 | 177932 | break :result dst_mcv; |
| 173202 | 177933 | }, |
| 177934 | .indirect_load_frame => |frame_addr| { |
| 177935 | const dst_mcv = try self.allocRegOrMem(inst, false); |
| 177936 | const ptr_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 177937 | const ptr_lock = self.register_manager.lockRegAssumeUnused(ptr_reg); |
| 177938 | defer self.register_manager.unlockReg(ptr_lock); |
| 177939 | try self.genSetReg(ptr_reg, .usize, .{ .load_frame = frame_addr }, .{}); |
| 177940 | try self.genCopy(arg_ty, dst_mcv, .{ .indirect = .{ .reg = ptr_reg } }, .{}); |
| 177941 | break :result dst_mcv; |
| 177942 | }, |
| 173203 | 177943 | .elementwise_args => |regs_frame_addr| { |
| 173204 | 177944 | try self.spillEflagsIfOccupied(); |
| 173205 | 177945 | |
| ... | ... | @@ -173398,18 +178138,6 @@ fn genLocalDebugInfo(cg: *CodeGen, air_tag: Air.Inst.Tag, ty: Type, mcv: MCValue |
| 173398 | 178138 | }; |
| 173399 | 178139 | } |
| 173400 | 178140 | |
| 173401 | | fn airRetAddr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 173402 | | const dst_mcv = try self.allocRegOrMem(inst, true); |
| 173403 | | try self.genCopy(.usize, dst_mcv, .{ .load_frame = .{ .index = .ret_addr } }, .{}); |
| 173404 | | return self.finishAir(inst, dst_mcv, .{ .none, .none, .none }); |
| 173405 | | } |
| 173406 | | |
| 173407 | | fn airFrameAddress(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 173408 | | const dst_mcv = try self.allocRegOrMem(inst, true); |
| 173409 | | try self.genCopy(.usize, dst_mcv, .{ .lea_frame = .{ .index = .base_ptr } }, .{}); |
| 173410 | | return self.finishAir(inst, dst_mcv, .{ .none, .none, .none }); |
| 173411 | | } |
| 173412 | | |
| 173413 | 178141 | fn airCall(self: *CodeGen, inst: Air.Inst.Index, modifier: std.builtin.CallModifier, opts: CopyOptions) !void { |
| 173414 | 178142 | if (modifier == .always_tail) return self.fail("TODO implement tail calls for x86_64", .{}); |
| 173415 | 178143 | |
| ... | ... | @@ -173541,7 +178269,7 @@ fn genCall(self: *CodeGen, info: union(enum) { |
| 173541 | 178269 | }, |
| 173542 | 178270 | .load_frame => { |
| 173543 | 178271 | try self.genCopy(arg_ty, dst_arg, src_arg, opts); |
| 173544 | | try self.freeValue(src_arg); |
| 178272 | try self.freeValue(src_arg, .{}); |
| 173545 | 178273 | }, |
| 173546 | 178274 | .elementwise_args => |regs_frame_addr| { |
| 173547 | 178275 | const index_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); |
| ... | ... | @@ -174265,39 +178993,6 @@ fn airCmpVector(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174265 | 178993 | return self.finishAir(inst, dst_mcv, .{ extra.lhs, extra.rhs, .none }); |
| 174266 | 178994 | } |
| 174267 | 178995 | |
| 174268 | | fn airCmpLtErrorsLen(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174269 | | const pt = self.pt; |
| 174270 | | const zcu = pt.zcu; |
| 174271 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 174272 | | |
| 174273 | | const addr_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 174274 | | const addr_lock = self.register_manager.lockRegAssumeUnused(addr_reg); |
| 174275 | | defer self.register_manager.unlockReg(addr_lock); |
| 174276 | | const anyerror_lazy_sym: link.File.LazySymbol = .{ .kind = .const_data, .ty = .anyerror_type }; |
| 174277 | | try self.genLazySymbolRef(.lea, addr_reg, anyerror_lazy_sym); |
| 174278 | | |
| 174279 | | try self.spillEflagsIfOccupied(); |
| 174280 | | |
| 174281 | | const op_ty = self.typeOf(un_op); |
| 174282 | | const op_abi_size: u32 = @intCast(op_ty.abiSize(zcu)); |
| 174283 | | const op_mcv = try self.resolveInst(un_op); |
| 174284 | | const dst_reg = switch (op_mcv) { |
| 174285 | | .register => |reg| reg, |
| 174286 | | else => try self.copyToTmpRegister(op_ty, op_mcv), |
| 174287 | | }; |
| 174288 | | try self.asmRegisterMemory( |
| 174289 | | .{ ._, .cmp }, |
| 174290 | | registerAlias(dst_reg, op_abi_size), |
| 174291 | | .{ |
| 174292 | | .base = .{ .reg = addr_reg }, |
| 174293 | | .mod = .{ .rm = .{ .size = .fromSize(op_abi_size) } }, |
| 174294 | | }, |
| 174295 | | ); |
| 174296 | | |
| 174297 | | self.eflags_inst = inst; |
| 174298 | | return self.finishAir(inst, .{ .eflags = .b }, .{ un_op, .none, .none }); |
| 174299 | | } |
| 174300 | | |
| 174301 | 178996 | fn airTry(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174302 | 178997 | const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; |
| 174303 | 178998 | const extra = self.air.extraData(Air.Try, pl_op.payload); |
| ... | ... | @@ -174335,12 +179030,12 @@ fn genTry( |
| 174335 | 179030 | const reloc = try self.genCondBrMir(.anyerror, is_err_mcv); |
| 174336 | 179031 | |
| 174337 | 179032 | if (self.liveness.operandDies(inst, 0)) { |
| 174338 | | if (operand.toIndex()) |operand_inst| try self.processDeath(operand_inst); |
| 179033 | if (operand.toIndex()) |operand_inst| try self.processDeath(operand_inst, .{}); |
| 174339 | 179034 | } |
| 174340 | 179035 | |
| 174341 | 179036 | const state = try self.saveState(); |
| 174342 | 179037 | |
| 174343 | | for (liveness_cond_br.else_deaths) |death| try self.processDeath(death); |
| 179038 | for (liveness_cond_br.else_deaths) |death| try self.processDeath(death, .{}); |
| 174344 | 179039 | try self.genBodyBlock(body); |
| 174345 | 179040 | try self.restoreState(state, &.{}, .{ |
| 174346 | 179041 | .emit_instructions = false, |
| ... | ... | @@ -174351,7 +179046,7 @@ fn genTry( |
| 174351 | 179046 | |
| 174352 | 179047 | self.performReloc(reloc); |
| 174353 | 179048 | |
| 174354 | | for (liveness_cond_br.then_deaths) |death| try self.processDeath(death); |
| 179049 | for (liveness_cond_br.then_deaths) |death| try self.processDeath(death, .{}); |
| 174355 | 179050 | |
| 174356 | 179051 | const result = if (self.liveness.isUnused(inst)) |
| 174357 | 179052 | .unreach |
| ... | ... | @@ -174362,33 +179057,6 @@ fn genTry( |
| 174362 | 179057 | return result; |
| 174363 | 179058 | } |
| 174364 | 179059 | |
| 174365 | | fn airDbgVar(cg: *CodeGen, inst: Air.Inst.Index) !void { |
| 174366 | | if (cg.mod.strip) return; |
| 174367 | | const air_tag = cg.air.instructions.items(.tag)[@intFromEnum(inst)]; |
| 174368 | | const pl_op = cg.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; |
| 174369 | | const air_name: Air.NullTerminatedString = @enumFromInt(pl_op.payload); |
| 174370 | | const op_ty = cg.typeOf(pl_op.operand); |
| 174371 | | const local_ty = switch (air_tag) { |
| 174372 | | else => unreachable, |
| 174373 | | .dbg_var_ptr => op_ty.childType(cg.pt.zcu), |
| 174374 | | .dbg_var_val, .dbg_arg_inline => op_ty, |
| 174375 | | }; |
| 174376 | | |
| 174377 | | try cg.mir_locals.append(cg.gpa, .{ |
| 174378 | | .name = switch (air_name) { |
| 174379 | | .none => switch (air_tag) { |
| 174380 | | else => unreachable, |
| 174381 | | .dbg_arg_inline => .none, |
| 174382 | | }, |
| 174383 | | else => try cg.addString(air_name.toSlice(cg.air)), |
| 174384 | | }, |
| 174385 | | .type = local_ty.toIntern(), |
| 174386 | | }); |
| 174387 | | |
| 174388 | | try cg.genLocalDebugInfo(air_tag, local_ty, try cg.resolveInst(pl_op.operand)); |
| 174389 | | return cg.finishAir(inst, .unreach, .{ pl_op.operand, .none, .none }); |
| 174390 | | } |
| 174391 | | |
| 174392 | 179060 | fn genCondBrMir(self: *CodeGen, ty: Type, mcv: MCValue) !Mir.Inst.Index { |
| 174393 | 179061 | const pt = self.pt; |
| 174394 | 179062 | const abi_size = ty.abiSize(pt.zcu); |
| ... | ... | @@ -174431,13 +179099,13 @@ fn airCondBr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174431 | 179099 | // that death now instead of later as this has an effect on |
| 174432 | 179100 | // whether it needs to be spilled in the branches |
| 174433 | 179101 | if (self.liveness.operandDies(inst, 0)) { |
| 174434 | | if (pl_op.operand.toIndex()) |op_inst| try self.processDeath(op_inst); |
| 179102 | if (pl_op.operand.toIndex()) |op_inst| try self.processDeath(op_inst, .{}); |
| 174435 | 179103 | } |
| 174436 | 179104 | |
| 174437 | 179105 | const state = try self.saveState(); |
| 174438 | 179106 | const reloc = try self.genCondBrMir(cond_ty, cond); |
| 174439 | 179107 | |
| 174440 | | for (liveness_cond_br.then_deaths) |death| try self.processDeath(death); |
| 179108 | for (liveness_cond_br.then_deaths) |death| try self.processDeath(death, .{}); |
| 174441 | 179109 | try self.genBodyBlock(then_body); |
| 174442 | 179110 | try self.restoreState(state, &.{}, .{ |
| 174443 | 179111 | .emit_instructions = false, |
| ... | ... | @@ -174448,7 +179116,7 @@ fn airCondBr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174448 | 179116 | |
| 174449 | 179117 | self.performReloc(reloc); |
| 174450 | 179118 | |
| 174451 | | for (liveness_cond_br.else_deaths) |death| try self.processDeath(death); |
| 179119 | for (liveness_cond_br.else_deaths) |death| try self.processDeath(death, .{}); |
| 174452 | 179120 | try self.genBodyBlock(else_body); |
| 174453 | 179121 | try self.restoreState(state, &.{}, .{ |
| 174454 | 179122 | .emit_instructions = false, |
| ... | ... | @@ -174460,177 +179128,6 @@ fn airCondBr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174460 | 179128 | // We already took care of pl_op.operand earlier, so there's nothing left to do. |
| 174461 | 179129 | } |
| 174462 | 179130 | |
| 174463 | | fn isNull(self: *CodeGen, inst: Air.Inst.Index, opt_ty: Type, opt_mcv: MCValue) !MCValue { |
| 174464 | | const pt = self.pt; |
| 174465 | | const zcu = pt.zcu; |
| 174466 | | switch (opt_mcv) { |
| 174467 | | .register_overflow => |ro| return .{ .eflags = ro.eflags.negate() }, |
| 174468 | | else => {}, |
| 174469 | | } |
| 174470 | | |
| 174471 | | try self.spillEflagsIfOccupied(); |
| 174472 | | |
| 174473 | | const pl_ty = opt_ty.optionalChild(zcu); |
| 174474 | | |
| 174475 | | const some_info: struct { off: u31, ty: Type } = if (opt_ty.optionalReprIsPayload(zcu)) |
| 174476 | | .{ .off = 0, .ty = if (pl_ty.isSlice(zcu)) pl_ty.slicePtrFieldType(zcu) else pl_ty } |
| 174477 | | else |
| 174478 | | .{ .off = @intCast(pl_ty.abiSize(zcu)), .ty = .bool }; |
| 174479 | | |
| 174480 | | self.eflags_inst = inst; |
| 174481 | | switch (opt_mcv) { |
| 174482 | | .none, |
| 174483 | | .unreach, |
| 174484 | | .dead, |
| 174485 | | .undef, |
| 174486 | | .immediate, |
| 174487 | | .eflags, |
| 174488 | | .register_triple, |
| 174489 | | .register_quadruple, |
| 174490 | | .register_offset, |
| 174491 | | .register_overflow, |
| 174492 | | .register_mask, |
| 174493 | | .lea_nav, |
| 174494 | | .lea_uav, |
| 174495 | | .lea_lazy_sym, |
| 174496 | | .lea_extern_func, |
| 174497 | | .elementwise_args, |
| 174498 | | .reserved_frame, |
| 174499 | | .air_ref, |
| 174500 | | => unreachable, |
| 174501 | | |
| 174502 | | .lea_frame => { |
| 174503 | | self.eflags_inst = null; |
| 174504 | | return .{ .immediate = @intFromBool(false) }; |
| 174505 | | }, |
| 174506 | | |
| 174507 | | .register => |opt_reg| { |
| 174508 | | if (some_info.off == 0) { |
| 174509 | | const some_abi_size: u32 = @intCast(some_info.ty.abiSize(zcu)); |
| 174510 | | const alias_reg = registerAlias(opt_reg, some_abi_size); |
| 174511 | | assert(some_abi_size * 8 == alias_reg.bitSize()); |
| 174512 | | try self.asmRegisterRegister(.{ ._, .@"test" }, alias_reg, alias_reg); |
| 174513 | | return .{ .eflags = .z }; |
| 174514 | | } |
| 174515 | | assert(some_info.ty.ip_index == .bool_type); |
| 174516 | | const opt_abi_size: u32 = @intCast(opt_ty.abiSize(zcu)); |
| 174517 | | try self.asmRegisterImmediate( |
| 174518 | | .{ ._, .bt }, |
| 174519 | | registerAlias(opt_reg, opt_abi_size), |
| 174520 | | .u(@as(u6, @intCast(some_info.off * 8))), |
| 174521 | | ); |
| 174522 | | return .{ .eflags = .nc }; |
| 174523 | | }, |
| 174524 | | |
| 174525 | | .register_pair => |opt_regs| { |
| 174526 | | if (some_info.off == 0) { |
| 174527 | | const some_abi_size: u32 = @intCast(some_info.ty.abiSize(zcu)); |
| 174528 | | const alias_reg = registerAlias(opt_regs[0], some_abi_size); |
| 174529 | | assert(some_abi_size * 8 == alias_reg.bitSize()); |
| 174530 | | try self.asmRegisterRegister(.{ ._, .@"test" }, alias_reg, alias_reg); |
| 174531 | | return .{ .eflags = .z }; |
| 174532 | | } |
| 174533 | | assert(some_info.ty.ip_index == .bool_type); |
| 174534 | | const opt_abi_size: u32 = @intCast(opt_ty.abiSize(zcu)); |
| 174535 | | try self.asmRegisterImmediate( |
| 174536 | | .{ ._, .bt }, |
| 174537 | | registerAlias(opt_regs[some_info.off / 8], opt_abi_size), |
| 174538 | | .u(@as(u6, @truncate(some_info.off * 8))), |
| 174539 | | ); |
| 174540 | | return .{ .eflags = .nc }; |
| 174541 | | }, |
| 174542 | | |
| 174543 | | .memory, |
| 174544 | | .load_nav, |
| 174545 | | .load_uav, |
| 174546 | | .load_lazy_sym, |
| 174547 | | .load_extern_func, |
| 174548 | | => { |
| 174549 | | const addr_reg = (try self.register_manager.allocReg(null, abi.RegisterClass.gp)).to64(); |
| 174550 | | const addr_reg_lock = self.register_manager.lockRegAssumeUnused(addr_reg); |
| 174551 | | defer self.register_manager.unlockReg(addr_reg_lock); |
| 174552 | | |
| 174553 | | try self.genSetReg(addr_reg, .usize, opt_mcv.address(), .{}); |
| 174554 | | const some_abi_size: u32 = @intCast(some_info.ty.abiSize(zcu)); |
| 174555 | | try self.asmMemoryImmediate( |
| 174556 | | .{ ._, .cmp }, |
| 174557 | | .{ |
| 174558 | | .base = .{ .reg = addr_reg }, |
| 174559 | | .mod = .{ .rm = .{ |
| 174560 | | .size = .fromSize(some_abi_size), |
| 174561 | | .disp = some_info.off, |
| 174562 | | } }, |
| 174563 | | }, |
| 174564 | | .u(0), |
| 174565 | | ); |
| 174566 | | return .{ .eflags = .e }; |
| 174567 | | }, |
| 174568 | | |
| 174569 | | .indirect, .load_frame => { |
| 174570 | | const some_abi_size: u32 = @intCast(some_info.ty.abiSize(zcu)); |
| 174571 | | try self.asmMemoryImmediate( |
| 174572 | | .{ ._, .cmp }, |
| 174573 | | switch (opt_mcv) { |
| 174574 | | .indirect => |reg_off| .{ |
| 174575 | | .base = .{ .reg = reg_off.reg }, |
| 174576 | | .mod = .{ .rm = .{ |
| 174577 | | .size = .fromSize(some_abi_size), |
| 174578 | | .disp = reg_off.off + some_info.off, |
| 174579 | | } }, |
| 174580 | | }, |
| 174581 | | .load_frame => |frame_addr| .{ |
| 174582 | | .base = .{ .frame = frame_addr.index }, |
| 174583 | | .mod = .{ .rm = .{ |
| 174584 | | .size = .fromSize(some_abi_size), |
| 174585 | | .disp = frame_addr.off + some_info.off, |
| 174586 | | } }, |
| 174587 | | }, |
| 174588 | | else => unreachable, |
| 174589 | | }, |
| 174590 | | .u(0), |
| 174591 | | ); |
| 174592 | | return .{ .eflags = .e }; |
| 174593 | | }, |
| 174594 | | } |
| 174595 | | } |
| 174596 | | |
| 174597 | | fn isNullPtr(self: *CodeGen, inst: Air.Inst.Index, ptr_ty: Type, ptr_mcv: MCValue) !MCValue { |
| 174598 | | const pt = self.pt; |
| 174599 | | const zcu = pt.zcu; |
| 174600 | | const opt_ty = ptr_ty.childType(zcu); |
| 174601 | | const pl_ty = opt_ty.optionalChild(zcu); |
| 174602 | | |
| 174603 | | try self.spillEflagsIfOccupied(); |
| 174604 | | |
| 174605 | | const some_info: struct { off: i32, ty: Type } = if (opt_ty.optionalReprIsPayload(zcu)) |
| 174606 | | .{ .off = 0, .ty = if (pl_ty.isSlice(zcu)) pl_ty.slicePtrFieldType(zcu) else pl_ty } |
| 174607 | | else |
| 174608 | | .{ .off = @intCast(pl_ty.abiSize(zcu)), .ty = .bool }; |
| 174609 | | |
| 174610 | | const ptr_reg = switch (ptr_mcv) { |
| 174611 | | .register => |reg| reg, |
| 174612 | | else => try self.copyToTmpRegister(ptr_ty, ptr_mcv), |
| 174613 | | }; |
| 174614 | | const ptr_lock = self.register_manager.lockReg(ptr_reg); |
| 174615 | | defer if (ptr_lock) |lock| self.register_manager.unlockReg(lock); |
| 174616 | | |
| 174617 | | const some_abi_size: u32 = @intCast(some_info.ty.abiSize(zcu)); |
| 174618 | | try self.asmMemoryImmediate( |
| 174619 | | .{ ._, .cmp }, |
| 174620 | | .{ |
| 174621 | | .base = .{ .reg = ptr_reg }, |
| 174622 | | .mod = .{ .rm = .{ |
| 174623 | | .size = .fromSize(some_abi_size), |
| 174624 | | .disp = some_info.off, |
| 174625 | | } }, |
| 174626 | | }, |
| 174627 | | .u(0), |
| 174628 | | ); |
| 174629 | | |
| 174630 | | self.eflags_inst = inst; |
| 174631 | | return .{ .eflags = .e }; |
| 174632 | | } |
| 174633 | | |
| 174634 | 179131 | fn isErr(self: *CodeGen, maybe_inst: ?Air.Inst.Index, eu_ty: Type, eu_mcv: MCValue) !MCValue { |
| 174635 | 179132 | const pt = self.pt; |
| 174636 | 179133 | const zcu = pt.zcu; |
| ... | ... | @@ -174708,124 +179205,6 @@ fn isErrPtr(self: *CodeGen, maybe_inst: ?Air.Inst.Index, ptr_ty: Type, ptr_mcv: |
| 174708 | 179205 | return MCValue{ .eflags = .a }; |
| 174709 | 179206 | } |
| 174710 | 179207 | |
| 174711 | | fn isNonErr(self: *CodeGen, inst: Air.Inst.Index, eu_ty: Type, eu_mcv: MCValue) !MCValue { |
| 174712 | | const is_err_res = try self.isErr(inst, eu_ty, eu_mcv); |
| 174713 | | switch (is_err_res) { |
| 174714 | | .eflags => |cc| { |
| 174715 | | assert(cc == .a); |
| 174716 | | return MCValue{ .eflags = cc.negate() }; |
| 174717 | | }, |
| 174718 | | .immediate => |imm| { |
| 174719 | | assert(imm == 0); |
| 174720 | | return MCValue{ .immediate = @intFromBool(imm == 0) }; |
| 174721 | | }, |
| 174722 | | else => unreachable, |
| 174723 | | } |
| 174724 | | } |
| 174725 | | |
| 174726 | | fn isNonErrPtr(self: *CodeGen, inst: Air.Inst.Index, ptr_ty: Type, ptr_mcv: MCValue) !MCValue { |
| 174727 | | const is_err_res = try self.isErrPtr(inst, ptr_ty, ptr_mcv); |
| 174728 | | switch (is_err_res) { |
| 174729 | | .eflags => |cc| { |
| 174730 | | assert(cc == .a); |
| 174731 | | return MCValue{ .eflags = cc.negate() }; |
| 174732 | | }, |
| 174733 | | .immediate => |imm| { |
| 174734 | | assert(imm == 0); |
| 174735 | | return MCValue{ .immediate = @intFromBool(imm == 0) }; |
| 174736 | | }, |
| 174737 | | else => unreachable, |
| 174738 | | } |
| 174739 | | } |
| 174740 | | |
| 174741 | | fn airIsNull(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174742 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 174743 | | const operand = try self.resolveInst(un_op); |
| 174744 | | const ty = self.typeOf(un_op); |
| 174745 | | const result = try self.isNull(inst, ty, operand); |
| 174746 | | return self.finishAir(inst, result, .{ un_op, .none, .none }); |
| 174747 | | } |
| 174748 | | |
| 174749 | | fn airIsNullPtr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174750 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 174751 | | const operand = try self.resolveInst(un_op); |
| 174752 | | const ty = self.typeOf(un_op); |
| 174753 | | const result = try self.isNullPtr(inst, ty, operand); |
| 174754 | | return self.finishAir(inst, result, .{ un_op, .none, .none }); |
| 174755 | | } |
| 174756 | | |
| 174757 | | fn airIsNonNull(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174758 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 174759 | | const operand = try self.resolveInst(un_op); |
| 174760 | | const ty = self.typeOf(un_op); |
| 174761 | | const result: MCValue = switch (try self.isNull(inst, ty, operand)) { |
| 174762 | | .immediate => |imm| .{ .immediate = @intFromBool(imm == 0) }, |
| 174763 | | .eflags => |cc| .{ .eflags = cc.negate() }, |
| 174764 | | else => unreachable, |
| 174765 | | }; |
| 174766 | | return self.finishAir(inst, result, .{ un_op, .none, .none }); |
| 174767 | | } |
| 174768 | | |
| 174769 | | fn airIsNonNullPtr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174770 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 174771 | | const operand = try self.resolveInst(un_op); |
| 174772 | | const ty = self.typeOf(un_op); |
| 174773 | | const result: MCValue = switch (try self.isNullPtr(inst, ty, operand)) { |
| 174774 | | .eflags => |cc| .{ .eflags = cc.negate() }, |
| 174775 | | else => unreachable, |
| 174776 | | }; |
| 174777 | | return self.finishAir(inst, result, .{ un_op, .none, .none }); |
| 174778 | | } |
| 174779 | | |
| 174780 | | fn airIsErr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174781 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 174782 | | const operand = try self.resolveInst(un_op); |
| 174783 | | const ty = self.typeOf(un_op); |
| 174784 | | const result = try self.isErr(inst, ty, operand); |
| 174785 | | return self.finishAir(inst, result, .{ un_op, .none, .none }); |
| 174786 | | } |
| 174787 | | |
| 174788 | | fn airIsErrPtr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174789 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 174790 | | const operand = try self.resolveInst(un_op); |
| 174791 | | const ty = self.typeOf(un_op); |
| 174792 | | const result = try self.isErrPtr(inst, ty, operand); |
| 174793 | | return self.finishAir(inst, result, .{ un_op, .none, .none }); |
| 174794 | | } |
| 174795 | | |
| 174796 | | fn airIsNonErr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174797 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 174798 | | const operand = try self.resolveInst(un_op); |
| 174799 | | const ty = self.typeOf(un_op); |
| 174800 | | const result = try self.isNonErr(inst, ty, operand); |
| 174801 | | return self.finishAir(inst, result, .{ un_op, .none, .none }); |
| 174802 | | } |
| 174803 | | |
| 174804 | | fn airIsNonErrPtr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174805 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 174806 | | const operand = try self.resolveInst(un_op); |
| 174807 | | const ty = self.typeOf(un_op); |
| 174808 | | const result = try self.isNonErrPtr(inst, ty, operand); |
| 174809 | | return self.finishAir(inst, result, .{ un_op, .none, .none }); |
| 174810 | | } |
| 174811 | | |
| 174812 | | fn airLoop(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 174813 | | // A loop is a setup to be able to jump back to the beginning. |
| 174814 | | const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; |
| 174815 | | const loop = self.air.extraData(Air.Block, ty_pl.payload); |
| 174816 | | const body: []const Air.Inst.Index = @ptrCast(self.air.extra.items[loop.end..][0..loop.data.body_len]); |
| 174817 | | |
| 174818 | | const state = try self.saveState(); |
| 174819 | | |
| 174820 | | try self.loops.putNoClobber(self.gpa, inst, .{ |
| 174821 | | .state = state, |
| 174822 | | .target = @intCast(self.mir_instructions.len), |
| 174823 | | }); |
| 174824 | | defer assert(self.loops.remove(inst)); |
| 174825 | | |
| 174826 | | try self.genBodyBlock(body); |
| 174827 | | } |
| 174828 | | |
| 174829 | 179208 | fn lowerBlock(self: *CodeGen, inst: Air.Inst.Index, body: []const Air.Inst.Index) !void { |
| 174830 | 179209 | // A block is a setup to be able to jump to the end. |
| 174831 | 179210 | const inst_tracking_i = self.inst_tracking.count(); |
| ... | ... | @@ -174860,7 +179239,7 @@ fn lowerBlock(self: *CodeGen, inst: Air.Inst.Index, body: []const Air.Inst.Index |
| 174860 | 179239 | |
| 174861 | 179240 | if (std.debug.runtime_safety) assert(self.inst_tracking.getIndex(inst).? == inst_tracking_i); |
| 174862 | 179241 | const tracking = &self.inst_tracking.values()[inst_tracking_i]; |
| 174863 | | if (self.liveness.isUnused(inst)) try tracking.die(self, inst); |
| 179242 | if (self.liveness.isUnused(inst)) try tracking.die(self, inst, .{}); |
| 174864 | 179243 | self.getValueIfFree(tracking.short, inst); |
| 174865 | 179244 | } |
| 174866 | 179245 | |
| ... | ... | @@ -175019,7 +179398,7 @@ fn lowerSwitchBr( |
| 175019 | 179398 | } |
| 175020 | 179399 | } |
| 175021 | 179400 | |
| 175022 | | for (liveness.deaths[case.idx]) |operand| try cg.processDeath(operand); |
| 179401 | for (liveness.deaths[case.idx]) |operand| try cg.processDeath(operand, .{}); |
| 175023 | 179402 | |
| 175024 | 179403 | try cg.genBodyBlock(case.body); |
| 175025 | 179404 | try cg.restoreState(state, &.{}, .{ |
| ... | ... | @@ -175033,7 +179412,7 @@ fn lowerSwitchBr( |
| 175033 | 179412 | const else_body = cases_it.elseBody(); |
| 175034 | 179413 | |
| 175035 | 179414 | const else_deaths = liveness.deaths.len - 1; |
| 175036 | | for (liveness.deaths[else_deaths]) |operand| try cg.processDeath(operand); |
| 179415 | for (liveness.deaths[else_deaths]) |operand| try cg.processDeath(operand, .{}); |
| 175037 | 179416 | |
| 175038 | 179417 | cg.performReloc(else_reloc); |
| 175039 | 179418 | if (is_loop) { |
| ... | ... | @@ -175151,7 +179530,7 @@ fn lowerSwitchBr( |
| 175151 | 179530 | // The jump to skip this case if the conditions all failed. |
| 175152 | 179531 | const skip_case_reloc = try cg.asmJmpReloc(undefined); |
| 175153 | 179532 | |
| 175154 | | for (liveness.deaths[case.idx]) |operand| try cg.processDeath(operand); |
| 179533 | for (liveness.deaths[case.idx]) |operand| try cg.processDeath(operand, .{}); |
| 175155 | 179534 | |
| 175156 | 179535 | // Relocate all success cases to the body we're about to generate. |
| 175157 | 179536 | for (relocs) |reloc| cg.performReloc(reloc); |
| ... | ... | @@ -175170,7 +179549,7 @@ fn lowerSwitchBr( |
| 175170 | 179549 | const else_body = cases_it.elseBody(); |
| 175171 | 179550 | |
| 175172 | 179551 | const else_deaths = liveness.deaths.len - 1; |
| 175173 | | for (liveness.deaths[else_deaths]) |operand| try cg.processDeath(operand); |
| 179552 | for (liveness.deaths[else_deaths]) |operand| try cg.processDeath(operand, .{}); |
| 175174 | 179553 | |
| 175175 | 179554 | try cg.genBodyBlock(else_body); |
| 175176 | 179555 | try cg.restoreState(state, &.{}, .{ |
| ... | ... | @@ -175191,7 +179570,7 @@ fn airSwitchBr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 175191 | 179570 | // whether it needs to be spilled in the branches |
| 175192 | 179571 | const condition_dies = self.liveness.operandDies(inst, 0); |
| 175193 | 179572 | if (condition_dies) { |
| 175194 | | if (switch_br.operand.toIndex()) |op_inst| try self.processDeath(op_inst); |
| 179573 | if (switch_br.operand.toIndex()) |op_inst| try self.processDeath(op_inst, .{}); |
| 175195 | 179574 | } |
| 175196 | 179575 | try self.lowerSwitchBr(inst, switch_br, condition, condition_dies, false); |
| 175197 | 179576 | |
| ... | ... | @@ -175216,7 +179595,7 @@ fn airLoopSwitchBr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 175216 | 179595 | // that death now instead of later as this has an effect on |
| 175217 | 179596 | // whether it needs to be spilled in the branches |
| 175218 | 179597 | if (self.liveness.operandDies(inst, 0)) { |
| 175219 | | if (switch_br.operand.toIndex()) |op_inst| try self.processDeath(op_inst); |
| 179598 | if (switch_br.operand.toIndex()) |op_inst| try self.processDeath(op_inst, .{}); |
| 175220 | 179599 | } |
| 175221 | 179600 | |
| 175222 | 179601 | // Ensure a register is available for dispatch. |
| ... | ... | @@ -175231,11 +179610,11 @@ fn airLoopSwitchBr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 175231 | 179610 | defer assert(self.loops.remove(inst)); |
| 175232 | 179611 | |
| 175233 | 179612 | // Stop tracking block result without forgetting tracking info |
| 175234 | | try self.freeValue(mat_cond); |
| 179613 | try self.freeValue(mat_cond, .{}); |
| 175235 | 179614 | |
| 175236 | 179615 | try self.lowerSwitchBr(inst, switch_br, mat_cond, true, true); |
| 175237 | 179616 | |
| 175238 | | try self.processDeath(inst); |
| 179617 | try self.processDeath(inst, .{}); |
| 175239 | 179618 | } |
| 175240 | 179619 | |
| 175241 | 179620 | fn airSwitchDispatch(self: *CodeGen, inst: Air.Inst.Index) !void { |
| ... | ... | @@ -175262,7 +179641,7 @@ fn airSwitchDispatch(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 175262 | 179641 | |
| 175263 | 179642 | // Process operand death so that it is properly accounted for in the State below. |
| 175264 | 179643 | if (self.liveness.operandDies(inst, 0)) { |
| 175265 | | if (br.operand.toIndex()) |op_inst| try self.processDeath(op_inst); |
| 179644 | if (br.operand.toIndex()) |op_inst| try self.processDeath(op_inst, .{}); |
| 175266 | 179645 | } |
| 175267 | 179646 | |
| 175268 | 179647 | try self.restoreState(loop_data.state, &.{}, .{ |
| ... | ... | @@ -175340,7 +179719,7 @@ fn airSwitchDispatch(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 175340 | 179719 | _ = try self.asmJmpReloc(loop_data.target); |
| 175341 | 179720 | |
| 175342 | 179721 | // Stop tracking block result without forgetting tracking info |
| 175343 | | try self.freeValue(block_tracking.short); |
| 179722 | try self.freeValue(block_tracking.short, .{ .emit_instructions = false }); |
| 175344 | 179723 | } |
| 175345 | 179724 | |
| 175346 | 179725 | fn performReloc(self: *CodeGen, reloc: Mir.Inst.Index) void { |
| ... | ... | @@ -175389,10 +179768,14 @@ fn airBr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 175389 | 179768 | if (first_br) break :result src_mcv; |
| 175390 | 179769 | |
| 175391 | 179770 | try self.getValue(block_tracking.short, br.block_inst); |
| 175392 | | // .long = .none to avoid merging operand and block result stack frames. |
| 175393 | | const current_tracking: InstTracking = .{ .long = .none, .short = src_mcv }; |
| 175394 | | try current_tracking.materializeUnsafe(self, br.block_inst, block_tracking.*); |
| 175395 | | for (current_tracking.getRegs()) |src_reg| self.register_manager.freeReg(src_reg); |
| 179771 | try InstTracking.materializeUnsafe( |
| 179772 | // .long = .none to avoid merging operand and block result stack frames. |
| 179773 | .{ .long = .none, .short = src_mcv }, |
| 179774 | self, |
| 179775 | br.block_inst, |
| 179776 | block_tracking.*, |
| 179777 | ); |
| 179778 | try self.freeValue(src_mcv, .{}); |
| 175396 | 179779 | break :result block_tracking.short; |
| 175397 | 179780 | } |
| 175398 | 179781 | |
| ... | ... | @@ -175406,7 +179789,7 @@ fn airBr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 175406 | 179789 | |
| 175407 | 179790 | // Process operand death so that it is properly accounted for in the State below. |
| 175408 | 179791 | if (self.liveness.operandDies(inst, 0)) { |
| 175409 | | if (br.operand.toIndex()) |op_inst| try self.processDeath(op_inst); |
| 179792 | if (br.operand.toIndex()) |op_inst| try self.processDeath(op_inst, .{}); |
| 175410 | 179793 | } |
| 175411 | 179794 | |
| 175412 | 179795 | if (first_br) { |
| ... | ... | @@ -175425,7 +179808,7 @@ fn airBr(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 175425 | 179808 | try block_data.relocs.append(self.gpa, jmp_reloc); |
| 175426 | 179809 | |
| 175427 | 179810 | // Stop tracking block result without forgetting tracking info |
| 175428 | | try self.freeValue(block_tracking.short); |
| 179811 | try self.freeValue(block_tracking.short, .{ .emit_instructions = false }); |
| 175429 | 179812 | } |
| 175430 | 179813 | |
| 175431 | 179814 | fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void { |
| ... | ... | @@ -175802,7 +180185,7 @@ fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 175802 | 180185 | } }, |
| 175803 | 180186 | } }; |
| 175804 | 180187 | } else { |
| 175805 | | if (mnem_size.use()) |size| if (reg.bitSize() != size.bitSize(self.target)) |
| 180188 | if (mnem_size.use()) |size| if (reg.size().bitSize(self.target) != size.bitSize(self.target)) |
| 175806 | 180189 | return self.fail("invalid register size: '{s}'", .{op_str}); |
| 175807 | 180190 | op.* = .{ .reg = reg }; |
| 175808 | 180191 | } |
| ... | ... | @@ -176181,7 +180564,7 @@ const MoveStrategy = union(enum) { |
| 176181 | 180564 | if (tag[0] == ._ps and tag[1] == .movl) try cg.asmRegisterRegister(.{ ._ps, .xor }, dst_reg, dst_reg); |
| 176182 | 180565 | try cg.asmRegisterMemory(tag, switch (tag[1]) { |
| 176183 | 180566 | else => dst_reg, |
| 176184 | | .lea => if (dst_reg.bitSize() >= 32) dst_reg else dst_reg.to32(), |
| 180567 | .lea => if (dst_reg.size().bitSize(cg.target) >= 32) dst_reg else dst_reg.to32(), |
| 176185 | 180568 | }, src_mem); |
| 176186 | 180569 | }, |
| 176187 | 180570 | .load_store_x87 => if (dst_reg != .st0 and cg.register_manager.isKnownRegFree(.st7)) { |
| ... | ... | @@ -176554,6 +180937,7 @@ fn genCopy(self: *CodeGen, ty: Type, dst_mcv: MCValue, src_mcv: MCValue, opts: C |
| 176554 | 180937 | .eflags, |
| 176555 | 180938 | .register_overflow, |
| 176556 | 180939 | .register_mask, |
| 180940 | .indirect_load_frame, |
| 176557 | 180941 | .lea_frame, |
| 176558 | 180942 | .lea_nav, |
| 176559 | 180943 | .lea_uav, |
| ... | ... | @@ -176750,12 +181134,13 @@ fn genSetReg( |
| 176750 | 181134 | const zcu = pt.zcu; |
| 176751 | 181135 | const abi_size: u32 = @intCast(ty.abiSize(zcu)); |
| 176752 | 181136 | const dst_alias = registerAlias(dst_reg, abi_size); |
| 176753 | | if (ty.bitSize(zcu) > dst_alias.bitSize()) |
| 181137 | if (ty.bitSize(zcu) > dst_alias.size().bitSize(self.target)) |
| 176754 | 181138 | return self.fail("genSetReg called with a value larger than dst_reg", .{}); |
| 176755 | 181139 | switch (src_mcv) { |
| 176756 | 181140 | .none, |
| 176757 | 181141 | .unreach, |
| 176758 | 181142 | .dead, |
| 181143 | .indirect_load_frame, |
| 176759 | 181144 | .elementwise_args, |
| 176760 | 181145 | .reserved_frame, |
| 176761 | 181146 | => unreachable, |
| ... | ... | @@ -177112,7 +181497,7 @@ fn genSetReg( |
| 177112 | 181497 | ty, |
| 177113 | 181498 | dst_reg.class(), |
| 177114 | 181499 | self.getFrameAddrAlignment(frame_addr).compare(.gte, .fromLog2Units( |
| 177115 | | std.math.log2_int_ceil(u10, @divExact(dst_reg.bitSize(), 8)), |
| 181500 | std.math.log2_int_ceil(u64, @divExact(dst_reg.size().bitSize(self.target), 8)), |
| 177116 | 181501 | )), |
| 177117 | 181502 | ), |
| 177118 | 181503 | .lea_frame => .{ .load_store = .{ ._, .lea } }, |
| ... | ... | @@ -177318,6 +181703,7 @@ fn genSetMem( |
| 177318 | 181703 | .none, |
| 177319 | 181704 | .unreach, |
| 177320 | 181705 | .dead, |
| 181706 | .indirect_load_frame, |
| 177321 | 181707 | .elementwise_args, |
| 177322 | 181708 | .reserved_frame, |
| 177323 | 181709 | => unreachable, |
| ... | ... | @@ -177382,43 +181768,37 @@ fn genSetMem( |
| 177382 | 181768 | const frame_abi_size = self.frame_allocs.items(.abi_size)[@intFromEnum(base_fi)]; |
| 177383 | 181769 | const frame_spill_pad = self.frame_allocs.items(.spill_pad)[@intFromEnum(base_fi)]; |
| 177384 | 181770 | assert(frame_abi_size - frame_spill_pad - disp >= abi_size); |
| 177385 | | break :mem_size if (frame_abi_size - frame_spill_pad - disp == abi_size) |
| 177386 | | frame_abi_size |
| 177387 | | else |
| 177388 | | abi_size; |
| 181771 | break :mem_size if (frame_abi_size - frame_spill_pad - disp == abi_size) frame_abi_size else abi_size; |
| 177389 | 181772 | }, |
| 177390 | 181773 | else => abi_size, |
| 177391 | 181774 | }; |
| 177392 | 181775 | const src_alias = registerAlias(src_reg, @intCast(self.unalignedSize(ty))); |
| 177393 | 181776 | const src_class = src_alias.class(); |
| 177394 | | const src_size: u32 = switch (src_class) { |
| 177395 | | .general_purpose, .gphi, .segment, .ip, .cr, .dr => @intCast(@divExact(src_alias.bitSize(), 8)), |
| 177396 | | .mmx, .sse => abi_size, |
| 181777 | const src_size: Memory.Size = switch (src_class) { |
| 181778 | .general_purpose, .gphi, .segment, .ip, .cr, .dr => src_alias.size(), |
| 181779 | .mmx, .sse => .fromSize(abi_size), |
| 177397 | 181780 | .x87 => switch (abi.classifySystemV(ty, zcu, self.target, .other)[0]) { |
| 177398 | 181781 | else => unreachable, |
| 177399 | | .float, .float_combine => 4, |
| 177400 | | .sse => 8, |
| 177401 | | .x87 => 10, |
| 181782 | .float => .dword, |
| 181783 | .float_combine, .sse => .qword, |
| 181784 | .x87 => .tbyte, |
| 177402 | 181785 | }, |
| 177403 | 181786 | }; |
| 177404 | | const src_align: InternPool.Alignment = .fromNonzeroByteUnits( |
| 177405 | | std.math.ceilPowerOfTwoAssert(u32, src_size), |
| 177406 | | ); |
| 177407 | | if (src_size > mem_size) { |
| 181787 | const src_bit_size = src_size.bitSize(self.target); |
| 181788 | const src_align: InternPool.Alignment = .fromNonzeroByteUnits(std.math.ceilPowerOfTwoAssert(u64, src_bit_size)); |
| 181789 | const src_byte_size = @divExact(src_bit_size, 8); |
| 181790 | if (src_byte_size > mem_size) { |
| 177408 | 181791 | const frame_index = try self.allocFrameIndex(.init(.{ |
| 177409 | | .size = src_size, |
| 181792 | .size = src_byte_size, |
| 177410 | 181793 | .alignment = src_align, |
| 177411 | 181794 | })); |
| 177412 | 181795 | const frame_mcv: MCValue = .{ .load_frame = .{ .index = frame_index } }; |
| 177413 | | try (try self.moveStrategy(ty, src_class, true)).write( |
| 177414 | | self, |
| 177415 | | .{ .base = .{ .frame = frame_index }, .mod = .{ .rm = .{ |
| 177416 | | .size = .fromSize(src_size), |
| 177417 | | } } }, |
| 177418 | | src_alias, |
| 177419 | | ); |
| 181796 | try (try self.moveStrategy(ty, src_class, true)).write(self, .{ |
| 181797 | .base = .{ .frame = frame_index }, |
| 181798 | .mod = .{ .rm = .{ .size = src_size } }, |
| 181799 | }, src_alias); |
| 177420 | 181800 | try self.genSetMem(base, disp, ty, frame_mcv, opts); |
| 177421 | | try self.freeValue(frame_mcv); |
| 181801 | try self.freeValue(frame_mcv, .{}); |
| 177422 | 181802 | } else try (try self.moveStrategy(ty, src_class, switch (base) { |
| 177423 | 181803 | .none => src_align.check(@as(u32, @bitCast(disp))), |
| 177424 | 181804 | .reg => |reg| switch (reg) { |
| ... | ... | @@ -177432,17 +181812,10 @@ fn genSetMem( |
| 177432 | 181812 | .table, .rip_inst, .lazy_sym, .extern_func => unreachable, |
| 177433 | 181813 | .nav => |nav| ip.getNav(nav).getAlignment().compare(.gte, src_align), |
| 177434 | 181814 | .uav => |uav| Type.fromInterned(uav.orig_ty).ptrAlignment(zcu).compare(.gte, src_align), |
| 177435 | | })).write( |
| 177436 | | self, |
| 177437 | | .{ .base = base, .mod = .{ .rm = .{ |
| 177438 | | .size = .fromBitSize(@min( |
| 177439 | | self.memSize(ty).bitSize(self.target), |
| 177440 | | src_alias.bitSize(), |
| 177441 | | )), |
| 177442 | | .disp = disp, |
| 177443 | | } } }, |
| 177444 | | src_alias, |
| 177445 | | ); |
| 181815 | })).write(self, .{ |
| 181816 | .base = base, |
| 181817 | .mod = .{ .rm = .{ .size = src_size, .disp = disp } }, |
| 181818 | }, src_alias); |
| 177446 | 181819 | }, |
| 177447 | 181820 | inline .register_pair, .register_triple, .register_quadruple => |src_regs| { |
| 177448 | 181821 | var part_disp: i32 = disp; |
| ... | ... | @@ -178582,271 +182955,6 @@ fn airMemset(self: *CodeGen, inst: Air.Inst.Index, safety: bool) !void { |
| 178582 | 182955 | return self.finishAir(inst, .unreach, .{ bin_op.lhs, bin_op.rhs, .none }); |
| 178583 | 182956 | } |
| 178584 | 182957 | |
| 178585 | | fn airMemcpy(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 178586 | | const pt = self.pt; |
| 178587 | | const zcu = pt.zcu; |
| 178588 | | const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; |
| 178589 | | |
| 178590 | | try self.spillRegisters(&.{ .rdi, .rsi, .rcx }); |
| 178591 | | const reg_locks = self.register_manager.lockRegsAssumeUnused(3, .{ .rdi, .rsi, .rcx }); |
| 178592 | | defer for (reg_locks) |lock| self.register_manager.unlockReg(lock); |
| 178593 | | |
| 178594 | | const dst = try self.resolveInst(bin_op.lhs); |
| 178595 | | const dst_ty = self.typeOf(bin_op.lhs); |
| 178596 | | const dst_locks: [2]?RegisterLock = switch (dst) { |
| 178597 | | .register => |dst_reg| .{ self.register_manager.lockRegAssumeUnused(dst_reg), null }, |
| 178598 | | .register_pair => |dst_regs| .{ |
| 178599 | | self.register_manager.lockRegAssumeUnused(dst_regs[0]), |
| 178600 | | self.register_manager.lockReg(dst_regs[1]), |
| 178601 | | }, |
| 178602 | | else => @splat(null), |
| 178603 | | }; |
| 178604 | | for (dst_locks) |dst_lock| if (dst_lock) |lock| self.register_manager.unlockReg(lock); |
| 178605 | | |
| 178606 | | const src = try self.resolveInst(bin_op.rhs); |
| 178607 | | const src_locks: [2]?RegisterLock = switch (src) { |
| 178608 | | .register => |src_reg| .{ self.register_manager.lockReg(src_reg), null }, |
| 178609 | | .register_pair => |src_regs| .{ |
| 178610 | | self.register_manager.lockRegAssumeUnused(src_regs[0]), |
| 178611 | | self.register_manager.lockRegAssumeUnused(src_regs[1]), |
| 178612 | | }, |
| 178613 | | else => @splat(null), |
| 178614 | | }; |
| 178615 | | for (src_locks) |src_lock| if (src_lock) |lock| self.register_manager.unlockReg(lock); |
| 178616 | | |
| 178617 | | const len: MCValue = switch (dst_ty.ptrSize(zcu)) { |
| 178618 | | .slice => len: { |
| 178619 | | const len_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 178620 | | const len_lock = self.register_manager.lockRegAssumeUnused(len_reg); |
| 178621 | | defer self.register_manager.unlockReg(len_lock); |
| 178622 | | |
| 178623 | | switch (dst) { |
| 178624 | | .register_pair => |dst_regs| try self.asmRegisterRegisterImmediate( |
| 178625 | | .{ .i_, .mul }, |
| 178626 | | len_reg, |
| 178627 | | dst_regs[1], |
| 178628 | | .s(@intCast(dst_ty.childType(zcu).abiSize(zcu))), |
| 178629 | | ), |
| 178630 | | else => try self.asmRegisterMemoryImmediate( |
| 178631 | | .{ .i_, .mul }, |
| 178632 | | len_reg, |
| 178633 | | try dst.address().offset(8).deref().mem(self, .{ .size = .qword }), |
| 178634 | | .s(@intCast(dst_ty.childType(zcu).abiSize(zcu))), |
| 178635 | | ), |
| 178636 | | } |
| 178637 | | break :len .{ .register = len_reg }; |
| 178638 | | }, |
| 178639 | | .one => len: { |
| 178640 | | const array_ty = dst_ty.childType(zcu); |
| 178641 | | break :len .{ .immediate = array_ty.arrayLen(zcu) * array_ty.childType(zcu).abiSize(zcu) }; |
| 178642 | | }, |
| 178643 | | .c, .many => unreachable, |
| 178644 | | }; |
| 178645 | | const len_lock: ?RegisterLock = switch (len) { |
| 178646 | | .register => |reg| self.register_manager.lockReg(reg), |
| 178647 | | else => null, |
| 178648 | | }; |
| 178649 | | defer if (len_lock) |lock| self.register_manager.unlockReg(lock); |
| 178650 | | |
| 178651 | | const dst_ptr: MCValue = switch (dst) { |
| 178652 | | .register_pair => |dst_regs| .{ .register = dst_regs[0] }, |
| 178653 | | else => dst, |
| 178654 | | }; |
| 178655 | | const src_ptr: MCValue = switch (src) { |
| 178656 | | .register_pair => |src_regs| .{ .register = src_regs[0] }, |
| 178657 | | else => src, |
| 178658 | | }; |
| 178659 | | |
| 178660 | | try self.genInlineMemcpy(dst_ptr, src_ptr, len, .{ .no_alias = true }); |
| 178661 | | |
| 178662 | | return self.finishAir(inst, .unreach, .{ bin_op.lhs, bin_op.rhs, .none }); |
| 178663 | | } |
| 178664 | | |
| 178665 | | fn airTagName(self: *CodeGen, inst: Air.Inst.Index, only_safety: bool) !void { |
| 178666 | | const pt = self.pt; |
| 178667 | | const zcu = pt.zcu; |
| 178668 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 178669 | | const inst_ty = self.typeOfIndex(inst); |
| 178670 | | const enum_ty = self.typeOf(un_op); |
| 178671 | | |
| 178672 | | // We need a properly aligned and sized call frame to be able to call this function. |
| 178673 | | { |
| 178674 | | const needed_call_frame: FrameAlloc = .init(.{ |
| 178675 | | .size = inst_ty.abiSize(zcu), |
| 178676 | | .alignment = inst_ty.abiAlignment(zcu), |
| 178677 | | }); |
| 178678 | | const frame_allocs_slice = self.frame_allocs.slice(); |
| 178679 | | const stack_frame_size = |
| 178680 | | &frame_allocs_slice.items(.abi_size)[@intFromEnum(FrameIndex.call_frame)]; |
| 178681 | | stack_frame_size.* = @max(stack_frame_size.*, needed_call_frame.abi_size); |
| 178682 | | const stack_frame_align = |
| 178683 | | &frame_allocs_slice.items(.abi_align)[@intFromEnum(FrameIndex.call_frame)]; |
| 178684 | | stack_frame_align.* = stack_frame_align.max(needed_call_frame.abi_align); |
| 178685 | | } |
| 178686 | | |
| 178687 | | var param_gpr = abi.getCAbiIntParamRegs(.auto); |
| 178688 | | const err_ret_trace_reg = if (zcu.comp.config.any_error_tracing) err_ret_trace_reg: { |
| 178689 | | defer param_gpr = param_gpr[0 .. param_gpr.len - 1]; |
| 178690 | | break :err_ret_trace_reg param_gpr[param_gpr.len - 1]; |
| 178691 | | } else .none; |
| 178692 | | |
| 178693 | | try self.spillEflagsIfOccupied(); |
| 178694 | | try self.spillCallerPreservedRegs(.auto, err_ret_trace_reg); |
| 178695 | | |
| 178696 | | const operand = try self.resolveInst(un_op); |
| 178697 | | try self.genSetReg(param_gpr[0], enum_ty, operand, .{}); |
| 178698 | | |
| 178699 | | const enum_lazy_sym: link.File.LazySymbol = .{ .kind = .code, .ty = enum_ty.toIntern() }; |
| 178700 | | try self.genLazySymbolRef(.call, abi.getCAbiLinkerScratchReg(.auto), enum_lazy_sym); |
| 178701 | | |
| 178702 | | const tag_name_regs = param_gpr[0..2].*; |
| 178703 | | const dst_mcv: MCValue = if (only_safety) result: { |
| 178704 | | try self.asmRegisterRegister(.{ ._, .@"test" }, tag_name_regs[0].to64(), tag_name_regs[0].to64()); |
| 178705 | | break :result .{ .eflags = .nz }; |
| 178706 | | } else .{ .register_pair = tag_name_regs }; |
| 178707 | | return self.finishAir(inst, dst_mcv, .{ un_op, .none, .none }); |
| 178708 | | } |
| 178709 | | |
| 178710 | | fn airErrorName(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 178711 | | const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; |
| 178712 | | |
| 178713 | | const err_ty = self.typeOf(un_op); |
| 178714 | | const err_mcv = try self.resolveInst(un_op); |
| 178715 | | const err_reg = try self.copyToTmpRegister(err_ty, err_mcv); |
| 178716 | | const err_lock = self.register_manager.lockRegAssumeUnused(err_reg); |
| 178717 | | defer self.register_manager.unlockReg(err_lock); |
| 178718 | | |
| 178719 | | const addr_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 178720 | | const addr_lock = self.register_manager.lockRegAssumeUnused(addr_reg); |
| 178721 | | defer self.register_manager.unlockReg(addr_lock); |
| 178722 | | const anyerror_lazy_sym: link.File.LazySymbol = .{ .kind = .const_data, .ty = .anyerror_type }; |
| 178723 | | try self.genLazySymbolRef(.lea, addr_reg, anyerror_lazy_sym); |
| 178724 | | |
| 178725 | | const start_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 178726 | | const start_lock = self.register_manager.lockRegAssumeUnused(start_reg); |
| 178727 | | defer self.register_manager.unlockReg(start_lock); |
| 178728 | | |
| 178729 | | const end_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 178730 | | const end_lock = self.register_manager.lockRegAssumeUnused(end_reg); |
| 178731 | | defer self.register_manager.unlockReg(end_lock); |
| 178732 | | |
| 178733 | | try self.truncateRegister(err_ty, err_reg.to32()); |
| 178734 | | |
| 178735 | | try self.asmRegisterMemory( |
| 178736 | | .{ ._, .mov }, |
| 178737 | | start_reg.to32(), |
| 178738 | | .{ |
| 178739 | | .base = .{ .reg = addr_reg.to64() }, |
| 178740 | | .mod = .{ .rm = .{ |
| 178741 | | .size = .dword, |
| 178742 | | .index = err_reg.to64(), |
| 178743 | | .scale = .@"4", |
| 178744 | | .disp = (1 - 1) * 4, |
| 178745 | | } }, |
| 178746 | | }, |
| 178747 | | ); |
| 178748 | | try self.asmRegisterMemory( |
| 178749 | | .{ ._, .mov }, |
| 178750 | | end_reg.to32(), |
| 178751 | | .{ |
| 178752 | | .base = .{ .reg = addr_reg.to64() }, |
| 178753 | | .mod = .{ .rm = .{ |
| 178754 | | .size = .dword, |
| 178755 | | .index = err_reg.to64(), |
| 178756 | | .scale = .@"4", |
| 178757 | | .disp = (2 - 1) * 4, |
| 178758 | | } }, |
| 178759 | | }, |
| 178760 | | ); |
| 178761 | | try self.asmRegisterRegister(.{ ._, .sub }, end_reg.to32(), start_reg.to32()); |
| 178762 | | try self.asmRegisterMemory( |
| 178763 | | .{ ._, .lea }, |
| 178764 | | start_reg.to64(), |
| 178765 | | .{ |
| 178766 | | .base = .{ .reg = addr_reg.to64() }, |
| 178767 | | .mod = .{ .rm = .{ .index = start_reg.to64() } }, |
| 178768 | | }, |
| 178769 | | ); |
| 178770 | | try self.asmRegisterMemory( |
| 178771 | | .{ ._, .lea }, |
| 178772 | | end_reg.to32(), |
| 178773 | | .{ |
| 178774 | | .base = .{ .reg = end_reg.to64() }, |
| 178775 | | .mod = .{ .rm = .{ .disp = -1 } }, |
| 178776 | | }, |
| 178777 | | ); |
| 178778 | | |
| 178779 | | const dst_mcv = try self.allocRegOrMem(inst, false); |
| 178780 | | try self.asmMemoryRegister( |
| 178781 | | .{ ._, .mov }, |
| 178782 | | .{ |
| 178783 | | .base = .{ .frame = dst_mcv.load_frame.index }, |
| 178784 | | .mod = .{ .rm = .{ |
| 178785 | | .size = .qword, |
| 178786 | | .disp = dst_mcv.load_frame.off, |
| 178787 | | } }, |
| 178788 | | }, |
| 178789 | | start_reg.to64(), |
| 178790 | | ); |
| 178791 | | try self.asmMemoryRegister( |
| 178792 | | .{ ._, .mov }, |
| 178793 | | .{ |
| 178794 | | .base = .{ .frame = dst_mcv.load_frame.index }, |
| 178795 | | .mod = .{ .rm = .{ |
| 178796 | | .size = .qword, |
| 178797 | | .disp = dst_mcv.load_frame.off + 8, |
| 178798 | | } }, |
| 178799 | | }, |
| 178800 | | end_reg.to64(), |
| 178801 | | ); |
| 178802 | | |
| 178803 | | return self.finishAir(inst, dst_mcv, .{ un_op, .none, .none }); |
| 178804 | | } |
| 178805 | | |
| 178806 | | fn airErrorSetHasValue(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 178807 | | const pt = self.pt; |
| 178808 | | const zcu = pt.zcu; |
| 178809 | | const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; |
| 178810 | | const inst_ty = self.typeOfIndex(inst); |
| 178811 | | const err_ty = ty_op.ty.toType(); |
| 178812 | | |
| 178813 | | // We need a properly aligned and sized call frame to be able to call this function. |
| 178814 | | { |
| 178815 | | const needed_call_frame: FrameAlloc = .init(.{ |
| 178816 | | .size = inst_ty.abiSize(zcu), |
| 178817 | | .alignment = inst_ty.abiAlignment(zcu), |
| 178818 | | }); |
| 178819 | | const frame_allocs_slice = self.frame_allocs.slice(); |
| 178820 | | const stack_frame_size = |
| 178821 | | &frame_allocs_slice.items(.abi_size)[@intFromEnum(FrameIndex.call_frame)]; |
| 178822 | | stack_frame_size.* = @max(stack_frame_size.*, needed_call_frame.abi_size); |
| 178823 | | const stack_frame_align = |
| 178824 | | &frame_allocs_slice.items(.abi_align)[@intFromEnum(FrameIndex.call_frame)]; |
| 178825 | | stack_frame_align.* = stack_frame_align.max(needed_call_frame.abi_align); |
| 178826 | | } |
| 178827 | | |
| 178828 | | var param_gpr = abi.getCAbiIntParamRegs(.auto); |
| 178829 | | const err_ret_trace_reg = if (zcu.comp.config.any_error_tracing) err_ret_trace_reg: { |
| 178830 | | defer param_gpr = param_gpr[0 .. param_gpr.len - 1]; |
| 178831 | | break :err_ret_trace_reg param_gpr[param_gpr.len - 1]; |
| 178832 | | } else .none; |
| 178833 | | |
| 178834 | | try self.spillEflagsIfOccupied(); |
| 178835 | | try self.spillCallerPreservedRegs(.auto, err_ret_trace_reg); |
| 178836 | | |
| 178837 | | const operand = try self.resolveInst(ty_op.operand); |
| 178838 | | try self.genSetReg(param_gpr[0], err_ty, operand, .{}); |
| 178839 | | |
| 178840 | | const enum_lazy_sym: link.File.LazySymbol = .{ .kind = .code, .ty = err_ty.toIntern() }; |
| 178841 | | try self.genLazySymbolRef(.call, abi.getCAbiLinkerScratchReg(.auto), enum_lazy_sym); |
| 178842 | | |
| 178843 | | const res_reg = param_gpr[0]; |
| 178844 | | try self.asmRegisterRegister(.{ ._, .@"test" }, res_reg.to32(), res_reg.to32()); |
| 178845 | | |
| 178846 | | const dst_mcv: MCValue = .{ .eflags = .nz }; |
| 178847 | | return self.finishAir(inst, dst_mcv, .{ ty_op.operand, .none, .none }); |
| 178848 | | } |
| 178849 | | |
| 178850 | 182958 | fn airSplat(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 178851 | 182959 | const pt = self.pt; |
| 178852 | 182960 | const zcu = pt.zcu; |
| ... | ... | @@ -180451,120 +184559,6 @@ fn airShuffle(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 180451 | 184559 | return self.finishAir(inst, result, .{ extra.a, extra.b, .none }); |
| 180452 | 184560 | } |
| 180453 | 184561 | |
| 180454 | | fn airReduce(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 180455 | | const pt = self.pt; |
| 180456 | | const zcu = pt.zcu; |
| 180457 | | const reduce = self.air.instructions.items(.data)[@intFromEnum(inst)].reduce; |
| 180458 | | |
| 180459 | | const result: MCValue = result: { |
| 180460 | | const operand_ty = self.typeOf(reduce.operand); |
| 180461 | | if (operand_ty.isVector(zcu) and operand_ty.childType(zcu).toIntern() == .bool_type) { |
| 180462 | | try self.spillEflagsIfOccupied(); |
| 180463 | | |
| 180464 | | const abi_size: u32 = @intCast(operand_ty.abiSize(zcu)); |
| 180465 | | const operand_mcv = try self.resolveInst(reduce.operand); |
| 180466 | | const mask_len = operand_ty.vectorLen(zcu); |
| 180467 | | const mask_len_minus_one = (std.math.cast(u6, mask_len - 1) orelse { |
| 180468 | | const acc_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); |
| 180469 | | const acc_lock = self.register_manager.lockRegAssumeUnused(acc_reg); |
| 180470 | | defer self.register_manager.unlockReg(acc_lock); |
| 180471 | | var limb_offset: i31 = @intCast((mask_len - 1) / 64 * 8); |
| 180472 | | const need_mask = mask_len % 64 != 0; |
| 180473 | | if (need_mask) try self.asmRegisterImmediate( |
| 180474 | | .{ ._, .mov }, |
| 180475 | | if (mask_len % 64 <= 32) acc_reg.to32() else acc_reg.to64(), |
| 180476 | | .u((@as(u64, std.math.maxInt(u64)) >> @truncate(-%mask_len))), |
| 180477 | | ); |
| 180478 | | const operand_mem_mcv: MCValue = if (!operand_mcv.isBase()) operand_mem: { |
| 180479 | | const frame_index = try self.allocFrameIndex(.initSpill(operand_ty, zcu)); |
| 180480 | | try self.genSetMem(.{ .frame = frame_index }, 0, operand_ty, operand_mcv, .{}); |
| 180481 | | break :operand_mem .{ .load_frame = .{ .index = frame_index } }; |
| 180482 | | } else operand_mcv; |
| 180483 | | var first = true; |
| 180484 | | while (true) : (limb_offset -= 8) { |
| 180485 | | try self.asmRegisterMemory( |
| 180486 | | .{ ._, if (first) if (need_mask) .@"and" else .mov else switch (reduce.operation) { |
| 180487 | | .Or => .@"or", |
| 180488 | | .And => .@"and", |
| 180489 | | else => return self.fail("TODO implement airReduce for {}", .{operand_ty.fmt(pt)}), |
| 180490 | | } }, |
| 180491 | | acc_reg.to64(), |
| 180492 | | try operand_mem_mcv.mem(self, .{ |
| 180493 | | .size = .qword, |
| 180494 | | .disp = limb_offset, |
| 180495 | | }), |
| 180496 | | ); |
| 180497 | | if (limb_offset == 0) break; |
| 180498 | | first = false; |
| 180499 | | } |
| 180500 | | switch (reduce.operation) { |
| 180501 | | .Or => { |
| 180502 | | try self.asmRegisterRegister(.{ ._, .@"test" }, acc_reg.to64(), acc_reg.to64()); |
| 180503 | | break :result .{ .eflags = .nz }; |
| 180504 | | }, |
| 180505 | | .And => { |
| 180506 | | try self.asmRegisterImmediate(.{ ._, .cmp }, acc_reg.to64(), .s(-1)); |
| 180507 | | break :result .{ .eflags = .z }; |
| 180508 | | }, |
| 180509 | | else => unreachable, |
| 180510 | | } |
| 180511 | | }); |
| 180512 | | const mask = @as(u64, std.math.maxInt(u64)) >> ~mask_len_minus_one; |
| 180513 | | switch (reduce.operation) { |
| 180514 | | .Or => { |
| 180515 | | if (operand_mcv.isBase()) try self.asmMemoryImmediate( |
| 180516 | | .{ ._, .@"test" }, |
| 180517 | | try operand_mcv.mem(self, .{ .size = .fromSize(abi_size) }), |
| 180518 | | if (mask_len < abi_size * 8) |
| 180519 | | .u(mask) |
| 180520 | | else |
| 180521 | | .s(-1), |
| 180522 | | ) else { |
| 180523 | | const operand_reg = registerAlias(operand_reg: { |
| 180524 | | if (operand_mcv.isRegister()) { |
| 180525 | | const operand_reg = operand_mcv.getReg().?; |
| 180526 | | if (operand_reg.isClass(.general_purpose)) break :operand_reg operand_reg; |
| 180527 | | } |
| 180528 | | break :operand_reg try self.copyToTmpRegister(operand_ty, operand_mcv); |
| 180529 | | }, abi_size); |
| 180530 | | const operand_lock = self.register_manager.lockReg(operand_reg); |
| 180531 | | defer if (operand_lock) |lock| self.register_manager.unlockReg(lock); |
| 180532 | | |
| 180533 | | if (mask_len < abi_size * 8) try self.asmRegisterImmediate( |
| 180534 | | .{ ._, .@"test" }, |
| 180535 | | operand_reg, |
| 180536 | | .u(mask), |
| 180537 | | ) else try self.asmRegisterRegister( |
| 180538 | | .{ ._, .@"test" }, |
| 180539 | | operand_reg, |
| 180540 | | operand_reg, |
| 180541 | | ); |
| 180542 | | } |
| 180543 | | break :result .{ .eflags = .nz }; |
| 180544 | | }, |
| 180545 | | .And => { |
| 180546 | | const tmp_reg = registerAlias( |
| 180547 | | try self.copyToTmpRegister(operand_ty, operand_mcv), |
| 180548 | | abi_size, |
| 180549 | | ); |
| 180550 | | const tmp_lock = self.register_manager.lockRegAssumeUnused(tmp_reg); |
| 180551 | | defer self.register_manager.unlockReg(tmp_lock); |
| 180552 | | |
| 180553 | | try self.asmRegister(.{ ._, .not }, tmp_reg); |
| 180554 | | if (mask_len < abi_size * 8) |
| 180555 | | try self.asmRegisterImmediate(.{ ._, .@"test" }, tmp_reg, .u(mask)) |
| 180556 | | else |
| 180557 | | try self.asmRegisterRegister(.{ ._, .@"test" }, tmp_reg, tmp_reg); |
| 180558 | | break :result .{ .eflags = .z }; |
| 180559 | | }, |
| 180560 | | else => return self.fail("TODO implement airReduce for {}", .{operand_ty.fmt(pt)}), |
| 180561 | | } |
| 180562 | | } |
| 180563 | | return self.fail("TODO implement airReduce for {}", .{operand_ty.fmt(pt)}); |
| 180564 | | }; |
| 180565 | | return self.finishAir(inst, result, .{ reduce.operand, .none, .none }); |
| 180566 | | } |
| 180567 | | |
| 180568 | 184562 | fn airAggregateInit(self: *CodeGen, inst: Air.Inst.Index) !void { |
| 180569 | 184563 | const pt = self.pt; |
| 180570 | 184564 | const zcu = pt.zcu; |
| ... | ... | @@ -181278,14 +185272,16 @@ const CallMCValues = struct { |
| 181278 | 185272 | } |
| 181279 | 185273 | }; |
| 181280 | 185274 | |
| 185275 | const win64_shadow_space = 8 * 4; |
| 185276 | |
| 181281 | 185277 | /// Caller must call `CallMCValues.deinit`. |
| 181282 | 185278 | fn resolveCallingConventionValues( |
| 181283 | | self: *CodeGen, |
| 185279 | cg: *CodeGen, |
| 181284 | 185280 | fn_info: InternPool.Key.FuncType, |
| 181285 | 185281 | var_args: []const Type, |
| 181286 | 185282 | stack_frame_base: FrameIndex, |
| 181287 | 185283 | ) !CallMCValues { |
| 181288 | | const pt = self.pt; |
| 185284 | const pt = cg.pt; |
| 181289 | 185285 | const zcu = pt.zcu; |
| 181290 | 185286 | const ip = &zcu.intern_pool; |
| 181291 | 185287 | const cc = fn_info.cc; |
| ... | ... | @@ -181294,7 +185290,7 @@ fn resolveCallingConventionValues( |
| 181294 | 185290 | param_types: [32][@sizeOf(Type)]u8 align(@alignOf(Type)), |
| 181295 | 185291 | }; |
| 181296 | 185292 | var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) = |
| 181297 | | std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa); |
| 185293 | std.heap.stackFallback(@sizeOf(ExpectedContents), cg.gpa); |
| 181298 | 185294 | const allocator = stack.get(); |
| 181299 | 185295 | |
| 181300 | 185296 | const param_types = try allocator.alloc(Type, fn_info.param_types.len + var_args.len); |
| ... | ... | @@ -181303,10 +185299,10 @@ fn resolveCallingConventionValues( |
| 181303 | 185299 | for (param_types[0..fn_info.param_types.len], fn_info.param_types.get(ip)) |*param_ty, arg_ty| |
| 181304 | 185300 | param_ty.* = .fromInterned(arg_ty); |
| 181305 | 185301 | for (param_types[fn_info.param_types.len..], var_args) |*param_ty, arg_ty| |
| 181306 | | param_ty.* = self.promoteVarArg(arg_ty); |
| 185302 | param_ty.* = cg.promoteVarArg(arg_ty); |
| 181307 | 185303 | |
| 181308 | 185304 | var result: CallMCValues = .{ |
| 181309 | | .args = try self.gpa.alloc(MCValue, param_types.len), |
| 185305 | .args = try cg.gpa.alloc(MCValue, param_types.len), |
| 181310 | 185306 | .air_arg_count = 0, |
| 181311 | 185307 | // These undefined values must be populated before returning from this function. |
| 181312 | 185308 | .return_value = undefined, |
| ... | ... | @@ -181316,29 +185312,30 @@ fn resolveCallingConventionValues( |
| 181316 | 185312 | .fp_count = 0, |
| 181317 | 185313 | .err_ret_trace_reg = .none, |
| 181318 | 185314 | }; |
| 181319 | | errdefer self.gpa.free(result.args); |
| 185315 | errdefer cg.gpa.free(result.args); |
| 181320 | 185316 | |
| 181321 | 185317 | const ret_ty: Type = .fromInterned(fn_info.return_type); |
| 181322 | 185318 | switch (cc) { |
| 181323 | 185319 | .naked => { |
| 181324 | 185320 | assert(result.args.len == 0); |
| 181325 | 185321 | result.return_value = .init(.unreach); |
| 181326 | | result.stack_align = switch (self.target.cpu.arch) { |
| 185322 | result.stack_align = switch (cg.target.cpu.arch) { |
| 181327 | 185323 | else => unreachable, |
| 181328 | 185324 | .x86 => .@"4", |
| 181329 | 185325 | .x86_64 => .@"8", |
| 181330 | 185326 | }; |
| 181331 | 185327 | }, |
| 181332 | 185328 | .x86_64_sysv, .x86_64_win => |cc_opts| { |
| 181333 | | var ret_int_reg_i: u32 = 0; |
| 181334 | | var ret_sse_reg_i: u32 = 0; |
| 181335 | | var param_int_reg_i: u32 = 0; |
| 181336 | | var param_sse_reg_i: u32 = 0; |
| 185329 | const param_gpr = abi.getCAbiIntParamRegs(cc); |
| 185330 | var param_gpr_index: u32 = 0; |
| 185331 | const param_sse = abi.getCAbiSseParamRegs(cc, cg.target); |
| 185332 | var param_sse_index: u32 = 0; |
| 185333 | |
| 181337 | 185334 | result.stack_align = .fromByteUnits(cc_opts.incoming_stack_alignment orelse 16); |
| 181338 | 185335 | |
| 181339 | 185336 | switch (cc) { |
| 181340 | 185337 | .x86_64_sysv => {}, |
| 181341 | | .x86_64_win => result.stack_byte_count += @intCast(4 * 8), |
| 185338 | .x86_64_win => result.stack_byte_count += @intCast(win64_shadow_space), |
| 181342 | 185339 | else => unreachable, |
| 181343 | 185340 | } |
| 181344 | 185341 | |
| ... | ... | @@ -181350,62 +185347,56 @@ fn resolveCallingConventionValues( |
| 181350 | 185347 | result.return_value = .init(.none); |
| 181351 | 185348 | } else { |
| 181352 | 185349 | var ret_tracking: [4]InstTracking = undefined; |
| 181353 | | var ret_tracking_i: usize = 0; |
| 185350 | var ret_tracking_len: u32 = 0; |
| 185351 | var ret_gpr = abi.getCAbiIntReturnRegs(cc); |
| 185352 | var ret_sse = abi.getCAbiSseReturnRegs(cc); |
| 185353 | var ret_x87 = abi.getCAbiX87ReturnRegs(cc); |
| 181354 | 185354 | |
| 181355 | 185355 | const classes = switch (cc) { |
| 181356 | | .x86_64_sysv => std.mem.sliceTo(&abi.classifySystemV(ret_ty, zcu, self.target, .ret), .none), |
| 181357 | | .x86_64_win => &.{abi.classifyWindows(ret_ty, zcu)}, |
| 185356 | .x86_64_sysv => std.mem.sliceTo(&abi.classifySystemV(ret_ty, zcu, cg.target, .ret), .none), |
| 185357 | .x86_64_win => &.{abi.classifyWindows(ret_ty, zcu, cg.target)}, |
| 181358 | 185358 | else => unreachable, |
| 181359 | 185359 | }; |
| 181360 | 185360 | for (classes) |class| switch (class) { |
| 181361 | 185361 | .integer => { |
| 181362 | | const ret_int_reg = registerAlias( |
| 181363 | | abi.getCAbiIntReturnRegs(cc)[ret_int_reg_i], |
| 185362 | ret_tracking[ret_tracking_len] = .init(.{ .register = registerAlias( |
| 185363 | ret_gpr[0], |
| 181364 | 185364 | @intCast(@min(ret_ty.abiSize(zcu), 8)), |
| 181365 | | ); |
| 181366 | | ret_int_reg_i += 1; |
| 181367 | | |
| 181368 | | ret_tracking[ret_tracking_i] = .init(.{ .register = ret_int_reg }); |
| 181369 | | ret_tracking_i += 1; |
| 185365 | ) }); |
| 185366 | ret_tracking_len += 1; |
| 185367 | ret_gpr = ret_gpr[1..]; |
| 181370 | 185368 | }, |
| 181371 | 185369 | .sse, .float, .float_combine, .win_i128 => { |
| 181372 | | const ret_sse_regs = abi.getCAbiSseReturnRegs(cc); |
| 181373 | 185370 | const abi_size: u32 = @intCast(ret_ty.abiSize(zcu)); |
| 181374 | | const reg_size = @min(abi_size, self.vectorSize(.float)); |
| 185371 | const reg_size = @min(abi_size, cg.vectorSize(.float)); |
| 181375 | 185372 | var byte_offset: u32 = 0; |
| 181376 | 185373 | while (byte_offset < abi_size) : (byte_offset += reg_size) { |
| 181377 | | const ret_sse_reg = registerAlias(ret_sse_regs[ret_sse_reg_i], reg_size); |
| 181378 | | ret_sse_reg_i += 1; |
| 185374 | const ret_sse_reg = registerAlias(ret_sse[0], reg_size); |
| 185375 | ret_sse = ret_sse[1..]; |
| 181379 | 185376 | |
| 181380 | | ret_tracking[ret_tracking_i] = .init(.{ .register = ret_sse_reg }); |
| 181381 | | ret_tracking_i += 1; |
| 185377 | ret_tracking[ret_tracking_len] = .init(.{ .register = ret_sse_reg }); |
| 185378 | ret_tracking_len += 1; |
| 181382 | 185379 | } |
| 181383 | 185380 | }, |
| 181384 | | .sseup => assert(ret_tracking[ret_tracking_i - 1].short.register.isClass(.sse)), |
| 185381 | .sseup => assert(ret_tracking[ret_tracking_len - 1].short.register.isClass(.sse)), |
| 181385 | 185382 | .x87 => { |
| 181386 | | ret_tracking[ret_tracking_i] = .init(.{ .register = abi.getCAbiX87ReturnRegs(cc)[0] }); |
| 181387 | | ret_tracking_i += 1; |
| 181388 | | }, |
| 181389 | | .x87up => assert(ret_tracking[ret_tracking_i - 1].short.register.isClass(.x87)), |
| 181390 | | .complex_x87 => { |
| 181391 | | ret_tracking[ret_tracking_i] = .init(.{ .register_pair = abi.getCAbiX87ReturnRegs(cc)[0..2].* }); |
| 181392 | | ret_tracking_i += 1; |
| 181393 | | }, |
| 181394 | | .memory => { |
| 181395 | | const ret_int_reg = abi.getCAbiIntReturnRegs(cc)[ret_int_reg_i].to64(); |
| 181396 | | ret_int_reg_i += 1; |
| 181397 | | const ret_indirect_reg = abi.getCAbiIntParamRegs(cc)[param_int_reg_i]; |
| 181398 | | param_int_reg_i += 1; |
| 181399 | | |
| 181400 | | ret_tracking[ret_tracking_i] = .{ |
| 181401 | | .short = .{ .indirect = .{ .reg = ret_int_reg } }, |
| 181402 | | .long = .{ .indirect = .{ .reg = ret_indirect_reg } }, |
| 185383 | ret_tracking[ret_tracking_len] = .init(.{ .register = ret_x87[0] }); |
| 185384 | ret_tracking_len += 1; |
| 185385 | ret_x87 = ret_x87[1..]; |
| 185386 | }, |
| 185387 | .x87up => assert(ret_tracking[ret_tracking_len - 1].short.register.isClass(.x87)), |
| 185388 | .memory, .integer_per_element => { |
| 185389 | ret_tracking[ret_tracking_len] = .{ |
| 185390 | .short = .{ .indirect = .{ .reg = ret_gpr[0].to64() } }, |
| 185391 | .long = .{ .indirect = .{ .reg = param_gpr[param_gpr_index].to64() } }, |
| 181403 | 185392 | }; |
| 181404 | | ret_tracking_i += 1; |
| 185393 | ret_tracking_len += 1; |
| 185394 | ret_gpr = ret_gpr[1..]; |
| 185395 | param_gpr_index += 1; |
| 181405 | 185396 | }, |
| 181406 | | .none, .integer_per_element => unreachable, |
| 185397 | .none => unreachable, |
| 181407 | 185398 | }; |
| 181408 | | result.return_value = switch (ret_tracking_i) { |
| 185399 | result.return_value = switch (ret_tracking_len) { |
| 181409 | 185400 | else => unreachable, |
| 181410 | 185401 | 1 => ret_tracking[0], |
| 181411 | 185402 | 2 => .init(.{ .register_pair = .{ |
| ... | ... | @@ -181427,97 +185418,96 @@ fn resolveCallingConventionValues( |
| 181427 | 185418 | } |
| 181428 | 185419 | |
| 181429 | 185420 | // Input params |
| 181430 | | for (param_types, result.args) |ty, *arg| { |
| 185421 | params: for (param_types, result.args) |ty, *arg| { |
| 181431 | 185422 | assert(ty.hasRuntimeBitsIgnoreComptime(zcu)); |
| 181432 | 185423 | result.air_arg_count += 1; |
| 181433 | 185424 | switch (cc) { |
| 181434 | 185425 | .x86_64_sysv => {}, |
| 181435 | 185426 | .x86_64_win => { |
| 181436 | | param_int_reg_i = @max(param_int_reg_i, param_sse_reg_i); |
| 181437 | | param_sse_reg_i = param_int_reg_i; |
| 185427 | param_gpr_index = @max(param_gpr_index, param_sse_index); |
| 185428 | param_sse_index = param_gpr_index; |
| 181438 | 185429 | }, |
| 181439 | 185430 | else => unreachable, |
| 181440 | 185431 | } |
| 181441 | 185432 | |
| 181442 | 185433 | var arg_mcv: [4]MCValue = undefined; |
| 181443 | | var arg_mcv_i: usize = 0; |
| 185434 | var arg_mcv_len: u32 = 0; |
| 181444 | 185435 | |
| 181445 | 185436 | const classes = switch (cc) { |
| 181446 | | .x86_64_sysv => std.mem.sliceTo(&abi.classifySystemV(ty, zcu, self.target, .arg), .none), |
| 181447 | | .x86_64_win => &.{abi.classifyWindows(ty, zcu)}, |
| 185437 | .x86_64_sysv => std.mem.sliceTo(&abi.classifySystemV(ty, zcu, cg.target, .arg), .none), |
| 185438 | .x86_64_win => &.{abi.classifyWindows(ty, zcu, cg.target)}, |
| 181448 | 185439 | else => unreachable, |
| 181449 | 185440 | }; |
| 181450 | 185441 | classes: for (classes) |class| switch (class) { |
| 181451 | 185442 | .integer => { |
| 181452 | | const param_int_regs = abi.getCAbiIntParamRegs(cc); |
| 181453 | | if (param_int_reg_i >= param_int_regs.len) break; |
| 181454 | | |
| 181455 | | const param_int_reg = |
| 181456 | | registerAlias(param_int_regs[param_int_reg_i], @intCast(@min(ty.abiSize(zcu), 8))); |
| 181457 | | param_int_reg_i += 1; |
| 181458 | | |
| 181459 | | arg_mcv[arg_mcv_i] = .{ .register = param_int_reg }; |
| 181460 | | arg_mcv_i += 1; |
| 185443 | if (param_gpr_index >= param_gpr.len) break; |
| 185444 | arg_mcv[arg_mcv_len] = .{ |
| 185445 | .register = registerAlias(param_gpr[param_gpr_index], @intCast(@min(ty.abiSize(zcu), 8))), |
| 185446 | }; |
| 185447 | arg_mcv_len += 1; |
| 185448 | param_gpr_index += 1; |
| 181461 | 185449 | }, |
| 181462 | 185450 | .sse, .float, .float_combine => { |
| 181463 | | const param_sse_regs = abi.getCAbiSseParamRegs(cc, self.target); |
| 181464 | 185451 | const abi_size: u32 = @intCast(ty.abiSize(zcu)); |
| 181465 | | const reg_size = @min(abi_size, self.vectorSize(.float)); |
| 185452 | const reg_size = @min(abi_size, cg.vectorSize(.float)); |
| 181466 | 185453 | var byte_offset: u32 = 0; |
| 181467 | 185454 | while (byte_offset < abi_size) : (byte_offset += reg_size) { |
| 181468 | | if (param_sse_reg_i >= param_sse_regs.len) break :classes; |
| 185455 | if (param_sse_index >= param_sse.len) break :classes; |
| 181469 | 185456 | |
| 181470 | | const param_sse_reg = registerAlias(param_sse_regs[param_sse_reg_i], reg_size); |
| 181471 | | param_sse_reg_i += 1; |
| 185457 | const param_sse_reg = registerAlias(param_sse[param_sse_index], reg_size); |
| 185458 | param_sse_index += 1; |
| 181472 | 185459 | |
| 181473 | | arg_mcv[arg_mcv_i] = .{ .register = param_sse_reg }; |
| 181474 | | arg_mcv_i += 1; |
| 185460 | arg_mcv[arg_mcv_len] = .{ .register = param_sse_reg }; |
| 185461 | arg_mcv_len += 1; |
| 181475 | 185462 | } |
| 181476 | 185463 | }, |
| 181477 | | .sseup => assert(arg_mcv[arg_mcv_i - 1].register.isClass(.sse)), |
| 181478 | | .x87, .x87up, .complex_x87, .memory, .win_i128 => switch (cc) { |
| 185464 | .sseup => assert(arg_mcv[arg_mcv_len - 1].register.isClass(.sse)), |
| 185465 | .x87, .x87up, .memory, .win_i128 => switch (cc) { |
| 181479 | 185466 | .x86_64_sysv => switch (class) { |
| 181480 | | .x87, .x87up, .complex_x87, .memory => break, |
| 185467 | .x87, .x87up, .memory => break, |
| 181481 | 185468 | else => unreachable, |
| 181482 | 185469 | }, |
| 181483 | 185470 | .x86_64_win => if (ty.abiSize(zcu) > 8) { |
| 181484 | | const param_int_reg = abi.getCAbiIntParamRegs(cc)[param_int_reg_i].to64(); |
| 181485 | | param_int_reg_i += 1; |
| 181486 | | |
| 181487 | | arg_mcv[arg_mcv_i] = .{ .indirect = .{ .reg = param_int_reg } }; |
| 181488 | | arg_mcv_i += 1; |
| 185471 | if (param_gpr_index < param_gpr.len) { |
| 185472 | arg_mcv[arg_mcv_len] = .{ .indirect = .{ .reg = param_gpr[param_gpr_index].to64() } }; |
| 185473 | arg_mcv_len += 1; |
| 185474 | param_gpr_index += 1; |
| 185475 | } else { |
| 185476 | assert(arg_mcv_len == 0); |
| 185477 | const param_align = Type.usize.abiAlignment(zcu); |
| 185478 | result.stack_byte_count = @intCast(param_align.forward(result.stack_byte_count)); |
| 185479 | result.stack_align = result.stack_align.max(param_align); |
| 185480 | arg.* = .{ .indirect_load_frame = .{ |
| 185481 | .index = stack_frame_base, |
| 185482 | .off = result.stack_byte_count, |
| 185483 | } }; |
| 185484 | result.stack_byte_count += @intCast(Type.usize.abiSize(zcu)); |
| 185485 | continue :params; |
| 185486 | } |
| 181489 | 185487 | } else break, |
| 181490 | 185488 | else => unreachable, |
| 181491 | 185489 | }, |
| 181492 | 185490 | .none => unreachable, |
| 181493 | 185491 | .integer_per_element => { |
| 181494 | | const param_int_regs_len: u32 = |
| 181495 | | @intCast(abi.getCAbiIntParamRegs(cc).len); |
| 181496 | | const remaining_param_int_regs: u3 = |
| 181497 | | @intCast(param_int_regs_len - param_int_reg_i); |
| 181498 | | param_int_reg_i = param_int_regs_len; |
| 185492 | const remaining_param_gpr_len: u3 = @intCast(param_gpr.len - param_gpr_index); |
| 185493 | param_gpr_index = @intCast(param_gpr.len); |
| 181499 | 185494 | |
| 181500 | 185495 | const frame_elem_align = 8; |
| 181501 | | const frame_elems_len = ty.vectorLen(zcu) - remaining_param_int_regs; |
| 181502 | | const frame_elem_size = std.mem.alignForward( |
| 181503 | | u64, |
| 181504 | | ty.childType(zcu).abiSize(zcu), |
| 181505 | | frame_elem_align, |
| 181506 | | ); |
| 185496 | const frame_elems_len = ty.vectorLen(zcu) - remaining_param_gpr_len; |
| 185497 | const frame_elem_size = std.mem.alignForward(u64, ty.childType(zcu).abiSize(zcu), frame_elem_align); |
| 181507 | 185498 | const frame_size: u31 = @intCast(frame_elems_len * frame_elem_size); |
| 181508 | 185499 | |
| 181509 | | result.stack_byte_count = |
| 181510 | | std.mem.alignForward(u31, result.stack_byte_count, frame_elem_align); |
| 181511 | | arg_mcv[arg_mcv_i] = .{ .elementwise_args = .{ |
| 181512 | | .regs = remaining_param_int_regs, |
| 185500 | result.stack_byte_count = std.mem.alignForward(u31, result.stack_byte_count, frame_elem_align); |
| 185501 | arg_mcv[arg_mcv_len] = .{ .elementwise_args = .{ |
| 185502 | .regs = remaining_param_gpr_len, |
| 181513 | 185503 | .frame_off = @intCast(result.stack_byte_count), |
| 181514 | 185504 | .frame_index = stack_frame_base, |
| 181515 | 185505 | } }; |
| 181516 | | arg_mcv_i += 1; |
| 185506 | arg_mcv_len += 1; |
| 181517 | 185507 | result.stack_byte_count += frame_size; |
| 181518 | 185508 | }, |
| 181519 | 185509 | } else { |
| 181520 | | arg.* = switch (arg_mcv_i) { |
| 185510 | arg.* = switch (arg_mcv_len) { |
| 181521 | 185511 | else => unreachable, |
| 181522 | 185512 | 1 => arg_mcv[0], |
| 181523 | 185513 | 2 => .{ .register_pair = .{ |
| ... | ... | @@ -181548,17 +185538,17 @@ fn resolveCallingConventionValues( |
| 181548 | 185538 | } }; |
| 181549 | 185539 | result.stack_byte_count += @intCast(ty.abiSize(zcu)); |
| 181550 | 185540 | } |
| 181551 | | assert(param_int_reg_i <= 6); |
| 181552 | | result.gp_count = param_int_reg_i; |
| 181553 | | assert(param_sse_reg_i <= 16); |
| 181554 | | result.fp_count = param_sse_reg_i; |
| 185541 | assert(param_gpr_index <= 6); |
| 185542 | result.gp_count = param_gpr_index; |
| 185543 | assert(param_sse_index <= 16); |
| 185544 | result.fp_count = param_sse_index; |
| 181555 | 185545 | }, |
| 181556 | 185546 | .auto => { |
| 181557 | | result.stack_align = abi.zigcc.stack_align orelse .fromByteUnits(self.vectorSize(.float)); |
| 185547 | result.stack_align = abi.zigcc.stack_align orelse .fromByteUnits(cg.vectorSize(.float)); |
| 181558 | 185548 | |
| 181559 | 185549 | var param_gpr = abi.getCAbiIntParamRegs(cc); |
| 181560 | 185550 | var param_x87 = abi.getCAbiX87ParamRegs(cc); |
| 181561 | | var param_sse = abi.getCAbiSseParamRegs(cc, self.target); |
| 185551 | var param_sse = abi.getCAbiSseParamRegs(cc, cg.target); |
| 181562 | 185552 | |
| 181563 | 185553 | if (zcu.comp.config.any_error_tracing) { |
| 181564 | 185554 | result.err_ret_trace_reg = param_gpr[param_gpr.len - 1]; |
| ... | ... | @@ -181573,8 +185563,8 @@ fn resolveCallingConventionValues( |
| 181573 | 185563 | else return_value: { |
| 181574 | 185564 | const ret_gpr = abi.getCAbiIntReturnRegs(cc); |
| 181575 | 185565 | const ret_size: u31 = @intCast(ret_ty.abiSize(zcu)); |
| 181576 | | if (abi.zigcc.return_in_regs) switch (self.regClassForType(ret_ty)) { |
| 181577 | | .general_purpose, .gphi => if (ret_size <= @as(u4, switch (self.target.cpu.arch) { |
| 185566 | if (abi.zigcc.return_in_regs) switch (cg.regClassForType(ret_ty)) { |
| 185567 | .general_purpose, .gphi => if (ret_size <= @as(u4, switch (cg.target.cpu.arch) { |
| 181578 | 185568 | else => unreachable, |
| 181579 | 185569 | .x86 => 4, |
| 181580 | 185570 | .x86_64 => 8, |
| ... | ... | @@ -181584,7 +185574,7 @@ fn resolveCallingConventionValues( |
| 181584 | 185574 | break :return_value .init(.{ .register_pair = ret_gpr[0..2].* }), |
| 181585 | 185575 | .segment, .mmx, .ip, .cr, .dr => unreachable, |
| 181586 | 185576 | .x87 => if (ret_size <= 16) break :return_value .init(.{ .register = .st0 }), |
| 181587 | | .sse => if (ret_size <= self.vectorSize(.float)) break :return_value .init(.{ |
| 185577 | .sse => if (ret_size <= cg.vectorSize(.float)) break :return_value .init(.{ |
| 181588 | 185578 | .register = registerAlias(abi.getCAbiSseReturnRegs(cc)[0], @max(ret_size, 16)), |
| 181589 | 185579 | }), |
| 181590 | 185580 | }; |
| ... | ... | @@ -181604,8 +185594,8 @@ fn resolveCallingConventionValues( |
| 181604 | 185594 | } |
| 181605 | 185595 | result.air_arg_count += 1; |
| 181606 | 185596 | const param_size: u31 = @intCast(param_ty.abiSize(zcu)); |
| 181607 | | if (abi.zigcc.params_in_regs) switch (self.regClassForType(param_ty)) { |
| 181608 | | .general_purpose, .gphi => if (param_gpr.len >= 1 and param_size <= @as(u4, switch (self.target.cpu.arch) { |
| 185597 | if (abi.zigcc.params_in_regs) switch (cg.regClassForType(param_ty)) { |
| 185598 | .general_purpose, .gphi => if (param_gpr.len >= 1 and param_size <= @as(u4, switch (cg.target.cpu.arch) { |
| 181609 | 185599 | else => unreachable, |
| 181610 | 185600 | .x86 => 4, |
| 181611 | 185601 | .x86_64 => 8, |
| ... | ... | @@ -181624,7 +185614,7 @@ fn resolveCallingConventionValues( |
| 181624 | 185614 | param_x87 = param_x87[1..]; |
| 181625 | 185615 | continue; |
| 181626 | 185616 | }, |
| 181627 | | .sse => if (param_sse.len >= 1 and param_size <= self.vectorSize(.float)) { |
| 185617 | .sse => if (param_sse.len >= 1 and param_size <= cg.vectorSize(.float)) { |
| 181628 | 185618 | arg.* = .{ |
| 181629 | 185619 | .register = registerAlias(param_sse[0], @max(param_size, 16)), |
| 181630 | 185620 | }; |
| ... | ... | @@ -181642,27 +185632,27 @@ fn resolveCallingConventionValues( |
| 181642 | 185632 | result.stack_byte_count += param_size; |
| 181643 | 185633 | } |
| 181644 | 185634 | }, |
| 181645 | | else => return self.fail("TODO implement function parameters and return values for {} on x86_64", .{cc}), |
| 185635 | else => return cg.fail("TODO implement function parameters and return values for {} on x86_64", .{cc}), |
| 181646 | 185636 | } |
| 181647 | 185637 | |
| 181648 | 185638 | result.stack_byte_count = @intCast(result.stack_align.forward(result.stack_byte_count)); |
| 181649 | 185639 | return result; |
| 181650 | 185640 | } |
| 181651 | 185641 | |
| 181652 | | fn fail(self: *CodeGen, comptime format: []const u8, args: anytype) error{ OutOfMemory, CodegenFail } { |
| 185642 | fn fail(cg: *CodeGen, comptime format: []const u8, args: anytype) error{ OutOfMemory, CodegenFail } { |
| 181653 | 185643 | @branchHint(.cold); |
| 181654 | | const zcu = self.pt.zcu; |
| 181655 | | switch (self.owner) { |
| 185644 | const zcu = cg.pt.zcu; |
| 185645 | switch (cg.owner) { |
| 181656 | 185646 | .nav_index => |i| return zcu.codegenFail(i, format, args), |
| 181657 | 185647 | .lazy_sym => |s| return zcu.codegenFailType(s.ty, format, args), |
| 181658 | 185648 | } |
| 181659 | 185649 | return error.CodegenFail; |
| 181660 | 185650 | } |
| 181661 | 185651 | |
| 181662 | | fn failMsg(self: *CodeGen, msg: *Zcu.ErrorMsg) error{ OutOfMemory, CodegenFail } { |
| 185652 | fn failMsg(cg: *CodeGen, msg: *Zcu.ErrorMsg) error{ OutOfMemory, CodegenFail } { |
| 181663 | 185653 | @branchHint(.cold); |
| 181664 | | const zcu = self.pt.zcu; |
| 181665 | | switch (self.owner) { |
| 185654 | const zcu = cg.pt.zcu; |
| 185655 | switch (cg.owner) { |
| 181666 | 185656 | .nav_index => |i| return zcu.codegenFailMsg(i, msg), |
| 181667 | 185657 | .lazy_sym => |s| return zcu.codegenFailTypeMsg(s.ty, msg), |
| 181668 | 185658 | } |
| ... | ... | @@ -182127,6 +186117,7 @@ const Temp = struct { |
| 182127 | 186117 | .register_mask, |
| 182128 | 186118 | .memory, |
| 182129 | 186119 | .indirect, |
| 186120 | .indirect_load_frame, |
| 182130 | 186121 | .lea_frame, |
| 182131 | 186122 | .load_nav, |
| 182132 | 186123 | .lea_nav, |
| ... | ... | @@ -182200,7 +186191,7 @@ const Temp = struct { |
| 182200 | 186191 | switch (temp_tracking.short) { |
| 182201 | 186192 | else => {}, |
| 182202 | 186193 | .register => |reg| { |
| 182203 | | try cg.freeValue(temp_tracking.long); |
| 186194 | try cg.freeValue(temp_tracking.long, .{}); |
| 182204 | 186195 | temp_tracking.* = .init(.{ .register_offset = .{ |
| 182205 | 186196 | .reg = reg, |
| 182206 | 186197 | .off = off, |
| ... | ... | @@ -182208,7 +186199,7 @@ const Temp = struct { |
| 182208 | 186199 | return; |
| 182209 | 186200 | }, |
| 182210 | 186201 | .register_offset => |reg_off| { |
| 182211 | | try cg.freeValue(temp_tracking.long); |
| 186202 | try cg.freeValue(temp_tracking.long, .{}); |
| 182212 | 186203 | temp_tracking.* = .init(.{ .register_offset = .{ |
| 182213 | 186204 | .reg = reg_off.reg, |
| 182214 | 186205 | .off = reg_off.off + off, |
| ... | ... | @@ -182598,6 +186589,7 @@ const Temp = struct { |
| 182598 | 186589 | .register_quadruple, |
| 182599 | 186590 | .register_overflow, |
| 182600 | 186591 | .register_mask, |
| 186592 | .indirect_load_frame, |
| 182601 | 186593 | .elementwise_args, |
| 182602 | 186594 | .reserved_frame, |
| 182603 | 186595 | .air_ref, |
| ... | ... | @@ -182675,7 +186667,7 @@ const Temp = struct { |
| 182675 | 186667 | .register_quadruple, |
| 182676 | 186668 | => |val_regs| for (val_regs) |val_reg| { |
| 182677 | 186669 | try ptr.loadReg(val_ty, val_reg, cg); |
| 182678 | | try ptr.toOffset(@divExact(val_reg.bitSize(), 8), cg); |
| 186670 | try ptr.toOffset(@intCast(@divExact(val_reg.size().bitSize(cg.target), 8)), cg); |
| 182679 | 186671 | while (try ptr.toLea(cg)) {} |
| 182680 | 186672 | }, |
| 182681 | 186673 | .register_offset => |val_reg_off| switch (val_reg_off.off) { |
| ... | ... | @@ -182820,7 +186812,7 @@ const Temp = struct { |
| 182820 | 186812 | var disp = opts.disp; |
| 182821 | 186813 | for (val_regs) |val_reg| { |
| 182822 | 186814 | try src.readReg(disp, val_ty, val_reg, cg); |
| 182823 | | disp += @divExact(val_reg.bitSize(), 8); |
| 186815 | disp += @intCast(@divExact(val_reg.size().bitSize(cg.target), 8)); |
| 182824 | 186816 | } |
| 182825 | 186817 | }, |
| 182826 | 186818 | .register_offset => |val_reg_off| switch (val_reg_off.off) { |
| ... | ... | @@ -182950,25 +186942,59 @@ const Temp = struct { |
| 182950 | 186942 | while (try ptr.toRegClass(false, .general_purpose, cg)) {}, |
| 182951 | 186943 | } |
| 182952 | 186944 | try strat.read(cg, dst_reg, try ptr.tracking(cg).short.deref().mem(cg, .{ |
| 182953 | | .size = .fromBitSize(@min(8 * dst_ty.abiSize(cg.pt.zcu), dst_reg.bitSize())), |
| 186945 | .size = cg.memSize(dst_ty), |
| 182954 | 186946 | })); |
| 182955 | 186947 | } |
| 182956 | 186948 | |
| 182957 | 186949 | fn storeRegs(ptr: *Temp, src_ty: Type, src_regs: []const Register, cg: *CodeGen) InnerError!void { |
| 186950 | const zcu = cg.pt.zcu; |
| 186951 | const ip = &zcu.intern_pool; |
| 182958 | 186952 | var part_disp: u31 = 0; |
| 182959 | 186953 | var deferred_disp: u31 = 0; |
| 182960 | 186954 | var src_abi_size: u32 = @intCast(src_ty.abiSize(cg.pt.zcu)); |
| 182961 | | for (src_regs) |src_reg| { |
| 186955 | for (src_regs, 0..) |src_reg, part_index| { |
| 186956 | const part_ty: Type = if (src_regs.len == 1) |
| 186957 | src_ty |
| 186958 | else if (cg.intInfo(src_ty)) |int_info| part_ty: { |
| 186959 | assert(src_regs.len == std.math.divCeil(u16, int_info.bits, 64) catch unreachable); |
| 186960 | break :part_ty .u64; |
| 186961 | } else part_ty: switch (ip.indexToKey(src_ty.toIntern())) { |
| 186962 | else => std.debug.panic("{s}: {}\n", .{ @src().fn_name, src_ty.fmt(cg.pt) }), |
| 186963 | .ptr_type => |ptr_info| { |
| 186964 | assert(ptr_info.flags.size == .slice); |
| 186965 | assert(src_regs.len == 2); |
| 186966 | break :part_ty .usize; |
| 186967 | }, |
| 186968 | .array_type => { |
| 186969 | assert(src_regs.len - part_index == std.math.divCeil(u32, src_abi_size, 8) catch unreachable); |
| 186970 | break :part_ty try cg.pt.intType(.unsigned, @as(u16, 8) * @min(src_abi_size, 8)); |
| 186971 | }, |
| 186972 | .opt_type => |opt_child| switch (ip.indexToKey(opt_child)) { |
| 186973 | else => std.debug.panic("{s}: {}\n", .{ @src().fn_name, src_ty.fmt(cg.pt) }), |
| 186974 | .ptr_type => |ptr_info| { |
| 186975 | assert(ptr_info.flags.size == .slice); |
| 186976 | assert(src_regs.len == 2); |
| 186977 | break :part_ty .usize; |
| 186978 | }, |
| 186979 | }, |
| 186980 | .struct_type => { |
| 186981 | assert(src_regs.len - part_index == std.math.divCeil(u32, src_abi_size, 8) catch unreachable); |
| 186982 | break :part_ty .u64; |
| 186983 | }, |
| 186984 | }; |
| 186985 | const part_size: u31 = @intCast(part_ty.abiSize(zcu)); |
| 182962 | 186986 | const src_rc = src_reg.class(); |
| 182963 | | const part_bit_size = @min(8 * src_abi_size, src_reg.bitSize()); |
| 182964 | | const part_size = @divExact(part_bit_size, 8); |
| 186987 | const part_bit_size = switch (src_rc) { |
| 186988 | else => 8 * part_size, |
| 186989 | .x87 => part_ty.bitSize(zcu), |
| 186990 | }; |
| 182965 | 186991 | if (src_rc == .x87 or std.math.isPowerOfTwo(part_size)) { |
| 182966 | 186992 | // hack around linker relocation bugs |
| 182967 | 186993 | switch (ptr.tracking(cg).short) { |
| 182968 | 186994 | else => {}, |
| 182969 | 186995 | .lea_nav, .lea_uav, .lea_lazy_sym => while (try ptr.toRegClass(false, .general_purpose, cg)) {}, |
| 182970 | 186996 | } |
| 182971 | | const strat = try cg.moveStrategy(src_ty, src_rc, false); |
| 186997 | const strat = try cg.moveStrategy(part_ty, src_rc, false); |
| 182972 | 186998 | try strat.write(cg, try ptr.tracking(cg).short.deref().mem(cg, .{ |
| 182973 | 186999 | .size = .fromBitSize(part_bit_size), |
| 182974 | 187000 | .disp = part_disp, |
| ... | ... | @@ -182979,7 +187005,7 @@ const Temp = struct { |
| 182979 | 187005 | .size = frame_size, |
| 182980 | 187006 | .alignment = .fromNonzeroByteUnits(frame_size), |
| 182981 | 187007 | })); |
| 182982 | | const strat = try cg.moveStrategy(src_ty, src_rc, true); |
| 187008 | const strat = try cg.moveStrategy(part_ty, src_rc, true); |
| 182983 | 187009 | try strat.write(cg, .{ |
| 182984 | 187010 | .base = .{ .frame = frame_index }, |
| 182985 | 187011 | .mod = .{ .rm = .{ .size = .fromSize(frame_size) } }, |
| ... | ... | @@ -183001,7 +187027,7 @@ const Temp = struct { |
| 183001 | 187027 | fn readReg(src: Temp, disp: i32, dst_ty: Type, dst_reg: Register, cg: *CodeGen) InnerError!void { |
| 183002 | 187028 | const strat = try cg.moveStrategy(dst_ty, dst_reg.class(), false); |
| 183003 | 187029 | try strat.read(cg, dst_reg, try src.tracking(cg).short.mem(cg, .{ |
| 183004 | | .size = .fromBitSize(@min(8 * dst_ty.abiSize(cg.pt.zcu), dst_reg.bitSize())), |
| 187030 | .size = cg.memSize(dst_ty), |
| 183005 | 187031 | .disp = disp, |
| 183006 | 187032 | })); |
| 183007 | 187033 | } |
| ... | ... | @@ -183012,7 +187038,7 @@ const Temp = struct { |
| 183012 | 187038 | if (src_rc == .x87 or std.math.isPowerOfTwo(src_abi_size)) { |
| 183013 | 187039 | const strat = try cg.moveStrategy(src_ty, src_rc, false); |
| 183014 | 187040 | try strat.write(cg, try dst.tracking(cg).short.mem(cg, .{ |
| 183015 | | .size = .fromBitSize(@min(8 * src_abi_size, src_reg.bitSize())), |
| 187041 | .size = cg.memSize(src_ty), |
| 183016 | 187042 | .disp = disp, |
| 183017 | 187043 | }), registerAlias(src_reg, src_abi_size)); |
| 183018 | 187044 | } else { |
| ... | ... | @@ -183050,14 +187076,14 @@ const Temp = struct { |
| 183050 | 187076 | .integer, .memory, .float, .float_combine => class_index + 1, |
| 183051 | 187077 | .sse => std.mem.indexOfNonePos(abi.Class, classes, class_index + 1, &.{.sseup}) orelse classes.len, |
| 183052 | 187078 | .x87 => std.mem.indexOfNonePos(abi.Class, classes, class_index + 1, &.{.x87up}) orelse classes.len, |
| 183053 | | .sseup, .x87up, .complex_x87, .none, .win_i128, .integer_per_element => unreachable, |
| 187079 | .sseup, .x87up, .none, .win_i128, .integer_per_element => unreachable, |
| 183054 | 187080 | }); |
| 183055 | 187081 | const part_size = switch (class) { |
| 183056 | 187082 | .integer, .sse, .memory => @min(8 * @as(u7, next_class_index - class_index), remaining_abi_size), |
| 183057 | 187083 | .x87 => 16, |
| 183058 | 187084 | .float => 4, |
| 183059 | 187085 | .float_combine => 8, |
| 183060 | | .sseup, .x87up, .complex_x87, .none, .win_i128, .integer_per_element => unreachable, |
| 187086 | .sseup, .x87up, .none, .win_i128, .integer_per_element => unreachable, |
| 183061 | 187087 | }; |
| 183062 | 187088 | try dst.writeReg(part_disp, switch (class) { |
| 183063 | 187089 | .integer => .u64, |
| ... | ... | @@ -183070,7 +187096,7 @@ const Temp = struct { |
| 183070 | 187096 | .x87 => .f80, |
| 183071 | 187097 | .float => .f32, |
| 183072 | 187098 | .float_combine => .vector_2_f32, |
| 183073 | | .sseup, .x87up, .complex_x87, .memory, .none, .win_i128, .integer_per_element => unreachable, |
| 187099 | .sseup, .x87up, .memory, .none, .win_i128, .integer_per_element => unreachable, |
| 183074 | 187100 | }, src_reg, cg); |
| 183075 | 187101 | part_disp += part_size; |
| 183076 | 187102 | remaining_abi_size -= part_size; |
| ... | ... | @@ -186718,12 +190744,12 @@ const Temp = struct { |
| 186718 | 190744 | .{ ._, ._, .div, .src1q, ._, ._, ._ }, |
| 186719 | 190745 | } }, |
| 186720 | 190746 | }, .{ |
| 186721 | | .required_features = .{ .@"64bit", null, null, null }, |
| 190747 | .required_cc_abi = .sysv64, |
| 186722 | 190748 | .src_constraints = .{ .{ .signed_int = .xword }, .{ .signed_int = .xword }, .any }, |
| 186723 | 190749 | .patterns = &.{ |
| 186724 | 190750 | .{ .src = .{ |
| 186725 | | .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 0 } }, |
| 186726 | | .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 2 } }, |
| 190751 | .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 190752 | .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 2, .at = 2 } }, |
| 186727 | 190753 | .none, |
| 186728 | 190754 | } }, |
| 186729 | 190755 | }, |
| ... | ... | @@ -186741,18 +190767,46 @@ const Temp = struct { |
| 186741 | 190767 | .unused, |
| 186742 | 190768 | .unused, |
| 186743 | 190769 | }, |
| 186744 | | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .at = 0 } }, .unused }, |
| 190770 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 186745 | 190771 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 186746 | 190772 | .each = .{ .once = &.{ |
| 186747 | 190773 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 186748 | 190774 | } }, |
| 186749 | 190775 | }, .{ |
| 186750 | | .required_features = .{ .@"64bit", null, null, null }, |
| 190776 | .required_cc_abi = .win64, |
| 190777 | .required_features = .{ .sse, null, null, null }, |
| 190778 | .src_constraints = .{ .{ .signed_int = .xword }, .{ .signed_int = .xword }, .any }, |
| 190779 | .patterns = &.{ |
| 190780 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 190781 | }, |
| 190782 | .call_frame = .{ .alignment = .@"16" }, |
| 190783 | .extra_temps = .{ |
| 190784 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 190785 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 190786 | .{ .type = .usize, .kind = .{ .extern_func = "__divti3" } }, |
| 190787 | .unused, |
| 190788 | .unused, |
| 190789 | .unused, |
| 190790 | .unused, |
| 190791 | .unused, |
| 190792 | .unused, |
| 190793 | .unused, |
| 190794 | .unused, |
| 190795 | }, |
| 190796 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 190797 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 190798 | .each = .{ .once = &.{ |
| 190799 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 190800 | .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ }, |
| 190801 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 190802 | } }, |
| 190803 | }, .{ |
| 190804 | .required_cc_abi = .sysv64, |
| 186751 | 190805 | .src_constraints = .{ .{ .unsigned_int = .xword }, .{ .unsigned_int = .xword }, .any }, |
| 186752 | 190806 | .patterns = &.{ |
| 186753 | 190807 | .{ .src = .{ |
| 186754 | | .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 0 } }, |
| 186755 | | .{ .to_param_gpr_pair = .{ .cc = .ccc, .at = 2 } }, |
| 190808 | .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, |
| 190809 | .{ .to_param_gpr_pair = .{ .cc = .ccc, .after = 2, .at = 2 } }, |
| 186756 | 190810 | .none, |
| 186757 | 190811 | } }, |
| 186758 | 190812 | }, |
| ... | ... | @@ -186770,11 +190824,39 @@ const Temp = struct { |
| 186770 | 190824 | .unused, |
| 186771 | 190825 | .unused, |
| 186772 | 190826 | }, |
| 186773 | | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .at = 0 } }, .unused }, |
| 190827 | .dst_temps = .{ .{ .ret_gpr_pair = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 186774 | 190828 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 186775 | 190829 | .each = .{ .once = &.{ |
| 186776 | 190830 | .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, |
| 186777 | 190831 | } }, |
| 190832 | }, .{ |
| 190833 | .required_cc_abi = .win64, |
| 190834 | .required_features = .{ .sse, null, null, null }, |
| 190835 | .src_constraints = .{ .{ .unsigned_int = .xword }, .{ .unsigned_int = .xword }, .any }, |
| 190836 | .patterns = &.{ |
| 190837 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 190838 | }, |
| 190839 | .call_frame = .{ .alignment = .@"16" }, |
| 190840 | .extra_temps = .{ |
| 190841 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 190842 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 190843 | .{ .type = .usize, .kind = .{ .extern_func = "__udivti3" } }, |
| 190844 | .unused, |
| 190845 | .unused, |
| 190846 | .unused, |
| 190847 | .unused, |
| 190848 | .unused, |
| 190849 | .unused, |
| 190850 | .unused, |
| 190851 | .unused, |
| 190852 | }, |
| 190853 | .dst_temps = .{ .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } }, .unused }, |
| 190854 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 190855 | .each = .{ .once = &.{ |
| 190856 | .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ }, |
| 190857 | .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ }, |
| 190858 | .{ ._, ._, .call, .tmp2d, ._, ._, ._ }, |
| 190859 | } }, |
| 186778 | 190860 | }, .{ |
| 186779 | 190861 | .required_features = .{ .@"64bit", null, null, null }, |
| 186780 | 190862 | .src_constraints = .{ |
| ... | ... | @@ -186787,10 +190869,10 @@ const Temp = struct { |
| 186787 | 190869 | }, |
| 186788 | 190870 | .call_frame = .{ .alignment = .@"16" }, |
| 186789 | 190871 | .extra_temps = .{ |
| 186790 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 186791 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 186792 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 186793 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 190872 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 190873 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 190874 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 190875 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 186794 | 190876 | .{ .type = .usize, .kind = .{ .extern_func = "__divei4" } }, |
| 186795 | 190877 | .unused, |
| 186796 | 190878 | .unused, |
| ... | ... | @@ -186820,10 +190902,10 @@ const Temp = struct { |
| 186820 | 190902 | }, |
| 186821 | 190903 | .call_frame = .{ .alignment = .@"16" }, |
| 186822 | 190904 | .extra_temps = .{ |
| 186823 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 186824 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 186825 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 186826 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 190905 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 190906 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 190907 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 190908 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 186827 | 190909 | .{ .type = .usize, .kind = .{ .extern_func = "__udivei4" } }, |
| 186828 | 190910 | .unused, |
| 186829 | 190911 | .unused, |
| ... | ... | @@ -187172,7 +191254,7 @@ const Temp = struct { |
| 187172 | 191254 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 187173 | 191255 | } }, |
| 187174 | 191256 | }, .{ |
| 187175 | | .required_features = .{ .@"64bit", null, null, null }, |
| 191257 | .required_cc_abi = .sysv64, |
| 187176 | 191258 | .src_constraints = .{ |
| 187177 | 191259 | .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, |
| 187178 | 191260 | .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, |
| ... | ... | @@ -187184,12 +191266,12 @@ const Temp = struct { |
| 187184 | 191266 | .call_frame = .{ .alignment = .@"16" }, |
| 187185 | 191267 | .extra_temps = .{ |
| 187186 | 191268 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 187187 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 187188 | | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 187189 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 187190 | | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 191269 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191270 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 191271 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 191272 | .{ .type = .i64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 187191 | 191273 | .{ .type = .usize, .kind = .{ .extern_func = "__divti3" } }, |
| 187192 | | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 191274 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 187193 | 191275 | .unused, |
| 187194 | 191276 | .unused, |
| 187195 | 191277 | .unused, |
| ... | ... | @@ -187210,7 +191292,115 @@ const Temp = struct { |
| 187210 | 191292 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 187211 | 191293 | } }, |
| 187212 | 191294 | }, .{ |
| 187213 | | .required_features = .{ .@"64bit", null, null, null }, |
| 191295 | .required_cc_abi = .win64, |
| 191296 | .required_features = .{ .avx, null, null, null }, |
| 191297 | .src_constraints = .{ |
| 191298 | .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, |
| 191299 | .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, |
| 191300 | .any, |
| 191301 | }, |
| 191302 | .patterns = &.{ |
| 191303 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 191304 | }, |
| 191305 | .call_frame = .{ .alignment = .@"16" }, |
| 191306 | .extra_temps = .{ |
| 191307 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 191308 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191309 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 191310 | .{ .type = .usize, .kind = .{ .extern_func = "__divti3" } }, |
| 191311 | .{ .type = .i128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191312 | .unused, |
| 191313 | .unused, |
| 191314 | .unused, |
| 191315 | .unused, |
| 191316 | .unused, |
| 191317 | .unused, |
| 191318 | }, |
| 191319 | .dst_temps = .{ .mem, .unused }, |
| 191320 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 191321 | .each = .{ .once = &.{ |
| 191322 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 191323 | .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191324 | .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191325 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 191326 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 191327 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 191328 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 191329 | } }, |
| 191330 | }, .{ |
| 191331 | .required_cc_abi = .win64, |
| 191332 | .required_features = .{ .sse2, null, null, null }, |
| 191333 | .src_constraints = .{ |
| 191334 | .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, |
| 191335 | .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, |
| 191336 | .any, |
| 191337 | }, |
| 191338 | .patterns = &.{ |
| 191339 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 191340 | }, |
| 191341 | .call_frame = .{ .alignment = .@"16" }, |
| 191342 | .extra_temps = .{ |
| 191343 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 191344 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191345 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 191346 | .{ .type = .usize, .kind = .{ .extern_func = "__divti3" } }, |
| 191347 | .{ .type = .i128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191348 | .unused, |
| 191349 | .unused, |
| 191350 | .unused, |
| 191351 | .unused, |
| 191352 | .unused, |
| 191353 | .unused, |
| 191354 | }, |
| 191355 | .dst_temps = .{ .mem, .unused }, |
| 191356 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 191357 | .each = .{ .once = &.{ |
| 191358 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 191359 | .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191360 | .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191361 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 191362 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 191363 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 191364 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 191365 | } }, |
| 191366 | }, .{ |
| 191367 | .required_cc_abi = .win64, |
| 191368 | .required_features = .{ .sse, null, null, null }, |
| 191369 | .src_constraints = .{ |
| 191370 | .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, |
| 191371 | .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .xword } }, |
| 191372 | .any, |
| 191373 | }, |
| 191374 | .patterns = &.{ |
| 191375 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 191376 | }, |
| 191377 | .call_frame = .{ .alignment = .@"16" }, |
| 191378 | .extra_temps = .{ |
| 191379 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 191380 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191381 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 191382 | .{ .type = .usize, .kind = .{ .extern_func = "__divti3" } }, |
| 191383 | .{ .type = .i128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191384 | .unused, |
| 191385 | .unused, |
| 191386 | .unused, |
| 191387 | .unused, |
| 191388 | .unused, |
| 191389 | .unused, |
| 191390 | }, |
| 191391 | .dst_temps = .{ .mem, .unused }, |
| 191392 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 191393 | .each = .{ .once = &.{ |
| 191394 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 191395 | .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191396 | .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191397 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 191398 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 191399 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 191400 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 191401 | } }, |
| 191402 | }, .{ |
| 191403 | .required_cc_abi = .sysv64, |
| 187214 | 191404 | .src_constraints = .{ |
| 187215 | 191405 | .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 187216 | 191406 | .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| ... | ... | @@ -187222,12 +191412,12 @@ const Temp = struct { |
| 187222 | 191412 | .call_frame = .{ .alignment = .@"16" }, |
| 187223 | 191413 | .extra_temps = .{ |
| 187224 | 191414 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 187225 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 187226 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 187227 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 187228 | | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 191415 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191416 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 191417 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 191418 | .{ .type = .u64, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 187229 | 191419 | .{ .type = .usize, .kind = .{ .extern_func = "__udivti3" } }, |
| 187230 | | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 191420 | .{ .type = .u64, .kind = .{ .ret_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 187231 | 191421 | .unused, |
| 187232 | 191422 | .unused, |
| 187233 | 191423 | .unused, |
| ... | ... | @@ -187247,6 +191437,114 @@ const Temp = struct { |
| 187247 | 191437 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 187248 | 191438 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 187249 | 191439 | } }, |
| 191440 | }, .{ |
| 191441 | .required_cc_abi = .win64, |
| 191442 | .required_features = .{ .avx, null, null, null }, |
| 191443 | .src_constraints = .{ |
| 191444 | .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 191445 | .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 191446 | .any, |
| 191447 | }, |
| 191448 | .patterns = &.{ |
| 191449 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 191450 | }, |
| 191451 | .call_frame = .{ .alignment = .@"16" }, |
| 191452 | .extra_temps = .{ |
| 191453 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 191454 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191455 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 191456 | .{ .type = .usize, .kind = .{ .extern_func = "__udivti3" } }, |
| 191457 | .{ .type = .u128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191458 | .unused, |
| 191459 | .unused, |
| 191460 | .unused, |
| 191461 | .unused, |
| 191462 | .unused, |
| 191463 | .unused, |
| 191464 | }, |
| 191465 | .dst_temps = .{ .mem, .unused }, |
| 191466 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 191467 | .each = .{ .once = &.{ |
| 191468 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 191469 | .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191470 | .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191471 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 191472 | .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 191473 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 191474 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 191475 | } }, |
| 191476 | }, .{ |
| 191477 | .required_cc_abi = .win64, |
| 191478 | .required_features = .{ .sse2, null, null, null }, |
| 191479 | .src_constraints = .{ |
| 191480 | .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 191481 | .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 191482 | .any, |
| 191483 | }, |
| 191484 | .patterns = &.{ |
| 191485 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 191486 | }, |
| 191487 | .call_frame = .{ .alignment = .@"16" }, |
| 191488 | .extra_temps = .{ |
| 191489 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 191490 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191491 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 191492 | .{ .type = .usize, .kind = .{ .extern_func = "__udivti3" } }, |
| 191493 | .{ .type = .u128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191494 | .unused, |
| 191495 | .unused, |
| 191496 | .unused, |
| 191497 | .unused, |
| 191498 | .unused, |
| 191499 | .unused, |
| 191500 | }, |
| 191501 | .dst_temps = .{ .mem, .unused }, |
| 191502 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 191503 | .each = .{ .once = &.{ |
| 191504 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 191505 | .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191506 | .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191507 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 191508 | .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 191509 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 191510 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 191511 | } }, |
| 191512 | }, .{ |
| 191513 | .required_cc_abi = .win64, |
| 191514 | .required_features = .{ .sse, null, null, null }, |
| 191515 | .src_constraints = .{ |
| 191516 | .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 191517 | .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .xword } }, |
| 191518 | .any, |
| 191519 | }, |
| 191520 | .patterns = &.{ |
| 191521 | .{ .src = .{ .to_mem, .to_mem, .none } }, |
| 191522 | }, |
| 191523 | .call_frame = .{ .alignment = .@"16" }, |
| 191524 | .extra_temps = .{ |
| 191525 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 191526 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191527 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 191528 | .{ .type = .usize, .kind = .{ .extern_func = "__udivti3" } }, |
| 191529 | .{ .type = .u128, .kind = .{ .ret_sse = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191530 | .unused, |
| 191531 | .unused, |
| 191532 | .unused, |
| 191533 | .unused, |
| 191534 | .unused, |
| 191535 | .unused, |
| 191536 | }, |
| 191537 | .dst_temps = .{ .mem, .unused }, |
| 191538 | .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, |
| 191539 | .each = .{ .once = &.{ |
| 191540 | .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, |
| 191541 | .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191542 | .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size), ._, ._ }, |
| 191543 | .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, |
| 191544 | .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp4x, ._, ._ }, |
| 191545 | .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, |
| 191546 | .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, |
| 191547 | } }, |
| 187250 | 191548 | }, .{ |
| 187251 | 191549 | .required_features = .{ .@"64bit", null, null, null }, |
| 187252 | 191550 | .src_constraints = .{ |
| ... | ... | @@ -187260,10 +191558,10 @@ const Temp = struct { |
| 187260 | 191558 | .call_frame = .{ .alignment = .@"16" }, |
| 187261 | 191559 | .extra_temps = .{ |
| 187262 | 191560 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 187263 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 187264 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 187265 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 187266 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 191561 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191562 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 191563 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 191564 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 187267 | 191565 | .{ .type = .usize, .kind = .{ .extern_func = "__divei4" } }, |
| 187268 | 191566 | .unused, |
| 187269 | 191567 | .unused, |
| ... | ... | @@ -187296,10 +191594,10 @@ const Temp = struct { |
| 187296 | 191594 | .call_frame = .{ .alignment = .@"16" }, |
| 187297 | 191595 | .extra_temps = .{ |
| 187298 | 191596 | .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, |
| 187299 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 0 } } }, |
| 187300 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 1 } } }, |
| 187301 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 2 } } }, |
| 187302 | | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .at = 3 } } }, |
| 191597 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 0, .at = 0 } } }, |
| 191598 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 1, .at = 1 } } }, |
| 191599 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 2, .at = 2 } } }, |
| 191600 | .{ .type = .usize, .kind = .{ .param_gpr = .{ .cc = .ccc, .after = 3, .at = 3 } } }, |
| 187303 | 191601 | .{ .type = .usize, .kind = .{ .extern_func = "__udivei4" } }, |
| 187304 | 191602 | .unused, |
| 187305 | 191603 | .unused, |
| ... | ... | @@ -187337,14 +191635,21 @@ const Temp = struct { |
| 187337 | 191635 | if (op_temp.tracking(cg).short != .dead) try op_temp.die(cg); |
| 187338 | 191636 | if (tomb_bits & @as(Air.Liveness.Bpi, 1) << @intCast(op_index) == 0) continue; |
| 187339 | 191637 | if (cg.reused_operands.isSet(op_index)) continue; |
| 187340 | | try cg.processDeath(op_ref.toIndexAllowNone() orelse continue); |
| 191638 | try cg.processDeath(op_ref.toIndexAllowNone() orelse continue, .{}); |
| 187341 | 191639 | } |
| 187342 | 191640 | if (cg.liveness.isUnused(inst)) try temp.die(cg) else { |
| 187343 | 191641 | switch (temp.unwrap(cg)) { |
| 187344 | 191642 | .ref, .err_ret_trace => { |
| 187345 | 191643 | const temp_mcv = temp.tracking(cg).short; |
| 187346 | 191644 | const result = result: switch (temp_mcv) { |
| 187347 | | .none, .unreach, .dead, .elementwise_args, .reserved_frame, .air_ref => unreachable, |
| 191645 | .none, |
| 191646 | .unreach, |
| 191647 | .dead, |
| 191648 | .indirect_load_frame, |
| 191649 | .elementwise_args, |
| 191650 | .reserved_frame, |
| 191651 | .air_ref, |
| 191652 | => unreachable, |
| 187348 | 191653 | .undef, .immediate, .lea_frame => temp_mcv, |
| 187349 | 191654 | .eflags, |
| 187350 | 191655 | .register, |
| ... | ... | @@ -187386,14 +191691,14 @@ const Temp = struct { |
| 187386 | 191691 | if (op_temp.index != temp.index) continue; |
| 187387 | 191692 | if (tomb_bits & @as(Air.Liveness.Bpi, 1) << @intCast(op_index) == 0) continue; |
| 187388 | 191693 | if (cg.reused_operands.isSet(op_index)) continue; |
| 187389 | | try cg.processDeath(op_ref.toIndexAllowNone() orelse continue); |
| 191694 | try cg.processDeath(op_ref.toIndexAllowNone() orelse continue, .{}); |
| 187390 | 191695 | } |
| 187391 | 191696 | } |
| 187392 | 191697 | |
| 187393 | 191698 | fn die(temp: Temp, cg: *CodeGen) InnerError!void { |
| 187394 | 191699 | switch (temp.unwrap(cg)) { |
| 187395 | 191700 | .ref, .err_ret_trace => {}, |
| 187396 | | .temp => |temp_index| try temp_index.tracking(cg).die(cg, temp_index.toIndex()), |
| 191701 | .temp => |temp_index| try temp_index.tracking(cg).die(cg, temp_index.toIndex(), .{}), |
| 187397 | 191702 | } |
| 187398 | 191703 | } |
| 187399 | 191704 | |
| ... | ... | @@ -187779,6 +192084,8 @@ const Select = struct { |
| 187779 | 192084 | } |
| 187780 | 192085 | |
| 187781 | 192086 | const Case = struct { |
| 192087 | required_abi: enum { any, gnu, msvc } = .any, |
| 192088 | required_cc_abi: enum { any, sysv64, win64 } = .any, |
| 187782 | 192089 | required_features: [4]?std.Target.x86.Feature = @splat(null), |
| 187783 | 192090 | src_constraints: [@intFromEnum(Select.Operand.Ref.none) - @intFromEnum(Select.Operand.Ref.src0)]Constraint = @splat(.any), |
| 187784 | 192091 | dst_constraints: [@intFromEnum(Select.Operand.Ref.src0) - @intFromEnum(Select.Operand.Ref.dst0)]Constraint = @splat(.any), |
| ... | ... | @@ -188151,6 +192458,7 @@ const Select = struct { |
| 188151 | 192458 | to_reg_pair: [2]Register, |
| 188152 | 192459 | to_param_gpr: TempSpec.Kind.CallConvRegSpec, |
| 188153 | 192460 | to_param_gpr_pair: TempSpec.Kind.CallConvRegSpec, |
| 192461 | to_param_sse: TempSpec.Kind.CallConvRegSpec, |
| 188154 | 192462 | to_ret_gpr: TempSpec.Kind.CallConvRegSpec, |
| 188155 | 192463 | to_ret_gpr_pair: TempSpec.Kind.CallConvRegSpec, |
| 188156 | 192464 | mem, |
| ... | ... | @@ -188238,7 +192546,7 @@ const Select = struct { |
| 188238 | 192546 | .mem => temp.tracking(cg).short.isMemory(), |
| 188239 | 192547 | .to_mem, .to_mut_mem => true, |
| 188240 | 192548 | .mut_mem => temp.isMut(cg) and temp.tracking(cg).short.isMemory(), |
| 188241 | | .to_reg, .to_reg_pair, .to_param_gpr, .to_param_gpr_pair, .to_ret_gpr, .to_ret_gpr_pair => true, |
| 192549 | .to_reg, .to_reg_pair, .to_param_gpr, .to_param_gpr_pair, .to_param_sse, .to_ret_gpr, .to_ret_gpr_pair => true, |
| 188242 | 192550 | .gpr => temp.typeOf(cg).abiSize(cg.pt.zcu) <= 8 and switch (temp.tracking(cg).short) { |
| 188243 | 192551 | .register => |reg| reg.isClass(.general_purpose), |
| 188244 | 192552 | .register_offset => |reg_off| reg_off.reg.isClass(.general_purpose) and reg_off.off == 0, |
| ... | ... | @@ -188343,10 +192651,11 @@ const Select = struct { |
| 188343 | 192651 | .mut_mem, .to_mut_mem => try temp.toBase(true, cg), |
| 188344 | 192652 | .to_reg => |reg| try temp.toReg(reg, cg), |
| 188345 | 192653 | .to_reg_pair => |regs| try temp.toRegPair(regs, cg), |
| 188346 | | .to_param_gpr => |param_spec| try temp.toReg(abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.at], cg), |
| 188347 | | .to_param_gpr_pair => |param_spec| try temp.toRegPair(abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.at..][0..2].*, cg), |
| 188348 | | .to_ret_gpr => |ret_spec| try temp.toReg(abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.at], cg), |
| 188349 | | .to_ret_gpr_pair => |ret_spec| try temp.toRegPair(abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.at..][0..2].*, cg), |
| 192654 | .to_param_gpr => |param_spec| try temp.toReg(abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index(cg)], cg), |
| 192655 | .to_param_gpr_pair => |param_spec| try temp.toRegPair(abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index(cg)..][0..2].*, cg), |
| 192656 | .to_param_sse => |param_spec| try temp.toReg(abi.getCAbiSseParamRegs(param_spec.tag(cg), cg.target)[param_spec.index(cg)], cg), |
| 192657 | .to_ret_gpr => |ret_spec| try temp.toReg(abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index(cg)], cg), |
| 192658 | .to_ret_gpr_pair => |ret_spec| try temp.toRegPair(abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index(cg)..][0..2].*, cg), |
| 188350 | 192659 | .gpr, .immut_gpr, .to_gpr => try temp.toRegClass(false, .general_purpose, cg), |
| 188351 | 192660 | .mut_gpr, .to_mut_gpr => try temp.toRegClass(true, .general_purpose, cg), |
| 188352 | 192661 | .to_gphi => try temp.toRegClass(false, .gphi, cg), |
| ... | ... | @@ -188381,8 +192690,10 @@ const Select = struct { |
| 188381 | 192690 | reg_pair: [2]Register, |
| 188382 | 192691 | param_gpr: CallConvRegSpec, |
| 188383 | 192692 | param_gpr_pair: CallConvRegSpec, |
| 192693 | param_sse: CallConvRegSpec, |
| 188384 | 192694 | ret_gpr: CallConvRegSpec, |
| 188385 | 192695 | ret_gpr_pair: CallConvRegSpec, |
| 192696 | ret_sse: CallConvRegSpec, |
| 188386 | 192697 | rc: Register.Class, |
| 188387 | 192698 | rc_pair: Register.Class, |
| 188388 | 192699 | mut_rc: struct { ref: Select.Operand.Ref, rc: Register.Class }, |
| ... | ... | @@ -188422,6 +192733,7 @@ const Select = struct { |
| 188422 | 192733 | |
| 188423 | 192734 | const CallConvRegSpec = struct { |
| 188424 | 192735 | cc: Case.CallConv, |
| 192736 | after: u2, |
| 188425 | 192737 | at: u2, |
| 188426 | 192738 | |
| 188427 | 192739 | fn tag(spec: CallConvRegSpec, cg: *const CodeGen) std.builtin.CallingConvention.Tag { |
| ... | ... | @@ -188431,6 +192743,14 @@ const Select = struct { |
| 188431 | 192743 | .zigcc => .auto, |
| 188432 | 192744 | }; |
| 188433 | 192745 | } |
| 192746 | |
| 192747 | fn index(spec: CallConvRegSpec, cg: *const CodeGen) u2 { |
| 192748 | return switch (spec.tag(cg)) { |
| 192749 | .auto, .x86_64_sysv => spec.after, |
| 192750 | .x86_64_win => spec.at, |
| 192751 | else => unreachable, |
| 192752 | }; |
| 192753 | } |
| 188434 | 192754 | }; |
| 188435 | 192755 | |
| 188436 | 192756 | fn lock(kind: Kind, cg: *CodeGen) ![2]?RegisterLock { |
| ... | ... | @@ -188439,10 +192759,12 @@ const Select = struct { |
| 188439 | 192759 | else => return reg_locks, |
| 188440 | 192760 | .reg => |reg| .{ reg, .none }, |
| 188441 | 192761 | .reg_pair => |regs| regs, |
| 188442 | | .param_gpr => |param_spec| abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.at..][0..1].* ++ .{.none}, |
| 188443 | | .param_gpr_pair => |param_spec| abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.at..][0..2].*, |
| 188444 | | .ret_gpr => |ret_spec| abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.at..][0..1].* ++ .{.none}, |
| 188445 | | .ret_gpr_pair => |ret_spec| abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.at..][0..2].*, |
| 192762 | .param_gpr => |param_spec| abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index(cg)..][0..1].* ++ .{.none}, |
| 192763 | .param_gpr_pair => |param_spec| abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index(cg)..][0..2].*, |
| 192764 | .param_sse => |param_spec| abi.getCAbiSseParamRegs(param_spec.tag(cg), cg.target)[param_spec.index(cg)..][0..1].* ++ .{.none}, |
| 192765 | .ret_gpr => |ret_spec| abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index(cg)..][0..1].* ++ .{.none}, |
| 192766 | .ret_gpr_pair => |ret_spec| abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index(cg)..][0..2].*, |
| 192767 | .ret_sse => |ret_spec| abi.getCAbiSseReturnRegs(ret_spec.tag(cg))[ret_spec.index(cg)..][0..1].* ++ .{.none}, |
| 188446 | 192768 | }; |
| 188447 | 192769 | for (regs, &reg_locks) |reg, *reg_lock| { |
| 188448 | 192770 | if (reg == .none) continue; |
| ... | ... | @@ -188476,16 +192798,22 @@ const Select = struct { |
| 188476 | 192798 | .reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true }, |
| 188477 | 192799 | .reg_pair => |regs| .{ try cg.tempInit(spec.type, .{ .register_pair = regs }), true }, |
| 188478 | 192800 | .param_gpr => |param_spec| .{ try cg.tempInit(spec.type, .{ |
| 188479 | | .register = abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.at], |
| 192801 | .register = abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index(cg)], |
| 188480 | 192802 | }), true }, |
| 188481 | 192803 | .param_gpr_pair => |param_spec| .{ try cg.tempInit(spec.type, .{ |
| 188482 | | .register_pair = abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.at..][0..2].*, |
| 192804 | .register_pair = abi.getCAbiIntParamRegs(param_spec.tag(cg))[param_spec.index(cg)..][0..2].*, |
| 192805 | }), true }, |
| 192806 | .param_sse => |param_spec| .{ try cg.tempInit(spec.type, .{ |
| 192807 | .register = abi.getCAbiSseParamRegs(param_spec.tag(cg), cg.target)[param_spec.index(cg)], |
| 188483 | 192808 | }), true }, |
| 188484 | 192809 | .ret_gpr => |ret_spec| .{ try cg.tempInit(spec.type, .{ |
| 188485 | | .register = abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.at], |
| 192810 | .register = abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index(cg)], |
| 188486 | 192811 | }), true }, |
| 188487 | 192812 | .ret_gpr_pair => |ret_spec| .{ try cg.tempInit(spec.type, .{ |
| 188488 | | .register_pair = abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.at..][0..2].*, |
| 192813 | .register_pair = abi.getCAbiIntReturnRegs(ret_spec.tag(cg))[ret_spec.index(cg)..][0..2].*, |
| 192814 | }), true }, |
| 192815 | .ret_sse => |ret_spec| .{ try cg.tempInit(spec.type, .{ |
| 192816 | .register = abi.getCAbiSseReturnRegs(ret_spec.tag(cg))[ret_spec.index(cg)], |
| 188489 | 192817 | }), true }, |
| 188490 | 192818 | .rc => |rc| .{ try cg.tempAllocReg(spec.type, regSetForRegClass(rc)), true }, |
| 188491 | 192819 | .rc_pair => |rc| .{ try cg.tempAllocRegPair(spec.type, regSetForRegClass(rc)), true }, |
| ... | ... | @@ -188842,7 +193170,17 @@ const Select = struct { |
| 188842 | 193170 | .storage = .{ .elems = elems }, |
| 188843 | 193171 | } }))), true }; |
| 188844 | 193172 | }, |
| 188845 | | .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ .index = frame_index } }), true }, |
| 193173 | .frame => |frame_index| .{ try cg.tempInit(spec.type, .{ .load_frame = .{ |
| 193174 | .index = frame_index, |
| 193175 | .off = switch (frame_index) { |
| 193176 | .call_frame => switch (cg.target.cCallingConvention().?) { |
| 193177 | .x86_64_sysv => 0, |
| 193178 | .x86_64_win => win64_shadow_space, |
| 193179 | else => unreachable, |
| 193180 | }, |
| 193181 | else => 0, |
| 193182 | }, |
| 193183 | } }), true }, |
| 188846 | 193184 | .lazy_sym => |lazy_symbol_spec| { |
| 188847 | 193185 | const ip = &pt.zcu.intern_pool; |
| 188848 | 193186 | const ty = if (lazy_symbol_spec.ref == .none) spec.type else lazy_symbol_spec.ref.typeOf(s); |
| ... | ... | @@ -188997,6 +193335,7 @@ const Select = struct { |
| 188997 | 193335 | const add_src0_elem_size_mul_src1: Adjust = .{ .sign = .pos, .lhs = .src0_elem_size_mul_src1, .op = .mul, .rhs = .@"1" }; |
| 188998 | 193336 | const sub_src0_elem_size_mul_src1: Adjust = .{ .sign = .neg, .lhs = .src0_elem_size_mul_src1, .op = .mul, .rhs = .@"1" }; |
| 188999 | 193337 | const add_dst0_elem_size: Adjust = .{ .sign = .pos, .lhs = .dst0_elem_size, .op = .mul, .rhs = .@"1" }; |
| 193338 | const sub_dst0_elem_size: Adjust = .{ .sign = .neg, .lhs = .dst0_elem_size, .op = .mul, .rhs = .@"1" }; |
| 189000 | 193339 | const add_src1_div_8_down_4: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .div_8_down, .rhs = .@"4" }; |
| 189001 | 193340 | const add_src1_rem_32: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"4" }; |
| 189002 | 193341 | const add_src1_rem_64: Adjust = .{ .sign = .pos, .lhs = .src1, .op = .rem_8_mul, .rhs = .@"8" }; |
| ... | ... | @@ -189287,7 +193626,11 @@ const Select = struct { |
| 189287 | 193626 | const tmp0t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0t } }; |
| 189288 | 193627 | const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0x } }; |
| 189289 | 193628 | const tmp0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0y } }; |
| 193629 | const tmp0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 1 }; |
| 193630 | const tmp0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 1 }; |
| 189290 | 193631 | const tmp0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 1 }; |
| 193632 | const tmp0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0w }, .imm = 2 }; |
| 193633 | const tmp0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0d }, .imm = 2 }; |
| 189291 | 193634 | const tmp0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp0q }, .imm = 2 }; |
| 189292 | 193635 | |
| 189293 | 193636 | const tmp1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1l } }; |
| ... | ... | @@ -189301,7 +193644,11 @@ const Select = struct { |
| 189301 | 193644 | const tmp1t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1t } }; |
| 189302 | 193645 | const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1x } }; |
| 189303 | 193646 | const tmp1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1y } }; |
| 193647 | const tmp1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 1 }; |
| 193648 | const tmp1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 1 }; |
| 189304 | 193649 | const tmp1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 1 }; |
| 193650 | const tmp1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1w }, .imm = 2 }; |
| 193651 | const tmp1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1d }, .imm = 2 }; |
| 189305 | 193652 | const tmp1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp1q }, .imm = 2 }; |
| 189306 | 193653 | |
| 189307 | 193654 | const tmp2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2l } }; |
| ... | ... | @@ -189315,7 +193662,11 @@ const Select = struct { |
| 189315 | 193662 | const tmp2t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2t } }; |
| 189316 | 193663 | const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2x } }; |
| 189317 | 193664 | const tmp2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2y } }; |
| 193665 | const tmp2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 1 }; |
| 193666 | const tmp2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 1 }; |
| 189318 | 193667 | const tmp2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 1 }; |
| 193668 | const tmp2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2w }, .imm = 2 }; |
| 193669 | const tmp2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2d }, .imm = 2 }; |
| 189319 | 193670 | const tmp2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp2q }, .imm = 2 }; |
| 189320 | 193671 | |
| 189321 | 193672 | const tmp3l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3l } }; |
| ... | ... | @@ -189329,7 +193680,11 @@ const Select = struct { |
| 189329 | 193680 | const tmp3t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3t } }; |
| 189330 | 193681 | const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3x } }; |
| 189331 | 193682 | const tmp3y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3y } }; |
| 193683 | const tmp3w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 1 }; |
| 193684 | const tmp3d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 1 }; |
| 189332 | 193685 | const tmp3q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 1 }; |
| 193686 | const tmp3w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3w }, .imm = 2 }; |
| 193687 | const tmp3d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3d }, .imm = 2 }; |
| 189333 | 193688 | const tmp3q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp3q }, .imm = 2 }; |
| 189334 | 193689 | |
| 189335 | 193690 | const tmp4l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4l } }; |
| ... | ... | @@ -189343,7 +193698,11 @@ const Select = struct { |
| 189343 | 193698 | const tmp4t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4t } }; |
| 189344 | 193699 | const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4x } }; |
| 189345 | 193700 | const tmp4y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4y } }; |
| 193701 | const tmp4w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 1 }; |
| 193702 | const tmp4d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 1 }; |
| 189346 | 193703 | const tmp4q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 1 }; |
| 193704 | const tmp4w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4w }, .imm = 2 }; |
| 193705 | const tmp4d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4d }, .imm = 2 }; |
| 189347 | 193706 | const tmp4q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp4q }, .imm = 2 }; |
| 189348 | 193707 | |
| 189349 | 193708 | const tmp5l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5l } }; |
| ... | ... | @@ -189357,7 +193716,11 @@ const Select = struct { |
| 189357 | 193716 | const tmp5t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5t } }; |
| 189358 | 193717 | const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5x } }; |
| 189359 | 193718 | const tmp5y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5y } }; |
| 193719 | const tmp5w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 1 }; |
| 193720 | const tmp5d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 1 }; |
| 189360 | 193721 | const tmp5q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 1 }; |
| 193722 | const tmp5w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5w }, .imm = 2 }; |
| 193723 | const tmp5d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5d }, .imm = 2 }; |
| 189361 | 193724 | const tmp5q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp5q }, .imm = 2 }; |
| 189362 | 193725 | |
| 189363 | 193726 | const tmp6l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6l } }; |
| ... | ... | @@ -189371,7 +193734,11 @@ const Select = struct { |
| 189371 | 193734 | const tmp6t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6t } }; |
| 189372 | 193735 | const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6x } }; |
| 189373 | 193736 | const tmp6y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6y } }; |
| 193737 | const tmp6w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 1 }; |
| 193738 | const tmp6d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 1 }; |
| 189374 | 193739 | const tmp6q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 1 }; |
| 193740 | const tmp6w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6w }, .imm = 2 }; |
| 193741 | const tmp6d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6d }, .imm = 2 }; |
| 189375 | 193742 | const tmp6q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp6q }, .imm = 2 }; |
| 189376 | 193743 | |
| 189377 | 193744 | const tmp7l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7l } }; |
| ... | ... | @@ -189385,7 +193752,11 @@ const Select = struct { |
| 189385 | 193752 | const tmp7t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7t } }; |
| 189386 | 193753 | const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7x } }; |
| 189387 | 193754 | const tmp7y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7y } }; |
| 193755 | const tmp7w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 1 }; |
| 193756 | const tmp7d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 1 }; |
| 189388 | 193757 | const tmp7q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 1 }; |
| 193758 | const tmp7w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7w }, .imm = 2 }; |
| 193759 | const tmp7d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7d }, .imm = 2 }; |
| 189389 | 193760 | const tmp7q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp7q }, .imm = 2 }; |
| 189390 | 193761 | |
| 189391 | 193762 | const tmp8l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8l } }; |
| ... | ... | @@ -189399,7 +193770,11 @@ const Select = struct { |
| 189399 | 193770 | const tmp8t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8t } }; |
| 189400 | 193771 | const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8x } }; |
| 189401 | 193772 | const tmp8y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8y } }; |
| 193773 | const tmp8w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 1 }; |
| 193774 | const tmp8d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 1 }; |
| 189402 | 193775 | const tmp8q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 1 }; |
| 193776 | const tmp8w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8w }, .imm = 2 }; |
| 193777 | const tmp8d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8d }, .imm = 2 }; |
| 189403 | 193778 | const tmp8q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp8q }, .imm = 2 }; |
| 189404 | 193779 | |
| 189405 | 193780 | const tmp9l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9l } }; |
| ... | ... | @@ -189413,7 +193788,11 @@ const Select = struct { |
| 189413 | 193788 | const tmp9t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9t } }; |
| 189414 | 193789 | const tmp9x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9x } }; |
| 189415 | 193790 | const tmp9y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9y } }; |
| 193791 | const tmp9w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 1 }; |
| 193792 | const tmp9d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 1 }; |
| 189416 | 193793 | const tmp9q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 1 }; |
| 193794 | const tmp9w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9w }, .imm = 2 }; |
| 193795 | const tmp9d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9d }, .imm = 2 }; |
| 189417 | 193796 | const tmp9q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp9q }, .imm = 2 }; |
| 189418 | 193797 | |
| 189419 | 193798 | const tmp10l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10l } }; |
| ... | ... | @@ -189427,7 +193806,11 @@ const Select = struct { |
| 189427 | 193806 | const tmp10t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10t } }; |
| 189428 | 193807 | const tmp10x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10x } }; |
| 189429 | 193808 | const tmp10y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10y } }; |
| 193809 | const tmp10w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 1 }; |
| 193810 | const tmp10d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 1 }; |
| 189430 | 193811 | const tmp10q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 1 }; |
| 193812 | const tmp10w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10w }, .imm = 2 }; |
| 193813 | const tmp10d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10d }, .imm = 2 }; |
| 189431 | 193814 | const tmp10q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .tmp10q }, .imm = 2 }; |
| 189432 | 193815 | |
| 189433 | 193816 | const dst0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0l } }; |
| ... | ... | @@ -189441,7 +193824,11 @@ const Select = struct { |
| 189441 | 193824 | const dst0t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0t } }; |
| 189442 | 193825 | const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0x } }; |
| 189443 | 193826 | const dst0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0y } }; |
| 193827 | const dst0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 1 }; |
| 193828 | const dst0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 1 }; |
| 189444 | 193829 | const dst0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 1 }; |
| 193830 | const dst0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0w }, .imm = 2 }; |
| 193831 | const dst0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0d }, .imm = 2 }; |
| 189445 | 193832 | const dst0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst0q }, .imm = 2 }; |
| 189446 | 193833 | |
| 189447 | 193834 | const dst1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1l } }; |
| ... | ... | @@ -189455,7 +193842,11 @@ const Select = struct { |
| 189455 | 193842 | const dst1t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1t } }; |
| 189456 | 193843 | const dst1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1x } }; |
| 189457 | 193844 | const dst1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1y } }; |
| 193845 | const dst1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 1 }; |
| 193846 | const dst1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 1 }; |
| 189458 | 193847 | const dst1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 1 }; |
| 193848 | const dst1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1w }, .imm = 2 }; |
| 193849 | const dst1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1d }, .imm = 2 }; |
| 189459 | 193850 | const dst1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .dst1q }, .imm = 2 }; |
| 189460 | 193851 | |
| 189461 | 193852 | const src0l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0l } }; |
| ... | ... | @@ -189469,7 +193860,11 @@ const Select = struct { |
| 189469 | 193860 | const src0t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0t } }; |
| 189470 | 193861 | const src0x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0x } }; |
| 189471 | 193862 | const src0y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0y } }; |
| 193863 | const src0w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 1 }; |
| 193864 | const src0d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 1 }; |
| 189472 | 193865 | const src0q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 1 }; |
| 193866 | const src0w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0w }, .imm = 2 }; |
| 193867 | const src0d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0d }, .imm = 2 }; |
| 189473 | 193868 | const src0q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src0q }, .imm = 2 }; |
| 189474 | 193869 | |
| 189475 | 193870 | const src1l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1l } }; |
| ... | ... | @@ -189483,7 +193878,11 @@ const Select = struct { |
| 189483 | 193878 | const src1t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1t } }; |
| 189484 | 193879 | const src1x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1x } }; |
| 189485 | 193880 | const src1y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1y } }; |
| 193881 | const src1w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 1 }; |
| 193882 | const src1d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 1 }; |
| 189486 | 193883 | const src1q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 1 }; |
| 193884 | const src1w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1w }, .imm = 2 }; |
| 193885 | const src1d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1d }, .imm = 2 }; |
| 189487 | 193886 | const src1q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src1q }, .imm = 2 }; |
| 189488 | 193887 | |
| 189489 | 193888 | const src2l: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2l } }; |
| ... | ... | @@ -189497,7 +193896,11 @@ const Select = struct { |
| 189497 | 193896 | const src2t: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2t } }; |
| 189498 | 193897 | const src2x: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2x } }; |
| 189499 | 193898 | const src2y: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2y } }; |
| 193899 | const src2w0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 1 }; |
| 193900 | const src2d0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 1 }; |
| 189500 | 193901 | const src2q0: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 1 }; |
| 193902 | const src2w1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2w }, .imm = 2 }; |
| 193903 | const src2d1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2d }, .imm = 2 }; |
| 189501 | 193904 | const src2q1: Select.Operand = .{ .flags = .{ .tag = .ref, .base = .src2q }, .imm = 2 }; |
| 189502 | 193905 | |
| 189503 | 193906 | fn si(imm: i32) Select.Operand { |
| ... | ... | @@ -189956,6 +194359,22 @@ fn select( |
| 189956 | 194359 | ) Select.Error!void { |
| 189957 | 194360 | @setEvalBranchQuota(33_500); |
| 189958 | 194361 | cases: for (cases) |case| { |
| 194362 | switch (case.required_abi) { |
| 194363 | .any => {}, |
| 194364 | .gnu => if (switch (cg.target.abi) { |
| 194365 | .none, .msvc, .itanium => cg.target.os.tag == .windows, |
| 194366 | else => false, |
| 194367 | }) continue :cases, |
| 194368 | .msvc => if (switch (cg.target.abi) { |
| 194369 | .none, .msvc, .itanium => cg.target.os.tag != .windows, |
| 194370 | else => true, |
| 194371 | }) continue :cases, |
| 194372 | } |
| 194373 | switch (case.required_cc_abi) { |
| 194374 | .any => {}, |
| 194375 | .sysv64 => if (cg.target.cCallingConvention().? != .x86_64_sysv) continue :cases, |
| 194376 | .win64 => if (cg.target.cCallingConvention().? != .x86_64_win) continue :cases, |
| 194377 | } |
| 189959 | 194378 | for (case.required_features) |required_feature| if (required_feature) |feature| if (!cg.hasFeature(feature)) continue :cases; |
| 189960 | 194379 | for (case.src_constraints[0..src_temps.len], src_temps) |src_constraint, src_temp| if (!src_constraint.accepts(src_temp.typeOf(cg), cg)) continue :cases; |
| 189961 | 194380 | for (case.dst_constraints[0..dst_temps.len], dst_tys) |dst_constraint, dst_ty| if (!dst_constraint.accepts(dst_ty, cg)) continue :cases; |
| ... | ... | @@ -189972,7 +194391,11 @@ fn select( |
| 189972 | 194391 | const frame_allocs_slice = cg.frame_allocs.slice(); |
| 189973 | 194392 | const stack_frame_size = |
| 189974 | 194393 | &frame_allocs_slice.items(.abi_size)[@intFromEnum(FrameIndex.call_frame)]; |
| 189975 | | stack_frame_size.* = @max(stack_frame_size.*, case.call_frame.size); |
| 194394 | stack_frame_size.* = @max(stack_frame_size.*, switch (cg.target.cCallingConvention().?) { |
| 194395 | .x86_64_sysv => case.call_frame.size, |
| 194396 | .x86_64_win => win64_shadow_space + case.call_frame.size, |
| 194397 | else => unreachable, |
| 194398 | }); |
| 189976 | 194399 | const stack_frame_align = |
| 189977 | 194400 | &frame_allocs_slice.items(.abi_align)[@intFromEnum(FrameIndex.call_frame)]; |
| 189978 | 194401 | stack_frame_align.* = stack_frame_align.max(case.call_frame.alignment); |