On 11/11/22 10:30, Richard Sandiford via Gcc-patches wrote:
Arm's SME has an array called ZA that for inline asm purposes
is effectively a form of special-purpose memory.  It doesn't
have an associated storage type and so can't be passed and
returned in normal C/C++ objects.

We'd therefore like "za" in a clobber list to mean that an inline
asm can read from and write to ZA.  (Just reading or writing
individually is unlikely to be useful, but we could add syntax
for that too if necessary.)

There is currently a TARGET_MD_ASM_ADJUST target hook that allows
targets to add clobbers to an asm instruction.  This patch
extends that to allow targets to add USEs as well.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.  Also tested by
building cc1 for one target per affected CPU.  OK to install?

Richard


gcc/
        * target.def (md_asm_adjust): Add a uses parameter.
        * doc/gccint/target-macros/tm.rst.in: Regenerate.
        * cfgexpand.cc (expand_asm_loc): Update call to md_asm_adjust.
        Handle any USEs created by the target.
        (expand_asm_stmt): Likewise.
        * recog.cc (asm_noperands): Handle asms with USEs.
        (decode_asm_operands): Likewise.
        * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add uses
        parameter.
        * config/arm/aarch-common.cc (arm_md_asm_adjust): Likewise.
        * config/arm/arm.cc (thumb1_md_asm_adjust): Likewise.
        * config/avr/avr.cc (avr_md_asm_adjust): Likewise.
        * config/cris/cris.cc (cris_md_asm_adjust): Likewise.
        * config/i386/i386.cc (ix86_md_asm_adjust): Likewise.
        * config/mn10300/mn10300.cc (mn10300_md_asm_adjust): Likewise.
        * config/nds32/nds32.cc (nds32_md_asm_adjust): Likewise.
        * config/pdp11/pdp11.cc (pdp11_md_asm_adjust): Likewise.
        * config/rs6000/rs6000.cc (rs6000_md_asm_adjust): Likewise.
        * config/s390/s390.cc (s390_md_asm_adjust): Likewise.
        * config/vax/vax.cc (vax_md_asm_adjust): Likewise.
        * config/visium/visium.cc (visium_md_asm_adjust): Likewise.

OK

jeff


Reply via email to