GAS: Allow AArch64 pseudo-ops to accept the command line separator character.
authorNick Clifton <nickc@redhat.com>
Thu, 25 Aug 2022 10:39:50 +0000 (11:39 +0100)
committerNick Clifton <nickc@redhat.com>
Thu, 25 Aug 2022 10:39:50 +0000 (11:39 +0100)
PR 29519
* config/tc-aarch64.c (s_unreq): Use find_end_of_line().
(s_aarch64_cpu): Likewise.
(s_aarch64_arch): Likewise.
(s_aarch64_arch_extension): Likewise.
* testsuite/gas/aarch64/pr29519.d: New test driver file.
* testsuite/gas/aarch64/pr29519.s: New test source file.

gas/ChangeLog
gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/pr29519.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/pr29519.s [new file with mode: 0644]

index 23c09c40950f6a1c7701797eb52b0366047381cd..d3f52bf84d1ef7843a99bb1219d7ff4da6f39b21 100644 (file)
@@ -1,3 +1,13 @@
+2022-08-25  Nick Clifton  <nickc@redhat.com>
+
+       PR 29519
+       * config/tc-aarch64.c (s_unreq): Use find_end_of_line().
+       (s_aarch64_cpu): Likewise.
+       (s_aarch64_arch): Likewise.
+       (s_aarch64_arch_extension): Likewise.
+       * testsuite/gas/aarch64/pr29519.d: New test driver file.
+       * testsuite/gas/aarch64/pr29519.s: New test source file.
+
 2022-08-08  Tsukasa OI  <research_trasio@irq.a4lg.com>
 
        * config/obj-macho.c (obj_mach_o_get_section_names): Wrap two
index f023e5b0a283309bf3183ec83187f53e4b0372da..98a7ca5878fa1461bc68e63c872c37cf6d5745b5 100644 (file)
@@ -1400,11 +1400,7 @@ s_unreq (int a ATTRIBUTE_UNUSED)
   char saved_char;
 
   name = input_line_pointer;
-
-  while (*input_line_pointer != 0
-        && *input_line_pointer != ' ' && *input_line_pointer != '\n')
-    ++input_line_pointer;
-
+  input_line_pointer = find_end_of_line (input_line_pointer, flag_m68k_mri);
   saved_char = *input_line_pointer;
   *input_line_pointer = 0;
 
@@ -10378,8 +10374,7 @@ s_aarch64_cpu (int ignored ATTRIBUTE_UNUSED)
   size_t optlen;
 
   name = input_line_pointer;
-  while (*input_line_pointer && !ISSPACE (*input_line_pointer))
-    input_line_pointer++;
+  input_line_pointer = find_end_of_line (input_line_pointer, flag_m68k_mri);
   saved_char = *input_line_pointer;
   *input_line_pointer = 0;
 
@@ -10424,8 +10419,7 @@ s_aarch64_arch (int ignored ATTRIBUTE_UNUSED)
   size_t optlen;
 
   name = input_line_pointer;
-  while (*input_line_pointer && !ISSPACE (*input_line_pointer))
-    input_line_pointer++;
+  input_line_pointer = find_end_of_line (input_line_pointer, flag_m68k_mri);
   saved_char = *input_line_pointer;
   *input_line_pointer = 0;
 
@@ -10464,10 +10458,9 @@ static void
 s_aarch64_arch_extension (int ignored ATTRIBUTE_UNUSED)
 {
   char saved_char;
-  char *ext = input_line_pointer;;
+  char *ext = input_line_pointer;
 
-  while (*input_line_pointer && !ISSPACE (*input_line_pointer))
-    input_line_pointer++;
+  input_line_pointer = find_end_of_line (input_line_pointer, flag_m68k_mri);
   saved_char = *input_line_pointer;
   *input_line_pointer = 0;
 
diff --git a/gas/testsuite/gas/aarch64/pr29519.d b/gas/testsuite/gas/aarch64/pr29519.d
new file mode 100644 (file)
index 0000000..4bfea09
--- /dev/null
@@ -0,0 +1,11 @@
+# Check that AArch64 specific pseudo-ops can be separated by the ; line separator character.
+#name: PR29519 (Separating AArch64 pseudo-ops with ;)
+#objdump: -rd
+
+.*:     file format .*
+
+Disassembly of section \.text:
+
+0+0 <\.text>:
+.*\.word[      ]+0x0+0
+#pass
diff --git a/gas/testsuite/gas/aarch64/pr29519.s b/gas/testsuite/gas/aarch64/pr29519.s
new file mode 100644 (file)
index 0000000..50c477c
--- /dev/null
@@ -0,0 +1,4 @@
+foo .req x0 ; bar .req x1
+.unreq foo ; .unreq bar
+.cpu generic ; .arch armv8-a ; .arch_extension crc ; .word 0
+