aboutsummaryrefslogtreecommitdiff
path: root/contrib/binutils
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2014-10-03 15:07:43 +0000
committerAndrew Turner <andrew@FreeBSD.org>2014-10-03 15:07:43 +0000
commit016275506464eca03c46bd9deb4db5a718959095 (patch)
treeb193f49f743603299e20730b223e5108a75dd040 /contrib/binutils
parentf6ce1d1969b7237a70ca6878db4c6d4d0f2359e7 (diff)
Notes
Diffstat (limited to 'contrib/binutils')
-rw-r--r--contrib/binutils/gas/config/tc-arm.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/contrib/binutils/gas/config/tc-arm.c b/contrib/binutils/gas/config/tc-arm.c
index a57d1ba6dc167..1d9e27c0e834b 100644
--- a/contrib/binutils/gas/config/tc-arm.c
+++ b/contrib/binutils/gas/config/tc-arm.c
@@ -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)
{