diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2025-08-07 15:15:00 +0100 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2025-08-07 15:15:00 +0100 |
commit | 851cbdca8848525b35cbea8d02ba75a167fc11c1 (patch) | |
tree | f98b580ef1a07bb4d604669b7655006acc453dc8 /gcc/rust/parse/rust-parse-impl-proc-macro.cc | |
parent | 8e3239e3e92f3cd57bf3a19f10daa66c4cb45cc1 (diff) | |
download | gcc-851cbdca8848525b35cbea8d02ba75a167fc11c1.zip gcc-851cbdca8848525b35cbea8d02ba75a167fc11c1.tar.gz gcc-851cbdca8848525b35cbea8d02ba75a167fc11c1.tar.bz2 |
aarch64: Mark SME functions as .variant_pcs [PR121414]
Unlike base PCS functions, __arm_streaming and __arm_streaming_compatible
functions allow/require PSTATE.SM to be 1 on entry, so they need to
be treated as STO_AARCH64_VARIANT_PCS.
Similarly, functions that share ZA or ZT0 with their callers require
ZA to be active on entry, whereas the base PCS requires ZA to be
dormant or off. These functions too need to be marked as having
a variant PCS.
gcc/
PR target/121414
* config/aarch64/aarch64.cc (aarch64_is_variant_pcs): New function,
split out from...
(aarch64_asm_output_variant_pcs): ...here. Handle various types
of SME function type.
gcc/testsuite/
PR target/121414
* gcc.target/aarch64/sme/pr121414_1.c: New test.
Diffstat (limited to 'gcc/rust/parse/rust-parse-impl-proc-macro.cc')
0 files changed, 0 insertions, 0 deletions