File: x86-64-bmi.s

package info (click to toggle)
binutils 2.31.1-16
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 309,412 kB
  • sloc: ansic: 1,161,194; asm: 638,508; cpp: 128,829; exp: 68,580; makefile: 55,828; sh: 22,360; yacc: 14,238; lisp: 13,272; perl: 2,111; ada: 1,681; lex: 1,652; pascal: 1,446; cs: 879; sed: 195; python: 154; xml: 95; awk: 25
file content (142 lines) | stat: -rw-r--r-- 2,710 bytes parent folder | download | duplicates (21)
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Check 64bit BMI instructions

	.allow_index_reg
	.text
_start:

# Test for op r16, r/m16
	tzcnt %ax,%bx
	tzcnt (%rcx),%bx
	tzcnt (%rcx),%r15w

# Test for op r32, r32, r/m32
	andn %eax,%ebx,%esi
	andn (%rcx),%ebx,%esi
	andn %r9d,%r15d,%r10d
	andn (%rcx),%r15d,%r10d

# Test for op r32, r/m32, r32
	bextr %eax,%ebx,%esi
	bextr %ebx,(%rcx),%esi
	bextr %r9d,%r15d,%r10d
	bextr %r9d,(%rcx),%r10d

# Test for op r32, r/m32
	tzcnt %eax,%ebx
	tzcnt (%rcx),%ebx
	tzcnt (%rcx),%r15d
	blsi %eax,%ebx
	blsi (%rcx),%ebx
	blsi (%rcx),%r15d
	blsmsk %eax,%ebx
	blsmsk (%rcx),%ebx
	blsmsk (%rcx),%r15d
	blsr %eax,%ebx
	blsr (%rcx),%ebx
	blsr (%rcx),%r15d

# Test for op r64, r64, r/m64
	andn %rax,%rbx,%rsi
	andn (%rcx),%rbx,%rsi
	andn %r9,%r15,%r10
	andn (%rcx),%r15,%r10

# Test for op r64, r/m64, r64
	bextr %rax,%rbx,%rsi
	bextr %rax,(%rcx),%rsi
	bextr %r9,%r15,%r10
	bextr %r9,(%rcx),%r10

# Test for op r64, r/m64
	tzcnt %rax,%rbx
	tzcnt (%rcx),%rbx
	tzcnt %r9,%r15
	tzcnt (%rcx),%r15
	blsi %rax,%rbx
	blsi (%rcx),%rbx
	blsi %r9,%r15
	blsi (%rcx),%r15
	blsmsk %rax,%rbx
	blsmsk (%rcx),%rbx
	blsmsk %r9,%r15
	blsmsk (%rcx),%r15
	blsr %rax,%rbx
	blsr (%rcx),%rbx
	blsr %r9,%r15
	blsr (%rcx),%r15

	.intel_syntax noprefix

# Test for op r16, r/m16
	tzcnt bx,ax
	tzcnt bx,WORD PTR [rcx]
	tzcnt r10w,WORD PTR [rcx]
	tzcnt bx,[rcx]

# Test for op r32, r32, r/m32
	andn esi,ebx,eax
	andn esi,ebx,DWORD PTR [rcx]
	andn r15d,r10d,r9d
	andn r15d,r10d,DWORD PTR [rcx]
	andn esi,ebx,[rcx]

# Test for op r32, r/m32, r32
	bextr esi,ebx,eax
	bextr esi,DWORD PTR [rcx],ebx
	bextr r15d,r10d,r9d
	bextr r15d,DWORD PTR [rcx],r9d
	bextr esi,[rcx],ebx

# Test for op r32, r/m32
	tzcnt ebx,eax
	tzcnt ebx,DWORD PTR [rcx]
	tzcnt r10d,DWORD PTR [rcx]
	tzcnt ebx,[rcx]
	blsi ebx,eax
	blsi ebx,DWORD PTR [rcx]
	blsi r10d,DWORD PTR [rcx]
	blsi ebx,[rcx]
	blsmsk ebx,eax
	blsmsk ebx,DWORD PTR [rcx]
	blsmsk r10d,DWORD PTR [rcx]
	blsmsk ebx,[rcx]
	blsr ebx,eax
	blsr ebx,DWORD PTR [rcx]
	blsr r10d,DWORD PTR [rcx]
	blsr ebx,[rcx]

# Test for op r64, r64, r/m64
	andn rsi,rbx,rax
	andn rsi,rbx,QWORD PTR [rcx]
	andn r10,r15,r9
	andn r10,r15,QWORD PTR [rcx]
	andn rsi,rbx,[rcx]

# Test for op r64, r/m64, r64
	bextr rsi,rbx,rax
	bextr rsi,QWORD PTR [rcx],rax
	bextr r10,r15,r9
	bextr r10,QWORD PTR [rcx],r9
	bextr rsi,[rcx],rax

# Test for op r64, r/m64
	tzcnt rbx,rax
	tzcnt rbx,QWORD PTR [rcx]
	tzcnt r15,r9
	tzcnt r15,QWORD PTR [rcx]
	tzcnt rbx,[rcx]
	blsi rbx,rax
	blsi rbx,QWORD PTR [rcx]
	blsi r15,r9
	blsi r15,QWORD PTR [rcx]
	blsi rbx,[rcx]
	blsmsk rbx,rax
	blsmsk rbx,QWORD PTR [rcx]
	blsmsk r15,r9
	blsmsk r15,QWORD PTR [rcx]
	blsmsk rbx,[rcx]
	blsr rbx,rax
	blsr rbx,QWORD PTR [rcx]
	blsr r15,r9
	blsr r15,QWORD PTR [rcx]
	blsr rbx,[rcx]