aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2000-02-25 11:41:12 +0000
committerAlan Modra <amodra@gmail.com>2000-02-25 11:41:12 +0000
commitcc5ca5ce5139c777067fb023a9dfd7a4fefa23b3 (patch)
treed7675c6d48427aaa22ed6e75ccae6bc3e2a52cc7 /gas
parentfa7928cae2fddfa55f3958dd5abc6a8ed2f56c13 (diff)
downloadgdb-cc5ca5ce5139c777067fb023a9dfd7a4fefa23b3.zip
gdb-cc5ca5ce5139c777067fb023a9dfd7a4fefa23b3.tar.gz
gdb-cc5ca5ce5139c777067fb023a9dfd7a4fefa23b3.tar.bz2
Extend the i386 gas testsuite to do some tests for intel_syntax. Fix all
the errors exposed by this addition. These were intel mode "fi... word ptr", "fi... dword ptr", "jmp Imm seg, Imm offset", "out dx,al". The failure with intel "out dx,al" was also present in att "out al,dx". Extend testsuite to catch this case too.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog11
-rw-r--r--gas/config/tc-i386.c24
-rw-r--r--gas/testsuite/ChangeLog8
-rw-r--r--gas/testsuite/gas/i386/general.l369
-rw-r--r--gas/testsuite/gas/i386/general.s18
-rw-r--r--gas/testsuite/gas/i386/i386.exp1
-rw-r--r--gas/testsuite/gas/i386/intel.d574
-rw-r--r--gas/testsuite/gas/i386/intel.s568
8 files changed, 1385 insertions, 188 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 574ac0a..feb81f8 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,14 @@
+2000-02-25 Alan Modra <alan@spri.levels.unisa.edu.au>
+
+ * config/tc-i386.c (md_assemble): Don't swap intersegment jmp and
+ call operands when intel_syntax.
+ (intel_float_operand): Return 2 for "fi...".
+ (i386_operand_modifier): Change "DWORD PTR" test to suit above.
+ Return SHORT_MNEM_SUFFIX for "WORD PTR" when "fi...". Revert
+ earlier "SHORT" change.
+ (md_assemble): When determining suffix from Regs, exclude
+ InOutPortReg.
+
2000-02-24 Nick Clifton <nickc@cygnus.com>
* configure: Add arm-wince, mips-pe and sh-pe targets.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index cfc666b..3e202b7 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -974,7 +974,7 @@ intel_float_operand (mnemonic)
char *mnemonic;
{
if (mnemonic[0] == 'f' && mnemonic[1] =='i')
- return 0;
+ return 2;
if (mnemonic[0] == 'f')
return 1;
@@ -1265,10 +1265,15 @@ md_assemble (line)
unsigned int found_reverse_match;
int suffix_check;
- /* All intel opcodes have reversed operands except for BOUND and ENTER */
+ /* All intel opcodes have reversed operands except for "bound" and
+ "enter". We also don't reverse intersegment "jmp" and "call"
+ instructions with 2 immediate operands so that the immediate segment
+ precedes the offset, as it does when in AT&T mode. "enter" and the
+ intersegment "jmp" and "call" instructions are the only ones that
+ have two immediate operands. */
if (intel_syntax && i.operands > 1
- && (strcmp (mnemonic, "enter") != 0)
- && (strcmp (mnemonic, "bound") != 0))
+ && (strcmp (mnemonic, "bound") != 0)
+ && !((i.types[0] & Imm) && (i.types[1] & Imm)))
{
union i386_op temp_op;
unsigned int temp_type;
@@ -1491,7 +1496,8 @@ md_assemble (line)
register type. */
int op;
for (op = i.operands; --op >= 0; )
- if (i.types[op] & Reg)
+ if ((i.types[op] & Reg)
+ && !(i.tm.operand_types[op] & InOutPortReg))
{
i.suffix = ((i.types[op] & Reg8) ? BYTE_MNEM_SUFFIX :
(i.types[op] & Reg16) ? WORD_MNEM_SUFFIX :
@@ -2818,14 +2824,17 @@ i386_operand_modifier (op_string, got_a_float)
}
else if (!strncasecmp (*op_string, "WORD PTR", 8))
{
- i.suffix = WORD_MNEM_SUFFIX;
+ if (got_a_float == 2) /* "fi..." */
+ i.suffix = SHORT_MNEM_SUFFIX;
+ else
+ i.suffix = WORD_MNEM_SUFFIX;
*op_string += 8;
return WORD_PTR;
}
else if (!strncasecmp (*op_string, "DWORD PTR", 9))
{
- if (got_a_float)
+ if (got_a_float == 1) /* "f..." */
i.suffix = SHORT_MNEM_SUFFIX;
else
i.suffix = LONG_MNEM_SUFFIX;
@@ -2849,7 +2858,6 @@ i386_operand_modifier (op_string, got_a_float)
else if (!strncasecmp (*op_string, "SHORT", 5))
{
- i.suffix = WORD_MNEM_SUFFIX;
*op_string += 5;
return SHORT;
}
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index da48575..8b5b855 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2000-02-25 Alan Modra <alan@spri.levels.unisa.edu.au>
+
+ * gas/i386/intel.s: New file, intel version of opcode.s
+ * gas/i386/intel.d: New file, copy opcode.d
+
+ * gas/i386/general.s: Add extra "out" instructions.
+ * gas/i386/general.l: Likewise.
+
2000-01-31 Nick Clifton <nickc@cygnus.com>
* gas/arm/inst.s: Include test of ATPCS register naming
diff --git a/gas/testsuite/gas/i386/general.l b/gas/testsuite/gas/i386/general.l
index a6fc584..5f1041b 100644
--- a/gas/testsuite/gas/i386/general.l
+++ b/gas/testsuite/gas/i386/general.l
@@ -3,20 +3,6 @@
.*:12: Warning:.*
.*:19: Warning:.*
.*:22: Warning:.*
-.*:81: Warning:.*
-.*:82: Warning:.*
-.*:83: Warning:.*
-.*:84: Warning:.*
-.*:85: Warning:.*
-.*:86: Warning:.*
-.*:87: Warning:.*
-.*:88: Warning:.*
-.*:89: Warning:.*
-.*:90: Warning:.*
-.*:91: Warning:.*
-.*:92: Warning:.*
-.*:93: Warning:.*
-.*:94: Warning:.*
.*:95: Warning:.*
.*:96: Warning:.*
.*:97: Warning:.*
@@ -24,17 +10,31 @@
.*:99: Warning:.*
.*:100: Warning:.*
.*:101: Warning:.*
-.*:135: Warning:.*
-.*:162: Warning:.*
-.*:164: Warning:.*
-.*:166: Warning:.*
-.*:168: Warning:.*
-.*:170: Warning:.*
+.*:102: Warning:.*
+.*:103: Warning:.*
+.*:104: Warning:.*
+.*:105: Warning:.*
+.*:106: Warning:.*
+.*:107: Warning:.*
+.*:108: Warning:.*
+.*:109: Warning:.*
+.*:110: Warning:.*
+.*:111: Warning:.*
+.*:112: Warning:.*
+.*:113: Warning:.*
+.*:114: Warning:.*
+.*:115: Warning:.*
+.*:149: Warning:.*
.*:176: Warning:.*
.*:178: Warning:.*
.*:180: Warning:.*
.*:182: Warning:.*
.*:184: Warning:.*
+.*:190: Warning:.*
+.*:192: Warning:.*
+.*:194: Warning:.*
+.*:196: Warning:.*
+.*:198: Warning:.*
1 .psize 0
2 .text
3 # test various segment reg insns
@@ -102,162 +102,175 @@
61 0081 E4FF inb \$255
62 0083 66E502 inw \$2
63 0086 E504 inl \$4
- 64 0088 EF outl %eax,%dx
- 65 0089 E62A out %al, \$42
- 66 008b 66E50D in \$13, %ax
- 67 # These are used in AIX.
- 68 008e 66ED inw \(%dx\)
- 69 0090 66EF outw \(%dx\)
- 70
- 71 0092 A4 movsb
- 72 0093 66A7 cmpsw
- 73 0095 AF scasl
- 74 0096 D7 xlatb
- 75 0097 2EA5 movsl %cs:\(%esi\),%es:\(%edi\)
- 76 0099 0F9303 setae \(%ebx\)
- 77 009c 0F9303 setaeb \(%ebx\)
- 78 009f 0F93C0 setae %al
- 79
- 80 #these should give warnings
- 81 00a2 0C01 orb \$1,%ax
-.*Warning:.*
- 82 00a4 0C01 orb \$1,%eax
-.*Warning:.*
- 83 00a6 80CB01 orb \$1,%bx
-.*Warning:.*
- 84 00a9 80CB01 orb \$1,%ebx
-.*Warning:.*
- 85 00ac D9C1 fldl %st\(1\)
-.*Warning:.*
- 86 00ae DDD2 fstl %st\(2\)
-.*Warning:.*
- 87 00b0 DDDB fstpl %st\(3\)
-.*Warning:.*
- 88 00b2 D8D4 fcoml %st\(4\)
-.*Warning:.*
- 89 00b4 D8DD fcompl %st\(5\)
-.*Warning:.*
- 90 00b6 DEC1 faddp %st\(1\),%st
-.*Warning:.*
- 91 00b8 DECA fmulp %st\(2\),%st
-.*Warning:.*
- 92 00ba DEE3 fsubp %st\(3\),%st
-.*Warning:.*
- 93 00bc DEEC fsubrp %st\(4\),%st
-.*Warning:.*
- 94 00be DEF5 fdivp %st\(5\),%st
-.*Warning:.*
- 95 00c0 DEFE fdivrp %st\(6\),%st
-.*Warning:.*
- 96 00c2 DEC1 fadd
-.*Warning:.*
- 97 00c4 DEE1 fsub
-.*Warning:.*
- 98 00c6 DEC9 fmul
-.*Warning:.*
- 99 00c8 DEF1 fdiv
-.*Warning:.*
- 100 00ca DEE9 fsubr
-.*Warning:.*
- 101 00cc DEF9 fdivr
-.*Warning:.*
- 102 #these should all be legal
- 103 00ce 0FA31556 341200 btl %edx, 0x123456
- 104 00d5 0FA3D0 btl %edx, %eax
- 105 00d8 0C01 orb \$1,%al
- 106 00da 80CB01 orb \$1,%bl
- 107 00dd A1110000 00 movl 17,%eax
- 108 00e2 A1110000 00 mov 17,%eax
- 109 00e7 66ED inw %dx,%ax
- 110 00e9 ED inl %dx,%eax
- 111 00ea 66ED inw \(%dx\),%ax
- 112 00ec ED inl \(%dx\),%eax
- 113 00ed EC in \(%dx\),%al
- 114 00ee 66ED in \(%dx\),%ax
- 115 00f0 ED in \(%dx\),%eax
- 116 00f1 0FB61437 movzbl \(%edi,%esi\),%edx
- 117 00f5 0FB6451C movzbl 28\(%ebp\),%eax
- 118 00f9 0FB6C0 movzbl %al,%eax
- 119 00fc 0FB6F1 movzbl %cl,%esi
- 120 00ff 26D7 xlat %es:\(%ebx\)
- 121 0101 D7 xlat
- 122 0102 D7 xlatb
- 123 0103 DDD8 1: fstp %st\(0\)
- 124 0105 E2FC loop 1b
- 125 0107 F6F1 divb %cl
- 126 0109 66F7F1 divw %cx
- 127 010c F7F1 divl %ecx
- 128 010e F6F1 div %cl
- 129 0110 66F7F1 div %cx
- 130 0113 F7F1 div %ecx
- 131 0115 F6F1 div %cl,%al
- 132 0117 66F7F1 div %cx,%ax
- 133 011a F7F1 div %ecx,%eax
- 134 011c 8EDE mov %si,%ds
- 135 011e 8EDE movl %si,%ds # warning here
-.*Warning:.*
- 136 0120 1E pushl %ds
- 137 0121 1E push %ds
- 138 0122 A0000000 00 mov 0,%al
- 139 0127 66A10000 0100 mov 0x10000,%ax
- 140 012d 89C3 mov %eax,%ebx
- 141 012f 9C pushf
- 142 0130 9C pushfl
- 143 0131 669C pushfw
- 144 0133 9D popf
- 145 0134 9D popfl
- 146 0135 669D popfw
- 147 0137 89341D00 000000 mov %esi,\(,%ebx,1\)
- 148 013e 80250000 00007F andb \$~0x80,foo
- 149
- 150 #check 16-bit code auto address prefix
- 151 .code16gcc
- 152 0145 67668D95 00FFFFFF leal -256\(%ebp\),%edx
- 153 014d 6788857F FFFFFF mov %al,-129\(%ebp\)
- 154 0154 67886580 mov %ah,-128\(%ebp\)
- 155 0158 67668D9D 20F9FFFF leal -1760\(%ebp\),%ebx
- 156 0160 67668984 248C0000 movl %eax,140\(%esp\)
- 156 00
- 157
- 158 .code32
- 159 0169 EB98 jmp 1b
- 160 016b E9(FCFF|90FE)FF FF jmp xxx
- 161 0170 FF250000 0000 jmp \*xxx
- 162 0176 FF250000 0000 jmp xxx\(,1\)
-.*Warning:.*
- 163 017c FFE7 jmp \*%edi
- 164 017e FFE7 jmp %edi
-.*Warning:.*
- 165 0180 FF27 jmp \*\(%edi\)
- 166 0182 FF27 jmp \(%edi\)
-.*Warning:.*
- 167 0184 FF2CBD00 000000 ljmp \*xxx\(,%edi,4\)
- 168 018b FF2CBD00 000000 ljmp xxx\(,%edi,4\)
-.*Warning:.*
- 169 0192 FF2D0000 0000 ljmp \*xxx
- 170 0198 FF2D0000 0000 ljmp xxx\(,1\)
-.*Warning:.*
- 171 019e EA000000 003412 ljmp \$0x1234,\$xxx
- 172
- 173 01a5 E859FFFF FF call 1b
- 174 01aa E8(FCFF|51FE)FF FF call xxx
- 175 01af FF150000 0000 call \*xxx
- 176 01b5 FF150000 0000 call xxx\(,1\)
-.*Warning:.*
- 177 01bb FFD7 call \*%edi
- 178 01bd FFD7 call %edi
-.*Warning:.*
- 179 01bf FF17 call \*\(%edi\)
- 180 01c1 FF17 call \(%edi\)
-.*Warning:.*
- 181 01c3 FF1CBD00 000000 lcall \*xxx\(,%edi,4\)
- 182 01ca FF1CBD00 000000 lcall xxx\(,%edi,4\)
-.*Warning:.*
- 183 01d1 FF1D0000 0000 lcall \*xxx
- 184 01d7 FF1D0000 0000 lcall xxx\(,1\)
-.*Warning:.*
- 185 01dd 9A000000 003412 lcall \$0x1234,\$xxx
+ 64 0088 66E50D in \$13, %ax
+ 65 008b EE out %al,%dx
+ 66 008c 66EF out %ax,%dx
+ 67 008e EF out %eax,%dx
+ 68 008f EE out %al,\(%dx\)
+ 69 0090 66EF out %ax,\(%dx\)
+ 70 0092 EF out %eax,\(%dx\)
+ 71 0093 EE outb %al,%dx
+ 72 0094 66EF outw %ax,%dx
+ 73 0096 EF outl %eax,%dx
+ 74 0097 EE outb %dx
+ 75 0098 66EF outw %dx
+ 76 009a EF outl %dx
+ 77 009b E6FF outb \$255
+ 78 009d 66E702 outw \$2
+ 79 00a0 E704 outl \$4
+ 80 00a2 66E70D out %ax, \$13
+ 81 # These are used in AIX.
+ 82 00a5 66ED inw \(%dx\)
+ 83 00a7 66EF outw \(%dx\)
+ 84
+ 85 00a9 A4 movsb
+ 86 00aa 66A7 cmpsw
+ 87 00ac AF scasl
+ 88 00ad D7 xlatb
+ 89 00ae 2EA5 movsl %cs:\(%esi\),%es:\(%edi\)
+ 90 00b0 0F9303 setae \(%ebx\)
+ 91 00b3 0F9303 setaeb \(%ebx\)
+ 92 00b6 0F93C0 setae %al
+ 93
+ 94 #these should give warnings
+ 95 00b9 0C01 orb \$1,%ax
+.*Warning:.*
+ 96 00bb 0C01 orb \$1,%eax
+.*Warning:.*
+ 97 00bd 80CB01 orb \$1,%bx
+.*Warning:.*
+ 98 00c0 80CB01 orb \$1,%ebx
+.*Warning:.*
+ 99 00c3 D9C1 fldl %st\(1\)
+.*Warning:.*
+ 100 00c5 DDD2 fstl %st\(2\)
+.*Warning:.*
+ 101 00c7 DDDB fstpl %st\(3\)
+.*Warning:.*
+ 102 00c9 D8D4 fcoml %st\(4\)
+.*Warning:.*
+ 103 00cb D8DD fcompl %st\(5\)
+.*Warning:.*
+ 104 00cd DEC1 faddp %st\(1\),%st
+.*Warning:.*
+ 105 00cf DECA fmulp %st\(2\),%st
+.*Warning:.*
+ 106 00d1 DEE3 fsubp %st\(3\),%st
+.*Warning:.*
+ 107 00d3 DEEC fsubrp %st\(4\),%st
+.*Warning:.*
+ 108 00d5 DEF5 fdivp %st\(5\),%st
+.*Warning:.*
+ 109 00d7 DEFE fdivrp %st\(6\),%st
+.*Warning:.*
+ 110 00d9 DEC1 fadd
+.*Warning:.*
+ 111 00db DEE1 fsub
+.*Warning:.*
+ 112 00dd DEC9 fmul
+.*Warning:.*
+ 113 00df DEF1 fdiv
+.*Warning:.*
+ 114 00e1 DEE9 fsubr
+.*Warning:.*
+ 115 00e3 DEF9 fdivr
+.*Warning:.*
+ 116 #these should all be legal
+ 117 00e5 0FA31556 341200 btl %edx, 0x123456
+ 118 00ec 0FA3D0 btl %edx, %eax
+ 119 00ef 0C01 orb \$1,%al
+ 120 00f1 80CB01 orb \$1,%bl
+ 121 00f4 A1110000 00 movl 17,%eax
+ 122 00f9 A1110000 00 mov 17,%eax
+ 123 00fe 66ED inw %dx,%ax
+ 124 0100 ED inl %dx,%eax
+ 125 0101 66ED inw \(%dx\),%ax
+ 126 0103 ED inl \(%dx\),%eax
+ 127 0104 EC in \(%dx\),%al
+ 128 0105 66ED in \(%dx\),%ax
+ 129 0107 ED in \(%dx\),%eax
+ 130 0108 0FB61437 movzbl \(%edi,%esi\),%edx
+ 131 010c 0FB6451C movzbl 28\(%ebp\),%eax
+ 132 0110 0FB6C0 movzbl %al,%eax
+ 133 0113 0FB6F1 movzbl %cl,%esi
+ 134 0116 26D7 xlat %es:\(%ebx\)
+ 135 0118 D7 xlat
+ 136 0119 D7 xlatb
+ 137 011a DDD8 1: fstp %st\(0\)
+ 138 011c E2FC loop 1b
+ 139 011e F6F1 divb %cl
+ 140 0120 66F7F1 divw %cx
+ 141 0123 F7F1 divl %ecx
+ 142 0125 F6F1 div %cl
+ 143 0127 66F7F1 div %cx
+ 144 012a F7F1 div %ecx
+ 145 012c F6F1 div %cl,%al
+ 146 012e 66F7F1 div %cx,%ax
+ 147 0131 F7F1 div %ecx,%eax
+ 148 0133 8EDE mov %si,%ds
+ 149 0135 8EDE movl %si,%ds # warning here
+.*Warning:.*
+ 150 0137 1E pushl %ds
+ 151 0138 1E push %ds
+ 152 0139 A0000000 00 mov 0,%al
+ 153 013e 66A10000 0100 mov 0x10000,%ax
+ 154 0144 89C3 mov %eax,%ebx
+ 155 0146 9C pushf
+ 156 0147 9C pushfl
+ 157 0148 669C pushfw
+ 158 014a 9D popf
+ 159 014b 9D popfl
+ 160 014c 669D popfw
+ 161 014e 89341D00 000000 mov %esi,\(,%ebx,1\)
+ 162 0155 80250000 00007F andb \$~0x80,foo
+ 163
+ 164 #check 16-bit code auto address prefix
+ 165 .code16gcc
+ 166 015c 67668D95 00FFFFFF leal -256\(%ebp\),%edx
+ 167 0164 6788857F FFFFFF mov %al,-129\(%ebp\)
+ 168 016b 67886580 mov %ah,-128\(%ebp\)
+ 169 016f 67668D9D 20F9FFFF leal -1760\(%ebp\),%ebx
+ 170 0177 67668984 248C0000 movl %eax,140\(%esp\)
+ 170 00
+ 171
+ 172 .code32
+ 173 0180 EB98 jmp 1b
+ 174 0182 E9(FCFF|90FE)FF FF jmp xxx
+ 175 0187 FF250000 0000 jmp \*xxx
+ 176 018d FF250000 0000 jmp xxx\(,1\)
+.*Warning:.*
+ 177 0193 FFE7 jmp \*%edi
+ 178 0195 FFE7 jmp %edi
+.*Warning:.*
+ 179 0197 FF27 jmp \*\(%edi\)
+ 180 0199 FF27 jmp \(%edi\)
+.*Warning:.*
+ 181 019b FF2CBD00 000000 ljmp \*xxx\(,%edi,4\)
+ 182 01a2 FF2CBD00 000000 ljmp xxx\(,%edi,4\)
+.*Warning:.*
+ 183 01a9 FF2D0000 0000 ljmp \*xxx
+ 184 01af FF2D0000 0000 ljmp xxx\(,1\)
+.*Warning:.*
+ 185 01b5 EA000000 003412 ljmp \$0x1234,\$xxx
186
- 187 # Force a good alignment.
- 188 01e4 00000000 00000000 .p2align 4,0
- 188 00000000
+ 187 01bc E859FFFF FF call 1b
+ 188 01c1 E8(FCFF|51FE)FF FF call xxx
+ 189 01c6 FF150000 0000 call \*xxx
+ 190 01cc FF150000 0000 call xxx\(,1\)
+.*Warning:.*
+ 191 01d2 FFD7 call \*%edi
+ 192 01d4 FFD7 call %edi
+.*Warning:.*
+ 193 01d6 FF17 call \*\(%edi\)
+ 194 01d8 FF17 call \(%edi\)
+.*Warning:.*
+ 195 01da FF1CBD00 000000 lcall \*xxx\(,%edi,4\)
+ 196 01e1 FF1CBD00 000000 lcall xxx\(,%edi,4\)
+.*Warning:.*
+ 197 01e8 FF1D0000 0000 lcall \*xxx
+ 198 01ee FF1D0000 0000 lcall xxx\(,1\)
+.*Warning:.*
+ 199 01f4 9A000000 003412 lcall \$0x1234,\$xxx
+ 200
+ 201 # Force a good alignment.
+ 202 01fb 00000000 00 .p2align 4,0
diff --git a/gas/testsuite/gas/i386/general.s b/gas/testsuite/gas/i386/general.s
index c794157..8d08dbf 100644
--- a/gas/testsuite/gas/i386/general.s
+++ b/gas/testsuite/gas/i386/general.s
@@ -61,9 +61,23 @@
inb $255
inw $2
inl $4
- outl %eax,%dx
- out %al, $42
in $13, %ax
+ out %al,%dx
+ out %ax,%dx
+ out %eax,%dx
+ out %al,(%dx)
+ out %ax,(%dx)
+ out %eax,(%dx)
+ outb %al,%dx
+ outw %ax,%dx
+ outl %eax,%dx
+ outb %dx
+ outw %dx
+ outl %dx
+ outb $255
+ outw $2
+ outl $4
+ out %ax, $13
# These are used in AIX.
inw (%dx)
outw (%dx)
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index a431bb6..13ac8ef 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -23,6 +23,7 @@ if [istarget "i*86-*-*"] then {
run_list_test "modrm" "-al --listing-lhs-width=2"
run_dump_test "naked"
run_dump_test "opcode"
+ run_dump_test "intel"
run_dump_test "prefix"
run_dump_test "amd"
run_dump_test "katmai"
diff --git a/gas/testsuite/gas/i386/intel.d b/gas/testsuite/gas/i386/intel.d
new file mode 100644
index 0000000..76f0f8a
--- /dev/null
+++ b/gas/testsuite/gas/i386/intel.d
@@ -0,0 +1,574 @@
+#as: -J
+#objdump: -dw
+#name: i386 intel
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+000 <foo>:
+ 0: 00 90 90 90 90 90 [ ]*add %dl,0x90909090\(%eax\)
+ 6: 01 90 90 90 90 90 [ ]*add %edx,0x90909090\(%eax\)
+ c: 02 90 90 90 90 90 [ ]*add 0x90909090\(%eax\),%dl
+ 12: 03 90 90 90 90 90 [ ]*add 0x90909090\(%eax\),%edx
+ 18: 04 90 [ ]*add \$0x90,%al
+ 1a: 05 90 90 90 90 [ ]*add \$0x90909090,%eax
+ 1f: 06 [ ]*push %es
+ 20: 07 [ ]*pop %es
+ 21: 08 90 90 90 90 90 [ ]*or %dl,0x90909090\(%eax\)
+ 27: 09 90 90 90 90 90 [ ]*or %edx,0x90909090\(%eax\)
+ 2d: 0a 90 90 90 90 90 [ ]*or 0x90909090\(%eax\),%dl
+ 33: 0b 90 90 90 90 90 [ ]*or 0x90909090\(%eax\),%edx
+ 39: 0c 90 [ ]*or \$0x90,%al
+ 3b: 0d 90 90 90 90 [ ]*or \$0x90909090,%eax
+ 40: 0e [ ]*push %cs
+ 41: 10 90 90 90 90 90 [ ]*adc %dl,0x90909090\(%eax\)
+ 47: 11 90 90 90 90 90 [ ]*adc %edx,0x90909090\(%eax\)
+ 4d: 12 90 90 90 90 90 [ ]*adc 0x90909090\(%eax\),%dl
+ 53: 13 90 90 90 90 90 [ ]*adc 0x90909090\(%eax\),%edx
+ 59: 14 90 [ ]*adc \$0x90,%al
+ 5b: 15 90 90 90 90 [ ]*adc \$0x90909090,%eax
+ 60: 16 [ ]*push %ss
+ 61: 17 [ ]*pop %ss
+ 62: 18 90 90 90 90 90 [ ]*sbb %dl,0x90909090\(%eax\)
+ 68: 19 90 90 90 90 90 [ ]*sbb %edx,0x90909090\(%eax\)
+ 6e: 1a 90 90 90 90 90 [ ]*sbb 0x90909090\(%eax\),%dl
+ 74: 1b 90 90 90 90 90 [ ]*sbb 0x90909090\(%eax\),%edx
+ 7a: 1c 90 [ ]*sbb \$0x90,%al
+ 7c: 1d 90 90 90 90 [ ]*sbb \$0x90909090,%eax
+ 81: 1e [ ]*push %ds
+ 82: 1f [ ]*pop %ds
+ 83: 20 90 90 90 90 90 [ ]*and %dl,0x90909090\(%eax\)
+ 89: 21 90 90 90 90 90 [ ]*and %edx,0x90909090\(%eax\)
+ 8f: 22 90 90 90 90 90 [ ]*and 0x90909090\(%eax\),%dl
+ 95: 23 90 90 90 90 90 [ ]*and 0x90909090\(%eax\),%edx
+ 9b: 24 90 [ ]*and \$0x90,%al
+ 9d: 25 90 90 90 90 [ ]*and \$0x90909090,%eax
+ a2: 27 [ ]*daa
+ a3: 28 90 90 90 90 90 [ ]*sub %dl,0x90909090\(%eax\)
+ a9: 29 90 90 90 90 90 [ ]*sub %edx,0x90909090\(%eax\)
+ af: 2a 90 90 90 90 90 [ ]*sub 0x90909090\(%eax\),%dl
+ b5: 2b 90 90 90 90 90 [ ]*sub 0x90909090\(%eax\),%edx
+ bb: 2c 90 [ ]*sub \$0x90,%al
+ bd: 2d 90 90 90 90 [ ]*sub \$0x90909090,%eax
+ c2: 2f [ ]*das
+ c3: 30 90 90 90 90 90 [ ]*xor %dl,0x90909090\(%eax\)
+ c9: 31 90 90 90 90 90 [ ]*xor %edx,0x90909090\(%eax\)
+ cf: 32 90 90 90 90 90 [ ]*xor 0x90909090\(%eax\),%dl
+ d5: 33 90 90 90 90 90 [ ]*xor 0x90909090\(%eax\),%edx
+ db: 34 90 [ ]*xor \$0x90,%al
+ dd: 35 90 90 90 90 [ ]*xor \$0x90909090,%eax
+ e2: 37 [ ]*aaa
+ e3: 38 90 90 90 90 90 [ ]*cmp %dl,0x90909090\(%eax\)
+ e9: 39 90 90 90 90 90 [ ]*cmp %edx,0x90909090\(%eax\)
+ ef: 3a 90 90 90 90 90 [ ]*cmp 0x90909090\(%eax\),%dl
+ f5: 3b 90 90 90 90 90 [ ]*cmp 0x90909090\(%eax\),%edx
+ fb: 3c 90 [ ]*cmp \$0x90,%al
+ fd: 3d 90 90 90 90 [ ]*cmp \$0x90909090,%eax
+ 102: 3f [ ]*aas
+ 103: 40 [ ]*inc %eax
+ 104: 41 [ ]*inc %ecx
+ 105: 42 [ ]*inc %edx
+ 106: 43 [ ]*inc %ebx
+ 107: 44 [ ]*inc %esp
+ 108: 45 [ ]*inc %ebp
+ 109: 46 [ ]*inc %esi
+ 10a: 47 [ ]*inc %edi
+ 10b: 48 [ ]*dec %eax
+ 10c: 49 [ ]*dec %ecx
+ 10d: 4a [ ]*dec %edx
+ 10e: 4b [ ]*dec %ebx
+ 10f: 4c [ ]*dec %esp
+ 110: 4d [ ]*dec %ebp
+ 111: 4e [ ]*dec %esi
+ 112: 4f [ ]*dec %edi
+ 113: 50 [ ]*push %eax
+ 114: 51 [ ]*push %ecx
+ 115: 52 [ ]*push %edx
+ 116: 53 [ ]*push %ebx
+ 117: 54 [ ]*push %esp
+ 118: 55 [ ]*push %ebp
+ 119: 56 [ ]*push %esi
+ 11a: 57 [ ]*push %edi
+ 11b: 58 [ ]*pop %eax
+ 11c: 59 [ ]*pop %ecx
+ 11d: 5a [ ]*pop %edx
+ 11e: 5b [ ]*pop %ebx
+ 11f: 5c [ ]*pop %esp
+ 120: 5d [ ]*pop %ebp
+ 121: 5e [ ]*pop %esi
+ 122: 5f [ ]*pop %edi
+ 123: 60 [ ]*pusha
+ 124: 61 [ ]*popa
+ 125: 62 90 90 90 90 90 [ ]*bound %edx,0x90909090\(%eax\)
+ 12b: 63 90 90 90 90 90 [ ]*arpl %dx,0x90909090\(%eax\)
+ 131: 68 90 90 90 90 [ ]*push \$0x90909090
+ 136: 69 90 90 90 90 90 90 90 90 90 [ ]*imul \$0x90909090,0x90909090\(%eax\),%edx
+ 140: 6a 90 [ ]*push \$0xffffff90
+ 142: 6b 90 90 90 90 90 90 [ ]*imul \$0xffffff90,0x90909090\(%eax\),%edx
+ 149: 6c [ ]*insb \(%dx\),%es:\(%edi\)
+ 14a: 6d [ ]*insl \(%dx\),%es:\(%edi\)
+ 14b: 6e [ ]*outsb %ds:\(%esi\),\(%dx\)
+ 14c: 6f [ ]*outsl %ds:\(%esi\),\(%dx\)
+ 14d: 70 90 [ ]*jo (0x)?df.*
+ 14f: 71 90 [ ]*jno (0x)?e1.*
+ 151: 72 90 [ ]*jb (0x)?e3.*
+ 153: 73 90 [ ]*jae (0x)?e5.*
+ 155: 74 90 [ ]*je (0x)?e7.*
+ 157: 75 90 [ ]*jne (0x)?e9.*
+ 159: 76 90 [ ]*jbe (0x)?eb.*
+ 15b: 77 90 [ ]*ja (0x)?ed.*
+ 15d: 78 90 [ ]*js (0x)?ef.*
+ 15f: 79 90 [ ]*jns (0x)?f1.*
+ 161: 7a 90 [ ]*jp (0x)?f3.*
+ 163: 7b 90 [ ]*jnp (0x)?f5.*
+ 165: 7c 90 [ ]*jl (0x)?f7.*
+ 167: 7d 90 [ ]*jge (0x)?f9.*
+ 169: 7e 90 [ ]*jle (0x)?fb.*
+ 16b: 7f 90 [ ]*jg (0x)?fd.*
+ 16d: 80 90 90 90 90 90 90 [ ]*adcb \$0x90,0x90909090\(%eax\)
+ 174: 81 90 90 90 90 90 90 90 90 90 [ ]*adcl \$0x90909090,0x90909090\(%eax\)
+ 17e: 83 90 90 90 90 90 90 [ ]*adcl \$0xffffff90,0x90909090\(%eax\)
+ 185: 84 90 90 90 90 90 [ ]*test %dl,0x90909090\(%eax\)
+ 18b: 85 90 90 90 90 90 [ ]*test %edx,0x90909090\(%eax\)
+ 191: 86 90 90 90 90 90 [ ]*xchg %dl,0x90909090\(%eax\)
+ 197: 87 90 90 90 90 90 [ ]*xchg %edx,0x90909090\(%eax\)
+ 19d: 88 90 90 90 90 90 [ ]*mov %dl,0x90909090\(%eax\)
+ 1a3: 89 90 90 90 90 90 [ ]*mov %edx,0x90909090\(%eax\)
+ 1a9: 8a 90 90 90 90 90 [ ]*mov 0x90909090\(%eax\),%dl
+ 1af: 8b 90 90 90 90 90 [ ]*mov 0x90909090\(%eax\),%edx
+ 1b5: 8c 90 90 90 90 90 [ ]*movl %ss,0x90909090\(%eax\)
+ 1bb: 8d 90 90 90 90 90 [ ]*lea 0x90909090\(%eax\),%edx
+ 1c1: 8e 90 90 90 90 90 [ ]*movl 0x90909090\(%eax\),%ss
+ 1c7: 8f 80 90 90 90 90 [ ]*popl 0x90909090\(%eax\)
+ 1cd: 90 [ ]*nop
+ 1ce: 91 [ ]*xchg %eax,%ecx
+ 1cf: 92 [ ]*xchg %eax,%edx
+ 1d0: 93 [ ]*xchg %eax,%ebx
+ 1d1: 94 [ ]*xchg %eax,%esp
+ 1d2: 95 [ ]*xchg %eax,%ebp
+ 1d3: 96 [ ]*xchg %eax,%esi
+ 1d4: 97 [ ]*xchg %eax,%edi
+ 1d5: 98 [ ]*cwtl
+ 1d6: 99 [ ]*cltd
+ 1d7: 9a 90 90 90 90 90 90 [ ]*lcall \$0x9090,\$0x90909090
+ 1de: 9b [ ]*fwait
+ 1df: 9c [ ]*pushf
+ 1e0: 9d [ ]*popf
+ 1e1: 9e [ ]*sahf
+ 1e2: 9f [ ]*lahf
+ 1e3: a0 90 90 90 90 [ ]*mov 0x90909090,%al
+ 1e8: a1 90 90 90 90 [ ]*mov 0x90909090,%eax
+ 1ed: a2 90 90 90 90 [ ]*mov %al,0x90909090
+ 1f2: a3 90 90 90 90 [ ]*mov %eax,0x90909090
+ 1f7: a4 [ ]*movsb %ds:\(%esi\),%es:\(%edi\)
+ 1f8: a5 [ ]*movsl %ds:\(%esi\),%es:\(%edi\)
+ 1f9: a6 [ ]*cmpsb %es:\(%edi\),%ds:\(%esi\)
+ 1fa: a7 [ ]*cmpsl %es:\(%edi\),%ds:\(%esi\)
+ 1fb: a8 90 [ ]*test \$0x90,%al
+ 1fd: a9 90 90 90 90 [ ]*test \$0x90909090,%eax
+ 202: aa [ ]*stos %al,%es:\(%edi\)
+ 203: ab [ ]*stos %eax,%es:\(%edi\)
+ 204: ac [ ]*lods %ds:\(%esi\),%al
+ 205: ad [ ]*lods %ds:\(%esi\),%eax
+ 206: ae [ ]*scas %es:\(%edi\),%al
+ 207: af [ ]*scas %es:\(%edi\),%eax
+ 208: b0 90 [ ]*mov \$0x90,%al
+ 20a: b1 90 [ ]*mov \$0x90,%cl
+ 20c: b2 90 [ ]*mov \$0x90,%dl
+ 20e: b3 90 [ ]*mov \$0x90,%bl
+ 210: b4 90 [ ]*mov \$0x90,%ah
+ 212: b5 90 [ ]*mov \$0x90,%ch
+ 214: b6 90 [ ]*mov \$0x90,%dh
+ 216: b7 90 [ ]*mov \$0x90,%bh
+ 218: b8 90 90 90 90 [ ]*mov \$0x90909090,%eax
+ 21d: b9 90 90 90 90 [ ]*mov \$0x90909090,%ecx
+ 222: ba 90 90 90 90 [ ]*mov \$0x90909090,%edx
+ 227: bb 90 90 90 90 [ ]*mov \$0x90909090,%ebx
+ 22c: bc 90 90 90 90 [ ]*mov \$0x90909090,%esp
+ 231: bd 90 90 90 90 [ ]*mov \$0x90909090,%ebp
+ 236: be 90 90 90 90 [ ]*mov \$0x90909090,%esi
+ 23b: bf 90 90 90 90 [ ]*mov \$0x90909090,%edi
+ 240: c0 90 90 90 90 90 90 [ ]*rclb \$0x90,0x90909090\(%eax\)
+ 247: c1 90 90 90 90 90 90 [ ]*rcll \$0x90,0x90909090\(%eax\)
+ 24e: c2 90 90 [ ]*ret \$0x9090
+ 251: c3 [ ]*ret
+ 252: c4 90 90 90 90 90 [ ]*les 0x90909090\(%eax\),%edx
+ 258: c5 90 90 90 90 90 [ ]*lds 0x90909090\(%eax\),%edx
+ 25e: c6 80 90 90 90 90 90 [ ]*movb \$0x90,0x90909090\(%eax\)
+ 265: c7 80 90 90 90 90 90 90 90 90 [ ]*movl \$0x90909090,0x90909090\(%eax\)
+ 26f: c8 90 90 90 [ ]*enter \$0x9090,\$0x90
+ 273: c9 [ ]*leave
+ 274: ca 90 90 [ ]*lret \$0x9090
+ 277: cb [ ]*lret
+ 278: cc [ ]*int3
+ 279: cd 90 [ ]*int \$0x90
+ 27b: ce [ ]*into
+ 27c: cf [ ]*iret
+ 27d: d0 90 90 90 90 90 [ ]*rclb 0x90909090\(%eax\)
+ 283: d1 90 90 90 90 90 [ ]*rcll 0x90909090\(%eax\)
+ 289: d2 90 90 90 90 90 [ ]*rclb %cl,0x90909090\(%eax\)
+ 28f: d3 90 90 90 90 90 [ ]*rcll %cl,0x90909090\(%eax\)
+ 295: d4 90 [ ]*aam \$0xffffff90
+ 297: d5 90 [ ]*aad \$0xffffff90
+ 299: d7 [ ]*xlat %ds:\(%ebx\)
+ 29a: d8 90 90 90 90 90 [ ]*fcoms 0x90909090\(%eax\)
+ 2a0: d9 90 90 90 90 90 [ ]*fsts 0x90909090\(%eax\)
+ 2a6: da 90 90 90 90 90 [ ]*ficoml 0x90909090\(%eax\)
+ 2ac: db 90 90 90 90 90 [ ]*fistl 0x90909090\(%eax\)
+ 2b2: dc 90 90 90 90 90 [ ]*fcoml 0x90909090\(%eax\)
+ 2b8: dd 90 90 90 90 90 [ ]*fstl 0x90909090\(%eax\)
+ 2be: de 90 90 90 90 90 [ ]*ficom 0x90909090\(%eax\)
+ 2c4: df 90 90 90 90 90 [ ]*fist 0x90909090\(%eax\)
+ 2ca: e0 90 [ ]*loopne (0x)?25c.*
+ 2cc: e1 90 [ ]*loope (0x)?25e.*
+ 2ce: e2 90 [ ]*loop (0x)?260.*
+ 2d0: e3 90 [ ]*jecxz (0x)?262.*
+ 2d2: e4 90 [ ]*in \$0x90,%al
+ 2d4: e5 90 [ ]*in \$0x90,%eax
+ 2d6: e6 90 [ ]*out %al,\$0x90
+ 2d8: e7 90 [ ]*out %eax,\$0x90
+ 2da: e8 90 90 90 90 [ ]*call (0x)?9090936f.*
+ 2df: e9 90 90 90 90 [ ]*jmp (0x)?90909374.*
+ 2e4: ea 90 90 90 90 90 90 [ ]*ljmp \$0x9090,\$0x90909090
+ 2eb: eb 90 [ ]*jmp (0x)?27d.*
+ 2ed: ec [ ]*in \(%dx\),%al
+ 2ee: ed [ ]*in \(%dx\),%eax
+ 2ef: ee [ ]*out %al,\(%dx\)
+ 2f0: ef [ ]*out %eax,\(%dx\)
+ 2f1: f4 [ ]*hlt
+ 2f2: f5 [ ]*cmc
+ 2f3: f6 90 90 90 90 90 [ ]*notb 0x90909090\(%eax\)
+ 2f9: f7 90 90 90 90 90 [ ]*notl 0x90909090\(%eax\)
+ 2ff: f8 [ ]*clc
+ 300: f9 [ ]*stc
+ 301: fa [ ]*cli
+ 302: fb [ ]*sti
+ 303: fc [ ]*cld
+ 304: fd [ ]*std
+ 305: ff 90 90 90 90 90 [ ]*call \*0x90909090\(%eax\)
+ 30b: 0f 00 90 90 90 90 90 [ ]*lldt 0x90909090\(%eax\)
+ 312: 0f 01 90 90 90 90 90 [ ]*lgdt 0x90909090\(%eax\)
+ 319: 0f 02 90 90 90 90 90 [ ]*lar 0x90909090\(%eax\),%edx
+ 320: 0f 03 90 90 90 90 90 [ ]*lsl 0x90909090\(%eax\),%edx
+ 327: 0f 06 [ ]*clts
+ 329: 0f 08 [ ]*invd
+ 32b: 0f 09 [ ]*wbinvd
+ 32d: 0f 0b [ ]*ud2a
+ 32f: 0f 20 d0 [ ]*mov %cr2,%eax
+ 332: 0f 21 d0 [ ]*mov %db2,%eax
+ 335: 0f 22 d0 [ ]*mov %eax,%cr2
+ 338: 0f 23 d0 [ ]*mov %eax,%db2
+ 33b: 0f 24 d0 [ ]*mov %tr2,%eax
+ 33e: 0f 26 d0 [ ]*mov %eax,%tr2
+ 341: 0f 30 [ ]*wrmsr
+ 343: 0f 31 [ ]*rdtsc
+ 345: 0f 32 [ ]*rdmsr
+ 347: 0f 33 [ ]*rdpmc
+ 349: 0f 40 90 90 90 90 90 [ ]*cmovo 0x90909090\(%eax\),%edx
+ 350: 0f 41 90 90 90 90 90 [ ]*cmovno 0x90909090\(%eax\),%edx
+ 357: 0f 42 90 90 90 90 90 [ ]*cmovb 0x90909090\(%eax\),%edx
+ 35e: 0f 43 90 90 90 90 90 [ ]*cmovae 0x90909090\(%eax\),%edx
+ 365: 0f 44 90 90 90 90 90 [ ]*cmove 0x90909090\(%eax\),%edx
+ 36c: 0f 45 90 90 90 90 90 [ ]*cmovne 0x90909090\(%eax\),%edx
+ 373: 0f 46 90 90 90 90 90 [ ]*cmovbe 0x90909090\(%eax\),%edx
+ 37a: 0f 47 90 90 90 90 90 [ ]*cmova 0x90909090\(%eax\),%edx
+ 381: 0f 48 90 90 90 90 90 [ ]*cmovs 0x90909090\(%eax\),%edx
+ 388: 0f 49 90 90 90 90 90 [ ]*cmovns 0x90909090\(%eax\),%edx
+ 38f: 0f 4a 90 90 90 90 90 [ ]*cmovp 0x90909090\(%eax\),%edx
+ 396: 0f 4b 90 90 90 90 90 [ ]*cmovnp 0x90909090\(%eax\),%edx
+ 39d: 0f 4c 90 90 90 90 90 [ ]*cmovl 0x90909090\(%eax\),%edx
+ 3a4: 0f 4d 90 90 90 90 90 [ ]*cmovge 0x90909090\(%eax\),%edx
+ 3ab: 0f 4e 90 90 90 90 90 [ ]*cmovle 0x90909090\(%eax\),%edx
+ 3b2: 0f 4f 90 90 90 90 90 [ ]*cmovg 0x90909090\(%eax\),%edx
+ 3b9: 0f 60 90 90 90 90 90 [ ]*punpcklbw 0x90909090\(%eax\),%mm2
+ 3c0: 0f 61 90 90 90 90 90 [ ]*punpcklwd 0x90909090\(%eax\),%mm2
+ 3c7: 0f 62 90 90 90 90 90 [ ]*punpckldq 0x90909090\(%eax\),%mm2
+ 3ce: 0f 63 90 90 90 90 90 [ ]*packsswb 0x90909090\(%eax\),%mm2
+ 3d5: 0f 64 90 90 90 90 90 [ ]*pcmpgtb 0x90909090\(%eax\),%mm2
+ 3dc: 0f 65 90 90 90 90 90 [ ]*pcmpgtw 0x90909090\(%eax\),%mm2
+ 3e3: 0f 66 90 90 90 90 90 [ ]*pcmpgtd 0x90909090\(%eax\),%mm2
+ 3ea: 0f 67 90 90 90 90 90 [ ]*packuswb 0x90909090\(%eax\),%mm2
+ 3f1: 0f 68 90 90 90 90 90 [ ]*punpckhbw 0x90909090\(%eax\),%mm2
+ 3f8: 0f 69 90 90 90 90 90 [ ]*punpckhwd 0x90909090\(%eax\),%mm2
+ 3ff: 0f 6a 90 90 90 90 90 [ ]*punpckhdq 0x90909090\(%eax\),%mm2
+ 406: 0f 6b 90 90 90 90 90 [ ]*packssdw 0x90909090\(%eax\),%mm2
+ 40d: 0f 6e 90 90 90 90 90 [ ]*movd 0x90909090\(%eax\),%mm2
+ 414: 0f 6f 90 90 90 90 90 [ ]*movq 0x90909090\(%eax\),%mm2
+ 41b: 0f 71 d0 90 [ ]*psrlw \$0x90,%mm0
+ 41f: 0f 72 d0 90 [ ]*psrld \$0x90,%mm0
+ 423: 0f 73 d0 90 [ ]*psrlq \$0x90,%mm0
+ 427: 0f 74 90 90 90 90 90 [ ]*pcmpeqb 0x90909090\(%eax\),%mm2
+ 42e: 0f 75 90 90 90 90 90 [ ]*pcmpeqw 0x90909090\(%eax\),%mm2
+ 435: 0f 76 90 90 90 90 90 [ ]*pcmpeqd 0x90909090\(%eax\),%mm2
+ 43c: 0f 77 [ ]*emms
+ 43e: 0f 7e 90 90 90 90 90 [ ]*movd %mm2,0x90909090\(%eax\)
+ 445: 0f 7f 90 90 90 90 90 [ ]*movq %mm2,0x90909090\(%eax\)
+ 44c: 0f 80 90 90 90 90 [ ]*jo (0x)?909094e2.*
+ 452: 0f 81 90 90 90 90 [ ]*jno (0x)?909094e8.*
+ 458: 0f 82 90 90 90 90 [ ]*jb (0x)?909094ee.*
+ 45e: 0f 83 90 90 90 90 [ ]*jae (0x)?909094f4.*
+ 464: 0f 84 90 90 90 90 [ ]*je (0x)?909094fa.*
+ 46a: 0f 85 90 90 90 90 [ ]*jne (0x)?90909500.*
+ 470: 0f 86 90 90 90 90 [ ]*jbe (0x)?90909506.*
+ 476: 0f 87 90 90 90 90 [ ]*ja (0x)?9090950c.*
+ 47c: 0f 88 90 90 90 90 [ ]*js (0x)?90909512.*
+ 482: 0f 89 90 90 90 90 [ ]*jns (0x)?90909518.*
+ 488: 0f 8a 90 90 90 90 [ ]*jp (0x)?9090951e.*
+ 48e: 0f 8b 90 90 90 90 [ ]*jnp (0x)?90909524.*
+ 494: 0f 8c 90 90 90 90 [ ]*jl (0x)?9090952a.*
+ 49a: 0f 8d 90 90 90 90 [ ]*jge (0x)?90909530.*
+ 4a0: 0f 8e 90 90 90 90 [ ]*jle (0x)?90909536.*
+ 4a6: 0f 8f 90 90 90 90 [ ]*jg (0x)?9090953c.*
+ 4ac: 0f 90 80 90 90 90 90 [ ]*seto 0x90909090\(%eax\)
+ 4b3: 0f 91 80 90 90 90 90 [ ]*setno 0x90909090\(%eax\)
+ 4ba: 0f 92 80 90 90 90 90 [ ]*setb 0x90909090\(%eax\)
+ 4c1: 0f 93 80 90 90 90 90 [ ]*setae 0x90909090\(%eax\)
+ 4c8: 0f 94 80 90 90 90 90 [ ]*sete 0x90909090\(%eax\)
+ 4cf: 0f 95 80 90 90 90 90 [ ]*setne 0x90909090\(%eax\)
+ 4d6: 0f 96 80 90 90 90 90 [ ]*setbe 0x90909090\(%eax\)
+ 4dd: 0f 97 80 90 90 90 90 [ ]*seta 0x90909090\(%eax\)
+ 4e4: 0f 98 80 90 90 90 90 [ ]*sets 0x90909090\(%eax\)
+ 4eb: 0f 99 80 90 90 90 90 [ ]*setns 0x90909090\(%eax\)
+ 4f2: 0f 9a 80 90 90 90 90 [ ]*setp 0x90909090\(%eax\)
+ 4f9: 0f 9b 80 90 90 90 90 [ ]*setnp 0x90909090\(%eax\)
+ 500: 0f 9c 80 90 90 90 90 [ ]*setl 0x90909090\(%eax\)
+ 507: 0f 9d 80 90 90 90 90 [ ]*setge 0x90909090\(%eax\)
+ 50e: 0f 9e 80 90 90 90 90 [ ]*setle 0x90909090\(%eax\)
+ 515: 0f 9f 80 90 90 90 90 [ ]*setg 0x90909090\(%eax\)
+ 51c: 0f a0 [ ]*push %fs
+ 51e: 0f a1 [ ]*pop %fs
+ 520: 0f a2 [ ]*cpuid
+ 522: 0f a3 90 90 90 90 90 [ ]*bt %edx,0x90909090\(%eax\)
+ 529: 0f a4 90 90 90 90 90 90 [ ]*shld \$0x90,%edx,0x90909090\(%eax\)
+ 531: 0f a5 90 90 90 90 90 [ ]*shld %cl,%edx,0x90909090\(%eax\)
+ 538: 0f a8 [ ]*push %gs
+ 53a: 0f a9 [ ]*pop %gs
+ 53c: 0f aa [ ]*rsm
+ 53e: 0f ab 90 90 90 90 90 [ ]*bts %edx,0x90909090\(%eax\)
+ 545: 0f ac 90 90 90 90 90 90 [ ]*shrd \$0x90,%edx,0x90909090\(%eax\)
+ 54d: 0f ad 90 90 90 90 90 [ ]*shrd %cl,%edx,0x90909090\(%eax\)
+ 554: 0f af 90 90 90 90 90 [ ]*imul 0x90909090\(%eax\),%edx
+ 55b: 0f b0 90 90 90 90 90 [ ]*cmpxchg %dl,0x90909090\(%eax\)
+ 562: 0f b1 90 90 90 90 90 [ ]*cmpxchg %edx,0x90909090\(%eax\)
+ 569: 0f b2 90 90 90 90 90 [ ]*lss 0x90909090\(%eax\),%edx
+ 570: 0f b3 90 90 90 90 90 [ ]*btr %edx,0x90909090\(%eax\)
+ 577: 0f b4 90 90 90 90 90 [ ]*lfs 0x90909090\(%eax\),%edx
+ 57e: 0f b5 90 90 90 90 90 [ ]*lgs 0x90909090\(%eax\),%edx
+ 585: 0f b6 90 90 90 90 90 [ ]*movzbl 0x90909090\(%eax\),%edx
+ 58c: 0f b7 90 90 90 90 90 [ ]*movzwl 0x90909090\(%eax\),%edx
+ 593: 0f b9 [ ]*ud2b
+ 595: 0f bb 90 90 90 90 90 [ ]*btc %edx,0x90909090\(%eax\)
+ 59c: 0f bc 90 90 90 90 90 [ ]*bsf 0x90909090\(%eax\),%edx
+ 5a3: 0f bd 90 90 90 90 90 [ ]*bsr 0x90909090\(%eax\),%edx
+ 5aa: 0f be 90 90 90 90 90 [ ]*movsbl 0x90909090\(%eax\),%edx
+ 5b1: 0f bf 90 90 90 90 90 [ ]*movswl 0x90909090\(%eax\),%edx
+ 5b8: 0f c0 90 90 90 90 90 [ ]*xadd %dl,0x90909090\(%eax\)
+ 5bf: 0f c1 90 90 90 90 90 [ ]*xadd %edx,0x90909090\(%eax\)
+ 5c6: 0f c8 [ ]*bswap %eax
+ 5c8: 0f c9 [ ]*bswap %ecx
+ 5ca: 0f ca [ ]*bswap %edx
+ 5cc: 0f cb [ ]*bswap %ebx
+ 5ce: 0f cc [ ]*bswap %esp
+ 5d0: 0f cd [ ]*bswap %ebp
+ 5d2: 0f ce [ ]*bswap %esi
+ 5d4: 0f cf [ ]*bswap %edi
+ 5d6: 0f d1 90 90 90 90 90 [ ]*psrlw 0x90909090\(%eax\),%mm2
+ 5dd: 0f d2 90 90 90 90 90 [ ]*psrld 0x90909090\(%eax\),%mm2
+ 5e4: 0f d3 90 90 90 90 90 [ ]*psrlq 0x90909090\(%eax\),%mm2
+ 5eb: 0f d5 90 90 90 90 90 [ ]*pmullw 0x90909090\(%eax\),%mm2
+ 5f2: 0f d8 90 90 90 90 90 [ ]*psubusb 0x90909090\(%eax\),%mm2
+ 5f9: 0f d9 90 90 90 90 90 [ ]*psubusw 0x90909090\(%eax\),%mm2
+ 600: 0f db 90 90 90 90 90 [ ]*pand 0x90909090\(%eax\),%mm2
+ 607: 0f dc 90 90 90 90 90 [ ]*paddusb 0x90909090\(%eax\),%mm2
+ 60e: 0f dd 90 90 90 90 90 [ ]*paddusw 0x90909090\(%eax\),%mm2
+ 615: 0f df 90 90 90 90 90 [ ]*pandn 0x90909090\(%eax\),%mm2
+ 61c: 0f e1 90 90 90 90 90 [ ]*psraw 0x90909090\(%eax\),%mm2
+ 623: 0f e2 90 90 90 90 90 [ ]*psrad 0x90909090\(%eax\),%mm2
+ 62a: 0f e5 90 90 90 90 90 [ ]*pmulhw 0x90909090\(%eax\),%mm2
+ 631: 0f e8 90 90 90 90 90 [ ]*psubsb 0x90909090\(%eax\),%mm2
+ 638: 0f e9 90 90 90 90 90 [ ]*psubsw 0x90909090\(%eax\),%mm2
+ 63f: 0f eb 90 90 90 90 90 [ ]*por 0x90909090\(%eax\),%mm2
+ 646: 0f ec 90 90 90 90 90 [ ]*paddsb 0x90909090\(%eax\),%mm2
+ 64d: 0f ed 90 90 90 90 90 [ ]*paddsw 0x90909090\(%eax\),%mm2
+ 654: 0f ef 90 90 90 90 90 [ ]*pxor 0x90909090\(%eax\),%mm2
+ 65b: 0f f1 90 90 90 90 90 [ ]*psllw 0x90909090\(%eax\),%mm2
+ 662: 0f f2 90 90 90 90 90 [ ]*pslld 0x90909090\(%eax\),%mm2
+ 669: 0f f3 90 90 90 90 90 [ ]*psllq 0x90909090\(%eax\),%mm2
+ 670: 0f f5 90 90 90 90 90 [ ]*pmaddwd 0x90909090\(%eax\),%mm2
+ 677: 0f f8 90 90 90 90 90 [ ]*psubb 0x90909090\(%eax\),%mm2
+ 67e: 0f f9 90 90 90 90 90 [ ]*psubw 0x90909090\(%eax\),%mm2
+ 685: 0f fa 90 90 90 90 90 [ ]*psubd 0x90909090\(%eax\),%mm2
+ 68c: 0f fc 90 90 90 90 90 [ ]*paddb 0x90909090\(%eax\),%mm2
+ 693: 0f fd 90 90 90 90 90 [ ]*paddw 0x90909090\(%eax\),%mm2
+ 69a: 0f fe 90 90 90 90 90 [ ]*paddd 0x90909090\(%eax\),%mm2
+ 6a1: 66 01 90 90 90 90 90 [ ]*add %dx,0x90909090\(%eax\)
+ 6a8: 66 03 90 90 90 90 90 [ ]*add 0x90909090\(%eax\),%dx
+ 6af: 66 05 90 90 [ ]*add \$0x9090,%ax
+ 6b3: 66 06 [ ]*pushw %es
+ 6b5: 66 07 [ ]*popw %es
+ 6b7: 66 09 90 90 90 90 90 [ ]*or %dx,0x90909090\(%eax\)
+ 6be: 66 0b 90 90 90 90 90 [ ]*or 0x90909090\(%eax\),%dx
+ 6c5: 66 0d 90 90 [ ]*or \$0x9090,%ax
+ 6c9: 66 0e [ ]*pushw %cs
+ 6cb: 66 11 90 90 90 90 90 [ ]*adc %dx,0x90909090\(%eax\)
+ 6d2: 66 13 90 90 90 90 90 [ ]*adc 0x90909090\(%eax\),%dx
+ 6d9: 66 15 90 90 [ ]*adc \$0x9090,%ax
+ 6dd: 66 16 [ ]*pushw %ss
+ 6df: 66 17 [ ]*popw %ss
+ 6e1: 66 19 90 90 90 90 90 [ ]*sbb %dx,0x90909090\(%eax\)
+ 6e8: 66 1b 90 90 90 90 90 [ ]*sbb 0x90909090\(%eax\),%dx
+ 6ef: 66 1d 90 90 [ ]*sbb \$0x9090,%ax
+ 6f3: 66 1e [ ]*pushw %ds
+ 6f5: 66 1f [ ]*popw %ds
+ 6f7: 66 21 90 90 90 90 90 [ ]*and %dx,0x90909090\(%eax\)
+ 6fe: 66 23 90 90 90 90 90 [ ]*and 0x90909090\(%eax\),%dx
+ 705: 66 25 90 90 [ ]*and \$0x9090,%ax
+ 709: 66 29 90 90 90 90 90 [ ]*sub %dx,0x90909090\(%eax\)
+ 710: 66 2b 90 90 90 90 90 [ ]*sub 0x90909090\(%eax\),%dx
+ 717: 66 2d 90 90 [ ]*sub \$0x9090,%ax
+ 71b: 66 31 90 90 90 90 90 [ ]*xor %dx,0x90909090\(%eax\)
+ 722: 66 33 90 90 90 90 90 [ ]*xor 0x90909090\(%eax\),%dx
+ 729: 66 35 90 90 [ ]*xor \$0x9090,%ax
+ 72d: 66 39 90 90 90 90 90 [ ]*cmp %dx,0x90909090\(%eax\)
+ 734: 66 3b 90 90 90 90 90 [ ]*cmp 0x90909090\(%eax\),%dx
+ 73b: 66 3d 90 90 [ ]*cmp \$0x9090,%ax
+ 73f: 66 40 [ ]*inc %ax
+ 741: 66 41 [ ]*inc %cx
+ 743: 66 42 [ ]*inc %dx
+ 745: 66 43 [ ]*inc %bx
+ 747: 66 44 [ ]*inc %sp
+ 749: 66 45 [ ]*inc %bp
+ 74b: 66 46 [ ]*inc %si
+ 74d: 66 47 [ ]*inc %di
+ 74f: 66 48 [ ]*dec %ax
+ 751: 66 49 [ ]*dec %cx
+ 753: 66 4a [ ]*dec %dx
+ 755: 66 4b [ ]*dec %bx
+ 757: 66 4c [ ]*dec %sp
+ 759: 66 4d [ ]*dec %bp
+ 75b: 66 4e [ ]*dec %si
+ 75d: 66 4f [ ]*dec %di
+ 75f: 66 50 [ ]*push %ax
+ 761: 66 51 [ ]*push %cx
+ 763: 66 52 [ ]*push %dx
+ 765: 66 53 [ ]*push %bx
+ 767: 66 54 [ ]*push %sp
+ 769: 66 55 [ ]*push %bp
+ 76b: 66 56 [ ]*push %si
+ 76d: 66 57 [ ]*push %di
+ 76f: 66 58 [ ]*pop %ax
+ 771: 66 59 [ ]*pop %cx
+ 773: 66 5a [ ]*pop %dx
+ 775: 66 5b [ ]*pop %bx
+ 777: 66 5c [ ]*pop %sp
+ 779: 66 5d [ ]*pop %bp
+ 77b: 66 5e [ ]*pop %si
+ 77d: 66 5f [ ]*pop %di
+ 77f: 66 60 [ ]*pushaw
+ 781: 66 61 [ ]*popaw
+ 783: 66 62 90 90 90 90 90 [ ]*bound %dx,0x90909090\(%eax\)
+ 78a: 66 68 90 90 [ ]*pushw \$0x9090
+ 78e: 66 69 90 90 90 90 90 90 90 [ ]*imul \$0x9090,0x90909090\(%eax\),%dx
+ 797: 66 6a 90 [ ]*pushw \$0xffffff90
+ 79a: 66 6b 90 90 90 90 90 90 [ ]*imul \$0xffffff90,0x90909090\(%eax\),%dx
+ 7a2: 66 6d [ ]*insw \(%dx\),%es:\(%edi\)
+ 7a4: 66 6f [ ]*outsw %ds:\(%esi\),\(%dx\)
+ 7a6: 66 81 90 90 90 90 90 90 90 [ ]*adcw \$0x9090,0x90909090\(%eax\)
+ 7af: 66 83 90 90 90 90 90 90 [ ]*adcw \$0xffffff90,0x90909090\(%eax\)
+ 7b7: 66 85 90 90 90 90 90 [ ]*test %dx,0x90909090\(%eax\)
+ 7be: 66 87 90 90 90 90 90 [ ]*xchg %dx,0x90909090\(%eax\)
+ 7c5: 66 89 90 90 90 90 90 [ ]*mov %dx,0x90909090\(%eax\)
+ 7cc: 66 8b 90 90 90 90 90 [ ]*mov 0x90909090\(%eax\),%dx
+ 7d3: 66 8c 90 90 90 90 90 [ ]*movw %ss,0x90909090\(%eax\)
+ 7da: 66 8d 90 90 90 90 90 [ ]*lea 0x90909090\(%eax\),%dx
+ 7e1: 66 8f 80 90 90 90 90 [ ]*popw 0x90909090\(%eax\)
+ 7e8: 66 91 [ ]*xchg %ax,%cx
+ 7ea: 66 92 [ ]*xchg %ax,%dx
+ 7ec: 66 93 [ ]*xchg %ax,%bx
+ 7ee: 66 94 [ ]*xchg %ax,%sp
+ 7f0: 66 95 [ ]*xchg %ax,%bp
+ 7f2: 66 96 [ ]*xchg %ax,%si
+ 7f4: 66 97 [ ]*xchg %ax,%di
+ 7f6: 66 98 [ ]*cbtw
+ 7f8: 66 99 [ ]*cwtd
+ 7fa: 66 9a 90 90 90 90 [ ]*lcallw \$0x9090,\$0x9090
+ 800: 66 9c [ ]*pushfw
+ 802: 66 9d [ ]*popfw
+ 804: 66 a1 90 90 90 90 [ ]*mov 0x90909090,%ax
+ 80a: 66 a3 90 90 90 90 [ ]*mov %ax,0x90909090
+ 810: 66 a5 [ ]*movsw %ds:\(%esi\),%es:\(%edi\)
+ 812: 66 a7 [ ]*cmpsw %es:\(%edi\),%ds:\(%esi\)
+ 814: 66 a9 90 90 [ ]*test \$0x9090,%ax
+ 818: 66 ab [ ]*stos %ax,%es:\(%edi\)
+ 81a: 66 ad [ ]*lods %ds:\(%esi\),%ax
+ 81c: 66 af [ ]*scas %es:\(%edi\),%ax
+ 81e: 66 b8 90 90 [ ]*mov \$0x9090,%ax
+ 822: 66 b9 90 90 [ ]*mov \$0x9090,%cx
+ 826: 66 ba 90 90 [ ]*mov \$0x9090,%dx
+ 82a: 66 bb 90 90 [ ]*mov \$0x9090,%bx
+ 82e: 66 bc 90 90 [ ]*mov \$0x9090,%sp
+ 832: 66 bd 90 90 [ ]*mov \$0x9090,%bp
+ 836: 66 be 90 90 [ ]*mov \$0x9090,%si
+ 83a: 66 bf 90 90 [ ]*mov \$0x9090,%di
+ 83e: 66 c1 90 90 90 90 90 90 [ ]*rclw \$0x90,0x90909090\(%eax\)
+ 846: 66 c2 90 90 [ ]*retw \$0x9090
+ 84a: 66 c3 [ ]*retw
+ 84c: 66 c4 90 90 90 90 90 [ ]*les 0x90909090\(%eax\),%dx
+ 853: 66 c5 90 90 90 90 90 [ ]*lds 0x90909090\(%eax\),%dx
+ 85a: 66 c7 80 90 90 90 90 90 90 [ ]*movw \$0x9090,0x90909090\(%eax\)
+ 863: 66 c8 90 90 90 [ ]*enterw \$0x9090,\$0x90
+ 868: 66 c9 [ ]*leavew
+ 86a: 66 ca 90 90 [ ]*lretw \$0x9090
+ 86e: 66 cb [ ]*lretw
+ 870: 66 cf [ ]*iretw
+ 872: 66 d1 90 90 90 90 90 [ ]*rclw 0x90909090\(%eax\)
+ 879: 66 d3 90 90 90 90 90 [ ]*rclw %cl,0x90909090\(%eax\)
+ 880: 66 e5 90 [ ]*in \$0x90,%ax
+ 883: 66 e7 90 [ ]*out %ax,\$0x90
+ 886: 66 e8 8f 90 [ ]*callw (0x)?9919.*
+ 88a: 66 ea 90 90 90 90 [ ]*ljmpw \$0x9090,\$0x9090
+ 890: 66 ed [ ]*in \(%dx\),%ax
+ 892: 66 ef [ ]*out %ax,\(%dx\)
+ 894: 66 f7 90 90 90 90 90 [ ]*notw 0x90909090\(%eax\)
+ 89b: 66 ff 90 90 90 90 90 [ ]*callw \*0x90909090\(%eax\)
+ 8a2: 66 0f 02 90 90 90 90 90 [ ]*lar 0x90909090\(%eax\),%dx
+ 8aa: 66 0f 03 90 90 90 90 90 [ ]*lsl 0x90909090\(%eax\),%dx
+ 8b2: 66 0f 40 90 90 90 90 90 [ ]*cmovo 0x90909090\(%eax\),%dx
+ 8ba: 66 0f 41 90 90 90 90 90 [ ]*cmovno 0x90909090\(%eax\),%dx
+ 8c2: 66 0f 42 90 90 90 90 90 [ ]*cmovb 0x90909090\(%eax\),%dx
+ 8ca: 66 0f 43 90 90 90 90 90 [ ]*cmovae 0x90909090\(%eax\),%dx
+ 8d2: 66 0f 44 90 90 90 90 90 [ ]*cmove 0x90909090\(%eax\),%dx
+ 8da: 66 0f 45 90 90 90 90 90 [ ]*cmovne 0x90909090\(%eax\),%dx
+ 8e2: 66 0f 46 90 90 90 90 90 [ ]*cmovbe 0x90909090\(%eax\),%dx
+ 8ea: 66 0f 47 90 90 90 90 90 [ ]*cmova 0x90909090\(%eax\),%dx
+ 8f2: 66 0f 48 90 90 90 90 90 [ ]*cmovs 0x90909090\(%eax\),%dx
+ 8fa: 66 0f 49 90 90 90 90 90 [ ]*cmovns 0x90909090\(%eax\),%dx
+ 902: 66 0f 4a 90 90 90 90 90 [ ]*cmovp 0x90909090\(%eax\),%dx
+ 90a: 66 0f 4b 90 90 90 90 90 [ ]*cmovnp 0x90909090\(%eax\),%dx
+ 912: 66 0f 4c 90 90 90 90 90 [ ]*cmovl 0x90909090\(%eax\),%dx
+ 91a: 66 0f 4d 90 90 90 90 90 [ ]*cmovge 0x90909090\(%eax\),%dx
+ 922: 66 0f 4e 90 90 90 90 90 [ ]*cmovle 0x90909090\(%eax\),%dx
+ 92a: 66 0f 4f 90 90 90 90 90 [ ]*cmovg 0x90909090\(%eax\),%dx
+ 932: 66 0f a0 [ ]*pushw %fs
+ 935: 66 0f a1 [ ]*popw %fs
+ 938: 66 0f a3 90 90 90 90 90 [ ]*bt %dx,0x90909090\(%eax\)
+ 940: 66 0f a4 90 90 90 90 90 90 [ ]*shld \$0x90,%dx,0x90909090\(%eax\)
+ 949: 66 0f a5 90 90 90 90 90 [ ]*shld %cl,%dx,0x90909090\(%eax\)
+ 951: 66 0f a8 [ ]*pushw %gs
+ 954: 66 0f a9 [ ]*popw %gs
+ 957: 66 0f ab 90 90 90 90 90 [ ]*bts %dx,0x90909090\(%eax\)
+ 95f: 66 0f ac 90 90 90 90 90 90 [ ]*shrd \$0x90,%dx,0x90909090\(%eax\)
+ 968: 66 0f ad 90 90 90 90 90 [ ]*shrd %cl,%dx,0x90909090\(%eax\)
+ 970: 66 0f af 90 90 90 90 90 [ ]*imul 0x90909090\(%eax\),%dx
+ 978: 66 0f b1 90 90 90 90 90 [ ]*cmpxchg %dx,0x90909090\(%eax\)
+ 980: 66 0f b2 90 90 90 90 90 [ ]*lss 0x90909090\(%eax\),%dx
+ 988: 66 0f b3 90 90 90 90 90 [ ]*btr %dx,0x90909090\(%eax\)
+ 990: 66 0f b4 90 90 90 90 90 [ ]*lfs 0x90909090\(%eax\),%dx
+ 998: 66 0f b5 90 90 90 90 90 [ ]*lgs 0x90909090\(%eax\),%dx
+ 9a0: 66 0f b6 90 90 90 90 90 [ ]*movzbw 0x90909090\(%eax\),%dx
+ 9a8: 66 0f bb 90 90 90 90 90 [ ]*btc %dx,0x90909090\(%eax\)
+ 9b0: 66 0f bc 90 90 90 90 90 [ ]*bsf 0x90909090\(%eax\),%dx
+ 9b8: 66 0f bd 90 90 90 90 90 [ ]*bsr 0x90909090\(%eax\),%dx
+ 9c0: 66 0f be 90 90 90 90 90 [ ]*movsbw 0x90909090\(%eax\),%dx
+ 9c8: 66 0f c1 90 90 90 90 90 [ ]*xadd %dx,0x90909090\(%eax\)
diff --git a/gas/testsuite/gas/i386/intel.s b/gas/testsuite/gas/i386/intel.s
new file mode 100644
index 0000000..4f5a965
--- /dev/null
+++ b/gas/testsuite/gas/i386/intel.s
@@ -0,0 +1,568 @@
+.text
+.intel_syntax noprefix
+foo:
+ add byte ptr 0x90909090[eax], dl
+ add dword ptr 0x90909090[eax], edx
+ add dl, byte ptr 0x90909090[eax]
+ add edx, dword ptr 0x90909090[eax]
+ add al, 0x90
+ add eax, 0x90909090
+ push es
+ pop es
+ or [eax+0x90909090], dl
+ or [eax+0x90909090], edx
+ or dl, [eax+0x90909090]
+ or edx, [eax+0x90909090]
+ or al, 0x90
+ or eax, 0x90909090
+ push cs
+ adc byte ptr [eax+0x90909090], dl
+ adc dword ptr [eax+0x90909090], edx
+ adc dl, byte ptr [eax+0x90909090]
+ adc edx, dword ptr [eax+0x90909090]
+ adc al, 0x90
+ adc eax, 0x90909090
+ push ss
+ pop ss
+ sbb 0x90909090[eax], dl
+ sbb 0x90909090[eax], edx
+ sbb dl, 0x90909090[eax]
+ sbb edx, 0x90909090[eax]
+ sbb al, 0x90
+ sbb eax, 0x90909090
+ push ds
+ pop ds
+ and 0x90909090[eax], dl
+ and 0x90909090[eax], edx
+ and dl, 0x90909090[eax]
+ and edx, 0x90909090[eax]
+ and al, 0x90
+ and eax, 0x90909090
+ daa
+ sub 0x90909090[eax], dl
+ sub 0x90909090[eax], edx
+ sub dl, 0x90909090[eax]
+ sub edx, 0x90909090[eax]
+ sub al, 0x90
+ sub eax, 0x90909090
+ das
+ xor 0x90909090[eax], dl
+ xor 0x90909090[eax], edx
+ xor dl, 0x90909090[eax]
+ xor edx, 0x90909090[eax]
+ xor al, 0x90
+ xor eax, 0x90909090
+ aaa
+ cmp 0x90909090[eax], dl
+ cmp 0x90909090[eax], edx
+ cmp dl, 0x90909090[eax]
+ cmp edx, 0x90909090[eax]
+ cmp al, 0x90
+ cmp eax, 0x90909090
+ aas
+ inc eax
+ inc ecx
+ inc edx
+ inc ebx
+ inc esp
+ inc ebp
+ inc esi
+ inc edi
+ dec eax
+ dec ecx
+ dec edx
+ dec ebx
+ dec esp
+ dec ebp
+ dec esi
+ dec edi
+ push eax
+ push ecx
+ push edx
+ push ebx
+ push esp
+ push ebp
+ push esi
+ push edi
+ pop eax
+ pop ecx
+ pop edx
+ pop ebx
+ pop esp
+ pop ebp
+ pop esi
+ pop edi
+ pusha
+ popa
+ bound edx, 0x90909090[eax]
+ arpl 0x90909090[eax], dx
+ push 0x90909090
+ imul edx, 0x90909090[eax], 0x90909090
+ push 0xffffff90
+ imul edx, 0x90909090[eax], 0xffffff90
+ ins byte ptr es:[edi], dx
+ ins dword ptr es:[edi], dx
+ outs dx, byte ptr ds:[esi]
+ outs dx, dword ptr ds:[esi]
+ jo .+2-0x70
+ jno .+2-0x70
+ jb .+2-0x70
+ jae .+2-0x70
+ je .+2-0x70
+ jne .+2-0x70
+ jbe .+2-0x70
+ ja .+2-0x70
+ js .+2-0x70
+ jns .+2-0x70
+ jp .+2-0x70
+ jnp .+2-0x70
+ jl .+2-0x70
+ jge .+2-0x70
+ jle .+2-0x70
+ jg .+2-0x70
+ adc byte ptr 0x90909090[eax], 0x90
+ adc dword ptr 0x90909090[eax], 0x90909090
+ adc dword ptr 0x90909090[eax], 0xffffff90
+ test 0x90909090[eax], dl
+ test 0x90909090[eax], edx
+ xchg 0x90909090[eax], dl
+ xchg 0x90909090[eax], edx
+ mov 0x90909090[eax], dl
+ mov 0x90909090[eax], edx
+ mov dl, 0x90909090[eax]
+ mov edx, 0x90909090[eax]
+ mov dword ptr 0x90909090[eax], ss
+ lea edx, 0x90909090[eax]
+ mov ss, dword ptr 0x90909090[eax]
+ pop dword ptr 0x90909090[eax]
+ xchg eax, eax
+ xchg ecx, eax
+ xchg edx, eax
+ xchg ebx, eax
+ xchg esp, eax
+ xchg ebp, eax
+ xchg esi, eax
+ xchg edi, eax
+ cwde
+ cdq
+ call 0x9090,0x90909090
+ fwait
+ pushf
+ popf
+ sahf
+ lahf
+ mov al, [0x90909090]
+ mov eax, [0x90909090]
+ mov [0x90909090], al
+ mov [0x90909090], eax
+ movs byte ptr es:[edi], byte ptr ds:[esi]
+ movs dword ptr es:[edi], dword ptr ds:[esi]
+ cmps byte ptr ds:[esi], byte ptr es:[edi]
+ cmps dword ptr ds:[esi], dword ptr es:[edi]
+ test al, 0x90
+ test eax, 0x90909090
+ stos byte ptr es:[edi], al
+ stos dword ptr es:[edi], eax
+ lods al, byte ptr ds:[esi]
+ lods eax, dword ptr ds:[esi]
+ scas al, byte ptr es:[edi]
+ scas eax, dword ptr es:[edi]
+ mov al, 0x90
+ mov cl, 0x90
+ mov dl, 0x90
+ mov bl, 0x90
+ mov ah, 0x90
+ mov ch, 0x90
+ mov dh, 0x90
+ mov bh, 0x90
+ mov eax, 0x90909090
+ mov ecx, 0x90909090
+ mov edx, 0x90909090
+ mov ebx, 0x90909090
+ mov esp, 0x90909090
+ mov ebp, 0x90909090
+ mov esi, 0x90909090
+ mov edi, 0x90909090
+ rcl byte ptr 0x90909090[eax], 0x90
+ rcl dword ptr 0x90909090[eax], 0x90
+ ret 0x9090
+ ret
+ les edx, 0x90909090[eax]
+ lds edx, 0x90909090[eax]
+ mov byte ptr 0x90909090[eax], 0x90
+ mov dword ptr 0x90909090[eax], 0x90909090
+ enter 0x9090, 0x90
+ leave
+ lret 0x9090
+ lret
+ int3
+ int 0x90
+ into
+ iret
+ rcl byte ptr 0x90909090[eax]
+ rcl dword ptr 0x90909090[eax]
+ rcl byte ptr 0x90909090[eax], cl
+ rcl dword ptr 0x90909090[eax], cl
+ aam 0xffffff90
+ aad 0xffffff90
+ xlat byte ptr ds:[ebx]
+ fcom dword ptr 0x90909090[eax]
+ fst dword ptr 0x90909090[eax]
+ ficom dword ptr 0x90909090[eax]
+ fist dword ptr 0x90909090[eax]
+ fcom qword ptr 0x90909090[eax]
+ fst qword ptr 0x90909090[eax]
+ ficom word ptr 0x90909090[eax]
+ fist word ptr 0x90909090[eax]
+ loopne .+2-0x70
+ loope .+2-0x70
+ loop .+2-0x70
+ jecxz .+2-0x70
+ in al, 0x90
+ in eax, 0x90
+ out 0x90, al
+ out 0x90, eax
+ call .+5+0x90909090
+ jmp .+5+0x90909090
+ jmp 0x9090,0x90909090
+ jmp .+2-0x70
+ in al, dx
+ in eax, dx
+ out dx, al
+ out dx, eax
+ hlt
+ cmc
+ not byte ptr 0x90909090[eax]
+ not dword ptr 0x90909090[eax]
+ clc
+ stc
+ cli
+ sti
+ cld
+ std
+ call dword ptr 0x90909090[eax]
+ lldt 0x90909090[eax]
+ lgdt 0x90909090[eax]
+ lar edx, 0x90909090[eax]
+ lsl edx, 0x90909090[eax]
+ clts
+ invd
+ wbinvd
+ ud2a
+ mov eax, cr2
+ mov eax, db2
+ mov cr2, eax
+ mov db2, eax
+ mov eax, tr2
+ mov tr2, eax
+ wrmsr
+ rdtsc
+ rdmsr
+ rdpmc
+ cmovo edx, 0x90909090[eax]
+ cmovno edx, 0x90909090[eax]
+ cmovb edx, 0x90909090[eax]
+ cmovae edx, 0x90909090[eax]
+ cmove edx, 0x90909090[eax]
+ cmovne edx, 0x90909090[eax]
+ cmovbe edx, 0x90909090[eax]
+ cmova edx, 0x90909090[eax]
+ cmovs edx, 0x90909090[eax]
+ cmovns edx, 0x90909090[eax]
+ cmovp edx, 0x90909090[eax]
+ cmovnp edx, 0x90909090[eax]
+ cmovl edx, 0x90909090[eax]
+ cmovge edx, 0x90909090[eax]
+ cmovle edx, 0x90909090[eax]
+ cmovg edx, 0x90909090[eax]
+ punpcklbw mm2, 0x90909090[eax]
+ punpcklwd mm2, 0x90909090[eax]
+ punpckldq mm2, 0x90909090[eax]
+ packsswb mm2, 0x90909090[eax]
+ pcmpgtb mm2, 0x90909090[eax]
+ pcmpgtw mm2, 0x90909090[eax]
+ pcmpgtd mm2, 0x90909090[eax]
+ packuswb mm2, 0x90909090[eax]
+ punpckhbw mm2, 0x90909090[eax]
+ punpckhwd mm2, 0x90909090[eax]
+ punpckhdq mm2, 0x90909090[eax]
+ packssdw mm2, 0x90909090[eax]
+ movd mm2, 0x90909090[eax]
+ movq mm2, 0x90909090[eax]
+ psrlw mm0, 0x90
+ psrld mm0, 0x90
+ psrlq mm0, 0x90
+ pcmpeqb mm2, 0x90909090[eax]
+ pcmpeqw mm2, 0x90909090[eax]
+ pcmpeqd mm2, 0x90909090[eax]
+ emms
+ movd 0x90909090[eax], mm2
+ movq 0x90909090[eax], mm2
+ jo .+6+0x90909090
+ jno .+6+0x90909090
+ jb .+6+0x90909090
+ jae .+6+0x90909090
+ je .+6+0x90909090
+ jne .+6+0x90909090
+ jbe .+6+0x90909090
+ ja .+6+0x90909090
+ js .+6+0x90909090
+ jns .+6+0x90909090
+ jp .+6+0x90909090
+ jnp .+6+0x90909090
+ jl .+6+0x90909090
+ jge .+6+0x90909090
+ jle .+6+0x90909090
+ jg .+6+0x90909090
+ seto 0x90909090[eax]
+ setno 0x90909090[eax]
+ setb 0x90909090[eax]
+ setae 0x90909090[eax]
+ sete 0x90909090[eax]
+ setne 0x90909090[eax]
+ setbe 0x90909090[eax]
+ seta 0x90909090[eax]
+ sets 0x90909090[eax]
+ setns 0x90909090[eax]
+ setp 0x90909090[eax]
+ setnp 0x90909090[eax]
+ setl 0x90909090[eax]
+ setge 0x90909090[eax]
+ setle 0x90909090[eax]
+ setg 0x90909090[eax]
+ push fs
+ pop fs
+ cpuid
+ bt 0x90909090[eax], edx
+ shld 0x90909090[eax], edx, 0x90
+ shld 0x90909090[eax], edx, cl
+ push gs
+ pop gs
+ rsm
+ bts 0x90909090[eax], edx
+ shrd 0x90909090[eax], edx, 0x90
+ shrd 0x90909090[eax], edx, cl
+ imul edx, 0x90909090[eax]
+ cmpxchg 0x90909090[eax], dl
+ cmpxchg 0x90909090[eax], edx
+ lss edx, 0x90909090[eax]
+ btr 0x90909090[eax], edx
+ lfs edx, 0x90909090[eax]
+ lgs edx, 0x90909090[eax]
+ movzx edx, byte ptr 0x90909090[eax]
+ movzx edx, word ptr 0x90909090[eax]
+ ud2b
+ btc 0x90909090[eax], edx
+ bsf edx, 0x90909090[eax]
+ bsr edx, 0x90909090[eax]
+ movsx edx, byte ptr 0x90909090[eax]
+ movsx edx, word ptr 0x90909090[eax]
+ xadd 0x90909090[eax], dl
+ xadd 0x90909090[eax], edx
+ bswap eax
+ bswap ecx
+ bswap edx
+ bswap ebx
+ bswap esp
+ bswap ebp
+ bswap esi
+ bswap edi
+ psrlw mm2, 0x90909090[eax]
+ psrld mm2, 0x90909090[eax]
+ psrlq mm2, 0x90909090[eax]
+ pmullw mm2, 0x90909090[eax]
+ psubusb mm2, 0x90909090[eax]
+ psubusw mm2, 0x90909090[eax]
+ pand mm2, 0x90909090[eax]
+ paddusb mm2, 0x90909090[eax]
+ paddusw mm2, 0x90909090[eax]
+ pandn mm2, 0x90909090[eax]
+ psraw mm2, 0x90909090[eax]
+ psrad mm2, 0x90909090[eax]
+ pmulhw mm2, 0x90909090[eax]
+ psubsb mm2, 0x90909090[eax]
+ psubsw mm2, 0x90909090[eax]
+ por mm2, 0x90909090[eax]
+ paddsb mm2, 0x90909090[eax]
+ paddsw mm2, 0x90909090[eax]
+ pxor mm2, 0x90909090[eax]
+ psllw mm2, 0x90909090[eax]
+ pslld mm2, 0x90909090[eax]
+ psllq mm2, 0x90909090[eax]
+ pmaddwd mm2, 0x90909090[eax]
+ psubb mm2, 0x90909090[eax]
+ psubw mm2, 0x90909090[eax]
+ psubd mm2, 0x90909090[eax]
+ paddb mm2, 0x90909090[eax]
+ paddw mm2, 0x90909090[eax]
+ paddd mm2, 0x90909090[eax]
+ add 0x90909090[eax], dx
+ add dx, 0x90909090[eax]
+ add ax, 0x9090
+ pushw es
+ popw es
+ or 0x90909090[eax], dx
+ or dx, 0x90909090[eax]
+ or ax, 0x9090
+ pushw cs
+ adc 0x90909090[eax], dx
+ adc dx, 0x90909090[eax]
+ adc ax, 0x9090
+ pushw ss
+ popw ss
+ sbb 0x90909090[eax], dx
+ sbb dx, 0x90909090[eax]
+ sbb ax, 0x9090
+ pushw ds
+ popw ds
+ and 0x90909090[eax], dx
+ and dx, 0x90909090[eax]
+ and ax, 0x9090
+ sub 0x90909090[eax], dx
+ sub dx, 0x90909090[eax]
+ sub ax, 0x9090
+ xor 0x90909090[eax], dx
+ xor dx, 0x90909090[eax]
+ xor ax, 0x9090
+ cmp 0x90909090[eax], dx
+ cmp dx, 0x90909090[eax]
+ cmp ax, 0x9090
+ inc ax
+ inc cx
+ inc dx
+ inc bx
+ inc sp
+ inc bp
+ inc si
+ inc di
+ dec ax
+ dec cx
+ dec dx
+ dec bx
+ dec sp
+ dec bp
+ dec si
+ dec di
+ push ax
+ push cx
+ push dx
+ push bx
+ push sp
+ push bp
+ push si
+ push di
+ pop ax
+ pop cx
+ pop dx
+ pop bx
+ pop sp
+ pop bp
+ pop si
+ pop di
+ pushaw # how should we specify a word push all regs?
+ popaw # ditto for popa
+ bound dx, 0x90909090[eax]
+ pushw 0x9090
+ imul dx, 0x90909090[eax], 0x9090
+ pushw 0xff90
+ imul dx, 0x90909090[eax], 0xff90
+ ins word ptr es:[edi], dx
+ outs dx, word ptr ds:[esi]
+ adc word ptr 0x90909090[eax], 0x9090
+ adc word ptr 0x90909090[eax], 0xff90
+ test 0x90909090[eax], dx
+ xchg 0x90909090[eax], dx
+ mov 0x90909090[eax], dx
+ mov dx, 0x90909090[eax]
+ mov word ptr 0x90909090[eax], ss
+ lea dx, 0x90909090[eax]
+ pop word ptr 0x90909090[eax]
+ xchg cx, ax
+ xchg dx, ax
+ xchg bx, ax
+ xchg sp, ax
+ xchg bp, ax
+ xchg si, ax
+ xchg di, ax
+ cbtw
+ cwtd
+ callw 0x9090,0x9090
+ pushfw
+ popfw
+ mov ax, [0x90909090]
+ mov [0x90909090], ax
+ movs word ptr es:[edi], word ptr ds:[esi]
+ cmps word ptr ds:[esi], word ptr es:[edi]
+ test ax, 0x9090
+ stos word ptr es:[edi], ax
+ lods ax, word ptr ds:[esi]
+ scas ax, word ptr es:[edi]
+ mov ax, 0x9090
+ mov cx, 0x9090
+ mov dx, 0x9090
+ mov bx, 0x9090
+ mov sp, 0x9090
+ mov bp, 0x9090
+ mov si, 0x9090
+ mov di, 0x9090
+ rcl word ptr 0x90909090[eax], 0x90
+ retw 0x9090
+ retw
+ les dx, 0x90909090[eax]
+ lds dx, 0x90909090[eax]
+ mov word ptr 0x90909090[eax], 0x9090
+ enterw 0x9090, 0x90
+ leavew
+ lretw 0x9090
+ lretw
+ iretw
+ rcl word ptr 0x90909090[eax]
+ rcl word ptr 0x90909090[eax], cl
+ in ax, 0x90
+ out 0x90, ax
+ call word ptr .+3+0x9090
+ jmpw 0x9090,0x9090
+ in ax, dx
+ out dx, ax
+ not word ptr 0x90909090[eax]
+ call word ptr 0x90909090[eax]
+ lar dx, 0x90909090[eax]
+ lsl dx, 0x90909090[eax]
+ cmovo dx, 0x90909090[eax]
+ cmovno dx, 0x90909090[eax]
+ cmovb dx, 0x90909090[eax]
+ cmovae dx, 0x90909090[eax]
+ cmove dx, 0x90909090[eax]
+ cmovne dx, 0x90909090[eax]
+ cmovbe dx, 0x90909090[eax]
+ cmova dx, 0x90909090[eax]
+ cmovs dx, 0x90909090[eax]
+ cmovns dx, 0x90909090[eax]
+ cmovp dx, 0x90909090[eax]
+ cmovnp dx, 0x90909090[eax]
+ cmovl dx, 0x90909090[eax]
+ cmovge dx, 0x90909090[eax]
+ cmovle dx, 0x90909090[eax]
+ cmovg dx, 0x90909090[eax]
+ pushw fs
+ popw fs
+ bt 0x90909090[eax], dx
+ shld 0x90909090[eax], dx, 0x90
+ shld 0x90909090[eax], dx, cl
+ pushw gs
+ popw gs
+ bts 0x90909090[eax], dx
+ shrd 0x90909090[eax], dx, 0x90
+ shrd 0x90909090[eax], dx, cl
+ imul dx, 0x90909090[eax]
+ cmpxchg 0x90909090[eax], dx
+ lss dx, 0x90909090[eax]
+ btr 0x90909090[eax], dx
+ lfs dx, 0x90909090[eax]
+ lgs dx, 0x90909090[eax]
+ movzx dx, byte ptr 0x90909090[eax]
+ btc 0x90909090[eax], dx
+ bsf dx, 0x90909090[eax]
+ bsr dx, 0x90909090[eax]
+ movsx dx, byte ptr 0x90909090[eax]
+ xadd 0x90909090[eax], dx