]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gas/
authorRoland McGrath <roland@gnu.org>
Mon, 24 Jun 2013 21:06:18 +0000 (21:06 +0000)
committerRoland McGrath <roland@gnu.org>
Mon, 24 Jun 2013 21:06:18 +0000 (21:06 +0000)
* 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.

gas/testsuite/
* 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.

gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/macro-pld.d
gas/testsuite/gas/arm/macro-pld.s
gas/testsuite/gas/arm/macro-vld1.d [new file with mode: 0644]
gas/testsuite/gas/arm/macro-vld1.s [new file with mode: 0644]

index 3d0979289ea48d22b758c89380493dd84b0b995a..63fcd9feba831ffe999a4a32ba017cc4ccf51151 100644 (file)
@@ -1,3 +1,11 @@
+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:
index 48316a56649f6f68d22ef36e56fef6806518475f..4225e1edf4dac998d0186d283db6bdb42dfd597f 100644 (file)
@@ -323,8 +323,9 @@ static bfd_boolean unified_syntax = FALSE;
 
 /* 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
 {
@@ -1154,6 +1155,8 @@ arm_reg_parse_multi (char **ccp)
   char *p;
   struct reg_entry *reg;
 
+  skip_whitespace (start);
+
 #ifdef REGISTER_PREFIX
   if (*start != REGISTER_PREFIX)
     return NULL;
@@ -1579,6 +1582,8 @@ parse_reg_list (char ** strp)
   /* We come back here if we get ranges concatenated by '+' or '|'.  */
   do
     {
+      skip_whitespace (str);
+
       another_range = 0;
 
       if (*str == '{')
@@ -1730,14 +1735,12 @@ parse_vfp_reg_list (char **ccp, unsigned int *pbase, enum reg_list_els etype)
   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:
@@ -4026,6 +4029,8 @@ s_arm_unwind_save_mmxwcg (void)
   if (*input_line_pointer == '{')
     input_line_pointer++;
 
+  skip_whitespace (input_line_pointer);
+
   do
     {
       reg = arm_reg_parse (&input_line_pointer, REG_TYPE_MMXWCG);
index 475c93aadeae2ca718325923eacd88b42128071d..424db409f78b14cd89627288e855f57eee6d1c22 100644 (file)
@@ -1,3 +1,10 @@
+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:
index 8f9d86c87ce9b39c18c8cfb42ee1855bc876f5e4..e3a784357cd5ffbc986435b7c463ecd3d229418a 100644 (file)
@@ -6,3 +6,4 @@ Disassembly of section \.text:
 
 0+ <.*>:
 \s*0:\s+f5d0f000\s+pld\s+\[r0\]
+\s*4:\s+e52d0004\s+push\s+{r0}\s*.*
index cf4df8bef29bea86d23651dd23e352f68c5977a3..f2a436b8c85b5de2825c4c9169c1368d4a7a4d76 100644 (file)
@@ -2,3 +2,4 @@
        \rest
 .endm
        foo r0, pld [r0]
+       foo r0, push {r0}
diff --git a/gas/testsuite/gas/arm/macro-vld1.d b/gas/testsuite/gas/arm/macro-vld1.d
new file mode 100644 (file)
index 0000000..4a5e2f5
--- /dev/null
@@ -0,0 +1,8 @@
+#objdump: -dr
+
+.*:     file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+\s*0:\s+f420070f\s+vld1.8\s+{d0},\s*\[r0\]
diff --git a/gas/testsuite/gas/arm/macro-vld1.s b/gas/testsuite/gas/arm/macro-vld1.s
new file mode 100644 (file)
index 0000000..530c5c3
--- /dev/null
@@ -0,0 +1,9 @@
+       .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]