From b5b1fc4fc87efdc058c12a6fe26e8387cc744b86 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 10 Jan 2008 14:52:35 +0000 Subject: [PATCH] gas/testsuite/ 2008-01-10 H.J. Lu * 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 * 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. --- gas/testsuite/ChangeLog | 9 +++ gas/testsuite/gas/i386/nops.d | 67 +++++++++++++++----- gas/testsuite/gas/i386/nops.s | 45 +++++++++++++- gas/testsuite/gas/i386/x86-64-nops.d | 93 +++++++++++++++++++--------- gas/testsuite/gas/i386/x86-64-nops.s | 45 +++++++++++++- opcodes/ChangeLog | 8 +++ opcodes/i386-dis.c | 22 +++---- 7 files changed, 229 insertions(+), 60 deletions(-) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index fb0aa85364d..4a2d55c7fcf 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2008-01-10 H.J. Lu + + * 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 * 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 dc01585a69d..1fe43e29c92 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 9dddb42b9ea..1397ec56f0e 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 91636192535..72bde05e8cd 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 2268e7f5769..961f3d48020 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 5afdccfb91a..3cdbe9778d3 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,11 @@ +2008-01-10 H.J. Lu + + * 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 * i386-gen.c (set_bitfield): Use fail () on error. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index b55e089c299..784563905c8 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 } }, -- 2.30.2