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
|
# Check 32bit BMI instructions
.allow_index_reg
.text
_start:
# Test for op r16, r/m16
tzcnt %ax,%bx
tzcnt (%ecx),%bx
# Test for op r32, r32, r/m32
andn %eax,%ebx,%esi
andn (%ecx),%ebx,%esi
# Test for op r32, r/m32, r32
bextr %eax,%ebx,%esi
bextr %ebx,(%ecx),%esi
# Test for op r32, r/m32
tzcnt %eax,%ebx
tzcnt (%ecx),%ebx
blsi %eax,%ebx
blsi (%ecx),%ebx
blsmsk %eax,%ebx
blsmsk (%ecx),%ebx
blsr %eax,%ebx
blsr (%ecx),%ebx
.intel_syntax noprefix
# Test for op r16, r/m16
tzcnt bx,ax
tzcnt bx,WORD PTR [ecx]
tzcnt bx,[ecx]
# Test for op r32, r32, r/m32
andn esi,ebx,eax
andn esi,ebx,DWORD PTR [ecx]
andn esi,ebx,[ecx]
# Test for op r32, r/m32, r32
bextr esi,ebx,eax
bextr esi,DWORD PTR [ecx],ebx
bextr esi,[ecx],ebx
# Test for op r32, r/m32
tzcnt ebx,eax
tzcnt ebx,DWORD PTR [ecx]
tzcnt ebx,[ecx]
blsi ebx,eax
blsi ebx,DWORD PTR [ecx]
blsi ebx,[ecx]
blsmsk ebx,eax
blsmsk ebx,DWORD PTR [ecx]
blsmsk ebx,[ecx]
blsr ebx,eax
blsr ebx,DWORD PTR [ecx]
blsr ebx,[ecx]
|