https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105576

--- Comment #10 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <h...@gcc.gnu.org>:

https://gcc.gnu.org/g:d7250100381b817114447d91fff4748526d4fb21

commit r14-8637-gd7250100381b817114447d91fff4748526d4fb21
Author: Fangrui Song <mask...@google.com>
Date:   Thu Jan 11 10:24:25 2024 -0800

    i386: Add "Ws" constraint for symbolic address/label reference [PR105576]

    Printing the raw symbol is useful in inline asm (e.g. in C++ to get the
    mangled name).  Similar constraints are available in other targets (e.g.
    "S" for aarch64/riscv, "Cs" for m68k).

    There isn't a good way for x86 yet, e.g. "i" doesn't work for
    PIC/-mcmodel=large.  This patch adds "Ws".  Here are possible use cases:

    ```
    namespace ns { extern int var; }
    asm (".pushsection .xxx,\"aw\"; .dc.a %0; .popsection" :: "Ws"(&var));
    asm (".reloc ., BFD_RELOC_NONE, %0" :: "Ws"(&var));
    ```

    gcc/ChangeLog:

            PR target/105576
            * config/i386/constraints.md: Define constraint "Ws".
            * doc/md.texi: Document it.

    gcc/testsuite/ChangeLog:

            PR target/105576
            * gcc.target/i386/asm-raw-symbol.c: New testcase.

Reply via email to