]>
Commit | Line | Data |
---|---|---|
1d09f67e TL |
1 | //+build !noasm !appengine |
2 | // AUTO-GENERATED BY C2GOASM -- DO NOT EDIT | |
3 | ||
4 | TEXT ยท_memset_avx2(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 $0x80fe8148; WORD $0x0000; BYTE $0x00 // cmp rsi, 128 | |
14 | JB LBB0_12 | |
15 | WORD $0x8949; BYTE $0xf0 // mov r8, rsi | |
16 | LONG $0x80e08349 // and r8, -128 | |
17 | WORD $0x8949; BYTE $0xf2 // mov r10, rsi | |
18 | LONG $0x80e28349 // and r10, -128 | |
19 | JE LBB0_12 | |
20 | LONG $0xc26ef9c5 // vmovd xmm0, edx | |
21 | LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 | |
22 | LONG $0x804a8d4d // lea r9, [r10 - 128] | |
23 | WORD $0x8944; BYTE $0xc8 // mov eax, r9d | |
24 | WORD $0xe8c1; BYTE $0x07 // shr eax, 7 | |
25 | WORD $0xc0ff // inc eax | |
26 | LONG $0x03e08348 // and rax, 3 | |
27 | JE LBB0_4 | |
28 | WORD $0xf748; BYTE $0xd8 // neg rax | |
29 | WORD $0xc931 // xor ecx, ecx | |
30 | ||
31 | LBB0_6: | |
32 | LONG $0x047ffec5; BYTE $0x0f // vmovdqu yword [rdi + rcx], ymm0 | |
33 | LONG $0x447ffec5; WORD $0x200f // vmovdqu yword [rdi + rcx + 32], ymm0 | |
34 | LONG $0x447ffec5; WORD $0x400f // vmovdqu yword [rdi + rcx + 64], ymm0 | |
35 | LONG $0x447ffec5; WORD $0x600f // vmovdqu yword [rdi + rcx + 96], ymm0 | |
36 | LONG $0x80e98348 // sub rcx, -128 | |
37 | WORD $0xff48; BYTE $0xc0 // inc rax | |
38 | JNE LBB0_6 | |
39 | JMP LBB0_7 | |
40 | ||
41 | LBB0_4: | |
42 | WORD $0xc931 // xor ecx, ecx | |
43 | ||
44 | LBB0_7: | |
45 | LONG $0x80f98149; WORD $0x0001; BYTE $0x00 // cmp r9, 384 | |
46 | JB LBB0_10 | |
47 | WORD $0x894c; BYTE $0xd0 // mov rax, r10 | |
48 | WORD $0x2948; BYTE $0xc8 // sub rax, rcx | |
49 | QUAD $0x000001e00f8c8d48 // lea rcx, [rdi + rcx + 480] | |
50 | ||
51 | LBB0_9: | |
52 | QUAD $0xfffffe20817ffec5 // vmovdqu yword [rcx - 480], ymm0 | |
53 | QUAD $0xfffffe40817ffec5 // vmovdqu yword [rcx - 448], ymm0 | |
54 | QUAD $0xfffffe60817ffec5 // vmovdqu yword [rcx - 416], ymm0 | |
55 | QUAD $0xfffffe80817ffec5 // vmovdqu yword [rcx - 384], ymm0 | |
56 | QUAD $0xfffffea0817ffec5 // vmovdqu yword [rcx - 352], ymm0 | |
57 | QUAD $0xfffffec0817ffec5 // vmovdqu yword [rcx - 320], ymm0 | |
58 | QUAD $0xfffffee0817ffec5 // vmovdqu yword [rcx - 288], ymm0 | |
59 | QUAD $0xffffff00817ffec5 // vmovdqu yword [rcx - 256], ymm0 | |
60 | QUAD $0xffffff20817ffec5 // vmovdqu yword [rcx - 224], ymm0 | |
61 | QUAD $0xffffff40817ffec5 // vmovdqu yword [rcx - 192], ymm0 | |
62 | QUAD $0xffffff60817ffec5 // vmovdqu yword [rcx - 160], ymm0 | |
63 | LONG $0x417ffec5; BYTE $0x80 // vmovdqu yword [rcx - 128], ymm0 | |
64 | LONG $0x417ffec5; BYTE $0xa0 // vmovdqu yword [rcx - 96], ymm0 | |
65 | LONG $0x417ffec5; BYTE $0xc0 // vmovdqu yword [rcx - 64], ymm0 | |
66 | LONG $0x417ffec5; BYTE $0xe0 // vmovdqu yword [rcx - 32], ymm0 | |
67 | LONG $0x017ffec5 // vmovdqu yword [rcx], ymm0 | |
68 | LONG $0x00c18148; WORD $0x0002; BYTE $0x00 // add rcx, 512 | |
69 | LONG $0xfe000548; WORD $0xffff // add rax, -512 | |
70 | JNE LBB0_9 | |
71 | ||
72 | LBB0_10: | |
73 | WORD $0x3949; BYTE $0xf2 // cmp r10, rsi | |
74 | JE LBB0_13 | |
75 | WORD $0x014c; BYTE $0xc7 // add rdi, r8 | |
76 | ||
77 | LBB0_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 | ||
83 | LBB0_13: | |
84 | VZEROUPPER | |
85 | RET |