diff options
author | Jan Beulich <jbeulich@novell.com> | 2008-02-13 13:29:31 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2008-02-13 13:29:31 +0000 |
commit | 34b772a65111bf68ff0771283dc3b6ad9a175672 (patch) | |
tree | 13e2e7884ccf9b82d59ef719f21f62515b065843 /gas | |
parent | a60de03c6170ebd45927e318164e2306028df86d (diff) | |
download | gdb-34b772a65111bf68ff0771283dc3b6ad9a175672.zip gdb-34b772a65111bf68ff0771283dc3b6ad9a175672.tar.gz gdb-34b772a65111bf68ff0771283dc3b6ad9a175672.tar.bz2 |
gas/
2008-02-13 Jan Beulich <jbeulich@novell.com>
* config/tc-i386.c (intel_e09): Also special-case 'bound'.
gas/testsuite/
2008-02-13 Jan Beulich <jbeulich@novell.com>
* gas/i386/intelbad.s, gas/i386/intelok.s: Add 'bound' tests.
* gas/i386/intelbad.l, gas/i386/intelok.l, gas/i386/intelok.e,
gas/i386/opcode-intel.d: Adjust.
opcodes/
2008-02-13 Jan Beulich <jbeulich@novell.com>
* i386-dis.c (a_mode): New.
(cond_jump_mode): Adjust.
(Ma): Change to a_mode.
(intel_operand_size): Handle a_mode.
* i386-opc.tbl: Allow Dword and Qword for bound.
* i386-tbl.h: Re-generate.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 19 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelbad.l | 44 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelbad.s | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelok.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelok.e | 14 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intelok.s | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/opcode-intel.d | 4 |
9 files changed, 59 insertions, 38 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 70a3497..952ee07 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,9 @@ 2008-02-13 Jan Beulich <jbeulich@novell.com> + * config/tc-i386.c (intel_e09): Also special-case 'bound'. + +2008-02-13 Jan Beulich <jbeulich@novell.com> + * config/tc-i386.c (allow_pseudo_reg): New. (parse_real_register): Check for NULL just once. Allow all register table entries when allow_pseudo_reg is non-zero. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 30bc9cc..ccb46ae 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -8357,9 +8357,10 @@ intel_e09 (void) else if (prev_token.code == T_WORD) { - if (current_templates->start->name[0] == 'l' - && current_templates->start->name[2] == 's' - && current_templates->start->name[3] == 0) + if ((current_templates->start->name[0] == 'l' + && current_templates->start->name[2] == 's' + && current_templates->start->name[3] == 0) + || current_templates->start->base_opcode == 0x62 /* bound */) suffix = BYTE_MNEM_SUFFIX; /* so it will cause an error */ else if (intel_parser.got_a_float == 2) /* "fi..." */ suffix = SHORT_MNEM_SUFFIX; @@ -8370,9 +8371,10 @@ intel_e09 (void) else if (prev_token.code == T_DWORD) { - if (current_templates->start->name[0] == 'l' - && current_templates->start->name[2] == 's' - && current_templates->start->name[3] == 0) + if ((current_templates->start->name[0] == 'l' + && current_templates->start->name[2] == 's' + && current_templates->start->name[3] == 0) + || current_templates->start->base_opcode == 0x62 /* bound */) suffix = WORD_MNEM_SUFFIX; else if (flag_code == CODE_16BIT && (current_templates->start->opcode_modifier.jump @@ -8404,10 +8406,11 @@ intel_e09 (void) else if (prev_token.code == T_QWORD) { - if (intel_parser.got_a_float == 1) /* "f..." */ + if (current_templates->start->base_opcode == 0x62 /* bound */ + || intel_parser.got_a_float == 1) /* "f..." */ suffix = LONG_MNEM_SUFFIX; else - suffix = QWORD_MNEM_SUFFIX; + suffix = QWORD_MNEM_SUFFIX; i.types[this_operand].bitfield.qword = 1; } diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 846dc0e..c924af1 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2008-02-13 Jan Beulich <jbeulich@novell.com> + * gas/i386/intelbad.s, gas/i386/intelok.s: Add 'bound' tests. + * gas/i386/intelbad.l, gas/i386/intelok.l, gas/i386/intelok.e, + gas/i386/opcode-intel.d: Adjust. + +2008-02-13 Jan Beulich <jbeulich@novell.com> + * gas/cfi/cfi-i386.s: Add code testing use of all registers. Fix a few comments. * gas/cfi/cfi-x86_64.s: Likewise. diff --git a/gas/testsuite/gas/i386/intelbad.l b/gas/testsuite/gas/i386/intelbad.l index e3557dd..b10a6c4 100644 --- a/gas/testsuite/gas/i386/intelbad.l +++ b/gas/testsuite/gas/i386/intelbad.l @@ -15,7 +15,7 @@ .*:17: Error: .* .*:18: Error: .* .*:19: Error: .* -.*:20: Error: .* +.*:20: (Warning|Error): .* .*:21: Error: .* .*:22: Error: .* .*:23: Error: .* @@ -51,9 +51,9 @@ .*:53: Error: .* .*:54: Error: .* .*:55: Error: .* -.*:56: (Warning|Error): .* +.*:56: Error: .* .*:57: Error: .* -.*:58: Error: .* +.*:58: (Warning|Error): .* .*:59: Error: .* .*:60: Error: .* .*:61: Error: .* @@ -71,13 +71,13 @@ .*:73: Error: .* .*:74: Error: .* .*:75: Error: .* +.*:76: Error: .* .*:77: Error: .* -.*:78: Error: .* -.*:89: Error: .* -.*:90: Error: .* +.*:79: Error: .* +.*:80: Error: .* .*:91: Error: .* -.*:94: Error: .* -.*:95: Error: .* +.*:92: Error: .* +.*:93: Error: .* .*:96: Error: .* .*:97: Error: .* .*:98: Error: .* @@ -98,49 +98,51 @@ .*: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: Error: .* -.*:139: Error: .* .*:140: Error: .* .*:141: Error: .* .*:142: Error: .* .*:143: Error: .* .*:144: Error: .* .*:145: Error: .* +.*:146: Error: .* .*:147: Error: .* -.*:148: Error: .* .*:149: Error: .* .*:150: Error: .* .*:151: Error: .* -#... .*:152: Error: .* -#... .*:153: Error: .* +#... .*:154: Error: .* +#... .*:155: Error: .* .*:156: Error: .* +.*:157: Error: .* .*:158: Error: .* -.*:159: Error: .* .*:160: Error: .* -.*:161: Warning: .* -.*:162: Warning: .* -.*:164: Error: .* -.*:165: Warning: .* -.*:165: Error: .* +.*:161: Error: .* +.*:162: Error: .* +.*:163: Warning: .* +.*:164: Warning: .* +.*:166: Error: .* +.*:167: Warning: .* +.*:167: Error: .* diff --git a/gas/testsuite/gas/i386/intelbad.s b/gas/testsuite/gas/i386/intelbad.s index f3bb96d..2489c12 100644 --- a/gas/testsuite/gas/i386/intelbad.s +++ b/gas/testsuite/gas/i386/intelbad.s @@ -17,6 +17,8 @@ start: addss xmm0, qword ptr [eax] addss xmm0, tbyte ptr [eax] addss xmm0, xmmword ptr [eax] + bound eax, dword ptr [ebx] + bound ax, word ptr [ebx] call byte ptr [eax] call qword ptr [eax] call tbyte ptr [eax] diff --git a/gas/testsuite/gas/i386/intelok.d b/gas/testsuite/gas/i386/intelok.d index b3a1988..27f1217 100644 --- a/gas/testsuite/gas/i386/intelok.d +++ b/gas/testsuite/gas/i386/intelok.d @@ -25,6 +25,8 @@ Disassembly of section .text: [ ]*[0-9a-f]+: f2 0f 58 00[ ]+addsd[ ]+xmm0,QWORD PTR \[eax\] [ ]*[0-9a-f]+: f3 0f 58 00[ ]+addss[ ]+xmm0,DWORD PTR \[eax\] [ ]*[0-9a-f]+: f3 0f 58 00[ ]+addss[ ]+xmm0,DWORD PTR \[eax\] +[ ]*[0-9a-f]+: 66 62 01[ ]+bound[ ]+ax,(DWORD PTR )?\[ecx\] +[ ]*[0-9a-f]+: 62 01[ ]+bound[ ]+eax,(QWORD PTR )?\[ecx\] [ ]*[0-9a-f]+: 66 ff 10[ ]+call[ ]+WORD PTR \[eax\] [ ]*[0-9a-f]+: ff 10[ ]+call[ ]+DWORD PTR \[eax\] [ ]*[0-9a-f]+: ff 18[ ]+call[ ]+FWORD PTR \[eax\] diff --git a/gas/testsuite/gas/i386/intelok.e b/gas/testsuite/gas/i386/intelok.e index dbe4a05..e49436e 100644 --- a/gas/testsuite/gas/i386/intelok.e +++ b/gas/testsuite/gas/i386/intelok.e @@ -1,8 +1,8 @@ .*: Assembler messages: -.*:173: Warning: .* taken to mean just .* -.*:180: Warning: Treating .* as memory reference -.*:181: Warning: .* taken to mean just .* -.*:181: Warning: Treating .* as memory reference -.*:184: Warning: Treating .* as memory reference -.*:185: Warning: Treating .* as memory reference -.*:188: Warning: Treating .* as memory reference +.*:175: Warning: .* taken to mean just .* +.*:182: Warning: Treating .* as memory reference +.*:183: Warning: .* taken to mean just .* +.*:183: Warning: Treating .* as memory reference +.*:186: Warning: Treating .* as memory reference +.*:187: Warning: Treating .* as memory reference +.*:190: Warning: Treating .* as memory reference diff --git a/gas/testsuite/gas/i386/intelok.s b/gas/testsuite/gas/i386/intelok.s index a313922..5916b03 100644 --- a/gas/testsuite/gas/i386/intelok.s +++ b/gas/testsuite/gas/i386/intelok.s @@ -29,6 +29,8 @@ start: addsd xmm0, qword ptr [eax] addss xmm0, [eax] addss xmm0, dword ptr [eax] + bound ax, dword ptr [ecx] + bound eax, qword ptr [ecx] call word ptr [eax] call dword ptr [eax] call fword ptr [eax] diff --git a/gas/testsuite/gas/i386/opcode-intel.d b/gas/testsuite/gas/i386/opcode-intel.d index 2b728e1..8a2ab83 100644 --- a/gas/testsuite/gas/i386/opcode-intel.d +++ b/gas/testsuite/gas/i386/opcode-intel.d @@ -101,7 +101,7 @@ Disassembly of section .text: *[0-9a-f]+: 5f[ ]+pop[ ]+edi *[0-9a-f]+: 60[ ]+pusha[ ]* *[0-9a-f]+: 61[ ]+popa[ ]* - *[0-9a-f]+: 62 90 90 90 90 90[ ]+bound[ ]+edx,(DWORD PTR )?\[eax-0x6f6f6f70\] + *[0-9a-f]+: 62 90 90 90 90 90[ ]+bound[ ]+edx,(QWORD PTR )?\[eax-0x6f6f6f70\] *[0-9a-f]+: 63 90 90 90 90 90[ ]+arpl[ ]+(WORD PTR )?\[eax-0x6f6f6f70\],dx *[0-9a-f]+: 68 90 90 90 90[ ]+push[ ]+0x90909090 *[0-9a-f]+: 69 90 90 90 90 90 90 90 90 90[ ]+imul[ ]+edx,(DWORD PTR )?\[eax-0x6f6f6f70\],0x90909090 @@ -477,7 +477,7 @@ Disassembly of section .text: *[0-9a-f]+: 60[ ]+pusha[ ]* *[0-9a-f]+: 66[ ]+data16 *[0-9a-f]+: 61[ ]+popa[ ]* - *[0-9a-f]+: 66 62 90 90 90 90 90[ ]+bound[ ]+dx,(WORD PTR )?\[eax-0x6f6f6f70\] + *[0-9a-f]+: 66 62 90 90 90 90 90[ ]+bound[ ]+dx,(DWORD PTR )?\[eax-0x6f6f6f70\] *[0-9a-f]+: 66 68 90 90[ ]+push[ ]+0x9090 *[0-9a-f]+: 66 69 90 90 90 90 90 90 90[ ]+imul[ ]+dx,(WORD PTR )?\[eax-0x6f6f6f70\],0x9090 *[0-9a-f]+: 66[ ]+data16 |