aboutsummaryrefslogtreecommitdiff
path: root/gcc/function-tests.cc
diff options
context:
space:
mode:
authorWilco Dijkstra <wilco.dijkstra@arm.com>2023-09-26 16:42:45 +0100
committerWilco Dijkstra <wilco.dijkstra@arm.com>2023-09-28 16:05:45 +0100
commitd8b56c95782aeeee79ec40932ca88d00fd9f2ee2 (patch)
treed09f8931bf95f2ec200e5cfea89502db2f7906ec /gcc/function-tests.cc
parent88d8829e4f435bfc844db5a9df730e20faf7c2c7 (diff)
downloadgcc-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