aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2008-01-10 14:52:35 +0000
committerH.J. Lu <hjl.tools@gmail.com>2008-01-10 14:52:35 +0000
commitb5b1fc4fc87efdc058c12a6fe26e8387cc744b86 (patch)
treea16eb2e28b3fc3459114d97c65c636fc490da9f4
parent71934f948a5d511b0d9f2fc0dd3dedca4cc9b84b (diff)
downloadbinutils-b5b1fc4fc87efdc058c12a6fe26e8387cc744b86.zip
binutils-b5b1fc4fc87efdc058c12a6fe26e8387cc744b86.tar.gz
binutils-b5b1fc4fc87efdc058c12a6fe26e8387cc744b86.tar.bz2
gas/testsuite/
2008-01-10 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/nops.s: Add more tests with opcodes from 0x0f19 to 0x0f1f. * gas/i386/x86-64-nops.s: Likewise. * gas/i386/nops.d: Updated. * gas/i386/x86-64-nops.d: Likewise. opcodes/ 2008-01-10 H.J. Lu <hongjiu.lu@intel.com> * i386-dis.c (REG_0F0E): Renamed to REG_0F0D. (REG_0F18): Updated. (reg_table): Updated. (dis386_twobyte): Updated. Use "nopQ" on 0x19 to 0x1e. (twobyte_has_modrm): Set 1 for 0x19 to 0x1e.
-rw-r--r--gas/testsuite/ChangeLog9
-rw-r--r--gas/testsuite/gas/i386/nops.d67
-rw-r--r--gas/testsuite/gas/i386/nops.s45
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops.d93
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops.s45
-rw-r--r--opcodes/ChangeLog8
-rw-r--r--opcodes/i386-dis.c22
7 files changed, 229 insertions, 60 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index fb0aa85..4a2d55c 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2008-01-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gas/i386/nops.s: Add more tests with opcodes from 0x0f19
+ to 0x0f1f.
+ * gas/i386/x86-64-nops.s: Likewise.
+
+ * gas/i386/nops.d: Updated.
+ * gas/i386/x86-64-nops.d: Likewise.
+
2008-01-09 Bob Wilson <bob.wilson@acm.org>
* gas/lns/lns.exp: Run new lns-big-delta test for targets that set
diff --git a/gas/testsuite/gas/i386/nops.d b/gas/testsuite/gas/i386/nops.d
index dc01585..1fe43e2 100644
--- a/gas/testsuite/gas/i386/nops.d
+++ b/gas/testsuite/gas/i386/nops.d
@@ -5,20 +5,55 @@
Disassembly of section .text:
-0+000 <.text>:
-[ ]*0:[ ]+0f 1f 00[ ]+nopl[ ]+\(%eax\)
-[ ]*3:[ ]+0f 1f 40 00[ ]+nopl[ ]+0x0\(%eax\)
-[ ]*7:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\)
-[ ]*c:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\)
-[ ]*12:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%eax\)
-[ ]*19:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%eax,%eax,1\)
-[ ]*21:[ ]+66 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+0x0\(%eax,%eax,1\)
-[ ]*2a:[ ]+66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%eax,%eax,1\)
-[ ]*34:[ ]+0f 1f 00[ ]+nopl[ ]+\(%eax\)
-[ ]*37:[ ]+0f 1f c0[ ]+nop[ ]+%eax
-[ ]*3a:[ ]+66 0f 1f c0[ ]+nop[ ]+%ax
-[ ]*3e:[ ]+0f 1f 00[ ]+nopl[ ]+\(%eax\)
-[ ]*41:[ ]+66 0f 1f 00[ ]+nopw[ ]+\(%eax\)
-[ ]*45:[ ]+0f 1f c0[ ]+nop[ ]+%eax
-[ ]*48:[ ]+66 0f 1f c0[ ]+nop[ ]+%ax
+0+ <.text>:
+[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
+[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
+[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
+[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: 0f 19 ff nop %edi
+[ ]*[a-f0-9]+: 0f 1a ff nop %edi
+[ ]*[a-f0-9]+: 0f 1b ff nop %edi
+[ ]*[a-f0-9]+: 0f 1c ff nop %edi
+[ ]*[a-f0-9]+: 0f 1d ff nop %edi
+[ ]*[a-f0-9]+: 0f 1e ff nop %edi
+[ ]*[a-f0-9]+: 0f 1f ff nop %edi
+[ ]*[a-f0-9]+: 0f 19 5a 22 nopl 0x22\(%edx\)
+[ ]*[a-f0-9]+: 0f 1a 5a 22 nopl 0x22\(%edx\)
+[ ]*[a-f0-9]+: 0f 1b 5a 22 nopl 0x22\(%edx\)
+[ ]*[a-f0-9]+: 0f 1c 5a 22 nopl 0x22\(%edx\)
+[ ]*[a-f0-9]+: 0f 1d 5a 22 nopl 0x22\(%edx\)
+[ ]*[a-f0-9]+: 0f 1e 5a 22 nopl 0x22\(%edx\)
+[ ]*[a-f0-9]+: 0f 1f 5a 22 nopl 0x22\(%edx\)
+[ ]*[a-f0-9]+: 0f 19 9c 1d 11 22 33 44 nopl 0x44332211\(%ebp,%ebx,1\)
+[ ]*[a-f0-9]+: 0f 1a 9c 1d 11 22 33 44 nopl 0x44332211\(%ebp,%ebx,1\)
+[ ]*[a-f0-9]+: 0f 1b 9c 1d 11 22 33 44 nopl 0x44332211\(%ebp,%ebx,1\)
+[ ]*[a-f0-9]+: 0f 1c 9c 1d 11 22 33 44 nopl 0x44332211\(%ebp,%ebx,1\)
+[ ]*[a-f0-9]+: 0f 1d 9c 1d 11 22 33 44 nopl 0x44332211\(%ebp,%ebx,1\)
+[ ]*[a-f0-9]+: 0f 1e 9c 1d 11 22 33 44 nopl 0x44332211\(%ebp,%ebx,1\)
+[ ]*[a-f0-9]+: 0f 1f 9c 1d 11 22 33 44 nopl 0x44332211\(%ebp,%ebx,1\)
+[ ]*[a-f0-9]+: 0f 19 04 60 nopl \(%eax,%eiz,2\)
+[ ]*[a-f0-9]+: 0f 1a 04 60 nopl \(%eax,%eiz,2\)
+[ ]*[a-f0-9]+: 0f 1b 04 60 nopl \(%eax,%eiz,2\)
+[ ]*[a-f0-9]+: 0f 1c 04 60 nopl \(%eax,%eiz,2\)
+[ ]*[a-f0-9]+: 0f 1d 04 60 nopl \(%eax,%eiz,2\)
+[ ]*[a-f0-9]+: 0f 1e 04 60 nopl \(%eax,%eiz,2\)
+[ ]*[a-f0-9]+: 0f 1f 04 60 nopl \(%eax,%eiz,2\)
+[ ]*[a-f0-9]+: 0f 19 04 59 nopl \(%ecx,%ebx,2\)
+[ ]*[a-f0-9]+: 0f 1a 04 59 nopl \(%ecx,%ebx,2\)
+[ ]*[a-f0-9]+: 0f 1b 04 59 nopl \(%ecx,%ebx,2\)
+[ ]*[a-f0-9]+: 0f 1c 04 59 nopl \(%ecx,%ebx,2\)
+[ ]*[a-f0-9]+: 0f 1d 04 59 nopl \(%ecx,%ebx,2\)
+[ ]*[a-f0-9]+: 0f 1e 04 59 nopl \(%ecx,%ebx,2\)
+[ ]*[a-f0-9]+: 0f 1f 04 59 nopl \(%ecx,%ebx,2\)
+[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
+[ ]*[a-f0-9]+: 0f 1f c0 nop %eax
+[ ]*[a-f0-9]+: 66 0f 1f c0 nop %ax
+[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
+[ ]*[a-f0-9]+: 66 0f 1f 00 nopw \(%eax\)
+[ ]*[a-f0-9]+: 0f 1f c0 nop %eax
+[ ]*[a-f0-9]+: 66 0f 1f c0 nop %ax
#pass
diff --git a/gas/testsuite/gas/i386/nops.s b/gas/testsuite/gas/i386/nops.s
index 9dddb42..1397ec5 100644
--- a/gas/testsuite/gas/i386/nops.s
+++ b/gas/testsuite/gas/i386/nops.s
@@ -9,6 +9,49 @@
.byte 0x66, 0x0f, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0
.byte 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0
+ # reg,reg
+ .byte 0x0f, 0x19, 0xff
+ .byte 0x0f, 0x1a, 0xff
+ .byte 0x0f, 0x1b, 0xff
+ .byte 0x0f, 0x1c, 0xff
+ .byte 0x0f, 0x1d, 0xff
+ .byte 0x0f, 0x1e, 0xff
+ .byte 0x0f, 0x1f, 0xff
+
+ # with base and imm8
+ .byte 0x0f, 0x19, 0x5A, 0x22
+ .byte 0x0f, 0x1a, 0x5A, 0x22
+ .byte 0x0f, 0x1b, 0x5A, 0x22
+ .byte 0x0f, 0x1c, 0x5A, 0x22
+ .byte 0x0f, 0x1d, 0x5A, 0x22
+ .byte 0x0f, 0x1e, 0x5A, 0x22
+ .byte 0x0f, 0x1f, 0x5A, 0x22
+
+ # with sib and imm32
+ .byte 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1a, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1b, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1c, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1d, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1e, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1f, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+
+ .byte 0x0f, 0x19, 0x04, 0x60
+ .byte 0x0f, 0x1a, 0x04, 0x60
+ .byte 0x0f, 0x1b, 0x04, 0x60
+ .byte 0x0f, 0x1c, 0x04, 0x60
+ .byte 0x0f, 0x1d, 0x04, 0x60
+ .byte 0x0f, 0x1e, 0x04, 0x60
+ .byte 0x0f, 0x1f, 0x04, 0x60
+
+ .byte 0x0f, 0x19, 0x04, 0x59
+ .byte 0x0f, 0x1a, 0x04, 0x59
+ .byte 0x0f, 0x1b, 0x04, 0x59
+ .byte 0x0f, 0x1c, 0x04, 0x59
+ .byte 0x0f, 0x1d, 0x04, 0x59
+ .byte 0x0f, 0x1e, 0x04, 0x59
+ .byte 0x0f, 0x1f, 0x04, 0x59
+
nop (%eax)
nop %eax
nop %ax
@@ -16,5 +59,3 @@
nopw (%eax)
nopl %eax
nopw %ax
-
- .p2align 4
diff --git a/gas/testsuite/gas/i386/x86-64-nops.d b/gas/testsuite/gas/i386/x86-64-nops.d
index 9163619..72bde05 100644
--- a/gas/testsuite/gas/i386/x86-64-nops.d
+++ b/gas/testsuite/gas/i386/x86-64-nops.d
@@ -5,33 +5,68 @@
Disassembly of section .text:
-0+000 <.text>:
-[ ]*0:[ ]+0f 1f 00[ ]+nopl[ ]+\(%rax\)
-[ ]*3:[ ]+0f 1f 40 00[ ]+nopl[ ]+0x0\(%rax\)
-[ ]*7:[ ]+0f 1f 44 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\)
-[ ]*c:[ ]+66 0f 1f 44 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\)
-[ ]*12:[ ]+0f 1f 80 00 00 00 00[ ]+nopl[ ]+0x0\(%rax\)
-[ ]*19:[ ]+0f 1f 84 00 00 00 00 00[ ]+nopl[ ]+0x0\(%rax,%rax,1\)
-[ ]*21:[ ]+66 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+0x0\(%rax,%rax,1\)
-[ ]*2a:[ ]+66 2e 0f 1f 84 00 00 00 00 00[ ]+nopw[ ]+%cs:0x0\(%rax,%rax,1\)
-[ ]*34:[ ]+0f 1f 00[ ]+nopl[ ]+\(%rax\)
-[ ]*37:[ ]+48 0f 1f c0[ ]+nop[ ]+%rax
-[ ]*3b:[ ]+0f 1f c0[ ]+nop[ ]+%eax
-[ ]*3e:[ ]+66 0f 1f c0[ ]+nop[ ]+%ax
-[ ]*42:[ ]+48 0f 1f 00[ ]+nopq[ ]+\(%rax\)
-[ ]*46:[ ]+0f 1f 00[ ]+nopl[ ]+\(%rax\)
-[ ]*49:[ ]+66 0f 1f 00[ ]+nopw[ ]+\(%rax\)
-[ ]*4d:[ ]+48 0f 1f c0[ ]+nop[ ]+%rax
-[ ]*51:[ ]+0f 1f c0[ ]+nop[ ]+%eax
-[ ]*54:[ ]+66 0f 1f c0[ ]+nop[ ]+%ax
-[ ]*58:[ ]+41 0f 1f 02[ ]+nopl[ ]+\(%r10\)
-[ ]*5c:[ ]+49 0f 1f c2[ ]+nop[ ]+%r10
-[ ]*60:[ ]+41 0f 1f c2[ ]+nop[ ]+%r10d
-[ ]*64:[ ]+66 41 0f 1f c2[ ]+nop[ ]+%r10w
-[ ]*69:[ ]+49 0f 1f 02[ ]+nopq[ ]+\(%r10\)
-[ ]*6d:[ ]+41 0f 1f 02[ ]+nopl[ ]+\(%r10\)
-[ ]*71:[ ]+66 41 0f 1f 02[ ]+nopw[ ]+\(%r10\)
-[ ]*76:[ ]+49 0f 1f c2[ ]+nop[ ]+%r10
-[ ]*7a:[ ]+41 0f 1f c2[ ]+nop[ ]+%r10d
-[ ]*7e:[ ]+66 41 0f 1f c2[ ]+nop[ ]+%r10w
+0+ <.text>:
+[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
+[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
+[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
+[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: 0f 19 ff nop %edi
+[ ]*[a-f0-9]+: 0f 1a ff nop %edi
+[ ]*[a-f0-9]+: 0f 1b ff nop %edi
+[ ]*[a-f0-9]+: 0f 1c ff nop %edi
+[ ]*[a-f0-9]+: 0f 1d ff nop %edi
+[ ]*[a-f0-9]+: 0f 1e ff nop %edi
+[ ]*[a-f0-9]+: 0f 1f ff nop %edi
+[ ]*[a-f0-9]+: 0f 19 5a 22 nopl 0x22\(%rdx\)
+[ ]*[a-f0-9]+: 0f 1a 5a 22 nopl 0x22\(%rdx\)
+[ ]*[a-f0-9]+: 0f 1b 5a 22 nopl 0x22\(%rdx\)
+[ ]*[a-f0-9]+: 0f 1c 5a 22 nopl 0x22\(%rdx\)
+[ ]*[a-f0-9]+: 0f 1d 5a 22 nopl 0x22\(%rdx\)
+[ ]*[a-f0-9]+: 0f 1e 5a 22 nopl 0x22\(%rdx\)
+[ ]*[a-f0-9]+: 0f 1f 5a 22 nopl 0x22\(%rdx\)
+[ ]*[a-f0-9]+: 0f 19 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\)
+[ ]*[a-f0-9]+: 0f 1a 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\)
+[ ]*[a-f0-9]+: 0f 1b 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\)
+[ ]*[a-f0-9]+: 0f 1c 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\)
+[ ]*[a-f0-9]+: 0f 1d 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\)
+[ ]*[a-f0-9]+: 0f 1e 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\)
+[ ]*[a-f0-9]+: 0f 1f 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\)
+[ ]*[a-f0-9]+: 0f 19 04 60 nopl \(%rax,%riz,2\)
+[ ]*[a-f0-9]+: 0f 1a 04 60 nopl \(%rax,%riz,2\)
+[ ]*[a-f0-9]+: 0f 1b 04 60 nopl \(%rax,%riz,2\)
+[ ]*[a-f0-9]+: 0f 1c 04 60 nopl \(%rax,%riz,2\)
+[ ]*[a-f0-9]+: 0f 1d 04 60 nopl \(%rax,%riz,2\)
+[ ]*[a-f0-9]+: 0f 1e 04 60 nopl \(%rax,%riz,2\)
+[ ]*[a-f0-9]+: 0f 1f 04 60 nopl \(%rax,%riz,2\)
+[ ]*[a-f0-9]+: 0f 19 04 59 nopl \(%rcx,%rbx,2\)
+[ ]*[a-f0-9]+: 0f 1a 04 59 nopl \(%rcx,%rbx,2\)
+[ ]*[a-f0-9]+: 0f 1b 04 59 nopl \(%rcx,%rbx,2\)
+[ ]*[a-f0-9]+: 0f 1c 04 59 nopl \(%rcx,%rbx,2\)
+[ ]*[a-f0-9]+: 0f 1d 04 59 nopl \(%rcx,%rbx,2\)
+[ ]*[a-f0-9]+: 0f 1e 04 59 nopl \(%rcx,%rbx,2\)
+[ ]*[a-f0-9]+: 0f 1f 04 59 nopl \(%rcx,%rbx,2\)
+[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
+[ ]*[a-f0-9]+: 48 0f 1f c0 nop %rax
+[ ]*[a-f0-9]+: 0f 1f c0 nop %eax
+[ ]*[a-f0-9]+: 66 0f 1f c0 nop %ax
+[ ]*[a-f0-9]+: 48 0f 1f 00 nopq \(%rax\)
+[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
+[ ]*[a-f0-9]+: 66 0f 1f 00 nopw \(%rax\)
+[ ]*[a-f0-9]+: 48 0f 1f c0 nop %rax
+[ ]*[a-f0-9]+: 0f 1f c0 nop %eax
+[ ]*[a-f0-9]+: 66 0f 1f c0 nop %ax
+[ ]*[a-f0-9]+: 41 0f 1f 02 nopl \(%r10\)
+[ ]*[a-f0-9]+: 49 0f 1f c2 nop %r10
+[ ]*[a-f0-9]+: 41 0f 1f c2 nop %r10d
+[ ]*[a-f0-9]+: 66 41 0f 1f c2 nop %r10w
+[ ]*[a-f0-9]+: 49 0f 1f 02 nopq \(%r10\)
+[ ]*[a-f0-9]+: 41 0f 1f 02 nopl \(%r10\)
+[ ]*[a-f0-9]+: 66 41 0f 1f 02 nopw \(%r10\)
+[ ]*[a-f0-9]+: 49 0f 1f c2 nop %r10
+[ ]*[a-f0-9]+: 41 0f 1f c2 nop %r10d
+[ ]*[a-f0-9]+: 66 41 0f 1f c2 nop %r10w
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops.s b/gas/testsuite/gas/i386/x86-64-nops.s
index 2268e7f..961f3d4 100644
--- a/gas/testsuite/gas/i386/x86-64-nops.s
+++ b/gas/testsuite/gas/i386/x86-64-nops.s
@@ -9,6 +9,49 @@
.byte 0x66, 0x0f, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0
.byte 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0
+ # reg,reg
+ .byte 0x0f, 0x19, 0xff
+ .byte 0x0f, 0x1a, 0xff
+ .byte 0x0f, 0x1b, 0xff
+ .byte 0x0f, 0x1c, 0xff
+ .byte 0x0f, 0x1d, 0xff
+ .byte 0x0f, 0x1e, 0xff
+ .byte 0x0f, 0x1f, 0xff
+
+ # with base and imm8
+ .byte 0x0f, 0x19, 0x5A, 0x22
+ .byte 0x0f, 0x1a, 0x5A, 0x22
+ .byte 0x0f, 0x1b, 0x5A, 0x22
+ .byte 0x0f, 0x1c, 0x5A, 0x22
+ .byte 0x0f, 0x1d, 0x5A, 0x22
+ .byte 0x0f, 0x1e, 0x5A, 0x22
+ .byte 0x0f, 0x1f, 0x5A, 0x22
+
+ # with sib and imm32
+ .byte 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1a, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1b, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1c, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1d, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1e, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+ .byte 0x0f, 0x1f, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44
+
+ .byte 0x0f, 0x19, 0x04, 0x60
+ .byte 0x0f, 0x1a, 0x04, 0x60
+ .byte 0x0f, 0x1b, 0x04, 0x60
+ .byte 0x0f, 0x1c, 0x04, 0x60
+ .byte 0x0f, 0x1d, 0x04, 0x60
+ .byte 0x0f, 0x1e, 0x04, 0x60
+ .byte 0x0f, 0x1f, 0x04, 0x60
+
+ .byte 0x0f, 0x19, 0x04, 0x59
+ .byte 0x0f, 0x1a, 0x04, 0x59
+ .byte 0x0f, 0x1b, 0x04, 0x59
+ .byte 0x0f, 0x1c, 0x04, 0x59
+ .byte 0x0f, 0x1d, 0x04, 0x59
+ .byte 0x0f, 0x1e, 0x04, 0x59
+ .byte 0x0f, 0x1f, 0x04, 0x59
+
nop (%rax)
nop %rax
nop %eax
@@ -29,5 +72,3 @@
nopq %r10
nopl %r10d
nopw %r10w
-
- .p2align 4
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 5afdccf..3cdbe97 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,11 @@
+2008-01-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * i386-dis.c (REG_0F0E): Renamed to REG_0F0D.
+ (REG_0F18): Updated.
+ (reg_table): Updated.
+ (dis386_twobyte): Updated. Use "nopQ" on 0x19 to 0x1e.
+ (twobyte_has_modrm): Set 1 for 0x19 to 0x1e.
+
2008-01-08 H.J. Lu <hongjiu.lu@intel.com>
* i386-gen.c (set_bitfield): Use fail () on error.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index b55e089..7845639 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -491,8 +491,8 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
#define REG_FF (REG_FE + 1)
#define REG_0F00 (REG_FF + 1)
#define REG_0F01 (REG_0F00 + 1)
-#define REG_0F0E (REG_0F01 + 1)
-#define REG_0F18 (REG_0F0E + 1)
+#define REG_0F0D (REG_0F01 + 1)
+#define REG_0F18 (REG_0F0D + 1)
#define REG_0F71 (REG_0F18 + 1)
#define REG_0F72 (REG_0F71 + 1)
#define REG_0F73 (REG_0F72 + 1)
@@ -1067,7 +1067,7 @@ static const struct dis386 dis386_twobyte[] = {
{ "(bad)", { XX } },
{ "ud2a", { XX } },
{ "(bad)", { XX } },
- { REG_TABLE (REG_0F0E) },
+ { REG_TABLE (REG_0F0D) },
{ "femms", { XX } },
{ "", { MX, EM, OPSUF } }, /* See OP_3DNowSuffix. */
/* 10 */
@@ -1081,12 +1081,12 @@ static const struct dis386 dis386_twobyte[] = {
{ MOD_TABLE (MOD_0F17) },
/* 18 */
{ REG_TABLE (REG_0F18) },
- { "(bad)", { XX } },
- { "(bad)", { XX } },
- { "(bad)", { XX } },
- { "(bad)", { XX } },
- { "(bad)", { XX } },
- { "(bad)", { XX } },
+ { "nopQ", { Ev } },
+ { "nopQ", { Ev } },
+ { "nopQ", { Ev } },
+ { "nopQ", { Ev } },
+ { "nopQ", { Ev } },
+ { "nopQ", { Ev } },
{ "nopQ", { Ev } },
/* 20 */
{ MOD_TABLE (MOD_0F20) },
@@ -1369,7 +1369,7 @@ static const unsigned char twobyte_has_modrm[256] = {
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
/* ------------------------------- */
/* 00 */ 1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1, /* 0f */
- /* 10 */ 1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1, /* 1f */
+ /* 10 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 1f */
/* 20 */ 1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1, /* 2f */
/* 30 */ 0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, /* 3f */
/* 40 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 4f */
@@ -1679,7 +1679,7 @@ static const struct dis386 reg_table[][8] = {
{ "lmsw", { Ew } },
{ MOD_TABLE (MOD_0F01_REG_7) },
},
- /* REG_0F0E */
+ /* REG_0F0D */
{
{ "prefetch", { Eb } },
{ "prefetchw", { Eb } },