diff options
author | Mike Klein <mtklein@chromium.org> | 2017-03-03 14:05:32 -0500 |
---|---|---|
committer | Mike Klein <mtklein@chromium.org> | 2017-03-03 19:45:25 +0000 |
commit | 94fc0fe016bbfeb097c829df513673d4fcbb38b3 (patch) | |
tree | df5e0995f72fe5a582af0bc5833eee139349aab6 /src/jumper/SkJumper_generated.S | |
parent | 374a0178cf13595f95c224063e8e746789a4dc02 (diff) |
SkJumper: store_f32
Change-Id: I4bc6d1a8787c540fd1a29274650d34392e56651c
Reviewed-on: https://skia-review.googlesource.com/9223
Reviewed-by: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/jumper/SkJumper_generated.S')
-rw-r--r-- | src/jumper/SkJumper_generated.S | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/src/jumper/SkJumper_generated.S b/src/jumper/SkJumper_generated.S index 776710a9e2..34aeab47d4 100644 --- a/src/jumper/SkJumper_generated.S +++ b/src/jumper/SkJumper_generated.S @@ -679,6 +679,16 @@ _sk_store_f16_aarch64: .long 0x91004021 // add x1, x1, #0x10 .long 0xd61f0060 // br x3 +.globl _sk_store_f32_aarch64 +_sk_store_f32_aarch64: + .long 0xf9400028 // ldr x8, [x1] + .long 0xf9400108 // ldr x8, [x8] + .long 0x8b001108 // add x8, x8, x0, lsl #4 + .long 0x4c000900 // st4 {v0.4s-v3.4s}, [x8] + .long 0xf9400423 // ldr x3, [x1,#8] + .long 0x91004021 // add x1, x1, #0x10 + .long 0xd61f0060 // br x3 + .globl _sk_clamp_x_aarch64 _sk_clamp_x_aarch64: .long 0xa8c10c28 // ldp x8, x3, [x1],#16 @@ -1564,6 +1574,17 @@ _sk_store_f16_vfp4: .long 0xe1a01003 // mov r1, r3 .long 0xe12fff1c // bx ip +.globl _sk_store_f32_vfp4 +_sk_store_f32_vfp4: + .long 0xe5913000 // ldr r3, [r1] + .long 0xe5933000 // ldr r3, [r3] + .long 0xe0833200 // add r3, r3, r0, lsl #4 + .long 0xf403008f // vst4.32 {d0-d3}, [r3] + .long 0xe2813008 // add r3, r1, #8 + .long 0xe591c004 // ldr ip, [r1, #4] + .long 0xe1a01003 // mov r1, r3 + .long 0xe12fff1c // bx ip + .globl _sk_clamp_x_vfp4 _sk_clamp_x_vfp4: .long 0xe8911008 // ldm r1, {r3, ip} @@ -2744,6 +2765,50 @@ _sk_store_f16_hsw: .byte 197,121,214,68,248,48 // vmovq %xmm8,0x30(%rax,%rdi,8) .byte 235,181 // jmp be4 <_sk_store_f16_hsw+0x61> +.globl _sk_store_f32_hsw +_sk_store_f32_hsw: + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 76,139,0 // mov (%rax),%r8 + .byte 72,141,4,189,0,0,0,0 // lea 0x0(,%rdi,4),%rax + .byte 197,124,20,193 // vunpcklps %ymm1,%ymm0,%ymm8 + .byte 197,124,21,217 // vunpckhps %ymm1,%ymm0,%ymm11 + .byte 197,108,20,203 // vunpcklps %ymm3,%ymm2,%ymm9 + .byte 197,108,21,227 // vunpckhps %ymm3,%ymm2,%ymm12 + .byte 196,65,61,20,209 // vunpcklpd %ymm9,%ymm8,%ymm10 + .byte 196,65,61,21,201 // vunpckhpd %ymm9,%ymm8,%ymm9 + .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 c9c <_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 + .byte 196,67,61,6,195,49 // vperm2f128 $0x31,%ymm11,%ymm8,%ymm8 + .byte 196,65,125,17,36,128 // vmovupd %ymm12,(%r8,%rax,4) + .byte 196,65,125,17,108,128,32 // vmovupd %ymm13,0x20(%r8,%rax,4) + .byte 196,65,125,17,76,128,64 // vmovupd %ymm9,0x40(%r8,%rax,4) + .byte 196,65,125,17,68,128,96 // vmovupd %ymm8,0x60(%r8,%rax,4) + .byte 72,173 // lods %ds:(%rsi),%rax + .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 c98 <_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 c98 <_sk_store_f32_hsw+0x69> + .byte 196,65,121,17,68,128,32 // vmovupd %xmm8,0x20(%r8,%rax,4) + .byte 116,218 // je c98 <_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 c98 <_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 c98 <_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 c98 <_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 c98 <_sk_store_f32_hsw+0x69> + .globl _sk_clamp_x_hsw _sk_clamp_x_hsw: .byte 72,173 // lods %ds:(%rsi),%rax @@ -4158,6 +4223,50 @@ _sk_store_f16_avx: .byte 197,121,214,68,248,48 // vmovq %xmm8,0x30(%rax,%rdi,8) .byte 235,181 // jmp 115f <_sk_store_f16_avx+0xbf> +.globl _sk_store_f32_avx +_sk_store_f32_avx: + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 76,139,0 // mov (%rax),%r8 + .byte 72,141,4,189,0,0,0,0 // lea 0x0(,%rdi,4),%rax + .byte 197,124,20,193 // vunpcklps %ymm1,%ymm0,%ymm8 + .byte 197,124,21,217 // vunpckhps %ymm1,%ymm0,%ymm11 + .byte 197,108,20,203 // vunpcklps %ymm3,%ymm2,%ymm9 + .byte 197,108,21,227 // vunpckhps %ymm3,%ymm2,%ymm12 + .byte 196,65,61,20,209 // vunpcklpd %ymm9,%ymm8,%ymm10 + .byte 196,65,61,21,201 // vunpckhpd %ymm9,%ymm8,%ymm9 + .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 1217 <_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 + .byte 196,67,61,6,195,49 // vperm2f128 $0x31,%ymm11,%ymm8,%ymm8 + .byte 196,65,125,17,36,128 // vmovupd %ymm12,(%r8,%rax,4) + .byte 196,65,125,17,108,128,32 // vmovupd %ymm13,0x20(%r8,%rax,4) + .byte 196,65,125,17,76,128,64 // vmovupd %ymm9,0x40(%r8,%rax,4) + .byte 196,65,125,17,68,128,96 // vmovupd %ymm8,0x60(%r8,%rax,4) + .byte 72,173 // lods %ds:(%rsi),%rax + .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 1213 <_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 1213 <_sk_store_f32_avx+0x69> + .byte 196,65,121,17,68,128,32 // vmovupd %xmm8,0x20(%r8,%rax,4) + .byte 116,218 // je 1213 <_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 1213 <_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 1213 <_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 1213 <_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 1213 <_sk_store_f32_avx+0x69> + .globl _sk_clamp_x_avx _sk_clamp_x_avx: .byte 72,173 // lods %ds:(%rsi),%rax @@ -5137,6 +5246,33 @@ _sk_store_f16_sse41: .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax +.globl _sk_store_f32_sse41 +_sk_store_f32_sse41: + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 72,139,0 // mov (%rax),%rax + .byte 72,137,249 // mov %rdi,%rcx + .byte 72,193,225,4 // shl $0x4,%rcx + .byte 68,15,40,192 // movaps %xmm0,%xmm8 + .byte 68,15,40,200 // movaps %xmm0,%xmm9 + .byte 68,15,20,201 // unpcklps %xmm1,%xmm9 + .byte 68,15,40,210 // movaps %xmm2,%xmm10 + .byte 68,15,40,218 // movaps %xmm2,%xmm11 + .byte 68,15,20,219 // unpcklps %xmm3,%xmm11 + .byte 68,15,21,193 // unpckhps %xmm1,%xmm8 + .byte 68,15,21,211 // unpckhps %xmm3,%xmm10 + .byte 69,15,40,225 // movaps %xmm9,%xmm12 + .byte 102,69,15,20,227 // unpcklpd %xmm11,%xmm12 + .byte 102,69,15,21,203 // unpckhpd %xmm11,%xmm9 + .byte 69,15,40,216 // movaps %xmm8,%xmm11 + .byte 102,69,15,20,218 // unpcklpd %xmm10,%xmm11 + .byte 102,69,15,21,194 // unpckhpd %xmm10,%xmm8 + .byte 102,68,15,17,36,8 // movupd %xmm12,(%rax,%rcx,1) + .byte 102,68,15,17,76,8,16 // movupd %xmm9,0x10(%rax,%rcx,1) + .byte 102,68,15,17,92,8,32 // movupd %xmm11,0x20(%rax,%rcx,1) + .byte 102,68,15,17,68,8,48 // movupd %xmm8,0x30(%rax,%rcx,1) + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 255,224 // jmpq *%rax + .globl _sk_clamp_x_sse41 _sk_clamp_x_sse41: .byte 72,173 // lods %ds:(%rsi),%rax @@ -6170,6 +6306,33 @@ _sk_store_f16_sse2: .byte 72,173 // lods %ds:(%rsi),%rax .byte 255,224 // jmpq *%rax +.globl _sk_store_f32_sse2 +_sk_store_f32_sse2: + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 72,139,0 // mov (%rax),%rax + .byte 72,137,249 // mov %rdi,%rcx + .byte 72,193,225,4 // shl $0x4,%rcx + .byte 68,15,40,192 // movaps %xmm0,%xmm8 + .byte 68,15,40,200 // movaps %xmm0,%xmm9 + .byte 68,15,20,201 // unpcklps %xmm1,%xmm9 + .byte 68,15,40,210 // movaps %xmm2,%xmm10 + .byte 68,15,40,218 // movaps %xmm2,%xmm11 + .byte 68,15,20,219 // unpcklps %xmm3,%xmm11 + .byte 68,15,21,193 // unpckhps %xmm1,%xmm8 + .byte 68,15,21,211 // unpckhps %xmm3,%xmm10 + .byte 69,15,40,225 // movaps %xmm9,%xmm12 + .byte 102,69,15,20,227 // unpcklpd %xmm11,%xmm12 + .byte 102,69,15,21,203 // unpckhpd %xmm11,%xmm9 + .byte 69,15,40,216 // movaps %xmm8,%xmm11 + .byte 102,69,15,20,218 // unpcklpd %xmm10,%xmm11 + .byte 102,69,15,21,194 // unpckhpd %xmm10,%xmm8 + .byte 102,68,15,17,36,8 // movupd %xmm12,(%rax,%rcx,1) + .byte 102,68,15,17,76,8,16 // movupd %xmm9,0x10(%rax,%rcx,1) + .byte 102,68,15,17,92,8,32 // movupd %xmm11,0x20(%rax,%rcx,1) + .byte 102,68,15,17,68,8,48 // movupd %xmm8,0x30(%rax,%rcx,1) + .byte 72,173 // lods %ds:(%rsi),%rax + .byte 255,224 // jmpq *%rax + .globl _sk_clamp_x_sse2 _sk_clamp_x_sse2: .byte 72,173 // lods %ds:(%rsi),%rax |