gas/testsuite/
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 20 Sep 2007 20:13:26 +0000 (20:13 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 20 Sep 2007 20:13:26 +0000 (20:13 +0000)
2007-09-20  H.J. Lu  <hongjiu.lu@intel.com>

* gas/i386/sib.s: Add more eiz tests.
* gas/i386/x86-64-sib.s: Add more riz tests.

* gas/i386/sib-intel.d: Updated.
* gas/i386/sib.d: Likewise.
* gas/i386/x86-64-sib-intel.d: Likewise.
* gas/i386/x86-64-sib.d: Likewise.

opcodes/

2007-09-20  H.J. Lu  <hongjiu.lu@intel.com>

* i386-dis.c (OP_E_extended): Display eiz for [eiz*1 + offset].

gas/testsuite/ChangeLog
gas/testsuite/gas/i386/sib-intel.d
gas/testsuite/gas/i386/sib.d
gas/testsuite/gas/i386/sib.s
gas/testsuite/gas/i386/x86-64-sib-intel.d
gas/testsuite/gas/i386/x86-64-sib.d
gas/testsuite/gas/i386/x86-64-sib.s
opcodes/ChangeLog
opcodes/i386-dis.c

index 279a5d8..37f054c 100644 (file)
@@ -1,5 +1,15 @@
 2007-09-20  H.J. Lu  <hongjiu.lu@intel.com>
 
+       * gas/i386/sib.s: Add more eiz tests.
+       * gas/i386/x86-64-sib.s: Add more riz tests.
+
+       * gas/i386/sib-intel.d: Updated.
+       * gas/i386/sib.d: Likewise.
+       * gas/i386/x86-64-sib-intel.d: Likewise.
+       * gas/i386/x86-64-sib.d: Likewise.
+
+2007-09-20  H.J. Lu  <hongjiu.lu@intel.com>
+
        PR 658
        * gas/i386/i386.exp: Run sib-intel, x86-64-sib and
        x86-64-sib-intel.
index 707f74a..27709eb 100644 (file)
@@ -7,13 +7,45 @@
 Disassembly of section .text:
 
 0+ <foo>:
+[      ]*[a-f0-9]+:    8b 1d e2 ff ff ff       mov    ebx,DWORD PTR ds:0xffffffe2
+[      ]*[a-f0-9]+:    8b 1c 25 e2 ff ff ff    mov    ebx,DWORD PTR \[eiz\*1-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 25 e2 ff ff ff    mov    eax,DWORD PTR \[eiz\*1-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 65 e2 ff ff ff    mov    eax,DWORD PTR \[eiz\*2-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 a5 e2 ff ff ff    mov    eax,DWORD PTR \[eiz\*4-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 e5 e2 ff ff ff    mov    eax,DWORD PTR \[eiz\*8-0x1e\]
+[      ]*[a-f0-9]+:    a1 1e 00 00 00          mov    eax,ds:0x1e
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    eax,DWORD PTR \[eiz\*1\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    eax,DWORD PTR \[eiz\*1\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 65 1e 00 00 00    mov    eax,DWORD PTR \[eiz\*2\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 a5 1e 00 00 00    mov    eax,DWORD PTR \[eiz\*4\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 e5 1e 00 00 00    mov    eax,DWORD PTR \[eiz\*8\+0x1e\]
 [      ]*[a-f0-9]+:    8b 03                   mov    eax,DWORD PTR \[ebx\]
 [      ]*[a-f0-9]+:    8b 04 23                mov    eax,DWORD PTR \[ebx\+eiz\*1\]
+[      ]*[a-f0-9]+:    8b 04 23                mov    eax,DWORD PTR \[ebx\+eiz\*1\]
+[      ]*[a-f0-9]+:    8b 04 63                mov    eax,DWORD PTR \[ebx\+eiz\*2\]
+[      ]*[a-f0-9]+:    8b 04 a3                mov    eax,DWORD PTR \[ebx\+eiz\*4\]
+[      ]*[a-f0-9]+:    8b 04 e3                mov    eax,DWORD PTR \[ebx\+eiz\*8\]
+[      ]*[a-f0-9]+:    8b 04 24                mov    eax,DWORD PTR \[esp\]
+[      ]*[a-f0-9]+:    8b 04 24                mov    eax,DWORD PTR \[esp\]
+[      ]*[a-f0-9]+:    8b 04 64                mov    eax,DWORD PTR \[esp\+eiz\*2\]
+[      ]*[a-f0-9]+:    8b 04 a4                mov    eax,DWORD PTR \[esp\+eiz\*4\]
+[      ]*[a-f0-9]+:    8b 04 e4                mov    eax,DWORD PTR \[esp\+eiz\*8\]
+[      ]*[a-f0-9]+:    8b 04 25 e2 ff ff ff    mov    eax,DWORD PTR \[eiz\*1-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 65 e2 ff ff ff    mov    eax,DWORD PTR \[eiz\*2-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 a5 e2 ff ff ff    mov    eax,DWORD PTR \[eiz\*4-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 e5 e2 ff ff ff    mov    eax,DWORD PTR \[eiz\*8-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    eax,DWORD PTR \[eiz\*1\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 65 1e 00 00 00    mov    eax,DWORD PTR \[eiz\*2\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 a5 1e 00 00 00    mov    eax,DWORD PTR \[eiz\*4\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 e5 1e 00 00 00    mov    eax,DWORD PTR \[eiz\*8\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 23                mov    eax,DWORD PTR \[ebx\+eiz\*1\]
+[      ]*[a-f0-9]+:    8b 04 23                mov    eax,DWORD PTR \[ebx\+eiz\*1\]
 [      ]*[a-f0-9]+:    8b 04 63                mov    eax,DWORD PTR \[ebx\+eiz\*2\]
 [      ]*[a-f0-9]+:    8b 04 a3                mov    eax,DWORD PTR \[ebx\+eiz\*4\]
 [      ]*[a-f0-9]+:    8b 04 e3                mov    eax,DWORD PTR \[ebx\+eiz\*8\]
 [      ]*[a-f0-9]+:    8b 04 24                mov    eax,DWORD PTR \[esp\]
 [      ]*[a-f0-9]+:    8b 04 24                mov    eax,DWORD PTR \[esp\]
+[      ]*[a-f0-9]+:    8b 04 24                mov    eax,DWORD PTR \[esp\]
 [      ]*[a-f0-9]+:    8b 04 64                mov    eax,DWORD PTR \[esp\+eiz\*2\]
 [      ]*[a-f0-9]+:    8b 04 a4                mov    eax,DWORD PTR \[esp\+eiz\*4\]
 [      ]*[a-f0-9]+:    8b 04 e4                mov    eax,DWORD PTR \[esp\+eiz\*8\]
index 574a308..0ece418 100644 (file)
@@ -6,13 +6,45 @@
 Disassembly of section .text:
 
 0+ <foo>:
+[      ]*[a-f0-9]+:    8b 1d e2 ff ff ff       mov    0xffffffe2,%ebx
+[      ]*[a-f0-9]+:    8b 1c 25 e2 ff ff ff    mov    -0x1e\(,%eiz,1\),%ebx
+[      ]*[a-f0-9]+:    8b 04 25 e2 ff ff ff    mov    -0x1e\(,%eiz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 65 e2 ff ff ff    mov    -0x1e\(,%eiz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a5 e2 ff ff ff    mov    -0x1e\(,%eiz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e5 e2 ff ff ff    mov    -0x1e\(,%eiz,8\),%eax
+[      ]*[a-f0-9]+:    a1 1e 00 00 00          mov    0x1e,%eax
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    0x1e\(,%eiz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    0x1e\(,%eiz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 65 1e 00 00 00    mov    0x1e\(,%eiz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a5 1e 00 00 00    mov    0x1e\(,%eiz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e5 1e 00 00 00    mov    0x1e\(,%eiz,8\),%eax
 [      ]*[a-f0-9]+:    8b 03                   mov    \(%ebx\),%eax
 [      ]*[a-f0-9]+:    8b 04 23                mov    \(%ebx,%eiz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 23                mov    \(%ebx,%eiz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 63                mov    \(%ebx,%eiz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a3                mov    \(%ebx,%eiz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e3                mov    \(%ebx,%eiz,8\),%eax
+[      ]*[a-f0-9]+:    8b 04 24                mov    \(%esp\),%eax
+[      ]*[a-f0-9]+:    8b 04 24                mov    \(%esp\),%eax
+[      ]*[a-f0-9]+:    8b 04 64                mov    \(%esp,%eiz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a4                mov    \(%esp,%eiz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e4                mov    \(%esp,%eiz,8\),%eax
+[      ]*[a-f0-9]+:    8b 04 25 e2 ff ff ff    mov    -0x1e\(,%eiz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 65 e2 ff ff ff    mov    -0x1e\(,%eiz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a5 e2 ff ff ff    mov    -0x1e\(,%eiz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e5 e2 ff ff ff    mov    -0x1e\(,%eiz,8\),%eax
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    0x1e\(,%eiz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 65 1e 00 00 00    mov    0x1e\(,%eiz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a5 1e 00 00 00    mov    0x1e\(,%eiz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e5 1e 00 00 00    mov    0x1e\(,%eiz,8\),%eax
+[      ]*[a-f0-9]+:    8b 04 23                mov    \(%ebx,%eiz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 23                mov    \(%ebx,%eiz,1\),%eax
 [      ]*[a-f0-9]+:    8b 04 63                mov    \(%ebx,%eiz,2\),%eax
 [      ]*[a-f0-9]+:    8b 04 a3                mov    \(%ebx,%eiz,4\),%eax
 [      ]*[a-f0-9]+:    8b 04 e3                mov    \(%ebx,%eiz,8\),%eax
 [      ]*[a-f0-9]+:    8b 04 24                mov    \(%esp\),%eax
 [      ]*[a-f0-9]+:    8b 04 24                mov    \(%esp\),%eax
+[      ]*[a-f0-9]+:    8b 04 24                mov    \(%esp\),%eax
 [      ]*[a-f0-9]+:    8b 04 64                mov    \(%esp,%eiz,2\),%eax
 [      ]*[a-f0-9]+:    8b 04 a4                mov    \(%esp,%eiz,4\),%eax
 [      ]*[a-f0-9]+:    8b 04 e4                mov    \(%esp,%eiz,8\),%eax
index f11d6d2..430da42 100644 (file)
@@ -3,7 +3,20 @@
        .text
        .allow_index_reg
 foo:
+       mov     -30,%ebx
+       mov     -30(,%eiz),%ebx
+       mov     -30(,%eiz,1),%eax
+       mov     -30(,%eiz,2),%eax
+       mov     -30(,%eiz,4),%eax
+       mov     -30(,%eiz,8),%eax
+       mov     30,%eax
+       mov     30(,%eiz),%eax
+       mov     30(,%eiz,1),%eax
+       mov     30(,%eiz,2),%eax
+       mov     30(,%eiz,4),%eax
+       mov     30(,%eiz,8),%eax
        mov     (%ebx),%eax
+       mov     (%ebx,%eiz),%eax
        mov     (%ebx,%eiz,1),%eax
        mov     (%ebx,%eiz,2),%eax
        mov     (%ebx,%eiz,4),%eax
@@ -13,4 +26,24 @@ foo:
        mov     (%esp,%eiz,2),%eax
        mov     (%esp,%eiz,4),%eax
        mov     (%esp,%eiz,8),%eax
+       .intel_syntax noprefix
+        mov    eax,DWORD PTR [eiz*1-30]
+        mov    eax,DWORD PTR [eiz*2-30]
+        mov    eax,DWORD PTR [eiz*4-30]
+        mov    eax,DWORD PTR [eiz*8-30]
+        mov    eax,DWORD PTR [eiz*1+30]
+        mov    eax,DWORD PTR [eiz*2+30]
+        mov    eax,DWORD PTR [eiz*4+30]
+        mov    eax,DWORD PTR [eiz*8+30]
+        mov    eax,DWORD PTR [ebx+eiz]
+        mov    eax,DWORD PTR [ebx+eiz*1]
+        mov    eax,DWORD PTR [ebx+eiz*2]
+        mov    eax,DWORD PTR [ebx+eiz*4]
+        mov    eax,DWORD PTR [ebx+eiz*8]
+        mov    eax,DWORD PTR [esp]
+        mov    eax,DWORD PTR [esp+eiz]
+        mov    eax,DWORD PTR [esp+eiz*1]
+        mov    eax,DWORD PTR [esp+eiz*2]
+        mov    eax,DWORD PTR [esp+eiz*4]
+        mov    eax,DWORD PTR [esp+eiz*8]
        .p2align 4
index 0dce66f..1ae72ea 100644 (file)
@@ -8,13 +8,45 @@
 Disassembly of section .text:
 
 0+ <foo>:
+[      ]*[a-f0-9]+:    8b 1c 25 e2 ff ff ff    mov    ebx,DWORD PTR ds:0xffffffffffffffe2
+[      ]*[a-f0-9]+:    8b 1c 25 e2 ff ff ff    mov    ebx,DWORD PTR ds:0xffffffffffffffe2
+[      ]*[a-f0-9]+:    8b 04 25 e2 ff ff ff    mov    eax,DWORD PTR ds:0xffffffffffffffe2
+[      ]*[a-f0-9]+:    8b 04 65 e2 ff ff ff    mov    eax,DWORD PTR \[riz\*2-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 a5 e2 ff ff ff    mov    eax,DWORD PTR \[riz\*4-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 e5 e2 ff ff ff    mov    eax,DWORD PTR \[riz\*8-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    eax,DWORD PTR ds:0x1e
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    eax,DWORD PTR ds:0x1e
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    eax,DWORD PTR ds:0x1e
+[      ]*[a-f0-9]+:    8b 04 65 1e 00 00 00    mov    eax,DWORD PTR \[riz\*2\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 a5 1e 00 00 00    mov    eax,DWORD PTR \[riz\*4\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 e5 1e 00 00 00    mov    eax,DWORD PTR \[riz\*8\+0x1e\]
 [      ]*[a-f0-9]+:    8b 03                   mov    eax,DWORD PTR \[rbx\]
 [      ]*[a-f0-9]+:    8b 04 23                mov    eax,DWORD PTR \[rbx\+riz\*1\]
+[      ]*[a-f0-9]+:    8b 04 23                mov    eax,DWORD PTR \[rbx\+riz\*1\]
+[      ]*[a-f0-9]+:    8b 04 63                mov    eax,DWORD PTR \[rbx\+riz\*2\]
+[      ]*[a-f0-9]+:    8b 04 a3                mov    eax,DWORD PTR \[rbx\+riz\*4\]
+[      ]*[a-f0-9]+:    8b 04 e3                mov    eax,DWORD PTR \[rbx\+riz\*8\]
+[      ]*[a-f0-9]+:    8b 04 24                mov    eax,DWORD PTR \[rsp\]
+[      ]*[a-f0-9]+:    8b 04 24                mov    eax,DWORD PTR \[rsp\]
+[      ]*[a-f0-9]+:    8b 04 64                mov    eax,DWORD PTR \[rsp\+riz\*2\]
+[      ]*[a-f0-9]+:    8b 04 a4                mov    eax,DWORD PTR \[rsp\+riz\*4\]
+[      ]*[a-f0-9]+:    8b 04 e4                mov    eax,DWORD PTR \[rsp\+riz\*8\]
+[      ]*[a-f0-9]+:    8b 04 25 e2 ff ff ff    mov    eax,DWORD PTR ds:0xffffffffffffffe2
+[      ]*[a-f0-9]+:    8b 04 65 e2 ff ff ff    mov    eax,DWORD PTR \[riz\*2-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 a5 e2 ff ff ff    mov    eax,DWORD PTR \[riz\*4-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 e5 e2 ff ff ff    mov    eax,DWORD PTR \[riz\*8-0x1e\]
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    eax,DWORD PTR ds:0x1e
+[      ]*[a-f0-9]+:    8b 04 65 1e 00 00 00    mov    eax,DWORD PTR \[riz\*2\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 a5 1e 00 00 00    mov    eax,DWORD PTR \[riz\*4\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 e5 1e 00 00 00    mov    eax,DWORD PTR \[riz\*8\+0x1e\]
+[      ]*[a-f0-9]+:    8b 04 23                mov    eax,DWORD PTR \[rbx\+riz\*1\]
+[      ]*[a-f0-9]+:    8b 04 23                mov    eax,DWORD PTR \[rbx\+riz\*1\]
 [      ]*[a-f0-9]+:    8b 04 63                mov    eax,DWORD PTR \[rbx\+riz\*2\]
 [      ]*[a-f0-9]+:    8b 04 a3                mov    eax,DWORD PTR \[rbx\+riz\*4\]
 [      ]*[a-f0-9]+:    8b 04 e3                mov    eax,DWORD PTR \[rbx\+riz\*8\]
 [      ]*[a-f0-9]+:    8b 04 24                mov    eax,DWORD PTR \[rsp\]
 [      ]*[a-f0-9]+:    8b 04 24                mov    eax,DWORD PTR \[rsp\]
+[      ]*[a-f0-9]+:    8b 04 24                mov    eax,DWORD PTR \[rsp\]
 [      ]*[a-f0-9]+:    8b 04 64                mov    eax,DWORD PTR \[rsp\+riz\*2\]
 [      ]*[a-f0-9]+:    8b 04 a4                mov    eax,DWORD PTR \[rsp\+riz\*4\]
 [      ]*[a-f0-9]+:    8b 04 e4                mov    eax,DWORD PTR \[rsp\+riz\*8\]
index 32e02be..f6d7315 100644 (file)
@@ -7,13 +7,45 @@
 Disassembly of section .text:
 
 0+ <foo>:
+[      ]*[a-f0-9]+:    8b 1c 25 e2 ff ff ff    mov    0xffffffffffffffe2,%ebx
+[      ]*[a-f0-9]+:    8b 1c 25 e2 ff ff ff    mov    0xffffffffffffffe2,%ebx
+[      ]*[a-f0-9]+:    8b 04 25 e2 ff ff ff    mov    0xffffffffffffffe2,%eax
+[      ]*[a-f0-9]+:    8b 04 65 e2 ff ff ff    mov    -0x1e\(,%riz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a5 e2 ff ff ff    mov    -0x1e\(,%riz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e5 e2 ff ff ff    mov    -0x1e\(,%riz,8\),%eax
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    0x1e,%eax
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    0x1e,%eax
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    0x1e,%eax
+[      ]*[a-f0-9]+:    8b 04 65 1e 00 00 00    mov    0x1e\(,%riz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a5 1e 00 00 00    mov    0x1e\(,%riz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e5 1e 00 00 00    mov    0x1e\(,%riz,8\),%eax
 [      ]*[a-f0-9]+:    8b 03                   mov    \(%rbx\),%eax
 [      ]*[a-f0-9]+:    8b 04 23                mov    \(%rbx,%riz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 23                mov    \(%rbx,%riz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 63                mov    \(%rbx,%riz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a3                mov    \(%rbx,%riz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e3                mov    \(%rbx,%riz,8\),%eax
+[      ]*[a-f0-9]+:    8b 04 24                mov    \(%rsp\),%eax
+[      ]*[a-f0-9]+:    8b 04 24                mov    \(%rsp\),%eax
+[      ]*[a-f0-9]+:    8b 04 64                mov    \(%rsp,%riz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a4                mov    \(%rsp,%riz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e4                mov    \(%rsp,%riz,8\),%eax
+[      ]*[a-f0-9]+:    8b 04 25 e2 ff ff ff    mov    0xffffffffffffffe2,%eax
+[      ]*[a-f0-9]+:    8b 04 65 e2 ff ff ff    mov    -0x1e\(,%riz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a5 e2 ff ff ff    mov    -0x1e\(,%riz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e5 e2 ff ff ff    mov    -0x1e\(,%riz,8\),%eax
+[      ]*[a-f0-9]+:    8b 04 25 1e 00 00 00    mov    0x1e,%eax
+[      ]*[a-f0-9]+:    8b 04 65 1e 00 00 00    mov    0x1e\(,%riz,2\),%eax
+[      ]*[a-f0-9]+:    8b 04 a5 1e 00 00 00    mov    0x1e\(,%riz,4\),%eax
+[      ]*[a-f0-9]+:    8b 04 e5 1e 00 00 00    mov    0x1e\(,%riz,8\),%eax
+[      ]*[a-f0-9]+:    8b 04 23                mov    \(%rbx,%riz,1\),%eax
+[      ]*[a-f0-9]+:    8b 04 23                mov    \(%rbx,%riz,1\),%eax
 [      ]*[a-f0-9]+:    8b 04 63                mov    \(%rbx,%riz,2\),%eax
 [      ]*[a-f0-9]+:    8b 04 a3                mov    \(%rbx,%riz,4\),%eax
 [      ]*[a-f0-9]+:    8b 04 e3                mov    \(%rbx,%riz,8\),%eax
 [      ]*[a-f0-9]+:    8b 04 24                mov    \(%rsp\),%eax
 [      ]*[a-f0-9]+:    8b 04 24                mov    \(%rsp\),%eax
+[      ]*[a-f0-9]+:    8b 04 24                mov    \(%rsp\),%eax
 [      ]*[a-f0-9]+:    8b 04 64                mov    \(%rsp,%riz,2\),%eax
 [      ]*[a-f0-9]+:    8b 04 a4                mov    \(%rsp,%riz,4\),%eax
 [      ]*[a-f0-9]+:    8b 04 e4                mov    \(%rsp,%riz,8\),%eax
index 26ab395..38f4241 100644 (file)
@@ -3,7 +3,20 @@
        .text
        .allow_index_reg
 foo:
+       mov     -30,%ebx
+       mov     -30(,%riz),%ebx
+       mov     -30(,%riz,1),%eax
+       mov     -30(,%riz,2),%eax
+       mov     -30(,%riz,4),%eax
+       mov     -30(,%riz,8),%eax
+       mov     30,%eax
+       mov     30(,%riz),%eax
+       mov     30(,%riz,1),%eax
+       mov     30(,%riz,2),%eax
+       mov     30(,%riz,4),%eax
+       mov     30(,%riz,8),%eax
        mov     (%rbx),%eax
+       mov     (%rbx,%riz),%eax
        mov     (%rbx,%riz,1),%eax
        mov     (%rbx,%riz,2),%eax
        mov     (%rbx,%riz,4),%eax
@@ -13,4 +26,24 @@ foo:
        mov     (%rsp,%riz,2),%eax
        mov     (%rsp,%riz,4),%eax
        mov     (%rsp,%riz,8),%eax
+       .intel_syntax noprefix
+        mov    eax,DWORD PTR [riz*1-30]
+        mov    eax,DWORD PTR [riz*2-30]
+        mov    eax,DWORD PTR [riz*4-30]
+        mov    eax,DWORD PTR [riz*8-30]
+        mov    eax,DWORD PTR [riz*1+30]
+        mov    eax,DWORD PTR [riz*2+30]
+        mov    eax,DWORD PTR [riz*4+30]
+        mov    eax,DWORD PTR [riz*8+30]
+        mov    eax,DWORD PTR [rbx+riz]
+        mov    eax,DWORD PTR [rbx+riz*1]
+        mov    eax,DWORD PTR [rbx+riz*2]
+        mov    eax,DWORD PTR [rbx+riz*4]
+        mov    eax,DWORD PTR [rbx+riz*8]
+        mov    eax,DWORD PTR [rsp]
+        mov    eax,DWORD PTR [rsp+riz]
+        mov    eax,DWORD PTR [rsp+riz*1]
+        mov    eax,DWORD PTR [rsp+riz*2]
+        mov    eax,DWORD PTR [rsp+riz*4]
+        mov    eax,DWORD PTR [rsp+riz*8]
        .p2align 4
index 88be05e..584e24c 100644 (file)
@@ -1,5 +1,9 @@
 2007-09-20  H.J. Lu  <hongjiu.lu@intel.com>
 
+       * i386-dis.c (OP_E_extended): Display eiz for [eiz*1 + offset].
+
+2007-09-20  H.J. Lu  <hongjiu.lu@intel.com>
+
        PR 658
        * 386-dis.c (index64): New.
        (index32): Likewise.
index 9a45e91..ecb428f 100644 (file)
@@ -6314,6 +6314,7 @@ OP_E_extended (int bytemode, int sizeflag, int has_drex)
       int havesib;
       int havebase;
       int haveindex;
+      int needindex;
       int base;
       int index = 0;
       int scale = 0;
@@ -6368,7 +6369,15 @@ OP_E_extended (int bytemode, int sizeflag, int has_drex)
          break;
        }
 
-      havedisp = havebase || (havesib && (haveindex || scale != 0));
+      /* In 32bit mode, we need index register to tell [offset] from
+        [eiz*1 + offset].  */
+      needindex = (havesib
+                  && !havebase
+                  && !haveindex
+                  && address_mode == mode_32bit);
+      havedisp = (havebase
+                 || needindex
+                 || (havesib && (haveindex || scale != 0)));
 
       if (!intel_syntax)
        if (modrm.mod != 0 || (base & 7) == 5)
@@ -6402,6 +6411,7 @@ OP_E_extended (int bytemode, int sizeflag, int has_drex)
              /* ESP/RSP won't allow index.  If base isn't ESP/RSP,
                 print index to tell base + index from base.  */
              if (scale != 0
+                 || needindex
                  || haveindex
                  || (havebase && base != ESP_REG_NUM))
                {