+2010-04-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gas/11535
+ * config/tc-i386-intel.c (intel_state): Add is_indirect.
+ (i386_intel_operand): Initialize intel_state.is_indirect. Check
+ intel_state.is_indirect for "call|jmp [symbol]".
+
2010-04-22 Nick Clifton <nickc@redhat.com>
* po/gas.pot: Updated by the Translation project.
{
operatorT op_modifier; /* Operand modifier. */
int is_mem; /* 1 if operand is memory reference. */
+ int is_indirect; /* 1 if operand is indirect reference. */
int has_offset; /* 1 if operand has offset. */
unsigned int in_offset; /* >=1 if processing operand of offset. */
unsigned int in_bracket; /* >=1 if processing operand in brackets. */
/* Initialize state structure. */
intel_state.op_modifier = O_absent;
intel_state.is_mem = 0;
+ intel_state.is_indirect = 0;
intel_state.has_offset = 0;
intel_state.base = NULL;
intel_state.index = NULL;
else if (!intel_state.has_offset
&& input_line_pointer > buf
&& *(input_line_pointer - 1) == ']')
- intel_state.is_mem |= 1;
+ {
+ intel_state.is_mem |= 1;
+ intel_state.is_indirect = 1;
+ }
input_line_pointer = saved_input_line_pointer;
free (buf);
{
intel_state.is_mem = 1;
if (intel_state.op_modifier == O_absent)
- break;
+ {
+ if (intel_state.is_indirect == 1)
+ i.types[this_operand].bitfield.jumpabsolute = 1;
+ break;
+ }
as_bad (_("cannot infer the segment part of the operand"));
return 0;
}
+2010-04-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gas/11535
+ * gas/i386/intelok.s: Add tests for "call|jmp [xtrn]".
+ * gas/i386/intelok.d: Updated.
+
2010-04-21 Joseph Myers <joseph@codesourcery.com>
* gas/tic6x/insns-c674x.s, gas/tic6x/insns-c674x.d: Also test
[ ]*[0-9a-f]+: ea 03 00 00 00 05 00[ ]+l?jmp[ ]+0x5[,:]0x3
[ ]*[0-9a-f]+: ff 15 00 00 00 00[ ]+call[ ]+DWORD PTR (ds:)?(0x)?0
[ ]*[0-9a-f]+: 66 ff 25 00 00 00 00[ ]+jmp[ ]+WORD PTR (ds:)?(0x)?0
+[ ]*[0-9a-f]+: ff 15 00 00 00 00[ ]+call[ ]+DWORD PTR (ds:)?(0x)?0
+[ ]*[0-9a-f]+: ff 25 00 00 00 00[ ]+jmp[ ]+DWORD PTR (ds:)?(0x)?0
#pass