Allow vld and vst instructions to use the canonical form from ARM ARM when
including an alignment. Previously binutils would only allow instructions in the form "vld1.64 {d0, d1}, [r0, :128]" where the final comma should not be there, instead the above instruction should be "vld1.64 {d0, d1}, [r0:128]". This change duplicates the alignment code from within the function to handle this case.
This commit is contained in:
parent
f6ce1d1969
commit
0162755064
@ -4688,6 +4688,23 @@ parse_address_main (char **str, int i, int group_relocations,
|
||||
return PARSE_OPERAND_FAIL;
|
||||
}
|
||||
}
|
||||
else if (skip_past_char (&p, ':') == SUCCESS)
|
||||
{
|
||||
/* FIXME: '@' should be used here, but it's filtered out by generic
|
||||
code before we get to see it here. This may be subject to
|
||||
change. */
|
||||
expressionS exp;
|
||||
my_get_expression (&exp, &p, GE_NO_PREFIX);
|
||||
if (exp.X_op != O_constant)
|
||||
{
|
||||
inst.error = _("alignment must be constant");
|
||||
return PARSE_OPERAND_FAIL;
|
||||
}
|
||||
inst.operands[i].imm = exp.X_add_number << 8;
|
||||
inst.operands[i].immisalign = 1;
|
||||
/* Alignments are not pre-indexes. */
|
||||
inst.operands[i].preind = 0;
|
||||
}
|
||||
|
||||
if (skip_past_char (&p, ']') == FAIL)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user