diff options
author | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2023-09-26 16:42:45 +0100 |
---|---|---|
committer | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2023-09-28 16:05:45 +0100 |
commit | d8b56c95782aeeee79ec40932ca88d00fd9f2ee2 (patch) | |
tree | d09f8931bf95f2ec200e5cfea89502db2f7906ec /gcc/function-tests.cc | |
parent | 88d8829e4f435bfc844db5a9df730e20faf7c2c7 (diff) | |
download | gcc-d8b56c95782aeeee79ec40932ca88d00fd9f2ee2.zip gcc-d8b56c95782aeeee79ec40932ca88d00fd9f2ee2.tar.gz gcc-d8b56c95782aeeee79ec40932ca88d00fd9f2ee2.tar.bz2 |
AArch64: Fix memmove operand corruption [PR111121]
A MOPS memmove may corrupt registers since there is no copy of the input
operands to temporary registers. Fix this by calling
aarch64_expand_cpymem_mops.
Reviewed-by: Richard Sandiford <richard.sandiford@arm.com>
gcc/ChangeLog/
PR target/111121
* config/aarch64/aarch64.md (aarch64_movmemdi): Add new expander.
(movmemdi): Call aarch64_expand_cpymem_mops for correct expansion.
* config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Add support
for memmove.
* config/aarch64/aarch64-protos.h (aarch64_expand_cpymem_mops): Add new
function.
gcc/testsuite/ChangeLog/
PR target/111121
* gcc.target/aarch64/mops_4.c: Add memmove testcases.
Diffstat (limited to 'gcc/function-tests.cc')
0 files changed, 0 insertions, 0 deletions