From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1861) id AA660385AC11; Tue, 28 Nov 2023 14:01:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AA660385AC11 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Jose E. Marchesi To: bfd-cvs@sourceware.org Subject: [binutils-gdb] gas: change meaning of ; in the BPF assembler X-Act-Checkin: binutils-gdb X-Git-Author: Jose E. Marchesi X-Git-Refname: refs/heads/master X-Git-Oldrev: 4a50820ee8f153265ec8ffd068618607d4be3a26 X-Git-Newrev: 4c5f2370fd1b53d56504f28ba55277dbed2a5b69 Message-Id: <20231128140158.AA660385AC11@sourceware.org> Date: Tue, 28 Nov 2023 14:01:58 +0000 (GMT) X-BeenThere: binutils-cvs@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Nov 2023 14:01:58 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D4c5f2370fd1b= 53d56504f28ba55277dbed2a5b69 commit 4c5f2370fd1b53d56504f28ba55277dbed2a5b69 Author: Jose E. Marchesi Date: Tue Nov 28 11:58:58 2023 +0100 gas: change meaning of ; in the BPF assembler =20 The BPF assembler in clang uses semi-colon (;) to separate statements, not to be begin line comments. This patch adapts the GNU assembler accordingly. =20 Testsuite and documentation updated accordingly. =20 2023-11-28 Jose E. Marchesi =20 * config/tc-bpf.c: Semicolon does not start a comment, but separates multiple commands on a single line. * testsuite/gas/bpf/alu-pseudoc.s: Adapt test accordingly. * testsuite/gas/bpf/spacing-pseudoc.s: Likewise. * testsuite/gas/bpf/offset16-overflow.s: Likewise. * testsuite/gas/bpf/jump-relax-jump.s: Likewise. * testsuite/gas/bpf/jump-relax-ja.s: Likewise. * testsuite/gas/bpf/imm32-overflow.s: Likewise. * testsuite/gas/bpf/disp32-overflow.s: Likewise. * testsuite/gas/bpf/disp16-overflow-relax.s: Likewise. * testsuite/gas/bpf/disp16-overflow.s: Likewise. * doc/c-bpf.texi (BPF Special Characters): Update. Diff: --- gas/ChangeLog | 15 +++++++++++++++ gas/config/tc-bpf.c | 4 ++-- gas/doc/c-bpf.texi | 13 ++++++++++--- gas/testsuite/gas/bpf/alu-pseudoc.s | 2 +- gas/testsuite/gas/bpf/disp16-overflow-relax.s | 8 ++++---- gas/testsuite/gas/bpf/disp16-overflow.s | 4 ++-- gas/testsuite/gas/bpf/disp32-overflow.s | 4 ++-- gas/testsuite/gas/bpf/imm32-overflow.s | 4 ++-- gas/testsuite/gas/bpf/jump-relax-ja.s | 18 +++++++++--------- gas/testsuite/gas/bpf/jump-relax-jump.s | 12 ++++++------ gas/testsuite/gas/bpf/offset16-overflow.s | 4 ++-- gas/testsuite/gas/bpf/spacing-pseudoc.s | 4 ++-- 12 files changed, 57 insertions(+), 35 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 9414f7df678..c5e781d275c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,18 @@ +2023-11-28 Jose E. Marchesi + + * config/tc-bpf.c: Semicolon does not start a comment, but + separates multiple commands on a single line. + * testsuite/gas/bpf/alu-pseudoc.s: Adapt test accordingly. + * testsuite/gas/bpf/spacing-pseudoc.s: Likewise. + * testsuite/gas/bpf/offset16-overflow.s: Likewise. + * testsuite/gas/bpf/jump-relax-jump.s: Likewise. + * testsuite/gas/bpf/jump-relax-ja.s: Likewise. + * testsuite/gas/bpf/imm32-overflow.s: Likewise. + * testsuite/gas/bpf/disp32-overflow.s: Likewise. + * testsuite/gas/bpf/disp16-overflow-relax.s: Likewise. + * testsuite/gas/bpf/disp16-overflow.s: Likewise. + * doc/c-bpf.texi (BPF Special Characters): Update. + 2023-11-23 YunQiang Su =20 * testsuite/gas/mips/elf-rel.s: Use addiu in place of addi. diff --git a/gas/config/tc-bpf.c b/gas/config/tc-bpf.c index b6b1db47427..00567545de8 100644 --- a/gas/config/tc-bpf.c +++ b/gas/config/tc-bpf.c @@ -56,9 +56,9 @@ struct bpf_insn expressionS *relaxed_exp; }; =20 -const char comment_chars[] =3D ";#"; +const char comment_chars[] =3D "#"; const char line_comment_chars[] =3D "#"; -const char line_separator_chars[] =3D "`"; +const char line_separator_chars[] =3D ";`"; const char EXP_CHARS[] =3D "eE"; const char FLT_CHARS[] =3D "fFdD"; =20 diff --git a/gas/doc/c-bpf.texi b/gas/doc/c-bpf.texi index 25ae231d19c..7ff07e91764 100644 --- a/gas/doc/c-bpf.texi +++ b/gas/doc/c-bpf.texi @@ -68,11 +68,18 @@ the host endianness is used. =20 @cindex line comment character, BPF @cindex BPF line comment character -The presence of a @samp{;} or 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{#} on a line indicates the start of a comment +that extends to the end of the current line. + +@cindex block comments, BPF +@cindex BPF block comments +The presence of the @samp{/*} sequence indicates the beginning of a +block (multi-line) comment, whose contents span until the next +@samp{*/} sequence. It is not possible to nest block comments. =20 @cindex statement separator, BPF -Statements and assembly directives are separated by newlines. +Statements and assembly directives are separated by newlines and +@samp{;} characters. =20 @node BPF Registers @section BPF Registers diff --git a/gas/testsuite/gas/bpf/alu-pseudoc.s b/gas/testsuite/gas/bpf/al= u-pseudoc.s index 3d60d4f7a77..04d2b76e3f7 100644 --- a/gas/testsuite/gas/bpf/alu-pseudoc.s +++ b/gas/testsuite/gas/bpf/alu-pseudoc.s @@ -61,5 +61,5 @@ r1 =3D bswap16 r1 r2 =3D bswap32 r2 r3 =3D bswap64 r3 - ;; The following is to be interpreted as a mov, not lddw. + /* The following is to be interpreted as a mov, not lddw. */ r2 =3D 666ll diff --git a/gas/testsuite/gas/bpf/disp16-overflow-relax.s b/gas/testsuite/= gas/bpf/disp16-overflow-relax.s index 05d505caaae..7ac969a854a 100644 --- a/gas/testsuite/gas/bpf/disp16-overflow-relax.s +++ b/gas/testsuite/gas/bpf/disp16-overflow-relax.s @@ -1,4 +1,4 @@ - jeq %r1,%r2,2147483647 ; Overflows. - jlt %r3,%r4,2147483648 ; Overflows. - jge %r5,10,-2147483648 ; Overflows. - ja -2147483649 ; Overflows. + jeq %r1,%r2,2147483647 /* Overflows. */ + jlt %r3,%r4,2147483648 /* Overflows. */ + jge %r5,10,-2147483648 /* Overflows. */ + ja -2147483649 /* Overflows. */ diff --git a/gas/testsuite/gas/bpf/disp16-overflow.s b/gas/testsuite/gas/bp= f/disp16-overflow.s index 4a8fd9fcf1c..c46590e4959 100644 --- a/gas/testsuite/gas/bpf/disp16-overflow.s +++ b/gas/testsuite/gas/bpf/disp16-overflow.s @@ -1,4 +1,4 @@ ja 32767 - jeq %r1,%r2,65536 ; Overflows + jeq %r1,%r2,65536 /* Overflows */ jlt %r3,%r4,-32768 - jge %r5,10,-32769 ; Overflows + jge %r5,10,-32769 /* Overflows */ diff --git a/gas/testsuite/gas/bpf/disp32-overflow.s b/gas/testsuite/gas/bp= f/disp32-overflow.s index 11128a20dff..eb8b445588b 100644 --- a/gas/testsuite/gas/bpf/disp32-overflow.s +++ b/gas/testsuite/gas/bpf/disp32-overflow.s @@ -1,4 +1,4 @@ call -2147483648 - call -2147483649 ; This overflows. + call -2147483649 /* This overflows. */ call 4294967295 - call 4294967296 ; This overflows. + call 4294967296 /* This overflows. */ diff --git a/gas/testsuite/gas/bpf/imm32-overflow.s b/gas/testsuite/gas/bpf= /imm32-overflow.s index b2ab43d2e7a..1aac58bd0ea 100644 --- a/gas/testsuite/gas/bpf/imm32-overflow.s +++ b/gas/testsuite/gas/bpf/imm32-overflow.s @@ -1,4 +1,4 @@ add %r1, 2147483647 - or %r2, 4294967296 ; This overflows. + or %r2, 4294967296 /* This overflows. */ xor %r3, 4294967295 - sub %r4, 4294967296 ; This overflows. + sub %r4, 4294967296 /* This overflows. */ diff --git a/gas/testsuite/gas/bpf/jump-relax-ja.s b/gas/testsuite/gas/bpf/= jump-relax-ja.s index 1faf67909eb..f164176bbd5 100644 --- a/gas/testsuite/gas/bpf/jump-relax-ja.s +++ b/gas/testsuite/gas/bpf/jump-relax-ja.s @@ -1,16 +1,16 @@ - ;; The following two instructions have constant targets that - ;; fix in the JA 16-bit signed displacement operand. These - ;; are not relaxed. + /* The following two instructions have constant targets that + fix in the JA 16-bit signed displacement operand. These + are not relaxed. */ 1: ja -32768 ja 32767 - ;; The following instruction refers to a defined symbol that - ;; is on reach, so it should not be relaxed. + /* The following instruction refers to a defined symbol that + is on reach, so it should not be relaxed. */ ja 1b - ;; The following instruction has an undefined symbol as a - ;; target. It is not to be relaxed. + /* The following instruction has an undefined symbol as a + target. It is not to be relaxed. */ ja undefined + 10 - ;; The following instructions refer to a defined symbol that - ;; is not on reach. They shall be relaxed to a JAL. + /* The following instructions refer to a defined symbol that + is not on reach. They shall be relaxed to a JAL. */ ja tail tail =3D .text + 262160 ja tail diff --git a/gas/testsuite/gas/bpf/jump-relax-jump.s b/gas/testsuite/gas/bp= f/jump-relax-jump.s index 3ee7c873320..5ea61109bca 100644 --- a/gas/testsuite/gas/bpf/jump-relax-jump.s +++ b/gas/testsuite/gas/bpf/jump-relax-jump.s @@ -1,12 +1,12 @@ - ;; The following two instructions have constant targets that - ;; fix in the jump 16-bit signed displacement operand. + /* The following two instructions have constant targets that + fix in the jump 16-bit signed displacement operand. */ 1: jeq %r1, %r2, -32768 jlt %r1, %r2, 32767 - ;; The following instruction refers to a defined symbol that - ;; is on reach, so it should not be relaxed. + /* The following instruction refers to a defined symbol that + is on reach, so it should not be relaxed. */ jle %r1, %r2, 1b - ;; The following instructions refer to a defined symbol that - ;; is not on reach. They shall be relaxed. + /* The following instructions refer to a defined symbol that + is not on reach. They shall be relaxed. */ jeq %r1, %r2, tail tail =3D .text + 262160 jgt %r1, %r2, tail diff --git a/gas/testsuite/gas/bpf/offset16-overflow.s b/gas/testsuite/gas/= bpf/offset16-overflow.s index ebd8e05c09e..2bcb63baf8d 100644 --- a/gas/testsuite/gas/bpf/offset16-overflow.s +++ b/gas/testsuite/gas/bpf/offset16-overflow.s @@ -1,4 +1,4 @@ ldxh %r2, [%r1 + 65535] - ldxw %r2, [%r1 + 65536] ; This overflows + ldxw %r2, [%r1 + 65536] /* This overflows. */ stxw [%r2 - 32768], %r1 - stxdw [%r2 - 32769], %r1 ; This overflows + stxdw [%r2 - 32769], %r1 /* This overflows. */ diff --git a/gas/testsuite/gas/bpf/spacing-pseudoc.s b/gas/testsuite/gas/bp= f/spacing-pseudoc.s index 3c19d9a5073..5aff93dcf33 100644 --- a/gas/testsuite/gas/bpf/spacing-pseudoc.s +++ b/gas/testsuite/gas/bpf/spacing-pseudoc.s @@ -1,5 +1,5 @@ - ;; This test checks that flexible spacing is supported in the - ;; pseudoc syntax. + /* This test checks that flexible spacing is supported in the + pseudoc syntax. */ r4 =3D 0xdeadbeefll r4 =3D 0xdeadbeef ll goto +1