Properly disassemble movnti in Intel mode

gas/testsuite/

	PR binutils/13571
	* gas/i386/i386.exp: Run i386-intel and x86_64-intel.
	* gas/i386/i386-intel.d: New file.
	* gas/i386/x86_64-intel.d: Likewise.

opcodes/

	PR binutils/13571
	* i386-dis.c (MOD_0FC3): New.
	(PREFIX_0FC3): Renamed to ...
	(PREFIX_MOD_0_0FC3): This.
	(dis386_twobyte): Replace PREFIX_0FC3 with MOD_0FC3.
	(prefix_table): Replace Ma with Ev on movntiS.
	(mod_table): Add MOD_0FC3.
This commit is contained in:
H.J. Lu 2015-07-30 04:17:02 -07:00
parent c6e8a9a802
commit a8484f9612
6 changed files with 354 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2015-07-30 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/13571
* gas/i386/i386.exp: Run i386-intel and x86_64-intel.
* gas/i386/i386-intel.d: New file.
* gas/i386/x86_64-intel.d: Likewise.
2015-07-24 Nick Clifton <nickc@redhat.com>
* gas/all/struct.d: Allow for extra symbols in the output.

View File

@ -0,0 +1,67 @@
#source: i386.s
#objdump: -dw -Mintel
#name: i386 (Intel mode)
.*: +file format .*
Disassembly of section .text:
0+ <.text>:
[ ]*[a-f0-9]+: df e0 fnstsw ax
[ ]*[a-f0-9]+: df e0 fnstsw ax
[ ]*[a-f0-9]+: 9b df e0 fstsw ax
[ ]*[a-f0-9]+: 9b df e0 fstsw ax
[ ]*[a-f0-9]+: 66 0f be f0 movsx si,al
[ ]*[a-f0-9]+: 0f be f0 movsx esi,al
[ ]*[a-f0-9]+: 0f bf f0 movsx esi,ax
[ ]*[a-f0-9]+: 0f be 10 movsx edx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f be 10 movsx dx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f be 10 movsx dx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f be 10 movsx edx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f bf 10 movsx edx,WORD PTR \[eax\]
[ ]*[a-f0-9]+: 0f be 10 movsx edx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f be 10 movsx dx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f bf 10 movsx edx,WORD PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f b6 f0 movzx si,al
[ ]*[a-f0-9]+: 0f b6 f0 movzx esi,al
[ ]*[a-f0-9]+: 0f b7 f0 movzx esi,ax
[ ]*[a-f0-9]+: 0f b6 10 movzx edx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f b6 10 movzx dx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f b6 10 movzx dx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f b6 10 movzx edx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f b7 10 movzx edx,WORD PTR \[eax\]
[ ]*[a-f0-9]+: 0f b6 10 movzx edx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f b6 10 movzx dx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f b6 10 movzx edx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f b6 10 movzx dx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f b7 10 movzx edx,WORD PTR \[eax\]
[ ]*[a-f0-9]+: 0f c3 00 movnti DWORD PTR \[eax\],eax
[ ]*[a-f0-9]+: 0f c3 00 movnti DWORD PTR \[eax\],eax
[ ]*[a-f0-9]+: df e0 fnstsw ax
[ ]*[a-f0-9]+: df e0 fnstsw ax
[ ]*[a-f0-9]+: 9b df e0 fstsw ax
[ ]*[a-f0-9]+: 9b df e0 fstsw ax
[ ]*[a-f0-9]+: 66 0f be f0 movsx si,al
[ ]*[a-f0-9]+: 0f be f0 movsx esi,al
[ ]*[a-f0-9]+: 0f bf f0 movsx esi,ax
[ ]*[a-f0-9]+: 0f be 10 movsx edx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f be 10 movsx dx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f bf 10 movsx edx,WORD PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f b6 f0 movzx si,al
[ ]*[a-f0-9]+: 0f b6 f0 movzx esi,al
[ ]*[a-f0-9]+: 0f b7 f0 movzx esi,ax
[ ]*[a-f0-9]+: 0f b6 10 movzx edx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f b6 10 movzx dx,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f b7 10 movzx edx,WORD PTR \[eax\]
[ ]*[a-f0-9]+: f3 0f 7e 0c 24 movq xmm1,QWORD PTR \[esp\]
[ ]*[a-f0-9]+: f3 0f 7e 0c 24 movq xmm1,QWORD PTR \[esp\]
[ ]*[a-f0-9]+: 66 0f d6 0c 24 movq QWORD PTR \[esp\],xmm1
[ ]*[a-f0-9]+: 66 0f d6 0c 24 movq QWORD PTR \[esp\],xmm1
[ ]*[a-f0-9]+: 66 0f be 00 movsx ax,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f be 00 movsx eax,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f bf 00 movsx eax,WORD PTR \[eax\]
[ ]*[a-f0-9]+: 66 0f b6 00 movzx ax,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f b6 00 movzx eax,BYTE PTR \[eax\]
[ ]*[a-f0-9]+: 0f b7 00 movzx eax,WORD PTR \[eax\]
[ ]*[a-f0-9]+: 0f c3 00 movnti DWORD PTR \[eax\],eax
#pass

View File

@ -132,6 +132,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_dump_test "reg"
run_dump_test "reg-intel"
run_dump_test "i386"
run_dump_test "i386-intel"
run_dump_test "compat"
run_dump_test "compat-intel"
run_dump_test "arch-1"
@ -454,6 +455,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
set ASFLAGS "$ASFLAGS --64"
run_dump_test "x86_64"
run_dump_test "x86_64-intel"
run_dump_test "x86-64-addr32"
run_dump_test "x86-64-addr32-intel"
run_dump_test "x86-64-opcode"

View File

@ -0,0 +1,258 @@
#source: x86_64.s
#as: -J
#objdump: -dw -Mintel
#name: x86-64 (Intel mode)
.*: +file format .*
Disassembly of section .text:
0+ <bar-0x1a7>:
[ ]*[a-f0-9]+: 01 ca add edx,ecx
[ ]*[a-f0-9]+: 44 01 ca add edx,r9d
[ ]*[a-f0-9]+: 41 01 ca add r10d,ecx
[ ]*[a-f0-9]+: 48 01 ca add rdx,rcx
[ ]*[a-f0-9]+: 4d 01 ca add r10,r9
[ ]*[a-f0-9]+: 41 01 c0 add r8d,eax
[ ]*[a-f0-9]+: 66 41 01 c0 add r8w,ax
[ ]*[a-f0-9]+: 49 01 c0 add r8,rax
[ ]*[a-f0-9]+: 05 11 22 33 44 add eax,0x44332211
[ ]*[a-f0-9]+: 48 05 11 22 33 f4 add rax,0xfffffffff4332211
[ ]*[a-f0-9]+: 66 05 33 44 add ax,0x4433
[ ]*[a-f0-9]+: 48 05 11 22 33 44 add rax,0x44332211
[ ]*[a-f0-9]+: 00 ca add dl,cl
[ ]*[a-f0-9]+: 00 f7 add bh,dh
[ ]*[a-f0-9]+: 40 00 f7 add dil,sil
[ ]*[a-f0-9]+: 41 00 f7 add r15b,sil
[ ]*[a-f0-9]+: 44 00 f7 add dil,r14b
[ ]*[a-f0-9]+: 45 00 f7 add r15b,r14b
[ ]*[a-f0-9]+: 50 push rax
[ ]*[a-f0-9]+: 41 50 push r8
[ ]*[a-f0-9]+: 41 59 pop r9
[ ]*[a-f0-9]+: 04 11 add al,0x11
[ ]*[a-f0-9]+: 80 c4 11 add ah,0x11
[ ]*[a-f0-9]+: 40 80 c4 11 add spl,0x11
[ ]*[a-f0-9]+: 41 80 c0 11 add r8b,0x11
[ ]*[a-f0-9]+: 41 80 c4 11 add r12b,0x11
[ ]*[a-f0-9]+: 0f 20 c0 mov rax,cr0
[ ]*[a-f0-9]+: 41 0f 20 c0 mov r8,cr0
[ ]*[a-f0-9]+: 44 0f 20 c0 mov rax,cr8
[ ]*[a-f0-9]+: 44 0f 22 c0 mov cr8,rax
[ ]*[a-f0-9]+: f3 48 a5 rep movs QWORD PTR es:\[rdi\],QWORD PTR ds:\[rsi\]
[ ]*[a-f0-9]+: 66 f3 a5 rep movs WORD PTR es:\[rdi\],WORD PTR ds:\[rsi\]
[ ]*[a-f0-9]+: f3 48 a5 rep movs QWORD PTR es:\[rdi\],QWORD PTR ds:\[rsi\]
[ ]*[a-f0-9]+: b0 11 mov al,0x11
[ ]*[a-f0-9]+: b4 11 mov ah,0x11
[ ]*[a-f0-9]+: 40 b4 11 mov spl,0x11
[ ]*[a-f0-9]+: 41 b4 11 mov r12b,0x11
[ ]*[a-f0-9]+: b8 44 33 22 11 mov eax,0x11223344
[ ]*[a-f0-9]+: 41 b8 44 33 22 11 mov r8d,0x11223344
[ ]*[a-f0-9]+: 48 b8 88 77 66 55 44 33 22 11 movabs rax,0x1122334455667788
[ ]*[a-f0-9]+: 49 b8 88 77 66 55 44 33 22 11 movabs r8,0x1122334455667788
[ ]*[a-f0-9]+: 03 00 add eax,DWORD PTR \[rax\]
[ ]*[a-f0-9]+: 41 03 00 add eax,DWORD PTR \[r8\]
[ ]*[a-f0-9]+: 45 03 00 add r8d,DWORD PTR \[r8\]
[ ]*[a-f0-9]+: 49 03 00 add rax,QWORD PTR \[r8\]
[ ]*[a-f0-9]+: 03 05 22 22 22 22 add eax,DWORD PTR \[rip\+0x22222222\] # 222222c7 <foo\+0x222220c4>
[ ]*[a-f0-9]+: 03 45 00 add eax,DWORD PTR \[rbp\+0x0\]
[ ]*[a-f0-9]+: 03 04 25 22 22 22 22 add eax,DWORD PTR ds:0x22222222
[ ]*[a-f0-9]+: 41 03 45 00 add eax,DWORD PTR \[r13\+0x0\]
[ ]*[a-f0-9]+: 03 04 80 add eax,DWORD PTR \[rax\+rax\*4\]
[ ]*[a-f0-9]+: 41 03 04 80 add eax,DWORD PTR \[r8\+rax\*4\]
[ ]*[a-f0-9]+: 45 03 04 80 add r8d,DWORD PTR \[r8\+rax\*4\]
[ ]*[a-f0-9]+: 43 03 04 80 add eax,DWORD PTR \[r8\+r8\*4\]
[ ]*[a-f0-9]+: 46 01 04 81 add DWORD PTR \[rcx\+r8\*4\],r8d
[ ]*[a-f0-9]+: 03 14 c0 add edx,DWORD PTR \[rax\+rax\*8\]
[ ]*[a-f0-9]+: 03 14 c8 add edx,DWORD PTR \[rax\+rcx\*8\]
[ ]*[a-f0-9]+: 03 14 d0 add edx,DWORD PTR \[rax\+rdx\*8\]
[ ]*[a-f0-9]+: 03 14 d8 add edx,DWORD PTR \[rax\+rbx\*8\]
[ ]*[a-f0-9]+: 03 10 add edx,DWORD PTR \[rax\]
[ ]*[a-f0-9]+: 03 14 e8 add edx,DWORD PTR \[rax\+rbp\*8\]
[ ]*[a-f0-9]+: 03 14 f0 add edx,DWORD PTR \[rax\+rsi\*8\]
[ ]*[a-f0-9]+: 03 14 f8 add edx,DWORD PTR \[rax\+rdi\*8\]
[ ]*[a-f0-9]+: 42 03 14 c0 add edx,DWORD PTR \[rax\+r8\*8\]
[ ]*[a-f0-9]+: 42 03 14 c8 add edx,DWORD PTR \[rax\+r9\*8\]
[ ]*[a-f0-9]+: 42 03 14 d0 add edx,DWORD PTR \[rax\+r10\*8\]
[ ]*[a-f0-9]+: 42 03 14 d8 add edx,DWORD PTR \[rax\+r11\*8\]
[ ]*[a-f0-9]+: 42 03 14 e0 add edx,DWORD PTR \[rax\+r12\*8\]
[ ]*[a-f0-9]+: 42 03 14 e8 add edx,DWORD PTR \[rax\+r13\*8\]
[ ]*[a-f0-9]+: 42 03 14 f0 add edx,DWORD PTR \[rax\+r14\*8\]
[ ]*[a-f0-9]+: 42 03 14 f8 add edx,DWORD PTR \[rax\+r15\*8\]
[ ]*[a-f0-9]+: 83 c1 11 add ecx,0x11
[ ]*[a-f0-9]+: 83 00 11 add DWORD PTR \[rax\],0x11
[ ]*[a-f0-9]+: 48 83 00 11 add QWORD PTR \[rax\],0x11
[ ]*[a-f0-9]+: 41 83 00 11 add DWORD PTR \[r8\],0x11
[ ]*[a-f0-9]+: 83 04 81 11 add DWORD PTR \[rcx\+rax\*4\],0x11
[ ]*[a-f0-9]+: 41 83 04 81 11 add DWORD PTR \[r9\+rax\*4\],0x11
[ ]*[a-f0-9]+: 42 83 04 81 11 add DWORD PTR \[rcx\+r8\*4\],0x11
[ ]*[a-f0-9]+: 83 05 22 22 22 22 33 add DWORD PTR \[rip\+0x22222222\],0x33 # 22222342 <foo\+0x2222213f>
[ ]*[a-f0-9]+: 48 83 05 22 22 22 22 33 add QWORD PTR \[rip\+0x22222222\],0x33 # 2222234a <foo\+0x22222147>
[ ]*[a-f0-9]+: 81 05 22 22 22 22 33 33 33 33 add DWORD PTR \[rip\+0x22222222\],0x33333333 # 22222354 <foo\+0x22222151>
[ ]*[a-f0-9]+: 48 81 05 22 22 22 22 33 33 33 33 add QWORD PTR \[rip\+0x22222222\],0x33333333 # 2222235f <foo\+0x2222215c>
[ ]*[a-f0-9]+: 83 04 c5 22 22 22 22 33 add DWORD PTR \[rax\*8\+0x22222222\],0x33
[ ]*[a-f0-9]+: 83 80 22 22 22 22 33 add DWORD PTR \[rax\+0x22222222\],0x33
[ ]*[a-f0-9]+: 83 80 22 22 22 22 33 add DWORD PTR \[rax\+0x22222222\],0x33
[ ]*[a-f0-9]+: 41 83 04 e8 33 add DWORD PTR \[r8\+rbp\*8\],0x33
[ ]*[a-f0-9]+: 83 04 25 22 22 22 22 33 add DWORD PTR ds:0x22222222,0x33
[ ]*[a-f0-9]+: a0 11 22 33 44 55 66 77 88 movabs al,ds:0x8877665544332211
[ ]*[a-f0-9]+: a1 11 22 33 44 55 66 77 88 movabs eax,ds:0x8877665544332211
[ ]*[a-f0-9]+: a2 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,al
[ ]*[a-f0-9]+: a3 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,eax
[ ]*[a-f0-9]+: 48 a1 11 22 33 44 55 66 77 88 movabs rax,ds:0x8877665544332211
[ ]*[a-f0-9]+: 48 a3 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,rax
[ ]*[a-f0-9]+: 48 99 cqo
[ ]*[a-f0-9]+: 48 98 cdqe
[ ]*[a-f0-9]+: 48 63 c0 movsxd rax,eax
[ ]*[a-f0-9]+: 48 0f bf c0 movsx rax,ax
[ ]*[a-f0-9]+: 48 0f be c0 movsx rax,al
0+1a7 <bar>:
[ ]*[a-f0-9]+: b0 00 mov al,0x0
[ ]*[a-f0-9]+: 66 b8 00 00 mov ax,0x0
[ ]*[a-f0-9]+: b8 00 00 00 00 mov eax,0x0
[ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 mov rax,0x0
[ ]*[a-f0-9]+: a1 00 00 00 00 00 00 00 00 movabs eax,ds:0x0
[ ]*[a-f0-9]+: 8b 04 25 00 00 00 00 mov eax,DWORD PTR ds:0x0
[ ]*[a-f0-9]+: 8b 80 00 00 00 00 mov eax,DWORD PTR \[rax\+0x0\]
[ ]*[a-f0-9]+: 8b 05 00 00 00 00 mov eax,DWORD PTR \[rip\+0x0\] # 1d5 <bar\+0x2e>
[ ]*[a-f0-9]+: b0 00 mov al,0x0
[ ]*[a-f0-9]+: 66 b8 00 00 mov ax,0x0
[ ]*[a-f0-9]+: b8 00 00 00 00 mov eax,0x0
[ ]*[a-f0-9]+: 48 c7 c0 00 00 00 00 mov rax,0x0
[ ]*[a-f0-9]+: a1 00 00 00 00 00 00 00 00 movabs eax,ds:0x0
[ ]*[a-f0-9]+: 8b 04 25 00 00 00 00 mov eax,DWORD PTR ds:0x0
[ ]*[a-f0-9]+: 8b 80 00 00 00 00 mov eax,DWORD PTR \[rax\+0x0\]
[ ]*[a-f0-9]+: 8b 05 00 00 00 00 mov eax,DWORD PTR \[rip\+0x0\] # 203 <foo>
0+203 <foo>:
[ ]*[a-f0-9]+: a0 11 22 33 44 55 66 77 88 movabs al,ds:0x8877665544332211
[ ]*[a-f0-9]+: 66 a1 11 22 33 44 55 66 77 88 movabs ax,ds:0x8877665544332211
[ ]*[a-f0-9]+: a1 11 22 33 44 55 66 77 88 movabs eax,ds:0x8877665544332211
[ ]*[a-f0-9]+: 48 a1 11 22 33 44 55 66 77 88 movabs rax,ds:0x8877665544332211
[ ]*[a-f0-9]+: a2 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,al
[ ]*[a-f0-9]+: 66 a3 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,ax
[ ]*[a-f0-9]+: a3 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,eax
[ ]*[a-f0-9]+: 48 a3 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,rax
[ ]*[a-f0-9]+: a0 11 22 33 44 55 66 77 88 movabs al,ds:0x8877665544332211
[ ]*[a-f0-9]+: 66 a1 11 22 33 44 55 66 77 88 movabs ax,ds:0x8877665544332211
[ ]*[a-f0-9]+: a1 11 22 33 44 55 66 77 88 movabs eax,ds:0x8877665544332211
[ ]*[a-f0-9]+: 48 a1 11 22 33 44 55 66 77 88 movabs rax,ds:0x8877665544332211
[ ]*[a-f0-9]+: a2 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,al
[ ]*[a-f0-9]+: 66 a3 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,ax
[ ]*[a-f0-9]+: a3 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,eax
[ ]*[a-f0-9]+: 48 a3 11 22 33 44 55 66 77 88 movabs ds:0x8877665544332211,rax
[ ]*[a-f0-9]+: 8a 04 25 11 22 33 ff mov al,BYTE PTR ds:0xffffffffff332211
[ ]*[a-f0-9]+: 66 8b 04 25 11 22 33 ff mov ax,WORD PTR ds:0xffffffffff332211
[ ]*[a-f0-9]+: 8b 04 25 11 22 33 ff mov eax,DWORD PTR ds:0xffffffffff332211
[ ]*[a-f0-9]+: 48 8b 04 25 11 22 33 ff mov rax,QWORD PTR ds:0xffffffffff332211
[ ]*[a-f0-9]+: 88 04 25 11 22 33 ff mov BYTE PTR ds:0xffffffffff332211,al
[ ]*[a-f0-9]+: 66 89 04 25 11 22 33 ff mov WORD PTR ds:0xffffffffff332211,ax
[ ]*[a-f0-9]+: 89 04 25 11 22 33 ff mov DWORD PTR ds:0xffffffffff332211,eax
[ ]*[a-f0-9]+: 48 89 04 25 11 22 33 ff mov QWORD PTR ds:0xffffffffff332211,rax
[ ]*[a-f0-9]+: 8a 04 25 11 22 33 ff mov al,BYTE PTR ds:0xffffffffff332211
[ ]*[a-f0-9]+: 66 8b 04 25 11 22 33 ff mov ax,WORD PTR ds:0xffffffffff332211
[ ]*[a-f0-9]+: 8b 04 25 11 22 33 ff mov eax,DWORD PTR ds:0xffffffffff332211
[ ]*[a-f0-9]+: 48 8b 04 25 11 22 33 ff mov rax,QWORD PTR ds:0xffffffffff332211
[ ]*[a-f0-9]+: 88 04 25 11 22 33 ff mov BYTE PTR ds:0xffffffffff332211,al
[ ]*[a-f0-9]+: 66 89 04 25 11 22 33 ff mov WORD PTR ds:0xffffffffff332211,ax
[ ]*[a-f0-9]+: 89 04 25 11 22 33 ff mov DWORD PTR ds:0xffffffffff332211,eax
[ ]*[a-f0-9]+: 48 89 04 25 11 22 33 ff mov QWORD PTR ds:0xffffffffff332211,rax
[ ]*[a-f0-9]+: 48 0f c7 08 cmpxchg16b OWORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f c7 08 cmpxchg16b OWORD PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f be f0 movsx si,al
[ ]*[a-f0-9]+: 0f be f0 movsx esi,al
[ ]*[a-f0-9]+: 48 0f be f0 movsx rsi,al
[ ]*[a-f0-9]+: 0f bf f0 movsx esi,ax
[ ]*[a-f0-9]+: 48 0f bf f0 movsx rsi,ax
[ ]*[a-f0-9]+: 48 63 f0 movsxd rsi,eax
[ ]*[a-f0-9]+: 0f be 10 movsx edx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f be 10 movsx rdx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f be 10 movsx dx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f be 10 movsx edx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f be 10 movsx rdx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f be 10 movsx dx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f bf 10 movsx edx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f bf 10 movsx rdx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f b6 f0 movzx si,al
[ ]*[a-f0-9]+: 0f b6 f0 movzx esi,al
[ ]*[a-f0-9]+: 48 0f b6 f0 movzx rsi,al
[ ]*[a-f0-9]+: 0f b7 f0 movzx esi,ax
[ ]*[a-f0-9]+: 48 0f b7 f0 movzx rsi,ax
[ ]*[a-f0-9]+: 0f b6 10 movzx edx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f b6 10 movzx rdx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f b6 10 movzx dx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f b6 10 movzx edx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f b6 10 movzx rdx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f b6 10 movzx dx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f b6 10 movzx edx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f b6 10 movzx rdx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f b6 10 movzx dx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f b7 10 movzx edx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f b7 10 movzx rdx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f be f0 movsx si,al
[ ]*[a-f0-9]+: 0f be f0 movsx esi,al
[ ]*[a-f0-9]+: 48 0f be f0 movsx rsi,al
[ ]*[a-f0-9]+: 0f bf f0 movsx esi,ax
[ ]*[a-f0-9]+: 48 0f bf f0 movsx rsi,ax
[ ]*[a-f0-9]+: 48 63 f0 movsxd rsi,eax
[ ]*[a-f0-9]+: 0f be 10 movsx edx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f be 10 movsx rdx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f be 10 movsx dx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f bf 10 movsx edx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f bf 10 movsx rdx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f b6 f0 movzx si,al
[ ]*[a-f0-9]+: 0f b6 f0 movzx esi,al
[ ]*[a-f0-9]+: 48 0f b6 f0 movzx rsi,al
[ ]*[a-f0-9]+: 0f b7 f0 movzx esi,ax
[ ]*[a-f0-9]+: 48 0f b7 f0 movzx rsi,ax
[ ]*[a-f0-9]+: 0f b6 10 movzx edx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f b6 10 movzx rdx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f b6 10 movzx dx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f b7 10 movzx edx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f b7 10 movzx rdx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: f3 0f 7e 0c 24 movq xmm1,QWORD PTR \[rsp\]
[ ]*[a-f0-9]+: f3 0f 7e 0c 24 movq xmm1,QWORD PTR \[rsp\]
[ ]*[a-f0-9]+: 66 0f d6 0c 24 movq QWORD PTR \[rsp\],xmm1
[ ]*[a-f0-9]+: 66 0f d6 0c 24 movq QWORD PTR \[rsp\],xmm1
[ ]*[a-f0-9]+: df e0 fnstsw ax
[ ]*[a-f0-9]+: df e0 fnstsw ax
[ ]*[a-f0-9]+: 9b df e0 fstsw ax
[ ]*[a-f0-9]+: 9b df e0 fstsw ax
[ ]*[a-f0-9]+: df e0 fnstsw ax
[ ]*[a-f0-9]+: df e0 fnstsw ax
[ ]*[a-f0-9]+: 9b df e0 fstsw ax
[ ]*[a-f0-9]+: 9b df e0 fstsw ax
[ ]*[a-f0-9]+: 66 0f be 00 movsx ax,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f be 00 movsx eax,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f be 00 movsx rax,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f be 10 movsx dx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f be 10 movsx edx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f be 10 movsx rdx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f bf 10 movsx edx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f bf 10 movsx rdx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 63 10 movsxd rdx,DWORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 63 00 movsxd rax,DWORD PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f b6 00 movzx ax,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f b6 00 movzx eax,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f b6 00 movzx rax,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f b6 10 movzx dx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f b6 10 movzx edx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f b6 10 movzx rdx,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f b7 10 movzx edx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f b7 10 movzx rdx,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 0f c3 00 movnti DWORD PTR \[rax\],eax
[ ]*[a-f0-9]+: 0f c3 00 movnti DWORD PTR \[rax\],eax
[ ]*[a-f0-9]+: 48 0f c3 00 movnti QWORD PTR \[rax\],rax
[ ]*[a-f0-9]+: 48 0f c3 00 movnti QWORD PTR \[rax\],rax
[ ]*[a-f0-9]+: 66 0f be 00 movsx ax,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f be 00 movsx eax,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f bf 00 movsx eax,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f bf 00 movsx rax,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 63 00 movsxd rax,DWORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 63 00 movsxd rax,DWORD PTR \[rax\]
[ ]*[a-f0-9]+: 66 0f b6 00 movzx ax,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f b6 00 movzx eax,BYTE PTR \[rax\]
[ ]*[a-f0-9]+: 0f b7 00 movzx eax,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 48 0f b7 00 movzx rax,WORD PTR \[rax\]
[ ]*[a-f0-9]+: 0f c3 00 movnti DWORD PTR \[rax\],eax
[ ]*[a-f0-9]+: 48 0f c3 00 movnti QWORD PTR \[rax\],rax
#pass

View File

@ -1,3 +1,13 @@
2015-07-30 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/13571
* i386-dis.c (MOD_0FC3): New.
(PREFIX_0FC3): Renamed to ...
(PREFIX_MOD_0_0FC3): This.
(dis386_twobyte): Replace PREFIX_0FC3 with MOD_0FC3.
(prefix_table): Replace Ma with Ev on movntiS.
(mod_table): Add MOD_0FC3.
2015-07-27 H.J. Lu <hongjiu.lu@intel.com>
* configure: Regenerated.

View File

@ -802,6 +802,7 @@ enum
MOD_0FB2,
MOD_0FB4,
MOD_0FB5,
MOD_0FC3,
MOD_0FC7_REG_3,
MOD_0FC7_REG_4,
MOD_0FC7_REG_5,
@ -927,7 +928,7 @@ enum
PREFIX_0FBC,
PREFIX_0FBD,
PREFIX_0FC2,
PREFIX_0FC3,
PREFIX_MOD_0_0FC3,
PREFIX_MOD_0_0FC7_REG_6,
PREFIX_MOD_3_0FC7_REG_6,
PREFIX_MOD_3_0FC7_REG_7,
@ -2956,7 +2957,7 @@ static const struct dis386 dis386_twobyte[] = {
{ "xaddB", { Ebh1, Gb }, 0 },
{ "xaddS", { Evh1, Gv }, 0 },
{ PREFIX_TABLE (PREFIX_0FC2) },
{ PREFIX_TABLE (PREFIX_0FC3) },
{ MOD_TABLE (MOD_0FC3) },
{ "pinsrw", { MX, Edqw, Ib }, PREFIX_OPCODE },
{ "pextrw", { Gdq, MS, Ib }, PREFIX_OPCODE },
{ "shufpX", { XM, EXx, Ib }, PREFIX_OPCODE },
@ -4048,9 +4049,9 @@ static const struct dis386 prefix_table[][4] = {
{ "cmpsd", { XM, EXq, CMP }, PREFIX_OPCODE },
},
/* PREFIX_0FC3 */
/* PREFIX_MOD_0_0FC3 */
{
{ "movntiS", { Ma, Gv }, PREFIX_OPCODE },
{ "movntiS", { Ev, Gv }, PREFIX_OPCODE },
},
/* PREFIX_MOD_0_0FC7_REG_6 */
@ -11826,9 +11827,13 @@ static const struct dis386 mod_table[][2] = {
/* MOD_0FB5 */
{ "lgsS", { Gv, Mp }, 0 },
},
{
/* MOD_0FC3 */
{ PREFIX_TABLE (PREFIX_MOD_0_0FC3) },
},
{
/* MOD_0FC7_REG_3 */
{ "xrstors", { FXSAVE }, 0 },
{ "xrstors", { FXSAVE }, 0 },
},
{
/* MOD_0FC7_REG_4 */