File: unpack_bool_avx2_amd64.s

package info (click to toggle)
golang-github-apache-arrow-go 18.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 32,200 kB
  • sloc: asm: 477,547; ansic: 5,369; cpp: 759; sh: 585; makefile: 319; python: 190; sed: 5
file content (88 lines) | stat: -rw-r--r-- 3,133 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//+build !noasm !appengine
// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT

TEXT ยท_bytes_to_bools_avx2(SB), $0-32

	MOVQ in+0(FP), DI
	MOVQ len+8(FP), SI
	MOVQ out+16(FP), DX
	MOVQ outlen+24(FP), CX

	WORD $0xf685             // test    esi, esi
	JLE  LBB0_5
	WORD $0x8941; BYTE $0xf0 // mov    r8d, esi
	LONG $0x03e0c149         // shl    r8, 3
	WORD $0x3145; BYTE $0xd2 // xor    r10d, r10d
	JMP  LBB0_2

LBB0_4:
	LONG $0x08c28349         // add    r10, 8
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x394d; BYTE $0xd0 // cmp    r8, r10
	JE   LBB0_5

LBB0_2:
	WORD $0x3941; BYTE $0xca // cmp    r10d, ecx
	JGE  LBB0_4
	WORD $0x8945; BYTE $0xd1 // mov    r9d, r10d
	WORD $0xb60f; BYTE $0x07 // movzx    eax, byte [rdi]
	WORD $0x0124             // and    al, 1
	LONG $0x0a048842         // mov    byte [rdx + r9], al
	WORD $0x894c; BYTE $0xce // mov    rsi, r9
	LONG $0x01ce8348         // or    rsi, 1
	WORD $0xce39             // cmp    esi, ecx
	JGE  LBB0_4
	WORD $0xb60f; BYTE $0x07 // movzx    eax, byte [rdi]
	WORD $0xe8d0             // shr    al, 1
	WORD $0x0124             // and    al, 1
	WORD $0x0488; BYTE $0x32 // mov    byte [rdx + rsi], al
	WORD $0x894c; BYTE $0xce // mov    rsi, r9
	LONG $0x02ce8348         // or    rsi, 2
	WORD $0xce39             // cmp    esi, ecx
	JGE  LBB0_4
	WORD $0xb60f; BYTE $0x07 // movzx    eax, byte [rdi]
	WORD $0xe8c0; BYTE $0x02 // shr    al, 2
	WORD $0x0124             // and    al, 1
	WORD $0x0488; BYTE $0x32 // mov    byte [rdx + rsi], al
	WORD $0x894c; BYTE $0xce // mov    rsi, r9
	LONG $0x03ce8348         // or    rsi, 3
	WORD $0xce39             // cmp    esi, ecx
	JGE  LBB0_4
	WORD $0xb60f; BYTE $0x07 // movzx    eax, byte [rdi]
	WORD $0xe8c0; BYTE $0x03 // shr    al, 3
	WORD $0x0124             // and    al, 1
	WORD $0x0488; BYTE $0x32 // mov    byte [rdx + rsi], al
	WORD $0x894c; BYTE $0xce // mov    rsi, r9
	LONG $0x04ce8348         // or    rsi, 4
	WORD $0xce39             // cmp    esi, ecx
	JGE  LBB0_4
	WORD $0xb60f; BYTE $0x07 // movzx    eax, byte [rdi]
	WORD $0xe8c0; BYTE $0x04 // shr    al, 4
	WORD $0x0124             // and    al, 1
	WORD $0x0488; BYTE $0x32 // mov    byte [rdx + rsi], al
	WORD $0x894c; BYTE $0xce // mov    rsi, r9
	LONG $0x05ce8348         // or    rsi, 5
	WORD $0xce39             // cmp    esi, ecx
	JGE  LBB0_4
	WORD $0xb60f; BYTE $0x07 // movzx    eax, byte [rdi]
	WORD $0xe8c0; BYTE $0x05 // shr    al, 5
	WORD $0x0124             // and    al, 1
	WORD $0x0488; BYTE $0x32 // mov    byte [rdx + rsi], al
	WORD $0x894c; BYTE $0xce // mov    rsi, r9
	LONG $0x06ce8348         // or    rsi, 6
	WORD $0xce39             // cmp    esi, ecx
	JGE  LBB0_4
	WORD $0xb60f; BYTE $0x07 // movzx    eax, byte [rdi]
	WORD $0xe8c0; BYTE $0x06 // shr    al, 6
	WORD $0x0124             // and    al, 1
	WORD $0x0488; BYTE $0x32 // mov    byte [rdx + rsi], al
	LONG $0x07c98349         // or    r9, 7
	WORD $0x3941; BYTE $0xc9 // cmp    r9d, ecx
	JGE  LBB0_4
	WORD $0xb60f; BYTE $0x07 // movzx    eax, byte [rdi]
	WORD $0xe8c0; BYTE $0x07 // shr    al, 7
	LONG $0x0a048842         // mov    byte [rdx + r9], al
	JMP  LBB0_4

LBB0_5:
	RET