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.
This commit is contained in:
Jose E. Marchesi
2023-11-30 08:34:09 +01:00
parent 0e78c95c49
commit dd2947e76a
9 changed files with 57 additions and 2 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,5 @@
# This is a comment
r2 += 666 # This is also a comment
r3 += -666 /* So is
this */
r4 += 0x7eadbeef // And this

View File

@@ -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

View File

@@ -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