aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/jumper/SkJumper_generated.S
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2017-03-03 14:05:32 -0500
committerGravatar Mike Klein <mtklein@chromium.org>2017-03-03 19:45:25 +0000
commit94fc0fe016bbfeb097c829df513673d4fcbb38b3 (patch)
treedf5e0995f72fe5a582af0bc5833eee139349aab6 /src/jumper/SkJumper_generated.S
parent374a0178cf13595f95c224063e8e746789a4dc02 (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.S163
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