aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2022-08-25 11:39:50 +0100
committerNick Clifton <nickc@redhat.com>2022-08-25 11:39:50 +0100
commite8f20526238199c18afe163a230eafe19b51fca0 (patch)
tree5fa760d8bc29cd1e8c5fac78131ad40d89c64edf
parent5a3ca6e319583a49310067a4b47d7b0dd080c2cd (diff)
downloadgdb-e8f20526238199c18afe163a230eafe19b51fca0.zip
gdb-e8f20526238199c18afe163a230eafe19b51fca0.tar.gz
gdb-e8f20526238199c18afe163a230eafe19b51fca0.tar.bz2
GAS: Allow AArch64 pseudo-ops to accept the command line separator character.
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.
-rw-r--r--gas/ChangeLog10
-rw-r--r--gas/config/tc-aarch64.c17
-rw-r--r--gas/testsuite/gas/aarch64/pr29519.d11
-rw-r--r--gas/testsuite/gas/aarch64/pr29519.s4
4 files changed, 30 insertions, 12 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 23c09c4..d3f52bf 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index f023e5b..98a7ca5 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -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
index 0000000..4bfea09
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/pr29519.d
@@ -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
index 0000000..50c477c
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/pr29519.s
@@ -0,0 +1,4 @@
+foo .req x0 ; bar .req x1
+.unreq foo ; .unreq bar
+.cpu generic ; .arch armv8-a ; .arch_extension crc ; .word 0
+