aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-i386-intel.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2019-11-14 08:47:03 +0100
committerJan Beulich <jbeulich@suse.com>2019-11-14 08:47:03 +0100
commit6f2f06bea87613a6851607829e5893d74007f5bf (patch)
tree5ec0036f1cdfa57127f3cfa8d173e6b7c0afcf28 /gas/config/tc-i386-intel.c
parent601e8564220b94b991ce1729edfc04fd9da52906 (diff)
downloadgdb-6f2f06bea87613a6851607829e5893d74007f5bf.zip
gdb-6f2f06bea87613a6851607829e5893d74007f5bf.tar.gz
gdb-6f2f06bea87613a6851607829e5893d74007f5bf.tar.bz2
x86: make JumpAbsolute an insn attribute
... instead of an operand one: There's only ever one operand here anyway.
Diffstat (limited to 'gas/config/tc-i386-intel.c')
-rw-r--r--gas/config/tc-i386-intel.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/gas/config/tc-i386-intel.c b/gas/config/tc-i386-intel.c
index 2116e49..fd71afb 100644
--- a/gas/config/tc-i386-intel.c
+++ b/gas/config/tc-i386-intel.c
@@ -743,17 +743,19 @@ i386_intel_operand (char *operand_string, int got_a_float)
|| current_templates->start->opcode_modifier.jumpdword
|| current_templates->start->opcode_modifier.jumpintersegment)
{
+ bfd_boolean jumpabsolute = FALSE;
+
if (i.op[this_operand].regs
|| intel_state.base
|| intel_state.index
|| intel_state.is_mem > 1)
- i.types[this_operand].bitfield.jumpabsolute = 1;
+ jumpabsolute = TRUE;
else
switch (intel_state.op_modifier)
{
case O_near_ptr:
if (intel_state.seg)
- i.types[this_operand].bitfield.jumpabsolute = 1;
+ jumpabsolute = TRUE;
else
intel_state.is_mem = 1;
break;
@@ -765,14 +767,14 @@ i386_intel_operand (char *operand_string, int got_a_float)
if (intel_state.op_modifier == O_absent)
{
if (intel_state.is_indirect == 1)
- i.types[this_operand].bitfield.jumpabsolute = 1;
+ jumpabsolute = TRUE;
break;
}
as_bad (_("cannot infer the segment part of the operand"));
return 0;
}
else if (S_GET_SEGMENT (intel_state.seg) == reg_section)
- i.types[this_operand].bitfield.jumpabsolute = 1;
+ jumpabsolute = TRUE;
else
{
i386_operand_type types;
@@ -806,11 +808,14 @@ i386_intel_operand (char *operand_string, int got_a_float)
}
break;
default:
- i.types[this_operand].bitfield.jumpabsolute = 1;
+ jumpabsolute = TRUE;
break;
}
- if (i.types[this_operand].bitfield.jumpabsolute)
- intel_state.is_mem |= 1;
+ if (jumpabsolute)
+ {
+ i.jumpabsolute = TRUE;
+ intel_state.is_mem |= 1;
+ }
}
else if (intel_state.seg)
intel_state.is_mem |= 1;