diff options
-rw-r--r-- | src/jumper/SkJumper.cpp | 2 | ||||
-rw-r--r-- | src/jumper/SkJumper_generated.S | 1583 | ||||
-rw-r--r-- | src/jumper/SkJumper_generated_win.S | 1274 | ||||
-rw-r--r-- | src/jumper/SkJumper_stages.cpp | 44 |
4 files changed, 2467 insertions, 436 deletions
diff --git a/src/jumper/SkJumper.cpp b/src/jumper/SkJumper.cpp index 362b623353..736dad6f06 100644 --- a/src/jumper/SkJumper.cpp +++ b/src/jumper/SkJumper.cpp @@ -80,6 +80,8 @@ static K kConstants = { M(to_srgb) \ M(from_2dot2) \ M(to_2dot2) \ + M(rgb_to_hsl) \ + M(hsl_to_rgb) \ M(scale_1_float) \ M(scale_u8) \ M(lerp_1_float) \ diff --git a/src/jumper/SkJumper_generated.S b/src/jumper/SkJumper_generated.S index 581db0d9ca..db0d5933e3 100644 --- a/src/jumper/SkJumper_generated.S +++ b/src/jumper/SkJumper_generated.S @@ -1136,6 +1136,141 @@ _sk_to_2dot2_aarch64: .long 0x4e33f442 // fmax v2.4s, v2.4s, v19.4s .long 0xd61f0060 // br x3 +HIDDEN _sk_rgb_to_hsl_aarch64 +.globl _sk_rgb_to_hsl_aarch64 +_sk_rgb_to_hsl_aarch64: + .long 0x4e21f410 // fmax v16.4s, v0.4s, v1.4s + .long 0x4ea1f411 // fmin v17.4s, v0.4s, v1.4s + .long 0x6ea1e454 // fcmgt v20.4s, v2.4s, v1.4s + .long 0x4f00f715 // fmov v21.4s, #6.000000000000000000e+00 + .long 0x4e22f610 // fmax v16.4s, v16.4s, v2.4s + .long 0x4ea2f631 // fmin v17.4s, v17.4s, v2.4s + .long 0x4f03f612 // fmov v18.4s, #1.000000000000000000e+00 + .long 0x4e341eb4 // and v20.16b, v21.16b, v20.16b + .long 0x4eb1d615 // fsub v21.4s, v16.4s, v17.4s + .long 0x4ea2d433 // fsub v19.4s, v1.4s, v2.4s + .long 0x4ea0d456 // fsub v22.4s, v2.4s, v0.4s + .long 0x4f026417 // movi v23.4s, #0x40, lsl #24 + .long 0x6e35fe42 // fdiv v2.4s, v18.4s, v21.4s + .long 0x4ea1d418 // fsub v24.4s, v0.4s, v1.4s + .long 0x4f00f619 // fmov v25.4s, #4.000000000000000000e+00 + .long 0x4f0167fa // movi v26.4s, #0x3f, lsl #24 + .long 0x4eb0d6f2 // fsub v18.4s, v23.4s, v16.4s + .long 0x4e36cc57 // fmla v23.4s, v2.4s, v22.4s + .long 0x4e31e616 // fcmeq v22.4s, v16.4s, v17.4s + .long 0x4e20e600 // fcmeq v0.4s, v16.4s, v0.4s + .long 0x4e21e601 // fcmeq v1.4s, v16.4s, v1.4s + .long 0x4e31d610 // fadd v16.4s, v16.4s, v17.4s + .long 0x52a7c548 // mov w8, #0x3e2a0000 + .long 0x4e33cc54 // fmla v20.4s, v2.4s, v19.4s + .long 0x4e38cc59 // fmla v25.4s, v2.4s, v24.4s + .long 0x6e3ade02 // fmul v2.4s, v16.4s, v26.4s + .long 0x72955568 // movk w8, #0xaaab + .long 0xf8408423 // ldr x3, [x1], #8 + .long 0x4eb1d651 // fsub v17.4s, v18.4s, v17.4s + .long 0x6ebae452 // fcmgt v18.4s, v2.4s, v26.4s + .long 0x6e791ee1 // bsl v1.16b, v23.16b, v25.16b + .long 0x4e040d13 // dup v19.4s, w8 + .long 0x6e701e32 // bsl v18.16b, v17.16b, v16.16b + .long 0x6e611e80 // bsl v0.16b, v20.16b, v1.16b + .long 0x6e32fea1 // fdiv v1.4s, v21.4s, v18.4s + .long 0x6e33dc00 // fmul v0.4s, v0.4s, v19.4s + .long 0x4e761c00 // bic v0.16b, v0.16b, v22.16b + .long 0x4e761c21 // bic v1.16b, v1.16b, v22.16b + .long 0xd61f0060 // br x3 + +HIDDEN _sk_hsl_to_rgb_aarch64 +.globl _sk_hsl_to_rgb_aarch64 +_sk_hsl_to_rgb_aarch64: + .long 0x52a7d548 // mov w8, #0x3eaa0000 + .long 0x72955568 // movk w8, #0xaaab + .long 0x4e040d17 // dup v23.4s, w8 + .long 0x52a7c548 // mov w8, #0x3e2a0000 + .long 0x72955568 // movk w8, #0xaaab + .long 0x4e040d13 // dup v19.4s, w8 + .long 0x52a7e548 // mov w8, #0x3f2a0000 + .long 0x4f03f612 // fmov v18.4s, #1.000000000000000000e+00 + .long 0x4f07f616 // fmov v22.4s, #-1.000000000000000000e+00 + .long 0x72955568 // movk w8, #0xaaab + .long 0x4e22d435 // fadd v21.4s, v1.4s, v2.4s + .long 0x4e040d1a // dup v26.4s, w8 + .long 0x52b7d548 // mov w8, #0xbeaa0000 + .long 0x6eb2e41d // fcmgt v29.4s, v0.4s, v18.4s + .long 0x4e36d41e // fadd v30.4s, v0.4s, v22.4s + .long 0x4f0167f1 // movi v17.4s, #0x3f, lsl #24 + .long 0x4ea0d830 // fcmeq v16.4s, v1.4s, #0.0 + .long 0x4ea0e819 // fcmlt v25.4s, v0.4s, #0.0 + .long 0x72955568 // movk w8, #0xaaab + .long 0x4e32d43c // fadd v28.4s, v1.4s, v18.4s + .long 0x4ea2cc35 // fmls v21.4s, v1.4s, v2.4s + .long 0x4e32d401 // fadd v1.4s, v0.4s, v18.4s + .long 0x6e601fdd // bsl v29.16b, v30.16b, v0.16b + .long 0x4e37d417 // fadd v23.4s, v0.4s, v23.4s + .long 0x6ea2e63b // fcmgt v27.4s, v17.4s, v2.4s + .long 0x4e040d1e // dup v30.4s, w8 + .long 0x6e22df9c // fmul v28.4s, v28.4s, v2.4s + .long 0x6e7d1c39 // bsl v25.16b, v1.16b, v29.16b + .long 0x6eb2e6e1 // fcmgt v1.4s, v23.4s, v18.4s + .long 0x4e36d6fd // fadd v29.4s, v23.4s, v22.4s + .long 0x4e3ed41e // fadd v30.4s, v0.4s, v30.4s + .long 0x6e751f9b // bsl v27.16b, v28.16b, v21.16b + .long 0x4ea0eaf5 // fcmlt v21.4s, v23.4s, #0.0 + .long 0x4e32d6fc // fadd v28.4s, v23.4s, v18.4s + .long 0x6e771fa1 // bsl v1.16b, v29.16b, v23.16b + .long 0x4f026414 // movi v20.4s, #0x40, lsl #24 + .long 0x6e611f95 // bsl v21.16b, v28.16b, v1.16b + .long 0x4e32d7c1 // fadd v1.4s, v30.4s, v18.4s + .long 0x6eb2e7d2 // fcmgt v18.4s, v30.4s, v18.4s + .long 0x4e36d7d6 // fadd v22.4s, v30.4s, v22.4s + .long 0x6ea0fb7c // fneg v28.4s, v27.4s + .long 0x4ea0ebdd // fcmlt v29.4s, v30.4s, #0.0 + .long 0x6e7e1ed2 // bsl v18.16b, v22.16b, v30.16b + .long 0x4e22ce9c // fmla v28.4s, v20.4s, v2.4s + .long 0x4f00f718 // fmov v24.4s, #6.000000000000000000e+00 + .long 0x6e721c3d // bsl v29.16b, v1.16b, v18.16b + .long 0x4ebcd761 // fsub v1.4s, v27.4s, v28.4s + .long 0x4eb5d752 // fsub v18.4s, v26.4s, v21.4s + .long 0x4ebc1f94 // mov v20.16b, v28.16b + .long 0x6e38dc38 // fmul v24.4s, v1.4s, v24.4s + .long 0x4eb9d756 // fsub v22.4s, v26.4s, v25.4s + .long 0x4ebc1f9f // mov v31.16b, v28.16b + .long 0x4e32cf14 // fmla v20.4s, v24.4s, v18.4s + .long 0x4ebc1f81 // mov v1.16b, v28.16b + .long 0x4ebc1f92 // mov v18.16b, v28.16b + .long 0x4e38cc1f // fmla v31.4s, v0.4s, v24.4s + .long 0x4e36cf01 // fmla v1.4s, v24.4s, v22.4s + .long 0x4ebdd740 // fsub v0.4s, v26.4s, v29.4s + .long 0x4e3ecf12 // fmla v18.4s, v24.4s, v30.4s + .long 0x4ebc1f96 // mov v22.16b, v28.16b + .long 0x6eb5e75e // fcmgt v30.4s, v26.4s, v21.4s + .long 0x4e20cf16 // fmla v22.4s, v24.4s, v0.4s + .long 0x6e7c1e9e // bsl v30.16b, v20.16b, v28.16b + .long 0x6eb9e754 // fcmgt v20.4s, v26.4s, v25.4s + .long 0x6ebde75a // fcmgt v26.4s, v26.4s, v29.4s + .long 0x6e7c1c34 // bsl v20.16b, v1.16b, v28.16b + .long 0x6e7c1eda // bsl v26.16b, v22.16b, v28.16b + .long 0x4e37cf1c // fmla v28.4s, v24.4s, v23.4s + .long 0x6eb9e637 // fcmgt v23.4s, v17.4s, v25.4s + .long 0x6eb5e678 // fcmgt v24.4s, v19.4s, v21.4s + .long 0x6eb5e635 // fcmgt v21.4s, v17.4s, v21.4s + .long 0x6ebde631 // fcmgt v17.4s, v17.4s, v29.4s + .long 0xf8408423 // ldr x3, [x1], #8 + .long 0x6eb9e676 // fcmgt v22.4s, v19.4s, v25.4s + .long 0x6ebde673 // fcmgt v19.4s, v19.4s, v29.4s + .long 0x6e7a1f71 // bsl v17.16b, v27.16b, v26.16b + .long 0x6e7e1f75 // bsl v21.16b, v27.16b, v30.16b + .long 0x6e741f77 // bsl v23.16b, v27.16b, v20.16b + .long 0x6e711e53 // bsl v19.16b, v18.16b, v17.16b + .long 0x4eb01e00 // mov v0.16b, v16.16b + .long 0x4eb01e01 // mov v1.16b, v16.16b + .long 0x6e751f98 // bsl v24.16b, v28.16b, v21.16b + .long 0x6e771ff6 // bsl v22.16b, v31.16b, v23.16b + .long 0x6e731c50 // bsl v16.16b, v2.16b, v19.16b + .long 0x6e781c40 // bsl v0.16b, v2.16b, v24.16b + .long 0x6e761c41 // bsl v1.16b, v2.16b, v22.16b + .long 0x4eb01e02 // mov v2.16b, v16.16b + .long 0xd61f0060 // br x3 + HIDDEN _sk_scale_1_float_aarch64 .globl _sk_scale_1_float_aarch64 _sk_scale_1_float_aarch64: @@ -1634,9 +1769,9 @@ HIDDEN _sk_gather_i8_aarch64 _sk_gather_i8_aarch64: .long 0xaa0103e8 // mov x8, x1 .long 0xf8408429 // ldr x9, [x1], #8 - .long 0xb4000069 // cbz x9, 15e8 <sk_gather_i8_aarch64+0x14> + .long 0xb4000069 // cbz x9, 17e4 <sk_gather_i8_aarch64+0x14> .long 0xaa0903ea // mov x10, x9 - .long 0x14000003 // b 15f0 <sk_gather_i8_aarch64+0x1c> + .long 0x14000003 // b 17ec <sk_gather_i8_aarch64+0x1c> .long 0xf940050a // ldr x10, [x8, #8] .long 0x91004101 // add x1, x8, #0x10 .long 0xf8410548 // ldr x8, [x10], #16 @@ -2424,7 +2559,7 @@ _sk_linear_gradient_aarch64: .long 0x4d40c902 // ld1r {v2.4s}, [x8] .long 0xf9400128 // ldr x8, [x9] .long 0x4d40c943 // ld1r {v3.4s}, [x10] - .long 0xb40006c8 // cbz x8, 214c <sk_linear_gradient_aarch64+0x100> + .long 0xb40006c8 // cbz x8, 2348 <sk_linear_gradient_aarch64+0x100> .long 0x6dbf23e9 // stp d9, d8, [sp, #-16]! .long 0xf9400529 // ldr x9, [x9, #8] .long 0x6f00e413 // movi v19.2d, #0x0 @@ -2475,9 +2610,9 @@ _sk_linear_gradient_aarch64: .long 0xd1000508 // sub x8, x8, #0x1 .long 0x6e771fd0 // bsl v16.16b, v30.16b, v23.16b .long 0x91009129 // add x9, x9, #0x24 - .long 0xb5fffaa8 // cbnz x8, 2094 <sk_linear_gradient_aarch64+0x48> + .long 0xb5fffaa8 // cbnz x8, 2290 <sk_linear_gradient_aarch64+0x48> .long 0x6cc123e9 // ldp d9, d8, [sp], #16 - .long 0x14000005 // b 215c <sk_linear_gradient_aarch64+0x110> + .long 0x14000005 // b 2358 <sk_linear_gradient_aarch64+0x110> .long 0x6f00e414 // movi v20.2d, #0x0 .long 0x6f00e412 // movi v18.2d, #0x0 .long 0x6f00e411 // movi v17.2d, #0x0 @@ -3712,6 +3847,157 @@ _sk_to_2dot2_vfp4: .long 0xf2011fa3 // vmax.f32 d1, d17, d19 .long 0xf2002fa3 // vmax.f32 d2, d16, d19 .long 0xe12fff13 // bx r3 + .long 0xe320f000 // nop {0} + +HIDDEN _sk_rgb_to_hsl_vfp4 +.globl _sk_rgb_to_hsl_vfp4 +_sk_rgb_to_hsl_vfp4: + .long 0xed2d8b08 // vpush {d8-d11} + .long 0xf2401f01 // vmax.f32 d17, d0, d1 + .long 0xeddf9b2c // vldr d25, [pc, #176] + .long 0xf2600f01 // vmin.f32 d16, d0, d1 + .long 0xe4913004 // ldr r3, [r1], #4 + .long 0xeeb78a00 // vmov.f32 s16, #112 + .long 0xf2c3461f // vmov.i32 d20, #1056964608 + .long 0xf2411f82 // vmax.f32 d17, d17, d2 + .long 0xf2602f82 // vmin.f32 d18, d16, d2 + .long 0xf2c45610 // vmov.i32 d21, #1073741824 + .long 0xf2607d01 // vsub.f32 d23, d0, d1 + .long 0xf2656da1 // vsub.f32 d22, d21, d17 + .long 0xf221ada2 // vsub.f32 d10, d17, d18 + .long 0xf2413da2 // vadd.f32 d19, d17, d18 + .long 0xf2c08010 // vmov.i32 d24, #0 + .long 0xf2666da2 // vsub.f32 d22, d22, d18 + .long 0xf241ae80 // vceq.f32 d26, d17, d0 + .long 0xeec8ba2a // vdiv.f32 s23, s16, s21 + .long 0xf3430db4 // vmul.f32 d16, d19, d20 + .long 0xee88ba0a // vdiv.f32 s22, s16, s20 + .long 0xf3209ea4 // vcgt.f32 d9, d16, d20 + .long 0xf2614d02 // vsub.f32 d20, d1, d2 + .long 0xf3477d9b // vmul.f32 d23, d23, d11 + .long 0xf31691b3 // vbsl d9, d22, d19 + .long 0xf2623d00 // vsub.f32 d19, d2, d0 + .long 0xf3626e01 // vcgt.f32 d22, d2, d1 + .long 0xeeca8aa9 // vdiv.f32 s17, s21, s19 + .long 0xee8a8a09 // vdiv.f32 s16, s20, s18 + .long 0xf3433d9b // vmul.f32 d19, d19, d11 + .long 0xf3444d9b // vmul.f32 d20, d20, d11 + .long 0xf35961b8 // vbsl d22, d25, d24 + .long 0xf2419e81 // vceq.f32 d25, d17, d1 + .long 0xf2011ea2 // vceq.f32 d1, d17, d18 + .long 0xf2433da5 // vadd.f32 d19, d19, d21 + .long 0xf2c15f10 // vmov.f32 d21, #4 + .long 0xf2464da4 // vadd.f32 d20, d22, d20 + .long 0xf2471da5 // vadd.f32 d17, d23, d21 + .long 0xf35391b1 // vbsl d25, d19, d17 + .long 0xeddf1b0a // vldr d17, [pc, #40] + .long 0xf2612111 // vorr d18, d1, d1 + .long 0xf354a1b9 // vbsl d26, d20, d25 + .long 0xf35821ba // vbsl d18, d24, d26 + .long 0xf3181198 // vbsl d1, d24, d8 + .long 0xf3020db1 // vmul.f32 d0, d18, d17 + .long 0xf22021b0 // vorr d2, d16, d16 + .long 0xecbd8b08 // vpop {d8-d11} + .long 0xe12fff13 // bx r3 + .long 0xe320f000 // nop {0} + .long 0x40c00000 // .word 0x40c00000 + .long 0x40c00000 // .word 0x40c00000 + .long 0x3e2aaaab // .word 0x3e2aaaab + .long 0x3e2aaaab // .word 0x3e2aaaab + +HIDDEN _sk_hsl_to_rgb_vfp4 +.globl _sk_hsl_to_rgb_vfp4 +_sk_hsl_to_rgb_vfp4: + .long 0xf2c72f10 // vmov.f32 d18, #1 + .long 0xeddf0b4f // vldr d16, [pc, #316] + .long 0xf2c3161f // vmov.i32 d17, #1056964608 + .long 0xeddf9b4f // vldr d25, [pc, #316] + .long 0xf2415d22 // vadd.f32 d21, d1, d18 + .long 0xe4913004 // ldr r3, [r1], #4 + .long 0xf3414d12 // vmul.f32 d20, d1, d2 + .long 0xf2416d02 // vadd.f32 d22, d1, d2 + .long 0xf2407d20 // vadd.f32 d23, d0, d16 + .long 0xf3610e82 // vcgt.f32 d16, d17, d2 + .long 0xf3455d92 // vmul.f32 d21, d21, d2 + .long 0xf2664da4 // vsub.f32 d20, d22, d20 + .long 0xf2426d02 // vadd.f32 d22, d2, d2 + .long 0xf3c73f10 // vmov.f32 d19, #-1 + .long 0xf35501b4 // vbsl d16, d21, d20 + .long 0xf2409d29 // vadd.f32 d25, d0, d25 + .long 0xf2408d23 // vadd.f32 d24, d0, d19 + .long 0xf3f9e629 // vclt.f32 d30, d25, #0 + .long 0xf360ae22 // vcgt.f32 d26, d0, d18 + .long 0xf247cda3 // vadd.f32 d28, d23, d19 + .long 0xf367dea2 // vcgt.f32 d29, d23, d18 + .long 0xf240bd22 // vadd.f32 d27, d0, d18 + .long 0xf2666da0 // vsub.f32 d22, d22, d16 + .long 0xf2474da2 // vadd.f32 d20, d23, d18 + .long 0xf358a190 // vbsl d26, d24, d0 + .long 0xf3f98600 // vclt.f32 d24, d0, #0 + .long 0xf3695ea2 // vcgt.f32 d21, d25, d18 + .long 0xf2493da3 // vadd.f32 d19, d25, d19 + .long 0xf35b81ba // vbsl d24, d27, d26 + .long 0xf3f9a627 // vclt.f32 d26, d23, #0 + .long 0xf35cd1b7 // vbsl d29, d28, d23 + .long 0xeddfcb35 // vldr d28, [pc, #212] + .long 0xf2492da2 // vadd.f32 d18, d25, d18 + .long 0xf260bda6 // vsub.f32 d27, d16, d22 + .long 0xf354a1bd // vbsl d26, d20, d29 + .long 0xf2c14f18 // vmov.f32 d20, #6 + .long 0xf35351b9 // vbsl d21, d19, d25 + .long 0xf26cddaa // vsub.f32 d29, d28, d26 + .long 0xf352e1b5 // vbsl d30, d18, d21 + .long 0xf34b2db4 // vmul.f32 d18, d27, d20 + .long 0xf26c3da8 // vsub.f32 d19, d28, d24 + .long 0xf26c4dae // vsub.f32 d20, d28, d30 + .long 0xf36cbeaa // vcgt.f32 d27, d28, d26 + .long 0xf3425dbd // vmul.f32 d21, d18, d29 + .long 0xf3477db2 // vmul.f32 d23, d23, d18 + .long 0xf3423db3 // vmul.f32 d19, d18, d19 + .long 0xf3444db2 // vmul.f32 d20, d20, d18 + .long 0xf2465da5 // vadd.f32 d21, d22, d21 + .long 0xf342dd90 // vmul.f32 d29, d18, d0 + .long 0xf3210eaa // vcgt.f32 d0, d17, d26 + .long 0xf3492db2 // vmul.f32 d18, d25, d18 + .long 0xf355b1b6 // vbsl d27, d21, d22 + .long 0xeddf5b22 // vldr d21, [pc, #136] + .long 0xf36cfea8 // vcgt.f32 d31, d28, d24 + .long 0xf2463da3 // vadd.f32 d19, d22, d19 + .long 0xf36cceae // vcgt.f32 d28, d28, d30 + .long 0xf2464da4 // vadd.f32 d20, d22, d20 + .long 0xf365aeaa // vcgt.f32 d26, d21, d26 + .long 0xf2467da7 // vadd.f32 d23, d22, d23 + .long 0xf3619ea8 // vcgt.f32 d25, d17, d24 + .long 0xf3611eae // vcgt.f32 d17, d17, d30 + .long 0xf31001bb // vbsl d0, d16, d27 + .long 0xf353f1b6 // vbsl d31, d19, d22 + .long 0xf354c1b6 // vbsl d28, d20, d22 + .long 0xf357a190 // vbsl d26, d23, d0 + .long 0xf3b90501 // vceq.f32 d0, d1, #0 + .long 0xf3658ea8 // vcgt.f32 d24, d21, d24 + .long 0xf246ddad // vadd.f32 d29, d22, d29 + .long 0xf3653eae // vcgt.f32 d19, d21, d30 + .long 0xf2462da2 // vadd.f32 d18, d22, d18 + .long 0xf35091bf // vbsl d25, d16, d31 + .long 0xf35011bc // vbsl d17, d16, d28 + .long 0xf2600110 // vorr d16, d0, d0 + .long 0xf2201110 // vorr d1, d0, d0 + .long 0xf352013a // vbsl d16, d2, d26 + .long 0xf35d81b9 // vbsl d24, d29, d25 + .long 0xf35231b1 // vbsl d19, d18, d17 + .long 0xf3121138 // vbsl d1, d2, d24 + .long 0xf3120133 // vbsl d0, d2, d19 + .long 0xf22021b0 // vorr d2, d16, d16 + .long 0xe12fff13 // bx r3 + .long 0xe320f000 // nop {0} + .long 0xbeaaaaab // .word 0xbeaaaaab + .long 0xbeaaaaab // .word 0xbeaaaaab + .long 0x3eaaaaab // .word 0x3eaaaaab + .long 0x3eaaaaab // .word 0x3eaaaaab + .long 0x3f2aaaab // .word 0x3f2aaaab + .long 0x3f2aaaab // .word 0x3f2aaaab + .long 0x3e2aaaab // .word 0x3e2aaaab + .long 0x3e2aaaab // .word 0x3e2aaaab HIDDEN _sk_scale_1_float_vfp4 .globl _sk_scale_1_float_vfp4 @@ -3724,7 +4010,6 @@ _sk_scale_1_float_vfp4: .long 0xf3002d92 // vmul.f32 d2, d16, d2 .long 0xf3003d93 // vmul.f32 d3, d16, d3 .long 0xe12fff1c // bx ip - .long 0xe320f000 // nop {0} HIDDEN _sk_scale_u8_vfp4 .globl _sk_scale_u8_vfp4 @@ -5113,7 +5398,7 @@ _sk_linear_gradient_vfp4: .long 0xe494c00c // ldr ip, [r4], #12 .long 0xf4a41c9f // vld1.32 {d1[]}, [r4 :32] .long 0xe35c0000 // cmp ip, #0 - .long 0x0a000036 // beq 2448 <sk_linear_gradient_vfp4+0x110> + .long 0x0a000036 // beq 2680 <sk_linear_gradient_vfp4+0x110> .long 0xe59e3004 // ldr r3, [lr, #4] .long 0xf2c01010 // vmov.i32 d17, #0 .long 0xf2c07010 // vmov.i32 d23, #0 @@ -5163,12 +5448,12 @@ _sk_linear_gradient_vfp4: .long 0xf26371b3 // vorr d23, d19, d19 .long 0xf26481b4 // vorr d24, d20, d20 .long 0xf26561b5 // vorr d22, d21, d21 - .long 0x1affffd3 // bne 2384 <sk_linear_gradient_vfp4+0x4c> + .long 0x1affffd3 // bne 25bc <sk_linear_gradient_vfp4+0x4c> .long 0xf26c01bc // vorr d16, d28, d28 .long 0xf22b11bb // vorr d1, d27, d27 .long 0xf22a21ba // vorr d2, d26, d26 .long 0xf22931b9 // vorr d3, d25, d25 - .long 0xea000003 // b 2458 <sk_linear_gradient_vfp4+0x120> + .long 0xea000003 // b 2690 <sk_linear_gradient_vfp4+0x120> .long 0xf2c05010 // vmov.i32 d21, #0 .long 0xf2c04010 // vmov.i32 d20, #0 .long 0xf2c03010 // vmov.i32 d19, #0 @@ -6233,6 +6518,175 @@ _sk_to_2dot2_hsw: .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax +HIDDEN _sk_rgb_to_hsl_hsw +.globl _sk_rgb_to_hsl_hsw +_sk_rgb_to_hsl_hsw: + .byte 197,252,17,124,36,200 // vmovups %ymm7,-0x38(%rsp) + .byte 197,252,40,254 // vmovaps %ymm6,%ymm7 + .byte 197,252,40,245 // vmovaps %ymm5,%ymm6 + .byte 197,252,40,236 // vmovaps %ymm4,%ymm5 + .byte 197,252,40,227 // vmovaps %ymm3,%ymm4 + .byte 197,252,40,216 // vmovaps %ymm0,%ymm3 + .byte 184,0,0,128,63 // mov $0x3f800000,%eax + .byte 197,121,110,192 // vmovd %eax,%xmm8 + .byte 65,184,171,170,42,62 // mov $0x3e2aaaab,%r8d + .byte 184,0,0,192,64 // mov $0x40c00000,%eax + .byte 197,121,110,200 // vmovd %eax,%xmm9 + .byte 65,185,0,0,0,64 // mov $0x40000000,%r9d + .byte 184,0,0,128,64 // mov $0x40800000,%eax + .byte 197,121,110,208 // vmovd %eax,%xmm10 + .byte 197,100,95,217 // vmaxps %ymm1,%ymm3,%ymm11 + .byte 197,36,95,218 // vmaxps %ymm2,%ymm11,%ymm11 + .byte 197,100,93,225 // vminps %ymm1,%ymm3,%ymm12 + .byte 197,28,93,226 // vminps %ymm2,%ymm12,%ymm12 + .byte 196,65,36,92,236 // vsubps %ymm12,%ymm11,%ymm13 + .byte 196,66,125,88,192 // vpbroadcastd %xmm8,%ymm8 + .byte 196,65,60,94,197 // vdivps %ymm13,%ymm8,%ymm8 + .byte 197,116,194,242,1 // vcmpltps %ymm2,%ymm1,%ymm14 + .byte 196,66,125,88,201 // vpbroadcastd %xmm9,%ymm9 + .byte 196,65,4,87,255 // vxorps %ymm15,%ymm15,%ymm15 + .byte 196,67,5,74,201,224 // vblendvps %ymm14,%ymm9,%ymm15,%ymm9 + .byte 197,116,92,242 // vsubps %ymm2,%ymm1,%ymm14 + .byte 196,66,61,168,241 // vfmadd213ps %ymm9,%ymm8,%ymm14 + .byte 197,236,92,195 // vsubps %ymm3,%ymm2,%ymm0 + .byte 197,100,92,201 // vsubps %ymm1,%ymm3,%ymm9 + .byte 196,66,125,88,210 // vpbroadcastd %xmm10,%ymm10 + .byte 196,66,61,168,202 // vfmadd213ps %ymm10,%ymm8,%ymm9 + .byte 196,193,121,110,209 // vmovd %r9d,%xmm2 + .byte 196,98,125,88,210 // vpbroadcastd %xmm2,%ymm10 + .byte 196,194,61,168,194 // vfmadd213ps %ymm10,%ymm8,%ymm0 + .byte 197,164,194,201,0 // vcmpeqps %ymm1,%ymm11,%ymm1 + .byte 196,227,53,74,192,16 // vblendvps %ymm1,%ymm0,%ymm9,%ymm0 + .byte 184,0,0,0,63 // mov $0x3f000000,%eax + .byte 197,249,110,200 // vmovd %eax,%xmm1 + .byte 197,164,194,211,0 // vcmpeqps %ymm3,%ymm11,%ymm2 + .byte 196,195,125,74,198,32 // vblendvps %ymm2,%ymm14,%ymm0,%ymm0 + .byte 196,193,36,88,220 // vaddps %ymm12,%ymm11,%ymm3 + .byte 196,226,125,88,201 // vpbroadcastd %xmm1,%ymm1 + .byte 197,228,89,209 // vmulps %ymm1,%ymm3,%ymm2 + .byte 197,244,194,202,1 // vcmpltps %ymm2,%ymm1,%ymm1 + .byte 196,65,44,92,195 // vsubps %ymm11,%ymm10,%ymm8 + .byte 196,65,60,92,196 // vsubps %ymm12,%ymm8,%ymm8 + .byte 196,195,101,74,200,16 // vblendvps %ymm1,%ymm8,%ymm3,%ymm1 + .byte 196,193,36,194,220,0 // vcmpeqps %ymm12,%ymm11,%ymm3 + .byte 197,148,94,201 // vdivps %ymm1,%ymm13,%ymm1 + .byte 196,195,125,74,199,48 // vblendvps %ymm3,%ymm15,%ymm0,%ymm0 + .byte 196,195,117,74,207,48 // vblendvps %ymm3,%ymm15,%ymm1,%ymm1 + .byte 196,193,121,110,216 // vmovd %r8d,%xmm3 + .byte 196,226,125,88,219 // vpbroadcastd %xmm3,%ymm3 + .byte 197,228,89,192 // vmulps %ymm0,%ymm3,%ymm0 + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 197,252,40,220 // vmovaps %ymm4,%ymm3 + .byte 197,252,40,229 // vmovaps %ymm5,%ymm4 + .byte 197,252,40,238 // vmovaps %ymm6,%ymm5 + .byte 197,252,40,247 // vmovaps %ymm7,%ymm6 + .byte 197,252,16,124,36,200 // vmovups -0x38(%rsp),%ymm7 + .byte 255,224 // jmpq *%rax + +HIDDEN _sk_hsl_to_rgb_hsw +.globl _sk_hsl_to_rgb_hsw +_sk_hsl_to_rgb_hsw: + .byte 72,131,236,56 // sub $0x38,%rsp + .byte 197,252,17,60,36 // vmovups %ymm7,(%rsp) + .byte 197,252,17,116,36,224 // vmovups %ymm6,-0x20(%rsp) + .byte 197,252,17,108,36,192 // vmovups %ymm5,-0x40(%rsp) + .byte 197,252,17,100,36,160 // vmovups %ymm4,-0x60(%rsp) + .byte 197,252,17,92,36,128 // vmovups %ymm3,-0x80(%rsp) + .byte 197,252,40,233 // vmovaps %ymm1,%ymm5 + .byte 184,0,0,0,63 // mov $0x3f000000,%eax + .byte 197,249,110,200 // vmovd %eax,%xmm1 + .byte 196,98,125,88,193 // vpbroadcastd %xmm1,%ymm8 + .byte 196,193,108,194,200,1 // vcmpltps %ymm8,%ymm2,%ymm1 + .byte 184,0,0,128,63 // mov $0x3f800000,%eax + .byte 197,249,110,224 // vmovd %eax,%xmm4 + .byte 196,98,125,88,212 // vpbroadcastd %xmm4,%ymm10 + .byte 197,172,88,229 // vaddps %ymm5,%ymm10,%ymm4 + .byte 197,220,89,226 // vmulps %ymm2,%ymm4,%ymm4 + .byte 197,84,88,202 // vaddps %ymm2,%ymm5,%ymm9 + .byte 196,98,85,188,202 // vfnmadd231ps %ymm2,%ymm5,%ymm9 + .byte 196,99,53,74,204,16 // vblendvps %ymm1,%ymm4,%ymm9,%ymm9 + .byte 65,184,0,0,0,64 // mov $0x40000000,%r8d + .byte 184,171,170,170,62 // mov $0x3eaaaaab,%eax + .byte 197,249,110,200 // vmovd %eax,%xmm1 + .byte 196,98,125,88,233 // vpbroadcastd %xmm1,%ymm13 + .byte 197,148,88,224 // vaddps %ymm0,%ymm13,%ymm4 + .byte 184,0,0,0,0 // mov $0x0,%eax + .byte 197,249,110,200 // vmovd %eax,%xmm1 + .byte 196,98,125,88,225 // vpbroadcastd %xmm1,%ymm12 + .byte 197,172,194,204,1 // vcmpltps %ymm4,%ymm10,%ymm1 + .byte 196,65,92,92,218 // vsubps %ymm10,%ymm4,%ymm11 + .byte 196,195,93,74,203,16 // vblendvps %ymm1,%ymm11,%ymm4,%ymm1 + .byte 196,65,92,194,220,1 // vcmpltps %ymm12,%ymm4,%ymm11 + .byte 197,44,88,244 // vaddps %ymm4,%ymm10,%ymm14 + .byte 196,195,117,74,206,176 // vblendvps %ymm11,%ymm14,%ymm1,%ymm1 + .byte 196,193,121,110,216 // vmovd %r8d,%xmm3 + .byte 196,98,125,88,219 // vpbroadcastd %xmm3,%ymm11 + .byte 196,66,109,170,217 // vfmsub213ps %ymm9,%ymm2,%ymm11 + .byte 65,184,171,170,42,62 // mov $0x3e2aaaab,%r8d + .byte 184,0,0,192,64 // mov $0x40c00000,%eax + .byte 197,249,110,216 // vmovd %eax,%xmm3 + .byte 196,226,125,88,219 // vpbroadcastd %xmm3,%ymm3 + .byte 196,65,52,92,243 // vsubps %ymm11,%ymm9,%ymm14 + .byte 197,12,89,243 // vmulps %ymm3,%ymm14,%ymm14 + .byte 184,171,170,42,63 // mov $0x3f2aaaab,%eax + .byte 197,249,110,216 // vmovd %eax,%xmm3 + .byte 196,98,125,88,251 // vpbroadcastd %xmm3,%ymm15 + .byte 197,132,92,217 // vsubps %ymm1,%ymm15,%ymm3 + .byte 196,194,13,168,219 // vfmadd213ps %ymm11,%ymm14,%ymm3 + .byte 196,193,116,194,255,1 // vcmpltps %ymm15,%ymm1,%ymm7 + .byte 196,227,37,74,219,112 // vblendvps %ymm7,%ymm3,%ymm11,%ymm3 + .byte 196,193,116,194,248,1 // vcmpltps %ymm8,%ymm1,%ymm7 + .byte 196,195,101,74,249,112 // vblendvps %ymm7,%ymm9,%ymm3,%ymm7 + .byte 196,193,121,110,216 // vmovd %r8d,%xmm3 + .byte 196,226,125,88,219 // vpbroadcastd %xmm3,%ymm3 + .byte 197,244,194,203,1 // vcmpltps %ymm3,%ymm1,%ymm1 + .byte 196,194,13,168,227 // vfmadd213ps %ymm11,%ymm14,%ymm4 + .byte 196,227,69,74,228,16 // vblendvps %ymm1,%ymm4,%ymm7,%ymm4 + .byte 197,172,194,200,1 // vcmpltps %ymm0,%ymm10,%ymm1 + .byte 196,193,124,92,250 // vsubps %ymm10,%ymm0,%ymm7 + .byte 196,227,125,74,207,16 // vblendvps %ymm1,%ymm7,%ymm0,%ymm1 + .byte 196,193,124,194,252,1 // vcmpltps %ymm12,%ymm0,%ymm7 + .byte 197,172,88,240 // vaddps %ymm0,%ymm10,%ymm6 + .byte 196,227,117,74,206,112 // vblendvps %ymm7,%ymm6,%ymm1,%ymm1 + .byte 197,132,92,241 // vsubps %ymm1,%ymm15,%ymm6 + .byte 196,194,13,168,243 // vfmadd213ps %ymm11,%ymm14,%ymm6 + .byte 196,193,116,194,255,1 // vcmpltps %ymm15,%ymm1,%ymm7 + .byte 196,227,37,74,246,112 // vblendvps %ymm7,%ymm6,%ymm11,%ymm6 + .byte 196,193,116,194,248,1 // vcmpltps %ymm8,%ymm1,%ymm7 + .byte 196,195,77,74,241,112 // vblendvps %ymm7,%ymm9,%ymm6,%ymm6 + .byte 197,244,194,203,1 // vcmpltps %ymm3,%ymm1,%ymm1 + .byte 196,193,124,92,253 // vsubps %ymm13,%ymm0,%ymm7 + .byte 196,194,13,168,195 // vfmadd213ps %ymm11,%ymm14,%ymm0 + .byte 196,227,77,74,200,16 // vblendvps %ymm1,%ymm0,%ymm6,%ymm1 + .byte 197,172,194,199,1 // vcmpltps %ymm7,%ymm10,%ymm0 + .byte 196,193,68,92,242 // vsubps %ymm10,%ymm7,%ymm6 + .byte 196,227,69,74,198,0 // vblendvps %ymm0,%ymm6,%ymm7,%ymm0 + .byte 196,193,68,194,244,1 // vcmpltps %ymm12,%ymm7,%ymm6 + .byte 197,44,88,215 // vaddps %ymm7,%ymm10,%ymm10 + .byte 196,195,125,74,194,96 // vblendvps %ymm6,%ymm10,%ymm0,%ymm0 + .byte 196,194,13,168,251 // vfmadd213ps %ymm11,%ymm14,%ymm7 + .byte 197,132,92,240 // vsubps %ymm0,%ymm15,%ymm6 + .byte 196,194,13,168,243 // vfmadd213ps %ymm11,%ymm14,%ymm6 + .byte 196,65,124,194,215,1 // vcmpltps %ymm15,%ymm0,%ymm10 + .byte 196,227,37,74,246,160 // vblendvps %ymm10,%ymm6,%ymm11,%ymm6 + .byte 196,65,124,194,192,1 // vcmpltps %ymm8,%ymm0,%ymm8 + .byte 196,195,77,74,241,128 // vblendvps %ymm8,%ymm9,%ymm6,%ymm6 + .byte 197,252,194,195,1 // vcmpltps %ymm3,%ymm0,%ymm0 + .byte 196,227,77,74,223,0 // vblendvps %ymm0,%ymm7,%ymm6,%ymm3 + .byte 197,252,87,192 // vxorps %ymm0,%ymm0,%ymm0 + .byte 197,212,194,232,0 // vcmpeqps %ymm0,%ymm5,%ymm5 + .byte 196,227,93,74,194,80 // vblendvps %ymm5,%ymm2,%ymm4,%ymm0 + .byte 196,227,117,74,202,80 // vblendvps %ymm5,%ymm2,%ymm1,%ymm1 + .byte 196,227,101,74,210,80 // vblendvps %ymm5,%ymm2,%ymm3,%ymm2 + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 197,252,16,92,36,128 // vmovups -0x80(%rsp),%ymm3 + .byte 197,252,16,100,36,160 // vmovups -0x60(%rsp),%ymm4 + .byte 197,252,16,108,36,192 // vmovups -0x40(%rsp),%ymm5 + .byte 197,252,16,116,36,224 // vmovups -0x20(%rsp),%ymm6 + .byte 197,252,16,60,36 // vmovups (%rsp),%ymm7 + .byte 72,131,196,56 // add $0x38,%rsp + .byte 255,224 // jmpq *%rax + HIDDEN _sk_scale_1_float_hsw .globl _sk_scale_1_float_hsw _sk_scale_1_float_hsw: @@ -6253,7 +6707,7 @@ _sk_scale_u8_hsw: .byte 72,139,0 // mov (%rax),%rax .byte 72,1,248 // add %rdi,%rax .byte 77,133,192 // test %r8,%r8 - .byte 117,56 // jne e9d <_sk_scale_u8_hsw+0x48> + .byte 117,56 // jne 11bc <_sk_scale_u8_hsw+0x48> .byte 197,122,126,0 // vmovq (%rax),%xmm8 .byte 196,66,125,49,192 // vpmovzxbd %xmm8,%ymm8 .byte 196,65,124,91,192 // vcvtdq2ps %ymm8,%ymm8 @@ -6277,9 +6731,9 @@ _sk_scale_u8_hsw: .byte 77,9,217 // or %r11,%r9 .byte 72,131,193,8 // add $0x8,%rcx .byte 73,255,202 // dec %r10 - .byte 117,234 // jne ea5 <_sk_scale_u8_hsw+0x50> + .byte 117,234 // jne 11c4 <_sk_scale_u8_hsw+0x50> .byte 196,65,249,110,193 // vmovq %r9,%xmm8 - .byte 235,167 // jmp e69 <_sk_scale_u8_hsw+0x14> + .byte 235,167 // jmp 1188 <_sk_scale_u8_hsw+0x14> HIDDEN _sk_lerp_1_float_hsw .globl _sk_lerp_1_float_hsw @@ -6305,7 +6759,7 @@ _sk_lerp_u8_hsw: .byte 72,139,0 // mov (%rax),%rax .byte 72,1,248 // add %rdi,%rax .byte 77,133,192 // test %r8,%r8 - .byte 117,76 // jne f4d <_sk_lerp_u8_hsw+0x5c> + .byte 117,76 // jne 126c <_sk_lerp_u8_hsw+0x5c> .byte 197,122,126,0 // vmovq (%rax),%xmm8 .byte 196,66,125,49,192 // vpmovzxbd %xmm8,%ymm8 .byte 196,65,124,91,192 // vcvtdq2ps %ymm8,%ymm8 @@ -6333,9 +6787,9 @@ _sk_lerp_u8_hsw: .byte 77,9,217 // or %r11,%r9 .byte 72,131,193,8 // add $0x8,%rcx .byte 73,255,202 // dec %r10 - .byte 117,234 // jne f55 <_sk_lerp_u8_hsw+0x64> + .byte 117,234 // jne 1274 <_sk_lerp_u8_hsw+0x64> .byte 196,65,249,110,193 // vmovq %r9,%xmm8 - .byte 235,147 // jmp f05 <_sk_lerp_u8_hsw+0x14> + .byte 235,147 // jmp 1224 <_sk_lerp_u8_hsw+0x14> HIDDEN _sk_lerp_565_hsw .globl _sk_lerp_565_hsw @@ -6343,7 +6797,7 @@ _sk_lerp_565_hsw: .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,139,16 // mov (%rax),%r10 .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,179,0,0,0 // jne 1033 <_sk_lerp_565_hsw+0xc1> + .byte 15,133,179,0,0,0 // jne 1352 <_sk_lerp_565_hsw+0xc1> .byte 196,193,122,111,28,122 // vmovdqu (%r10,%rdi,2),%xmm3 .byte 196,98,125,51,195 // vpmovzxwd %xmm3,%ymm8 .byte 184,0,248,0,0 // mov $0xf800,%eax @@ -6389,9 +6843,9 @@ _sk_lerp_565_hsw: .byte 197,225,239,219 // vpxor %xmm3,%xmm3,%xmm3 .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 15,135,59,255,255,255 // ja f86 <_sk_lerp_565_hsw+0x14> + .byte 15,135,59,255,255,255 // ja 12a5 <_sk_lerp_565_hsw+0x14> .byte 69,15,182,192 // movzbl %r8b,%r8d - .byte 76,141,13,74,0,0,0 // lea 0x4a(%rip),%r9 # 10a0 <_sk_lerp_565_hsw+0x12e> + .byte 76,141,13,75,0,0,0 // lea 0x4b(%rip),%r9 # 13c0 <_sk_lerp_565_hsw+0x12f> .byte 75,99,4,129 // movslq (%r9,%r8,4),%rax .byte 76,1,200 // add %r9,%rax .byte 255,224 // jmpq *%rax @@ -6403,27 +6857,28 @@ _sk_lerp_565_hsw: .byte 196,193,97,196,92,122,4,2 // vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm3,%xmm3 .byte 196,193,97,196,92,122,2,1 // vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm3,%xmm3 .byte 196,193,97,196,28,122,0 // vpinsrw $0x0,(%r10,%rdi,2),%xmm3,%xmm3 - .byte 233,231,254,255,255 // jmpq f86 <_sk_lerp_565_hsw+0x14> - .byte 144 // nop - .byte 243,255 // repz (bad) + .byte 233,231,254,255,255 // jmpq 12a5 <_sk_lerp_565_hsw+0x14> + .byte 102,144 // xchg %ax,%ax + .byte 242,255 // repnz (bad) + .byte 255 // (bad) .byte 255 // (bad) + .byte 234 // (bad) .byte 255 // (bad) - .byte 235,255 // jmp 10a5 <_sk_lerp_565_hsw+0x133> .byte 255 // (bad) - .byte 255,227 // jmpq *%rbx + .byte 255,226 // jmpq *%rdx .byte 255 // (bad) .byte 255 // (bad) .byte 255 // (bad) - .byte 219,255 // (bad) + .byte 218,255 // (bad) .byte 255 // (bad) - .byte 255,211 // callq *%rbx + .byte 255,210 // callq *%rdx .byte 255 // (bad) .byte 255 // (bad) - .byte 255,203 // dec %ebx + .byte 255,202 // dec %edx .byte 255 // (bad) .byte 255 // (bad) .byte 255 // (bad) - .byte 191 // .byte 0xbf + .byte 190 // .byte 0xbe .byte 255 // (bad) .byte 255 // (bad) .byte 255 // .byte 0xff @@ -6436,7 +6891,7 @@ _sk_load_tables_hsw: .byte 76,141,12,189,0,0,0,0 // lea 0x0(,%rdi,4),%r9 .byte 76,3,8 // add (%rax),%r9 .byte 77,133,192 // test %r8,%r8 - .byte 117,121 // jne 114a <_sk_load_tables_hsw+0x8e> + .byte 117,121 // jne 146a <_sk_load_tables_hsw+0x8e> .byte 196,193,126,111,25 // vmovdqu (%r9),%ymm3 .byte 185,255,0,0,0 // mov $0xff,%ecx .byte 197,249,110,193 // vmovd %ecx,%xmm0 @@ -6472,7 +6927,7 @@ _sk_load_tables_hsw: .byte 196,193,249,110,194 // vmovq %r10,%xmm0 .byte 196,226,125,33,192 // vpmovsxbd %xmm0,%ymm0 .byte 196,194,125,140,25 // vpmaskmovd (%r9),%ymm0,%ymm3 - .byte 233,99,255,255,255 // jmpq 10d6 <_sk_load_tables_hsw+0x1a> + .byte 233,99,255,255,255 // jmpq 13f6 <_sk_load_tables_hsw+0x1a> HIDDEN _sk_byte_tables_hsw .globl _sk_byte_tables_hsw @@ -6771,7 +7226,7 @@ _sk_load_a8_hsw: .byte 72,139,0 // mov (%rax),%rax .byte 72,1,248 // add %rdi,%rax .byte 77,133,192 // test %r8,%r8 - .byte 117,50 // jne 16a2 <_sk_load_a8_hsw+0x42> + .byte 117,50 // jne 19c2 <_sk_load_a8_hsw+0x42> .byte 197,250,126,0 // vmovq (%rax),%xmm0 .byte 196,226,125,49,192 // vpmovzxbd %xmm0,%ymm0 .byte 197,252,91,192 // vcvtdq2ps %ymm0,%ymm0 @@ -6794,9 +7249,9 @@ _sk_load_a8_hsw: .byte 77,9,217 // or %r11,%r9 .byte 72,131,193,8 // add $0x8,%rcx .byte 73,255,202 // dec %r10 - .byte 117,234 // jne 16aa <_sk_load_a8_hsw+0x4a> + .byte 117,234 // jne 19ca <_sk_load_a8_hsw+0x4a> .byte 196,193,249,110,193 // vmovq %r9,%xmm0 - .byte 235,173 // jmp 1674 <_sk_load_a8_hsw+0x14> + .byte 235,173 // jmp 1994 <_sk_load_a8_hsw+0x14> HIDDEN _sk_gather_a8_hsw .globl _sk_gather_a8_hsw @@ -6869,7 +7324,7 @@ _sk_store_a8_hsw: .byte 196,66,57,43,193 // vpackusdw %xmm9,%xmm8,%xmm8 .byte 196,65,57,103,192 // vpackuswb %xmm8,%xmm8,%xmm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,10 // jne 17df <_sk_store_a8_hsw+0x3b> + .byte 117,10 // jne 1aff <_sk_store_a8_hsw+0x3b> .byte 196,65,123,17,4,57 // vmovsd %xmm8,(%r9,%rdi,1) .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax @@ -6877,10 +7332,10 @@ _sk_store_a8_hsw: .byte 65,128,224,7 // and $0x7,%r8b .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 119,236 // ja 17db <_sk_store_a8_hsw+0x37> + .byte 119,236 // ja 1afb <_sk_store_a8_hsw+0x37> .byte 196,66,121,48,192 // vpmovzxbw %xmm8,%xmm8 .byte 65,15,182,192 // movzbl %r8b,%eax - .byte 76,141,5,69,0,0,0 // lea 0x45(%rip),%r8 # 1844 <_sk_store_a8_hsw+0xa0> + .byte 76,141,5,69,0,0,0 // lea 0x45(%rip),%r8 # 1b64 <_sk_store_a8_hsw+0xa0> .byte 73,99,4,128 // movslq (%r8,%rax,4),%rax .byte 76,1,192 // add %r8,%rax .byte 255,224 // jmpq *%rax @@ -6891,7 +7346,7 @@ _sk_store_a8_hsw: .byte 196,67,121,20,68,57,2,4 // vpextrb $0x4,%xmm8,0x2(%r9,%rdi,1) .byte 196,67,121,20,68,57,1,2 // vpextrb $0x2,%xmm8,0x1(%r9,%rdi,1) .byte 196,67,121,20,4,57,0 // vpextrb $0x0,%xmm8,(%r9,%rdi,1) - .byte 235,154 // jmp 17db <_sk_store_a8_hsw+0x37> + .byte 235,154 // jmp 1afb <_sk_store_a8_hsw+0x37> .byte 15,31,0 // nopl (%rax) .byte 244 // hlt .byte 255 // (bad) @@ -6925,7 +7380,7 @@ _sk_load_g8_hsw: .byte 72,139,0 // mov (%rax),%rax .byte 72,1,248 // add %rdi,%rax .byte 77,133,192 // test %r8,%r8 - .byte 117,60 // jne 18ac <_sk_load_g8_hsw+0x4c> + .byte 117,60 // jne 1bcc <_sk_load_g8_hsw+0x4c> .byte 197,250,126,0 // vmovq (%rax),%xmm0 .byte 196,226,125,49,192 // vpmovzxbd %xmm0,%ymm0 .byte 197,252,91,192 // vcvtdq2ps %ymm0,%ymm0 @@ -6950,9 +7405,9 @@ _sk_load_g8_hsw: .byte 77,9,217 // or %r11,%r9 .byte 72,131,193,8 // add $0x8,%rcx .byte 73,255,202 // dec %r10 - .byte 117,234 // jne 18b4 <_sk_load_g8_hsw+0x54> + .byte 117,234 // jne 1bd4 <_sk_load_g8_hsw+0x54> .byte 196,193,249,110,193 // vmovq %r9,%xmm0 - .byte 235,163 // jmp 1874 <_sk_load_g8_hsw+0x14> + .byte 235,163 // jmp 1b94 <_sk_load_g8_hsw+0x14> HIDDEN _sk_gather_g8_hsw .globl _sk_gather_g8_hsw @@ -7019,9 +7474,9 @@ _sk_gather_i8_hsw: .byte 72,173 // lods %ds:(%rsi),%rax .byte 73,137,192 // mov %rax,%r8 .byte 77,133,192 // test %r8,%r8 - .byte 116,5 // je 19c7 <_sk_gather_i8_hsw+0xf> + .byte 116,5 // je 1ce7 <_sk_gather_i8_hsw+0xf> .byte 76,137,192 // mov %r8,%rax - .byte 235,2 // jmp 19c9 <_sk_gather_i8_hsw+0x11> + .byte 235,2 // jmp 1ce9 <_sk_gather_i8_hsw+0x11> .byte 72,173 // lods %ds:(%rsi),%rax .byte 65,87 // push %r15 .byte 65,86 // push %r14 @@ -7093,7 +7548,7 @@ _sk_load_565_hsw: .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,139,16 // mov (%rax),%r10 .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,149,0,0,0 // jne 1b7b <_sk_load_565_hsw+0xa3> + .byte 15,133,149,0,0,0 // jne 1e9b <_sk_load_565_hsw+0xa3> .byte 196,193,122,111,4,122 // vmovdqu (%r10,%rdi,2),%xmm0 .byte 196,226,125,51,208 // vpmovzxwd %xmm0,%ymm2 .byte 184,0,248,0,0 // mov $0xf800,%eax @@ -7133,9 +7588,9 @@ _sk_load_565_hsw: .byte 197,249,239,192 // vpxor %xmm0,%xmm0,%xmm0 .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 15,135,89,255,255,255 // ja 1aec <_sk_load_565_hsw+0x14> + .byte 15,135,89,255,255,255 // ja 1e0c <_sk_load_565_hsw+0x14> .byte 69,15,182,192 // movzbl %r8b,%r8d - .byte 76,141,13,74,0,0,0 // lea 0x4a(%rip),%r9 # 1be8 <_sk_load_565_hsw+0x110> + .byte 76,141,13,74,0,0,0 // lea 0x4a(%rip),%r9 # 1f08 <_sk_load_565_hsw+0x110> .byte 75,99,4,129 // movslq (%r9,%r8,4),%rax .byte 76,1,200 // add %r9,%rax .byte 255,224 // jmpq *%rax @@ -7147,12 +7602,12 @@ _sk_load_565_hsw: .byte 196,193,121,196,68,122,4,2 // vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0 .byte 196,193,121,196,68,122,2,1 // vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0 .byte 196,193,121,196,4,122,0 // vpinsrw $0x0,(%r10,%rdi,2),%xmm0,%xmm0 - .byte 233,5,255,255,255 // jmpq 1aec <_sk_load_565_hsw+0x14> + .byte 233,5,255,255,255 // jmpq 1e0c <_sk_load_565_hsw+0x14> .byte 144 // nop .byte 243,255 // repz (bad) .byte 255 // (bad) .byte 255 // (bad) - .byte 235,255 // jmp 1bed <_sk_load_565_hsw+0x115> + .byte 235,255 // jmp 1f0d <_sk_load_565_hsw+0x115> .byte 255 // (bad) .byte 255,227 // jmpq *%rbx .byte 255 // (bad) @@ -7277,7 +7732,7 @@ _sk_store_565_hsw: .byte 196,67,125,57,193,1 // vextracti128 $0x1,%ymm8,%xmm9 .byte 196,66,57,43,193 // vpackusdw %xmm9,%xmm8,%xmm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,10 // jne 1db3 <_sk_store_565_hsw+0x6c> + .byte 117,10 // jne 20d3 <_sk_store_565_hsw+0x6c> .byte 196,65,122,127,4,121 // vmovdqu %xmm8,(%r9,%rdi,2) .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax @@ -7285,9 +7740,9 @@ _sk_store_565_hsw: .byte 65,128,224,7 // and $0x7,%r8b .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 119,236 // ja 1daf <_sk_store_565_hsw+0x68> + .byte 119,236 // ja 20cf <_sk_store_565_hsw+0x68> .byte 65,15,182,192 // movzbl %r8b,%eax - .byte 76,141,5,66,0,0,0 // lea 0x42(%rip),%r8 # 1e10 <_sk_store_565_hsw+0xc9> + .byte 76,141,5,66,0,0,0 // lea 0x42(%rip),%r8 # 2130 <_sk_store_565_hsw+0xc9> .byte 73,99,4,128 // movslq (%r8,%rax,4),%rax .byte 76,1,192 // add %r8,%rax .byte 255,224 // jmpq *%rax @@ -7298,7 +7753,7 @@ _sk_store_565_hsw: .byte 196,67,121,21,68,121,4,2 // vpextrw $0x2,%xmm8,0x4(%r9,%rdi,2) .byte 196,67,121,21,68,121,2,1 // vpextrw $0x1,%xmm8,0x2(%r9,%rdi,2) .byte 196,67,121,21,4,121,0 // vpextrw $0x0,%xmm8,(%r9,%rdi,2) - .byte 235,159 // jmp 1daf <_sk_store_565_hsw+0x68> + .byte 235,159 // jmp 20cf <_sk_store_565_hsw+0x68> .byte 247,255 // idiv %edi .byte 255 // (bad) .byte 255 // (bad) @@ -7328,7 +7783,7 @@ _sk_load_4444_hsw: .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,139,16 // mov (%rax),%r10 .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,179,0,0,0 // jne 1eed <_sk_load_4444_hsw+0xc1> + .byte 15,133,179,0,0,0 // jne 220d <_sk_load_4444_hsw+0xc1> .byte 196,193,122,111,4,122 // vmovdqu (%r10,%rdi,2),%xmm0 .byte 196,98,125,51,200 // vpmovzxwd %xmm0,%ymm9 .byte 184,0,240,0,0 // mov $0xf000,%eax @@ -7374,9 +7829,9 @@ _sk_load_4444_hsw: .byte 197,249,239,192 // vpxor %xmm0,%xmm0,%xmm0 .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 15,135,59,255,255,255 // ja 1e40 <_sk_load_4444_hsw+0x14> + .byte 15,135,59,255,255,255 // ja 2160 <_sk_load_4444_hsw+0x14> .byte 69,15,182,192 // movzbl %r8b,%r8d - .byte 76,141,13,76,0,0,0 // lea 0x4c(%rip),%r9 # 1f5c <_sk_load_4444_hsw+0x130> + .byte 76,141,13,76,0,0,0 // lea 0x4c(%rip),%r9 # 227c <_sk_load_4444_hsw+0x130> .byte 75,99,4,129 // movslq (%r9,%r8,4),%rax .byte 76,1,200 // add %r9,%rax .byte 255,224 // jmpq *%rax @@ -7388,13 +7843,13 @@ _sk_load_4444_hsw: .byte 196,193,121,196,68,122,4,2 // vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0 .byte 196,193,121,196,68,122,2,1 // vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0 .byte 196,193,121,196,4,122,0 // vpinsrw $0x0,(%r10,%rdi,2),%xmm0,%xmm0 - .byte 233,231,254,255,255 // jmpq 1e40 <_sk_load_4444_hsw+0x14> + .byte 233,231,254,255,255 // jmpq 2160 <_sk_load_4444_hsw+0x14> .byte 15,31,0 // nopl (%rax) .byte 241 // icebp .byte 255 // (bad) .byte 255 // (bad) .byte 255 // (bad) - .byte 233,255,255,255,225 // jmpq ffffffffe2001f64 <_sk_linear_gradient_2stops_hsw+0xffffffffe1fff152> + .byte 233,255,255,255,225 // jmpq ffffffffe2002284 <_sk_linear_gradient_2stops_hsw+0xffffffffe1fff152> .byte 255 // (bad) .byte 255 // (bad) .byte 255 // (bad) @@ -7524,7 +7979,7 @@ _sk_store_4444_hsw: .byte 196,67,125,57,193,1 // vextracti128 $0x1,%ymm8,%xmm9 .byte 196,66,57,43,193 // vpackusdw %xmm9,%xmm8,%xmm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,10 // jne 214b <_sk_store_4444_hsw+0x72> + .byte 117,10 // jne 246b <_sk_store_4444_hsw+0x72> .byte 196,65,122,127,4,121 // vmovdqu %xmm8,(%r9,%rdi,2) .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax @@ -7532,9 +7987,9 @@ _sk_store_4444_hsw: .byte 65,128,224,7 // and $0x7,%r8b .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 119,236 // ja 2147 <_sk_store_4444_hsw+0x6e> + .byte 119,236 // ja 2467 <_sk_store_4444_hsw+0x6e> .byte 65,15,182,192 // movzbl %r8b,%eax - .byte 76,141,5,66,0,0,0 // lea 0x42(%rip),%r8 # 21a8 <_sk_store_4444_hsw+0xcf> + .byte 76,141,5,66,0,0,0 // lea 0x42(%rip),%r8 # 24c8 <_sk_store_4444_hsw+0xcf> .byte 73,99,4,128 // movslq (%r8,%rax,4),%rax .byte 76,1,192 // add %r8,%rax .byte 255,224 // jmpq *%rax @@ -7545,7 +8000,7 @@ _sk_store_4444_hsw: .byte 196,67,121,21,68,121,4,2 // vpextrw $0x2,%xmm8,0x4(%r9,%rdi,2) .byte 196,67,121,21,68,121,2,1 // vpextrw $0x1,%xmm8,0x2(%r9,%rdi,2) .byte 196,67,121,21,4,121,0 // vpextrw $0x0,%xmm8,(%r9,%rdi,2) - .byte 235,159 // jmp 2147 <_sk_store_4444_hsw+0x6e> + .byte 235,159 // jmp 2467 <_sk_store_4444_hsw+0x6e> .byte 247,255 // idiv %edi .byte 255 // (bad) .byte 255 // (bad) @@ -7577,7 +8032,7 @@ _sk_load_8888_hsw: .byte 76,141,12,189,0,0,0,0 // lea 0x0(,%rdi,4),%r9 .byte 76,3,8 // add (%rax),%r9 .byte 77,133,192 // test %r8,%r8 - .byte 117,104 // jne 2241 <_sk_load_8888_hsw+0x7d> + .byte 117,104 // jne 2561 <_sk_load_8888_hsw+0x7d> .byte 196,193,126,111,25 // vmovdqu (%r9),%ymm3 .byte 184,255,0,0,0 // mov $0xff,%eax .byte 197,249,110,192 // vmovd %eax,%xmm0 @@ -7610,7 +8065,7 @@ _sk_load_8888_hsw: .byte 196,225,249,110,192 // vmovq %rax,%xmm0 .byte 196,226,125,33,192 // vpmovsxbd %xmm0,%ymm0 .byte 196,194,125,140,25 // vpmaskmovd (%r9),%ymm0,%ymm3 - .byte 233,116,255,255,255 // jmpq 21de <_sk_load_8888_hsw+0x1a> + .byte 233,116,255,255,255 // jmpq 24fe <_sk_load_8888_hsw+0x1a> HIDDEN _sk_gather_8888_hsw .globl _sk_gather_8888_hsw @@ -7672,7 +8127,7 @@ _sk_store_8888_hsw: .byte 196,65,45,235,192 // vpor %ymm8,%ymm10,%ymm8 .byte 196,65,53,235,192 // vpor %ymm8,%ymm9,%ymm8 .byte 77,133,192 // test %r8,%r8 - .byte 117,12 // jne 2364 <_sk_store_8888_hsw+0x74> + .byte 117,12 // jne 2684 <_sk_store_8888_hsw+0x74> .byte 196,65,126,127,1 // vmovdqu %ymm8,(%r9) .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,137,193 // mov %r8,%rcx @@ -7685,7 +8140,7 @@ _sk_store_8888_hsw: .byte 196,97,249,110,200 // vmovq %rax,%xmm9 .byte 196,66,125,33,201 // vpmovsxbd %xmm9,%ymm9 .byte 196,66,53,142,1 // vpmaskmovd %ymm8,%ymm9,(%r9) - .byte 235,211 // jmp 235d <_sk_store_8888_hsw+0x6d> + .byte 235,211 // jmp 267d <_sk_store_8888_hsw+0x6d> HIDDEN _sk_load_f16_hsw .globl _sk_load_f16_hsw @@ -7693,7 +8148,7 @@ _sk_load_f16_hsw: .byte 72,173 // lods %ds:(%rsi),%rax .byte 72,139,0 // mov (%rax),%rax .byte 72,133,201 // test %rcx,%rcx - .byte 117,97 // jne 23f5 <_sk_load_f16_hsw+0x6b> + .byte 117,97 // jne 2715 <_sk_load_f16_hsw+0x6b> .byte 197,121,16,4,248 // vmovupd (%rax,%rdi,8),%xmm8 .byte 197,249,16,84,248,16 // vmovupd 0x10(%rax,%rdi,8),%xmm2 .byte 197,249,16,92,248,32 // vmovupd 0x20(%rax,%rdi,8),%xmm3 @@ -7719,29 +8174,29 @@ _sk_load_f16_hsw: .byte 197,123,16,4,248 // vmovsd (%rax,%rdi,8),%xmm8 .byte 196,65,49,239,201 // vpxor %xmm9,%xmm9,%xmm9 .byte 72,131,249,1 // cmp $0x1,%rcx - .byte 116,79 // je 2454 <_sk_load_f16_hsw+0xca> + .byte 116,79 // je 2774 <_sk_load_f16_hsw+0xca> .byte 197,57,22,68,248,8 // vmovhpd 0x8(%rax,%rdi,8),%xmm8,%xmm8 .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 114,67 // jb 2454 <_sk_load_f16_hsw+0xca> + .byte 114,67 // jb 2774 <_sk_load_f16_hsw+0xca> .byte 197,251,16,84,248,16 // vmovsd 0x10(%rax,%rdi,8),%xmm2 .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 116,68 // je 2461 <_sk_load_f16_hsw+0xd7> + .byte 116,68 // je 2781 <_sk_load_f16_hsw+0xd7> .byte 197,233,22,84,248,24 // vmovhpd 0x18(%rax,%rdi,8),%xmm2,%xmm2 .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 114,56 // jb 2461 <_sk_load_f16_hsw+0xd7> + .byte 114,56 // jb 2781 <_sk_load_f16_hsw+0xd7> .byte 197,251,16,92,248,32 // vmovsd 0x20(%rax,%rdi,8),%xmm3 .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 15,132,114,255,255,255 // je 23ab <_sk_load_f16_hsw+0x21> + .byte 15,132,114,255,255,255 // je 26cb <_sk_load_f16_hsw+0x21> .byte 197,225,22,92,248,40 // vmovhpd 0x28(%rax,%rdi,8),%xmm3,%xmm3 .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 15,130,98,255,255,255 // jb 23ab <_sk_load_f16_hsw+0x21> + .byte 15,130,98,255,255,255 // jb 26cb <_sk_load_f16_hsw+0x21> .byte 197,122,126,76,248,48 // vmovq 0x30(%rax,%rdi,8),%xmm9 - .byte 233,87,255,255,255 // jmpq 23ab <_sk_load_f16_hsw+0x21> + .byte 233,87,255,255,255 // jmpq 26cb <_sk_load_f16_hsw+0x21> .byte 197,225,87,219 // vxorpd %xmm3,%xmm3,%xmm3 .byte 197,233,87,210 // vxorpd %xmm2,%xmm2,%xmm2 - .byte 233,74,255,255,255 // jmpq 23ab <_sk_load_f16_hsw+0x21> + .byte 233,74,255,255,255 // jmpq 26cb <_sk_load_f16_hsw+0x21> .byte 197,225,87,219 // vxorpd %xmm3,%xmm3,%xmm3 - .byte 233,65,255,255,255 // jmpq 23ab <_sk_load_f16_hsw+0x21> + .byte 233,65,255,255,255 // jmpq 26cb <_sk_load_f16_hsw+0x21> HIDDEN _sk_gather_f16_hsw .globl _sk_gather_f16_hsw @@ -7797,7 +8252,7 @@ _sk_store_f16_hsw: .byte 196,65,57,98,205 // vpunpckldq %xmm13,%xmm8,%xmm9 .byte 196,65,57,106,197 // vpunpckhdq %xmm13,%xmm8,%xmm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,27 // jne 2559 <_sk_store_f16_hsw+0x65> + .byte 117,27 // jne 2879 <_sk_store_f16_hsw+0x65> .byte 197,120,17,28,248 // vmovups %xmm11,(%rax,%rdi,8) .byte 197,120,17,84,248,16 // vmovups %xmm10,0x10(%rax,%rdi,8) .byte 197,120,17,76,248,32 // vmovups %xmm9,0x20(%rax,%rdi,8) @@ -7806,22 +8261,22 @@ _sk_store_f16_hsw: .byte 255,224 // jmpq *%rax .byte 197,121,214,28,248 // vmovq %xmm11,(%rax,%rdi,8) .byte 72,131,249,1 // cmp $0x1,%rcx - .byte 116,241 // je 2555 <_sk_store_f16_hsw+0x61> + .byte 116,241 // je 2875 <_sk_store_f16_hsw+0x61> .byte 197,121,23,92,248,8 // vmovhpd %xmm11,0x8(%rax,%rdi,8) .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 114,229 // jb 2555 <_sk_store_f16_hsw+0x61> + .byte 114,229 // jb 2875 <_sk_store_f16_hsw+0x61> .byte 197,121,214,84,248,16 // vmovq %xmm10,0x10(%rax,%rdi,8) - .byte 116,221 // je 2555 <_sk_store_f16_hsw+0x61> + .byte 116,221 // je 2875 <_sk_store_f16_hsw+0x61> .byte 197,121,23,84,248,24 // vmovhpd %xmm10,0x18(%rax,%rdi,8) .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 114,209 // jb 2555 <_sk_store_f16_hsw+0x61> + .byte 114,209 // jb 2875 <_sk_store_f16_hsw+0x61> .byte 197,121,214,76,248,32 // vmovq %xmm9,0x20(%rax,%rdi,8) - .byte 116,201 // je 2555 <_sk_store_f16_hsw+0x61> + .byte 116,201 // je 2875 <_sk_store_f16_hsw+0x61> .byte 197,121,23,76,248,40 // vmovhpd %xmm9,0x28(%rax,%rdi,8) .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 114,189 // jb 2555 <_sk_store_f16_hsw+0x61> + .byte 114,189 // jb 2875 <_sk_store_f16_hsw+0x61> .byte 197,121,214,68,248,48 // vmovq %xmm8,0x30(%rax,%rdi,8) - .byte 235,181 // jmp 2555 <_sk_store_f16_hsw+0x61> + .byte 235,181 // jmp 2875 <_sk_store_f16_hsw+0x61> HIDDEN _sk_load_u16_be_hsw .globl _sk_load_u16_be_hsw @@ -7829,7 +8284,7 @@ _sk_load_u16_be_hsw: .byte 72,173 // lods %ds:(%rsi),%rax .byte 72,139,0 // mov (%rax),%rax .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,201,0,0,0 // jne 2677 <_sk_load_u16_be_hsw+0xd7> + .byte 15,133,201,0,0,0 // jne 2997 <_sk_load_u16_be_hsw+0xd7> .byte 197,121,16,4,248 // vmovupd (%rax,%rdi,8),%xmm8 .byte 197,249,16,84,248,16 // vmovupd 0x10(%rax,%rdi,8),%xmm2 .byte 197,249,16,92,248,32 // vmovupd 0x20(%rax,%rdi,8),%xmm3 @@ -7878,29 +8333,29 @@ _sk_load_u16_be_hsw: .byte 197,123,16,4,248 // vmovsd (%rax,%rdi,8),%xmm8 .byte 196,65,49,239,201 // vpxor %xmm9,%xmm9,%xmm9 .byte 72,131,249,1 // cmp $0x1,%rcx - .byte 116,79 // je 26d6 <_sk_load_u16_be_hsw+0x136> + .byte 116,79 // je 29f6 <_sk_load_u16_be_hsw+0x136> .byte 197,57,22,68,248,8 // vmovhpd 0x8(%rax,%rdi,8),%xmm8,%xmm8 .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 114,67 // jb 26d6 <_sk_load_u16_be_hsw+0x136> + .byte 114,67 // jb 29f6 <_sk_load_u16_be_hsw+0x136> .byte 197,251,16,84,248,16 // vmovsd 0x10(%rax,%rdi,8),%xmm2 .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 116,68 // je 26e3 <_sk_load_u16_be_hsw+0x143> + .byte 116,68 // je 2a03 <_sk_load_u16_be_hsw+0x143> .byte 197,233,22,84,248,24 // vmovhpd 0x18(%rax,%rdi,8),%xmm2,%xmm2 .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 114,56 // jb 26e3 <_sk_load_u16_be_hsw+0x143> + .byte 114,56 // jb 2a03 <_sk_load_u16_be_hsw+0x143> .byte 197,251,16,92,248,32 // vmovsd 0x20(%rax,%rdi,8),%xmm3 .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 15,132,10,255,255,255 // je 25c5 <_sk_load_u16_be_hsw+0x25> + .byte 15,132,10,255,255,255 // je 28e5 <_sk_load_u16_be_hsw+0x25> .byte 197,225,22,92,248,40 // vmovhpd 0x28(%rax,%rdi,8),%xmm3,%xmm3 .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 15,130,250,254,255,255 // jb 25c5 <_sk_load_u16_be_hsw+0x25> + .byte 15,130,250,254,255,255 // jb 28e5 <_sk_load_u16_be_hsw+0x25> .byte 197,122,126,76,248,48 // vmovq 0x30(%rax,%rdi,8),%xmm9 - .byte 233,239,254,255,255 // jmpq 25c5 <_sk_load_u16_be_hsw+0x25> + .byte 233,239,254,255,255 // jmpq 28e5 <_sk_load_u16_be_hsw+0x25> .byte 197,225,87,219 // vxorpd %xmm3,%xmm3,%xmm3 .byte 197,233,87,210 // vxorpd %xmm2,%xmm2,%xmm2 - .byte 233,226,254,255,255 // jmpq 25c5 <_sk_load_u16_be_hsw+0x25> + .byte 233,226,254,255,255 // jmpq 28e5 <_sk_load_u16_be_hsw+0x25> .byte 197,225,87,219 // vxorpd %xmm3,%xmm3,%xmm3 - .byte 233,217,254,255,255 // jmpq 25c5 <_sk_load_u16_be_hsw+0x25> + .byte 233,217,254,255,255 // jmpq 28e5 <_sk_load_u16_be_hsw+0x25> HIDDEN _sk_store_u16_be_hsw .globl _sk_store_u16_be_hsw @@ -7947,7 +8402,7 @@ _sk_store_u16_be_hsw: .byte 196,65,17,98,200 // vpunpckldq %xmm8,%xmm13,%xmm9 .byte 196,65,17,106,192 // vpunpckhdq %xmm8,%xmm13,%xmm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,31 // jne 27df <_sk_store_u16_be_hsw+0xf3> + .byte 117,31 // jne 2aff <_sk_store_u16_be_hsw+0xf3> .byte 196,65,120,17,28,248 // vmovups %xmm11,(%r8,%rdi,8) .byte 196,65,120,17,84,248,16 // vmovups %xmm10,0x10(%r8,%rdi,8) .byte 196,65,120,17,76,248,32 // vmovups %xmm9,0x20(%r8,%rdi,8) @@ -7956,32 +8411,32 @@ _sk_store_u16_be_hsw: .byte 255,224 // jmpq *%rax .byte 196,65,121,214,28,248 // vmovq %xmm11,(%r8,%rdi,8) .byte 72,131,249,1 // cmp $0x1,%rcx - .byte 116,240 // je 27db <_sk_store_u16_be_hsw+0xef> + .byte 116,240 // je 2afb <_sk_store_u16_be_hsw+0xef> .byte 196,65,121,23,92,248,8 // vmovhpd %xmm11,0x8(%r8,%rdi,8) .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 114,227 // jb 27db <_sk_store_u16_be_hsw+0xef> + .byte 114,227 // jb 2afb <_sk_store_u16_be_hsw+0xef> .byte 196,65,121,214,84,248,16 // vmovq %xmm10,0x10(%r8,%rdi,8) - .byte 116,218 // je 27db <_sk_store_u16_be_hsw+0xef> + .byte 116,218 // je 2afb <_sk_store_u16_be_hsw+0xef> .byte 196,65,121,23,84,248,24 // vmovhpd %xmm10,0x18(%r8,%rdi,8) .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 114,205 // jb 27db <_sk_store_u16_be_hsw+0xef> + .byte 114,205 // jb 2afb <_sk_store_u16_be_hsw+0xef> .byte 196,65,121,214,76,248,32 // vmovq %xmm9,0x20(%r8,%rdi,8) - .byte 116,196 // je 27db <_sk_store_u16_be_hsw+0xef> + .byte 116,196 // je 2afb <_sk_store_u16_be_hsw+0xef> .byte 196,65,121,23,76,248,40 // vmovhpd %xmm9,0x28(%r8,%rdi,8) .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 114,183 // jb 27db <_sk_store_u16_be_hsw+0xef> + .byte 114,183 // jb 2afb <_sk_store_u16_be_hsw+0xef> .byte 196,65,121,214,68,248,48 // vmovq %xmm8,0x30(%r8,%rdi,8) - .byte 235,174 // jmp 27db <_sk_store_u16_be_hsw+0xef> + .byte 235,174 // jmp 2afb <_sk_store_u16_be_hsw+0xef> HIDDEN _sk_load_f32_hsw .globl _sk_load_f32_hsw _sk_load_f32_hsw: .byte 72,173 // lods %ds:(%rsi),%rax .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 119,110 // ja 28a3 <_sk_load_f32_hsw+0x76> + .byte 119,110 // ja 2bc3 <_sk_load_f32_hsw+0x76> .byte 76,139,0 // mov (%rax),%r8 .byte 76,141,12,189,0,0,0,0 // lea 0x0(,%rdi,4),%r9 - .byte 76,141,21,133,0,0,0 // lea 0x85(%rip),%r10 # 28cc <_sk_load_f32_hsw+0x9f> + .byte 76,141,21,133,0,0,0 // lea 0x85(%rip),%r10 # 2bec <_sk_load_f32_hsw+0x9f> .byte 73,99,4,138 // movslq (%r10,%rcx,4),%rax .byte 76,1,208 // add %r10,%rax .byte 255,224 // jmpq *%rax @@ -8038,7 +8493,7 @@ _sk_store_f32_hsw: .byte 196,65,37,20,196 // vunpcklpd %ymm12,%ymm11,%ymm8 .byte 196,65,37,21,220 // vunpckhpd %ymm12,%ymm11,%ymm11 .byte 72,133,201 // test %rcx,%rcx - .byte 117,55 // jne 2959 <_sk_store_f32_hsw+0x6d> + .byte 117,55 // jne 2c79 <_sk_store_f32_hsw+0x6d> .byte 196,67,45,24,225,1 // vinsertf128 $0x1,%xmm9,%ymm10,%ymm12 .byte 196,67,61,24,235,1 // vinsertf128 $0x1,%xmm11,%ymm8,%ymm13 .byte 196,67,45,6,201,49 // vperm2f128 $0x31,%ymm9,%ymm10,%ymm9 @@ -8051,22 +8506,22 @@ _sk_store_f32_hsw: .byte 255,224 // jmpq *%rax .byte 196,65,121,17,20,128 // vmovupd %xmm10,(%r8,%rax,4) .byte 72,131,249,1 // cmp $0x1,%rcx - .byte 116,240 // je 2955 <_sk_store_f32_hsw+0x69> + .byte 116,240 // je 2c75 <_sk_store_f32_hsw+0x69> .byte 196,65,121,17,76,128,16 // vmovupd %xmm9,0x10(%r8,%rax,4) .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 114,227 // jb 2955 <_sk_store_f32_hsw+0x69> + .byte 114,227 // jb 2c75 <_sk_store_f32_hsw+0x69> .byte 196,65,121,17,68,128,32 // vmovupd %xmm8,0x20(%r8,%rax,4) - .byte 116,218 // je 2955 <_sk_store_f32_hsw+0x69> + .byte 116,218 // je 2c75 <_sk_store_f32_hsw+0x69> .byte 196,65,121,17,92,128,48 // vmovupd %xmm11,0x30(%r8,%rax,4) .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 114,205 // jb 2955 <_sk_store_f32_hsw+0x69> + .byte 114,205 // jb 2c75 <_sk_store_f32_hsw+0x69> .byte 196,67,125,25,84,128,64,1 // vextractf128 $0x1,%ymm10,0x40(%r8,%rax,4) - .byte 116,195 // je 2955 <_sk_store_f32_hsw+0x69> + .byte 116,195 // je 2c75 <_sk_store_f32_hsw+0x69> .byte 196,67,125,25,76,128,80,1 // vextractf128 $0x1,%ymm9,0x50(%r8,%rax,4) .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 114,181 // jb 2955 <_sk_store_f32_hsw+0x69> + .byte 114,181 // jb 2c75 <_sk_store_f32_hsw+0x69> .byte 196,67,125,25,68,128,96,1 // vextractf128 $0x1,%ymm8,0x60(%r8,%rax,4) - .byte 235,171 // jmp 2955 <_sk_store_f32_hsw+0x69> + .byte 235,171 // jmp 2c75 <_sk_store_f32_hsw+0x69> HIDDEN _sk_clamp_x_hsw .globl _sk_clamp_x_hsw @@ -8319,7 +8774,7 @@ _sk_linear_gradient_hsw: .byte 196,98,125,24,72,28 // vbroadcastss 0x1c(%rax),%ymm9 .byte 76,139,0 // mov (%rax),%r8 .byte 77,133,192 // test %r8,%r8 - .byte 15,132,143,0,0,0 // je 2de5 <_sk_linear_gradient_hsw+0xb5> + .byte 15,132,143,0,0,0 // je 3105 <_sk_linear_gradient_hsw+0xb5> .byte 72,139,64,8 // mov 0x8(%rax),%rax .byte 72,131,192,32 // add $0x20,%rax .byte 196,65,28,87,228 // vxorps %ymm12,%ymm12,%ymm12 @@ -8346,8 +8801,8 @@ _sk_linear_gradient_hsw: .byte 196,67,13,74,201,208 // vblendvps %ymm13,%ymm9,%ymm14,%ymm9 .byte 72,131,192,36 // add $0x24,%rax .byte 73,255,200 // dec %r8 - .byte 117,140 // jne 2d6f <_sk_linear_gradient_hsw+0x3f> - .byte 235,17 // jmp 2df6 <_sk_linear_gradient_hsw+0xc6> + .byte 117,140 // jne 308f <_sk_linear_gradient_hsw+0x3f> + .byte 235,17 // jmp 3116 <_sk_linear_gradient_hsw+0xc6> .byte 197,244,87,201 // vxorps %ymm1,%ymm1,%ymm1 .byte 197,236,87,210 // vxorps %ymm2,%ymm2,%ymm2 .byte 197,228,87,219 // vxorps %ymm3,%ymm3,%ymm3 @@ -9513,6 +9968,191 @@ _sk_to_2dot2_avx: .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax +HIDDEN _sk_rgb_to_hsl_avx +.globl _sk_rgb_to_hsl_avx +_sk_rgb_to_hsl_avx: + .byte 197,124,95,193 // vmaxps %ymm1,%ymm0,%ymm8 + .byte 197,60,95,194 // vmaxps %ymm2,%ymm8,%ymm8 + .byte 197,124,93,201 // vminps %ymm1,%ymm0,%ymm9 + .byte 197,52,93,202 // vminps %ymm2,%ymm9,%ymm9 + .byte 196,65,60,92,209 // vsubps %ymm9,%ymm8,%ymm10 + .byte 184,0,0,128,63 // mov $0x3f800000,%eax + .byte 197,121,110,216 // vmovd %eax,%xmm11 + .byte 196,67,121,4,219,0 // vpermilps $0x0,%xmm11,%xmm11 + .byte 196,67,37,24,219,1 // vinsertf128 $0x1,%xmm11,%ymm11,%ymm11 + .byte 196,65,36,94,218 // vdivps %ymm10,%ymm11,%ymm11 + .byte 65,184,171,170,42,62 // mov $0x3e2aaaab,%r8d + .byte 197,116,92,226 // vsubps %ymm2,%ymm1,%ymm12 + .byte 196,65,28,89,227 // vmulps %ymm11,%ymm12,%ymm12 + .byte 65,185,0,0,192,64 // mov $0x40c00000,%r9d + .byte 197,108,92,232 // vsubps %ymm0,%ymm2,%ymm13 + .byte 196,65,20,89,235 // vmulps %ymm11,%ymm13,%ymm13 + .byte 65,186,0,0,0,64 // mov $0x40000000,%r10d + .byte 197,124,92,241 // vsubps %ymm1,%ymm0,%ymm14 + .byte 196,65,12,89,219 // vmulps %ymm11,%ymm14,%ymm11 + .byte 184,0,0,128,64 // mov $0x40800000,%eax + .byte 197,121,110,240 // vmovd %eax,%xmm14 + .byte 196,67,121,4,246,0 // vpermilps $0x0,%xmm14,%xmm14 + .byte 196,67,13,24,246,1 // vinsertf128 $0x1,%xmm14,%ymm14,%ymm14 + .byte 196,65,36,88,222 // vaddps %ymm14,%ymm11,%ymm11 + .byte 196,65,121,110,242 // vmovd %r10d,%xmm14 + .byte 197,244,194,210,1 // vcmpltps %ymm2,%ymm1,%ymm2 + .byte 197,188,194,201,0 // vcmpeqps %ymm1,%ymm8,%ymm1 + .byte 196,67,121,4,246,0 // vpermilps $0x0,%xmm14,%xmm14 + .byte 196,67,13,24,246,1 // vinsertf128 $0x1,%xmm14,%ymm14,%ymm14 + .byte 196,65,20,88,238 // vaddps %ymm14,%ymm13,%ymm13 + .byte 196,67,37,74,221,16 // vblendvps %ymm1,%ymm13,%ymm11,%ymm11 + .byte 196,193,121,110,201 // vmovd %r9d,%xmm1 + .byte 196,227,121,4,201,0 // vpermilps $0x0,%xmm1,%xmm1 + .byte 196,227,117,24,201,1 // vinsertf128 $0x1,%xmm1,%ymm1,%ymm1 + .byte 196,65,20,87,237 // vxorps %ymm13,%ymm13,%ymm13 + .byte 196,227,21,74,201,32 // vblendvps %ymm2,%ymm1,%ymm13,%ymm1 + .byte 196,193,116,88,204 // vaddps %ymm12,%ymm1,%ymm1 + .byte 184,0,0,0,63 // mov $0x3f000000,%eax + .byte 197,249,110,208 // vmovd %eax,%xmm2 + .byte 197,188,194,192,0 // vcmpeqps %ymm0,%ymm8,%ymm0 + .byte 196,227,37,74,193,0 // vblendvps %ymm0,%ymm1,%ymm11,%ymm0 + .byte 196,193,60,88,201 // vaddps %ymm9,%ymm8,%ymm1 + .byte 196,227,121,4,210,0 // vpermilps $0x0,%xmm2,%xmm2 + .byte 196,99,109,24,218,1 // vinsertf128 $0x1,%xmm2,%ymm2,%ymm11 + .byte 196,193,116,89,211 // vmulps %ymm11,%ymm1,%ymm2 + .byte 197,36,194,218,1 // vcmpltps %ymm2,%ymm11,%ymm11 + .byte 196,65,12,92,224 // vsubps %ymm8,%ymm14,%ymm12 + .byte 196,65,28,92,225 // vsubps %ymm9,%ymm12,%ymm12 + .byte 196,195,117,74,204,176 // vblendvps %ymm11,%ymm12,%ymm1,%ymm1 + .byte 196,65,60,194,193,0 // vcmpeqps %ymm9,%ymm8,%ymm8 + .byte 197,172,94,201 // vdivps %ymm1,%ymm10,%ymm1 + .byte 196,67,125,74,205,128 // vblendvps %ymm8,%ymm13,%ymm0,%ymm9 + .byte 196,195,117,74,205,128 // vblendvps %ymm8,%ymm13,%ymm1,%ymm1 + .byte 196,193,121,110,192 // vmovd %r8d,%xmm0 + .byte 196,227,121,4,192,0 // vpermilps $0x0,%xmm0,%xmm0 + .byte 196,227,125,24,192,1 // vinsertf128 $0x1,%xmm0,%ymm0,%ymm0 + .byte 196,193,124,89,193 // vmulps %ymm9,%ymm0,%ymm0 + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 255,224 // jmpq *%rax + +HIDDEN _sk_hsl_to_rgb_avx +.globl _sk_hsl_to_rgb_avx +_sk_hsl_to_rgb_avx: + .byte 72,131,236,56 // sub $0x38,%rsp + .byte 197,252,17,60,36 // vmovups %ymm7,(%rsp) + .byte 197,252,17,116,36,224 // vmovups %ymm6,-0x20(%rsp) + .byte 197,252,17,108,36,192 // vmovups %ymm5,-0x40(%rsp) + .byte 197,252,17,100,36,160 // vmovups %ymm4,-0x60(%rsp) + .byte 197,252,17,92,36,128 // vmovups %ymm3,-0x80(%rsp) + .byte 197,252,40,226 // vmovaps %ymm2,%ymm4 + .byte 197,252,40,233 // vmovaps %ymm1,%ymm5 + .byte 197,252,40,216 // vmovaps %ymm0,%ymm3 + .byte 184,0,0,0,63 // mov $0x3f000000,%eax + .byte 197,249,110,192 // vmovd %eax,%xmm0 + .byte 196,227,121,4,192,0 // vpermilps $0x0,%xmm0,%xmm0 + .byte 196,99,125,24,192,1 // vinsertf128 $0x1,%xmm0,%ymm0,%ymm8 + .byte 196,193,92,194,192,1 // vcmpltps %ymm8,%ymm4,%ymm0 + .byte 184,0,0,128,63 // mov $0x3f800000,%eax + .byte 197,249,110,208 // vmovd %eax,%xmm2 + .byte 196,227,121,4,210,0 // vpermilps $0x0,%xmm2,%xmm2 + .byte 196,99,109,24,210,1 // vinsertf128 $0x1,%xmm2,%ymm2,%ymm10 + .byte 197,172,88,213 // vaddps %ymm5,%ymm10,%ymm2 + .byte 197,236,89,212 // vmulps %ymm4,%ymm2,%ymm2 + .byte 197,84,88,204 // vaddps %ymm4,%ymm5,%ymm9 + .byte 197,84,89,220 // vmulps %ymm4,%ymm5,%ymm11 + .byte 196,65,52,92,203 // vsubps %ymm11,%ymm9,%ymm9 + .byte 196,99,53,74,202,0 // vblendvps %ymm0,%ymm2,%ymm9,%ymm9 + .byte 65,184,0,0,0,64 // mov $0x40000000,%r8d + .byte 184,171,170,170,62 // mov $0x3eaaaaab,%eax + .byte 197,249,110,192 // vmovd %eax,%xmm0 + .byte 196,227,121,4,192,0 // vpermilps $0x0,%xmm0,%xmm0 + .byte 196,99,125,24,224,1 // vinsertf128 $0x1,%xmm0,%ymm0,%ymm12 + .byte 197,28,88,251 // vaddps %ymm3,%ymm12,%ymm15 + .byte 184,0,0,0,0 // mov $0x0,%eax + .byte 197,249,110,192 // vmovd %eax,%xmm0 + .byte 196,227,121,4,192,0 // vpermilps $0x0,%xmm0,%xmm0 + .byte 196,99,125,24,232,1 // vinsertf128 $0x1,%xmm0,%ymm0,%ymm13 + .byte 196,193,44,194,199,1 // vcmpltps %ymm15,%ymm10,%ymm0 + .byte 196,193,4,92,210 // vsubps %ymm10,%ymm15,%ymm2 + .byte 196,227,5,74,194,0 // vblendvps %ymm0,%ymm2,%ymm15,%ymm0 + .byte 196,193,4,194,213,1 // vcmpltps %ymm13,%ymm15,%ymm2 + .byte 196,65,44,88,223 // vaddps %ymm15,%ymm10,%ymm11 + .byte 196,195,125,74,203,32 // vblendvps %ymm2,%ymm11,%ymm0,%ymm1 + .byte 196,193,121,110,192 // vmovd %r8d,%xmm0 + .byte 196,227,121,4,192,0 // vpermilps $0x0,%xmm0,%xmm0 + .byte 196,227,125,24,192,1 // vinsertf128 $0x1,%xmm0,%ymm0,%ymm0 + .byte 197,252,89,196 // vmulps %ymm4,%ymm0,%ymm0 + .byte 196,65,124,92,217 // vsubps %ymm9,%ymm0,%ymm11 + .byte 65,184,171,170,42,62 // mov $0x3e2aaaab,%r8d + .byte 184,0,0,192,64 // mov $0x40c00000,%eax + .byte 197,249,110,192 // vmovd %eax,%xmm0 + .byte 196,227,121,4,192,0 // vpermilps $0x0,%xmm0,%xmm0 + .byte 196,227,125,24,192,1 // vinsertf128 $0x1,%xmm0,%ymm0,%ymm0 + .byte 196,193,52,92,211 // vsubps %ymm11,%ymm9,%ymm2 + .byte 197,108,89,240 // vmulps %ymm0,%ymm2,%ymm14 + .byte 184,171,170,42,63 // mov $0x3f2aaaab,%eax + .byte 197,249,110,192 // vmovd %eax,%xmm0 + .byte 196,227,121,4,192,0 // vpermilps $0x0,%xmm0,%xmm0 + .byte 196,227,125,24,192,1 // vinsertf128 $0x1,%xmm0,%ymm0,%ymm0 + .byte 197,252,92,209 // vsubps %ymm1,%ymm0,%ymm2 + .byte 197,140,89,210 // vmulps %ymm2,%ymm14,%ymm2 + .byte 197,164,88,210 // vaddps %ymm2,%ymm11,%ymm2 + .byte 197,244,194,248,1 // vcmpltps %ymm0,%ymm1,%ymm7 + .byte 196,227,37,74,210,112 // vblendvps %ymm7,%ymm2,%ymm11,%ymm2 + .byte 196,193,116,194,248,1 // vcmpltps %ymm8,%ymm1,%ymm7 + .byte 196,195,109,74,249,112 // vblendvps %ymm7,%ymm9,%ymm2,%ymm7 + .byte 196,193,121,110,208 // vmovd %r8d,%xmm2 + .byte 196,227,121,4,210,0 // vpermilps $0x0,%xmm2,%xmm2 + .byte 196,227,109,24,210,1 // vinsertf128 $0x1,%xmm2,%ymm2,%ymm2 + .byte 197,244,194,202,1 // vcmpltps %ymm2,%ymm1,%ymm1 + .byte 196,65,4,89,254 // vmulps %ymm14,%ymm15,%ymm15 + .byte 196,65,36,88,255 // vaddps %ymm15,%ymm11,%ymm15 + .byte 196,67,69,74,255,16 // vblendvps %ymm1,%ymm15,%ymm7,%ymm15 + .byte 197,172,194,203,1 // vcmpltps %ymm3,%ymm10,%ymm1 + .byte 196,193,100,92,250 // vsubps %ymm10,%ymm3,%ymm7 + .byte 196,227,101,74,207,16 // vblendvps %ymm1,%ymm7,%ymm3,%ymm1 + .byte 196,193,100,194,253,1 // vcmpltps %ymm13,%ymm3,%ymm7 + .byte 197,172,88,243 // vaddps %ymm3,%ymm10,%ymm6 + .byte 196,227,117,74,206,112 // vblendvps %ymm7,%ymm6,%ymm1,%ymm1 + .byte 197,252,92,241 // vsubps %ymm1,%ymm0,%ymm6 + .byte 197,140,89,246 // vmulps %ymm6,%ymm14,%ymm6 + .byte 197,164,88,246 // vaddps %ymm6,%ymm11,%ymm6 + .byte 197,244,194,248,1 // vcmpltps %ymm0,%ymm1,%ymm7 + .byte 196,227,37,74,246,112 // vblendvps %ymm7,%ymm6,%ymm11,%ymm6 + .byte 196,193,116,194,248,1 // vcmpltps %ymm8,%ymm1,%ymm7 + .byte 196,195,77,74,241,112 // vblendvps %ymm7,%ymm9,%ymm6,%ymm6 + .byte 197,244,194,202,1 // vcmpltps %ymm2,%ymm1,%ymm1 + .byte 197,140,89,251 // vmulps %ymm3,%ymm14,%ymm7 + .byte 197,164,88,255 // vaddps %ymm7,%ymm11,%ymm7 + .byte 196,227,77,74,207,16 // vblendvps %ymm1,%ymm7,%ymm6,%ymm1 + .byte 196,193,100,92,220 // vsubps %ymm12,%ymm3,%ymm3 + .byte 197,172,194,243,1 // vcmpltps %ymm3,%ymm10,%ymm6 + .byte 196,193,100,92,250 // vsubps %ymm10,%ymm3,%ymm7 + .byte 196,227,101,74,247,96 // vblendvps %ymm6,%ymm7,%ymm3,%ymm6 + .byte 196,193,100,194,253,1 // vcmpltps %ymm13,%ymm3,%ymm7 + .byte 197,44,88,211 // vaddps %ymm3,%ymm10,%ymm10 + .byte 196,195,77,74,242,112 // vblendvps %ymm7,%ymm10,%ymm6,%ymm6 + .byte 197,204,194,248,1 // vcmpltps %ymm0,%ymm6,%ymm7 + .byte 197,252,92,198 // vsubps %ymm6,%ymm0,%ymm0 + .byte 197,140,89,192 // vmulps %ymm0,%ymm14,%ymm0 + .byte 197,164,88,192 // vaddps %ymm0,%ymm11,%ymm0 + .byte 196,227,37,74,192,112 // vblendvps %ymm7,%ymm0,%ymm11,%ymm0 + .byte 196,193,76,194,248,1 // vcmpltps %ymm8,%ymm6,%ymm7 + .byte 196,195,125,74,193,112 // vblendvps %ymm7,%ymm9,%ymm0,%ymm0 + .byte 197,204,194,210,1 // vcmpltps %ymm2,%ymm6,%ymm2 + .byte 196,193,100,89,222 // vmulps %ymm14,%ymm3,%ymm3 + .byte 197,164,88,219 // vaddps %ymm3,%ymm11,%ymm3 + .byte 196,227,125,74,211,32 // vblendvps %ymm2,%ymm3,%ymm0,%ymm2 + .byte 197,252,87,192 // vxorps %ymm0,%ymm0,%ymm0 + .byte 197,212,194,216,0 // vcmpeqps %ymm0,%ymm5,%ymm3 + .byte 196,227,5,74,196,48 // vblendvps %ymm3,%ymm4,%ymm15,%ymm0 + .byte 196,227,117,74,204,48 // vblendvps %ymm3,%ymm4,%ymm1,%ymm1 + .byte 196,227,109,74,212,48 // vblendvps %ymm3,%ymm4,%ymm2,%ymm2 + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 197,252,16,92,36,128 // vmovups -0x80(%rsp),%ymm3 + .byte 197,252,16,100,36,160 // vmovups -0x60(%rsp),%ymm4 + .byte 197,252,16,108,36,192 // vmovups -0x40(%rsp),%ymm5 + .byte 197,252,16,116,36,224 // vmovups -0x20(%rsp),%ymm6 + .byte 197,252,16,60,36 // vmovups (%rsp),%ymm7 + .byte 72,131,196,56 // add $0x38,%rsp + .byte 255,224 // jmpq *%rax + HIDDEN _sk_scale_1_float_avx .globl _sk_scale_1_float_avx _sk_scale_1_float_avx: @@ -9533,7 +10173,7 @@ _sk_scale_u8_avx: .byte 72,139,0 // mov (%rax),%rax .byte 72,1,248 // add %rdi,%rax .byte 77,133,192 // test %r8,%r8 - .byte 117,80 // jne 10ce <_sk_scale_u8_avx+0x60> + .byte 117,80 // jne 1456 <_sk_scale_u8_avx+0x60> .byte 197,122,126,0 // vmovq (%rax),%xmm8 .byte 196,66,121,49,200 // vpmovzxbd %xmm8,%xmm9 .byte 196,67,121,4,192,229 // vpermilps $0xe5,%xmm8,%xmm8 @@ -9561,9 +10201,9 @@ _sk_scale_u8_avx: .byte 77,9,217 // or %r11,%r9 .byte 72,131,193,8 // add $0x8,%rcx .byte 73,255,202 // dec %r10 - .byte 117,234 // jne 10d6 <_sk_scale_u8_avx+0x68> + .byte 117,234 // jne 145e <_sk_scale_u8_avx+0x68> .byte 196,65,249,110,193 // vmovq %r9,%xmm8 - .byte 235,143 // jmp 1082 <_sk_scale_u8_avx+0x14> + .byte 235,143 // jmp 140a <_sk_scale_u8_avx+0x14> HIDDEN _sk_lerp_1_float_avx .globl _sk_lerp_1_float_avx @@ -9593,7 +10233,7 @@ _sk_lerp_u8_avx: .byte 72,139,0 // mov (%rax),%rax .byte 72,1,248 // add %rdi,%rax .byte 77,133,192 // test %r8,%r8 - .byte 117,116 // jne 11b6 <_sk_lerp_u8_avx+0x84> + .byte 117,116 // jne 153e <_sk_lerp_u8_avx+0x84> .byte 197,122,126,0 // vmovq (%rax),%xmm8 .byte 196,66,121,49,200 // vpmovzxbd %xmm8,%xmm9 .byte 196,67,121,4,192,229 // vpermilps $0xe5,%xmm8,%xmm8 @@ -9629,9 +10269,9 @@ _sk_lerp_u8_avx: .byte 77,9,217 // or %r11,%r9 .byte 72,131,193,8 // add $0x8,%rcx .byte 73,255,202 // dec %r10 - .byte 117,234 // jne 11be <_sk_lerp_u8_avx+0x8c> + .byte 117,234 // jne 1546 <_sk_lerp_u8_avx+0x8c> .byte 196,65,249,110,193 // vmovq %r9,%xmm8 - .byte 233,104,255,255,255 // jmpq 1146 <_sk_lerp_u8_avx+0x14> + .byte 233,104,255,255,255 // jmpq 14ce <_sk_lerp_u8_avx+0x14> HIDDEN _sk_lerp_565_avx .globl _sk_lerp_565_avx @@ -9639,7 +10279,7 @@ _sk_lerp_565_avx: .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,139,16 // mov (%rax),%r10 .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,250,0,0,0 // jne 12e6 <_sk_lerp_565_avx+0x108> + .byte 15,133,250,0,0,0 // jne 166e <_sk_lerp_565_avx+0x108> .byte 196,65,122,111,4,122 // vmovdqu (%r10,%rdi,2),%xmm8 .byte 197,225,239,219 // vpxor %xmm3,%xmm3,%xmm3 .byte 197,185,105,219 // vpunpckhwd %xmm3,%xmm8,%xmm3 @@ -9698,9 +10338,9 @@ _sk_lerp_565_avx: .byte 196,65,57,239,192 // vpxor %xmm8,%xmm8,%xmm8 .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 15,135,243,254,255,255 // ja 11f2 <_sk_lerp_565_avx+0x14> + .byte 15,135,243,254,255,255 // ja 157a <_sk_lerp_565_avx+0x14> .byte 69,15,182,192 // movzbl %r8b,%r8d - .byte 76,141,13,74,0,0,0 // lea 0x4a(%rip),%r9 # 1354 <_sk_lerp_565_avx+0x176> + .byte 76,141,13,74,0,0,0 // lea 0x4a(%rip),%r9 # 16dc <_sk_lerp_565_avx+0x176> .byte 75,99,4,129 // movslq (%r9,%r8,4),%rax .byte 76,1,200 // add %r9,%rax .byte 255,224 // jmpq *%rax @@ -9712,12 +10352,12 @@ _sk_lerp_565_avx: .byte 196,65,57,196,68,122,4,2 // vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm8,%xmm8 .byte 196,65,57,196,68,122,2,1 // vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm8,%xmm8 .byte 196,65,57,196,4,122,0 // vpinsrw $0x0,(%r10,%rdi,2),%xmm8,%xmm8 - .byte 233,159,254,255,255 // jmpq 11f2 <_sk_lerp_565_avx+0x14> + .byte 233,159,254,255,255 // jmpq 157a <_sk_lerp_565_avx+0x14> .byte 144 // nop .byte 243,255 // repz (bad) .byte 255 // (bad) .byte 255 // (bad) - .byte 235,255 // jmp 1359 <_sk_lerp_565_avx+0x17b> + .byte 235,255 // jmp 16e1 <_sk_lerp_565_avx+0x17b> .byte 255 // (bad) .byte 255,227 // jmpq *%rbx .byte 255 // (bad) @@ -9749,7 +10389,7 @@ _sk_load_tables_avx: .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,139,0 // mov (%rax),%r8 .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,56,2,0,0 // jne 15c0 <_sk_load_tables_avx+0x250> + .byte 15,133,56,2,0,0 // jne 1948 <_sk_load_tables_avx+0x250> .byte 196,65,124,16,4,184 // vmovups (%r8,%rdi,4),%ymm8 .byte 187,255,0,0,0 // mov $0xff,%ebx .byte 197,249,110,195 // vmovd %ebx,%xmm0 @@ -9868,9 +10508,9 @@ _sk_load_tables_avx: .byte 196,65,60,87,192 // vxorps %ymm8,%ymm8,%ymm8 .byte 254,203 // dec %bl .byte 128,251,6 // cmp $0x6,%bl - .byte 15,135,185,253,255,255 // ja 138e <_sk_load_tables_avx+0x1e> + .byte 15,135,185,253,255,255 // ja 1716 <_sk_load_tables_avx+0x1e> .byte 15,182,219 // movzbl %bl,%ebx - .byte 76,141,13,137,0,0,0 // lea 0x89(%rip),%r9 # 1668 <_sk_load_tables_avx+0x2f8> + .byte 76,141,13,137,0,0,0 // lea 0x89(%rip),%r9 # 19f0 <_sk_load_tables_avx+0x2f8> .byte 73,99,28,153 // movslq (%r9,%rbx,4),%rbx .byte 76,1,203 // add %r9,%rbx .byte 255,227 // jmpq *%rbx @@ -9893,7 +10533,7 @@ _sk_load_tables_avx: .byte 196,99,61,12,192,15 // vblendps $0xf,%ymm0,%ymm8,%ymm8 .byte 196,195,57,34,4,184,0 // vpinsrd $0x0,(%r8,%rdi,4),%xmm8,%xmm0 .byte 196,99,61,12,192,15 // vblendps $0xf,%ymm0,%ymm8,%ymm8 - .byte 233,38,253,255,255 // jmpq 138e <_sk_load_tables_avx+0x1e> + .byte 233,38,253,255,255 // jmpq 1716 <_sk_load_tables_avx+0x1e> .byte 238 // out %al,(%dx) .byte 255 // (bad) .byte 255 // (bad) @@ -10214,7 +10854,7 @@ _sk_load_a8_avx: .byte 72,139,0 // mov (%rax),%rax .byte 72,1,248 // add %rdi,%rax .byte 77,133,192 // test %r8,%r8 - .byte 117,74 // jne 1bfc <_sk_load_a8_avx+0x5a> + .byte 117,74 // jne 1f84 <_sk_load_a8_avx+0x5a> .byte 197,250,126,0 // vmovq (%rax),%xmm0 .byte 196,226,121,49,200 // vpmovzxbd %xmm0,%xmm1 .byte 196,227,121,4,192,229 // vpermilps $0xe5,%xmm0,%xmm0 @@ -10241,9 +10881,9 @@ _sk_load_a8_avx: .byte 77,9,217 // or %r11,%r9 .byte 72,131,193,8 // add $0x8,%rcx .byte 73,255,202 // dec %r10 - .byte 117,234 // jne 1c04 <_sk_load_a8_avx+0x62> + .byte 117,234 // jne 1f8c <_sk_load_a8_avx+0x62> .byte 196,193,249,110,193 // vmovq %r9,%xmm0 - .byte 235,149 // jmp 1bb6 <_sk_load_a8_avx+0x14> + .byte 235,149 // jmp 1f3e <_sk_load_a8_avx+0x14> HIDDEN _sk_gather_a8_avx .globl _sk_gather_a8_avx @@ -10322,7 +10962,7 @@ _sk_store_a8_avx: .byte 196,66,57,43,193 // vpackusdw %xmm9,%xmm8,%xmm8 .byte 196,65,57,103,192 // vpackuswb %xmm8,%xmm8,%xmm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,10 // jne 1d5d <_sk_store_a8_avx+0x42> + .byte 117,10 // jne 20e5 <_sk_store_a8_avx+0x42> .byte 196,65,123,17,4,57 // vmovsd %xmm8,(%r9,%rdi,1) .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax @@ -10330,10 +10970,10 @@ _sk_store_a8_avx: .byte 65,128,224,7 // and $0x7,%r8b .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 119,236 // ja 1d59 <_sk_store_a8_avx+0x3e> + .byte 119,236 // ja 20e1 <_sk_store_a8_avx+0x3e> .byte 196,66,121,48,192 // vpmovzxbw %xmm8,%xmm8 .byte 65,15,182,192 // movzbl %r8b,%eax - .byte 76,141,5,67,0,0,0 // lea 0x43(%rip),%r8 # 1dc0 <_sk_store_a8_avx+0xa5> + .byte 76,141,5,67,0,0,0 // lea 0x43(%rip),%r8 # 2148 <_sk_store_a8_avx+0xa5> .byte 73,99,4,128 // movslq (%r8,%rax,4),%rax .byte 76,1,192 // add %r8,%rax .byte 255,224 // jmpq *%rax @@ -10344,7 +10984,7 @@ _sk_store_a8_avx: .byte 196,67,121,20,68,57,2,4 // vpextrb $0x4,%xmm8,0x2(%r9,%rdi,1) .byte 196,67,121,20,68,57,1,2 // vpextrb $0x2,%xmm8,0x1(%r9,%rdi,1) .byte 196,67,121,20,4,57,0 // vpextrb $0x0,%xmm8,(%r9,%rdi,1) - .byte 235,154 // jmp 1d59 <_sk_store_a8_avx+0x3e> + .byte 235,154 // jmp 20e1 <_sk_store_a8_avx+0x3e> .byte 144 // nop .byte 246,255 // idiv %bh .byte 255 // (bad) @@ -10377,7 +11017,7 @@ _sk_load_g8_avx: .byte 72,139,0 // mov (%rax),%rax .byte 72,1,248 // add %rdi,%rax .byte 77,133,192 // test %r8,%r8 - .byte 117,91 // jne 1e47 <_sk_load_g8_avx+0x6b> + .byte 117,91 // jne 21cf <_sk_load_g8_avx+0x6b> .byte 197,250,126,0 // vmovq (%rax),%xmm0 .byte 196,226,121,49,200 // vpmovzxbd %xmm0,%xmm1 .byte 196,227,121,4,192,229 // vpermilps $0xe5,%xmm0,%xmm0 @@ -10407,9 +11047,9 @@ _sk_load_g8_avx: .byte 77,9,217 // or %r11,%r9 .byte 72,131,193,8 // add $0x8,%rcx .byte 73,255,202 // dec %r10 - .byte 117,234 // jne 1e4f <_sk_load_g8_avx+0x73> + .byte 117,234 // jne 21d7 <_sk_load_g8_avx+0x73> .byte 196,193,249,110,193 // vmovq %r9,%xmm0 - .byte 235,132 // jmp 1df0 <_sk_load_g8_avx+0x14> + .byte 235,132 // jmp 2178 <_sk_load_g8_avx+0x14> HIDDEN _sk_gather_g8_avx .globl _sk_gather_g8_avx @@ -10482,9 +11122,9 @@ _sk_gather_i8_avx: .byte 72,173 // lods %ds:(%rsi),%rax .byte 73,137,192 // mov %rax,%r8 .byte 77,133,192 // test %r8,%r8 - .byte 116,5 // je 1f86 <_sk_gather_i8_avx+0xf> + .byte 116,5 // je 230e <_sk_gather_i8_avx+0xf> .byte 76,137,192 // mov %r8,%rax - .byte 235,2 // jmp 1f88 <_sk_gather_i8_avx+0x11> + .byte 235,2 // jmp 2310 <_sk_gather_i8_avx+0x11> .byte 72,173 // lods %ds:(%rsi),%rax .byte 65,87 // push %r15 .byte 65,86 // push %r14 @@ -10588,7 +11228,7 @@ _sk_load_565_avx: .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,139,16 // mov (%rax),%r10 .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,209,0,0,0 // jne 2222 <_sk_load_565_avx+0xdf> + .byte 15,133,209,0,0,0 // jne 25aa <_sk_load_565_avx+0xdf> .byte 196,193,122,111,4,122 // vmovdqu (%r10,%rdi,2),%xmm0 .byte 197,241,239,201 // vpxor %xmm1,%xmm1,%xmm1 .byte 197,249,105,201 // vpunpckhwd %xmm1,%xmm0,%xmm1 @@ -10638,9 +11278,9 @@ _sk_load_565_avx: .byte 197,249,239,192 // vpxor %xmm0,%xmm0,%xmm0 .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 15,135,29,255,255,255 // ja 2157 <_sk_load_565_avx+0x14> + .byte 15,135,29,255,255,255 // ja 24df <_sk_load_565_avx+0x14> .byte 69,15,182,192 // movzbl %r8b,%r8d - .byte 76,141,13,75,0,0,0 // lea 0x4b(%rip),%r9 # 2290 <_sk_load_565_avx+0x14d> + .byte 76,141,13,75,0,0,0 // lea 0x4b(%rip),%r9 # 2618 <_sk_load_565_avx+0x14d> .byte 75,99,4,129 // movslq (%r9,%r8,4),%rax .byte 76,1,200 // add %r9,%rax .byte 255,224 // jmpq *%rax @@ -10652,7 +11292,7 @@ _sk_load_565_avx: .byte 196,193,121,196,68,122,4,2 // vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0 .byte 196,193,121,196,68,122,2,1 // vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0 .byte 196,193,121,196,4,122,0 // vpinsrw $0x0,(%r10,%rdi,2),%xmm0,%xmm0 - .byte 233,201,254,255,255 // jmpq 2157 <_sk_load_565_avx+0x14> + .byte 233,201,254,255,255 // jmpq 24df <_sk_load_565_avx+0x14> .byte 102,144 // xchg %ax,%ax .byte 242,255 // repnz (bad) .byte 255 // (bad) @@ -10807,7 +11447,7 @@ _sk_store_565_avx: .byte 196,67,125,25,193,1 // vextractf128 $0x1,%ymm8,%xmm9 .byte 196,66,57,43,193 // vpackusdw %xmm9,%xmm8,%xmm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,10 // jne 24db <_sk_store_565_avx+0x9e> + .byte 117,10 // jne 2863 <_sk_store_565_avx+0x9e> .byte 196,65,122,127,4,121 // vmovdqu %xmm8,(%r9,%rdi,2) .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax @@ -10815,9 +11455,9 @@ _sk_store_565_avx: .byte 65,128,224,7 // and $0x7,%r8b .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 119,236 // ja 24d7 <_sk_store_565_avx+0x9a> + .byte 119,236 // ja 285f <_sk_store_565_avx+0x9a> .byte 65,15,182,192 // movzbl %r8b,%eax - .byte 76,141,5,66,0,0,0 // lea 0x42(%rip),%r8 # 2538 <_sk_store_565_avx+0xfb> + .byte 76,141,5,66,0,0,0 // lea 0x42(%rip),%r8 # 28c0 <_sk_store_565_avx+0xfb> .byte 73,99,4,128 // movslq (%r8,%rax,4),%rax .byte 76,1,192 // add %r8,%rax .byte 255,224 // jmpq *%rax @@ -10828,7 +11468,7 @@ _sk_store_565_avx: .byte 196,67,121,21,68,121,4,2 // vpextrw $0x2,%xmm8,0x4(%r9,%rdi,2) .byte 196,67,121,21,68,121,2,1 // vpextrw $0x1,%xmm8,0x2(%r9,%rdi,2) .byte 196,67,121,21,4,121,0 // vpextrw $0x0,%xmm8,(%r9,%rdi,2) - .byte 235,159 // jmp 24d7 <_sk_store_565_avx+0x9a> + .byte 235,159 // jmp 285f <_sk_store_565_avx+0x9a> .byte 247,255 // idiv %edi .byte 255 // (bad) .byte 255 // (bad) @@ -10858,7 +11498,7 @@ _sk_load_4444_avx: .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,139,16 // mov (%rax),%r10 .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,245,0,0,0 // jne 2657 <_sk_load_4444_avx+0x103> + .byte 15,133,245,0,0,0 // jne 29df <_sk_load_4444_avx+0x103> .byte 196,193,122,111,4,122 // vmovdqu (%r10,%rdi,2),%xmm0 .byte 197,241,239,201 // vpxor %xmm1,%xmm1,%xmm1 .byte 197,249,105,201 // vpunpckhwd %xmm1,%xmm0,%xmm1 @@ -10915,9 +11555,9 @@ _sk_load_4444_avx: .byte 197,249,239,192 // vpxor %xmm0,%xmm0,%xmm0 .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 15,135,249,254,255,255 // ja 2568 <_sk_load_4444_avx+0x14> + .byte 15,135,249,254,255,255 // ja 28f0 <_sk_load_4444_avx+0x14> .byte 69,15,182,192 // movzbl %r8b,%r8d - .byte 76,141,13,74,0,0,0 // lea 0x4a(%rip),%r9 # 26c4 <_sk_load_4444_avx+0x170> + .byte 76,141,13,74,0,0,0 // lea 0x4a(%rip),%r9 # 2a4c <_sk_load_4444_avx+0x170> .byte 75,99,4,129 // movslq (%r9,%r8,4),%rax .byte 76,1,200 // add %r9,%rax .byte 255,224 // jmpq *%rax @@ -10929,12 +11569,12 @@ _sk_load_4444_avx: .byte 196,193,121,196,68,122,4,2 // vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0 .byte 196,193,121,196,68,122,2,1 // vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0 .byte 196,193,121,196,4,122,0 // vpinsrw $0x0,(%r10,%rdi,2),%xmm0,%xmm0 - .byte 233,165,254,255,255 // jmpq 2568 <_sk_load_4444_avx+0x14> + .byte 233,165,254,255,255 // jmpq 28f0 <_sk_load_4444_avx+0x14> .byte 144 // nop .byte 243,255 // repz (bad) .byte 255 // (bad) .byte 255 // (bad) - .byte 235,255 // jmp 26c9 <_sk_load_4444_avx+0x175> + .byte 235,255 // jmp 2a51 <_sk_load_4444_avx+0x175> .byte 255 // (bad) .byte 255,227 // jmpq *%rbx .byte 255 // (bad) @@ -11093,7 +11733,7 @@ _sk_store_4444_avx: .byte 196,67,125,25,193,1 // vextractf128 $0x1,%ymm8,%xmm9 .byte 196,66,57,43,193 // vpackusdw %xmm9,%xmm8,%xmm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,10 // jne 2944 <_sk_store_4444_avx+0xaf> + .byte 117,10 // jne 2ccc <_sk_store_4444_avx+0xaf> .byte 196,65,122,127,4,121 // vmovdqu %xmm8,(%r9,%rdi,2) .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax @@ -11101,9 +11741,9 @@ _sk_store_4444_avx: .byte 65,128,224,7 // and $0x7,%r8b .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 119,236 // ja 2940 <_sk_store_4444_avx+0xab> + .byte 119,236 // ja 2cc8 <_sk_store_4444_avx+0xab> .byte 65,15,182,192 // movzbl %r8b,%eax - .byte 76,141,5,69,0,0,0 // lea 0x45(%rip),%r8 # 29a4 <_sk_store_4444_avx+0x10f> + .byte 76,141,5,69,0,0,0 // lea 0x45(%rip),%r8 # 2d2c <_sk_store_4444_avx+0x10f> .byte 73,99,4,128 // movslq (%r8,%rax,4),%rax .byte 76,1,192 // add %r8,%rax .byte 255,224 // jmpq *%rax @@ -11114,7 +11754,7 @@ _sk_store_4444_avx: .byte 196,67,121,21,68,121,4,2 // vpextrw $0x2,%xmm8,0x4(%r9,%rdi,2) .byte 196,67,121,21,68,121,2,1 // vpextrw $0x1,%xmm8,0x2(%r9,%rdi,2) .byte 196,67,121,21,4,121,0 // vpextrw $0x0,%xmm8,(%r9,%rdi,2) - .byte 235,159 // jmp 2940 <_sk_store_4444_avx+0xab> + .byte 235,159 // jmp 2cc8 <_sk_store_4444_avx+0xab> .byte 15,31,0 // nopl (%rax) .byte 244 // hlt .byte 255 // (bad) @@ -11146,7 +11786,7 @@ _sk_load_8888_avx: .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,139,16 // mov (%rax),%r10 .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,157,0,0,0 // jne 2a6b <_sk_load_8888_avx+0xab> + .byte 15,133,157,0,0,0 // jne 2df3 <_sk_load_8888_avx+0xab> .byte 196,65,124,16,12,186 // vmovups (%r10,%rdi,4),%ymm9 .byte 184,255,0,0,0 // mov $0xff,%eax .byte 197,249,110,192 // vmovd %eax,%xmm0 @@ -11184,9 +11824,9 @@ _sk_load_8888_avx: .byte 196,65,52,87,201 // vxorps %ymm9,%ymm9,%ymm9 .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 15,135,80,255,255,255 // ja 29d4 <_sk_load_8888_avx+0x14> + .byte 15,135,80,255,255,255 // ja 2d5c <_sk_load_8888_avx+0x14> .byte 69,15,182,192 // movzbl %r8b,%r8d - .byte 76,141,13,137,0,0,0 // lea 0x89(%rip),%r9 # 2b18 <_sk_load_8888_avx+0x158> + .byte 76,141,13,137,0,0,0 // lea 0x89(%rip),%r9 # 2ea0 <_sk_load_8888_avx+0x158> .byte 75,99,4,129 // movslq (%r9,%r8,4),%rax .byte 76,1,200 // add %r9,%rax .byte 255,224 // jmpq *%rax @@ -11209,7 +11849,7 @@ _sk_load_8888_avx: .byte 196,99,53,12,200,15 // vblendps $0xf,%ymm0,%ymm9,%ymm9 .byte 196,195,49,34,4,186,0 // vpinsrd $0x0,(%r10,%rdi,4),%xmm9,%xmm0 .byte 196,99,53,12,200,15 // vblendps $0xf,%ymm0,%ymm9,%ymm9 - .byte 233,188,254,255,255 // jmpq 29d4 <_sk_load_8888_avx+0x14> + .byte 233,188,254,255,255 // jmpq 2d5c <_sk_load_8888_avx+0x14> .byte 238 // out %al,(%dx) .byte 255 // (bad) .byte 255 // (bad) @@ -11337,7 +11977,7 @@ _sk_store_8888_avx: .byte 196,65,45,86,192 // vorpd %ymm8,%ymm10,%ymm8 .byte 196,65,53,86,192 // vorpd %ymm8,%ymm9,%ymm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,10 // jne 2d19 <_sk_store_8888_avx+0xa4> + .byte 117,10 // jne 30a1 <_sk_store_8888_avx+0xa4> .byte 196,65,124,17,4,185 // vmovups %ymm8,(%r9,%rdi,4) .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax @@ -11345,9 +11985,9 @@ _sk_store_8888_avx: .byte 65,128,224,7 // and $0x7,%r8b .byte 65,254,200 // dec %r8b .byte 65,128,248,6 // cmp $0x6,%r8b - .byte 119,236 // ja 2d15 <_sk_store_8888_avx+0xa0> + .byte 119,236 // ja 309d <_sk_store_8888_avx+0xa0> .byte 65,15,182,192 // movzbl %r8b,%eax - .byte 76,141,5,84,0,0,0 // lea 0x54(%rip),%r8 # 2d88 <_sk_store_8888_avx+0x113> + .byte 76,141,5,84,0,0,0 // lea 0x54(%rip),%r8 # 3110 <_sk_store_8888_avx+0x113> .byte 73,99,4,128 // movslq (%r8,%rax,4),%rax .byte 76,1,192 // add %r8,%rax .byte 255,224 // jmpq *%rax @@ -11361,7 +12001,7 @@ _sk_store_8888_avx: .byte 196,67,121,22,68,185,8,2 // vpextrd $0x2,%xmm8,0x8(%r9,%rdi,4) .byte 196,67,121,22,68,185,4,1 // vpextrd $0x1,%xmm8,0x4(%r9,%rdi,4) .byte 196,65,121,126,4,185 // vmovd %xmm8,(%r9,%rdi,4) - .byte 235,143 // jmp 2d15 <_sk_store_8888_avx+0xa0> + .byte 235,143 // jmp 309d <_sk_store_8888_avx+0xa0> .byte 102,144 // xchg %ax,%ax .byte 246,255 // idiv %bh .byte 255 // (bad) @@ -11392,7 +12032,7 @@ _sk_load_f16_avx: .byte 72,173 // lods %ds:(%rsi),%rax .byte 72,139,0 // mov (%rax),%rax .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,17,1,0,0 // jne 2ec3 <_sk_load_f16_avx+0x11f> + .byte 15,133,17,1,0,0 // jne 324b <_sk_load_f16_avx+0x11f> .byte 197,121,16,4,248 // vmovupd (%rax,%rdi,8),%xmm8 .byte 197,249,16,84,248,16 // vmovupd 0x10(%rax,%rdi,8),%xmm2 .byte 197,249,16,92,248,32 // vmovupd 0x20(%rax,%rdi,8),%xmm3 @@ -11454,29 +12094,29 @@ _sk_load_f16_avx: .byte 197,123,16,4,248 // vmovsd (%rax,%rdi,8),%xmm8 .byte 196,65,49,239,201 // vpxor %xmm9,%xmm9,%xmm9 .byte 72,131,249,1 // cmp $0x1,%rcx - .byte 116,79 // je 2f22 <_sk_load_f16_avx+0x17e> + .byte 116,79 // je 32aa <_sk_load_f16_avx+0x17e> .byte 197,57,22,68,248,8 // vmovhpd 0x8(%rax,%rdi,8),%xmm8,%xmm8 .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 114,67 // jb 2f22 <_sk_load_f16_avx+0x17e> + .byte 114,67 // jb 32aa <_sk_load_f16_avx+0x17e> .byte 197,251,16,84,248,16 // vmovsd 0x10(%rax,%rdi,8),%xmm2 .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 116,68 // je 2f2f <_sk_load_f16_avx+0x18b> + .byte 116,68 // je 32b7 <_sk_load_f16_avx+0x18b> .byte 197,233,22,84,248,24 // vmovhpd 0x18(%rax,%rdi,8),%xmm2,%xmm2 .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 114,56 // jb 2f2f <_sk_load_f16_avx+0x18b> + .byte 114,56 // jb 32b7 <_sk_load_f16_avx+0x18b> .byte 197,251,16,92,248,32 // vmovsd 0x20(%rax,%rdi,8),%xmm3 .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 15,132,194,254,255,255 // je 2dc9 <_sk_load_f16_avx+0x25> + .byte 15,132,194,254,255,255 // je 3151 <_sk_load_f16_avx+0x25> .byte 197,225,22,92,248,40 // vmovhpd 0x28(%rax,%rdi,8),%xmm3,%xmm3 .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 15,130,178,254,255,255 // jb 2dc9 <_sk_load_f16_avx+0x25> + .byte 15,130,178,254,255,255 // jb 3151 <_sk_load_f16_avx+0x25> .byte 197,122,126,76,248,48 // vmovq 0x30(%rax,%rdi,8),%xmm9 - .byte 233,167,254,255,255 // jmpq 2dc9 <_sk_load_f16_avx+0x25> + .byte 233,167,254,255,255 // jmpq 3151 <_sk_load_f16_avx+0x25> .byte 197,225,87,219 // vxorpd %xmm3,%xmm3,%xmm3 .byte 197,233,87,210 // vxorpd %xmm2,%xmm2,%xmm2 - .byte 233,154,254,255,255 // jmpq 2dc9 <_sk_load_f16_avx+0x25> + .byte 233,154,254,255,255 // jmpq 3151 <_sk_load_f16_avx+0x25> .byte 197,225,87,219 // vxorpd %xmm3,%xmm3,%xmm3 - .byte 233,145,254,255,255 // jmpq 2dc9 <_sk_load_f16_avx+0x25> + .byte 233,145,254,255,255 // jmpq 3151 <_sk_load_f16_avx+0x25> HIDDEN _sk_gather_f16_avx .globl _sk_gather_f16_avx @@ -11618,7 +12258,7 @@ _sk_store_f16_avx: .byte 196,65,17,98,200 // vpunpckldq %xmm8,%xmm13,%xmm9 .byte 196,65,17,106,192 // vpunpckhdq %xmm8,%xmm13,%xmm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,31 // jne 31b8 <_sk_store_f16_avx+0xd2> + .byte 117,31 // jne 3540 <_sk_store_f16_avx+0xd2> .byte 196,65,120,17,28,248 // vmovups %xmm11,(%r8,%rdi,8) .byte 196,65,120,17,84,248,16 // vmovups %xmm10,0x10(%r8,%rdi,8) .byte 196,65,120,17,76,248,32 // vmovups %xmm9,0x20(%r8,%rdi,8) @@ -11627,22 +12267,22 @@ _sk_store_f16_avx: .byte 255,224 // jmpq *%rax .byte 196,65,121,214,28,248 // vmovq %xmm11,(%r8,%rdi,8) .byte 72,131,249,1 // cmp $0x1,%rcx - .byte 116,240 // je 31b4 <_sk_store_f16_avx+0xce> + .byte 116,240 // je 353c <_sk_store_f16_avx+0xce> .byte 196,65,121,23,92,248,8 // vmovhpd %xmm11,0x8(%r8,%rdi,8) .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 114,227 // jb 31b4 <_sk_store_f16_avx+0xce> + .byte 114,227 // jb 353c <_sk_store_f16_avx+0xce> .byte 196,65,121,214,84,248,16 // vmovq %xmm10,0x10(%r8,%rdi,8) - .byte 116,218 // je 31b4 <_sk_store_f16_avx+0xce> + .byte 116,218 // je 353c <_sk_store_f16_avx+0xce> .byte 196,65,121,23,84,248,24 // vmovhpd %xmm10,0x18(%r8,%rdi,8) .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 114,205 // jb 31b4 <_sk_store_f16_avx+0xce> + .byte 114,205 // jb 353c <_sk_store_f16_avx+0xce> .byte 196,65,121,214,76,248,32 // vmovq %xmm9,0x20(%r8,%rdi,8) - .byte 116,196 // je 31b4 <_sk_store_f16_avx+0xce> + .byte 116,196 // je 353c <_sk_store_f16_avx+0xce> .byte 196,65,121,23,76,248,40 // vmovhpd %xmm9,0x28(%r8,%rdi,8) .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 114,183 // jb 31b4 <_sk_store_f16_avx+0xce> + .byte 114,183 // jb 353c <_sk_store_f16_avx+0xce> .byte 196,65,121,214,68,248,48 // vmovq %xmm8,0x30(%r8,%rdi,8) - .byte 235,174 // jmp 31b4 <_sk_store_f16_avx+0xce> + .byte 235,174 // jmp 353c <_sk_store_f16_avx+0xce> HIDDEN _sk_load_u16_be_avx .globl _sk_load_u16_be_avx @@ -11650,7 +12290,7 @@ _sk_load_u16_be_avx: .byte 72,173 // lods %ds:(%rsi),%rax .byte 72,139,0 // mov (%rax),%rax .byte 72,133,201 // test %rcx,%rcx - .byte 15,133,1,1,0,0 // jne 3315 <_sk_load_u16_be_avx+0x10f> + .byte 15,133,1,1,0,0 // jne 369d <_sk_load_u16_be_avx+0x10f> .byte 197,121,16,4,248 // vmovupd (%rax,%rdi,8),%xmm8 .byte 197,249,16,84,248,16 // vmovupd 0x10(%rax,%rdi,8),%xmm2 .byte 197,249,16,92,248,32 // vmovupd 0x20(%rax,%rdi,8),%xmm3 @@ -11709,29 +12349,29 @@ _sk_load_u16_be_avx: .byte 197,123,16,4,248 // vmovsd (%rax,%rdi,8),%xmm8 .byte 196,65,49,239,201 // vpxor %xmm9,%xmm9,%xmm9 .byte 72,131,249,1 // cmp $0x1,%rcx - .byte 116,79 // je 3374 <_sk_load_u16_be_avx+0x16e> + .byte 116,79 // je 36fc <_sk_load_u16_be_avx+0x16e> .byte 197,57,22,68,248,8 // vmovhpd 0x8(%rax,%rdi,8),%xmm8,%xmm8 .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 114,67 // jb 3374 <_sk_load_u16_be_avx+0x16e> + .byte 114,67 // jb 36fc <_sk_load_u16_be_avx+0x16e> .byte 197,251,16,84,248,16 // vmovsd 0x10(%rax,%rdi,8),%xmm2 .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 116,68 // je 3381 <_sk_load_u16_be_avx+0x17b> + .byte 116,68 // je 3709 <_sk_load_u16_be_avx+0x17b> .byte 197,233,22,84,248,24 // vmovhpd 0x18(%rax,%rdi,8),%xmm2,%xmm2 .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 114,56 // jb 3381 <_sk_load_u16_be_avx+0x17b> + .byte 114,56 // jb 3709 <_sk_load_u16_be_avx+0x17b> .byte 197,251,16,92,248,32 // vmovsd 0x20(%rax,%rdi,8),%xmm3 .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 15,132,210,254,255,255 // je 322b <_sk_load_u16_be_avx+0x25> + .byte 15,132,210,254,255,255 // je 35b3 <_sk_load_u16_be_avx+0x25> .byte 197,225,22,92,248,40 // vmovhpd 0x28(%rax,%rdi,8),%xmm3,%xmm3 .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 15,130,194,254,255,255 // jb 322b <_sk_load_u16_be_avx+0x25> + .byte 15,130,194,254,255,255 // jb 35b3 <_sk_load_u16_be_avx+0x25> .byte 197,122,126,76,248,48 // vmovq 0x30(%rax,%rdi,8),%xmm9 - .byte 233,183,254,255,255 // jmpq 322b <_sk_load_u16_be_avx+0x25> + .byte 233,183,254,255,255 // jmpq 35b3 <_sk_load_u16_be_avx+0x25> .byte 197,225,87,219 // vxorpd %xmm3,%xmm3,%xmm3 .byte 197,233,87,210 // vxorpd %xmm2,%xmm2,%xmm2 - .byte 233,170,254,255,255 // jmpq 322b <_sk_load_u16_be_avx+0x25> + .byte 233,170,254,255,255 // jmpq 35b3 <_sk_load_u16_be_avx+0x25> .byte 197,225,87,219 // vxorpd %xmm3,%xmm3,%xmm3 - .byte 233,161,254,255,255 // jmpq 322b <_sk_load_u16_be_avx+0x25> + .byte 233,161,254,255,255 // jmpq 35b3 <_sk_load_u16_be_avx+0x25> HIDDEN _sk_store_u16_be_avx .globl _sk_store_u16_be_avx @@ -11779,7 +12419,7 @@ _sk_store_u16_be_avx: .byte 196,65,17,98,200 // vpunpckldq %xmm8,%xmm13,%xmm9 .byte 196,65,17,106,192 // vpunpckhdq %xmm8,%xmm13,%xmm8 .byte 72,133,201 // test %rcx,%rcx - .byte 117,31 // jne 3484 <_sk_store_u16_be_avx+0xfa> + .byte 117,31 // jne 380c <_sk_store_u16_be_avx+0xfa> .byte 196,65,120,17,28,248 // vmovups %xmm11,(%r8,%rdi,8) .byte 196,65,120,17,84,248,16 // vmovups %xmm10,0x10(%r8,%rdi,8) .byte 196,65,120,17,76,248,32 // vmovups %xmm9,0x20(%r8,%rdi,8) @@ -11788,32 +12428,32 @@ _sk_store_u16_be_avx: .byte 255,224 // jmpq *%rax .byte 196,65,121,214,28,248 // vmovq %xmm11,(%r8,%rdi,8) .byte 72,131,249,1 // cmp $0x1,%rcx - .byte 116,240 // je 3480 <_sk_store_u16_be_avx+0xf6> + .byte 116,240 // je 3808 <_sk_store_u16_be_avx+0xf6> .byte 196,65,121,23,92,248,8 // vmovhpd %xmm11,0x8(%r8,%rdi,8) .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 114,227 // jb 3480 <_sk_store_u16_be_avx+0xf6> + .byte 114,227 // jb 3808 <_sk_store_u16_be_avx+0xf6> .byte 196,65,121,214,84,248,16 // vmovq %xmm10,0x10(%r8,%rdi,8) - .byte 116,218 // je 3480 <_sk_store_u16_be_avx+0xf6> + .byte 116,218 // je 3808 <_sk_store_u16_be_avx+0xf6> .byte 196,65,121,23,84,248,24 // vmovhpd %xmm10,0x18(%r8,%rdi,8) .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 114,205 // jb 3480 <_sk_store_u16_be_avx+0xf6> + .byte 114,205 // jb 3808 <_sk_store_u16_be_avx+0xf6> .byte 196,65,121,214,76,248,32 // vmovq %xmm9,0x20(%r8,%rdi,8) - .byte 116,196 // je 3480 <_sk_store_u16_be_avx+0xf6> + .byte 116,196 // je 3808 <_sk_store_u16_be_avx+0xf6> .byte 196,65,121,23,76,248,40 // vmovhpd %xmm9,0x28(%r8,%rdi,8) .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 114,183 // jb 3480 <_sk_store_u16_be_avx+0xf6> + .byte 114,183 // jb 3808 <_sk_store_u16_be_avx+0xf6> .byte 196,65,121,214,68,248,48 // vmovq %xmm8,0x30(%r8,%rdi,8) - .byte 235,174 // jmp 3480 <_sk_store_u16_be_avx+0xf6> + .byte 235,174 // jmp 3808 <_sk_store_u16_be_avx+0xf6> HIDDEN _sk_load_f32_avx .globl _sk_load_f32_avx _sk_load_f32_avx: .byte 72,173 // lods %ds:(%rsi),%rax .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 119,110 // ja 3548 <_sk_load_f32_avx+0x76> + .byte 119,110 // ja 38d0 <_sk_load_f32_avx+0x76> .byte 76,139,0 // mov (%rax),%r8 .byte 76,141,12,189,0,0,0,0 // lea 0x0(,%rdi,4),%r9 - .byte 76,141,21,132,0,0,0 // lea 0x84(%rip),%r10 # 3570 <_sk_load_f32_avx+0x9e> + .byte 76,141,21,132,0,0,0 // lea 0x84(%rip),%r10 # 38f8 <_sk_load_f32_avx+0x9e> .byte 73,99,4,138 // movslq (%r10,%rcx,4),%rax .byte 76,1,208 // add %r10,%rax .byte 255,224 // jmpq *%rax @@ -11871,7 +12511,7 @@ _sk_store_f32_avx: .byte 196,65,37,20,196 // vunpcklpd %ymm12,%ymm11,%ymm8 .byte 196,65,37,21,220 // vunpckhpd %ymm12,%ymm11,%ymm11 .byte 72,133,201 // test %rcx,%rcx - .byte 117,55 // jne 35fd <_sk_store_f32_avx+0x6d> + .byte 117,55 // jne 3985 <_sk_store_f32_avx+0x6d> .byte 196,67,45,24,225,1 // vinsertf128 $0x1,%xmm9,%ymm10,%ymm12 .byte 196,67,61,24,235,1 // vinsertf128 $0x1,%xmm11,%ymm8,%ymm13 .byte 196,67,45,6,201,49 // vperm2f128 $0x31,%ymm9,%ymm10,%ymm9 @@ -11884,22 +12524,22 @@ _sk_store_f32_avx: .byte 255,224 // jmpq *%rax .byte 196,65,121,17,20,128 // vmovupd %xmm10,(%r8,%rax,4) .byte 72,131,249,1 // cmp $0x1,%rcx - .byte 116,240 // je 35f9 <_sk_store_f32_avx+0x69> + .byte 116,240 // je 3981 <_sk_store_f32_avx+0x69> .byte 196,65,121,17,76,128,16 // vmovupd %xmm9,0x10(%r8,%rax,4) .byte 72,131,249,3 // cmp $0x3,%rcx - .byte 114,227 // jb 35f9 <_sk_store_f32_avx+0x69> + .byte 114,227 // jb 3981 <_sk_store_f32_avx+0x69> .byte 196,65,121,17,68,128,32 // vmovupd %xmm8,0x20(%r8,%rax,4) - .byte 116,218 // je 35f9 <_sk_store_f32_avx+0x69> + .byte 116,218 // je 3981 <_sk_store_f32_avx+0x69> .byte 196,65,121,17,92,128,48 // vmovupd %xmm11,0x30(%r8,%rax,4) .byte 72,131,249,5 // cmp $0x5,%rcx - .byte 114,205 // jb 35f9 <_sk_store_f32_avx+0x69> + .byte 114,205 // jb 3981 <_sk_store_f32_avx+0x69> .byte 196,67,125,25,84,128,64,1 // vextractf128 $0x1,%ymm10,0x40(%r8,%rax,4) - .byte 116,195 // je 35f9 <_sk_store_f32_avx+0x69> + .byte 116,195 // je 3981 <_sk_store_f32_avx+0x69> .byte 196,67,125,25,76,128,80,1 // vextractf128 $0x1,%ymm9,0x50(%r8,%rax,4) .byte 72,131,249,7 // cmp $0x7,%rcx - .byte 114,181 // jb 35f9 <_sk_store_f32_avx+0x69> + .byte 114,181 // jb 3981 <_sk_store_f32_avx+0x69> .byte 196,67,125,25,68,128,96,1 // vextractf128 $0x1,%ymm8,0x60(%r8,%rax,4) - .byte 235,171 // jmp 35f9 <_sk_store_f32_avx+0x69> + .byte 235,171 // jmp 3981 <_sk_store_f32_avx+0x69> HIDDEN _sk_clamp_x_avx .globl _sk_clamp_x_avx @@ -12215,7 +12855,7 @@ _sk_linear_gradient_avx: .byte 196,226,125,24,88,28 // vbroadcastss 0x1c(%rax),%ymm3 .byte 76,139,0 // mov (%rax),%r8 .byte 77,133,192 // test %r8,%r8 - .byte 15,132,146,0,0,0 // je 3bb1 <_sk_linear_gradient_avx+0xb8> + .byte 15,132,146,0,0,0 // je 3f39 <_sk_linear_gradient_avx+0xb8> .byte 72,139,64,8 // mov 0x8(%rax),%rax .byte 72,131,192,32 // add $0x20,%rax .byte 196,65,28,87,228 // vxorps %ymm12,%ymm12,%ymm12 @@ -12242,8 +12882,8 @@ _sk_linear_gradient_avx: .byte 196,227,13,74,219,208 // vblendvps %ymm13,%ymm3,%ymm14,%ymm3 .byte 72,131,192,36 // add $0x24,%rax .byte 73,255,200 // dec %r8 - .byte 117,140 // jne 3b3b <_sk_linear_gradient_avx+0x42> - .byte 235,20 // jmp 3bc5 <_sk_linear_gradient_avx+0xcc> + .byte 117,140 // jne 3ec3 <_sk_linear_gradient_avx+0x42> + .byte 235,20 // jmp 3f4d <_sk_linear_gradient_avx+0xcc> .byte 196,65,36,87,219 // vxorps %ymm11,%ymm11,%ymm11 .byte 196,65,44,87,210 // vxorps %ymm10,%ymm10,%ymm10 .byte 196,65,52,87,201 // vxorps %ymm9,%ymm9,%ymm9 @@ -13614,6 +14254,251 @@ _sk_to_2dot2_sse41: .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax +HIDDEN _sk_rgb_to_hsl_sse41 +.globl _sk_rgb_to_hsl_sse41 +_sk_rgb_to_hsl_sse41: + .byte 15,41,124,36,232 // movaps %xmm7,-0x18(%rsp) + .byte 15,40,254 // movaps %xmm6,%xmm7 + .byte 15,40,245 // movaps %xmm5,%xmm6 + .byte 15,40,236 // movaps %xmm4,%xmm5 + .byte 15,40,227 // movaps %xmm3,%xmm4 + .byte 15,40,218 // movaps %xmm2,%xmm3 + .byte 184,0,0,128,63 // mov $0x3f800000,%eax + .byte 102,68,15,110,216 // movd %eax,%xmm11 + .byte 65,184,171,170,42,62 // mov $0x3e2aaaab,%r8d + .byte 65,185,0,0,192,64 // mov $0x40c00000,%r9d + .byte 184,0,0,0,64 // mov $0x40000000,%eax + .byte 185,0,0,128,64 // mov $0x40800000,%ecx + .byte 102,68,15,110,193 // movd %ecx,%xmm8 + .byte 68,15,40,224 // movaps %xmm0,%xmm12 + .byte 68,15,95,225 // maxps %xmm1,%xmm12 + .byte 68,15,95,227 // maxps %xmm3,%xmm12 + .byte 68,15,40,232 // movaps %xmm0,%xmm13 + .byte 68,15,93,233 // minps %xmm1,%xmm13 + .byte 68,15,93,235 // minps %xmm3,%xmm13 + .byte 69,15,40,204 // movaps %xmm12,%xmm9 + .byte 68,15,194,200,0 // cmpeqps %xmm0,%xmm9 + .byte 68,15,40,241 // movaps %xmm1,%xmm14 + .byte 68,15,92,243 // subps %xmm3,%xmm14 + .byte 68,15,40,249 // movaps %xmm1,%xmm15 + .byte 68,15,194,251,1 // cmpltps %xmm3,%xmm15 + .byte 69,15,40,212 // movaps %xmm12,%xmm10 + .byte 68,15,194,209,0 // cmpeqps %xmm1,%xmm10 + .byte 15,92,216 // subps %xmm0,%xmm3 + .byte 15,92,193 // subps %xmm1,%xmm0 + .byte 65,15,40,212 // movaps %xmm12,%xmm2 + .byte 65,15,92,213 // subps %xmm13,%xmm2 + .byte 69,15,198,219,0 // shufps $0x0,%xmm11,%xmm11 + .byte 68,15,94,218 // divps %xmm2,%xmm11 + .byte 65,15,89,195 // mulps %xmm11,%xmm0 + .byte 69,15,198,192,0 // shufps $0x0,%xmm8,%xmm8 + .byte 68,15,88,192 // addps %xmm0,%xmm8 + .byte 102,15,110,200 // movd %eax,%xmm1 + .byte 65,15,89,219 // mulps %xmm11,%xmm3 + .byte 15,198,201,0 // shufps $0x0,%xmm1,%xmm1 + .byte 15,88,217 // addps %xmm1,%xmm3 + .byte 65,15,40,194 // movaps %xmm10,%xmm0 + .byte 102,68,15,56,20,195 // blendvps %xmm0,%xmm3,%xmm8 + .byte 69,15,89,243 // mulps %xmm11,%xmm14 + .byte 102,65,15,110,217 // movd %r9d,%xmm3 + .byte 15,198,219,0 // shufps $0x0,%xmm3,%xmm3 + .byte 65,15,84,223 // andps %xmm15,%xmm3 + .byte 65,15,88,222 // addps %xmm14,%xmm3 + .byte 184,0,0,0,63 // mov $0x3f000000,%eax + .byte 102,68,15,110,208 // movd %eax,%xmm10 + .byte 65,15,40,193 // movaps %xmm9,%xmm0 + .byte 102,68,15,56,20,195 // blendvps %xmm0,%xmm3,%xmm8 + .byte 65,15,40,220 // movaps %xmm12,%xmm3 + .byte 65,15,92,204 // subps %xmm12,%xmm1 + .byte 69,15,88,229 // addps %xmm13,%xmm12 + .byte 69,15,198,210,0 // shufps $0x0,%xmm10,%xmm10 + .byte 69,15,40,204 // movaps %xmm12,%xmm9 + .byte 69,15,89,202 // mulps %xmm10,%xmm9 + .byte 69,15,194,209,1 // cmpltps %xmm9,%xmm10 + .byte 65,15,92,205 // subps %xmm13,%xmm1 + .byte 65,15,40,194 // movaps %xmm10,%xmm0 + .byte 102,68,15,56,20,225 // blendvps %xmm0,%xmm1,%xmm12 + .byte 65,15,194,221,4 // cmpneqps %xmm13,%xmm3 + .byte 102,65,15,110,192 // movd %r8d,%xmm0 + .byte 15,198,192,0 // shufps $0x0,%xmm0,%xmm0 + .byte 68,15,84,195 // andps %xmm3,%xmm8 + .byte 68,15,89,192 // mulps %xmm0,%xmm8 + .byte 65,15,94,212 // divps %xmm12,%xmm2 + .byte 15,84,211 // andps %xmm3,%xmm2 + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 65,15,40,192 // movaps %xmm8,%xmm0 + .byte 15,40,202 // movaps %xmm2,%xmm1 + .byte 65,15,40,209 // movaps %xmm9,%xmm2 + .byte 15,40,220 // movaps %xmm4,%xmm3 + .byte 15,40,229 // movaps %xmm5,%xmm4 + .byte 15,40,238 // movaps %xmm6,%xmm5 + .byte 15,40,247 // movaps %xmm7,%xmm6 + .byte 15,40,124,36,232 // movaps -0x18(%rsp),%xmm7 + .byte 255,224 // jmpq *%rax + +HIDDEN _sk_hsl_to_rgb_sse41 +.globl _sk_hsl_to_rgb_sse41 +_sk_hsl_to_rgb_sse41: + .byte 72,131,236,24 // sub $0x18,%rsp + .byte 15,41,60,36 // movaps %xmm7,(%rsp) + .byte 15,41,116,36,240 // movaps %xmm6,-0x10(%rsp) + .byte 15,41,108,36,224 // movaps %xmm5,-0x20(%rsp) + .byte 15,41,100,36,208 // movaps %xmm4,-0x30(%rsp) + .byte 15,41,92,36,192 // movaps %xmm3,-0x40(%rsp) + .byte 68,15,40,208 // movaps %xmm0,%xmm10 + .byte 184,0,0,0,63 // mov $0x3f000000,%eax + .byte 102,15,110,216 // movd %eax,%xmm3 + .byte 15,198,219,0 // shufps $0x0,%xmm3,%xmm3 + .byte 15,41,92,36,128 // movaps %xmm3,-0x80(%rsp) + .byte 15,40,194 // movaps %xmm2,%xmm0 + .byte 15,194,195,1 // cmpltps %xmm3,%xmm0 + .byte 184,0,0,128,63 // mov $0x3f800000,%eax + .byte 102,68,15,110,192 // movd %eax,%xmm8 + .byte 69,15,198,192,0 // shufps $0x0,%xmm8,%xmm8 + .byte 65,15,40,224 // movaps %xmm8,%xmm4 + .byte 15,88,225 // addps %xmm1,%xmm4 + .byte 15,89,226 // mulps %xmm2,%xmm4 + .byte 15,40,217 // movaps %xmm1,%xmm3 + .byte 15,40,249 // movaps %xmm1,%xmm7 + .byte 15,88,250 // addps %xmm2,%xmm7 + .byte 15,89,218 // mulps %xmm2,%xmm3 + .byte 15,40,234 // movaps %xmm2,%xmm5 + .byte 15,92,251 // subps %xmm3,%xmm7 + .byte 102,15,56,20,252 // blendvps %xmm0,%xmm4,%xmm7 + .byte 184,0,0,0,64 // mov $0x40000000,%eax + .byte 185,171,170,170,62 // mov $0x3eaaaaab,%ecx + .byte 102,15,110,209 // movd %ecx,%xmm2 + .byte 15,198,210,0 // shufps $0x0,%xmm2,%xmm2 + .byte 15,41,84,36,176 // movaps %xmm2,-0x50(%rsp) + .byte 65,15,88,210 // addps %xmm10,%xmm2 + .byte 185,0,0,0,0 // mov $0x0,%ecx + .byte 65,15,40,192 // movaps %xmm8,%xmm0 + .byte 15,194,194,1 // cmpltps %xmm2,%xmm0 + .byte 15,40,218 // movaps %xmm2,%xmm3 + .byte 65,15,92,216 // subps %xmm8,%xmm3 + .byte 68,15,40,226 // movaps %xmm2,%xmm12 + .byte 102,68,15,56,20,227 // blendvps %xmm0,%xmm3,%xmm12 + .byte 102,68,15,110,241 // movd %ecx,%xmm14 + .byte 69,15,198,246,0 // shufps $0x0,%xmm14,%xmm14 + .byte 15,40,194 // movaps %xmm2,%xmm0 + .byte 65,15,194,198,1 // cmpltps %xmm14,%xmm0 + .byte 68,15,41,116,36,160 // movaps %xmm14,-0x60(%rsp) + .byte 65,15,40,216 // movaps %xmm8,%xmm3 + .byte 15,88,218 // addps %xmm2,%xmm3 + .byte 102,68,15,56,20,227 // blendvps %xmm0,%xmm3,%xmm12 + .byte 102,68,15,110,200 // movd %eax,%xmm9 + .byte 69,15,198,201,0 // shufps $0x0,%xmm9,%xmm9 + .byte 15,40,229 // movaps %xmm5,%xmm4 + .byte 15,41,100,36,144 // movaps %xmm4,-0x70(%rsp) + .byte 68,15,89,204 // mulps %xmm4,%xmm9 + .byte 68,15,92,207 // subps %xmm7,%xmm9 + .byte 184,171,170,42,62 // mov $0x3e2aaaab,%eax + .byte 15,40,199 // movaps %xmm7,%xmm0 + .byte 65,15,92,193 // subps %xmm9,%xmm0 + .byte 185,0,0,192,64 // mov $0x40c00000,%ecx + .byte 102,15,110,241 // movd %ecx,%xmm6 + .byte 15,198,246,0 // shufps $0x0,%xmm6,%xmm6 + .byte 15,89,240 // mulps %xmm0,%xmm6 + .byte 185,171,170,42,63 // mov $0x3f2aaaab,%ecx + .byte 102,15,110,217 // movd %ecx,%xmm3 + .byte 15,198,219,0 // shufps $0x0,%xmm3,%xmm3 + .byte 15,40,235 // movaps %xmm3,%xmm5 + .byte 65,15,92,236 // subps %xmm12,%xmm5 + .byte 69,15,40,236 // movaps %xmm12,%xmm13 + .byte 69,15,40,252 // movaps %xmm12,%xmm15 + .byte 68,15,194,227,1 // cmpltps %xmm3,%xmm12 + .byte 15,89,238 // mulps %xmm6,%xmm5 + .byte 65,15,88,233 // addps %xmm9,%xmm5 + .byte 69,15,40,217 // movaps %xmm9,%xmm11 + .byte 65,15,40,196 // movaps %xmm12,%xmm0 + .byte 102,68,15,56,20,221 // blendvps %xmm0,%xmm5,%xmm11 + .byte 68,15,194,124,36,128,1 // cmpltps -0x80(%rsp),%xmm15 + .byte 65,15,40,199 // movaps %xmm15,%xmm0 + .byte 102,68,15,56,20,223 // blendvps %xmm0,%xmm7,%xmm11 + .byte 102,15,110,232 // movd %eax,%xmm5 + .byte 15,198,237,0 // shufps $0x0,%xmm5,%xmm5 + .byte 68,15,194,237,1 // cmpltps %xmm5,%xmm13 + .byte 15,89,214 // mulps %xmm6,%xmm2 + .byte 65,15,88,209 // addps %xmm9,%xmm2 + .byte 65,15,40,197 // movaps %xmm13,%xmm0 + .byte 102,68,15,56,20,218 // blendvps %xmm0,%xmm2,%xmm11 + .byte 69,15,87,228 // xorps %xmm12,%xmm12 + .byte 68,15,194,225,0 // cmpeqps %xmm1,%xmm12 + .byte 65,15,40,196 // movaps %xmm12,%xmm0 + .byte 102,68,15,56,20,220 // blendvps %xmm0,%xmm4,%xmm11 + .byte 65,15,40,192 // movaps %xmm8,%xmm0 + .byte 65,15,194,194,1 // cmpltps %xmm10,%xmm0 + .byte 65,15,40,202 // movaps %xmm10,%xmm1 + .byte 65,15,92,200 // subps %xmm8,%xmm1 + .byte 69,15,40,234 // movaps %xmm10,%xmm13 + .byte 102,68,15,56,20,233 // blendvps %xmm0,%xmm1,%xmm13 + .byte 65,15,40,194 // movaps %xmm10,%xmm0 + .byte 65,15,194,198,1 // cmpltps %xmm14,%xmm0 + .byte 65,15,40,200 // movaps %xmm8,%xmm1 + .byte 65,15,88,202 // addps %xmm10,%xmm1 + .byte 102,68,15,56,20,233 // blendvps %xmm0,%xmm1,%xmm13 + .byte 68,15,40,243 // movaps %xmm3,%xmm14 + .byte 69,15,92,245 // subps %xmm13,%xmm14 + .byte 65,15,40,229 // movaps %xmm13,%xmm4 + .byte 69,15,40,253 // movaps %xmm13,%xmm15 + .byte 68,15,194,235,1 // cmpltps %xmm3,%xmm13 + .byte 68,15,89,246 // mulps %xmm6,%xmm14 + .byte 69,15,88,241 // addps %xmm9,%xmm14 + .byte 65,15,40,201 // movaps %xmm9,%xmm1 + .byte 65,15,40,197 // movaps %xmm13,%xmm0 + .byte 102,65,15,56,20,206 // blendvps %xmm0,%xmm14,%xmm1 + .byte 68,15,40,116,36,128 // movaps -0x80(%rsp),%xmm14 + .byte 69,15,194,254,1 // cmpltps %xmm14,%xmm15 + .byte 65,15,40,199 // movaps %xmm15,%xmm0 + .byte 102,15,56,20,207 // blendvps %xmm0,%xmm7,%xmm1 + .byte 15,194,229,1 // cmpltps %xmm5,%xmm4 + .byte 15,40,214 // movaps %xmm6,%xmm2 + .byte 65,15,89,210 // mulps %xmm10,%xmm2 + .byte 65,15,88,209 // addps %xmm9,%xmm2 + .byte 15,40,196 // movaps %xmm4,%xmm0 + .byte 102,15,56,20,202 // blendvps %xmm0,%xmm2,%xmm1 + .byte 65,15,40,196 // movaps %xmm12,%xmm0 + .byte 68,15,40,124,36,144 // movaps -0x70(%rsp),%xmm15 + .byte 102,65,15,56,20,207 // blendvps %xmm0,%xmm15,%xmm1 + .byte 68,15,92,84,36,176 // subps -0x50(%rsp),%xmm10 + .byte 65,15,40,210 // movaps %xmm10,%xmm2 + .byte 65,15,92,208 // subps %xmm8,%xmm2 + .byte 69,15,40,232 // movaps %xmm8,%xmm13 + .byte 69,15,194,194,1 // cmpltps %xmm10,%xmm8 + .byte 65,15,40,226 // movaps %xmm10,%xmm4 + .byte 65,15,40,192 // movaps %xmm8,%xmm0 + .byte 102,15,56,20,226 // blendvps %xmm0,%xmm2,%xmm4 + .byte 65,15,40,194 // movaps %xmm10,%xmm0 + .byte 15,194,68,36,160,1 // cmpltps -0x60(%rsp),%xmm0 + .byte 69,15,88,234 // addps %xmm10,%xmm13 + .byte 102,65,15,56,20,229 // blendvps %xmm0,%xmm13,%xmm4 + .byte 68,15,89,214 // mulps %xmm6,%xmm10 + .byte 15,40,196 // movaps %xmm4,%xmm0 + .byte 15,194,195,1 // cmpltps %xmm3,%xmm0 + .byte 15,92,220 // subps %xmm4,%xmm3 + .byte 15,89,222 // mulps %xmm6,%xmm3 + .byte 69,15,88,209 // addps %xmm9,%xmm10 + .byte 65,15,88,217 // addps %xmm9,%xmm3 + .byte 102,68,15,56,20,203 // blendvps %xmm0,%xmm3,%xmm9 + .byte 15,40,196 // movaps %xmm4,%xmm0 + .byte 65,15,194,198,1 // cmpltps %xmm14,%xmm0 + .byte 102,68,15,56,20,207 // blendvps %xmm0,%xmm7,%xmm9 + .byte 15,40,196 // movaps %xmm4,%xmm0 + .byte 15,194,197,1 // cmpltps %xmm5,%xmm0 + .byte 102,69,15,56,20,202 // blendvps %xmm0,%xmm10,%xmm9 + .byte 65,15,40,196 // movaps %xmm12,%xmm0 + .byte 102,69,15,56,20,207 // blendvps %xmm0,%xmm15,%xmm9 + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 65,15,40,195 // movaps %xmm11,%xmm0 + .byte 65,15,40,209 // movaps %xmm9,%xmm2 + .byte 15,40,92,36,192 // movaps -0x40(%rsp),%xmm3 + .byte 15,40,100,36,208 // movaps -0x30(%rsp),%xmm4 + .byte 15,40,108,36,224 // movaps -0x20(%rsp),%xmm5 + .byte 15,40,116,36,240 // movaps -0x10(%rsp),%xmm6 + .byte 15,40,60,36 // movaps (%rsp),%xmm7 + .byte 72,131,196,24 // add $0x18,%rsp + .byte 255,224 // jmpq *%rax + HIDDEN _sk_scale_1_float_sse41 .globl _sk_scale_1_float_sse41 _sk_scale_1_float_sse41: @@ -14098,9 +14983,9 @@ _sk_gather_i8_sse41: .byte 72,173 // lods %ds:(%rsi),%rax .byte 73,137,192 // mov %rax,%r8 .byte 77,133,192 // test %r8,%r8 - .byte 116,5 // je 1833 <_sk_gather_i8_sse41+0xf> + .byte 116,5 // je 1c27 <_sk_gather_i8_sse41+0xf> .byte 76,137,192 // mov %r8,%rax - .byte 235,2 // jmp 1835 <_sk_gather_i8_sse41+0x11> + .byte 235,2 // jmp 1c29 <_sk_gather_i8_sse41+0x11> .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,139,16 // mov (%rax),%r10 .byte 243,15,91,201 // cvttps2dq %xmm1,%xmm1 @@ -15175,7 +16060,7 @@ _sk_linear_gradient_sse41: .byte 69,15,198,237,0 // shufps $0x0,%xmm13,%xmm13 .byte 72,139,8 // mov (%rax),%rcx .byte 72,133,201 // test %rcx,%rcx - .byte 15,132,254,0,0,0 // je 29a1 <_sk_linear_gradient_sse41+0x138> + .byte 15,132,254,0,0,0 // je 2d95 <_sk_linear_gradient_sse41+0x138> .byte 15,41,100,36,168 // movaps %xmm4,-0x58(%rsp) .byte 15,41,108,36,184 // movaps %xmm5,-0x48(%rsp) .byte 15,41,116,36,200 // movaps %xmm6,-0x38(%rsp) @@ -15225,12 +16110,12 @@ _sk_linear_gradient_sse41: .byte 15,40,196 // movaps %xmm4,%xmm0 .byte 72,131,192,36 // add $0x24,%rax .byte 72,255,201 // dec %rcx - .byte 15,133,65,255,255,255 // jne 28cc <_sk_linear_gradient_sse41+0x63> + .byte 15,133,65,255,255,255 // jne 2cc0 <_sk_linear_gradient_sse41+0x63> .byte 15,40,124,36,216 // movaps -0x28(%rsp),%xmm7 .byte 15,40,116,36,200 // movaps -0x38(%rsp),%xmm6 .byte 15,40,108,36,184 // movaps -0x48(%rsp),%xmm5 .byte 15,40,100,36,168 // movaps -0x58(%rsp),%xmm4 - .byte 235,13 // jmp 29ae <_sk_linear_gradient_sse41+0x145> + .byte 235,13 // jmp 2da2 <_sk_linear_gradient_sse41+0x145> .byte 15,87,201 // xorps %xmm1,%xmm1 .byte 15,87,210 // xorps %xmm2,%xmm2 .byte 15,87,219 // xorps %xmm3,%xmm3 @@ -16636,6 +17521,258 @@ _sk_to_2dot2_sse2: .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax +HIDDEN _sk_rgb_to_hsl_sse2 +.globl _sk_rgb_to_hsl_sse2 +_sk_rgb_to_hsl_sse2: + .byte 68,15,40,201 // movaps %xmm1,%xmm9 + .byte 68,15,40,192 // movaps %xmm0,%xmm8 + .byte 69,15,40,208 // movaps %xmm8,%xmm10 + .byte 69,15,95,209 // maxps %xmm9,%xmm10 + .byte 68,15,95,210 // maxps %xmm2,%xmm10 + .byte 69,15,40,216 // movaps %xmm8,%xmm11 + .byte 69,15,93,217 // minps %xmm9,%xmm11 + .byte 68,15,93,218 // minps %xmm2,%xmm11 + .byte 65,15,40,202 // movaps %xmm10,%xmm1 + .byte 65,15,92,203 // subps %xmm11,%xmm1 + .byte 184,0,0,128,63 // mov $0x3f800000,%eax + .byte 102,68,15,110,224 // movd %eax,%xmm12 + .byte 69,15,198,228,0 // shufps $0x0,%xmm12,%xmm12 + .byte 68,15,94,225 // divps %xmm1,%xmm12 + .byte 65,184,171,170,42,62 // mov $0x3e2aaaab,%r8d + .byte 65,15,40,194 // movaps %xmm10,%xmm0 + .byte 65,15,194,192,0 // cmpeqps %xmm8,%xmm0 + .byte 69,15,40,241 // movaps %xmm9,%xmm14 + .byte 68,15,194,242,1 // cmpltps %xmm2,%xmm14 + .byte 185,0,0,192,64 // mov $0x40c00000,%ecx + .byte 102,68,15,110,233 // movd %ecx,%xmm13 + .byte 69,15,198,237,0 // shufps $0x0,%xmm13,%xmm13 + .byte 69,15,84,238 // andps %xmm14,%xmm13 + .byte 69,15,40,241 // movaps %xmm9,%xmm14 + .byte 68,15,92,242 // subps %xmm2,%xmm14 + .byte 69,15,89,244 // mulps %xmm12,%xmm14 + .byte 69,15,88,238 // addps %xmm14,%xmm13 + .byte 69,15,40,242 // movaps %xmm10,%xmm14 + .byte 69,15,194,241,0 // cmpeqps %xmm9,%xmm14 + .byte 65,15,92,208 // subps %xmm8,%xmm2 + .byte 69,15,92,193 // subps %xmm9,%xmm8 + .byte 65,15,89,212 // mulps %xmm12,%xmm2 + .byte 185,0,0,0,64 // mov $0x40000000,%ecx + .byte 69,15,89,196 // mulps %xmm12,%xmm8 + .byte 184,0,0,128,64 // mov $0x40800000,%eax + .byte 102,68,15,110,200 // movd %eax,%xmm9 + .byte 69,15,198,201,0 // shufps $0x0,%xmm9,%xmm9 + .byte 69,15,88,200 // addps %xmm8,%xmm9 + .byte 102,68,15,110,193 // movd %ecx,%xmm8 + .byte 69,15,198,192,0 // shufps $0x0,%xmm8,%xmm8 + .byte 65,15,88,208 // addps %xmm8,%xmm2 + .byte 65,15,84,214 // andps %xmm14,%xmm2 + .byte 69,15,85,241 // andnps %xmm9,%xmm14 + .byte 68,15,86,242 // orps %xmm2,%xmm14 + .byte 68,15,84,232 // andps %xmm0,%xmm13 + .byte 65,15,85,198 // andnps %xmm14,%xmm0 + .byte 102,65,15,110,208 // movd %r8d,%xmm2 + .byte 15,198,210,0 // shufps $0x0,%xmm2,%xmm2 + .byte 65,15,86,197 // orps %xmm13,%xmm0 + .byte 69,15,40,202 // movaps %xmm10,%xmm9 + .byte 69,15,194,203,4 // cmpneqps %xmm11,%xmm9 + .byte 65,15,84,193 // andps %xmm9,%xmm0 + .byte 15,89,194 // mulps %xmm2,%xmm0 + .byte 69,15,92,194 // subps %xmm10,%xmm8 + .byte 69,15,88,211 // addps %xmm11,%xmm10 + .byte 184,0,0,0,63 // mov $0x3f000000,%eax + .byte 102,68,15,110,224 // movd %eax,%xmm12 + .byte 69,15,198,228,0 // shufps $0x0,%xmm12,%xmm12 + .byte 69,15,92,195 // subps %xmm11,%xmm8 + .byte 65,15,40,210 // movaps %xmm10,%xmm2 + .byte 65,15,89,212 // mulps %xmm12,%xmm2 + .byte 68,15,194,226,1 // cmpltps %xmm2,%xmm12 + .byte 69,15,84,196 // andps %xmm12,%xmm8 + .byte 69,15,85,226 // andnps %xmm10,%xmm12 + .byte 69,15,86,224 // orps %xmm8,%xmm12 + .byte 65,15,94,204 // divps %xmm12,%xmm1 + .byte 65,15,84,201 // andps %xmm9,%xmm1 + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 255,224 // jmpq *%rax + +HIDDEN _sk_hsl_to_rgb_sse2 +.globl _sk_hsl_to_rgb_sse2 +_sk_hsl_to_rgb_sse2: + .byte 15,41,124,36,232 // movaps %xmm7,-0x18(%rsp) + .byte 15,41,116,36,216 // movaps %xmm6,-0x28(%rsp) + .byte 15,41,108,36,200 // movaps %xmm5,-0x38(%rsp) + .byte 15,41,100,36,184 // movaps %xmm4,-0x48(%rsp) + .byte 15,41,92,36,168 // movaps %xmm3,-0x58(%rsp) + .byte 68,15,40,210 // movaps %xmm2,%xmm10 + .byte 15,40,209 // movaps %xmm1,%xmm2 + .byte 15,40,240 // movaps %xmm0,%xmm6 + .byte 184,0,0,0,63 // mov $0x3f000000,%eax + .byte 102,68,15,110,240 // movd %eax,%xmm14 + .byte 69,15,198,246,0 // shufps $0x0,%xmm14,%xmm14 + .byte 69,15,40,202 // movaps %xmm10,%xmm9 + .byte 69,15,194,206,1 // cmpltps %xmm14,%xmm9 + .byte 184,0,0,128,63 // mov $0x3f800000,%eax + .byte 102,68,15,110,224 // movd %eax,%xmm12 + .byte 69,15,198,228,0 // shufps $0x0,%xmm12,%xmm12 + .byte 65,15,40,196 // movaps %xmm12,%xmm0 + .byte 15,88,194 // addps %xmm2,%xmm0 + .byte 65,15,89,194 // mulps %xmm10,%xmm0 + .byte 15,40,218 // movaps %xmm2,%xmm3 + .byte 69,15,87,219 // xorps %xmm11,%xmm11 + .byte 68,15,194,218,0 // cmpeqps %xmm2,%xmm11 + .byte 65,15,88,210 // addps %xmm10,%xmm2 + .byte 65,15,89,218 // mulps %xmm10,%xmm3 + .byte 15,92,211 // subps %xmm3,%xmm2 + .byte 65,15,84,193 // andps %xmm9,%xmm0 + .byte 68,15,85,202 // andnps %xmm2,%xmm9 + .byte 68,15,86,200 // orps %xmm0,%xmm9 + .byte 184,0,0,0,64 // mov $0x40000000,%eax + .byte 185,171,170,170,62 // mov $0x3eaaaaab,%ecx + .byte 102,68,15,110,193 // movd %ecx,%xmm8 + .byte 69,15,198,192,0 // shufps $0x0,%xmm8,%xmm8 + .byte 68,15,41,68,36,152 // movaps %xmm8,-0x68(%rsp) + .byte 68,15,88,198 // addps %xmm6,%xmm8 + .byte 185,0,0,0,0 // mov $0x0,%ecx + .byte 102,15,110,233 // movd %ecx,%xmm5 + .byte 15,198,237,0 // shufps $0x0,%xmm5,%xmm5 + .byte 65,15,40,196 // movaps %xmm12,%xmm0 + .byte 65,15,194,192,1 // cmpltps %xmm8,%xmm0 + .byte 65,15,40,216 // movaps %xmm8,%xmm3 + .byte 65,15,92,220 // subps %xmm12,%xmm3 + .byte 15,84,216 // andps %xmm0,%xmm3 + .byte 65,15,85,192 // andnps %xmm8,%xmm0 + .byte 15,86,195 // orps %xmm3,%xmm0 + .byte 65,15,40,216 // movaps %xmm8,%xmm3 + .byte 15,194,221,1 // cmpltps %xmm5,%xmm3 + .byte 65,15,40,212 // movaps %xmm12,%xmm2 + .byte 65,15,88,208 // addps %xmm8,%xmm2 + .byte 15,84,211 // andps %xmm3,%xmm2 + .byte 15,85,216 // andnps %xmm0,%xmm3 + .byte 15,86,218 // orps %xmm2,%xmm3 + .byte 102,68,15,110,232 // movd %eax,%xmm13 + .byte 69,15,198,237,0 // shufps $0x0,%xmm13,%xmm13 + .byte 69,15,89,234 // mulps %xmm10,%xmm13 + .byte 69,15,92,233 // subps %xmm9,%xmm13 + .byte 184,171,170,42,62 // mov $0x3e2aaaab,%eax + .byte 65,15,40,193 // movaps %xmm9,%xmm0 + .byte 65,15,92,197 // subps %xmm13,%xmm0 + .byte 185,0,0,192,64 // mov $0x40c00000,%ecx + .byte 102,68,15,110,249 // movd %ecx,%xmm15 + .byte 69,15,198,255,0 // shufps $0x0,%xmm15,%xmm15 + .byte 68,15,89,248 // mulps %xmm0,%xmm15 + .byte 185,171,170,42,63 // mov $0x3f2aaaab,%ecx + .byte 102,15,110,225 // movd %ecx,%xmm4 + .byte 15,198,228,0 // shufps $0x0,%xmm4,%xmm4 + .byte 15,40,212 // movaps %xmm4,%xmm2 + .byte 15,92,211 // subps %xmm3,%xmm2 + .byte 15,40,203 // movaps %xmm3,%xmm1 + .byte 15,40,195 // movaps %xmm3,%xmm0 + .byte 15,194,220,1 // cmpltps %xmm4,%xmm3 + .byte 65,15,89,215 // mulps %xmm15,%xmm2 + .byte 65,15,88,213 // addps %xmm13,%xmm2 + .byte 15,84,211 // andps %xmm3,%xmm2 + .byte 65,15,85,221 // andnps %xmm13,%xmm3 + .byte 15,86,218 // orps %xmm2,%xmm3 + .byte 65,15,194,198,1 // cmpltps %xmm14,%xmm0 + .byte 65,15,40,209 // movaps %xmm9,%xmm2 + .byte 15,84,208 // andps %xmm0,%xmm2 + .byte 15,85,195 // andnps %xmm3,%xmm0 + .byte 15,86,194 // orps %xmm2,%xmm0 + .byte 102,15,110,248 // movd %eax,%xmm7 + .byte 15,198,255,0 // shufps $0x0,%xmm7,%xmm7 + .byte 15,194,207,1 // cmpltps %xmm7,%xmm1 + .byte 69,15,89,199 // mulps %xmm15,%xmm8 + .byte 69,15,88,197 // addps %xmm13,%xmm8 + .byte 68,15,84,193 // andps %xmm1,%xmm8 + .byte 15,85,200 // andnps %xmm0,%xmm1 + .byte 65,15,86,200 // orps %xmm8,%xmm1 + .byte 69,15,40,195 // movaps %xmm11,%xmm8 + .byte 68,15,85,193 // andnps %xmm1,%xmm8 + .byte 65,15,40,196 // movaps %xmm12,%xmm0 + .byte 15,194,198,1 // cmpltps %xmm6,%xmm0 + .byte 15,40,206 // movaps %xmm6,%xmm1 + .byte 65,15,92,204 // subps %xmm12,%xmm1 + .byte 15,84,200 // andps %xmm0,%xmm1 + .byte 15,85,198 // andnps %xmm6,%xmm0 + .byte 15,86,193 // orps %xmm1,%xmm0 + .byte 15,40,206 // movaps %xmm6,%xmm1 + .byte 15,194,205,1 // cmpltps %xmm5,%xmm1 + .byte 65,15,40,212 // movaps %xmm12,%xmm2 + .byte 15,88,214 // addps %xmm6,%xmm2 + .byte 15,84,209 // andps %xmm1,%xmm2 + .byte 15,85,200 // andnps %xmm0,%xmm1 + .byte 15,86,202 // orps %xmm2,%xmm1 + .byte 15,40,196 // movaps %xmm4,%xmm0 + .byte 15,92,193 // subps %xmm1,%xmm0 + .byte 15,40,217 // movaps %xmm1,%xmm3 + .byte 15,40,209 // movaps %xmm1,%xmm2 + .byte 15,194,204,1 // cmpltps %xmm4,%xmm1 + .byte 65,15,89,199 // mulps %xmm15,%xmm0 + .byte 65,15,88,197 // addps %xmm13,%xmm0 + .byte 15,84,193 // andps %xmm1,%xmm0 + .byte 65,15,85,205 // andnps %xmm13,%xmm1 + .byte 15,86,200 // orps %xmm0,%xmm1 + .byte 65,15,194,214,1 // cmpltps %xmm14,%xmm2 + .byte 65,15,40,193 // movaps %xmm9,%xmm0 + .byte 15,84,194 // andps %xmm2,%xmm0 + .byte 15,85,209 // andnps %xmm1,%xmm2 + .byte 15,86,208 // orps %xmm0,%xmm2 + .byte 15,194,223,1 // cmpltps %xmm7,%xmm3 + .byte 65,15,40,199 // movaps %xmm15,%xmm0 + .byte 15,89,198 // mulps %xmm6,%xmm0 + .byte 65,15,88,197 // addps %xmm13,%xmm0 + .byte 15,84,195 // andps %xmm3,%xmm0 + .byte 15,85,218 // andnps %xmm2,%xmm3 + .byte 15,86,216 // orps %xmm0,%xmm3 + .byte 65,15,40,203 // movaps %xmm11,%xmm1 + .byte 15,85,203 // andnps %xmm3,%xmm1 + .byte 15,92,116,36,152 // subps -0x68(%rsp),%xmm6 + .byte 15,40,198 // movaps %xmm6,%xmm0 + .byte 15,194,197,1 // cmpltps %xmm5,%xmm0 + .byte 15,40,214 // movaps %xmm6,%xmm2 + .byte 65,15,92,212 // subps %xmm12,%xmm2 + .byte 65,15,40,220 // movaps %xmm12,%xmm3 + .byte 68,15,194,230,1 // cmpltps %xmm6,%xmm12 + .byte 65,15,84,212 // andps %xmm12,%xmm2 + .byte 68,15,85,230 // andnps %xmm6,%xmm12 + .byte 68,15,86,226 // orps %xmm2,%xmm12 + .byte 15,88,222 // addps %xmm6,%xmm3 + .byte 15,84,216 // andps %xmm0,%xmm3 + .byte 65,15,85,196 // andnps %xmm12,%xmm0 + .byte 15,86,195 // orps %xmm3,%xmm0 + .byte 15,40,232 // movaps %xmm0,%xmm5 + .byte 15,194,239,1 // cmpltps %xmm7,%xmm5 + .byte 15,40,208 // movaps %xmm0,%xmm2 + .byte 15,194,212,1 // cmpltps %xmm4,%xmm2 + .byte 15,92,224 // subps %xmm0,%xmm4 + .byte 65,15,194,198,1 // cmpltps %xmm14,%xmm0 + .byte 65,15,89,247 // mulps %xmm15,%xmm6 + .byte 65,15,89,231 // mulps %xmm15,%xmm4 + .byte 65,15,88,245 // addps %xmm13,%xmm6 + .byte 65,15,88,229 // addps %xmm13,%xmm4 + .byte 15,84,226 // andps %xmm2,%xmm4 + .byte 65,15,85,213 // andnps %xmm13,%xmm2 + .byte 15,86,212 // orps %xmm4,%xmm2 + .byte 68,15,84,200 // andps %xmm0,%xmm9 + .byte 15,85,194 // andnps %xmm2,%xmm0 + .byte 65,15,86,193 // orps %xmm9,%xmm0 + .byte 15,84,245 // andps %xmm5,%xmm6 + .byte 15,85,232 // andnps %xmm0,%xmm5 + .byte 15,86,238 // orps %xmm6,%xmm5 + .byte 69,15,84,211 // andps %xmm11,%xmm10 + .byte 68,15,85,221 // andnps %xmm5,%xmm11 + .byte 69,15,86,194 // orps %xmm10,%xmm8 + .byte 65,15,86,202 // orps %xmm10,%xmm1 + .byte 69,15,86,211 // orps %xmm11,%xmm10 + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 65,15,40,192 // movaps %xmm8,%xmm0 + .byte 65,15,40,210 // movaps %xmm10,%xmm2 + .byte 15,40,92,36,168 // movaps -0x58(%rsp),%xmm3 + .byte 15,40,100,36,184 // movaps -0x48(%rsp),%xmm4 + .byte 15,40,108,36,200 // movaps -0x38(%rsp),%xmm5 + .byte 15,40,116,36,216 // movaps -0x28(%rsp),%xmm6 + .byte 15,40,124,36,232 // movaps -0x18(%rsp),%xmm7 + .byte 255,224 // jmpq *%rax + HIDDEN _sk_scale_1_float_sse2 .globl _sk_scale_1_float_sse2 _sk_scale_1_float_sse2: @@ -17212,9 +18349,9 @@ _sk_gather_i8_sse2: .byte 72,173 // lods %ds:(%rsi),%rax .byte 73,137,192 // mov %rax,%r8 .byte 77,133,192 // test %r8,%r8 - .byte 116,5 // je 19aa <_sk_gather_i8_sse2+0xf> + .byte 116,5 // je 1d75 <_sk_gather_i8_sse2+0xf> .byte 76,137,192 // mov %r8,%rax - .byte 235,2 // jmp 19ac <_sk_gather_i8_sse2+0x11> + .byte 235,2 // jmp 1d77 <_sk_gather_i8_sse2+0x11> .byte 72,173 // lods %ds:(%rsi),%rax .byte 76,139,16 // mov (%rax),%r10 .byte 243,15,91,201 // cvttps2dq %xmm1,%xmm1 @@ -18391,7 +19528,7 @@ _sk_linear_gradient_sse2: .byte 69,15,198,228,0 // shufps $0x0,%xmm12,%xmm12 .byte 72,139,8 // mov (%rax),%rcx .byte 72,133,201 // test %rcx,%rcx - .byte 15,132,15,1,0,0 // je 2cd5 <_sk_linear_gradient_sse2+0x149> + .byte 15,132,15,1,0,0 // je 30a0 <_sk_linear_gradient_sse2+0x149> .byte 72,139,64,8 // mov 0x8(%rax),%rax .byte 72,131,192,32 // add $0x20,%rax .byte 69,15,87,192 // xorps %xmm8,%xmm8 @@ -18452,8 +19589,8 @@ _sk_linear_gradient_sse2: .byte 69,15,86,231 // orps %xmm15,%xmm12 .byte 72,131,192,36 // add $0x24,%rax .byte 72,255,201 // dec %rcx - .byte 15,133,8,255,255,255 // jne 2bdb <_sk_linear_gradient_sse2+0x4f> - .byte 235,13 // jmp 2ce2 <_sk_linear_gradient_sse2+0x156> + .byte 15,133,8,255,255,255 // jne 2fa6 <_sk_linear_gradient_sse2+0x4f> + .byte 235,13 // jmp 30ad <_sk_linear_gradient_sse2+0x156> .byte 15,87,201 // xorps %xmm1,%xmm1 .byte 15,87,210 // xorps %xmm2,%xmm2 .byte 15,87,219 // xorps %xmm3,%xmm3 diff --git a/src/jumper/SkJumper_generated_win.S b/src/jumper/SkJumper_generated_win.S index d0e25d6120..043da8576b 100644 --- a/src/jumper/SkJumper_generated_win.S +++ b/src/jumper/SkJumper_generated_win.S @@ -1017,6 +1017,175 @@ _sk_to_2dot2_hsw LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax +PUBLIC _sk_rgb_to_hsl_hsw +_sk_rgb_to_hsl_hsw LABEL PROC + DB 72,131,236,56 ; sub $0x38,%rsp + DB 197,252,17,60,36 ; vmovups %ymm7,(%rsp) + DB 197,252,40,254 ; vmovaps %ymm6,%ymm7 + DB 197,252,40,245 ; vmovaps %ymm5,%ymm6 + DB 197,252,40,236 ; vmovaps %ymm4,%ymm5 + DB 197,252,40,227 ; vmovaps %ymm3,%ymm4 + DB 197,252,40,216 ; vmovaps %ymm0,%ymm3 + DB 184,0,0,128,63 ; mov $0x3f800000,%eax + DB 197,121,110,192 ; vmovd %eax,%xmm8 + DB 65,184,171,170,42,62 ; mov $0x3e2aaaab,%r8d + DB 184,0,0,192,64 ; mov $0x40c00000,%eax + DB 197,121,110,200 ; vmovd %eax,%xmm9 + DB 65,185,0,0,0,64 ; mov $0x40000000,%r9d + DB 184,0,0,128,64 ; mov $0x40800000,%eax + DB 197,121,110,208 ; vmovd %eax,%xmm10 + DB 197,100,95,217 ; vmaxps %ymm1,%ymm3,%ymm11 + DB 197,36,95,218 ; vmaxps %ymm2,%ymm11,%ymm11 + DB 197,100,93,225 ; vminps %ymm1,%ymm3,%ymm12 + DB 197,28,93,226 ; vminps %ymm2,%ymm12,%ymm12 + DB 196,65,36,92,236 ; vsubps %ymm12,%ymm11,%ymm13 + DB 196,66,125,88,192 ; vpbroadcastd %xmm8,%ymm8 + DB 196,65,60,94,197 ; vdivps %ymm13,%ymm8,%ymm8 + DB 197,116,194,242,1 ; vcmpltps %ymm2,%ymm1,%ymm14 + DB 196,66,125,88,201 ; vpbroadcastd %xmm9,%ymm9 + DB 196,65,4,87,255 ; vxorps %ymm15,%ymm15,%ymm15 + DB 196,67,5,74,201,224 ; vblendvps %ymm14,%ymm9,%ymm15,%ymm9 + DB 197,116,92,242 ; vsubps %ymm2,%ymm1,%ymm14 + DB 196,66,61,168,241 ; vfmadd213ps %ymm9,%ymm8,%ymm14 + DB 197,236,92,195 ; vsubps %ymm3,%ymm2,%ymm0 + DB 197,100,92,201 ; vsubps %ymm1,%ymm3,%ymm9 + DB 196,66,125,88,210 ; vpbroadcastd %xmm10,%ymm10 + DB 196,66,61,168,202 ; vfmadd213ps %ymm10,%ymm8,%ymm9 + DB 196,193,121,110,209 ; vmovd %r9d,%xmm2 + DB 196,98,125,88,210 ; vpbroadcastd %xmm2,%ymm10 + DB 196,194,61,168,194 ; vfmadd213ps %ymm10,%ymm8,%ymm0 + DB 197,164,194,201,0 ; vcmpeqps %ymm1,%ymm11,%ymm1 + DB 196,227,53,74,192,16 ; vblendvps %ymm1,%ymm0,%ymm9,%ymm0 + DB 184,0,0,0,63 ; mov $0x3f000000,%eax + DB 197,249,110,200 ; vmovd %eax,%xmm1 + DB 197,164,194,211,0 ; vcmpeqps %ymm3,%ymm11,%ymm2 + DB 196,195,125,74,198,32 ; vblendvps %ymm2,%ymm14,%ymm0,%ymm0 + DB 196,193,36,88,220 ; vaddps %ymm12,%ymm11,%ymm3 + DB 196,226,125,88,201 ; vpbroadcastd %xmm1,%ymm1 + DB 197,228,89,209 ; vmulps %ymm1,%ymm3,%ymm2 + DB 197,244,194,202,1 ; vcmpltps %ymm2,%ymm1,%ymm1 + DB 196,65,44,92,195 ; vsubps %ymm11,%ymm10,%ymm8 + DB 196,65,60,92,196 ; vsubps %ymm12,%ymm8,%ymm8 + DB 196,195,101,74,200,16 ; vblendvps %ymm1,%ymm8,%ymm3,%ymm1 + DB 196,193,36,194,220,0 ; vcmpeqps %ymm12,%ymm11,%ymm3 + DB 197,148,94,201 ; vdivps %ymm1,%ymm13,%ymm1 + DB 196,195,125,74,199,48 ; vblendvps %ymm3,%ymm15,%ymm0,%ymm0 + DB 196,195,117,74,207,48 ; vblendvps %ymm3,%ymm15,%ymm1,%ymm1 + DB 196,193,121,110,216 ; vmovd %r8d,%xmm3 + DB 196,226,125,88,219 ; vpbroadcastd %xmm3,%ymm3 + DB 197,228,89,192 ; vmulps %ymm0,%ymm3,%ymm0 + DB 72,173 ; lods %ds:(%rsi),%rax + DB 197,252,40,220 ; vmovaps %ymm4,%ymm3 + DB 197,252,40,229 ; vmovaps %ymm5,%ymm4 + DB 197,252,40,238 ; vmovaps %ymm6,%ymm5 + DB 197,252,40,247 ; vmovaps %ymm7,%ymm6 + DB 197,252,16,60,36 ; vmovups (%rsp),%ymm7 + DB 72,131,196,56 ; add $0x38,%rsp + DB 255,224 ; jmpq *%rax + +PUBLIC _sk_hsl_to_rgb_hsw +_sk_hsl_to_rgb_hsw LABEL PROC + DB 72,129,236,184,0,0,0 ; sub $0xb8,%rsp + DB 197,252,17,188,36,128,0,0,0 ; vmovups %ymm7,0x80(%rsp) + DB 197,252,17,116,36,96 ; vmovups %ymm6,0x60(%rsp) + DB 197,252,17,108,36,64 ; vmovups %ymm5,0x40(%rsp) + DB 197,252,17,100,36,32 ; vmovups %ymm4,0x20(%rsp) + DB 197,252,17,28,36 ; vmovups %ymm3,(%rsp) + DB 197,252,40,233 ; vmovaps %ymm1,%ymm5 + DB 184,0,0,0,63 ; mov $0x3f000000,%eax + DB 197,249,110,200 ; vmovd %eax,%xmm1 + DB 196,98,125,88,193 ; vpbroadcastd %xmm1,%ymm8 + DB 196,193,108,194,200,1 ; vcmpltps %ymm8,%ymm2,%ymm1 + DB 184,0,0,128,63 ; mov $0x3f800000,%eax + DB 197,249,110,224 ; vmovd %eax,%xmm4 + DB 196,98,125,88,212 ; vpbroadcastd %xmm4,%ymm10 + DB 197,172,88,229 ; vaddps %ymm5,%ymm10,%ymm4 + DB 197,220,89,226 ; vmulps %ymm2,%ymm4,%ymm4 + DB 197,84,88,202 ; vaddps %ymm2,%ymm5,%ymm9 + DB 196,98,85,188,202 ; vfnmadd231ps %ymm2,%ymm5,%ymm9 + DB 196,99,53,74,204,16 ; vblendvps %ymm1,%ymm4,%ymm9,%ymm9 + DB 65,184,0,0,0,64 ; mov $0x40000000,%r8d + DB 184,171,170,170,62 ; mov $0x3eaaaaab,%eax + DB 197,249,110,200 ; vmovd %eax,%xmm1 + DB 196,98,125,88,233 ; vpbroadcastd %xmm1,%ymm13 + DB 197,148,88,224 ; vaddps %ymm0,%ymm13,%ymm4 + DB 184,0,0,0,0 ; mov $0x0,%eax + DB 197,249,110,200 ; vmovd %eax,%xmm1 + DB 196,98,125,88,225 ; vpbroadcastd %xmm1,%ymm12 + DB 197,172,194,204,1 ; vcmpltps %ymm4,%ymm10,%ymm1 + DB 196,65,92,92,218 ; vsubps %ymm10,%ymm4,%ymm11 + DB 196,195,93,74,203,16 ; vblendvps %ymm1,%ymm11,%ymm4,%ymm1 + DB 196,65,92,194,220,1 ; vcmpltps %ymm12,%ymm4,%ymm11 + DB 197,44,88,244 ; vaddps %ymm4,%ymm10,%ymm14 + DB 196,195,117,74,206,176 ; vblendvps %ymm11,%ymm14,%ymm1,%ymm1 + DB 196,193,121,110,216 ; vmovd %r8d,%xmm3 + DB 196,98,125,88,219 ; vpbroadcastd %xmm3,%ymm11 + DB 196,66,109,170,217 ; vfmsub213ps %ymm9,%ymm2,%ymm11 + DB 65,184,171,170,42,62 ; mov $0x3e2aaaab,%r8d + DB 184,0,0,192,64 ; mov $0x40c00000,%eax + DB 197,249,110,216 ; vmovd %eax,%xmm3 + DB 196,226,125,88,219 ; vpbroadcastd %xmm3,%ymm3 + DB 196,65,52,92,243 ; vsubps %ymm11,%ymm9,%ymm14 + DB 197,12,89,243 ; vmulps %ymm3,%ymm14,%ymm14 + DB 184,171,170,42,63 ; mov $0x3f2aaaab,%eax + DB 197,249,110,216 ; vmovd %eax,%xmm3 + DB 196,98,125,88,251 ; vpbroadcastd %xmm3,%ymm15 + DB 197,132,92,217 ; vsubps %ymm1,%ymm15,%ymm3 + DB 196,194,13,168,219 ; vfmadd213ps %ymm11,%ymm14,%ymm3 + DB 196,193,116,194,255,1 ; vcmpltps %ymm15,%ymm1,%ymm7 + DB 196,227,37,74,219,112 ; vblendvps %ymm7,%ymm3,%ymm11,%ymm3 + DB 196,193,116,194,248,1 ; vcmpltps %ymm8,%ymm1,%ymm7 + DB 196,195,101,74,249,112 ; vblendvps %ymm7,%ymm9,%ymm3,%ymm7 + DB 196,193,121,110,216 ; vmovd %r8d,%xmm3 + DB 196,226,125,88,219 ; vpbroadcastd %xmm3,%ymm3 + DB 197,244,194,203,1 ; vcmpltps %ymm3,%ymm1,%ymm1 + DB 196,194,13,168,227 ; vfmadd213ps %ymm11,%ymm14,%ymm4 + DB 196,227,69,74,228,16 ; vblendvps %ymm1,%ymm4,%ymm7,%ymm4 + DB 197,172,194,200,1 ; vcmpltps %ymm0,%ymm10,%ymm1 + DB 196,193,124,92,250 ; vsubps %ymm10,%ymm0,%ymm7 + DB 196,227,125,74,207,16 ; vblendvps %ymm1,%ymm7,%ymm0,%ymm1 + DB 196,193,124,194,252,1 ; vcmpltps %ymm12,%ymm0,%ymm7 + DB 197,172,88,240 ; vaddps %ymm0,%ymm10,%ymm6 + DB 196,227,117,74,206,112 ; vblendvps %ymm7,%ymm6,%ymm1,%ymm1 + DB 197,132,92,241 ; vsubps %ymm1,%ymm15,%ymm6 + DB 196,194,13,168,243 ; vfmadd213ps %ymm11,%ymm14,%ymm6 + DB 196,193,116,194,255,1 ; vcmpltps %ymm15,%ymm1,%ymm7 + DB 196,227,37,74,246,112 ; vblendvps %ymm7,%ymm6,%ymm11,%ymm6 + DB 196,193,116,194,248,1 ; vcmpltps %ymm8,%ymm1,%ymm7 + DB 196,195,77,74,241,112 ; vblendvps %ymm7,%ymm9,%ymm6,%ymm6 + DB 197,244,194,203,1 ; vcmpltps %ymm3,%ymm1,%ymm1 + DB 196,193,124,92,253 ; vsubps %ymm13,%ymm0,%ymm7 + DB 196,194,13,168,195 ; vfmadd213ps %ymm11,%ymm14,%ymm0 + DB 196,227,77,74,200,16 ; vblendvps %ymm1,%ymm0,%ymm6,%ymm1 + DB 197,172,194,199,1 ; vcmpltps %ymm7,%ymm10,%ymm0 + DB 196,193,68,92,242 ; vsubps %ymm10,%ymm7,%ymm6 + DB 196,227,69,74,198,0 ; vblendvps %ymm0,%ymm6,%ymm7,%ymm0 + DB 196,193,68,194,244,1 ; vcmpltps %ymm12,%ymm7,%ymm6 + DB 197,44,88,215 ; vaddps %ymm7,%ymm10,%ymm10 + DB 196,195,125,74,194,96 ; vblendvps %ymm6,%ymm10,%ymm0,%ymm0 + DB 196,194,13,168,251 ; vfmadd213ps %ymm11,%ymm14,%ymm7 + DB 197,132,92,240 ; vsubps %ymm0,%ymm15,%ymm6 + DB 196,194,13,168,243 ; vfmadd213ps %ymm11,%ymm14,%ymm6 + DB 196,65,124,194,215,1 ; vcmpltps %ymm15,%ymm0,%ymm10 + DB 196,227,37,74,246,160 ; vblendvps %ymm10,%ymm6,%ymm11,%ymm6 + DB 196,65,124,194,192,1 ; vcmpltps %ymm8,%ymm0,%ymm8 + DB 196,195,77,74,241,128 ; vblendvps %ymm8,%ymm9,%ymm6,%ymm6 + DB 197,252,194,195,1 ; vcmpltps %ymm3,%ymm0,%ymm0 + DB 196,227,77,74,223,0 ; vblendvps %ymm0,%ymm7,%ymm6,%ymm3 + DB 197,252,87,192 ; vxorps %ymm0,%ymm0,%ymm0 + DB 197,212,194,232,0 ; vcmpeqps %ymm0,%ymm5,%ymm5 + DB 196,227,93,74,194,80 ; vblendvps %ymm5,%ymm2,%ymm4,%ymm0 + DB 196,227,117,74,202,80 ; vblendvps %ymm5,%ymm2,%ymm1,%ymm1 + DB 196,227,101,74,210,80 ; vblendvps %ymm5,%ymm2,%ymm3,%ymm2 + DB 72,173 ; lods %ds:(%rsi),%rax + DB 197,252,16,28,36 ; vmovups (%rsp),%ymm3 + DB 197,252,16,100,36,32 ; vmovups 0x20(%rsp),%ymm4 + DB 197,252,16,108,36,64 ; vmovups 0x40(%rsp),%ymm5 + DB 197,252,16,116,36,96 ; vmovups 0x60(%rsp),%ymm6 + DB 197,252,16,188,36,128,0,0,0 ; vmovups 0x80(%rsp),%ymm7 + DB 72,129,196,184,0,0,0 ; add $0xb8,%rsp + DB 255,224 ; jmpq *%rax + PUBLIC _sk_scale_1_float_hsw _sk_scale_1_float_hsw LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax @@ -1035,7 +1204,7 @@ _sk_scale_u8_hsw LABEL PROC DB 72,139,0 ; mov (%rax),%rax DB 72,1,248 ; add %rdi,%rax DB 77,133,192 ; test %r8,%r8 - DB 117,56 ; jne f3a <_sk_scale_u8_hsw+0x48> + DB 117,56 ; jne 126b <_sk_scale_u8_hsw+0x48> DB 197,122,126,0 ; vmovq (%rax),%xmm8 DB 196,66,125,49,192 ; vpmovzxbd %xmm8,%ymm8 DB 196,65,124,91,192 ; vcvtdq2ps %ymm8,%ymm8 @@ -1059,9 +1228,9 @@ _sk_scale_u8_hsw LABEL PROC DB 77,9,217 ; or %r11,%r9 DB 72,131,193,8 ; add $0x8,%rcx DB 73,255,202 ; dec %r10 - DB 117,234 ; jne f42 <_sk_scale_u8_hsw+0x50> + DB 117,234 ; jne 1273 <_sk_scale_u8_hsw+0x50> DB 196,65,249,110,193 ; vmovq %r9,%xmm8 - DB 235,167 ; jmp f06 <_sk_scale_u8_hsw+0x14> + DB 235,167 ; jmp 1237 <_sk_scale_u8_hsw+0x14> PUBLIC _sk_lerp_1_float_hsw _sk_lerp_1_float_hsw LABEL PROC @@ -1085,7 +1254,7 @@ _sk_lerp_u8_hsw LABEL PROC DB 72,139,0 ; mov (%rax),%rax DB 72,1,248 ; add %rdi,%rax DB 77,133,192 ; test %r8,%r8 - DB 117,76 ; jne fea <_sk_lerp_u8_hsw+0x5c> + DB 117,76 ; jne 131b <_sk_lerp_u8_hsw+0x5c> DB 197,122,126,0 ; vmovq (%rax),%xmm8 DB 196,66,125,49,192 ; vpmovzxbd %xmm8,%ymm8 DB 196,65,124,91,192 ; vcvtdq2ps %ymm8,%ymm8 @@ -1113,16 +1282,16 @@ _sk_lerp_u8_hsw LABEL PROC DB 77,9,217 ; or %r11,%r9 DB 72,131,193,8 ; add $0x8,%rcx DB 73,255,202 ; dec %r10 - DB 117,234 ; jne ff2 <_sk_lerp_u8_hsw+0x64> + DB 117,234 ; jne 1323 <_sk_lerp_u8_hsw+0x64> DB 196,65,249,110,193 ; vmovq %r9,%xmm8 - DB 235,147 ; jmp fa2 <_sk_lerp_u8_hsw+0x14> + DB 235,147 ; jmp 12d3 <_sk_lerp_u8_hsw+0x14> PUBLIC _sk_lerp_565_hsw _sk_lerp_565_hsw LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 76,139,16 ; mov (%rax),%r10 DB 72,133,201 ; test %rcx,%rcx - DB 15,133,179,0,0,0 ; jne 10d0 <_sk_lerp_565_hsw+0xc1> + DB 15,133,179,0,0,0 ; jne 1401 <_sk_lerp_565_hsw+0xc1> DB 196,193,122,111,28,122 ; vmovdqu (%r10,%rdi,2),%xmm3 DB 196,98,125,51,195 ; vpmovzxwd %xmm3,%ymm8 DB 184,0,248,0,0 ; mov $0xf800,%eax @@ -1168,9 +1337,9 @@ _sk_lerp_565_hsw LABEL PROC DB 197,225,239,219 ; vpxor %xmm3,%xmm3,%xmm3 DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 15,135,59,255,255,255 ; ja 1023 <_sk_lerp_565_hsw+0x14> + DB 15,135,59,255,255,255 ; ja 1354 <_sk_lerp_565_hsw+0x14> DB 69,15,182,192 ; movzbl %r8b,%r8d - DB 76,141,13,73,0,0,0 ; lea 0x49(%rip),%r9 # 113c <_sk_lerp_565_hsw+0x12d> + DB 76,141,13,76,0,0,0 ; lea 0x4c(%rip),%r9 # 1470 <_sk_lerp_565_hsw+0x130> DB 75,99,4,129 ; movslq (%r9,%r8,4),%rax DB 76,1,200 ; add %r9,%rax DB 255,224 ; jmpq *%rax @@ -1182,27 +1351,26 @@ _sk_lerp_565_hsw LABEL PROC DB 196,193,97,196,92,122,4,2 ; vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm3,%xmm3 DB 196,193,97,196,92,122,2,1 ; vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm3,%xmm3 DB 196,193,97,196,28,122,0 ; vpinsrw $0x0,(%r10,%rdi,2),%xmm3,%xmm3 - DB 233,231,254,255,255 ; jmpq 1023 <_sk_lerp_565_hsw+0x14> - DB 244 ; hlt + DB 233,231,254,255,255 ; jmpq 1354 <_sk_lerp_565_hsw+0x14> + DB 15,31,0 ; nopl (%rax) + DB 241 ; icebp DB 255 ; (bad) DB 255 ; (bad) DB 255 ; (bad) - DB 236 ; in (%dx),%al + DB 233,255,255,255,225 ; jmpq ffffffffe2001478 <_sk_linear_gradient_2stops_hsw+0xffffffffe1ffe296> DB 255 ; (bad) DB 255 ; (bad) - DB 255,228 ; jmpq *%rsp - DB 255 ; (bad) DB 255 ; (bad) + DB 217,255 ; fcos DB 255 ; (bad) - DB 220,255 ; fdivr %st,%st(7) + DB 255,209 ; callq *%rcx DB 255 ; (bad) - DB 255,212 ; callq *%rsp DB 255 ; (bad) + DB 255,201 ; dec %ecx DB 255 ; (bad) - DB 255,204 ; dec %esp DB 255 ; (bad) DB 255 ; (bad) - DB 255,192 ; inc %eax + DB 189 ; .byte 0xbd DB 255 ; (bad) DB 255 ; (bad) DB 255 ; .byte 0xff @@ -1214,7 +1382,7 @@ _sk_load_tables_hsw LABEL PROC DB 76,141,12,189,0,0,0,0 ; lea 0x0(,%rdi,4),%r9 DB 76,3,8 ; add (%rax),%r9 DB 77,133,192 ; test %r8,%r8 - DB 117,121 ; jne 11e6 <_sk_load_tables_hsw+0x8e> + DB 117,121 ; jne 151a <_sk_load_tables_hsw+0x8e> DB 196,193,126,111,25 ; vmovdqu (%r9),%ymm3 DB 185,255,0,0,0 ; mov $0xff,%ecx DB 197,249,110,193 ; vmovd %ecx,%xmm0 @@ -1250,7 +1418,7 @@ _sk_load_tables_hsw LABEL PROC DB 196,193,249,110,194 ; vmovq %r10,%xmm0 DB 196,226,125,33,192 ; vpmovsxbd %xmm0,%ymm0 DB 196,194,125,140,25 ; vpmaskmovd (%r9),%ymm0,%ymm3 - DB 233,99,255,255,255 ; jmpq 1172 <_sk_load_tables_hsw+0x1a> + DB 233,99,255,255,255 ; jmpq 14a6 <_sk_load_tables_hsw+0x1a> PUBLIC _sk_byte_tables_hsw _sk_byte_tables_hsw LABEL PROC @@ -1546,7 +1714,7 @@ _sk_load_a8_hsw LABEL PROC DB 72,139,0 ; mov (%rax),%rax DB 72,1,248 ; add %rdi,%rax DB 77,133,192 ; test %r8,%r8 - DB 117,50 ; jne 173e <_sk_load_a8_hsw+0x42> + DB 117,50 ; jne 1a72 <_sk_load_a8_hsw+0x42> DB 197,250,126,0 ; vmovq (%rax),%xmm0 DB 196,226,125,49,192 ; vpmovzxbd %xmm0,%ymm0 DB 197,252,91,192 ; vcvtdq2ps %ymm0,%ymm0 @@ -1569,9 +1737,9 @@ _sk_load_a8_hsw LABEL PROC DB 77,9,217 ; or %r11,%r9 DB 72,131,193,8 ; add $0x8,%rcx DB 73,255,202 ; dec %r10 - DB 117,234 ; jne 1746 <_sk_load_a8_hsw+0x4a> + DB 117,234 ; jne 1a7a <_sk_load_a8_hsw+0x4a> DB 196,193,249,110,193 ; vmovq %r9,%xmm0 - DB 235,173 ; jmp 1710 <_sk_load_a8_hsw+0x14> + DB 235,173 ; jmp 1a44 <_sk_load_a8_hsw+0x14> PUBLIC _sk_gather_a8_hsw _sk_gather_a8_hsw LABEL PROC @@ -1642,7 +1810,7 @@ _sk_store_a8_hsw LABEL PROC DB 196,66,57,43,193 ; vpackusdw %xmm9,%xmm8,%xmm8 DB 196,65,57,103,192 ; vpackuswb %xmm8,%xmm8,%xmm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,10 ; jne 187b <_sk_store_a8_hsw+0x3b> + DB 117,10 ; jne 1baf <_sk_store_a8_hsw+0x3b> DB 196,65,123,17,4,57 ; vmovsd %xmm8,(%r9,%rdi,1) DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax @@ -1650,10 +1818,10 @@ _sk_store_a8_hsw LABEL PROC DB 65,128,224,7 ; and $0x7,%r8b DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 119,236 ; ja 1877 <_sk_store_a8_hsw+0x37> + DB 119,236 ; ja 1bab <_sk_store_a8_hsw+0x37> DB 196,66,121,48,192 ; vpmovzxbw %xmm8,%xmm8 DB 65,15,182,192 ; movzbl %r8b,%eax - DB 76,141,5,69,0,0,0 ; lea 0x45(%rip),%r8 # 18e0 <_sk_store_a8_hsw+0xa0> + DB 76,141,5,69,0,0,0 ; lea 0x45(%rip),%r8 # 1c14 <_sk_store_a8_hsw+0xa0> DB 73,99,4,128 ; movslq (%r8,%rax,4),%rax DB 76,1,192 ; add %r8,%rax DB 255,224 ; jmpq *%rax @@ -1664,7 +1832,7 @@ _sk_store_a8_hsw LABEL PROC DB 196,67,121,20,68,57,2,4 ; vpextrb $0x4,%xmm8,0x2(%r9,%rdi,1) DB 196,67,121,20,68,57,1,2 ; vpextrb $0x2,%xmm8,0x1(%r9,%rdi,1) DB 196,67,121,20,4,57,0 ; vpextrb $0x0,%xmm8,(%r9,%rdi,1) - DB 235,154 ; jmp 1877 <_sk_store_a8_hsw+0x37> + DB 235,154 ; jmp 1bab <_sk_store_a8_hsw+0x37> DB 15,31,0 ; nopl (%rax) DB 244 ; hlt DB 255 ; (bad) @@ -1697,7 +1865,7 @@ _sk_load_g8_hsw LABEL PROC DB 72,139,0 ; mov (%rax),%rax DB 72,1,248 ; add %rdi,%rax DB 77,133,192 ; test %r8,%r8 - DB 117,60 ; jne 1948 <_sk_load_g8_hsw+0x4c> + DB 117,60 ; jne 1c7c <_sk_load_g8_hsw+0x4c> DB 197,250,126,0 ; vmovq (%rax),%xmm0 DB 196,226,125,49,192 ; vpmovzxbd %xmm0,%ymm0 DB 197,252,91,192 ; vcvtdq2ps %ymm0,%ymm0 @@ -1722,9 +1890,9 @@ _sk_load_g8_hsw LABEL PROC DB 77,9,217 ; or %r11,%r9 DB 72,131,193,8 ; add $0x8,%rcx DB 73,255,202 ; dec %r10 - DB 117,234 ; jne 1950 <_sk_load_g8_hsw+0x54> + DB 117,234 ; jne 1c84 <_sk_load_g8_hsw+0x54> DB 196,193,249,110,193 ; vmovq %r9,%xmm0 - DB 235,163 ; jmp 1910 <_sk_load_g8_hsw+0x14> + DB 235,163 ; jmp 1c44 <_sk_load_g8_hsw+0x14> PUBLIC _sk_gather_g8_hsw _sk_gather_g8_hsw LABEL PROC @@ -1789,9 +1957,9 @@ _sk_gather_i8_hsw LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 73,137,192 ; mov %rax,%r8 DB 77,133,192 ; test %r8,%r8 - DB 116,5 ; je 1a63 <_sk_gather_i8_hsw+0xf> + DB 116,5 ; je 1d97 <_sk_gather_i8_hsw+0xf> DB 76,137,192 ; mov %r8,%rax - DB 235,2 ; jmp 1a65 <_sk_gather_i8_hsw+0x11> + DB 235,2 ; jmp 1d99 <_sk_gather_i8_hsw+0x11> DB 72,173 ; lods %ds:(%rsi),%rax DB 65,87 ; push %r15 DB 65,86 ; push %r14 @@ -1862,7 +2030,7 @@ _sk_load_565_hsw LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 76,139,16 ; mov (%rax),%r10 DB 72,133,201 ; test %rcx,%rcx - DB 15,133,149,0,0,0 ; jne 1c17 <_sk_load_565_hsw+0xa3> + DB 15,133,149,0,0,0 ; jne 1f4b <_sk_load_565_hsw+0xa3> DB 196,193,122,111,4,122 ; vmovdqu (%r10,%rdi,2),%xmm0 DB 196,226,125,51,208 ; vpmovzxwd %xmm0,%ymm2 DB 184,0,248,0,0 ; mov $0xf800,%eax @@ -1902,9 +2070,9 @@ _sk_load_565_hsw LABEL PROC DB 197,249,239,192 ; vpxor %xmm0,%xmm0,%xmm0 DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 15,135,89,255,255,255 ; ja 1b88 <_sk_load_565_hsw+0x14> + DB 15,135,89,255,255,255 ; ja 1ebc <_sk_load_565_hsw+0x14> DB 69,15,182,192 ; movzbl %r8b,%r8d - DB 76,141,13,74,0,0,0 ; lea 0x4a(%rip),%r9 # 1c84 <_sk_load_565_hsw+0x110> + DB 76,141,13,74,0,0,0 ; lea 0x4a(%rip),%r9 # 1fb8 <_sk_load_565_hsw+0x110> DB 75,99,4,129 ; movslq (%r9,%r8,4),%rax DB 76,1,200 ; add %r9,%rax DB 255,224 ; jmpq *%rax @@ -1916,12 +2084,12 @@ _sk_load_565_hsw LABEL PROC DB 196,193,121,196,68,122,4,2 ; vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0 DB 196,193,121,196,68,122,2,1 ; vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0 DB 196,193,121,196,4,122,0 ; vpinsrw $0x0,(%r10,%rdi,2),%xmm0,%xmm0 - DB 233,5,255,255,255 ; jmpq 1b88 <_sk_load_565_hsw+0x14> + DB 233,5,255,255,255 ; jmpq 1ebc <_sk_load_565_hsw+0x14> DB 144 ; nop DB 243,255 ; repz (bad) DB 255 ; (bad) DB 255 ; (bad) - DB 235,255 ; jmp 1c89 <_sk_load_565_hsw+0x115> + DB 235,255 ; jmp 1fbd <_sk_load_565_hsw+0x115> DB 255 ; (bad) DB 255,227 ; jmpq *%rbx DB 255 ; (bad) @@ -2044,7 +2212,7 @@ _sk_store_565_hsw LABEL PROC DB 196,67,125,57,193,1 ; vextracti128 $0x1,%ymm8,%xmm9 DB 196,66,57,43,193 ; vpackusdw %xmm9,%xmm8,%xmm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,10 ; jne 1e4f <_sk_store_565_hsw+0x6c> + DB 117,10 ; jne 2183 <_sk_store_565_hsw+0x6c> DB 196,65,122,127,4,121 ; vmovdqu %xmm8,(%r9,%rdi,2) DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax @@ -2052,9 +2220,9 @@ _sk_store_565_hsw LABEL PROC DB 65,128,224,7 ; and $0x7,%r8b DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 119,236 ; ja 1e4b <_sk_store_565_hsw+0x68> + DB 119,236 ; ja 217f <_sk_store_565_hsw+0x68> DB 65,15,182,192 ; movzbl %r8b,%eax - DB 76,141,5,66,0,0,0 ; lea 0x42(%rip),%r8 # 1eac <_sk_store_565_hsw+0xc9> + DB 76,141,5,66,0,0,0 ; lea 0x42(%rip),%r8 # 21e0 <_sk_store_565_hsw+0xc9> DB 73,99,4,128 ; movslq (%r8,%rax,4),%rax DB 76,1,192 ; add %r8,%rax DB 255,224 ; jmpq *%rax @@ -2065,7 +2233,7 @@ _sk_store_565_hsw LABEL PROC DB 196,67,121,21,68,121,4,2 ; vpextrw $0x2,%xmm8,0x4(%r9,%rdi,2) DB 196,67,121,21,68,121,2,1 ; vpextrw $0x1,%xmm8,0x2(%r9,%rdi,2) DB 196,67,121,21,4,121,0 ; vpextrw $0x0,%xmm8,(%r9,%rdi,2) - DB 235,159 ; jmp 1e4b <_sk_store_565_hsw+0x68> + DB 235,159 ; jmp 217f <_sk_store_565_hsw+0x68> DB 247,255 ; idiv %edi DB 255 ; (bad) DB 255 ; (bad) @@ -2094,7 +2262,7 @@ _sk_load_4444_hsw LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 76,139,16 ; mov (%rax),%r10 DB 72,133,201 ; test %rcx,%rcx - DB 15,133,179,0,0,0 ; jne 1f89 <_sk_load_4444_hsw+0xc1> + DB 15,133,179,0,0,0 ; jne 22bd <_sk_load_4444_hsw+0xc1> DB 196,193,122,111,4,122 ; vmovdqu (%r10,%rdi,2),%xmm0 DB 196,98,125,51,200 ; vpmovzxwd %xmm0,%ymm9 DB 184,0,240,0,0 ; mov $0xf000,%eax @@ -2140,9 +2308,9 @@ _sk_load_4444_hsw LABEL PROC DB 197,249,239,192 ; vpxor %xmm0,%xmm0,%xmm0 DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 15,135,59,255,255,255 ; ja 1edc <_sk_load_4444_hsw+0x14> + DB 15,135,59,255,255,255 ; ja 2210 <_sk_load_4444_hsw+0x14> DB 69,15,182,192 ; movzbl %r8b,%r8d - DB 76,141,13,76,0,0,0 ; lea 0x4c(%rip),%r9 # 1ff8 <_sk_load_4444_hsw+0x130> + DB 76,141,13,76,0,0,0 ; lea 0x4c(%rip),%r9 # 232c <_sk_load_4444_hsw+0x130> DB 75,99,4,129 ; movslq (%r9,%r8,4),%rax DB 76,1,200 ; add %r9,%rax DB 255,224 ; jmpq *%rax @@ -2154,13 +2322,13 @@ _sk_load_4444_hsw LABEL PROC DB 196,193,121,196,68,122,4,2 ; vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0 DB 196,193,121,196,68,122,2,1 ; vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0 DB 196,193,121,196,4,122,0 ; vpinsrw $0x0,(%r10,%rdi,2),%xmm0,%xmm0 - DB 233,231,254,255,255 ; jmpq 1edc <_sk_load_4444_hsw+0x14> + DB 233,231,254,255,255 ; jmpq 2210 <_sk_load_4444_hsw+0x14> DB 15,31,0 ; nopl (%rax) DB 241 ; icebp DB 255 ; (bad) DB 255 ; (bad) DB 255 ; (bad) - DB 233,255,255,255,225 ; jmpq ffffffffe2002000 <_sk_linear_gradient_2stops_hsw+0xffffffffe1fff152> + DB 233,255,255,255,225 ; jmpq ffffffffe2002334 <_sk_linear_gradient_2stops_hsw+0xffffffffe1fff152> DB 255 ; (bad) DB 255 ; (bad) DB 255 ; (bad) @@ -2288,7 +2456,7 @@ _sk_store_4444_hsw LABEL PROC DB 196,67,125,57,193,1 ; vextracti128 $0x1,%ymm8,%xmm9 DB 196,66,57,43,193 ; vpackusdw %xmm9,%xmm8,%xmm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,10 ; jne 21e7 <_sk_store_4444_hsw+0x72> + DB 117,10 ; jne 251b <_sk_store_4444_hsw+0x72> DB 196,65,122,127,4,121 ; vmovdqu %xmm8,(%r9,%rdi,2) DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax @@ -2296,9 +2464,9 @@ _sk_store_4444_hsw LABEL PROC DB 65,128,224,7 ; and $0x7,%r8b DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 119,236 ; ja 21e3 <_sk_store_4444_hsw+0x6e> + DB 119,236 ; ja 2517 <_sk_store_4444_hsw+0x6e> DB 65,15,182,192 ; movzbl %r8b,%eax - DB 76,141,5,66,0,0,0 ; lea 0x42(%rip),%r8 # 2244 <_sk_store_4444_hsw+0xcf> + DB 76,141,5,66,0,0,0 ; lea 0x42(%rip),%r8 # 2578 <_sk_store_4444_hsw+0xcf> DB 73,99,4,128 ; movslq (%r8,%rax,4),%rax DB 76,1,192 ; add %r8,%rax DB 255,224 ; jmpq *%rax @@ -2309,7 +2477,7 @@ _sk_store_4444_hsw LABEL PROC DB 196,67,121,21,68,121,4,2 ; vpextrw $0x2,%xmm8,0x4(%r9,%rdi,2) DB 196,67,121,21,68,121,2,1 ; vpextrw $0x1,%xmm8,0x2(%r9,%rdi,2) DB 196,67,121,21,4,121,0 ; vpextrw $0x0,%xmm8,(%r9,%rdi,2) - DB 235,159 ; jmp 21e3 <_sk_store_4444_hsw+0x6e> + DB 235,159 ; jmp 2517 <_sk_store_4444_hsw+0x6e> DB 247,255 ; idiv %edi DB 255 ; (bad) DB 255 ; (bad) @@ -2340,7 +2508,7 @@ _sk_load_8888_hsw LABEL PROC DB 76,141,12,189,0,0,0,0 ; lea 0x0(,%rdi,4),%r9 DB 76,3,8 ; add (%rax),%r9 DB 77,133,192 ; test %r8,%r8 - DB 117,104 ; jne 22dd <_sk_load_8888_hsw+0x7d> + DB 117,104 ; jne 2611 <_sk_load_8888_hsw+0x7d> DB 196,193,126,111,25 ; vmovdqu (%r9),%ymm3 DB 184,255,0,0,0 ; mov $0xff,%eax DB 197,249,110,192 ; vmovd %eax,%xmm0 @@ -2373,7 +2541,7 @@ _sk_load_8888_hsw LABEL PROC DB 196,225,249,110,192 ; vmovq %rax,%xmm0 DB 196,226,125,33,192 ; vpmovsxbd %xmm0,%ymm0 DB 196,194,125,140,25 ; vpmaskmovd (%r9),%ymm0,%ymm3 - DB 233,116,255,255,255 ; jmpq 227a <_sk_load_8888_hsw+0x1a> + DB 233,116,255,255,255 ; jmpq 25ae <_sk_load_8888_hsw+0x1a> PUBLIC _sk_gather_8888_hsw _sk_gather_8888_hsw LABEL PROC @@ -2433,7 +2601,7 @@ _sk_store_8888_hsw LABEL PROC DB 196,65,45,235,192 ; vpor %ymm8,%ymm10,%ymm8 DB 196,65,53,235,192 ; vpor %ymm8,%ymm9,%ymm8 DB 77,133,192 ; test %r8,%r8 - DB 117,12 ; jne 2400 <_sk_store_8888_hsw+0x74> + DB 117,12 ; jne 2734 <_sk_store_8888_hsw+0x74> DB 196,65,126,127,1 ; vmovdqu %ymm8,(%r9) DB 72,173 ; lods %ds:(%rsi),%rax DB 76,137,193 ; mov %r8,%rcx @@ -2446,14 +2614,14 @@ _sk_store_8888_hsw LABEL PROC DB 196,97,249,110,200 ; vmovq %rax,%xmm9 DB 196,66,125,33,201 ; vpmovsxbd %xmm9,%ymm9 DB 196,66,53,142,1 ; vpmaskmovd %ymm8,%ymm9,(%r9) - DB 235,211 ; jmp 23f9 <_sk_store_8888_hsw+0x6d> + DB 235,211 ; jmp 272d <_sk_store_8888_hsw+0x6d> PUBLIC _sk_load_f16_hsw _sk_load_f16_hsw LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 72,139,0 ; mov (%rax),%rax DB 72,133,201 ; test %rcx,%rcx - DB 117,97 ; jne 2491 <_sk_load_f16_hsw+0x6b> + DB 117,97 ; jne 27c5 <_sk_load_f16_hsw+0x6b> DB 197,121,16,4,248 ; vmovupd (%rax,%rdi,8),%xmm8 DB 197,249,16,84,248,16 ; vmovupd 0x10(%rax,%rdi,8),%xmm2 DB 197,249,16,92,248,32 ; vmovupd 0x20(%rax,%rdi,8),%xmm3 @@ -2479,29 +2647,29 @@ _sk_load_f16_hsw LABEL PROC DB 197,123,16,4,248 ; vmovsd (%rax,%rdi,8),%xmm8 DB 196,65,49,239,201 ; vpxor %xmm9,%xmm9,%xmm9 DB 72,131,249,1 ; cmp $0x1,%rcx - DB 116,79 ; je 24f0 <_sk_load_f16_hsw+0xca> + DB 116,79 ; je 2824 <_sk_load_f16_hsw+0xca> DB 197,57,22,68,248,8 ; vmovhpd 0x8(%rax,%rdi,8),%xmm8,%xmm8 DB 72,131,249,3 ; cmp $0x3,%rcx - DB 114,67 ; jb 24f0 <_sk_load_f16_hsw+0xca> + DB 114,67 ; jb 2824 <_sk_load_f16_hsw+0xca> DB 197,251,16,84,248,16 ; vmovsd 0x10(%rax,%rdi,8),%xmm2 DB 72,131,249,3 ; cmp $0x3,%rcx - DB 116,68 ; je 24fd <_sk_load_f16_hsw+0xd7> + DB 116,68 ; je 2831 <_sk_load_f16_hsw+0xd7> DB 197,233,22,84,248,24 ; vmovhpd 0x18(%rax,%rdi,8),%xmm2,%xmm2 DB 72,131,249,5 ; cmp $0x5,%rcx - DB 114,56 ; jb 24fd <_sk_load_f16_hsw+0xd7> + DB 114,56 ; jb 2831 <_sk_load_f16_hsw+0xd7> DB 197,251,16,92,248,32 ; vmovsd 0x20(%rax,%rdi,8),%xmm3 DB 72,131,249,5 ; cmp $0x5,%rcx - DB 15,132,114,255,255,255 ; je 2447 <_sk_load_f16_hsw+0x21> + DB 15,132,114,255,255,255 ; je 277b <_sk_load_f16_hsw+0x21> DB 197,225,22,92,248,40 ; vmovhpd 0x28(%rax,%rdi,8),%xmm3,%xmm3 DB 72,131,249,7 ; cmp $0x7,%rcx - DB 15,130,98,255,255,255 ; jb 2447 <_sk_load_f16_hsw+0x21> + DB 15,130,98,255,255,255 ; jb 277b <_sk_load_f16_hsw+0x21> DB 197,122,126,76,248,48 ; vmovq 0x30(%rax,%rdi,8),%xmm9 - DB 233,87,255,255,255 ; jmpq 2447 <_sk_load_f16_hsw+0x21> + DB 233,87,255,255,255 ; jmpq 277b <_sk_load_f16_hsw+0x21> DB 197,225,87,219 ; vxorpd %xmm3,%xmm3,%xmm3 DB 197,233,87,210 ; vxorpd %xmm2,%xmm2,%xmm2 - DB 233,74,255,255,255 ; jmpq 2447 <_sk_load_f16_hsw+0x21> + DB 233,74,255,255,255 ; jmpq 277b <_sk_load_f16_hsw+0x21> DB 197,225,87,219 ; vxorpd %xmm3,%xmm3,%xmm3 - DB 233,65,255,255,255 ; jmpq 2447 <_sk_load_f16_hsw+0x21> + DB 233,65,255,255,255 ; jmpq 277b <_sk_load_f16_hsw+0x21> PUBLIC _sk_gather_f16_hsw _sk_gather_f16_hsw LABEL PROC @@ -2555,7 +2723,7 @@ _sk_store_f16_hsw LABEL PROC DB 196,65,57,98,205 ; vpunpckldq %xmm13,%xmm8,%xmm9 DB 196,65,57,106,197 ; vpunpckhdq %xmm13,%xmm8,%xmm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,27 ; jne 25f5 <_sk_store_f16_hsw+0x65> + DB 117,27 ; jne 2929 <_sk_store_f16_hsw+0x65> DB 197,120,17,28,248 ; vmovups %xmm11,(%rax,%rdi,8) DB 197,120,17,84,248,16 ; vmovups %xmm10,0x10(%rax,%rdi,8) DB 197,120,17,76,248,32 ; vmovups %xmm9,0x20(%rax,%rdi,8) @@ -2564,29 +2732,29 @@ _sk_store_f16_hsw LABEL PROC DB 255,224 ; jmpq *%rax DB 197,121,214,28,248 ; vmovq %xmm11,(%rax,%rdi,8) DB 72,131,249,1 ; cmp $0x1,%rcx - DB 116,241 ; je 25f1 <_sk_store_f16_hsw+0x61> + DB 116,241 ; je 2925 <_sk_store_f16_hsw+0x61> DB 197,121,23,92,248,8 ; vmovhpd %xmm11,0x8(%rax,%rdi,8) DB 72,131,249,3 ; cmp $0x3,%rcx - DB 114,229 ; jb 25f1 <_sk_store_f16_hsw+0x61> + DB 114,229 ; jb 2925 <_sk_store_f16_hsw+0x61> DB 197,121,214,84,248,16 ; vmovq %xmm10,0x10(%rax,%rdi,8) - DB 116,221 ; je 25f1 <_sk_store_f16_hsw+0x61> + DB 116,221 ; je 2925 <_sk_store_f16_hsw+0x61> DB 197,121,23,84,248,24 ; vmovhpd %xmm10,0x18(%rax,%rdi,8) DB 72,131,249,5 ; cmp $0x5,%rcx - DB 114,209 ; jb 25f1 <_sk_store_f16_hsw+0x61> + DB 114,209 ; jb 2925 <_sk_store_f16_hsw+0x61> DB 197,121,214,76,248,32 ; vmovq %xmm9,0x20(%rax,%rdi,8) - DB 116,201 ; je 25f1 <_sk_store_f16_hsw+0x61> + DB 116,201 ; je 2925 <_sk_store_f16_hsw+0x61> DB 197,121,23,76,248,40 ; vmovhpd %xmm9,0x28(%rax,%rdi,8) DB 72,131,249,7 ; cmp $0x7,%rcx - DB 114,189 ; jb 25f1 <_sk_store_f16_hsw+0x61> + DB 114,189 ; jb 2925 <_sk_store_f16_hsw+0x61> DB 197,121,214,68,248,48 ; vmovq %xmm8,0x30(%rax,%rdi,8) - DB 235,181 ; jmp 25f1 <_sk_store_f16_hsw+0x61> + DB 235,181 ; jmp 2925 <_sk_store_f16_hsw+0x61> PUBLIC _sk_load_u16_be_hsw _sk_load_u16_be_hsw LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 72,139,0 ; mov (%rax),%rax DB 72,133,201 ; test %rcx,%rcx - DB 15,133,201,0,0,0 ; jne 2713 <_sk_load_u16_be_hsw+0xd7> + DB 15,133,201,0,0,0 ; jne 2a47 <_sk_load_u16_be_hsw+0xd7> DB 197,121,16,4,248 ; vmovupd (%rax,%rdi,8),%xmm8 DB 197,249,16,84,248,16 ; vmovupd 0x10(%rax,%rdi,8),%xmm2 DB 197,249,16,92,248,32 ; vmovupd 0x20(%rax,%rdi,8),%xmm3 @@ -2635,29 +2803,29 @@ _sk_load_u16_be_hsw LABEL PROC DB 197,123,16,4,248 ; vmovsd (%rax,%rdi,8),%xmm8 DB 196,65,49,239,201 ; vpxor %xmm9,%xmm9,%xmm9 DB 72,131,249,1 ; cmp $0x1,%rcx - DB 116,79 ; je 2772 <_sk_load_u16_be_hsw+0x136> + DB 116,79 ; je 2aa6 <_sk_load_u16_be_hsw+0x136> DB 197,57,22,68,248,8 ; vmovhpd 0x8(%rax,%rdi,8),%xmm8,%xmm8 DB 72,131,249,3 ; cmp $0x3,%rcx - DB 114,67 ; jb 2772 <_sk_load_u16_be_hsw+0x136> + DB 114,67 ; jb 2aa6 <_sk_load_u16_be_hsw+0x136> DB 197,251,16,84,248,16 ; vmovsd 0x10(%rax,%rdi,8),%xmm2 DB 72,131,249,3 ; cmp $0x3,%rcx - DB 116,68 ; je 277f <_sk_load_u16_be_hsw+0x143> + DB 116,68 ; je 2ab3 <_sk_load_u16_be_hsw+0x143> DB 197,233,22,84,248,24 ; vmovhpd 0x18(%rax,%rdi,8),%xmm2,%xmm2 DB 72,131,249,5 ; cmp $0x5,%rcx - DB 114,56 ; jb 277f <_sk_load_u16_be_hsw+0x143> + DB 114,56 ; jb 2ab3 <_sk_load_u16_be_hsw+0x143> DB 197,251,16,92,248,32 ; vmovsd 0x20(%rax,%rdi,8),%xmm3 DB 72,131,249,5 ; cmp $0x5,%rcx - DB 15,132,10,255,255,255 ; je 2661 <_sk_load_u16_be_hsw+0x25> + DB 15,132,10,255,255,255 ; je 2995 <_sk_load_u16_be_hsw+0x25> DB 197,225,22,92,248,40 ; vmovhpd 0x28(%rax,%rdi,8),%xmm3,%xmm3 DB 72,131,249,7 ; cmp $0x7,%rcx - DB 15,130,250,254,255,255 ; jb 2661 <_sk_load_u16_be_hsw+0x25> + DB 15,130,250,254,255,255 ; jb 2995 <_sk_load_u16_be_hsw+0x25> DB 197,122,126,76,248,48 ; vmovq 0x30(%rax,%rdi,8),%xmm9 - DB 233,239,254,255,255 ; jmpq 2661 <_sk_load_u16_be_hsw+0x25> + DB 233,239,254,255,255 ; jmpq 2995 <_sk_load_u16_be_hsw+0x25> DB 197,225,87,219 ; vxorpd %xmm3,%xmm3,%xmm3 DB 197,233,87,210 ; vxorpd %xmm2,%xmm2,%xmm2 - DB 233,226,254,255,255 ; jmpq 2661 <_sk_load_u16_be_hsw+0x25> + DB 233,226,254,255,255 ; jmpq 2995 <_sk_load_u16_be_hsw+0x25> DB 197,225,87,219 ; vxorpd %xmm3,%xmm3,%xmm3 - DB 233,217,254,255,255 ; jmpq 2661 <_sk_load_u16_be_hsw+0x25> + DB 233,217,254,255,255 ; jmpq 2995 <_sk_load_u16_be_hsw+0x25> PUBLIC _sk_store_u16_be_hsw _sk_store_u16_be_hsw LABEL PROC @@ -2703,7 +2871,7 @@ _sk_store_u16_be_hsw LABEL PROC DB 196,65,17,98,200 ; vpunpckldq %xmm8,%xmm13,%xmm9 DB 196,65,17,106,192 ; vpunpckhdq %xmm8,%xmm13,%xmm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,31 ; jne 287b <_sk_store_u16_be_hsw+0xf3> + DB 117,31 ; jne 2baf <_sk_store_u16_be_hsw+0xf3> DB 196,65,120,17,28,248 ; vmovups %xmm11,(%r8,%rdi,8) DB 196,65,120,17,84,248,16 ; vmovups %xmm10,0x10(%r8,%rdi,8) DB 196,65,120,17,76,248,32 ; vmovups %xmm9,0x20(%r8,%rdi,8) @@ -2712,31 +2880,31 @@ _sk_store_u16_be_hsw LABEL PROC DB 255,224 ; jmpq *%rax DB 196,65,121,214,28,248 ; vmovq %xmm11,(%r8,%rdi,8) DB 72,131,249,1 ; cmp $0x1,%rcx - DB 116,240 ; je 2877 <_sk_store_u16_be_hsw+0xef> + DB 116,240 ; je 2bab <_sk_store_u16_be_hsw+0xef> DB 196,65,121,23,92,248,8 ; vmovhpd %xmm11,0x8(%r8,%rdi,8) DB 72,131,249,3 ; cmp $0x3,%rcx - DB 114,227 ; jb 2877 <_sk_store_u16_be_hsw+0xef> + DB 114,227 ; jb 2bab <_sk_store_u16_be_hsw+0xef> DB 196,65,121,214,84,248,16 ; vmovq %xmm10,0x10(%r8,%rdi,8) - DB 116,218 ; je 2877 <_sk_store_u16_be_hsw+0xef> + DB 116,218 ; je 2bab <_sk_store_u16_be_hsw+0xef> DB 196,65,121,23,84,248,24 ; vmovhpd %xmm10,0x18(%r8,%rdi,8) DB 72,131,249,5 ; cmp $0x5,%rcx - DB 114,205 ; jb 2877 <_sk_store_u16_be_hsw+0xef> + DB 114,205 ; jb 2bab <_sk_store_u16_be_hsw+0xef> DB 196,65,121,214,76,248,32 ; vmovq %xmm9,0x20(%r8,%rdi,8) - DB 116,196 ; je 2877 <_sk_store_u16_be_hsw+0xef> + DB 116,196 ; je 2bab <_sk_store_u16_be_hsw+0xef> DB 196,65,121,23,76,248,40 ; vmovhpd %xmm9,0x28(%r8,%rdi,8) DB 72,131,249,7 ; cmp $0x7,%rcx - DB 114,183 ; jb 2877 <_sk_store_u16_be_hsw+0xef> + DB 114,183 ; jb 2bab <_sk_store_u16_be_hsw+0xef> DB 196,65,121,214,68,248,48 ; vmovq %xmm8,0x30(%r8,%rdi,8) - DB 235,174 ; jmp 2877 <_sk_store_u16_be_hsw+0xef> + DB 235,174 ; jmp 2bab <_sk_store_u16_be_hsw+0xef> PUBLIC _sk_load_f32_hsw _sk_load_f32_hsw LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 72,131,249,7 ; cmp $0x7,%rcx - DB 119,110 ; ja 293f <_sk_load_f32_hsw+0x76> + DB 119,110 ; ja 2c73 <_sk_load_f32_hsw+0x76> DB 76,139,0 ; mov (%rax),%r8 DB 76,141,12,189,0,0,0,0 ; lea 0x0(,%rdi,4),%r9 - DB 76,141,21,133,0,0,0 ; lea 0x85(%rip),%r10 # 2968 <_sk_load_f32_hsw+0x9f> + DB 76,141,21,133,0,0,0 ; lea 0x85(%rip),%r10 # 2c9c <_sk_load_f32_hsw+0x9f> DB 73,99,4,138 ; movslq (%r10,%rcx,4),%rax DB 76,1,208 ; add %r10,%rax DB 255,224 ; jmpq *%rax @@ -2792,7 +2960,7 @@ _sk_store_f32_hsw LABEL PROC DB 196,65,37,20,196 ; vunpcklpd %ymm12,%ymm11,%ymm8 DB 196,65,37,21,220 ; vunpckhpd %ymm12,%ymm11,%ymm11 DB 72,133,201 ; test %rcx,%rcx - DB 117,55 ; jne 29f5 <_sk_store_f32_hsw+0x6d> + DB 117,55 ; jne 2d29 <_sk_store_f32_hsw+0x6d> DB 196,67,45,24,225,1 ; vinsertf128 $0x1,%xmm9,%ymm10,%ymm12 DB 196,67,61,24,235,1 ; vinsertf128 $0x1,%xmm11,%ymm8,%ymm13 DB 196,67,45,6,201,49 ; vperm2f128 $0x31,%ymm9,%ymm10,%ymm9 @@ -2805,22 +2973,22 @@ _sk_store_f32_hsw LABEL PROC DB 255,224 ; jmpq *%rax DB 196,65,121,17,20,128 ; vmovupd %xmm10,(%r8,%rax,4) DB 72,131,249,1 ; cmp $0x1,%rcx - DB 116,240 ; je 29f1 <_sk_store_f32_hsw+0x69> + DB 116,240 ; je 2d25 <_sk_store_f32_hsw+0x69> DB 196,65,121,17,76,128,16 ; vmovupd %xmm9,0x10(%r8,%rax,4) DB 72,131,249,3 ; cmp $0x3,%rcx - DB 114,227 ; jb 29f1 <_sk_store_f32_hsw+0x69> + DB 114,227 ; jb 2d25 <_sk_store_f32_hsw+0x69> DB 196,65,121,17,68,128,32 ; vmovupd %xmm8,0x20(%r8,%rax,4) - DB 116,218 ; je 29f1 <_sk_store_f32_hsw+0x69> + DB 116,218 ; je 2d25 <_sk_store_f32_hsw+0x69> DB 196,65,121,17,92,128,48 ; vmovupd %xmm11,0x30(%r8,%rax,4) DB 72,131,249,5 ; cmp $0x5,%rcx - DB 114,205 ; jb 29f1 <_sk_store_f32_hsw+0x69> + DB 114,205 ; jb 2d25 <_sk_store_f32_hsw+0x69> DB 196,67,125,25,84,128,64,1 ; vextractf128 $0x1,%ymm10,0x40(%r8,%rax,4) - DB 116,195 ; je 29f1 <_sk_store_f32_hsw+0x69> + DB 116,195 ; je 2d25 <_sk_store_f32_hsw+0x69> DB 196,67,125,25,76,128,80,1 ; vextractf128 $0x1,%ymm9,0x50(%r8,%rax,4) DB 72,131,249,7 ; cmp $0x7,%rcx - DB 114,181 ; jb 29f1 <_sk_store_f32_hsw+0x69> + DB 114,181 ; jb 2d25 <_sk_store_f32_hsw+0x69> DB 196,67,125,25,68,128,96,1 ; vextractf128 $0x1,%ymm8,0x60(%r8,%rax,4) - DB 235,171 ; jmp 29f1 <_sk_store_f32_hsw+0x69> + DB 235,171 ; jmp 2d25 <_sk_store_f32_hsw+0x69> PUBLIC _sk_clamp_x_hsw _sk_clamp_x_hsw LABEL PROC @@ -3061,7 +3229,7 @@ _sk_linear_gradient_hsw LABEL PROC DB 196,98,125,24,72,28 ; vbroadcastss 0x1c(%rax),%ymm9 DB 76,139,0 ; mov (%rax),%r8 DB 77,133,192 ; test %r8,%r8 - DB 15,132,143,0,0,0 ; je 2e81 <_sk_linear_gradient_hsw+0xb5> + DB 15,132,143,0,0,0 ; je 31b5 <_sk_linear_gradient_hsw+0xb5> DB 72,139,64,8 ; mov 0x8(%rax),%rax DB 72,131,192,32 ; add $0x20,%rax DB 196,65,28,87,228 ; vxorps %ymm12,%ymm12,%ymm12 @@ -3088,8 +3256,8 @@ _sk_linear_gradient_hsw LABEL PROC DB 196,67,13,74,201,208 ; vblendvps %ymm13,%ymm9,%ymm14,%ymm9 DB 72,131,192,36 ; add $0x24,%rax DB 73,255,200 ; dec %r8 - DB 117,140 ; jne 2e0b <_sk_linear_gradient_hsw+0x3f> - DB 235,17 ; jmp 2e92 <_sk_linear_gradient_hsw+0xc6> + DB 117,140 ; jne 313f <_sk_linear_gradient_hsw+0x3f> + DB 235,17 ; jmp 31c6 <_sk_linear_gradient_hsw+0xc6> DB 197,244,87,201 ; vxorps %ymm1,%ymm1,%ymm1 DB 197,236,87,210 ; vxorps %ymm2,%ymm2,%ymm2 DB 197,228,87,219 ; vxorps %ymm3,%ymm3,%ymm3 @@ -4242,6 +4410,189 @@ _sk_to_2dot2_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax +PUBLIC _sk_rgb_to_hsl_avx +_sk_rgb_to_hsl_avx LABEL PROC + DB 197,124,95,193 ; vmaxps %ymm1,%ymm0,%ymm8 + DB 197,60,95,194 ; vmaxps %ymm2,%ymm8,%ymm8 + DB 197,124,93,201 ; vminps %ymm1,%ymm0,%ymm9 + DB 197,52,93,202 ; vminps %ymm2,%ymm9,%ymm9 + DB 196,65,60,92,209 ; vsubps %ymm9,%ymm8,%ymm10 + DB 184,0,0,128,63 ; mov $0x3f800000,%eax + DB 197,121,110,216 ; vmovd %eax,%xmm11 + DB 196,67,121,4,219,0 ; vpermilps $0x0,%xmm11,%xmm11 + DB 196,67,37,24,219,1 ; vinsertf128 $0x1,%xmm11,%ymm11,%ymm11 + DB 196,65,36,94,218 ; vdivps %ymm10,%ymm11,%ymm11 + DB 65,184,171,170,42,62 ; mov $0x3e2aaaab,%r8d + DB 197,116,92,226 ; vsubps %ymm2,%ymm1,%ymm12 + DB 196,65,28,89,227 ; vmulps %ymm11,%ymm12,%ymm12 + DB 65,185,0,0,192,64 ; mov $0x40c00000,%r9d + DB 197,108,92,232 ; vsubps %ymm0,%ymm2,%ymm13 + DB 196,65,20,89,235 ; vmulps %ymm11,%ymm13,%ymm13 + DB 65,186,0,0,0,64 ; mov $0x40000000,%r10d + DB 197,124,92,241 ; vsubps %ymm1,%ymm0,%ymm14 + DB 196,65,12,89,219 ; vmulps %ymm11,%ymm14,%ymm11 + DB 184,0,0,128,64 ; mov $0x40800000,%eax + DB 197,121,110,240 ; vmovd %eax,%xmm14 + DB 196,67,121,4,246,0 ; vpermilps $0x0,%xmm14,%xmm14 + DB 196,67,13,24,246,1 ; vinsertf128 $0x1,%xmm14,%ymm14,%ymm14 + DB 196,65,36,88,222 ; vaddps %ymm14,%ymm11,%ymm11 + DB 196,65,121,110,242 ; vmovd %r10d,%xmm14 + DB 197,244,194,210,1 ; vcmpltps %ymm2,%ymm1,%ymm2 + DB 197,188,194,201,0 ; vcmpeqps %ymm1,%ymm8,%ymm1 + DB 196,67,121,4,246,0 ; vpermilps $0x0,%xmm14,%xmm14 + DB 196,67,13,24,246,1 ; vinsertf128 $0x1,%xmm14,%ymm14,%ymm14 + DB 196,65,20,88,238 ; vaddps %ymm14,%ymm13,%ymm13 + DB 196,67,37,74,221,16 ; vblendvps %ymm1,%ymm13,%ymm11,%ymm11 + DB 196,193,121,110,201 ; vmovd %r9d,%xmm1 + DB 196,227,121,4,201,0 ; vpermilps $0x0,%xmm1,%xmm1 + DB 196,227,117,24,201,1 ; vinsertf128 $0x1,%xmm1,%ymm1,%ymm1 + DB 196,65,20,87,237 ; vxorps %ymm13,%ymm13,%ymm13 + DB 196,227,21,74,201,32 ; vblendvps %ymm2,%ymm1,%ymm13,%ymm1 + DB 196,193,116,88,204 ; vaddps %ymm12,%ymm1,%ymm1 + DB 184,0,0,0,63 ; mov $0x3f000000,%eax + DB 197,249,110,208 ; vmovd %eax,%xmm2 + DB 197,188,194,192,0 ; vcmpeqps %ymm0,%ymm8,%ymm0 + DB 196,227,37,74,193,0 ; vblendvps %ymm0,%ymm1,%ymm11,%ymm0 + DB 196,193,60,88,201 ; vaddps %ymm9,%ymm8,%ymm1 + DB 196,227,121,4,210,0 ; vpermilps $0x0,%xmm2,%xmm2 + DB 196,99,109,24,218,1 ; vinsertf128 $0x1,%xmm2,%ymm2,%ymm11 + DB 196,193,116,89,211 ; vmulps %ymm11,%ymm1,%ymm2 + DB 197,36,194,218,1 ; vcmpltps %ymm2,%ymm11,%ymm11 + DB 196,65,12,92,224 ; vsubps %ymm8,%ymm14,%ymm12 + DB 196,65,28,92,225 ; vsubps %ymm9,%ymm12,%ymm12 + DB 196,195,117,74,204,176 ; vblendvps %ymm11,%ymm12,%ymm1,%ymm1 + DB 196,65,60,194,193,0 ; vcmpeqps %ymm9,%ymm8,%ymm8 + DB 197,172,94,201 ; vdivps %ymm1,%ymm10,%ymm1 + DB 196,67,125,74,205,128 ; vblendvps %ymm8,%ymm13,%ymm0,%ymm9 + DB 196,195,117,74,205,128 ; vblendvps %ymm8,%ymm13,%ymm1,%ymm1 + DB 196,193,121,110,192 ; vmovd %r8d,%xmm0 + DB 196,227,121,4,192,0 ; vpermilps $0x0,%xmm0,%xmm0 + DB 196,227,125,24,192,1 ; vinsertf128 $0x1,%xmm0,%ymm0,%ymm0 + DB 196,193,124,89,193 ; vmulps %ymm9,%ymm0,%ymm0 + DB 72,173 ; lods %ds:(%rsi),%rax + DB 255,224 ; jmpq *%rax + +PUBLIC _sk_hsl_to_rgb_avx +_sk_hsl_to_rgb_avx LABEL PROC + DB 72,129,236,184,0,0,0 ; sub $0xb8,%rsp + DB 197,252,17,188,36,128,0,0,0 ; vmovups %ymm7,0x80(%rsp) + DB 197,252,17,116,36,96 ; vmovups %ymm6,0x60(%rsp) + DB 197,252,17,108,36,64 ; vmovups %ymm5,0x40(%rsp) + DB 197,252,17,100,36,32 ; vmovups %ymm4,0x20(%rsp) + DB 197,252,17,28,36 ; vmovups %ymm3,(%rsp) + DB 197,252,40,226 ; vmovaps %ymm2,%ymm4 + DB 197,252,40,233 ; vmovaps %ymm1,%ymm5 + DB 197,252,40,216 ; vmovaps %ymm0,%ymm3 + DB 184,0,0,0,63 ; mov $0x3f000000,%eax + DB 197,249,110,192 ; vmovd %eax,%xmm0 + DB 196,227,121,4,192,0 ; vpermilps $0x0,%xmm0,%xmm0 + DB 196,99,125,24,192,1 ; vinsertf128 $0x1,%xmm0,%ymm0,%ymm8 + DB 196,193,92,194,192,1 ; vcmpltps %ymm8,%ymm4,%ymm0 + DB 184,0,0,128,63 ; mov $0x3f800000,%eax + DB 197,249,110,208 ; vmovd %eax,%xmm2 + DB 196,227,121,4,210,0 ; vpermilps $0x0,%xmm2,%xmm2 + DB 196,99,109,24,210,1 ; vinsertf128 $0x1,%xmm2,%ymm2,%ymm10 + DB 197,172,88,213 ; vaddps %ymm5,%ymm10,%ymm2 + DB 197,236,89,212 ; vmulps %ymm4,%ymm2,%ymm2 + DB 197,84,88,204 ; vaddps %ymm4,%ymm5,%ymm9 + DB 197,84,89,220 ; vmulps %ymm4,%ymm5,%ymm11 + DB 196,65,52,92,203 ; vsubps %ymm11,%ymm9,%ymm9 + DB 196,99,53,74,202,0 ; vblendvps %ymm0,%ymm2,%ymm9,%ymm9 + DB 65,184,0,0,0,64 ; mov $0x40000000,%r8d + DB 184,171,170,170,62 ; mov $0x3eaaaaab,%eax + DB 197,249,110,192 ; vmovd %eax,%xmm0 + DB 196,227,121,4,192,0 ; vpermilps $0x0,%xmm0,%xmm0 + DB 196,99,125,24,224,1 ; vinsertf128 $0x1,%xmm0,%ymm0,%ymm12 + DB 197,28,88,251 ; vaddps %ymm3,%ymm12,%ymm15 + DB 184,0,0,0,0 ; mov $0x0,%eax + DB 197,249,110,192 ; vmovd %eax,%xmm0 + DB 196,227,121,4,192,0 ; vpermilps $0x0,%xmm0,%xmm0 + DB 196,99,125,24,232,1 ; vinsertf128 $0x1,%xmm0,%ymm0,%ymm13 + DB 196,193,44,194,199,1 ; vcmpltps %ymm15,%ymm10,%ymm0 + DB 196,193,4,92,210 ; vsubps %ymm10,%ymm15,%ymm2 + DB 196,227,5,74,194,0 ; vblendvps %ymm0,%ymm2,%ymm15,%ymm0 + DB 196,193,4,194,213,1 ; vcmpltps %ymm13,%ymm15,%ymm2 + DB 196,65,44,88,223 ; vaddps %ymm15,%ymm10,%ymm11 + DB 196,195,125,74,203,32 ; vblendvps %ymm2,%ymm11,%ymm0,%ymm1 + DB 196,193,121,110,192 ; vmovd %r8d,%xmm0 + DB 196,227,121,4,192,0 ; vpermilps $0x0,%xmm0,%xmm0 + DB 196,227,125,24,192,1 ; vinsertf128 $0x1,%xmm0,%ymm0,%ymm0 + DB 197,252,89,196 ; vmulps %ymm4,%ymm0,%ymm0 + DB 196,65,124,92,217 ; vsubps %ymm9,%ymm0,%ymm11 + DB 65,184,171,170,42,62 ; mov $0x3e2aaaab,%r8d + DB 184,0,0,192,64 ; mov $0x40c00000,%eax + DB 197,249,110,192 ; vmovd %eax,%xmm0 + DB 196,227,121,4,192,0 ; vpermilps $0x0,%xmm0,%xmm0 + DB 196,227,125,24,192,1 ; vinsertf128 $0x1,%xmm0,%ymm0,%ymm0 + DB 196,193,52,92,211 ; vsubps %ymm11,%ymm9,%ymm2 + DB 197,108,89,240 ; vmulps %ymm0,%ymm2,%ymm14 + DB 184,171,170,42,63 ; mov $0x3f2aaaab,%eax + DB 197,249,110,192 ; vmovd %eax,%xmm0 + DB 196,227,121,4,192,0 ; vpermilps $0x0,%xmm0,%xmm0 + DB 196,227,125,24,192,1 ; vinsertf128 $0x1,%xmm0,%ymm0,%ymm0 + DB 197,252,92,209 ; vsubps %ymm1,%ymm0,%ymm2 + DB 197,140,89,210 ; vmulps %ymm2,%ymm14,%ymm2 + DB 197,164,88,210 ; vaddps %ymm2,%ymm11,%ymm2 + DB 197,244,194,248,1 ; vcmpltps %ymm0,%ymm1,%ymm7 + DB 196,227,37,74,210,112 ; vblendvps %ymm7,%ymm2,%ymm11,%ymm2 + DB 196,193,116,194,248,1 ; vcmpltps %ymm8,%ymm1,%ymm7 + DB 196,195,109,74,249,112 ; vblendvps %ymm7,%ymm9,%ymm2,%ymm7 + DB 196,193,121,110,208 ; vmovd %r8d,%xmm2 + DB 196,227,121,4,210,0 ; vpermilps $0x0,%xmm2,%xmm2 + DB 196,227,109,24,210,1 ; vinsertf128 $0x1,%xmm2,%ymm2,%ymm2 + DB 197,244,194,202,1 ; vcmpltps %ymm2,%ymm1,%ymm1 + DB 196,65,4,89,254 ; vmulps %ymm14,%ymm15,%ymm15 + DB 196,65,36,88,255 ; vaddps %ymm15,%ymm11,%ymm15 + DB 196,67,69,74,255,16 ; vblendvps %ymm1,%ymm15,%ymm7,%ymm15 + DB 197,172,194,203,1 ; vcmpltps %ymm3,%ymm10,%ymm1 + DB 196,193,100,92,250 ; vsubps %ymm10,%ymm3,%ymm7 + DB 196,227,101,74,207,16 ; vblendvps %ymm1,%ymm7,%ymm3,%ymm1 + DB 196,193,100,194,253,1 ; vcmpltps %ymm13,%ymm3,%ymm7 + DB 197,172,88,243 ; vaddps %ymm3,%ymm10,%ymm6 + DB 196,227,117,74,206,112 ; vblendvps %ymm7,%ymm6,%ymm1,%ymm1 + DB 197,252,92,241 ; vsubps %ymm1,%ymm0,%ymm6 + DB 197,140,89,246 ; vmulps %ymm6,%ymm14,%ymm6 + DB 197,164,88,246 ; vaddps %ymm6,%ymm11,%ymm6 + DB 197,244,194,248,1 ; vcmpltps %ymm0,%ymm1,%ymm7 + DB 196,227,37,74,246,112 ; vblendvps %ymm7,%ymm6,%ymm11,%ymm6 + DB 196,193,116,194,248,1 ; vcmpltps %ymm8,%ymm1,%ymm7 + DB 196,195,77,74,241,112 ; vblendvps %ymm7,%ymm9,%ymm6,%ymm6 + DB 197,244,194,202,1 ; vcmpltps %ymm2,%ymm1,%ymm1 + DB 197,140,89,251 ; vmulps %ymm3,%ymm14,%ymm7 + DB 197,164,88,255 ; vaddps %ymm7,%ymm11,%ymm7 + DB 196,227,77,74,207,16 ; vblendvps %ymm1,%ymm7,%ymm6,%ymm1 + DB 196,193,100,92,220 ; vsubps %ymm12,%ymm3,%ymm3 + DB 197,172,194,243,1 ; vcmpltps %ymm3,%ymm10,%ymm6 + DB 196,193,100,92,250 ; vsubps %ymm10,%ymm3,%ymm7 + DB 196,227,101,74,247,96 ; vblendvps %ymm6,%ymm7,%ymm3,%ymm6 + DB 196,193,100,194,253,1 ; vcmpltps %ymm13,%ymm3,%ymm7 + DB 197,44,88,211 ; vaddps %ymm3,%ymm10,%ymm10 + DB 196,195,77,74,242,112 ; vblendvps %ymm7,%ymm10,%ymm6,%ymm6 + DB 197,204,194,248,1 ; vcmpltps %ymm0,%ymm6,%ymm7 + DB 197,252,92,198 ; vsubps %ymm6,%ymm0,%ymm0 + DB 197,140,89,192 ; vmulps %ymm0,%ymm14,%ymm0 + DB 197,164,88,192 ; vaddps %ymm0,%ymm11,%ymm0 + DB 196,227,37,74,192,112 ; vblendvps %ymm7,%ymm0,%ymm11,%ymm0 + DB 196,193,76,194,248,1 ; vcmpltps %ymm8,%ymm6,%ymm7 + DB 196,195,125,74,193,112 ; vblendvps %ymm7,%ymm9,%ymm0,%ymm0 + DB 197,204,194,210,1 ; vcmpltps %ymm2,%ymm6,%ymm2 + DB 196,193,100,89,222 ; vmulps %ymm14,%ymm3,%ymm3 + DB 197,164,88,219 ; vaddps %ymm3,%ymm11,%ymm3 + DB 196,227,125,74,211,32 ; vblendvps %ymm2,%ymm3,%ymm0,%ymm2 + DB 197,252,87,192 ; vxorps %ymm0,%ymm0,%ymm0 + DB 197,212,194,216,0 ; vcmpeqps %ymm0,%ymm5,%ymm3 + DB 196,227,5,74,196,48 ; vblendvps %ymm3,%ymm4,%ymm15,%ymm0 + DB 196,227,117,74,204,48 ; vblendvps %ymm3,%ymm4,%ymm1,%ymm1 + DB 196,227,109,74,212,48 ; vblendvps %ymm3,%ymm4,%ymm2,%ymm2 + DB 72,173 ; lods %ds:(%rsi),%rax + DB 197,252,16,28,36 ; vmovups (%rsp),%ymm3 + DB 197,252,16,100,36,32 ; vmovups 0x20(%rsp),%ymm4 + DB 197,252,16,108,36,64 ; vmovups 0x40(%rsp),%ymm5 + DB 197,252,16,116,36,96 ; vmovups 0x60(%rsp),%ymm6 + DB 197,252,16,188,36,128,0,0,0 ; vmovups 0x80(%rsp),%ymm7 + DB 72,129,196,184,0,0,0 ; add $0xb8,%rsp + DB 255,224 ; jmpq *%rax + PUBLIC _sk_scale_1_float_avx _sk_scale_1_float_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax @@ -4260,7 +4611,7 @@ _sk_scale_u8_avx LABEL PROC DB 72,139,0 ; mov (%rax),%rax DB 72,1,248 ; add %rdi,%rax DB 77,133,192 ; test %r8,%r8 - DB 117,80 ; jne 116b <_sk_scale_u8_avx+0x60> + DB 117,80 ; jne 14ff <_sk_scale_u8_avx+0x60> DB 197,122,126,0 ; vmovq (%rax),%xmm8 DB 196,66,121,49,200 ; vpmovzxbd %xmm8,%xmm9 DB 196,67,121,4,192,229 ; vpermilps $0xe5,%xmm8,%xmm8 @@ -4288,9 +4639,9 @@ _sk_scale_u8_avx LABEL PROC DB 77,9,217 ; or %r11,%r9 DB 72,131,193,8 ; add $0x8,%rcx DB 73,255,202 ; dec %r10 - DB 117,234 ; jne 1173 <_sk_scale_u8_avx+0x68> + DB 117,234 ; jne 1507 <_sk_scale_u8_avx+0x68> DB 196,65,249,110,193 ; vmovq %r9,%xmm8 - DB 235,143 ; jmp 111f <_sk_scale_u8_avx+0x14> + DB 235,143 ; jmp 14b3 <_sk_scale_u8_avx+0x14> PUBLIC _sk_lerp_1_float_avx _sk_lerp_1_float_avx LABEL PROC @@ -4318,7 +4669,7 @@ _sk_lerp_u8_avx LABEL PROC DB 72,139,0 ; mov (%rax),%rax DB 72,1,248 ; add %rdi,%rax DB 77,133,192 ; test %r8,%r8 - DB 117,116 ; jne 1253 <_sk_lerp_u8_avx+0x84> + DB 117,116 ; jne 15e7 <_sk_lerp_u8_avx+0x84> DB 197,122,126,0 ; vmovq (%rax),%xmm8 DB 196,66,121,49,200 ; vpmovzxbd %xmm8,%xmm9 DB 196,67,121,4,192,229 ; vpermilps $0xe5,%xmm8,%xmm8 @@ -4354,16 +4705,16 @@ _sk_lerp_u8_avx LABEL PROC DB 77,9,217 ; or %r11,%r9 DB 72,131,193,8 ; add $0x8,%rcx DB 73,255,202 ; dec %r10 - DB 117,234 ; jne 125b <_sk_lerp_u8_avx+0x8c> + DB 117,234 ; jne 15ef <_sk_lerp_u8_avx+0x8c> DB 196,65,249,110,193 ; vmovq %r9,%xmm8 - DB 233,104,255,255,255 ; jmpq 11e3 <_sk_lerp_u8_avx+0x14> + DB 233,104,255,255,255 ; jmpq 1577 <_sk_lerp_u8_avx+0x14> PUBLIC _sk_lerp_565_avx _sk_lerp_565_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 76,139,16 ; mov (%rax),%r10 DB 72,133,201 ; test %rcx,%rcx - DB 15,133,250,0,0,0 ; jne 1383 <_sk_lerp_565_avx+0x108> + DB 15,133,250,0,0,0 ; jne 1717 <_sk_lerp_565_avx+0x108> DB 196,65,122,111,4,122 ; vmovdqu (%r10,%rdi,2),%xmm8 DB 197,225,239,219 ; vpxor %xmm3,%xmm3,%xmm3 DB 197,185,105,219 ; vpunpckhwd %xmm3,%xmm8,%xmm3 @@ -4422,9 +4773,9 @@ _sk_lerp_565_avx LABEL PROC DB 196,65,57,239,192 ; vpxor %xmm8,%xmm8,%xmm8 DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 15,135,243,254,255,255 ; ja 128f <_sk_lerp_565_avx+0x14> + DB 15,135,243,254,255,255 ; ja 1623 <_sk_lerp_565_avx+0x14> DB 69,15,182,192 ; movzbl %r8b,%r8d - DB 76,141,13,73,0,0,0 ; lea 0x49(%rip),%r9 # 13f0 <_sk_lerp_565_avx+0x175> + DB 76,141,13,73,0,0,0 ; lea 0x49(%rip),%r9 # 1784 <_sk_lerp_565_avx+0x175> DB 75,99,4,129 ; movslq (%r9,%r8,4),%rax DB 76,1,200 ; add %r9,%rax DB 255,224 ; jmpq *%rax @@ -4436,7 +4787,7 @@ _sk_lerp_565_avx LABEL PROC DB 196,65,57,196,68,122,4,2 ; vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm8,%xmm8 DB 196,65,57,196,68,122,2,1 ; vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm8,%xmm8 DB 196,65,57,196,4,122,0 ; vpinsrw $0x0,(%r10,%rdi,2),%xmm8,%xmm8 - DB 233,159,254,255,255 ; jmpq 128f <_sk_lerp_565_avx+0x14> + DB 233,159,254,255,255 ; jmpq 1623 <_sk_lerp_565_avx+0x14> DB 244 ; hlt DB 255 ; (bad) DB 255 ; (bad) @@ -4472,7 +4823,7 @@ _sk_load_tables_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 76,139,0 ; mov (%rax),%r8 DB 72,133,201 ; test %rcx,%rcx - DB 15,133,56,2,0,0 ; jne 165c <_sk_load_tables_avx+0x250> + DB 15,133,56,2,0,0 ; jne 19f0 <_sk_load_tables_avx+0x250> DB 196,65,124,16,4,184 ; vmovups (%r8,%rdi,4),%ymm8 DB 187,255,0,0,0 ; mov $0xff,%ebx DB 197,249,110,195 ; vmovd %ebx,%xmm0 @@ -4591,9 +4942,9 @@ _sk_load_tables_avx LABEL PROC DB 196,65,60,87,192 ; vxorps %ymm8,%ymm8,%ymm8 DB 254,203 ; dec %bl DB 128,251,6 ; cmp $0x6,%bl - DB 15,135,185,253,255,255 ; ja 142a <_sk_load_tables_avx+0x1e> + DB 15,135,185,253,255,255 ; ja 17be <_sk_load_tables_avx+0x1e> DB 15,182,219 ; movzbl %bl,%ebx - DB 76,141,13,137,0,0,0 ; lea 0x89(%rip),%r9 # 1704 <_sk_load_tables_avx+0x2f8> + DB 76,141,13,137,0,0,0 ; lea 0x89(%rip),%r9 # 1a98 <_sk_load_tables_avx+0x2f8> DB 73,99,28,153 ; movslq (%r9,%rbx,4),%rbx DB 76,1,203 ; add %r9,%rbx DB 255,227 ; jmpq *%rbx @@ -4616,7 +4967,7 @@ _sk_load_tables_avx LABEL PROC DB 196,99,61,12,192,15 ; vblendps $0xf,%ymm0,%ymm8,%ymm8 DB 196,195,57,34,4,184,0 ; vpinsrd $0x0,(%r8,%rdi,4),%xmm8,%xmm0 DB 196,99,61,12,192,15 ; vblendps $0xf,%ymm0,%ymm8,%ymm8 - DB 233,38,253,255,255 ; jmpq 142a <_sk_load_tables_avx+0x1e> + DB 233,38,253,255,255 ; jmpq 17be <_sk_load_tables_avx+0x1e> DB 238 ; out %al,(%dx) DB 255 ; (bad) DB 255 ; (bad) @@ -4934,7 +5285,7 @@ _sk_load_a8_avx LABEL PROC DB 72,139,0 ; mov (%rax),%rax DB 72,1,248 ; add %rdi,%rax DB 77,133,192 ; test %r8,%r8 - DB 117,74 ; jne 1c98 <_sk_load_a8_avx+0x5a> + DB 117,74 ; jne 202c <_sk_load_a8_avx+0x5a> DB 197,250,126,0 ; vmovq (%rax),%xmm0 DB 196,226,121,49,200 ; vpmovzxbd %xmm0,%xmm1 DB 196,227,121,4,192,229 ; vpermilps $0xe5,%xmm0,%xmm0 @@ -4961,9 +5312,9 @@ _sk_load_a8_avx LABEL PROC DB 77,9,217 ; or %r11,%r9 DB 72,131,193,8 ; add $0x8,%rcx DB 73,255,202 ; dec %r10 - DB 117,234 ; jne 1ca0 <_sk_load_a8_avx+0x62> + DB 117,234 ; jne 2034 <_sk_load_a8_avx+0x62> DB 196,193,249,110,193 ; vmovq %r9,%xmm0 - DB 235,149 ; jmp 1c52 <_sk_load_a8_avx+0x14> + DB 235,149 ; jmp 1fe6 <_sk_load_a8_avx+0x14> PUBLIC _sk_gather_a8_avx _sk_gather_a8_avx LABEL PROC @@ -5040,7 +5391,7 @@ _sk_store_a8_avx LABEL PROC DB 196,66,57,43,193 ; vpackusdw %xmm9,%xmm8,%xmm8 DB 196,65,57,103,192 ; vpackuswb %xmm8,%xmm8,%xmm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,10 ; jne 1df9 <_sk_store_a8_avx+0x42> + DB 117,10 ; jne 218d <_sk_store_a8_avx+0x42> DB 196,65,123,17,4,57 ; vmovsd %xmm8,(%r9,%rdi,1) DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax @@ -5048,10 +5399,10 @@ _sk_store_a8_avx LABEL PROC DB 65,128,224,7 ; and $0x7,%r8b DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 119,236 ; ja 1df5 <_sk_store_a8_avx+0x3e> + DB 119,236 ; ja 2189 <_sk_store_a8_avx+0x3e> DB 196,66,121,48,192 ; vpmovzxbw %xmm8,%xmm8 DB 65,15,182,192 ; movzbl %r8b,%eax - DB 76,141,5,67,0,0,0 ; lea 0x43(%rip),%r8 # 1e5c <_sk_store_a8_avx+0xa5> + DB 76,141,5,67,0,0,0 ; lea 0x43(%rip),%r8 # 21f0 <_sk_store_a8_avx+0xa5> DB 73,99,4,128 ; movslq (%r8,%rax,4),%rax DB 76,1,192 ; add %r8,%rax DB 255,224 ; jmpq *%rax @@ -5062,7 +5413,7 @@ _sk_store_a8_avx LABEL PROC DB 196,67,121,20,68,57,2,4 ; vpextrb $0x4,%xmm8,0x2(%r9,%rdi,1) DB 196,67,121,20,68,57,1,2 ; vpextrb $0x2,%xmm8,0x1(%r9,%rdi,1) DB 196,67,121,20,4,57,0 ; vpextrb $0x0,%xmm8,(%r9,%rdi,1) - DB 235,154 ; jmp 1df5 <_sk_store_a8_avx+0x3e> + DB 235,154 ; jmp 2189 <_sk_store_a8_avx+0x3e> DB 144 ; nop DB 246,255 ; idiv %bh DB 255 ; (bad) @@ -5094,7 +5445,7 @@ _sk_load_g8_avx LABEL PROC DB 72,139,0 ; mov (%rax),%rax DB 72,1,248 ; add %rdi,%rax DB 77,133,192 ; test %r8,%r8 - DB 117,91 ; jne 1ee3 <_sk_load_g8_avx+0x6b> + DB 117,91 ; jne 2277 <_sk_load_g8_avx+0x6b> DB 197,250,126,0 ; vmovq (%rax),%xmm0 DB 196,226,121,49,200 ; vpmovzxbd %xmm0,%xmm1 DB 196,227,121,4,192,229 ; vpermilps $0xe5,%xmm0,%xmm0 @@ -5124,9 +5475,9 @@ _sk_load_g8_avx LABEL PROC DB 77,9,217 ; or %r11,%r9 DB 72,131,193,8 ; add $0x8,%rcx DB 73,255,202 ; dec %r10 - DB 117,234 ; jne 1eeb <_sk_load_g8_avx+0x73> + DB 117,234 ; jne 227f <_sk_load_g8_avx+0x73> DB 196,193,249,110,193 ; vmovq %r9,%xmm0 - DB 235,132 ; jmp 1e8c <_sk_load_g8_avx+0x14> + DB 235,132 ; jmp 2220 <_sk_load_g8_avx+0x14> PUBLIC _sk_gather_g8_avx _sk_gather_g8_avx LABEL PROC @@ -5197,9 +5548,9 @@ _sk_gather_i8_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 73,137,192 ; mov %rax,%r8 DB 77,133,192 ; test %r8,%r8 - DB 116,5 ; je 2022 <_sk_gather_i8_avx+0xf> + DB 116,5 ; je 23b6 <_sk_gather_i8_avx+0xf> DB 76,137,192 ; mov %r8,%rax - DB 235,2 ; jmp 2024 <_sk_gather_i8_avx+0x11> + DB 235,2 ; jmp 23b8 <_sk_gather_i8_avx+0x11> DB 72,173 ; lods %ds:(%rsi),%rax DB 65,87 ; push %r15 DB 65,86 ; push %r14 @@ -5302,7 +5653,7 @@ _sk_load_565_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 76,139,16 ; mov (%rax),%r10 DB 72,133,201 ; test %rcx,%rcx - DB 15,133,209,0,0,0 ; jne 22be <_sk_load_565_avx+0xdf> + DB 15,133,209,0,0,0 ; jne 2652 <_sk_load_565_avx+0xdf> DB 196,193,122,111,4,122 ; vmovdqu (%r10,%rdi,2),%xmm0 DB 197,241,239,201 ; vpxor %xmm1,%xmm1,%xmm1 DB 197,249,105,201 ; vpunpckhwd %xmm1,%xmm0,%xmm1 @@ -5352,9 +5703,9 @@ _sk_load_565_avx LABEL PROC DB 197,249,239,192 ; vpxor %xmm0,%xmm0,%xmm0 DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 15,135,29,255,255,255 ; ja 21f3 <_sk_load_565_avx+0x14> + DB 15,135,29,255,255,255 ; ja 2587 <_sk_load_565_avx+0x14> DB 69,15,182,192 ; movzbl %r8b,%r8d - DB 76,141,13,75,0,0,0 ; lea 0x4b(%rip),%r9 # 232c <_sk_load_565_avx+0x14d> + DB 76,141,13,75,0,0,0 ; lea 0x4b(%rip),%r9 # 26c0 <_sk_load_565_avx+0x14d> DB 75,99,4,129 ; movslq (%r9,%r8,4),%rax DB 76,1,200 ; add %r9,%rax DB 255,224 ; jmpq *%rax @@ -5366,7 +5717,7 @@ _sk_load_565_avx LABEL PROC DB 196,193,121,196,68,122,4,2 ; vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0 DB 196,193,121,196,68,122,2,1 ; vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0 DB 196,193,121,196,4,122,0 ; vpinsrw $0x0,(%r10,%rdi,2),%xmm0,%xmm0 - DB 233,201,254,255,255 ; jmpq 21f3 <_sk_load_565_avx+0x14> + DB 233,201,254,255,255 ; jmpq 2587 <_sk_load_565_avx+0x14> DB 102,144 ; xchg %ax,%ax DB 242,255 ; repnz (bad) DB 255 ; (bad) @@ -5519,7 +5870,7 @@ _sk_store_565_avx LABEL PROC DB 196,67,125,25,193,1 ; vextractf128 $0x1,%ymm8,%xmm9 DB 196,66,57,43,193 ; vpackusdw %xmm9,%xmm8,%xmm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,10 ; jne 2577 <_sk_store_565_avx+0x9e> + DB 117,10 ; jne 290b <_sk_store_565_avx+0x9e> DB 196,65,122,127,4,121 ; vmovdqu %xmm8,(%r9,%rdi,2) DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax @@ -5527,9 +5878,9 @@ _sk_store_565_avx LABEL PROC DB 65,128,224,7 ; and $0x7,%r8b DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 119,236 ; ja 2573 <_sk_store_565_avx+0x9a> + DB 119,236 ; ja 2907 <_sk_store_565_avx+0x9a> DB 65,15,182,192 ; movzbl %r8b,%eax - DB 76,141,5,66,0,0,0 ; lea 0x42(%rip),%r8 # 25d4 <_sk_store_565_avx+0xfb> + DB 76,141,5,66,0,0,0 ; lea 0x42(%rip),%r8 # 2968 <_sk_store_565_avx+0xfb> DB 73,99,4,128 ; movslq (%r8,%rax,4),%rax DB 76,1,192 ; add %r8,%rax DB 255,224 ; jmpq *%rax @@ -5540,7 +5891,7 @@ _sk_store_565_avx LABEL PROC DB 196,67,121,21,68,121,4,2 ; vpextrw $0x2,%xmm8,0x4(%r9,%rdi,2) DB 196,67,121,21,68,121,2,1 ; vpextrw $0x1,%xmm8,0x2(%r9,%rdi,2) DB 196,67,121,21,4,121,0 ; vpextrw $0x0,%xmm8,(%r9,%rdi,2) - DB 235,159 ; jmp 2573 <_sk_store_565_avx+0x9a> + DB 235,159 ; jmp 2907 <_sk_store_565_avx+0x9a> DB 247,255 ; idiv %edi DB 255 ; (bad) DB 255 ; (bad) @@ -5569,7 +5920,7 @@ _sk_load_4444_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 76,139,16 ; mov (%rax),%r10 DB 72,133,201 ; test %rcx,%rcx - DB 15,133,245,0,0,0 ; jne 26f3 <_sk_load_4444_avx+0x103> + DB 15,133,245,0,0,0 ; jne 2a87 <_sk_load_4444_avx+0x103> DB 196,193,122,111,4,122 ; vmovdqu (%r10,%rdi,2),%xmm0 DB 197,241,239,201 ; vpxor %xmm1,%xmm1,%xmm1 DB 197,249,105,201 ; vpunpckhwd %xmm1,%xmm0,%xmm1 @@ -5626,9 +5977,9 @@ _sk_load_4444_avx LABEL PROC DB 197,249,239,192 ; vpxor %xmm0,%xmm0,%xmm0 DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 15,135,249,254,255,255 ; ja 2604 <_sk_load_4444_avx+0x14> + DB 15,135,249,254,255,255 ; ja 2998 <_sk_load_4444_avx+0x14> DB 69,15,182,192 ; movzbl %r8b,%r8d - DB 76,141,13,74,0,0,0 ; lea 0x4a(%rip),%r9 # 2760 <_sk_load_4444_avx+0x170> + DB 76,141,13,74,0,0,0 ; lea 0x4a(%rip),%r9 # 2af4 <_sk_load_4444_avx+0x170> DB 75,99,4,129 ; movslq (%r9,%r8,4),%rax DB 76,1,200 ; add %r9,%rax DB 255,224 ; jmpq *%rax @@ -5640,12 +5991,12 @@ _sk_load_4444_avx LABEL PROC DB 196,193,121,196,68,122,4,2 ; vpinsrw $0x2,0x4(%r10,%rdi,2),%xmm0,%xmm0 DB 196,193,121,196,68,122,2,1 ; vpinsrw $0x1,0x2(%r10,%rdi,2),%xmm0,%xmm0 DB 196,193,121,196,4,122,0 ; vpinsrw $0x0,(%r10,%rdi,2),%xmm0,%xmm0 - DB 233,165,254,255,255 ; jmpq 2604 <_sk_load_4444_avx+0x14> + DB 233,165,254,255,255 ; jmpq 2998 <_sk_load_4444_avx+0x14> DB 144 ; nop DB 243,255 ; repz (bad) DB 255 ; (bad) DB 255 ; (bad) - DB 235,255 ; jmp 2765 <_sk_load_4444_avx+0x175> + DB 235,255 ; jmp 2af9 <_sk_load_4444_avx+0x175> DB 255 ; (bad) DB 255,227 ; jmpq *%rbx DB 255 ; (bad) @@ -5802,7 +6153,7 @@ _sk_store_4444_avx LABEL PROC DB 196,67,125,25,193,1 ; vextractf128 $0x1,%ymm8,%xmm9 DB 196,66,57,43,193 ; vpackusdw %xmm9,%xmm8,%xmm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,10 ; jne 29e0 <_sk_store_4444_avx+0xaf> + DB 117,10 ; jne 2d74 <_sk_store_4444_avx+0xaf> DB 196,65,122,127,4,121 ; vmovdqu %xmm8,(%r9,%rdi,2) DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax @@ -5810,9 +6161,9 @@ _sk_store_4444_avx LABEL PROC DB 65,128,224,7 ; and $0x7,%r8b DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 119,236 ; ja 29dc <_sk_store_4444_avx+0xab> + DB 119,236 ; ja 2d70 <_sk_store_4444_avx+0xab> DB 65,15,182,192 ; movzbl %r8b,%eax - DB 76,141,5,69,0,0,0 ; lea 0x45(%rip),%r8 # 2a40 <_sk_store_4444_avx+0x10f> + DB 76,141,5,69,0,0,0 ; lea 0x45(%rip),%r8 # 2dd4 <_sk_store_4444_avx+0x10f> DB 73,99,4,128 ; movslq (%r8,%rax,4),%rax DB 76,1,192 ; add %r8,%rax DB 255,224 ; jmpq *%rax @@ -5823,7 +6174,7 @@ _sk_store_4444_avx LABEL PROC DB 196,67,121,21,68,121,4,2 ; vpextrw $0x2,%xmm8,0x4(%r9,%rdi,2) DB 196,67,121,21,68,121,2,1 ; vpextrw $0x1,%xmm8,0x2(%r9,%rdi,2) DB 196,67,121,21,4,121,0 ; vpextrw $0x0,%xmm8,(%r9,%rdi,2) - DB 235,159 ; jmp 29dc <_sk_store_4444_avx+0xab> + DB 235,159 ; jmp 2d70 <_sk_store_4444_avx+0xab> DB 15,31,0 ; nopl (%rax) DB 244 ; hlt DB 255 ; (bad) @@ -5854,7 +6205,7 @@ _sk_load_8888_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 76,139,16 ; mov (%rax),%r10 DB 72,133,201 ; test %rcx,%rcx - DB 15,133,157,0,0,0 ; jne 2b07 <_sk_load_8888_avx+0xab> + DB 15,133,157,0,0,0 ; jne 2e9b <_sk_load_8888_avx+0xab> DB 196,65,124,16,12,186 ; vmovups (%r10,%rdi,4),%ymm9 DB 184,255,0,0,0 ; mov $0xff,%eax DB 197,249,110,192 ; vmovd %eax,%xmm0 @@ -5892,9 +6243,9 @@ _sk_load_8888_avx LABEL PROC DB 196,65,52,87,201 ; vxorps %ymm9,%ymm9,%ymm9 DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 15,135,80,255,255,255 ; ja 2a70 <_sk_load_8888_avx+0x14> + DB 15,135,80,255,255,255 ; ja 2e04 <_sk_load_8888_avx+0x14> DB 69,15,182,192 ; movzbl %r8b,%r8d - DB 76,141,13,137,0,0,0 ; lea 0x89(%rip),%r9 # 2bb4 <_sk_load_8888_avx+0x158> + DB 76,141,13,137,0,0,0 ; lea 0x89(%rip),%r9 # 2f48 <_sk_load_8888_avx+0x158> DB 75,99,4,129 ; movslq (%r9,%r8,4),%rax DB 76,1,200 ; add %r9,%rax DB 255,224 ; jmpq *%rax @@ -5917,7 +6268,7 @@ _sk_load_8888_avx LABEL PROC DB 196,99,53,12,200,15 ; vblendps $0xf,%ymm0,%ymm9,%ymm9 DB 196,195,49,34,4,186,0 ; vpinsrd $0x0,(%r10,%rdi,4),%xmm9,%xmm0 DB 196,99,53,12,200,15 ; vblendps $0xf,%ymm0,%ymm9,%ymm9 - DB 233,188,254,255,255 ; jmpq 2a70 <_sk_load_8888_avx+0x14> + DB 233,188,254,255,255 ; jmpq 2e04 <_sk_load_8888_avx+0x14> DB 238 ; out %al,(%dx) DB 255 ; (bad) DB 255 ; (bad) @@ -6043,7 +6394,7 @@ _sk_store_8888_avx LABEL PROC DB 196,65,45,86,192 ; vorpd %ymm8,%ymm10,%ymm8 DB 196,65,53,86,192 ; vorpd %ymm8,%ymm9,%ymm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,10 ; jne 2db5 <_sk_store_8888_avx+0xa4> + DB 117,10 ; jne 3149 <_sk_store_8888_avx+0xa4> DB 196,65,124,17,4,185 ; vmovups %ymm8,(%r9,%rdi,4) DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax @@ -6051,9 +6402,9 @@ _sk_store_8888_avx LABEL PROC DB 65,128,224,7 ; and $0x7,%r8b DB 65,254,200 ; dec %r8b DB 65,128,248,6 ; cmp $0x6,%r8b - DB 119,236 ; ja 2db1 <_sk_store_8888_avx+0xa0> + DB 119,236 ; ja 3145 <_sk_store_8888_avx+0xa0> DB 65,15,182,192 ; movzbl %r8b,%eax - DB 76,141,5,84,0,0,0 ; lea 0x54(%rip),%r8 # 2e24 <_sk_store_8888_avx+0x113> + DB 76,141,5,84,0,0,0 ; lea 0x54(%rip),%r8 # 31b8 <_sk_store_8888_avx+0x113> DB 73,99,4,128 ; movslq (%r8,%rax,4),%rax DB 76,1,192 ; add %r8,%rax DB 255,224 ; jmpq *%rax @@ -6067,7 +6418,7 @@ _sk_store_8888_avx LABEL PROC DB 196,67,121,22,68,185,8,2 ; vpextrd $0x2,%xmm8,0x8(%r9,%rdi,4) DB 196,67,121,22,68,185,4,1 ; vpextrd $0x1,%xmm8,0x4(%r9,%rdi,4) DB 196,65,121,126,4,185 ; vmovd %xmm8,(%r9,%rdi,4) - DB 235,143 ; jmp 2db1 <_sk_store_8888_avx+0xa0> + DB 235,143 ; jmp 3145 <_sk_store_8888_avx+0xa0> DB 102,144 ; xchg %ax,%ax DB 246,255 ; idiv %bh DB 255 ; (bad) @@ -6097,7 +6448,7 @@ _sk_load_f16_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 72,139,0 ; mov (%rax),%rax DB 72,133,201 ; test %rcx,%rcx - DB 15,133,17,1,0,0 ; jne 2f5f <_sk_load_f16_avx+0x11f> + DB 15,133,17,1,0,0 ; jne 32f3 <_sk_load_f16_avx+0x11f> DB 197,121,16,4,248 ; vmovupd (%rax,%rdi,8),%xmm8 DB 197,249,16,84,248,16 ; vmovupd 0x10(%rax,%rdi,8),%xmm2 DB 197,249,16,92,248,32 ; vmovupd 0x20(%rax,%rdi,8),%xmm3 @@ -6159,29 +6510,29 @@ _sk_load_f16_avx LABEL PROC DB 197,123,16,4,248 ; vmovsd (%rax,%rdi,8),%xmm8 DB 196,65,49,239,201 ; vpxor %xmm9,%xmm9,%xmm9 DB 72,131,249,1 ; cmp $0x1,%rcx - DB 116,79 ; je 2fbe <_sk_load_f16_avx+0x17e> + DB 116,79 ; je 3352 <_sk_load_f16_avx+0x17e> DB 197,57,22,68,248,8 ; vmovhpd 0x8(%rax,%rdi,8),%xmm8,%xmm8 DB 72,131,249,3 ; cmp $0x3,%rcx - DB 114,67 ; jb 2fbe <_sk_load_f16_avx+0x17e> + DB 114,67 ; jb 3352 <_sk_load_f16_avx+0x17e> DB 197,251,16,84,248,16 ; vmovsd 0x10(%rax,%rdi,8),%xmm2 DB 72,131,249,3 ; cmp $0x3,%rcx - DB 116,68 ; je 2fcb <_sk_load_f16_avx+0x18b> + DB 116,68 ; je 335f <_sk_load_f16_avx+0x18b> DB 197,233,22,84,248,24 ; vmovhpd 0x18(%rax,%rdi,8),%xmm2,%xmm2 DB 72,131,249,5 ; cmp $0x5,%rcx - DB 114,56 ; jb 2fcb <_sk_load_f16_avx+0x18b> + DB 114,56 ; jb 335f <_sk_load_f16_avx+0x18b> DB 197,251,16,92,248,32 ; vmovsd 0x20(%rax,%rdi,8),%xmm3 DB 72,131,249,5 ; cmp $0x5,%rcx - DB 15,132,194,254,255,255 ; je 2e65 <_sk_load_f16_avx+0x25> + DB 15,132,194,254,255,255 ; je 31f9 <_sk_load_f16_avx+0x25> DB 197,225,22,92,248,40 ; vmovhpd 0x28(%rax,%rdi,8),%xmm3,%xmm3 DB 72,131,249,7 ; cmp $0x7,%rcx - DB 15,130,178,254,255,255 ; jb 2e65 <_sk_load_f16_avx+0x25> + DB 15,130,178,254,255,255 ; jb 31f9 <_sk_load_f16_avx+0x25> DB 197,122,126,76,248,48 ; vmovq 0x30(%rax,%rdi,8),%xmm9 - DB 233,167,254,255,255 ; jmpq 2e65 <_sk_load_f16_avx+0x25> + DB 233,167,254,255,255 ; jmpq 31f9 <_sk_load_f16_avx+0x25> DB 197,225,87,219 ; vxorpd %xmm3,%xmm3,%xmm3 DB 197,233,87,210 ; vxorpd %xmm2,%xmm2,%xmm2 - DB 233,154,254,255,255 ; jmpq 2e65 <_sk_load_f16_avx+0x25> + DB 233,154,254,255,255 ; jmpq 31f9 <_sk_load_f16_avx+0x25> DB 197,225,87,219 ; vxorpd %xmm3,%xmm3,%xmm3 - DB 233,145,254,255,255 ; jmpq 2e65 <_sk_load_f16_avx+0x25> + DB 233,145,254,255,255 ; jmpq 31f9 <_sk_load_f16_avx+0x25> PUBLIC _sk_gather_f16_avx _sk_gather_f16_avx LABEL PROC @@ -6321,7 +6672,7 @@ _sk_store_f16_avx LABEL PROC DB 196,65,17,98,200 ; vpunpckldq %xmm8,%xmm13,%xmm9 DB 196,65,17,106,192 ; vpunpckhdq %xmm8,%xmm13,%xmm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,31 ; jne 3254 <_sk_store_f16_avx+0xd2> + DB 117,31 ; jne 35e8 <_sk_store_f16_avx+0xd2> DB 196,65,120,17,28,248 ; vmovups %xmm11,(%r8,%rdi,8) DB 196,65,120,17,84,248,16 ; vmovups %xmm10,0x10(%r8,%rdi,8) DB 196,65,120,17,76,248,32 ; vmovups %xmm9,0x20(%r8,%rdi,8) @@ -6330,29 +6681,29 @@ _sk_store_f16_avx LABEL PROC DB 255,224 ; jmpq *%rax DB 196,65,121,214,28,248 ; vmovq %xmm11,(%r8,%rdi,8) DB 72,131,249,1 ; cmp $0x1,%rcx - DB 116,240 ; je 3250 <_sk_store_f16_avx+0xce> + DB 116,240 ; je 35e4 <_sk_store_f16_avx+0xce> DB 196,65,121,23,92,248,8 ; vmovhpd %xmm11,0x8(%r8,%rdi,8) DB 72,131,249,3 ; cmp $0x3,%rcx - DB 114,227 ; jb 3250 <_sk_store_f16_avx+0xce> + DB 114,227 ; jb 35e4 <_sk_store_f16_avx+0xce> DB 196,65,121,214,84,248,16 ; vmovq %xmm10,0x10(%r8,%rdi,8) - DB 116,218 ; je 3250 <_sk_store_f16_avx+0xce> + DB 116,218 ; je 35e4 <_sk_store_f16_avx+0xce> DB 196,65,121,23,84,248,24 ; vmovhpd %xmm10,0x18(%r8,%rdi,8) DB 72,131,249,5 ; cmp $0x5,%rcx - DB 114,205 ; jb 3250 <_sk_store_f16_avx+0xce> + DB 114,205 ; jb 35e4 <_sk_store_f16_avx+0xce> DB 196,65,121,214,76,248,32 ; vmovq %xmm9,0x20(%r8,%rdi,8) - DB 116,196 ; je 3250 <_sk_store_f16_avx+0xce> + DB 116,196 ; je 35e4 <_sk_store_f16_avx+0xce> DB 196,65,121,23,76,248,40 ; vmovhpd %xmm9,0x28(%r8,%rdi,8) DB 72,131,249,7 ; cmp $0x7,%rcx - DB 114,183 ; jb 3250 <_sk_store_f16_avx+0xce> + DB 114,183 ; jb 35e4 <_sk_store_f16_avx+0xce> DB 196,65,121,214,68,248,48 ; vmovq %xmm8,0x30(%r8,%rdi,8) - DB 235,174 ; jmp 3250 <_sk_store_f16_avx+0xce> + DB 235,174 ; jmp 35e4 <_sk_store_f16_avx+0xce> PUBLIC _sk_load_u16_be_avx _sk_load_u16_be_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 72,139,0 ; mov (%rax),%rax DB 72,133,201 ; test %rcx,%rcx - DB 15,133,1,1,0,0 ; jne 33b1 <_sk_load_u16_be_avx+0x10f> + DB 15,133,1,1,0,0 ; jne 3745 <_sk_load_u16_be_avx+0x10f> DB 197,121,16,4,248 ; vmovupd (%rax,%rdi,8),%xmm8 DB 197,249,16,84,248,16 ; vmovupd 0x10(%rax,%rdi,8),%xmm2 DB 197,249,16,92,248,32 ; vmovupd 0x20(%rax,%rdi,8),%xmm3 @@ -6411,29 +6762,29 @@ _sk_load_u16_be_avx LABEL PROC DB 197,123,16,4,248 ; vmovsd (%rax,%rdi,8),%xmm8 DB 196,65,49,239,201 ; vpxor %xmm9,%xmm9,%xmm9 DB 72,131,249,1 ; cmp $0x1,%rcx - DB 116,79 ; je 3410 <_sk_load_u16_be_avx+0x16e> + DB 116,79 ; je 37a4 <_sk_load_u16_be_avx+0x16e> DB 197,57,22,68,248,8 ; vmovhpd 0x8(%rax,%rdi,8),%xmm8,%xmm8 DB 72,131,249,3 ; cmp $0x3,%rcx - DB 114,67 ; jb 3410 <_sk_load_u16_be_avx+0x16e> + DB 114,67 ; jb 37a4 <_sk_load_u16_be_avx+0x16e> DB 197,251,16,84,248,16 ; vmovsd 0x10(%rax,%rdi,8),%xmm2 DB 72,131,249,3 ; cmp $0x3,%rcx - DB 116,68 ; je 341d <_sk_load_u16_be_avx+0x17b> + DB 116,68 ; je 37b1 <_sk_load_u16_be_avx+0x17b> DB 197,233,22,84,248,24 ; vmovhpd 0x18(%rax,%rdi,8),%xmm2,%xmm2 DB 72,131,249,5 ; cmp $0x5,%rcx - DB 114,56 ; jb 341d <_sk_load_u16_be_avx+0x17b> + DB 114,56 ; jb 37b1 <_sk_load_u16_be_avx+0x17b> DB 197,251,16,92,248,32 ; vmovsd 0x20(%rax,%rdi,8),%xmm3 DB 72,131,249,5 ; cmp $0x5,%rcx - DB 15,132,210,254,255,255 ; je 32c7 <_sk_load_u16_be_avx+0x25> + DB 15,132,210,254,255,255 ; je 365b <_sk_load_u16_be_avx+0x25> DB 197,225,22,92,248,40 ; vmovhpd 0x28(%rax,%rdi,8),%xmm3,%xmm3 DB 72,131,249,7 ; cmp $0x7,%rcx - DB 15,130,194,254,255,255 ; jb 32c7 <_sk_load_u16_be_avx+0x25> + DB 15,130,194,254,255,255 ; jb 365b <_sk_load_u16_be_avx+0x25> DB 197,122,126,76,248,48 ; vmovq 0x30(%rax,%rdi,8),%xmm9 - DB 233,183,254,255,255 ; jmpq 32c7 <_sk_load_u16_be_avx+0x25> + DB 233,183,254,255,255 ; jmpq 365b <_sk_load_u16_be_avx+0x25> DB 197,225,87,219 ; vxorpd %xmm3,%xmm3,%xmm3 DB 197,233,87,210 ; vxorpd %xmm2,%xmm2,%xmm2 - DB 233,170,254,255,255 ; jmpq 32c7 <_sk_load_u16_be_avx+0x25> + DB 233,170,254,255,255 ; jmpq 365b <_sk_load_u16_be_avx+0x25> DB 197,225,87,219 ; vxorpd %xmm3,%xmm3,%xmm3 - DB 233,161,254,255,255 ; jmpq 32c7 <_sk_load_u16_be_avx+0x25> + DB 233,161,254,255,255 ; jmpq 365b <_sk_load_u16_be_avx+0x25> PUBLIC _sk_store_u16_be_avx _sk_store_u16_be_avx LABEL PROC @@ -6480,7 +6831,7 @@ _sk_store_u16_be_avx LABEL PROC DB 196,65,17,98,200 ; vpunpckldq %xmm8,%xmm13,%xmm9 DB 196,65,17,106,192 ; vpunpckhdq %xmm8,%xmm13,%xmm8 DB 72,133,201 ; test %rcx,%rcx - DB 117,31 ; jne 3520 <_sk_store_u16_be_avx+0xfa> + DB 117,31 ; jne 38b4 <_sk_store_u16_be_avx+0xfa> DB 196,65,120,17,28,248 ; vmovups %xmm11,(%r8,%rdi,8) DB 196,65,120,17,84,248,16 ; vmovups %xmm10,0x10(%r8,%rdi,8) DB 196,65,120,17,76,248,32 ; vmovups %xmm9,0x20(%r8,%rdi,8) @@ -6489,31 +6840,31 @@ _sk_store_u16_be_avx LABEL PROC DB 255,224 ; jmpq *%rax DB 196,65,121,214,28,248 ; vmovq %xmm11,(%r8,%rdi,8) DB 72,131,249,1 ; cmp $0x1,%rcx - DB 116,240 ; je 351c <_sk_store_u16_be_avx+0xf6> + DB 116,240 ; je 38b0 <_sk_store_u16_be_avx+0xf6> DB 196,65,121,23,92,248,8 ; vmovhpd %xmm11,0x8(%r8,%rdi,8) DB 72,131,249,3 ; cmp $0x3,%rcx - DB 114,227 ; jb 351c <_sk_store_u16_be_avx+0xf6> + DB 114,227 ; jb 38b0 <_sk_store_u16_be_avx+0xf6> DB 196,65,121,214,84,248,16 ; vmovq %xmm10,0x10(%r8,%rdi,8) - DB 116,218 ; je 351c <_sk_store_u16_be_avx+0xf6> + DB 116,218 ; je 38b0 <_sk_store_u16_be_avx+0xf6> DB 196,65,121,23,84,248,24 ; vmovhpd %xmm10,0x18(%r8,%rdi,8) DB 72,131,249,5 ; cmp $0x5,%rcx - DB 114,205 ; jb 351c <_sk_store_u16_be_avx+0xf6> + DB 114,205 ; jb 38b0 <_sk_store_u16_be_avx+0xf6> DB 196,65,121,214,76,248,32 ; vmovq %xmm9,0x20(%r8,%rdi,8) - DB 116,196 ; je 351c <_sk_store_u16_be_avx+0xf6> + DB 116,196 ; je 38b0 <_sk_store_u16_be_avx+0xf6> DB 196,65,121,23,76,248,40 ; vmovhpd %xmm9,0x28(%r8,%rdi,8) DB 72,131,249,7 ; cmp $0x7,%rcx - DB 114,183 ; jb 351c <_sk_store_u16_be_avx+0xf6> + DB 114,183 ; jb 38b0 <_sk_store_u16_be_avx+0xf6> DB 196,65,121,214,68,248,48 ; vmovq %xmm8,0x30(%r8,%rdi,8) - DB 235,174 ; jmp 351c <_sk_store_u16_be_avx+0xf6> + DB 235,174 ; jmp 38b0 <_sk_store_u16_be_avx+0xf6> PUBLIC _sk_load_f32_avx _sk_load_f32_avx LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 72,131,249,7 ; cmp $0x7,%rcx - DB 119,110 ; ja 35e4 <_sk_load_f32_avx+0x76> + DB 119,110 ; ja 3978 <_sk_load_f32_avx+0x76> DB 76,139,0 ; mov (%rax),%r8 DB 76,141,12,189,0,0,0,0 ; lea 0x0(,%rdi,4),%r9 - DB 76,141,21,132,0,0,0 ; lea 0x84(%rip),%r10 # 360c <_sk_load_f32_avx+0x9e> + DB 76,141,21,132,0,0,0 ; lea 0x84(%rip),%r10 # 39a0 <_sk_load_f32_avx+0x9e> DB 73,99,4,138 ; movslq (%r10,%rcx,4),%rax DB 76,1,208 ; add %r10,%rax DB 255,224 ; jmpq *%rax @@ -6570,7 +6921,7 @@ _sk_store_f32_avx LABEL PROC DB 196,65,37,20,196 ; vunpcklpd %ymm12,%ymm11,%ymm8 DB 196,65,37,21,220 ; vunpckhpd %ymm12,%ymm11,%ymm11 DB 72,133,201 ; test %rcx,%rcx - DB 117,55 ; jne 3699 <_sk_store_f32_avx+0x6d> + DB 117,55 ; jne 3a2d <_sk_store_f32_avx+0x6d> DB 196,67,45,24,225,1 ; vinsertf128 $0x1,%xmm9,%ymm10,%ymm12 DB 196,67,61,24,235,1 ; vinsertf128 $0x1,%xmm11,%ymm8,%ymm13 DB 196,67,45,6,201,49 ; vperm2f128 $0x31,%ymm9,%ymm10,%ymm9 @@ -6583,22 +6934,22 @@ _sk_store_f32_avx LABEL PROC DB 255,224 ; jmpq *%rax DB 196,65,121,17,20,128 ; vmovupd %xmm10,(%r8,%rax,4) DB 72,131,249,1 ; cmp $0x1,%rcx - DB 116,240 ; je 3695 <_sk_store_f32_avx+0x69> + DB 116,240 ; je 3a29 <_sk_store_f32_avx+0x69> DB 196,65,121,17,76,128,16 ; vmovupd %xmm9,0x10(%r8,%rax,4) DB 72,131,249,3 ; cmp $0x3,%rcx - DB 114,227 ; jb 3695 <_sk_store_f32_avx+0x69> + DB 114,227 ; jb 3a29 <_sk_store_f32_avx+0x69> DB 196,65,121,17,68,128,32 ; vmovupd %xmm8,0x20(%r8,%rax,4) - DB 116,218 ; je 3695 <_sk_store_f32_avx+0x69> + DB 116,218 ; je 3a29 <_sk_store_f32_avx+0x69> DB 196,65,121,17,92,128,48 ; vmovupd %xmm11,0x30(%r8,%rax,4) DB 72,131,249,5 ; cmp $0x5,%rcx - DB 114,205 ; jb 3695 <_sk_store_f32_avx+0x69> + DB 114,205 ; jb 3a29 <_sk_store_f32_avx+0x69> DB 196,67,125,25,84,128,64,1 ; vextractf128 $0x1,%ymm10,0x40(%r8,%rax,4) - DB 116,195 ; je 3695 <_sk_store_f32_avx+0x69> + DB 116,195 ; je 3a29 <_sk_store_f32_avx+0x69> DB 196,67,125,25,76,128,80,1 ; vextractf128 $0x1,%ymm9,0x50(%r8,%rax,4) DB 72,131,249,7 ; cmp $0x7,%rcx - DB 114,181 ; jb 3695 <_sk_store_f32_avx+0x69> + DB 114,181 ; jb 3a29 <_sk_store_f32_avx+0x69> DB 196,67,125,25,68,128,96,1 ; vextractf128 $0x1,%ymm8,0x60(%r8,%rax,4) - DB 235,171 ; jmp 3695 <_sk_store_f32_avx+0x69> + DB 235,171 ; jmp 3a29 <_sk_store_f32_avx+0x69> PUBLIC _sk_clamp_x_avx _sk_clamp_x_avx LABEL PROC @@ -6902,7 +7253,7 @@ _sk_linear_gradient_avx LABEL PROC DB 196,226,125,24,88,28 ; vbroadcastss 0x1c(%rax),%ymm3 DB 76,139,0 ; mov (%rax),%r8 DB 77,133,192 ; test %r8,%r8 - DB 15,132,146,0,0,0 ; je 3c4d <_sk_linear_gradient_avx+0xb8> + DB 15,132,146,0,0,0 ; je 3fe1 <_sk_linear_gradient_avx+0xb8> DB 72,139,64,8 ; mov 0x8(%rax),%rax DB 72,131,192,32 ; add $0x20,%rax DB 196,65,28,87,228 ; vxorps %ymm12,%ymm12,%ymm12 @@ -6929,8 +7280,8 @@ _sk_linear_gradient_avx LABEL PROC DB 196,227,13,74,219,208 ; vblendvps %ymm13,%ymm3,%ymm14,%ymm3 DB 72,131,192,36 ; add $0x24,%rax DB 73,255,200 ; dec %r8 - DB 117,140 ; jne 3bd7 <_sk_linear_gradient_avx+0x42> - DB 235,20 ; jmp 3c61 <_sk_linear_gradient_avx+0xcc> + DB 117,140 ; jne 3f6b <_sk_linear_gradient_avx+0x42> + DB 235,20 ; jmp 3ff5 <_sk_linear_gradient_avx+0xcc> DB 196,65,36,87,219 ; vxorps %ymm11,%ymm11,%ymm11 DB 196,65,44,87,210 ; vxorps %ymm10,%ymm10,%ymm10 DB 196,65,52,87,201 ; vxorps %ymm9,%ymm9,%ymm9 @@ -8292,6 +8643,251 @@ _sk_to_2dot2_sse41 LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax +PUBLIC _sk_rgb_to_hsl_sse41 +_sk_rgb_to_hsl_sse41 LABEL PROC + DB 72,131,236,24 ; sub $0x18,%rsp + DB 15,41,60,36 ; movaps %xmm7,(%rsp) + DB 15,40,254 ; movaps %xmm6,%xmm7 + DB 15,40,245 ; movaps %xmm5,%xmm6 + DB 15,40,236 ; movaps %xmm4,%xmm5 + DB 15,40,227 ; movaps %xmm3,%xmm4 + DB 15,40,218 ; movaps %xmm2,%xmm3 + DB 184,0,0,128,63 ; mov $0x3f800000,%eax + DB 102,68,15,110,216 ; movd %eax,%xmm11 + DB 65,184,171,170,42,62 ; mov $0x3e2aaaab,%r8d + DB 65,185,0,0,192,64 ; mov $0x40c00000,%r9d + DB 184,0,0,0,64 ; mov $0x40000000,%eax + DB 185,0,0,128,64 ; mov $0x40800000,%ecx + DB 102,68,15,110,193 ; movd %ecx,%xmm8 + DB 68,15,40,224 ; movaps %xmm0,%xmm12 + DB 68,15,95,225 ; maxps %xmm1,%xmm12 + DB 68,15,95,227 ; maxps %xmm3,%xmm12 + DB 68,15,40,232 ; movaps %xmm0,%xmm13 + DB 68,15,93,233 ; minps %xmm1,%xmm13 + DB 68,15,93,235 ; minps %xmm3,%xmm13 + DB 69,15,40,204 ; movaps %xmm12,%xmm9 + DB 68,15,194,200,0 ; cmpeqps %xmm0,%xmm9 + DB 68,15,40,241 ; movaps %xmm1,%xmm14 + DB 68,15,92,243 ; subps %xmm3,%xmm14 + DB 68,15,40,249 ; movaps %xmm1,%xmm15 + DB 68,15,194,251,1 ; cmpltps %xmm3,%xmm15 + DB 69,15,40,212 ; movaps %xmm12,%xmm10 + DB 68,15,194,209,0 ; cmpeqps %xmm1,%xmm10 + DB 15,92,216 ; subps %xmm0,%xmm3 + DB 15,92,193 ; subps %xmm1,%xmm0 + DB 65,15,40,212 ; movaps %xmm12,%xmm2 + DB 65,15,92,213 ; subps %xmm13,%xmm2 + DB 69,15,198,219,0 ; shufps $0x0,%xmm11,%xmm11 + DB 68,15,94,218 ; divps %xmm2,%xmm11 + DB 65,15,89,195 ; mulps %xmm11,%xmm0 + DB 69,15,198,192,0 ; shufps $0x0,%xmm8,%xmm8 + DB 68,15,88,192 ; addps %xmm0,%xmm8 + DB 102,15,110,200 ; movd %eax,%xmm1 + DB 65,15,89,219 ; mulps %xmm11,%xmm3 + DB 15,198,201,0 ; shufps $0x0,%xmm1,%xmm1 + DB 15,88,217 ; addps %xmm1,%xmm3 + DB 65,15,40,194 ; movaps %xmm10,%xmm0 + DB 102,68,15,56,20,195 ; blendvps %xmm0,%xmm3,%xmm8 + DB 69,15,89,243 ; mulps %xmm11,%xmm14 + DB 102,65,15,110,217 ; movd %r9d,%xmm3 + DB 15,198,219,0 ; shufps $0x0,%xmm3,%xmm3 + DB 65,15,84,223 ; andps %xmm15,%xmm3 + DB 65,15,88,222 ; addps %xmm14,%xmm3 + DB 184,0,0,0,63 ; mov $0x3f000000,%eax + DB 102,68,15,110,208 ; movd %eax,%xmm10 + DB 65,15,40,193 ; movaps %xmm9,%xmm0 + DB 102,68,15,56,20,195 ; blendvps %xmm0,%xmm3,%xmm8 + DB 65,15,40,220 ; movaps %xmm12,%xmm3 + DB 65,15,92,204 ; subps %xmm12,%xmm1 + DB 69,15,88,229 ; addps %xmm13,%xmm12 + DB 69,15,198,210,0 ; shufps $0x0,%xmm10,%xmm10 + DB 69,15,40,204 ; movaps %xmm12,%xmm9 + DB 69,15,89,202 ; mulps %xmm10,%xmm9 + DB 69,15,194,209,1 ; cmpltps %xmm9,%xmm10 + DB 65,15,92,205 ; subps %xmm13,%xmm1 + DB 65,15,40,194 ; movaps %xmm10,%xmm0 + DB 102,68,15,56,20,225 ; blendvps %xmm0,%xmm1,%xmm12 + DB 65,15,194,221,4 ; cmpneqps %xmm13,%xmm3 + DB 102,65,15,110,192 ; movd %r8d,%xmm0 + DB 15,198,192,0 ; shufps $0x0,%xmm0,%xmm0 + DB 68,15,84,195 ; andps %xmm3,%xmm8 + DB 68,15,89,192 ; mulps %xmm0,%xmm8 + DB 65,15,94,212 ; divps %xmm12,%xmm2 + DB 15,84,211 ; andps %xmm3,%xmm2 + DB 72,173 ; lods %ds:(%rsi),%rax + DB 65,15,40,192 ; movaps %xmm8,%xmm0 + DB 15,40,202 ; movaps %xmm2,%xmm1 + DB 65,15,40,209 ; movaps %xmm9,%xmm2 + DB 15,40,220 ; movaps %xmm4,%xmm3 + DB 15,40,229 ; movaps %xmm5,%xmm4 + DB 15,40,238 ; movaps %xmm6,%xmm5 + DB 15,40,247 ; movaps %xmm7,%xmm6 + DB 15,40,60,36 ; movaps (%rsp),%xmm7 + DB 72,131,196,24 ; add $0x18,%rsp + DB 255,224 ; jmpq *%rax + +PUBLIC _sk_hsl_to_rgb_sse41 +_sk_hsl_to_rgb_sse41 LABEL PROC + DB 72,129,236,152,0,0,0 ; sub $0x98,%rsp + DB 15,41,188,36,128,0,0,0 ; movaps %xmm7,0x80(%rsp) + DB 15,41,116,36,112 ; movaps %xmm6,0x70(%rsp) + DB 15,41,108,36,96 ; movaps %xmm5,0x60(%rsp) + DB 15,41,100,36,80 ; movaps %xmm4,0x50(%rsp) + DB 15,41,92,36,64 ; movaps %xmm3,0x40(%rsp) + DB 68,15,40,208 ; movaps %xmm0,%xmm10 + DB 184,0,0,0,63 ; mov $0x3f000000,%eax + DB 102,15,110,216 ; movd %eax,%xmm3 + DB 15,198,219,0 ; shufps $0x0,%xmm3,%xmm3 + DB 15,41,28,36 ; movaps %xmm3,(%rsp) + DB 15,40,194 ; movaps %xmm2,%xmm0 + DB 15,194,195,1 ; cmpltps %xmm3,%xmm0 + DB 184,0,0,128,63 ; mov $0x3f800000,%eax + DB 102,68,15,110,192 ; movd %eax,%xmm8 + DB 69,15,198,192,0 ; shufps $0x0,%xmm8,%xmm8 + DB 65,15,40,224 ; movaps %xmm8,%xmm4 + DB 15,88,225 ; addps %xmm1,%xmm4 + DB 15,89,226 ; mulps %xmm2,%xmm4 + DB 15,40,217 ; movaps %xmm1,%xmm3 + DB 15,40,249 ; movaps %xmm1,%xmm7 + DB 15,88,250 ; addps %xmm2,%xmm7 + DB 15,89,218 ; mulps %xmm2,%xmm3 + DB 15,40,234 ; movaps %xmm2,%xmm5 + DB 15,92,251 ; subps %xmm3,%xmm7 + DB 102,15,56,20,252 ; blendvps %xmm0,%xmm4,%xmm7 + DB 184,0,0,0,64 ; mov $0x40000000,%eax + DB 185,171,170,170,62 ; mov $0x3eaaaaab,%ecx + DB 102,15,110,209 ; movd %ecx,%xmm2 + DB 15,198,210,0 ; shufps $0x0,%xmm2,%xmm2 + DB 15,41,84,36,48 ; movaps %xmm2,0x30(%rsp) + DB 65,15,88,210 ; addps %xmm10,%xmm2 + DB 185,0,0,0,0 ; mov $0x0,%ecx + DB 65,15,40,192 ; movaps %xmm8,%xmm0 + DB 15,194,194,1 ; cmpltps %xmm2,%xmm0 + DB 15,40,218 ; movaps %xmm2,%xmm3 + DB 65,15,92,216 ; subps %xmm8,%xmm3 + DB 68,15,40,226 ; movaps %xmm2,%xmm12 + DB 102,68,15,56,20,227 ; blendvps %xmm0,%xmm3,%xmm12 + DB 102,68,15,110,241 ; movd %ecx,%xmm14 + DB 69,15,198,246,0 ; shufps $0x0,%xmm14,%xmm14 + DB 15,40,194 ; movaps %xmm2,%xmm0 + DB 65,15,194,198,1 ; cmpltps %xmm14,%xmm0 + DB 68,15,41,116,36,32 ; movaps %xmm14,0x20(%rsp) + DB 65,15,40,216 ; movaps %xmm8,%xmm3 + DB 15,88,218 ; addps %xmm2,%xmm3 + DB 102,68,15,56,20,227 ; blendvps %xmm0,%xmm3,%xmm12 + DB 102,68,15,110,200 ; movd %eax,%xmm9 + DB 69,15,198,201,0 ; shufps $0x0,%xmm9,%xmm9 + DB 15,40,229 ; movaps %xmm5,%xmm4 + DB 15,41,100,36,16 ; movaps %xmm4,0x10(%rsp) + DB 68,15,89,204 ; mulps %xmm4,%xmm9 + DB 68,15,92,207 ; subps %xmm7,%xmm9 + DB 184,171,170,42,62 ; mov $0x3e2aaaab,%eax + DB 15,40,199 ; movaps %xmm7,%xmm0 + DB 65,15,92,193 ; subps %xmm9,%xmm0 + DB 185,0,0,192,64 ; mov $0x40c00000,%ecx + DB 102,15,110,241 ; movd %ecx,%xmm6 + DB 15,198,246,0 ; shufps $0x0,%xmm6,%xmm6 + DB 15,89,240 ; mulps %xmm0,%xmm6 + DB 185,171,170,42,63 ; mov $0x3f2aaaab,%ecx + DB 102,15,110,217 ; movd %ecx,%xmm3 + DB 15,198,219,0 ; shufps $0x0,%xmm3,%xmm3 + DB 15,40,235 ; movaps %xmm3,%xmm5 + DB 65,15,92,236 ; subps %xmm12,%xmm5 + DB 69,15,40,236 ; movaps %xmm12,%xmm13 + DB 69,15,40,252 ; movaps %xmm12,%xmm15 + DB 68,15,194,227,1 ; cmpltps %xmm3,%xmm12 + DB 15,89,238 ; mulps %xmm6,%xmm5 + DB 65,15,88,233 ; addps %xmm9,%xmm5 + DB 69,15,40,217 ; movaps %xmm9,%xmm11 + DB 65,15,40,196 ; movaps %xmm12,%xmm0 + DB 102,68,15,56,20,221 ; blendvps %xmm0,%xmm5,%xmm11 + DB 68,15,194,60,36,1 ; cmpltps (%rsp),%xmm15 + DB 65,15,40,199 ; movaps %xmm15,%xmm0 + DB 102,68,15,56,20,223 ; blendvps %xmm0,%xmm7,%xmm11 + DB 102,15,110,232 ; movd %eax,%xmm5 + DB 15,198,237,0 ; shufps $0x0,%xmm5,%xmm5 + DB 68,15,194,237,1 ; cmpltps %xmm5,%xmm13 + DB 15,89,214 ; mulps %xmm6,%xmm2 + DB 65,15,88,209 ; addps %xmm9,%xmm2 + DB 65,15,40,197 ; movaps %xmm13,%xmm0 + DB 102,68,15,56,20,218 ; blendvps %xmm0,%xmm2,%xmm11 + DB 69,15,87,228 ; xorps %xmm12,%xmm12 + DB 68,15,194,225,0 ; cmpeqps %xmm1,%xmm12 + DB 65,15,40,196 ; movaps %xmm12,%xmm0 + DB 102,68,15,56,20,220 ; blendvps %xmm0,%xmm4,%xmm11 + DB 65,15,40,192 ; movaps %xmm8,%xmm0 + DB 65,15,194,194,1 ; cmpltps %xmm10,%xmm0 + DB 65,15,40,202 ; movaps %xmm10,%xmm1 + DB 65,15,92,200 ; subps %xmm8,%xmm1 + DB 69,15,40,234 ; movaps %xmm10,%xmm13 + DB 102,68,15,56,20,233 ; blendvps %xmm0,%xmm1,%xmm13 + DB 65,15,40,194 ; movaps %xmm10,%xmm0 + DB 65,15,194,198,1 ; cmpltps %xmm14,%xmm0 + DB 65,15,40,200 ; movaps %xmm8,%xmm1 + DB 65,15,88,202 ; addps %xmm10,%xmm1 + DB 102,68,15,56,20,233 ; blendvps %xmm0,%xmm1,%xmm13 + DB 68,15,40,243 ; movaps %xmm3,%xmm14 + DB 69,15,92,245 ; subps %xmm13,%xmm14 + DB 65,15,40,229 ; movaps %xmm13,%xmm4 + DB 69,15,40,253 ; movaps %xmm13,%xmm15 + DB 68,15,194,235,1 ; cmpltps %xmm3,%xmm13 + DB 68,15,89,246 ; mulps %xmm6,%xmm14 + DB 69,15,88,241 ; addps %xmm9,%xmm14 + DB 65,15,40,201 ; movaps %xmm9,%xmm1 + DB 65,15,40,197 ; movaps %xmm13,%xmm0 + DB 102,65,15,56,20,206 ; blendvps %xmm0,%xmm14,%xmm1 + DB 68,15,40,52,36 ; movaps (%rsp),%xmm14 + DB 69,15,194,254,1 ; cmpltps %xmm14,%xmm15 + DB 65,15,40,199 ; movaps %xmm15,%xmm0 + DB 102,15,56,20,207 ; blendvps %xmm0,%xmm7,%xmm1 + DB 15,194,229,1 ; cmpltps %xmm5,%xmm4 + DB 15,40,214 ; movaps %xmm6,%xmm2 + DB 65,15,89,210 ; mulps %xmm10,%xmm2 + DB 65,15,88,209 ; addps %xmm9,%xmm2 + DB 15,40,196 ; movaps %xmm4,%xmm0 + DB 102,15,56,20,202 ; blendvps %xmm0,%xmm2,%xmm1 + DB 65,15,40,196 ; movaps %xmm12,%xmm0 + DB 68,15,40,124,36,16 ; movaps 0x10(%rsp),%xmm15 + DB 102,65,15,56,20,207 ; blendvps %xmm0,%xmm15,%xmm1 + DB 68,15,92,84,36,48 ; subps 0x30(%rsp),%xmm10 + DB 65,15,40,210 ; movaps %xmm10,%xmm2 + DB 65,15,92,208 ; subps %xmm8,%xmm2 + DB 69,15,40,232 ; movaps %xmm8,%xmm13 + DB 69,15,194,194,1 ; cmpltps %xmm10,%xmm8 + DB 65,15,40,226 ; movaps %xmm10,%xmm4 + DB 65,15,40,192 ; movaps %xmm8,%xmm0 + DB 102,15,56,20,226 ; blendvps %xmm0,%xmm2,%xmm4 + DB 65,15,40,194 ; movaps %xmm10,%xmm0 + DB 15,194,68,36,32,1 ; cmpltps 0x20(%rsp),%xmm0 + DB 69,15,88,234 ; addps %xmm10,%xmm13 + DB 102,65,15,56,20,229 ; blendvps %xmm0,%xmm13,%xmm4 + DB 68,15,89,214 ; mulps %xmm6,%xmm10 + DB 15,40,196 ; movaps %xmm4,%xmm0 + DB 15,194,195,1 ; cmpltps %xmm3,%xmm0 + DB 15,92,220 ; subps %xmm4,%xmm3 + DB 15,89,222 ; mulps %xmm6,%xmm3 + DB 69,15,88,209 ; addps %xmm9,%xmm10 + DB 65,15,88,217 ; addps %xmm9,%xmm3 + DB 102,68,15,56,20,203 ; blendvps %xmm0,%xmm3,%xmm9 + DB 15,40,196 ; movaps %xmm4,%xmm0 + DB 65,15,194,198,1 ; cmpltps %xmm14,%xmm0 + DB 102,68,15,56,20,207 ; blendvps %xmm0,%xmm7,%xmm9 + DB 15,40,196 ; movaps %xmm4,%xmm0 + DB 15,194,197,1 ; cmpltps %xmm5,%xmm0 + DB 102,69,15,56,20,202 ; blendvps %xmm0,%xmm10,%xmm9 + DB 65,15,40,196 ; movaps %xmm12,%xmm0 + DB 102,69,15,56,20,207 ; blendvps %xmm0,%xmm15,%xmm9 + DB 72,173 ; lods %ds:(%rsi),%rax + DB 65,15,40,195 ; movaps %xmm11,%xmm0 + DB 65,15,40,209 ; movaps %xmm9,%xmm2 + DB 15,40,92,36,64 ; movaps 0x40(%rsp),%xmm3 + DB 15,40,100,36,80 ; movaps 0x50(%rsp),%xmm4 + DB 15,40,108,36,96 ; movaps 0x60(%rsp),%xmm5 + DB 15,40,116,36,112 ; movaps 0x70(%rsp),%xmm6 + DB 15,40,188,36,128,0,0,0 ; movaps 0x80(%rsp),%xmm7 + DB 72,129,196,152,0,0,0 ; add $0x98,%rsp + DB 255,224 ; jmpq *%rax + PUBLIC _sk_scale_1_float_sse41 _sk_scale_1_float_sse41 LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax @@ -8762,9 +9358,9 @@ _sk_gather_i8_sse41 LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 73,137,192 ; mov %rax,%r8 DB 77,133,192 ; test %r8,%r8 - DB 116,5 ; je 18d8 <_sk_gather_i8_sse41+0xf> + DB 116,5 ; je 1cdd <_sk_gather_i8_sse41+0xf> DB 76,137,192 ; mov %r8,%rax - DB 235,2 ; jmp 18da <_sk_gather_i8_sse41+0x11> + DB 235,2 ; jmp 1cdf <_sk_gather_i8_sse41+0x11> DB 72,173 ; lods %ds:(%rsi),%rax DB 76,139,16 ; mov (%rax),%r10 DB 243,15,91,201 ; cvttps2dq %xmm1,%xmm1 @@ -9811,7 +10407,7 @@ _sk_linear_gradient_sse41 LABEL PROC DB 69,15,198,237,0 ; shufps $0x0,%xmm13,%xmm13 DB 72,139,8 ; mov (%rax),%rcx DB 72,133,201 ; test %rcx,%rcx - DB 15,132,4,1,0,0 ; je 2a4c <_sk_linear_gradient_sse41+0x13e> + DB 15,132,4,1,0,0 ; je 2e51 <_sk_linear_gradient_sse41+0x13e> DB 72,131,236,88 ; sub $0x58,%rsp DB 15,41,36,36 ; movaps %xmm4,(%rsp) DB 15,41,108,36,16 ; movaps %xmm5,0x10(%rsp) @@ -9862,13 +10458,13 @@ _sk_linear_gradient_sse41 LABEL PROC DB 15,40,196 ; movaps %xmm4,%xmm0 DB 72,131,192,36 ; add $0x24,%rax DB 72,255,201 ; dec %rcx - DB 15,133,65,255,255,255 ; jne 2974 <_sk_linear_gradient_sse41+0x66> + DB 15,133,65,255,255,255 ; jne 2d79 <_sk_linear_gradient_sse41+0x66> DB 15,40,124,36,48 ; movaps 0x30(%rsp),%xmm7 DB 15,40,116,36,32 ; movaps 0x20(%rsp),%xmm6 DB 15,40,108,36,16 ; movaps 0x10(%rsp),%xmm5 DB 15,40,36,36 ; movaps (%rsp),%xmm4 DB 72,131,196,88 ; add $0x58,%rsp - DB 235,13 ; jmp 2a59 <_sk_linear_gradient_sse41+0x14b> + DB 235,13 ; jmp 2e5e <_sk_linear_gradient_sse41+0x14b> DB 15,87,201 ; xorps %xmm1,%xmm1 DB 15,87,210 ; xorps %xmm2,%xmm2 DB 15,87,219 ; xorps %xmm3,%xmm3 @@ -11263,6 +11859,258 @@ _sk_to_2dot2_sse2 LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 255,224 ; jmpq *%rax +PUBLIC _sk_rgb_to_hsl_sse2 +_sk_rgb_to_hsl_sse2 LABEL PROC + DB 68,15,40,201 ; movaps %xmm1,%xmm9 + DB 68,15,40,192 ; movaps %xmm0,%xmm8 + DB 69,15,40,208 ; movaps %xmm8,%xmm10 + DB 69,15,95,209 ; maxps %xmm9,%xmm10 + DB 68,15,95,210 ; maxps %xmm2,%xmm10 + DB 69,15,40,216 ; movaps %xmm8,%xmm11 + DB 69,15,93,217 ; minps %xmm9,%xmm11 + DB 68,15,93,218 ; minps %xmm2,%xmm11 + DB 65,15,40,202 ; movaps %xmm10,%xmm1 + DB 65,15,92,203 ; subps %xmm11,%xmm1 + DB 184,0,0,128,63 ; mov $0x3f800000,%eax + DB 102,68,15,110,224 ; movd %eax,%xmm12 + DB 69,15,198,228,0 ; shufps $0x0,%xmm12,%xmm12 + DB 68,15,94,225 ; divps %xmm1,%xmm12 + DB 65,184,171,170,42,62 ; mov $0x3e2aaaab,%r8d + DB 65,15,40,194 ; movaps %xmm10,%xmm0 + DB 65,15,194,192,0 ; cmpeqps %xmm8,%xmm0 + DB 69,15,40,241 ; movaps %xmm9,%xmm14 + DB 68,15,194,242,1 ; cmpltps %xmm2,%xmm14 + DB 185,0,0,192,64 ; mov $0x40c00000,%ecx + DB 102,68,15,110,233 ; movd %ecx,%xmm13 + DB 69,15,198,237,0 ; shufps $0x0,%xmm13,%xmm13 + DB 69,15,84,238 ; andps %xmm14,%xmm13 + DB 69,15,40,241 ; movaps %xmm9,%xmm14 + DB 68,15,92,242 ; subps %xmm2,%xmm14 + DB 69,15,89,244 ; mulps %xmm12,%xmm14 + DB 69,15,88,238 ; addps %xmm14,%xmm13 + DB 69,15,40,242 ; movaps %xmm10,%xmm14 + DB 69,15,194,241,0 ; cmpeqps %xmm9,%xmm14 + DB 65,15,92,208 ; subps %xmm8,%xmm2 + DB 69,15,92,193 ; subps %xmm9,%xmm8 + DB 65,15,89,212 ; mulps %xmm12,%xmm2 + DB 185,0,0,0,64 ; mov $0x40000000,%ecx + DB 69,15,89,196 ; mulps %xmm12,%xmm8 + DB 184,0,0,128,64 ; mov $0x40800000,%eax + DB 102,68,15,110,200 ; movd %eax,%xmm9 + DB 69,15,198,201,0 ; shufps $0x0,%xmm9,%xmm9 + DB 69,15,88,200 ; addps %xmm8,%xmm9 + DB 102,68,15,110,193 ; movd %ecx,%xmm8 + DB 69,15,198,192,0 ; shufps $0x0,%xmm8,%xmm8 + DB 65,15,88,208 ; addps %xmm8,%xmm2 + DB 65,15,84,214 ; andps %xmm14,%xmm2 + DB 69,15,85,241 ; andnps %xmm9,%xmm14 + DB 68,15,86,242 ; orps %xmm2,%xmm14 + DB 68,15,84,232 ; andps %xmm0,%xmm13 + DB 65,15,85,198 ; andnps %xmm14,%xmm0 + DB 102,65,15,110,208 ; movd %r8d,%xmm2 + DB 15,198,210,0 ; shufps $0x0,%xmm2,%xmm2 + DB 65,15,86,197 ; orps %xmm13,%xmm0 + DB 69,15,40,202 ; movaps %xmm10,%xmm9 + DB 69,15,194,203,4 ; cmpneqps %xmm11,%xmm9 + DB 65,15,84,193 ; andps %xmm9,%xmm0 + DB 15,89,194 ; mulps %xmm2,%xmm0 + DB 69,15,92,194 ; subps %xmm10,%xmm8 + DB 69,15,88,211 ; addps %xmm11,%xmm10 + DB 184,0,0,0,63 ; mov $0x3f000000,%eax + DB 102,68,15,110,224 ; movd %eax,%xmm12 + DB 69,15,198,228,0 ; shufps $0x0,%xmm12,%xmm12 + DB 69,15,92,195 ; subps %xmm11,%xmm8 + DB 65,15,40,210 ; movaps %xmm10,%xmm2 + DB 65,15,89,212 ; mulps %xmm12,%xmm2 + DB 68,15,194,226,1 ; cmpltps %xmm2,%xmm12 + DB 69,15,84,196 ; andps %xmm12,%xmm8 + DB 69,15,85,226 ; andnps %xmm10,%xmm12 + DB 69,15,86,224 ; orps %xmm8,%xmm12 + DB 65,15,94,204 ; divps %xmm12,%xmm1 + DB 65,15,84,201 ; andps %xmm9,%xmm1 + DB 72,173 ; lods %ds:(%rsi),%rax + DB 255,224 ; jmpq *%rax + +PUBLIC _sk_hsl_to_rgb_sse2 +_sk_hsl_to_rgb_sse2 LABEL PROC + DB 72,131,236,104 ; sub $0x68,%rsp + DB 15,41,124,36,80 ; movaps %xmm7,0x50(%rsp) + DB 15,41,116,36,64 ; movaps %xmm6,0x40(%rsp) + DB 15,41,108,36,48 ; movaps %xmm5,0x30(%rsp) + DB 15,41,100,36,32 ; movaps %xmm4,0x20(%rsp) + DB 15,41,92,36,16 ; movaps %xmm3,0x10(%rsp) + DB 68,15,40,210 ; movaps %xmm2,%xmm10 + DB 15,40,209 ; movaps %xmm1,%xmm2 + DB 15,40,240 ; movaps %xmm0,%xmm6 + DB 184,0,0,0,63 ; mov $0x3f000000,%eax + DB 102,68,15,110,240 ; movd %eax,%xmm14 + DB 69,15,198,246,0 ; shufps $0x0,%xmm14,%xmm14 + DB 69,15,40,202 ; movaps %xmm10,%xmm9 + DB 69,15,194,206,1 ; cmpltps %xmm14,%xmm9 + DB 184,0,0,128,63 ; mov $0x3f800000,%eax + DB 102,68,15,110,224 ; movd %eax,%xmm12 + DB 69,15,198,228,0 ; shufps $0x0,%xmm12,%xmm12 + DB 65,15,40,196 ; movaps %xmm12,%xmm0 + DB 15,88,194 ; addps %xmm2,%xmm0 + DB 65,15,89,194 ; mulps %xmm10,%xmm0 + DB 15,40,218 ; movaps %xmm2,%xmm3 + DB 69,15,87,219 ; xorps %xmm11,%xmm11 + DB 68,15,194,218,0 ; cmpeqps %xmm2,%xmm11 + DB 65,15,88,210 ; addps %xmm10,%xmm2 + DB 65,15,89,218 ; mulps %xmm10,%xmm3 + DB 15,92,211 ; subps %xmm3,%xmm2 + DB 65,15,84,193 ; andps %xmm9,%xmm0 + DB 68,15,85,202 ; andnps %xmm2,%xmm9 + DB 68,15,86,200 ; orps %xmm0,%xmm9 + DB 184,0,0,0,64 ; mov $0x40000000,%eax + DB 185,171,170,170,62 ; mov $0x3eaaaaab,%ecx + DB 102,68,15,110,193 ; movd %ecx,%xmm8 + DB 69,15,198,192,0 ; shufps $0x0,%xmm8,%xmm8 + DB 68,15,41,4,36 ; movaps %xmm8,(%rsp) + DB 68,15,88,198 ; addps %xmm6,%xmm8 + DB 185,0,0,0,0 ; mov $0x0,%ecx + DB 102,15,110,233 ; movd %ecx,%xmm5 + DB 15,198,237,0 ; shufps $0x0,%xmm5,%xmm5 + DB 65,15,40,196 ; movaps %xmm12,%xmm0 + DB 65,15,194,192,1 ; cmpltps %xmm8,%xmm0 + DB 65,15,40,216 ; movaps %xmm8,%xmm3 + DB 65,15,92,220 ; subps %xmm12,%xmm3 + DB 15,84,216 ; andps %xmm0,%xmm3 + DB 65,15,85,192 ; andnps %xmm8,%xmm0 + DB 15,86,195 ; orps %xmm3,%xmm0 + DB 65,15,40,216 ; movaps %xmm8,%xmm3 + DB 15,194,221,1 ; cmpltps %xmm5,%xmm3 + DB 65,15,40,212 ; movaps %xmm12,%xmm2 + DB 65,15,88,208 ; addps %xmm8,%xmm2 + DB 15,84,211 ; andps %xmm3,%xmm2 + DB 15,85,216 ; andnps %xmm0,%xmm3 + DB 15,86,218 ; orps %xmm2,%xmm3 + DB 102,68,15,110,232 ; movd %eax,%xmm13 + DB 69,15,198,237,0 ; shufps $0x0,%xmm13,%xmm13 + DB 69,15,89,234 ; mulps %xmm10,%xmm13 + DB 69,15,92,233 ; subps %xmm9,%xmm13 + DB 184,171,170,42,62 ; mov $0x3e2aaaab,%eax + DB 65,15,40,193 ; movaps %xmm9,%xmm0 + DB 65,15,92,197 ; subps %xmm13,%xmm0 + DB 185,0,0,192,64 ; mov $0x40c00000,%ecx + DB 102,68,15,110,249 ; movd %ecx,%xmm15 + DB 69,15,198,255,0 ; shufps $0x0,%xmm15,%xmm15 + DB 68,15,89,248 ; mulps %xmm0,%xmm15 + DB 185,171,170,42,63 ; mov $0x3f2aaaab,%ecx + DB 102,15,110,225 ; movd %ecx,%xmm4 + DB 15,198,228,0 ; shufps $0x0,%xmm4,%xmm4 + DB 15,40,212 ; movaps %xmm4,%xmm2 + DB 15,92,211 ; subps %xmm3,%xmm2 + DB 15,40,203 ; movaps %xmm3,%xmm1 + DB 15,40,195 ; movaps %xmm3,%xmm0 + DB 15,194,220,1 ; cmpltps %xmm4,%xmm3 + DB 65,15,89,215 ; mulps %xmm15,%xmm2 + DB 65,15,88,213 ; addps %xmm13,%xmm2 + DB 15,84,211 ; andps %xmm3,%xmm2 + DB 65,15,85,221 ; andnps %xmm13,%xmm3 + DB 15,86,218 ; orps %xmm2,%xmm3 + DB 65,15,194,198,1 ; cmpltps %xmm14,%xmm0 + DB 65,15,40,209 ; movaps %xmm9,%xmm2 + DB 15,84,208 ; andps %xmm0,%xmm2 + DB 15,85,195 ; andnps %xmm3,%xmm0 + DB 15,86,194 ; orps %xmm2,%xmm0 + DB 102,15,110,248 ; movd %eax,%xmm7 + DB 15,198,255,0 ; shufps $0x0,%xmm7,%xmm7 + DB 15,194,207,1 ; cmpltps %xmm7,%xmm1 + DB 69,15,89,199 ; mulps %xmm15,%xmm8 + DB 69,15,88,197 ; addps %xmm13,%xmm8 + DB 68,15,84,193 ; andps %xmm1,%xmm8 + DB 15,85,200 ; andnps %xmm0,%xmm1 + DB 65,15,86,200 ; orps %xmm8,%xmm1 + DB 69,15,40,195 ; movaps %xmm11,%xmm8 + DB 68,15,85,193 ; andnps %xmm1,%xmm8 + DB 65,15,40,196 ; movaps %xmm12,%xmm0 + DB 15,194,198,1 ; cmpltps %xmm6,%xmm0 + DB 15,40,206 ; movaps %xmm6,%xmm1 + DB 65,15,92,204 ; subps %xmm12,%xmm1 + DB 15,84,200 ; andps %xmm0,%xmm1 + DB 15,85,198 ; andnps %xmm6,%xmm0 + DB 15,86,193 ; orps %xmm1,%xmm0 + DB 15,40,206 ; movaps %xmm6,%xmm1 + DB 15,194,205,1 ; cmpltps %xmm5,%xmm1 + DB 65,15,40,212 ; movaps %xmm12,%xmm2 + DB 15,88,214 ; addps %xmm6,%xmm2 + DB 15,84,209 ; andps %xmm1,%xmm2 + DB 15,85,200 ; andnps %xmm0,%xmm1 + DB 15,86,202 ; orps %xmm2,%xmm1 + DB 15,40,196 ; movaps %xmm4,%xmm0 + DB 15,92,193 ; subps %xmm1,%xmm0 + DB 15,40,217 ; movaps %xmm1,%xmm3 + DB 15,40,209 ; movaps %xmm1,%xmm2 + DB 15,194,204,1 ; cmpltps %xmm4,%xmm1 + DB 65,15,89,199 ; mulps %xmm15,%xmm0 + DB 65,15,88,197 ; addps %xmm13,%xmm0 + DB 15,84,193 ; andps %xmm1,%xmm0 + DB 65,15,85,205 ; andnps %xmm13,%xmm1 + DB 15,86,200 ; orps %xmm0,%xmm1 + DB 65,15,194,214,1 ; cmpltps %xmm14,%xmm2 + DB 65,15,40,193 ; movaps %xmm9,%xmm0 + DB 15,84,194 ; andps %xmm2,%xmm0 + DB 15,85,209 ; andnps %xmm1,%xmm2 + DB 15,86,208 ; orps %xmm0,%xmm2 + DB 15,194,223,1 ; cmpltps %xmm7,%xmm3 + DB 65,15,40,199 ; movaps %xmm15,%xmm0 + DB 15,89,198 ; mulps %xmm6,%xmm0 + DB 65,15,88,197 ; addps %xmm13,%xmm0 + DB 15,84,195 ; andps %xmm3,%xmm0 + DB 15,85,218 ; andnps %xmm2,%xmm3 + DB 15,86,216 ; orps %xmm0,%xmm3 + DB 65,15,40,203 ; movaps %xmm11,%xmm1 + DB 15,85,203 ; andnps %xmm3,%xmm1 + DB 15,92,52,36 ; subps (%rsp),%xmm6 + DB 15,40,198 ; movaps %xmm6,%xmm0 + DB 15,194,197,1 ; cmpltps %xmm5,%xmm0 + DB 15,40,214 ; movaps %xmm6,%xmm2 + DB 65,15,92,212 ; subps %xmm12,%xmm2 + DB 65,15,40,220 ; movaps %xmm12,%xmm3 + DB 68,15,194,230,1 ; cmpltps %xmm6,%xmm12 + DB 65,15,84,212 ; andps %xmm12,%xmm2 + DB 68,15,85,230 ; andnps %xmm6,%xmm12 + DB 68,15,86,226 ; orps %xmm2,%xmm12 + DB 15,88,222 ; addps %xmm6,%xmm3 + DB 15,84,216 ; andps %xmm0,%xmm3 + DB 65,15,85,196 ; andnps %xmm12,%xmm0 + DB 15,86,195 ; orps %xmm3,%xmm0 + DB 15,40,232 ; movaps %xmm0,%xmm5 + DB 15,194,239,1 ; cmpltps %xmm7,%xmm5 + DB 15,40,208 ; movaps %xmm0,%xmm2 + DB 15,194,212,1 ; cmpltps %xmm4,%xmm2 + DB 15,92,224 ; subps %xmm0,%xmm4 + DB 65,15,194,198,1 ; cmpltps %xmm14,%xmm0 + DB 65,15,89,247 ; mulps %xmm15,%xmm6 + DB 65,15,89,231 ; mulps %xmm15,%xmm4 + DB 65,15,88,245 ; addps %xmm13,%xmm6 + DB 65,15,88,229 ; addps %xmm13,%xmm4 + DB 15,84,226 ; andps %xmm2,%xmm4 + DB 65,15,85,213 ; andnps %xmm13,%xmm2 + DB 15,86,212 ; orps %xmm4,%xmm2 + DB 68,15,84,200 ; andps %xmm0,%xmm9 + DB 15,85,194 ; andnps %xmm2,%xmm0 + DB 65,15,86,193 ; orps %xmm9,%xmm0 + DB 15,84,245 ; andps %xmm5,%xmm6 + DB 15,85,232 ; andnps %xmm0,%xmm5 + DB 15,86,238 ; orps %xmm6,%xmm5 + DB 69,15,84,211 ; andps %xmm11,%xmm10 + DB 68,15,85,221 ; andnps %xmm5,%xmm11 + DB 69,15,86,194 ; orps %xmm10,%xmm8 + DB 65,15,86,202 ; orps %xmm10,%xmm1 + DB 69,15,86,211 ; orps %xmm11,%xmm10 + DB 72,173 ; lods %ds:(%rsi),%rax + DB 65,15,40,192 ; movaps %xmm8,%xmm0 + DB 65,15,40,210 ; movaps %xmm10,%xmm2 + DB 15,40,92,36,16 ; movaps 0x10(%rsp),%xmm3 + DB 15,40,100,36,32 ; movaps 0x20(%rsp),%xmm4 + DB 15,40,108,36,48 ; movaps 0x30(%rsp),%xmm5 + DB 15,40,116,36,64 ; movaps 0x40(%rsp),%xmm6 + DB 15,40,124,36,80 ; movaps 0x50(%rsp),%xmm7 + DB 72,131,196,104 ; add $0x68,%rsp + DB 255,224 ; jmpq *%rax + PUBLIC _sk_scale_1_float_sse2 _sk_scale_1_float_sse2 LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax @@ -11825,9 +12673,9 @@ _sk_gather_i8_sse2 LABEL PROC DB 72,173 ; lods %ds:(%rsi),%rax DB 73,137,192 ; mov %rax,%r8 DB 77,133,192 ; test %r8,%r8 - DB 116,5 ; je 1a49 <_sk_gather_i8_sse2+0xf> + DB 116,5 ; je 1e1a <_sk_gather_i8_sse2+0xf> DB 76,137,192 ; mov %r8,%rax - DB 235,2 ; jmp 1a4b <_sk_gather_i8_sse2+0x11> + DB 235,2 ; jmp 1e1c <_sk_gather_i8_sse2+0x11> DB 72,173 ; lods %ds:(%rsi),%rax DB 76,139,16 ; mov (%rax),%r10 DB 243,15,91,201 ; cvttps2dq %xmm1,%xmm1 @@ -12976,7 +13824,7 @@ _sk_linear_gradient_sse2 LABEL PROC DB 69,15,198,228,0 ; shufps $0x0,%xmm12,%xmm12 DB 72,139,8 ; mov (%rax),%rcx DB 72,133,201 ; test %rcx,%rcx - DB 15,132,15,1,0,0 ; je 2d74 <_sk_linear_gradient_sse2+0x149> + DB 15,132,15,1,0,0 ; je 3145 <_sk_linear_gradient_sse2+0x149> DB 72,139,64,8 ; mov 0x8(%rax),%rax DB 72,131,192,32 ; add $0x20,%rax DB 69,15,87,192 ; xorps %xmm8,%xmm8 @@ -13037,8 +13885,8 @@ _sk_linear_gradient_sse2 LABEL PROC DB 69,15,86,231 ; orps %xmm15,%xmm12 DB 72,131,192,36 ; add $0x24,%rax DB 72,255,201 ; dec %rcx - DB 15,133,8,255,255,255 ; jne 2c7a <_sk_linear_gradient_sse2+0x4f> - DB 235,13 ; jmp 2d81 <_sk_linear_gradient_sse2+0x156> + DB 15,133,8,255,255,255 ; jne 304b <_sk_linear_gradient_sse2+0x4f> + DB 235,13 ; jmp 3152 <_sk_linear_gradient_sse2+0x156> DB 15,87,201 ; xorps %xmm1,%xmm1 DB 15,87,210 ; xorps %xmm2,%xmm2 DB 15,87,219 ; xorps %xmm3,%xmm3 diff --git a/src/jumper/SkJumper_stages.cpp b/src/jumper/SkJumper_stages.cpp index a97a7ed13f..a4f3242ecd 100644 --- a/src/jumper/SkJumper_stages.cpp +++ b/src/jumper/SkJumper_stages.cpp @@ -512,6 +512,50 @@ STAGE(to_2dot2) { b = fn(b); } +STAGE(rgb_to_hsl) { + F mx = max(max(r,g), b), + mn = min(min(r,g), b), + d = mx - mn, + d_rcp = 1.0_f / d; + + F h = C(1/6.0f) * + if_then_else(mx == mn, 0, + if_then_else(mx == r, (g-b)*d_rcp + if_then_else(g < b, 6.0_f, 0), + if_then_else(mx == g, (b-r)*d_rcp + 2.0_f, + (r-g)*d_rcp + 4.0_f))); + + F l = (mx + mn) * 0.5_f; + F s = if_then_else(mx == mn, 0, + d / if_then_else(l > 0.5_f, 2.0_f-mx-mn, mx+mn)); + + r = h; + g = s; + b = l; +} +STAGE(hsl_to_rgb) { + F h = r, + s = g, + l = b; + + F q = if_then_else(l < 0.5_f, l*(1.0_f + s), l + s - l*s), + p = 2.0_f*l - q; + + auto hue_to_rgb = [&](F t) { + F t2 = if_then_else(t < 0.0_f, t + 1.0_f, + if_then_else(t > 1.0_f, t - 1.0_f, + t)); + + return if_then_else(t2 < C(1/6.0f), p + (q-p)*6.0_f*t, + if_then_else(t2 < C(3/6.0f), q, + if_then_else(t2 < C(4/6.0f), p + (q-p)*6.0_f*(C(4/6.0f) - t2), + p))); + }; + + r = if_then_else(s == 0, l, hue_to_rgb(h + C(1/3.0f))); + g = if_then_else(s == 0, l, hue_to_rgb(h )); + b = if_then_else(s == 0, l, hue_to_rgb(h - C(1/3.0f))); +} + STAGE(scale_1_float) { auto c = *(const float*)ctx; |