On Wed, Feb 21, 2024 at 4:07 PM Kito Cheng <kito.ch...@gmail.com> wrote: > > LGTM, but I am OoO today, will commit that once I have laptop :p
Thanks! Dropped the gcc/doc/md.texi change and pushed as commit 9ca4c1bf082a4691482ca9f4814fea68f04e2cb3 (I have write-after-approval now:) ) > Fangrui Song <mask...@google.com> 於 2024年2月22日 週四 05:54 寫道: >> >> On Tue, Feb 13, 2024 at 10:36 PM Fangrui Song <mask...@google.com> wrote: >> > >> > The constraints "i" and "s" can be used with a symbol that binds >> > externally, e.g. >> > ``` >> > namespace ns { extern int var, a[4]; } >> > void foo() { >> > asm(".pushsection .xxx,\"aw\"; .dc.a %0; .popsection" :: "s"(&ns::var)); >> > asm(".reloc ., BFD_RELOC_NONE, %0" :: "s"(&ns::a[3])); >> > } >> > ``` >> > >> > gcc/testsuite/ChangeLog: >> > >> > * gcc.target/riscv/asm-raw-symbol.c: New test. >> > --- >> > gcc/doc/md.texi | 2 +- >> > gcc/testsuite/gcc.target/riscv/asm-raw-symbol.c | 14 ++++++++++++++ >> > 2 files changed, 15 insertions(+), 1 deletion(-) >> > create mode 100644 gcc/testsuite/gcc.target/riscv/asm-raw-symbol.c >> > >> > diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi >> > index b0c61925120..c75e5bf259d 100644 >> > --- a/gcc/doc/md.texi >> > +++ b/gcc/doc/md.texi >> > @@ -1947,7 +1947,7 @@ Integer constant that is valid as an immediate >> > operand in a 64-bit @code{MOV} >> > pseudo instruction >> > >> > @item S >> > -An absolute symbolic address or a label reference >> > +A symbolic reference or label reference. >> > >> > @item Y >> > Floating point constant zero >> > diff --git a/gcc/testsuite/gcc.target/riscv/asm-raw-symbol.c >> > b/gcc/testsuite/gcc.target/riscv/asm-raw-symbol.c >> > new file mode 100644 >> > index 00000000000..28305a8b1f0 >> > --- /dev/null >> > +++ b/gcc/testsuite/gcc.target/riscv/asm-raw-symbol.c >> > @@ -0,0 +1,14 @@ >> > +/* { dg-do compile } */ >> > +/* { dg-options "-fpic" } */ >> > + >> > +extern int var, arr[2][2]; >> > + >> > +void >> > +test (void) >> > +{ >> > + __asm__ ("@ %0" : : "i"(&var)); >> > + __asm__ ("@ %0 %1 %2" : : "s"(&var), "s"(&arr[1][1]), "s"(test)); >> > +} >> > + >> > +/* { dg-final { scan-assembler "@ var arr\\+12 test" } } */ >> > +/* { dg-final { scan-assembler "@ var" } } */ >> > -- >> > 2.43.0.687.g38aa6559b0-goog >> > >> >> Ping:) >> >> >> -- >> 宋方睿 -- 宋方睿