From: Jose E. Marchesi <jemarch@sourceware.org>
To: bfd-cvs@sourceware.org
Subject: [binutils-gdb] gas: support double-slash line comments in BPF assembly
Date: Thu, 30 Nov 2023 07:49:53 +0000 (GMT) [thread overview]
Message-ID: <20231130074953.6239D3858C56@sourceware.org> (raw)
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=dd2947e76aa285a12aa26de63a59f5fb8092ef82
commit dd2947e76aa285a12aa26de63a59f5fb8092ef82
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date: Thu Nov 30 08:34:09 2023 +0100
gas: support double-slash line comments in BPF assembly
This patch makes the BPF assembler to support double-slash line
comments, like the llvm BPF assembler does. At this point both
assemblers support the same commenting styles:
- Line comments preceded by # or //.
- Non-nestable block comments delimited by /* and */.
This patch also adds a couple of tests to make sure all the comment
styles work in both normal and pseudoc syntax. The manual is also
updated to mention double-slash line comments.
Diff:
---
gas/ChangeLog | 11 +++++++++++
gas/NEWS | 3 +++
gas/config/tc-bpf.h | 3 +++
gas/doc/c-bpf.texi | 4 ++--
gas/testsuite/gas/bpf/bpf.exp | 4 ++++
| 12 ++++++++++++
| 5 +++++
| 12 ++++++++++++
| 5 +++++
9 files changed, 57 insertions(+), 2 deletions(-)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3d5cfcae58c..b1a568cc334 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,14 @@
+2023-11-30 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * config/tc-bpf.h (DOUBLESLASH_LINE_COMMENTS): Define.
+ * testsuite/gas/bpf/comments.s: New file.
+ * testsuite/gas/bpf/comments.d: Likewise.
+ * testsuite/gas/bpf/comments-pseudoc.d: Likewise.
+ * testsuite/gas/bpf/comments-pseudoc.s: Likewise.
+ * testsuite/gas/bpf/bpf.exp: Run comments and comments-pseudoc.
+ * doc/c-bpf.texi (BPF Special Characters): Document // comments.
+ * NEWS: Update.
+
2023-11-28 Jose E. Marchesi <jose.marchesi@oracle.com>
* NEWS: Add entry about change of comment syntax in the BPF
diff --git a/gas/NEWS b/gas/NEWS
index 6bfab08c5b8..143d9c836e5 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -41,6 +41,9 @@
therefore they cannot longer be used to begin line comments. This matches the
behavior of the clang/LLVM BPF assembler.
+* The BPF assembler now allows using both hash (#) and double slash (//) to
+ begin line comments.
+
Changes in 2.41:
* Add support for the KVX instruction set.
diff --git a/gas/config/tc-bpf.h b/gas/config/tc-bpf.h
index 06096ef5926..91f3c1574b1 100644
--- a/gas/config/tc-bpf.h
+++ b/gas/config/tc-bpf.h
@@ -35,6 +35,9 @@
#define TARGET_BYTES_BIG_ENDIAN 0
#endif
+/* Permit // comments. */
+#define DOUBLESLASH_LINE_COMMENTS 1
+
/* .-foo gets turned into PC relative relocs. */
#define DIFF_EXPR_OK 1
diff --git a/gas/doc/c-bpf.texi b/gas/doc/c-bpf.texi
index 7ff07e91764..307d28be942 100644
--- a/gas/doc/c-bpf.texi
+++ b/gas/doc/c-bpf.texi
@@ -68,8 +68,8 @@ the host endianness is used.
@cindex line comment character, BPF
@cindex BPF line comment character
-The presence of a @samp{#} on a line indicates the start of a comment
-that extends to the end of the current line.
+The presence of a @samp{#} or @samp{//} anywhere on a line indicates
+the start of a comment that extends to the end of the line.
@cindex block comments, BPF
@cindex BPF block comments
diff --git a/gas/testsuite/gas/bpf/bpf.exp b/gas/testsuite/gas/bpf/bpf.exp
index 5bcd8c483a0..5048693cec8 100644
--- a/gas/testsuite/gas/bpf/bpf.exp
+++ b/gas/testsuite/gas/bpf/bpf.exp
@@ -18,6 +18,10 @@
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
if {[istarget bpf*-*-*]} {
+ # Misc tests.
+ run_dump_test comments
+ run_dump_test comments-pseudoc
+
# Little-endian BPF tests
run_dump_test call
run_dump_test exit
--git a/gas/testsuite/gas/bpf/comments-pseudoc.d b/gas/testsuite/gas/bpf/comments-pseudoc.d
new file mode 100644
index 00000000000..6fc68e01e86
--- /dev/null
+++ b/gas/testsuite/gas/bpf/comments-pseudoc.d
@@ -0,0 +1,12 @@
+#as: -EL -mdialect=pseudoc
+#objdump: -dr -M hex
+#name: BPF assembler comments - pseudoc
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+[0-9a-f]+ <.*>:
+ 0: 07 02 00 00 9a 02 00 00 add %r2,0x29a
+ 8: 07 03 00 00 66 fd ff ff add %r3,0xfffffd66
+ 10: 07 04 00 00 ef be ad 7e add %r4,0x7eadbeef
--git a/gas/testsuite/gas/bpf/comments-pseudoc.s b/gas/testsuite/gas/bpf/comments-pseudoc.s
new file mode 100644
index 00000000000..e64c46c2e6f
--- /dev/null
+++ b/gas/testsuite/gas/bpf/comments-pseudoc.s
@@ -0,0 +1,5 @@
+# This is a comment
+ r2 += 666 # This is also a comment
+ r3 += -666 /* So is
+this */
+ r4 += 0x7eadbeef // And this
--git a/gas/testsuite/gas/bpf/comments.d b/gas/testsuite/gas/bpf/comments.d
new file mode 100644
index 00000000000..49711a3f07a
--- /dev/null
+++ b/gas/testsuite/gas/bpf/comments.d
@@ -0,0 +1,12 @@
+#as: -EL -mdialect=normal
+#objdump: -dr -M hex
+#name: BPF assembler comments
+
+.*: +file format .*bpf.*
+
+Disassembly of section .text:
+
+[0-9a-f]+ <.*>:
+ 0: 07 02 00 00 9a 02 00 00 add %r2,0x29a
+ 8: 07 03 00 00 66 fd ff ff add %r3,0xfffffd66
+ 10: 07 04 00 00 ef be ad 7e add %r4,0x7eadbeef
--git a/gas/testsuite/gas/bpf/comments.s b/gas/testsuite/gas/bpf/comments.s
new file mode 100644
index 00000000000..d06fb4f9e54
--- /dev/null
+++ b/gas/testsuite/gas/bpf/comments.s
@@ -0,0 +1,5 @@
+# This is a comment
+ add %r2, 666 # This is also a comment
+ add %r3, -666 /* So is
+this */
+ add %r4, 0x7eadbeef // And this
reply other threads:[~2023-11-30 7:49 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231130074953.6239D3858C56@sourceware.org \
--to=jemarch@sourceware.org \
--cc=bfd-cvs@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).