aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2025-04-30 08:43:51 +0200
committerGeorg-Johann Lay <avr@gjlay.de>2025-04-30 11:31:58 +0200
commit4dc40eddbe69566869f7aafb78c31c4850b8aeb7 (patch)
treeadc5cd8f2eb25a2b69f51d9ac1ba5c9aa0f171e3 /libjava
parente5d1f538bb7d2c7a7a4acf4a4516fa8933dc2888 (diff)
downloadgcc-4dc40eddbe69566869f7aafb78c31c4850b8aeb7.zip
gcc-4dc40eddbe69566869f7aafb78c31c4850b8aeb7.tar.gz
gcc-4dc40eddbe69566869f7aafb78c31c4850b8aeb7.tar.bz2
AVR: target/119989 - Add missing clobbers to xload_<mode>_libgcc.
libgcc's __xload_1...4 is clobbering Z (and also R21 is some cases), but avr.md had clobbers of respective GPRs only up to reload. Outcome was that code reading from the same __memx address twice could be wrong. This patch adds respective clobbers. Forward-port from 2025-04-30 r14-11703 PR target/119989 gcc/ * config/avr/avr.md (xload_<mode>_libgcc): Clobber R21, Z. gcc/testsuite/ * gcc.target/avr/torture/pr119989.h: New file. * gcc.target/avr/torture/pr119989-memx-1.c: New test. * gcc.target/avr/torture/pr119989-memx-2.c: New test. * gcc.target/avr/torture/pr119989-memx-3.c: New test. * gcc.target/avr/torture/pr119989-memx-4.c: New test. * gcc.target/avr/torture/pr119989-flashx-1.c: New test. * gcc.target/avr/torture/pr119989-flashx-2.c: New test. * gcc.target/avr/torture/pr119989-flashx-3.c: New test. * gcc.target/avr/torture/pr119989-flashx-4.c: New test. (cherry picked from commit 1ca1c1fc3b58ae5e1d3db4f5a2014132fe69f82a)
Diffstat (limited to 'libjava')
0 files changed, 0 insertions, 0 deletions