diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2007-03-12 21:36:23 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2007-03-12 21:36:23 +0000 |
commit | 8a2ed4898725a7b21481ed0b4fa1c21d9c25f0bd (patch) | |
tree | ac53d09f356ea6ca782f5fdd8de9e575a20a91af /gas/config/tc-i386.c | |
parent | a4fd337476dd0d246549b81b3e5cc8fb3ddc9b00 (diff) | |
download | gdb-8a2ed4898725a7b21481ed0b4fa1c21d9c25f0bd.zip gdb-8a2ed4898725a7b21481ed0b4fa1c21d9c25f0bd.tar.gz gdb-8a2ed4898725a7b21481ed0b4fa1c21d9c25f0bd.tar.bz2 |
2007-03-12 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (md_assemble): Use Opcode_XXX instead of XXX
on i.tm.base_opcode.
(match_template): Likewise.
(process_operands): Use ~0x3 mask to match MOV_AX_DISP32.
* config/tc-i386.h (Opcode_D): New.
(Opcode_FloatR): Likewise.
(Opcode_FloatD): Likewise.
(D): Redefined.
(W): Likewise.
(FloatMF): Likewise.
(FloatR): Likewise.
(FloatD): Likewise.
Diffstat (limited to 'gas/config/tc-i386.c')
-rw-r--r-- | gas/config/tc-i386.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index aa88394..5db7aa4 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1766,7 +1766,7 @@ md_assemble (line) /* Undo SYSV386_COMPAT brokenness when in Intel mode. See i386.h */ if (SYSV386_COMPAT && (i.tm.base_opcode & 0xfffffde0) == 0xdce0) - i.tm.base_opcode ^= FloatR; + i.tm.base_opcode ^= Opcode_FloatR; /* Zap movzx and movsx suffix. The suffix may have been set from "word ptr" or "byte ptr" on the source operand, but we'll use @@ -2657,7 +2657,14 @@ match_template (void) } /* found_reverse_match holds which of D or FloatDR we've found. */ - found_reverse_match = t->opcode_modifier & (D | FloatDR); + if ((t->opcode_modifier & D)) + found_reverse_match = Opcode_D; + else if ((t->opcode_modifier & FloatD)) + found_reverse_match = Opcode_FloatD; + else + found_reverse_match = 0; + if ((t->opcode_modifier & FloatR)) + found_reverse_match |= Opcode_FloatR; } else { @@ -3322,7 +3329,7 @@ process_operands (void) default_seg = build_modrm_byte (); } - else if ((i.tm.base_opcode & ~(D | W)) == MOV_AX_DISP32) + else if ((i.tm.base_opcode & ~0x3) == MOV_AX_DISP32) { default_seg = &ds; } |