64 lines
1.9 KiB
Diff
64 lines
1.9 KiB
Diff
From 114ab354c7fd16678578031340437b60e7b36e53 Mon Sep 17 00:00:00 2001
|
|
From: mengqinggang <mengqinggang@loongson.cn>
|
|
Date: Sun, 10 Dec 2023 17:41:32 +0800
|
|
Subject: [PATCH 019/123] LoongArch: Add support for <b ".L1"> and <beq, $t0,
|
|
$t1, ".L1">
|
|
|
|
Support symbol names enclosed in double quotation marks.
|
|
---
|
|
.../gas/loongarch/double_quotation_marks.d | 13 +++++++++++++
|
|
.../gas/loongarch/double_quotation_marks.s | 2 ++
|
|
opcodes/loongarch-coder.c | 7 +++++++
|
|
3 files changed, 22 insertions(+)
|
|
create mode 100644 gas/testsuite/gas/loongarch/double_quotation_marks.d
|
|
create mode 100644 gas/testsuite/gas/loongarch/double_quotation_marks.s
|
|
|
|
diff --git a/gas/testsuite/gas/loongarch/double_quotation_marks.d b/gas/testsuite/gas/loongarch/double_quotation_marks.d
|
|
new file mode 100644
|
|
index 00000000..a42534b9
|
|
--- /dev/null
|
|
+++ b/gas/testsuite/gas/loongarch/double_quotation_marks.d
|
|
@@ -0,0 +1,13 @@
|
|
+#as:
|
|
+#objdump: -dr
|
|
+
|
|
+.*:[ ]+file format .*
|
|
+
|
|
+
|
|
+Disassembly of section .text:
|
|
+
|
|
+.* <.text>:
|
|
+[ ]+0:[ ]+50000000[ ]+b[ ]+0[ ]+# 0x0
|
|
+[ ]+0: R_LARCH_B26[ ]+.L1
|
|
+[ ]+4:[ ]+5800018d[ ]+beq[ ]+\$t0, \$t1, 0[ ]+# 0x4
|
|
+[ ]+4: R_LARCH_B16[ ]+.L1
|
|
diff --git a/gas/testsuite/gas/loongarch/double_quotation_marks.s b/gas/testsuite/gas/loongarch/double_quotation_marks.s
|
|
new file mode 100644
|
|
index 00000000..f8b63074
|
|
--- /dev/null
|
|
+++ b/gas/testsuite/gas/loongarch/double_quotation_marks.s
|
|
@@ -0,0 +1,2 @@
|
|
+b ".L1"
|
|
+beq $r12, $r13, ".L1"
|
|
diff --git a/opcodes/loongarch-coder.c b/opcodes/loongarch-coder.c
|
|
index a68ae1c3..672a468b 100644
|
|
--- a/opcodes/loongarch-coder.c
|
|
+++ b/opcodes/loongarch-coder.c
|
|
@@ -264,6 +264,13 @@ loongarch_split_args_by_comma (char *args, const char *arg_strs[])
|
|
else
|
|
*args = '\0', arg_strs[num++] = args + 1;
|
|
}
|
|
+
|
|
+ if (*(args-1) == '"')
|
|
+ {
|
|
+ *(args-1) = '\0';
|
|
+ arg_strs[num-1] = arg_strs[num-1] + 1;
|
|
+ }
|
|
+
|
|
arg_strs[num] = NULL;
|
|
return num;
|
|
}
|
|
--
|
|
2.33.0
|
|
|