]> git.proxmox.com Git - ceph.git/blame - ceph/src/arrow/go/arrow/memory/memory_sse4_amd64.s
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / go / arrow / memory / memory_sse4_amd64.s
CommitLineData
1d09f67e
TL
1//+build !noasm !appengine
2// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT
3
4TEXT ยท_memset_sse4(SB), $0-24
5
6 MOVQ buf+0(FP), DI
7 MOVQ len+8(FP), SI
8 MOVQ c+16(FP), DX
9
10 LONG $0x371c8d4c // lea r11, [rdi + rsi]
11 WORD $0x3949; BYTE $0xfb // cmp r11, rdi
12 JBE LBB0_13
13 LONG $0x20fe8348 // cmp rsi, 32
14 JB LBB0_12
15 WORD $0x8949; BYTE $0xf0 // mov r8, rsi
16 LONG $0xe0e08349 // and r8, -32
17 WORD $0x8949; BYTE $0xf2 // mov r10, rsi
18 LONG $0xe0e28349 // and r10, -32
19 JE LBB0_12
20 WORD $0xb60f; BYTE $0xc2 // movzx eax, dl
21 LONG $0xc06e0f66 // movd xmm0, eax
22 LONG $0xc9ef0f66 // pxor xmm1, xmm1
23 LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1
24 LONG $0xe04a8d4d // lea r9, [r10 - 32]
25 WORD $0x8944; BYTE $0xc9 // mov ecx, r9d
26 WORD $0xe9c1; BYTE $0x05 // shr ecx, 5
27 WORD $0xc1ff // inc ecx
28 LONG $0x07e18348 // and rcx, 7
29 JE LBB0_4
30 WORD $0xf748; BYTE $0xd9 // neg rcx
31 WORD $0xc031 // xor eax, eax
32
33LBB0_6:
34 LONG $0x047f0ff3; BYTE $0x07 // movdqu oword [rdi + rax], xmm0
35 LONG $0x447f0ff3; WORD $0x1007 // movdqu oword [rdi + rax + 16], xmm0
36 LONG $0x20c08348 // add rax, 32
37 WORD $0xff48; BYTE $0xc1 // inc rcx
38 JNE LBB0_6
39 JMP LBB0_7
40
41LBB0_4:
42 WORD $0xc031 // xor eax, eax
43
44LBB0_7:
45 LONG $0xe0f98149; WORD $0x0000; BYTE $0x00 // cmp r9, 224
46 JB LBB0_10
47 WORD $0x894c; BYTE $0xd1 // mov rcx, r10
48 WORD $0x2948; BYTE $0xc1 // sub rcx, rax
49 QUAD $0x000000f007848d48 // lea rax, [rdi + rax + 240]
50
51LBB0_9:
52 QUAD $0xffffff10807f0ff3 // movdqu oword [rax - 240], xmm0
53 QUAD $0xffffff20807f0ff3 // movdqu oword [rax - 224], xmm0
54 QUAD $0xffffff30807f0ff3 // movdqu oword [rax - 208], xmm0
55 QUAD $0xffffff40807f0ff3 // movdqu oword [rax - 192], xmm0
56 QUAD $0xffffff50807f0ff3 // movdqu oword [rax - 176], xmm0
57 QUAD $0xffffff60807f0ff3 // movdqu oword [rax - 160], xmm0
58 QUAD $0xffffff70807f0ff3 // movdqu oword [rax - 144], xmm0
59 LONG $0x407f0ff3; BYTE $0x80 // movdqu oword [rax - 128], xmm0
60 LONG $0x407f0ff3; BYTE $0x90 // movdqu oword [rax - 112], xmm0
61 LONG $0x407f0ff3; BYTE $0xa0 // movdqu oword [rax - 96], xmm0
62 LONG $0x407f0ff3; BYTE $0xb0 // movdqu oword [rax - 80], xmm0
63 LONG $0x407f0ff3; BYTE $0xc0 // movdqu oword [rax - 64], xmm0
64 LONG $0x407f0ff3; BYTE $0xd0 // movdqu oword [rax - 48], xmm0
65 LONG $0x407f0ff3; BYTE $0xe0 // movdqu oword [rax - 32], xmm0
66 LONG $0x407f0ff3; BYTE $0xf0 // movdqu oword [rax - 16], xmm0
67 LONG $0x007f0ff3 // movdqu oword [rax], xmm0
68 LONG $0x01000548; WORD $0x0000 // add rax, 256
69 LONG $0x00c18148; WORD $0xffff; BYTE $0xff // add rcx, -256
70 JNE LBB0_9
71
72LBB0_10:
73 WORD $0x3949; BYTE $0xf2 // cmp r10, rsi
74 JE LBB0_13
75 WORD $0x014c; BYTE $0xc7 // add rdi, r8
76
77LBB0_12:
78 WORD $0x1788 // mov byte [rdi], dl
79 WORD $0xff48; BYTE $0xc7 // inc rdi
80 WORD $0x3949; BYTE $0xfb // cmp r11, rdi
81 JNE LBB0_12
82
83LBB0_13:
84 RET