# Check 64bit unsupported HLE instructions .allow_index_reg .text _start: # Tests for op imm8 al xacquire adc $100,%al xacquire lock adc $100,%al lock xacquire adc $100,%al xrelease adc $100,%al xrelease lock adc $100,%al lock xrelease adc $100,%al # Tests for op imm16 ax xacquire adc $1000,%ax xacquire lock adc $1000,%ax lock xacquire adc $1000,%ax xrelease adc $1000,%ax xrelease lock adc $1000,%ax lock xrelease adc $1000,%ax # Tests for op imm32 eax xacquire adc $10000000,%eax xacquire lock adc $10000000,%eax lock xacquire adc $10000000,%eax xrelease adc $10000000,%eax xrelease lock adc $10000000,%eax lock xrelease adc $10000000,%eax # Tests for op imm32 rax xacquire adc $10000000,%rax xacquire lock adc $10000000,%rax lock xacquire adc $10000000,%rax xrelease adc $10000000,%rax xrelease lock adc $10000000,%rax lock xrelease adc $10000000,%rax # Tests for op imm8 regb/m8 xacquire adcb $100,%cl xacquire lock adcb $100,%cl lock xacquire adcb $100,%cl xrelease adcb $100,%cl xrelease lock adcb $100,%cl lock xrelease adcb $100,%cl xacquire adcb $100,(%rcx) xrelease adcb $100,(%rcx) # Tests for op imm16 regs/m16 xacquire adcw $1000,%cx xacquire lock adcw $1000,%cx lock xacquire adcw $1000,%cx xrelease adcw $1000,%cx xrelease lock adcw $1000,%cx lock xrelease adcw $1000,%cx xacquire adcw $1000,(%rcx) xrelease adcw $1000,(%rcx) # Tests for op imm32 regl/m32 xacquire adcl $10000000,%ecx xacquire lock adcl $10000000,%ecx lock xacquire adcl $10000000,%ecx xrelease adcl $10000000,%ecx xrelease lock adcl $10000000,%ecx lock xrelease adcl $10000000,%ecx xacquire adcl $10000000,(%rcx) xrelease adcl $10000000,(%rcx) # Tests for op imm32 regq/m64 xacquire adcq $10000000,%rcx xacquire lock adcq $10000000,%rcx lock xacquire adcq $10000000,%rcx xrelease adcq $10000000,%rcx xrelease lock adcq $10000000,%rcx lock xrelease adcq $10000000,%rcx xacquire adcq $10000000,(%rcx) xrelease adcq $10000000,(%rcx) # Tests for op imm8 regs/m16 xacquire adcw $100,%cx xacquire lock adcw $100,%cx lock xacquire adcw $100,%cx xrelease adcw $100,%cx xrelease lock adcw $100,%cx lock xrelease adcw $100,%cx xacquire adcw $100,(%rcx) xrelease adcw $100,(%rcx) # Tests for op imm8 regl/m32 xacquire adcl $100,%ecx xacquire lock adcl $100,%ecx lock xacquire adcl $100,%ecx xrelease adcl $100,%ecx xrelease lock adcl $100,%ecx lock xrelease adcl $100,%ecx xacquire adcl $100,(%rcx) xrelease adcl $100,(%rcx) # Tests for op imm8 regq/m64 xacquire adcq $100,%rcx xacquire lock adcq $100,%rcx lock xacquire adcq $100,%rcx xrelease adcq $100,%rcx xrelease lock adcq $100,%rcx lock xrelease adcq $100,%rcx xacquire adcq $100,(%rcx) xrelease adcq $100,(%rcx) # Tests for op imm8 regb/m8 xacquire adcb $100,%cl xacquire lock adcb $100,%cl lock xacquire adcb $100,%cl xrelease adcb $100,%cl xrelease lock adcb $100,%cl lock xrelease adcb $100,%cl xacquire adcb $100,(%rcx) xrelease adcb $100,(%rcx) # Tests for op regb regb/m8 # Tests for op regb/m8 regb xacquire adcb %al,%cl xacquire lock adcb %al,%cl lock xacquire adcb %al,%cl xrelease adcb %al,%cl xrelease lock adcb %al,%cl lock xrelease adcb %al,%cl xacquire adcb %al,(%rcx) xrelease adcb %al,(%rcx) xacquire adcb %cl,%al xacquire lock adcb %cl,%al lock xacquire adcb %cl,%al xrelease adcb %cl,%al xrelease lock adcb %cl,%al lock xrelease adcb %cl,%al xacquire adcb (%rcx),%al xacquire lock adcb (%rcx),%al lock xacquire adcb (%rcx),%al xrelease adcb (%rcx),%al xrelease lock adcb (%rcx),%al lock xrelease adcb (%rcx),%al # Tests for op regs regs/m16 # Tests for op regs/m16 regs xacquire adcw %ax,%cx xacquire lock adcw %ax,%cx lock xacquire adcw %ax,%cx xrelease adcw %ax,%cx xrelease lock adcw %ax,%cx lock xrelease adcw %ax,%cx xacquire adcw %ax,(%rcx) xrelease adcw %ax,(%rcx) xacquire adcw %cx,%ax xacquire lock adcw %cx,%ax lock xacquire adcw %cx,%ax xrelease adcw %cx,%ax xrelease lock adcw %cx,%ax lock xrelease adcw %cx,%ax xacquire adcw (%rcx),%ax xacquire lock adcw (%rcx),%ax lock xacquire adcw (%rcx),%ax xrelease adcw (%rcx),%ax xrelease lock adcw (%rcx),%ax lock xrelease adcw (%rcx),%ax # Tests for op regl regl/m32 # Tests for op regl/m32 regl xacquire adcl %eax,%ecx xacquire lock adcl %eax,%ecx lock xacquire adcl %eax,%ecx xrelease adcl %eax,%ecx xrelease lock adcl %eax,%ecx lock xrelease adcl %eax,%ecx xacquire adcl %eax,(%rcx) xrelease adcl %eax,(%rcx) xacquire adcl %ecx,%eax xacquire lock adcl %ecx,%eax lock xacquire adcl %ecx,%eax xrelease adcl %ecx,%eax xrelease lock adcl %ecx,%eax lock xrelease adcl %ecx,%eax xacquire adcl (%rcx),%eax xacquire lock adcl (%rcx),%eax lock xacquire adcl (%rcx),%eax xrelease adcl (%rcx),%eax xrelease lock adcl (%rcx),%eax lock xrelease adcl (%rcx),%eax # Tests for op regq regq/m64 # Tests for op regq/m64 regq xacquire adcq %rax,%rcx xacquire lock adcq %rax,%rcx lock xacquire adcq %rax,%rcx xrelease adcq %rax,%rcx xrelease lock adcq %rax,%rcx lock xrelease adcq %rax,%rcx xacquire adcq %rax,(%rcx) xrelease adcq %rax,(%rcx) xacquire adcq %rcx,%rax xacquire lock adcq %rcx,%rax lock xacquire adcq %rcx,%rax xrelease adcq %rcx,%rax xrelease lock adcq %rcx,%rax lock xrelease adcq %rcx,%rax xacquire adcq (%rcx),%rax xacquire lock adcq (%rcx),%rax lock xacquire adcq (%rcx),%rax xrelease adcq (%rcx),%rax xrelease lock adcq (%rcx),%rax lock xrelease adcq (%rcx),%rax # Tests for op regs, regs/m16 xacquire btcw %ax,%cx xacquire lock btcw %ax,%cx lock xacquire btcw %ax,%cx xrelease btcw %ax,%cx xrelease lock btcw %ax,%cx lock xrelease btcw %ax,%cx xacquire btcw %ax,(%rcx) xrelease btcw %ax,(%rcx) # Tests for op regl regl/m32 xacquire btcl %eax,%ecx xacquire lock btcl %eax,%ecx lock xacquire btcl %eax,%ecx xrelease btcl %eax,%ecx xrelease lock btcl %eax,%ecx lock xrelease btcl %eax,%ecx xacquire btcl %eax,(%rcx) xrelease btcl %eax,(%rcx) # Tests for op regq regq/m64 xacquire btcq %rax,%rcx xacquire lock btcq %rax,%rcx lock xacquire btcq %rax,%rcx xrelease btcq %rax,%rcx xrelease lock btcq %rax,%rcx lock xrelease btcq %rax,%rcx xacquire btcq %rax,(%rcx) xrelease btcq %rax,(%rcx) # Tests for op regb/m8 xacquire decb %cl xacquire lock decb %cl lock xacquire decb %cl xrelease decb %cl xrelease lock decb %cl lock xrelease decb %cl xacquire decb (%rcx) xrelease decb (%rcx) # Tests for op regs/m16 xacquire decw %cx xacquire lock decw %cx lock xacquire decw %cx xrelease decw %cx xrelease lock decw %cx lock xrelease decw %cx xacquire decw (%rcx) xrelease decw (%rcx) # Tests for op regl/m32 xacquire decl %ecx xacquire lock decl %ecx lock xacquire decl %ecx xrelease decl %ecx xrelease lock decl %ecx lock xrelease decl %ecx xacquire decl (%rcx) xrelease decl (%rcx) # Tests for op regq/m64 xacquire decq %rcx xacquire lock decq %rcx lock xacquire decq %rcx xrelease decq %rcx xrelease lock decq %rcx lock xrelease decq %rcx xacquire decq (%rcx) xrelease decq (%rcx) # Tests for op m64 xacquire cmpxchg8bq (%rcx) xrelease cmpxchg8bq (%rcx) # Tests for op regb, regb/m8 xacquire cmpxchgb %cl,%al xacquire lock cmpxchgb %cl,%al lock xacquire cmpxchgb %cl,%al xrelease cmpxchgb %cl,%al xrelease lock cmpxchgb %cl,%al lock xrelease cmpxchgb %cl,%al xacquire cmpxchgb %cl,(%rcx) xrelease cmpxchgb %cl,(%rcx) .intel_syntax noprefix # Tests for op imm8 al xacquire adc al,100 xacquire lock adc al,100 lock xacquire adc al,100 xrelease adc al,100 xrelease lock adc al,100 lock xrelease adc al,100 # Tests for op imm16 ax xacquire adc ax,1000 xacquire lock adc ax,1000 lock xacquire adc ax,1000 xrelease adc ax,1000 xrelease lock adc ax,1000 lock xrelease adc ax,1000 # Tests for op imm32 eax xacquire adc eax,10000000 xacquire lock adc eax,10000000 lock xacquire adc eax,10000000 xrelease adc eax,10000000 xrelease lock adc eax,10000000 lock xrelease adc eax,10000000 # Tests for op imm32 rax xacquire adc rax,10000000 xacquire lock adc rax,10000000 lock xacquire adc rax,10000000 xrelease adc rax,10000000 xrelease lock adc rax,10000000 lock xrelease adc rax,10000000 # Tests for op imm8 regb/m8 xacquire adc cl,100 xacquire lock adc cl,100 lock xacquire adc cl,100 xrelease adc cl,100 xrelease lock adc cl,100 lock xrelease adc cl,100 xacquire adc BYTE PTR [rcx],100 xrelease adc BYTE PTR [rcx],100 # Tests for op imm16 regs/m16 xacquire adc cx,1000 xacquire lock adc cx,1000 lock xacquire adc cx,1000 xrelease adc cx,1000 xrelease lock adc cx,1000 lock xrelease adc cx,1000 xacquire adc WORD PTR [rcx],1000 xrelease adc WORD PTR [rcx],1000 # Tests for op imm32 regl/m32 xacquire adc ecx,10000000 xacquire lock adc ecx,10000000 lock xacquire adc ecx,10000000 xrelease adc ecx,10000000 xrelease lock adc ecx,10000000 lock xrelease adc ecx,10000000 xacquire adc DWORD PTR [rcx],10000000 xrelease adc DWORD PTR [rcx],10000000 # Tests for op imm32 regq/m64 xacquire adc rcx,10000000 xacquire lock adc rcx,10000000 lock xacquire adc rcx,10000000 xrelease adc rcx,10000000 xrelease lock adc rcx,10000000 lock xrelease adc rcx,10000000 xacquire adc QWORD PTR [rcx],10000000 xrelease adc QWORD PTR [rcx],10000000 # Tests for op imm8 regs/m16 xacquire adc cx,100 xacquire lock adc cx,100 lock xacquire adc cx,100 xrelease adc cx,100 xrelease lock adc cx,100 lock xrelease adc cx,100 xacquire adc WORD PTR [rcx],100 xrelease adc WORD PTR [rcx],100 # Tests for op imm8 regl/m32 xacquire adc ecx,100 xacquire lock adc ecx,100 lock xacquire adc ecx,100 xrelease adc ecx,100 xrelease lock adc ecx,100 lock xrelease adc ecx,100 xacquire adc DWORD PTR [rcx],100 xrelease adc DWORD PTR [rcx],100 # Tests for op imm8 regq/m64 xacquire adc rcx,100 xacquire lock adc rcx,100 lock xacquire adc rcx,100 xrelease adc rcx,100 xrelease lock adc rcx,100 lock xrelease adc rcx,100 xacquire adc QWORD PTR [rcx],100 xrelease adc QWORD PTR [rcx],100 # Tests for op imm8 regb/m8 xacquire adc cl,100 xacquire lock adc cl,100 lock xacquire adc cl,100 xrelease adc cl,100 xrelease lock adc cl,100 lock xrelease adc cl,100 xacquire adc BYTE PTR [rcx],100 xrelease adc BYTE PTR [rcx],100 # Tests for op regb regb/m8 # Tests for op regb/m8 regb xacquire adc cl,al xacquire lock adc cl,al lock xacquire adc cl,al xrelease adc cl,al xrelease lock adc cl,al lock xrelease adc cl,al xacquire adc BYTE PTR [rcx],al xrelease adc BYTE PTR [rcx],al xacquire adc al,cl xacquire lock adc al,cl lock xacquire adc al,cl xrelease adc al,cl xrelease lock adc al,cl lock xrelease adc al,cl xacquire adc al,BYTE PTR [rcx] xacquire lock adc al,BYTE PTR [rcx] lock xacquire adc al,BYTE PTR [rcx] xrelease adc al,BYTE PTR [rcx] xrelease lock adc al,BYTE PTR [rcx] lock xrelease adc al,BYTE PTR [rcx] # Tests for op regs regs/m16 # Tests for op regs/m16 regs xacquire adc cx,ax xacquire lock adc cx,ax lock xacquire adc cx,ax xrelease adc cx,ax xrelease lock adc cx,ax lock xrelease adc cx,ax xacquire adc WORD PTR [rcx],ax xrelease adc WORD PTR [rcx],ax xacquire adc ax,cx xacquire lock adc ax,cx lock xacquire adc ax,cx xrelease adc ax,cx xrelease lock adc ax,cx lock xrelease adc ax,cx xacquire adc ax,WORD PTR [rcx] xacquire lock adc ax,WORD PTR [rcx] lock xacquire adc ax,WORD PTR [rcx] xrelease adc ax,WORD PTR [rcx] xrelease lock adc ax,WORD PTR [rcx] lock xrelease adc ax,WORD PTR [rcx] # Tests for op regl regl/m32 # Tests for op regl/m32 regl xacquire adc ecx,eax xacquire lock adc ecx,eax lock xacquire adc ecx,eax xrelease adc ecx,eax xrelease lock adc ecx,eax lock xrelease adc ecx,eax xacquire adc DWORD PTR [rcx],eax xrelease adc DWORD PTR [rcx],eax xacquire adc eax,ecx xacquire lock adc eax,ecx lock xacquire adc eax,ecx xrelease adc eax,ecx xrelease lock adc eax,ecx lock xrelease adc eax,ecx xacquire adc eax,DWORD PTR [rcx] xacquire lock adc eax,DWORD PTR [rcx] lock xacquire adc eax,DWORD PTR [rcx] xrelease adc eax,DWORD PTR [rcx] xrelease lock adc eax,DWORD PTR [rcx] lock xrelease adc eax,DWORD PTR [rcx] # Tests for op regq regq/m64 # Tests for op regq/m64 regq xacquire adc rcx,rax xacquire lock adc rcx,rax lock xacquire adc rcx,rax xrelease adc rcx,rax xrelease lock adc rcx,rax lock xrelease adc rcx,rax xacquire adc QWORD PTR [rcx],rax xrelease adc QWORD PTR [rcx],rax xacquire adc rax,rcx xacquire lock adc rax,rcx lock xacquire adc rax,rcx xrelease adc rax,rcx xrelease lock adc rax,rcx lock xrelease adc rax,rcx xacquire adc rax,QWORD PTR [rcx] xacquire lock adc rax,QWORD PTR [rcx] lock xacquire adc rax,QWORD PTR [rcx] xrelease adc rax,QWORD PTR [rcx] xrelease lock adc rax,QWORD PTR [rcx] lock xrelease adc rax,QWORD PTR [rcx] # Tests for op regs, regs/m16 xacquire btc cx,ax xacquire lock btc cx,ax lock xacquire btc cx,ax xrelease btc cx,ax xrelease lock btc cx,ax lock xrelease btc cx,ax xacquire btc WORD PTR [rcx],ax xrelease btc WORD PTR [rcx],ax # Tests for op regl regl/m32 xacquire btc ecx,eax xacquire lock btc ecx,eax lock xacquire btc ecx,eax xrelease btc ecx,eax xrelease lock btc ecx,eax lock xrelease btc ecx,eax xacquire btc DWORD PTR [rcx],eax xrelease btc DWORD PTR [rcx],eax # Tests for op regq regq/m64 xacquire btc rcx,rax xacquire lock btc rcx,rax lock xacquire btc rcx,rax xrelease btc rcx,rax xrelease lock btc rcx,rax lock xrelease btc rcx,rax xacquire btc QWORD PTR [rcx],rax xrelease btc QWORD PTR [rcx],rax # Tests for op regb/m8 xacquire dec cl xacquire lock dec cl lock xacquire dec cl xrelease dec cl xrelease lock dec cl lock xrelease dec cl xacquire dec BYTE PTR [rcx] xrelease dec BYTE PTR [rcx] # Tests for op regs/m16 xacquire dec cx xacquire lock dec cx lock xacquire dec cx xrelease dec cx xrelease lock dec cx lock xrelease dec cx xacquire dec WORD PTR [rcx] xrelease dec WORD PTR [rcx] # Tests for op regl/m32 xacquire dec ecx xacquire lock dec ecx lock xacquire dec ecx xrelease dec ecx xrelease lock dec ecx lock xrelease dec ecx xacquire dec DWORD PTR [rcx] xrelease dec DWORD PTR [rcx] # Tests for op regq/m64 xacquire dec rcx xacquire lock dec rcx lock xacquire dec rcx xrelease dec rcx xrelease lock dec rcx lock xrelease dec rcx xacquire dec QWORD PTR [rcx] xrelease dec QWORD PTR [rcx] # Tests for op m64 xacquire cmpxchg8b QWORD PTR [rcx] xrelease cmpxchg8b QWORD PTR [rcx] # Tests for op regb, regb/m8 xacquire cmpxchg al,cl xacquire lock cmpxchg al,cl lock xacquire cmpxchg al,cl xrelease cmpxchg al,cl xrelease lock cmpxchg al,cl lock xrelease cmpxchg al,cl xacquire cmpxchg BYTE PTR [rcx],cl xrelease cmpxchg BYTE PTR [rcx],cl