aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormengqinggang <mengqinggang@loongson.cn>2023-12-10 17:41:32 +0800
committerliuzhensong <liuzhensong@loongson.cn>2023-12-11 17:54:50 +0800
commit22b78fad28d54bad1d0aee2fe0acf5f3f40648f6 (patch)
treeccecf1cddfa54765ec85667753ca24c3213b96bf
parent42cb93f57d582d4ed365622c7eb970547c629176 (diff)
downloadgdb-22b78fad28d54bad1d0aee2fe0acf5f3f40648f6.zip
gdb-22b78fad28d54bad1d0aee2fe0acf5f3f40648f6.tar.gz
gdb-22b78fad28d54bad1d0aee2fe0acf5f3f40648f6.tar.bz2
LoongArch: Add support for <b ".L1"> and <beq, $t0, $t1, ".L1">
Support symbol names enclosed in double quotation marks.
-rw-r--r--gas/testsuite/gas/loongarch/double_quotation_marks.d13
-rw-r--r--gas/testsuite/gas/loongarch/double_quotation_marks.s2
-rw-r--r--opcodes/loongarch-coder.c7
3 files changed, 22 insertions, 0 deletions
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 0000000..a42534b
--- /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 0000000..f8b6307
--- /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 a68ae1c..672a468 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;
}