diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 2 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelbad.l | 36 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelbad.s | 23 |
5 files changed, 61 insertions, 10 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 9103916..20f43c5 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2005-11-10 Jan Beulich <jbeulich@novell.com> + + * config/tc-i386.c (intel_e11): Don't special-case segment + registers in brackets. + 2005-11-10 Nick Clifton <nickc@redhat.com> * config/tc-arm.c (BAD_ADDR_MODE): Define. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 2612190..bf7a7b0 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6644,7 +6644,7 @@ intel_e11 () /* No scaling. If this is a memory operand, the register is either a base register (first occurrence) or an index register (second occurrence). */ - else if (intel_parser.in_bracket && !(reg->reg_type & (SReg2 | SReg3))) + else if (intel_parser.in_bracket) { if (!i.base_reg) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index d896190..eb0881e 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-11-10 Jan Beulich <jbeulich@novell.com> + + * gas/i386/intelbad.d: Add tests for ill registers in brackets. + * gas/i386/intelbad.l: Adjust. + 2005-11-10 Nick Clifton <nickc@redhat.com> * gas/arm/archv6t2-bad.s: Add tests of badly composed ldrex and diff --git a/gas/testsuite/gas/i386/intelbad.l b/gas/testsuite/gas/i386/intelbad.l index f8fbe73..198420a 100644 --- a/gas/testsuite/gas/i386/intelbad.l +++ b/gas/testsuite/gas/i386/intelbad.l @@ -81,31 +81,49 @@ .*:113: Error: .* .*:114: Error: .* .*:115: Error: .* -.*:116: Error: .* .*:117: Error: .* .*:118: Error: .* .*:119: Error: .* .*:120: Error: .* .*:121: Error: .* .*:122: Error: .* -.*:123: Error: .* .*:124: Error: .* .*:125: Error: .* .*:126: Error: .* .*:127: Error: .* .*:128: Error: .* -#... .*:129: Error: .* -#... -.*:130: Error: .* .*:131: Error: .* .*:132: Error: .* .*:133: Error: .* +.*:134: Error: .* .*:135: Error: .* .*:136: Error: .* -.*:137: Error: .* -.*:138: Warning: .* -.*:139: Warning: .* +.*:138: Error: .* +.*:139: Error: .* +.*:140: Error: .* .*:141: Error: .* -.*:142: Warning: .* .*:142: Error: .* +.*:143: Error: .* +.*:144: Error: .* +.*:145: Error: .* +.*:147: Error: .* +.*:148: Error: .* +.*:149: Error: .* +.*:150: Error: .* +.*:151: Error: .* +#... +.*:152: Error: .* +#... +.*:153: Error: .* +.*:154: Error: .* +.*:155: Error: .* +.*:156: Error: .* +.*:158: Error: .* +.*:159: Error: .* +.*:160: Error: .* +.*:161: Warning: .* +.*:162: Warning: .* +.*:164: Error: .* +.*:165: Warning: .* +.*:165: Error: .* diff --git a/gas/testsuite/gas/i386/intelbad.s b/gas/testsuite/gas/i386/intelbad.s index 2a9daad..f3bb96d 100644 --- a/gas/testsuite/gas/i386/intelbad.s +++ b/gas/testsuite/gas/i386/intelbad.s @@ -113,6 +113,28 @@ start: mov eax, [eax]+2*ecx mov eax, [[eax]ecx] mov eax, eax:[ecx] + + mov eax, [ss] + mov eax, [st] + mov eax, [mm0] + mov eax, [xmm0] + mov eax, [cr0] + mov eax, [dr7] + + mov eax, [ss+edx] + mov eax, [st+edx] + mov eax, [mm0+edx] + mov eax, [xmm0+edx] + mov eax, [cr0+edx] + mov eax, [dr7+edx] + + mov eax, [edx+ss] + mov eax, [edx+st] + mov eax, [edx+cr0] + mov eax, [edx+dr7] + mov eax, [edx+mm0] + mov eax, [edx+xmm0] + lea eax, [bx+si*1] lea eax, [bp+si*2] lea eax, [bx+di*4] @@ -121,6 +143,7 @@ start: lea eax, [bp+2*si] lea eax, [bx+4*di] lea eax, [bp+8*di] + mov eax, [ah] mov eax, [ax] mov eax, [eax+bx] |