diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-08-26 15:51:15 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-08-26 15:51:15 +0000 |
commit | 435acd52e0b267c3a5812117255a3bb29304ce9f (patch) | |
tree | 97737772f3750c6656a758072c6debda8c25f9da /gas/config | |
parent | 3f31e633c26da6d2bbe082f62952d624e5d00886 (diff) | |
download | gdb-435acd52e0b267c3a5812117255a3bb29304ce9f.zip gdb-435acd52e0b267c3a5812117255a3bb29304ce9f.tar.gz gdb-435acd52e0b267c3a5812117255a3bb29304ce9f.tar.bz2 |
gas/
2005-08-26 Jan Beulich <jbeulich@novell.com>
* config/tc-i386.c (intel_e09): Set JumpAbsolute when seeing a PTR-
qualified operand of a branch.
(intel_bracket_expr): Set JumpAbsolute here...
(intel_e11): ... rather than here.
gas/testsuite/
2005-08-26 Jan Beulich <jbeulich@novell.com>
* gas/i386/intel.s: Adjust.
* gas/i386/intelok.s: Add two more insns.
* gas/i386/intelok.d: Adjust.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-i386.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index acba3e1..6542e54 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6159,7 +6159,7 @@ intel_e09 () suffix = WORD_MNEM_SUFFIX; else if (flag_code == CODE_16BIT && (current_templates->start->opcode_modifier - & (Jump|JumpDword|JumpInterSegment))) + & (Jump | JumpDword))) suffix = LONG_DOUBLE_MNEM_SUFFIX; else if (intel_parser.got_a_float == 1) /* "f..." */ suffix = SHORT_MNEM_SUFFIX; @@ -6211,6 +6211,11 @@ intel_e09 () return 0; } + /* Operands for jump/call using 'ptr' notation denote absolute + addresses. */ + if (current_templates->start->opcode_modifier & (Jump | JumpDword)) + i.types[this_operand] |= JumpAbsolute; + if (current_templates->start->base_opcode == 0x8d /* lea */) ; else if (!i.suffix) @@ -6295,6 +6300,11 @@ intel_bracket_expr () if (!intel_parser.in_offset) { ++intel_parser.in_bracket; + + /* Operands for jump/call inside brackets denote absolute addresses. */ + if (current_templates->start->opcode_modifier & (Jump | JumpDword)) + i.types[this_operand] |= JumpAbsolute; + /* Unfortunately gas always diverged from MASM in a respect that can't be easily fixed without risking to break code sequences likely to be encountered (the testsuite even check for this): MASM doesn't consider @@ -6397,13 +6407,6 @@ intel_e11 () /* e11 [ expr ] */ case '[': - /* Operands for jump/call inside brackets denote absolute addresses. - XXX This shouldn't be needed anymore (or if it should rather live - in intel_bracket_expr). */ - if (current_templates->start->opcode_modifier - & (Jump|JumpDword|JumpByte|JumpInterSegment)) - i.types[this_operand] |= JumpAbsolute; - return intel_bracket_expr (); /* e11 $ |