diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2024-02-21 11:12:28 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2024-02-21 11:12:28 +0000 |
commit | 22f0cf36ec0ad4ec76b50cd87eaab925bda74df8 (patch) | |
tree | 3eac4385902196b3666916457385c72a9e7c9e55 /libgcc | |
parent | 58930e9fd1816c2a71c4f4e54a82e870d3afe10a (diff) | |
download | gcc-22f0cf36ec0ad4ec76b50cd87eaab925bda74df8.zip gcc-22f0cf36ec0ad4ec76b50cd87eaab925bda74df8.tar.gz gcc-22f0cf36ec0ad4ec76b50cd87eaab925bda74df8.tar.bz2 |
aarch64: Ensure ZT0 is zeroed in a new-ZT0 function
ACLE guarantees that a function like:
__arm_new("zt0") foo() { ... }
will start with ZT0 equal to zero. I'd forgotten to enforce that
after commiting a lazy save. After such a save, we should zero
ZA iff the function has ZA state and zero ZT0 iff the function
has ZT0 state.
gcc/
* config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
In the code that commits a lazy save, only zero ZA if the function
has ZA state. Similarly zero ZT0 if the function has ZT0 state.
gcc/testsuite/
* gcc.target/aarch64/sme/zt0_state_5.c (test3): Expect ZT0 rather
than ZA to be zeroed.
(test5): Remove zeroing of ZA.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions