+2013-06-24 Roland McGrath <mcgrathr@google.com>
+
+ * config/tc-arm.c (arm_symbol_chars): Include '{' and '}'.
+ (arm_reg_parse_multi): Skip whitespace first.
+ (parse_reg_list): Likewise.
+ (parse_vfp_reg_list): Likewise.
+ (s_arm_unwind_save_mmxwcg): Likewise.
+
2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
Backport from mainline:
/* An immediate operand can start with #, and ld*, st*, pld operands
can contain [ and ]. We need to tell APP not to elide whitespace
- before a [, which can appear as the first operand for pld. */
-const char arm_symbol_chars[] = "#[]";
+ before a [, which can appear as the first operand for pld.
+ Likewise, a { can appear as the first operand for push, pop, vld*, etc. */
+const char arm_symbol_chars[] = "#[]{}";
enum neon_el_type
{
char *p;
struct reg_entry *reg;
+ skip_whitespace (start);
+
#ifdef REGISTER_PREFIX
if (*start != REGISTER_PREFIX)
return NULL;
/* We come back here if we get ranges concatenated by '+' or '|'. */
do
{
+ skip_whitespace (str);
+
another_range = 0;
if (*str == '{')
unsigned long mask = 0;
int i;
- if (*str != '{')
+ if (skip_past_char (&str, '{') == FAIL)
{
inst.error = _("expecting {");
return FAIL;
}
- str++;
-
switch (etype)
{
case REGLIST_VFP_S:
if (*input_line_pointer == '{')
input_line_pointer++;
+ skip_whitespace (input_line_pointer);
+
do
{
reg = arm_reg_parse (&input_line_pointer, REG_TYPE_MMXWCG);
+2013-06-24 Roland McGrath <mcgrathr@google.com>
+
+ * gas/arm/macro-pld.s: Add a 'push {r0}' case.
+ * gas/arm/macro-pld.d: Update expected output.
+ * gas/arm/macro-vld1.s: New file.
+ * gas/arm/macro-vld1.d: New file.
+
2013-05-13 Yufeng Zhang <yufeng.zhang@arm.com>
Backport from mainline:
--- /dev/null
+ .fpu neon
+ .macro sfi_breg basereg, insn, operands:vararg
+ .macro _sfi_breg_doit B
+ \insn \operands
+ .endm
+ _sfi_breg_doit \basereg
+ .purgem _sfi_breg_doit
+ .endm
+ sfi_breg r0, vld1.8 {d0}, [\B]