Check destination operand for lockable instructions.
gas/ 2009-11-13 H.J. Lu <hongjiu.lu@intel.com> * config/tc-i386.c (md_assemble): Check destination operand for lockable instructions. gas/testsuite/ 2009-11-13 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/lock-1-intel.d: Updated. * gas/i386/lock-1.d: Likewise. * gas/i386/lock-1.s: Likewise. * gas/i386/lockbad-1.l: Likewise. * gas/i386/lockbad-1.s: Likewise. * gas/i386/x86-64-lock-1-intel.d: Likewise. * gas/i386/x86-64-lock-1.d: Likewise. * gas/i386/x86-64-lock-1.s: Likewise. * gas/i386/x86-64-lockbad-1.l: Likewise. * gas/i386/x86-64-lockbad-1.s: Likewise.
This commit is contained in:
parent
68a3e151da
commit
c1ba026631
@ -1,3 +1,8 @@
|
||||
2009-11-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config/tc-i386.c (md_assemble): Check destination operand
|
||||
for lockable instructions.
|
||||
|
||||
2009-11-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config/tc-i386.c (_i386_insn): Don't use bit field on
|
||||
|
@ -2932,10 +2932,13 @@ md_assemble (char *line)
|
||||
if (!add_prefix (FWAIT_OPCODE))
|
||||
return;
|
||||
|
||||
/* Check for lock without a lockable instruction. */
|
||||
/* Check for lock without a lockable instruction. Destination operand
|
||||
must be memory unless it is xchg (0x86). */
|
||||
if (i.prefix[LOCK_PREFIX]
|
||||
&& (!i.tm.opcode_modifier.islockable
|
||||
|| i.mem_operands == 0))
|
||||
|| i.mem_operands == 0
|
||||
|| (i.tm.base_opcode != 0x86
|
||||
&& !operand_type_check (i.types[i.operands - 1], anymem))))
|
||||
{
|
||||
as_bad (_("expecting lockable instruction after `lock'"));
|
||||
return;
|
||||
|
@ -1,3 +1,16 @@
|
||||
2009-11-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* gas/i386/lock-1-intel.d: Updated.
|
||||
* gas/i386/lock-1.d: Likewise.
|
||||
* gas/i386/lock-1.s: Likewise.
|
||||
* gas/i386/lockbad-1.l: Likewise.
|
||||
* gas/i386/lockbad-1.s: Likewise.
|
||||
* gas/i386/x86-64-lock-1-intel.d: Likewise.
|
||||
* gas/i386/x86-64-lock-1.d: Likewise.
|
||||
* gas/i386/x86-64-lock-1.s: Likewise.
|
||||
* gas/i386/x86-64-lockbad-1.l: Likewise.
|
||||
* gas/i386/x86-64-lockbad-1.s: Likewise.
|
||||
|
||||
2009-11-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* gas/i386/rex.s: Add a test for VEX insn.
|
||||
|
@ -8,11 +8,11 @@
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <foo>:
|
||||
[ ]*[a-f0-9]+: f0 03 03 lock add eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 01 03 lock add DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 03 64 lock add DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 13 03 lock adc eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 11 03 lock adc DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 13 64 lock adc DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 23 03 lock and eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 21 03 lock and DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 23 64 lock and DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 0f bb 03 lock btc DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 0f ba 3b 64 lock btc DWORD PTR \[ebx\],0x64
|
||||
@ -26,22 +26,22 @@ Disassembly of section .text:
|
||||
[ ]*[a-f0-9]+: f0 ff 03 lock inc DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 f7 1b lock neg DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 f7 13 lock not DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 0b 03 lock or eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 09 03 lock or DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 0b 64 lock or DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 1b 03 lock sbb eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 19 03 lock sbb DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 1b 64 lock sbb DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 2b 03 lock sub eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 29 03 lock sub DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 2b 64 lock sub DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 0f c1 03 lock xadd DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 33 03 lock xor eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 31 03 lock xor DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 33 64 lock xor DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 03 03 lock add eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 01 03 lock add DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 03 64 lock add DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 13 03 lock adc eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 11 03 lock adc DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 13 64 lock adc DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 23 03 lock and eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 21 03 lock and DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 23 64 lock and DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 0f bb 03 lock btc DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 0f ba 3b 64 lock btc DWORD PTR \[ebx\],0x64
|
||||
@ -55,15 +55,15 @@ Disassembly of section .text:
|
||||
[ ]*[a-f0-9]+: f0 ff 03 lock inc DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 f7 1b lock neg DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 f7 13 lock not DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 0b 03 lock or eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 09 03 lock or DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 0b 64 lock or DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 1b 03 lock sbb eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 19 03 lock sbb DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 1b 64 lock sbb DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 2b 03 lock sub eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 29 03 lock sub DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 2b 64 lock sub DWORD PTR \[ebx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 0f c1 03 lock xadd DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 33 03 lock xor eax,DWORD PTR \[ebx\]
|
||||
[ ]*[a-f0-9]+: f0 31 03 lock xor DWORD PTR \[ebx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 33 64 lock xor DWORD PTR \[ebx\],0x64
|
||||
#pass
|
||||
|
@ -7,11 +7,11 @@
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <foo>:
|
||||
[ ]*[a-f0-9]+: f0 03 03 lock add \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 01 03 lock add %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 03 64 lock addl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 13 03 lock adc \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 11 03 lock adc %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 13 64 lock adcl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 23 03 lock and \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 21 03 lock and %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 23 64 lock andl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 0f bb 03 lock btc %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 0f ba 3b 64 lock btcl \$0x64,\(%ebx\)
|
||||
@ -25,22 +25,22 @@ Disassembly of section .text:
|
||||
[ ]*[a-f0-9]+: f0 ff 03 lock incl \(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 f7 1b lock negl \(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 f7 13 lock notl \(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 0b 03 lock or \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 09 03 lock or %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 0b 64 lock orl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 1b 03 lock sbb \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 19 03 lock sbb %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 1b 64 lock sbbl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 2b 03 lock sub \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 29 03 lock sub %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 2b 64 lock subl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 0f c1 03 lock xadd %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 33 03 lock xor \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 31 03 lock xor %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 33 64 lock xorl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 03 03 lock add \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 01 03 lock add %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 03 64 lock addl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 13 03 lock adc \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 11 03 lock adc %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 13 64 lock adcl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 23 03 lock and \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 21 03 lock and %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 23 64 lock andl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 0f bb 03 lock btc %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 0f ba 3b 64 lock btcl \$0x64,\(%ebx\)
|
||||
@ -54,15 +54,15 @@ Disassembly of section .text:
|
||||
[ ]*[a-f0-9]+: f0 ff 03 lock incl \(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 f7 1b lock negl \(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 f7 13 lock notl \(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 0b 03 lock or \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 09 03 lock or %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 0b 64 lock orl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 1b 03 lock sbb \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 19 03 lock sbb %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 1b 64 lock sbbl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 2b 03 lock sub \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 29 03 lock sub %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 2b 64 lock subl \$0x64,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 0f c1 03 lock xadd %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 33 03 lock xor \(%ebx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 31 03 lock xor %eax,\(%ebx\)
|
||||
[ ]*[a-f0-9]+: f0 83 33 64 lock xorl \$0x64,\(%ebx\)
|
||||
#pass
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
.text
|
||||
foo:
|
||||
lock add (%ebx), %eax
|
||||
lock add %eax, (%ebx)
|
||||
lock add $0x64, (%ebx)
|
||||
lock adc (%ebx), %eax
|
||||
lock adc %eax, (%ebx)
|
||||
lock adc $0x64, (%ebx)
|
||||
lock and (%ebx), %eax
|
||||
lock and %eax, (%ebx)
|
||||
lock and $0x64, (%ebx)
|
||||
lock btc %eax, (%ebx)
|
||||
lock btc $0x64, (%ebx)
|
||||
@ -20,24 +20,24 @@ foo:
|
||||
lock incl (%ebx)
|
||||
lock negl (%ebx)
|
||||
lock notl (%ebx)
|
||||
lock or (%ebx), %eax
|
||||
lock or %eax, (%ebx)
|
||||
lock or $0x64, (%ebx)
|
||||
lock sbb (%ebx), %eax
|
||||
lock sbb %eax, (%ebx)
|
||||
lock sbb $0x64, (%ebx)
|
||||
lock sub (%ebx), %eax
|
||||
lock sub %eax, (%ebx)
|
||||
lock sub $0x64, (%ebx)
|
||||
lock xadd %eax, (%ebx)
|
||||
lock xchg (%ebx), %eax
|
||||
lock xchg %eax, (%ebx)
|
||||
lock xor (%ebx), %eax
|
||||
lock xor %eax, (%ebx)
|
||||
lock xor $0x64, (%ebx)
|
||||
|
||||
.intel_syntax noprefix
|
||||
lock add eax,DWORD PTR [ebx]
|
||||
lock add DWORD PTR [ebx],eax
|
||||
lock add DWORD PTR [ebx],0x64
|
||||
lock adc eax,DWORD PTR [ebx]
|
||||
lock adc DWORD PTR [ebx],eax
|
||||
lock adc DWORD PTR [ebx],0x64
|
||||
lock and eax,DWORD PTR [ebx]
|
||||
lock and DWORD PTR [ebx],eax
|
||||
lock and DWORD PTR [ebx],0x64
|
||||
lock btc DWORD PTR [ebx],eax
|
||||
lock btc DWORD PTR [ebx],0x64
|
||||
@ -51,14 +51,14 @@ foo:
|
||||
lock inc DWORD PTR [ebx]
|
||||
lock neg DWORD PTR [ebx]
|
||||
lock not DWORD PTR [ebx]
|
||||
lock or eax,DWORD PTR [ebx]
|
||||
lock or DWORD PTR [ebx],eax
|
||||
lock or DWORD PTR [ebx],0x64
|
||||
lock sbb eax,DWORD PTR [ebx]
|
||||
lock sbb DWORD PTR [ebx],eax
|
||||
lock sbb DWORD PTR [ebx],0x64
|
||||
lock sub eax,DWORD PTR [ebx]
|
||||
lock sub DWORD PTR [ebx],eax
|
||||
lock sub DWORD PTR [ebx],0x64
|
||||
lock xadd DWORD PTR [ebx],eax
|
||||
lock xchg DWORD PTR [ebx],eax
|
||||
lock xchg DWORD PTR [ebx],eax
|
||||
lock xor eax,DWORD PTR [ebx]
|
||||
lock xor DWORD PTR [ebx],eax
|
||||
lock xor DWORD PTR [ebx],0x64
|
||||
|
@ -29,16 +29,15 @@
|
||||
.*:33: Error: .*
|
||||
.*:34: Error: .*
|
||||
.*:35: Error: .*
|
||||
.*:37: Error: .*
|
||||
.*:38: Error: .*
|
||||
.*:39: Error: .*
|
||||
.*:40: Error: .*
|
||||
.*:41: Error: .*
|
||||
.*:42: Error: .*
|
||||
.*:43: Error: .*
|
||||
.*:44: Error: .*
|
||||
.*:45: Error: .*
|
||||
.*:46: Error: .*
|
||||
.*:47: Error: .*
|
||||
.*:48: Error: .*
|
||||
.*:49: Error: .*
|
||||
.*:50: Error: .*
|
||||
.*:51: Error: .*
|
||||
@ -59,6 +58,21 @@
|
||||
.*:66: Error: .*
|
||||
.*:67: Error: .*
|
||||
.*:68: Error: .*
|
||||
.*:69: Error: .*
|
||||
.*:70: Error: .*
|
||||
.*:71: Error: .*
|
||||
.*:72: Error: .*
|
||||
.*:73: Error: .*
|
||||
.*:74: Error: .*
|
||||
.*:75: Error: .*
|
||||
.*:76: Error: .*
|
||||
.*:78: Error: .*
|
||||
.*:79: Error: .*
|
||||
.*:80: Error: .*
|
||||
.*:81: Error: .*
|
||||
.*:82: Error: .*
|
||||
.*:83: Error: .*
|
||||
.*:84: Error: .*
|
||||
GAS LISTING .*
|
||||
|
||||
|
||||
@ -98,38 +112,54 @@ GAS LISTING .*
|
||||
[ ]*34[ ]+lock xor %ebx, %eax
|
||||
[ ]*35[ ]+lock xor \$0x64, %ebx
|
||||
[ ]*36[ ]+
|
||||
[ ]*37[ ]+\.intel_syntax noprefix
|
||||
[ ]*38[ ]+lock mov eax,ebx
|
||||
[ ]*39[ ]+lock mov eax,DWORD PTR \[ebx\]
|
||||
[ ]*40[ ]+
|
||||
[ ]*41[ ]+lock add eax,ebx
|
||||
[ ]*42[ ]+lock add ebx,0x64
|
||||
[ ]*43[ ]+lock adc eax,ebx
|
||||
[ ]*44[ ]+lock adc ebx,0x64
|
||||
[ ]*45[ ]+lock and eax,ebx
|
||||
[ ]*46[ ]+lock and ebx,0x64
|
||||
[ ]*47[ ]+lock btc ebx,eax
|
||||
[ ]*48[ ]+lock btc ebx,0x64
|
||||
[ ]*49[ ]+lock btr ebx,eax
|
||||
[ ]*50[ ]+lock btr ebx,0x64
|
||||
[ ]*51[ ]+lock bts ebx,eax
|
||||
[ ]*52[ ]+lock bts ebx,0x64
|
||||
[ ]*53[ ]+lock cmpxchg ebx,eax
|
||||
[ ]*54[ ]+lock dec ebx
|
||||
[ ]*55[ ]+lock inc ebx
|
||||
[ ]*56[ ]+lock neg ebx
|
||||
[ ]*57[ ]+lock not ebx
|
||||
[ ]*37[ ]+lock add \(%ebx\), %eax
|
||||
[ ]*38[ ]+lock adc \(%ebx\), %eax
|
||||
[ ]*39[ ]+lock and \(%ebx\), %eax
|
||||
[ ]*40[ ]+lock or \(%ebx\), %eax
|
||||
[ ]*41[ ]+lock sbb \(%ebx\), %eax
|
||||
[ ]*42[ ]+lock sub \(%ebx\), %eax
|
||||
[ ]*43[ ]+lock xor \(%ebx\), %eax
|
||||
[ ]*44[ ]+
|
||||
[ ]*45[ ]+\.intel_syntax noprefix
|
||||
[ ]*46[ ]+lock mov eax,ebx
|
||||
[ ]*47[ ]+lock mov eax,DWORD PTR \[ebx\]
|
||||
[ ]*48[ ]+
|
||||
[ ]*49[ ]+lock add eax,ebx
|
||||
[ ]*50[ ]+lock add ebx,0x64
|
||||
[ ]*51[ ]+lock adc eax,ebx
|
||||
[ ]*52[ ]+lock adc ebx,0x64
|
||||
[ ]*53[ ]+lock and eax,ebx
|
||||
[ ]*54[ ]+lock and ebx,0x64
|
||||
[ ]*55[ ]+lock btc ebx,eax
|
||||
[ ]*56[ ]+lock btc ebx,0x64
|
||||
[ ]*57[ ]+lock btr ebx,eax
|
||||
GAS LISTING .*
|
||||
|
||||
|
||||
[ ]*58[ ]+lock or eax,ebx
|
||||
[ ]*59[ ]+lock or ebx,0x64
|
||||
[ ]*60[ ]+lock sbb eax,ebx
|
||||
[ ]*61[ ]+lock sbb ebx,0x64
|
||||
[ ]*62[ ]+lock sub eax,ebx
|
||||
[ ]*63[ ]+lock sub ebx,0x64
|
||||
[ ]*64[ ]+lock xadd ebx,eax
|
||||
[ ]*65[ ]+lock xchg ebx,eax
|
||||
[ ]*66[ ]+lock xchg ebx,eax
|
||||
[ ]*67[ ]+lock xor eax,ebx
|
||||
[ ]*68[ ]+lock xor ebx,0x64
|
||||
[ ]*58[ ]+lock btr ebx,0x64
|
||||
[ ]*59[ ]+lock bts ebx,eax
|
||||
[ ]*60[ ]+lock bts ebx,0x64
|
||||
[ ]*61[ ]+lock cmpxchg ebx,eax
|
||||
[ ]*62[ ]+lock dec ebx
|
||||
[ ]*63[ ]+lock inc ebx
|
||||
[ ]*64[ ]+lock neg ebx
|
||||
[ ]*65[ ]+lock not ebx
|
||||
[ ]*66[ ]+lock or eax,ebx
|
||||
[ ]*67[ ]+lock or ebx,0x64
|
||||
[ ]*68[ ]+lock sbb eax,ebx
|
||||
[ ]*69[ ]+lock sbb ebx,0x64
|
||||
[ ]*70[ ]+lock sub eax,ebx
|
||||
[ ]*71[ ]+lock sub ebx,0x64
|
||||
[ ]*72[ ]+lock xadd ebx,eax
|
||||
[ ]*73[ ]+lock xchg ebx,eax
|
||||
[ ]*74[ ]+lock xchg ebx,eax
|
||||
[ ]*75[ ]+lock xor eax,ebx
|
||||
[ ]*76[ ]+lock xor ebx,0x64
|
||||
[ ]*77[ ]+
|
||||
[ ]*78[ ]+lock add eax,DWORD PTR \[ebx\]
|
||||
[ ]*79[ ]+lock adc eax,DWORD PTR \[ebx\]
|
||||
[ ]*80[ ]+lock and eax,DWORD PTR \[ebx\]
|
||||
[ ]*81[ ]+lock or eax,DWORD PTR \[ebx\]
|
||||
[ ]*82[ ]+lock sbb eax,DWORD PTR \[ebx\]
|
||||
[ ]*83[ ]+lock sub eax,DWORD PTR \[ebx\]
|
||||
[ ]*84[ ]+lock xor eax,DWORD PTR \[ebx\]
|
||||
|
@ -34,6 +34,14 @@ foo:
|
||||
lock xor %ebx, %eax
|
||||
lock xor $0x64, %ebx
|
||||
|
||||
lock add (%ebx), %eax
|
||||
lock adc (%ebx), %eax
|
||||
lock and (%ebx), %eax
|
||||
lock or (%ebx), %eax
|
||||
lock sbb (%ebx), %eax
|
||||
lock sub (%ebx), %eax
|
||||
lock xor (%ebx), %eax
|
||||
|
||||
.intel_syntax noprefix
|
||||
lock mov eax,ebx
|
||||
lock mov eax,DWORD PTR [ebx]
|
||||
@ -66,3 +74,11 @@ foo:
|
||||
lock xchg ebx,eax
|
||||
lock xor eax,ebx
|
||||
lock xor ebx,0x64
|
||||
|
||||
lock add eax,DWORD PTR [ebx]
|
||||
lock adc eax,DWORD PTR [ebx]
|
||||
lock and eax,DWORD PTR [ebx]
|
||||
lock or eax,DWORD PTR [ebx]
|
||||
lock sbb eax,DWORD PTR [ebx]
|
||||
lock sub eax,DWORD PTR [ebx]
|
||||
lock xor eax,DWORD PTR [ebx]
|
||||
|
@ -8,11 +8,11 @@
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <foo>:
|
||||
[ ]*[a-f0-9]+: f0 03 03 lock add eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 01 03 lock add DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 03 64 lock add DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 13 03 lock adc eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 11 03 lock adc DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 13 64 lock adc DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 23 03 lock and eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 21 03 lock and DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 23 64 lock and DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 0f bb 03 lock btc DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 0f ba 3b 64 lock btc DWORD PTR \[rbx\],0x64
|
||||
@ -26,22 +26,22 @@ Disassembly of section .text:
|
||||
[ ]*[a-f0-9]+: f0 ff 03 lock inc DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 f7 1b lock neg DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 f7 13 lock not DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 0b 03 lock or eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 09 03 lock or DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 0b 64 lock or DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 1b 03 lock sbb eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 19 03 lock sbb DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 1b 64 lock sbb DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 2b 03 lock sub eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 29 03 lock sub DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 2b 64 lock sub DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 0f c1 03 lock xadd DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 33 03 lock xor eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 31 03 lock xor DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 33 64 lock xor DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 03 03 lock add eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 01 03 lock add DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 03 64 lock add DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 13 03 lock adc eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 11 03 lock adc DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 13 64 lock adc DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 23 03 lock and eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 21 03 lock and DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 23 64 lock and DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 0f bb 03 lock btc DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 0f ba 3b 64 lock btc DWORD PTR \[rbx\],0x64
|
||||
@ -55,15 +55,15 @@ Disassembly of section .text:
|
||||
[ ]*[a-f0-9]+: f0 ff 03 lock inc DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 f7 1b lock neg DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 f7 13 lock not DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 0b 03 lock or eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 09 03 lock or DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 0b 64 lock or DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 1b 03 lock sbb eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 19 03 lock sbb DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 1b 64 lock sbb DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 2b 03 lock sub eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 29 03 lock sub DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 2b 64 lock sub DWORD PTR \[rbx\],0x64
|
||||
[ ]*[a-f0-9]+: f0 0f c1 03 lock xadd DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 33 03 lock xor eax,DWORD PTR \[rbx\]
|
||||
[ ]*[a-f0-9]+: f0 31 03 lock xor DWORD PTR \[rbx\],eax
|
||||
[ ]*[a-f0-9]+: f0 83 33 64 lock xor DWORD PTR \[rbx\],0x64
|
||||
#pass
|
||||
|
@ -7,11 +7,11 @@
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <foo>:
|
||||
[ ]*[a-f0-9]+: f0 03 03 lock add \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 01 03 lock add %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 03 64 lock addl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 13 03 lock adc \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 11 03 lock adc %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 13 64 lock adcl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 23 03 lock and \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 21 03 lock and %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 23 64 lock andl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 0f bb 03 lock btc %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 0f ba 3b 64 lock btcl \$0x64,\(%rbx\)
|
||||
@ -25,22 +25,22 @@ Disassembly of section .text:
|
||||
[ ]*[a-f0-9]+: f0 ff 03 lock incl \(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 f7 1b lock negl \(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 f7 13 lock notl \(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 0b 03 lock or \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 09 03 lock or %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 0b 64 lock orl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 1b 03 lock sbb \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 19 03 lock sbb %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 1b 64 lock sbbl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 2b 03 lock sub \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 29 03 lock sub %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 2b 64 lock subl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 0f c1 03 lock xadd %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 33 03 lock xor \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 31 03 lock xor %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 33 64 lock xorl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 03 03 lock add \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 01 03 lock add %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 03 64 lock addl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 13 03 lock adc \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 11 03 lock adc %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 13 64 lock adcl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 23 03 lock and \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 21 03 lock and %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 23 64 lock andl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 0f bb 03 lock btc %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 0f ba 3b 64 lock btcl \$0x64,\(%rbx\)
|
||||
@ -54,15 +54,15 @@ Disassembly of section .text:
|
||||
[ ]*[a-f0-9]+: f0 ff 03 lock incl \(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 f7 1b lock negl \(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 f7 13 lock notl \(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 0b 03 lock or \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 09 03 lock or %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 0b 64 lock orl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 1b 03 lock sbb \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 19 03 lock sbb %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 1b 64 lock sbbl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 2b 03 lock sub \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 29 03 lock sub %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 2b 64 lock subl \$0x64,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 0f c1 03 lock xadd %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 87 03 lock xchg %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 33 03 lock xor \(%rbx\),%eax
|
||||
[ ]*[a-f0-9]+: f0 31 03 lock xor %eax,\(%rbx\)
|
||||
[ ]*[a-f0-9]+: f0 83 33 64 lock xorl \$0x64,\(%rbx\)
|
||||
#pass
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
.text
|
||||
foo:
|
||||
lock add (%rbx), %eax
|
||||
lock add %eax, (%rbx)
|
||||
lock add $0x64, (%rbx)
|
||||
lock adc (%rbx), %eax
|
||||
lock adc %eax, (%rbx)
|
||||
lock adc $0x64, (%rbx)
|
||||
lock and (%rbx), %eax
|
||||
lock and %eax, (%rbx)
|
||||
lock and $0x64, (%rbx)
|
||||
lock btc %eax, (%rbx)
|
||||
lock btc $0x64, (%rbx)
|
||||
@ -20,24 +20,24 @@ foo:
|
||||
lock incl (%rbx)
|
||||
lock negl (%rbx)
|
||||
lock notl (%rbx)
|
||||
lock or (%rbx), %eax
|
||||
lock or %eax, (%rbx)
|
||||
lock or $0x64, (%rbx)
|
||||
lock sbb (%rbx), %eax
|
||||
lock sbb %eax, (%rbx)
|
||||
lock sbb $0x64, (%rbx)
|
||||
lock sub (%rbx), %eax
|
||||
lock sub %eax, (%rbx)
|
||||
lock sub $0x64, (%rbx)
|
||||
lock xadd %eax, (%rbx)
|
||||
lock xchg (%rbx), %eax
|
||||
lock xchg %eax, (%rbx)
|
||||
lock xor (%rbx), %eax
|
||||
lock xor %eax, (%rbx)
|
||||
lock xor $0x64, (%rbx)
|
||||
|
||||
.intel_syntax noprefix
|
||||
lock add eax,DWORD PTR [rbx]
|
||||
lock add DWORD PTR [rbx],eax
|
||||
lock add DWORD PTR [rbx],0x64
|
||||
lock adc eax,DWORD PTR [rbx]
|
||||
lock adc DWORD PTR [rbx],eax
|
||||
lock adc DWORD PTR [rbx],0x64
|
||||
lock and eax,DWORD PTR [rbx]
|
||||
lock and DWORD PTR [rbx],eax
|
||||
lock and DWORD PTR [rbx],0x64
|
||||
lock btc DWORD PTR [rbx],eax
|
||||
lock btc DWORD PTR [rbx],0x64
|
||||
@ -51,14 +51,14 @@ foo:
|
||||
lock inc DWORD PTR [rbx]
|
||||
lock neg DWORD PTR [rbx]
|
||||
lock not DWORD PTR [rbx]
|
||||
lock or eax,DWORD PTR [rbx]
|
||||
lock or DWORD PTR [rbx],eax
|
||||
lock or DWORD PTR [rbx],0x64
|
||||
lock sbb eax,DWORD PTR [rbx]
|
||||
lock sbb DWORD PTR [rbx],eax
|
||||
lock sbb DWORD PTR [rbx],0x64
|
||||
lock sub eax,DWORD PTR [rbx]
|
||||
lock sub DWORD PTR [rbx],eax
|
||||
lock sub DWORD PTR [rbx],0x64
|
||||
lock xadd DWORD PTR [rbx],eax
|
||||
lock xchg DWORD PTR [rbx],eax
|
||||
lock xchg DWORD PTR [rbx],eax
|
||||
lock xor eax,DWORD PTR [rbx]
|
||||
lock xor DWORD PTR [rbx],eax
|
||||
lock xor DWORD PTR [rbx],0x64
|
||||
|
@ -29,16 +29,15 @@
|
||||
.*:33: Error: .*
|
||||
.*:34: Error: .*
|
||||
.*:35: Error: .*
|
||||
.*:37: Error: .*
|
||||
.*:38: Error: .*
|
||||
.*:39: Error: .*
|
||||
.*:40: Error: .*
|
||||
.*:41: Error: .*
|
||||
.*:42: Error: .*
|
||||
.*:43: Error: .*
|
||||
.*:44: Error: .*
|
||||
.*:45: Error: .*
|
||||
.*:46: Error: .*
|
||||
.*:47: Error: .*
|
||||
.*:48: Error: .*
|
||||
.*:49: Error: .*
|
||||
.*:50: Error: .*
|
||||
.*:51: Error: .*
|
||||
@ -59,6 +58,21 @@
|
||||
.*:66: Error: .*
|
||||
.*:67: Error: .*
|
||||
.*:68: Error: .*
|
||||
.*:69: Error: .*
|
||||
.*:70: Error: .*
|
||||
.*:71: Error: .*
|
||||
.*:72: Error: .*
|
||||
.*:73: Error: .*
|
||||
.*:74: Error: .*
|
||||
.*:75: Error: .*
|
||||
.*:76: Error: .*
|
||||
.*:78: Error: .*
|
||||
.*:79: Error: .*
|
||||
.*:80: Error: .*
|
||||
.*:81: Error: .*
|
||||
.*:82: Error: .*
|
||||
.*:83: Error: .*
|
||||
.*:84: Error: .*
|
||||
GAS LISTING .*
|
||||
|
||||
|
||||
@ -98,38 +112,54 @@ GAS LISTING .*
|
||||
[ ]*34[ ]+lock xor %ebx, %eax
|
||||
[ ]*35[ ]+lock xor \$0x64, %ebx
|
||||
[ ]*36[ ]+
|
||||
[ ]*37[ ]+\.intel_syntax noprefix
|
||||
[ ]*38[ ]+lock mov eax,ebx
|
||||
[ ]*39[ ]+lock mov eax,DWORD PTR \[rbx\]
|
||||
[ ]*40[ ]+
|
||||
[ ]*41[ ]+lock add eax,ebx
|
||||
[ ]*42[ ]+lock add ebx,0x64
|
||||
[ ]*43[ ]+lock adc eax,ebx
|
||||
[ ]*44[ ]+lock adc ebx,0x64
|
||||
[ ]*45[ ]+lock and eax,ebx
|
||||
[ ]*46[ ]+lock and ebx,0x64
|
||||
[ ]*47[ ]+lock btc ebx,eax
|
||||
[ ]*48[ ]+lock btc ebx,0x64
|
||||
[ ]*49[ ]+lock btr ebx,eax
|
||||
[ ]*50[ ]+lock btr ebx,0x64
|
||||
[ ]*51[ ]+lock bts ebx,eax
|
||||
[ ]*52[ ]+lock bts ebx,0x64
|
||||
[ ]*53[ ]+lock cmpxchg ebx,eax
|
||||
[ ]*54[ ]+lock dec ebx
|
||||
[ ]*55[ ]+lock inc ebx
|
||||
[ ]*56[ ]+lock neg ebx
|
||||
[ ]*57[ ]+lock not ebx
|
||||
[ ]*37[ ]+lock add \(%rbx\), %eax
|
||||
[ ]*38[ ]+lock adc \(%rbx\), %eax
|
||||
[ ]*39[ ]+lock and \(%rbx\), %eax
|
||||
[ ]*40[ ]+lock or \(%rbx\), %eax
|
||||
[ ]*41[ ]+lock sbb \(%rbx\), %eax
|
||||
[ ]*42[ ]+lock sub \(%rbx\), %eax
|
||||
[ ]*43[ ]+lock xor \(%rbx\), %eax
|
||||
[ ]*44[ ]+
|
||||
[ ]*45[ ]+\.intel_syntax noprefix
|
||||
[ ]*46[ ]+lock mov eax,ebx
|
||||
[ ]*47[ ]+lock mov eax,DWORD PTR \[rbx\]
|
||||
[ ]*48[ ]+
|
||||
[ ]*49[ ]+lock add eax,ebx
|
||||
[ ]*50[ ]+lock add ebx,0x64
|
||||
[ ]*51[ ]+lock adc eax,ebx
|
||||
[ ]*52[ ]+lock adc ebx,0x64
|
||||
[ ]*53[ ]+lock and eax,ebx
|
||||
[ ]*54[ ]+lock and ebx,0x64
|
||||
[ ]*55[ ]+lock btc ebx,eax
|
||||
[ ]*56[ ]+lock btc ebx,0x64
|
||||
[ ]*57[ ]+lock btr ebx,eax
|
||||
GAS LISTING .*
|
||||
|
||||
|
||||
[ ]*58[ ]+lock or eax,ebx
|
||||
[ ]*59[ ]+lock or ebx,0x64
|
||||
[ ]*60[ ]+lock sbb eax,ebx
|
||||
[ ]*61[ ]+lock sbb ebx,0x64
|
||||
[ ]*62[ ]+lock sub eax,ebx
|
||||
[ ]*63[ ]+lock sub ebx,0x64
|
||||
[ ]*64[ ]+lock xadd ebx,eax
|
||||
[ ]*65[ ]+lock xchg ebx,eax
|
||||
[ ]*66[ ]+lock xchg ebx,eax
|
||||
[ ]*67[ ]+lock xor eax,ebx
|
||||
[ ]*68[ ]+lock xor ebx,0x64
|
||||
[ ]*58[ ]+lock btr ebx,0x64
|
||||
[ ]*59[ ]+lock bts ebx,eax
|
||||
[ ]*60[ ]+lock bts ebx,0x64
|
||||
[ ]*61[ ]+lock cmpxchg ebx,eax
|
||||
[ ]*62[ ]+lock dec ebx
|
||||
[ ]*63[ ]+lock inc ebx
|
||||
[ ]*64[ ]+lock neg ebx
|
||||
[ ]*65[ ]+lock not ebx
|
||||
[ ]*66[ ]+lock or eax,ebx
|
||||
[ ]*67[ ]+lock or ebx,0x64
|
||||
[ ]*68[ ]+lock sbb eax,ebx
|
||||
[ ]*69[ ]+lock sbb ebx,0x64
|
||||
[ ]*70[ ]+lock sub eax,ebx
|
||||
[ ]*71[ ]+lock sub ebx,0x64
|
||||
[ ]*72[ ]+lock xadd ebx,eax
|
||||
[ ]*73[ ]+lock xchg ebx,eax
|
||||
[ ]*74[ ]+lock xchg ebx,eax
|
||||
[ ]*75[ ]+lock xor eax,ebx
|
||||
[ ]*76[ ]+lock xor ebx,0x64
|
||||
[ ]*77[ ]+
|
||||
[ ]*78[ ]+lock add eax,DWORD PTR \[rbx\]
|
||||
[ ]*79[ ]+lock adc eax,DWORD PTR \[rbx\]
|
||||
[ ]*80[ ]+lock and eax,DWORD PTR \[rbx\]
|
||||
[ ]*81[ ]+lock or eax,DWORD PTR \[rbx\]
|
||||
[ ]*82[ ]+lock sbb eax,DWORD PTR \[rbx\]
|
||||
[ ]*83[ ]+lock sub eax,DWORD PTR \[rbx\]
|
||||
[ ]*84[ ]+lock xor eax,DWORD PTR \[rbx\]
|
||||
|
@ -34,6 +34,14 @@ foo:
|
||||
lock xor %ebx, %eax
|
||||
lock xor $0x64, %ebx
|
||||
|
||||
lock add (%rbx), %eax
|
||||
lock adc (%rbx), %eax
|
||||
lock and (%rbx), %eax
|
||||
lock or (%rbx), %eax
|
||||
lock sbb (%rbx), %eax
|
||||
lock sub (%rbx), %eax
|
||||
lock xor (%rbx), %eax
|
||||
|
||||
.intel_syntax noprefix
|
||||
lock mov eax,ebx
|
||||
lock mov eax,DWORD PTR [rbx]
|
||||
@ -66,3 +74,11 @@ foo:
|
||||
lock xchg ebx,eax
|
||||
lock xor eax,ebx
|
||||
lock xor ebx,0x64
|
||||
|
||||
lock add eax,DWORD PTR [rbx]
|
||||
lock adc eax,DWORD PTR [rbx]
|
||||
lock and eax,DWORD PTR [rbx]
|
||||
lock or eax,DWORD PTR [rbx]
|
||||
lock sbb eax,DWORD PTR [rbx]
|
||||
lock sub eax,DWORD PTR [rbx]
|
||||
lock xor eax,DWORD PTR [rbx]
|
||||
|
Loading…
x
Reference in New Issue
Block a user