diff options
author | Jan Beulich <jbeulich@novell.com> | 2017-11-30 11:44:27 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2017-11-30 11:44:27 +0100 |
commit | e21440ba622e17a2f12a858a87a6a75ef90654ca (patch) | |
tree | af4d2f57150658a818ceb7b0dd9f136625f92684 | |
parent | f425ec6600b69e39eb605f3128806ff688137ea8 (diff) | |
download | gdb-e21440ba622e17a2f12a858a87a6a75ef90654ca.zip gdb-e21440ba622e17a2f12a858a87a6a75ef90654ca.tar.gz gdb-e21440ba622e17a2f12a858a87a6a75ef90654ca.tar.bz2 |
Revert "x86: Update segment register check in Intel syntax"
This reverts commit 4d36230d59903b92fbe2b53b31ed64a884860f0e.
I was committed without maintainer ack and regresses intended
functionality. A replacement will be committed shortly.
-rw-r--r-- | gas/ChangeLog | 13 | ||||
-rw-r--r-- | gas/config/tc-i386-intel.c | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelok.s | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/inval-seg.l | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/inval-seg.s | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-inval-seg.l | 22 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-inval-seg.s | 6 |
7 files changed, 18 insertions, 57 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index ab979a3..1b6401f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1394,19 +1394,6 @@ * testsuite/gas/elf/dwarf2-6.d: Likewise. * testsuite/gas/elf/dwarf2-7.d: Likewise. -2017-08-01 H.J. Lu <hongjiu.lu@intel.com> - - PR gas/21874 - * config/tc-i386-intel.c (i386_intel_operand): Update segment - register check. - * testsuite/gas/i386/intelok.s: Replace "fs:gs:[eax]" with - "fs:[eax]". - * testsuite/gas/i386/inval-seg.s: Add tests for invalid segment - register. - * testsuite/gas/i386/x86-64-inval-seg.s: Likewise. - * testsuite/gas/i386/inval-seg.l: Updated. - * testsuite/gas/i386/x86-64-inval-seg.l: Likewise. - 2017-07-31 John David Anglin <danglin@gcc.gnu.org> * config/tc-hppa.c (pa_ip): Clear `d' bit in branch on bit instructions diff --git a/gas/config/tc-i386-intel.c b/gas/config/tc-i386-intel.c index 79fe0b4..74aae24 100644 --- a/gas/config/tc-i386-intel.c +++ b/gas/config/tc-i386-intel.c @@ -956,7 +956,13 @@ i386_intel_operand (char *operand_string, int got_a_float) if (intel_state.seg) { - expP = symbol_get_value_expression (intel_state.seg); + for (;;) + { + expP = symbol_get_value_expression (intel_state.seg); + if (expP->X_op != O_full_ptr) + break; + intel_state.seg = expP->X_add_symbol; + } if (expP->X_op != O_register) { as_bad (_("segment register name expected")); diff --git a/gas/testsuite/gas/i386/intelok.s b/gas/testsuite/gas/i386/intelok.s index 4c16613..eae9c2d 100644 --- a/gas/testsuite/gas/i386/intelok.s +++ b/gas/testsuite/gas/i386/intelok.s @@ -150,7 +150,7 @@ start: mov eax, [eax[ecx]] mov eax, [[eax][ecx]] mov eax, es:[eax] - mov eax, fs:[eax] + mov eax, fs:gs:[eax] # expressions diff --git a/gas/testsuite/gas/i386/inval-seg.l b/gas/testsuite/gas/i386/inval-seg.l index c1bbef9..efe190e 100644 --- a/gas/testsuite/gas/i386/inval-seg.l +++ b/gas/testsuite/gas/i386/inval-seg.l @@ -1,20 +1,10 @@ .*: Assembler messages: .*:3: Error: .* .*:4: Error: .* -.*:7: Error: .* -.*:8: Error: .* -.*:9: Error: .* -.*:10: Error: .* GAS LISTING .* -[ ]*1[ ]+\.text -[ ]*2[ ]+\# All the following should be illegal -[ ]*3[ ]+movl %ds,\(%eax\) -[ ]*4[ ]+movl \(%eax\),%ds -[ ]*5[ ]+ -[ ]*6[ ]+\.intel_syntax noprefix -[ ]*7[ ]+mov eax, DWORD PTR fs:foobar:16 -[ ]*8[ ]+mov eax, DWORD PTR fs:foobar:barfoo:16 -[ ]*9[ ]+mov eax, DWORD PTR fs:ds:16 -[ ]*10[ ]+mov eax, DWORD PTR fs:ds:cs:16 + 1 [ ]* .text + 2 [ ]*# All the following should be illegal + 3 [ ]* movl %ds,\(%eax\) + 4 [ ]* movl \(%eax\),%ds diff --git a/gas/testsuite/gas/i386/inval-seg.s b/gas/testsuite/gas/i386/inval-seg.s index b23d87d..4cc2221 100644 --- a/gas/testsuite/gas/i386/inval-seg.s +++ b/gas/testsuite/gas/i386/inval-seg.s @@ -2,9 +2,3 @@ # All the following should be illegal movl %ds,(%eax) movl (%eax),%ds - - .intel_syntax noprefix - mov eax, DWORD PTR fs:foobar:16 - mov eax, DWORD PTR fs:foobar:barfoo:16 - mov eax, DWORD PTR fs:ds:16 - mov eax, DWORD PTR fs:ds:cs:16 diff --git a/gas/testsuite/gas/i386/x86-64-inval-seg.l b/gas/testsuite/gas/i386/x86-64-inval-seg.l index 51deb15..adef5d4 100644 --- a/gas/testsuite/gas/i386/x86-64-inval-seg.l +++ b/gas/testsuite/gas/i386/x86-64-inval-seg.l @@ -3,22 +3,12 @@ .*:4: Error: .* .*:5: Error: .* .*:6: Error: .* -.*:9: Error: .* -.*:10: Error: .* -.*:11: Error: .* -.*:12: Error: .* GAS LISTING .* -[ ]*1[ ]+\.text -[ ]*2[ ]+\# All the following should be illegal -[ ]*3[ ]+movq %ds,\(%rax\) -[ ]*4[ ]+movl %ds,\(%rax\) -[ ]*5[ ]+movq \(%rax\),%ds -[ ]*6[ ]+movl \(%rax\),%ds -[ ]*7[ ]+ -[ ]*8[ ]+\.intel_syntax noprefix -[ ]*9[ ]+mov eax, DWORD PTR fs:foobar:16 -[ ]*10[ ]+mov eax, DWORD PTR fs:foobar:barfoo:16 -[ ]*11[ ]+mov eax, DWORD PTR fs:ds:16 -[ ]*12[ ]+mov eax, DWORD PTR fs:ds:cs:16 + 1 [ ]* .text + 2 [ ]*# All the following should be illegal + 3 [ ]* movq %ds,\(%rax\) + 4 [ ]* movl %ds,\(%rax\) + 5 [ ]* movq \(%rax\),%ds + 6 [ ]* movl \(%rax\),%ds diff --git a/gas/testsuite/gas/i386/x86-64-inval-seg.s b/gas/testsuite/gas/i386/x86-64-inval-seg.s index cfe46cf..bb54742 100644 --- a/gas/testsuite/gas/i386/x86-64-inval-seg.s +++ b/gas/testsuite/gas/i386/x86-64-inval-seg.s @@ -4,9 +4,3 @@ movl %ds,(%rax) movq (%rax),%ds movl (%rax),%ds - - .intel_syntax noprefix - mov eax, DWORD PTR fs:foobar:16 - mov eax, DWORD PTR fs:foobar:barfoo:16 - mov eax, DWORD PTR fs:ds:16 - mov eax, DWORD PTR fs:ds:cs:16 |