mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 01:07:52 +00:00
x86/AT&T: restrict recognition of the "absolute branch" prefix character
While in principle merely rejecting this for .insn would be sufficient for the purposes there, be more generic and reject it for anything that isn't going to be a branch: All elements of same-mnemonic template groups either are branches, or are not, and the few cases possibly requiring a 2nd parsing pass aren't affected either. This then also improves diagnostics for misuses like inc *%eax incl %fs:*(%eax) add *$1, %eax
This commit is contained in:
@@ -11423,7 +11423,8 @@ i386_att_operand (char *operand_string)
|
||||
|
||||
/* We check for an absolute prefix (differentiating,
|
||||
for example, 'jmp pc_relative_label' from 'jmp *absolute_label'. */
|
||||
if (*op_string == ABSOLUTE_PREFIX)
|
||||
if (*op_string == ABSOLUTE_PREFIX
|
||||
&& current_templates->start->opcode_modifier.jump)
|
||||
{
|
||||
++op_string;
|
||||
if (is_space_char (*op_string))
|
||||
@@ -11454,7 +11455,8 @@ i386_att_operand (char *operand_string)
|
||||
++op_string;
|
||||
|
||||
/* Handle case of %es:*foo. */
|
||||
if (!i.jumpabsolute && *op_string == ABSOLUTE_PREFIX)
|
||||
if (!i.jumpabsolute && *op_string == ABSOLUTE_PREFIX
|
||||
&& current_templates->start->opcode_modifier.jump)
|
||||
{
|
||||
++op_string;
|
||||
if (is_space_char (*op_string))
|
||||
|
||||
Reference in New Issue
Block a user