1# Lockable Instructions
2
3	.text
4foo:
5	lock add %eax, (%ebx)
6	lock add $0x64, (%ebx)
7	lock adc %eax, (%ebx)
8	lock adc $0x64, (%ebx)
9	lock and %eax, (%ebx)
10	lock and $0x64, (%ebx)
11	lock btc %eax, (%ebx)
12	lock btc $0x64, (%ebx)
13	lock btr %eax, (%ebx)
14	lock btr $0x64, (%ebx)
15	lock bts %eax, (%ebx)
16	lock bts $0x64, (%ebx)
17	lock cmpxchg %eax,(%ebx)
18	lock cmpxchg8b (%ebx)
19	lock decl (%ebx)
20	lock incl (%ebx)
21	lock negl (%ebx)
22	lock notl (%ebx)
23	lock or %eax, (%ebx)
24	lock or $0x64, (%ebx)
25	lock sbb %eax, (%ebx)
26	lock sbb $0x64, (%ebx)
27	lock sub %eax, (%ebx)
28	lock sub $0x64, (%ebx)
29	lock xadd %eax, (%ebx)
30	lock xchg (%ebx), %eax
31	lock xchg %eax, (%ebx)
32	lock xor %eax, (%ebx)
33	lock xor $0x64, (%ebx)
34
35	.intel_syntax noprefix
36	lock add DWORD PTR [ebx],eax
37	lock add DWORD PTR [ebx],0x64
38	lock adc DWORD PTR [ebx],eax
39	lock adc DWORD PTR [ebx],0x64
40	lock and DWORD PTR [ebx],eax
41	lock and DWORD PTR [ebx],0x64
42	lock btc DWORD PTR [ebx],eax
43	lock btc DWORD PTR [ebx],0x64
44	lock btr DWORD PTR [ebx],eax
45	lock btr DWORD PTR [ebx],0x64
46	lock bts DWORD PTR [ebx],eax
47	lock bts DWORD PTR [ebx],0x64
48	lock cmpxchg DWORD PTR [ebx],eax
49	lock cmpxchg8b QWORD PTR [ebx]
50	lock dec DWORD PTR [ebx]
51	lock inc DWORD PTR [ebx]
52	lock neg DWORD PTR [ebx]
53	lock not DWORD PTR [ebx]
54	lock or DWORD PTR [ebx],eax
55	lock or DWORD PTR [ebx],0x64
56	lock sbb DWORD PTR [ebx],eax
57	lock sbb DWORD PTR [ebx],0x64
58	lock sub DWORD PTR [ebx],eax
59	lock sub DWORD PTR [ebx],0x64
60	lock xadd DWORD PTR [ebx],eax
61	lock xchg DWORD PTR [ebx],eax
62	lock xchg DWORD PTR [ebx],eax
63	lock xor DWORD PTR [ebx],eax
64	lock xor DWORD PTR [ebx],0x64
65