aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.cc
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2024-11-21 15:35:01 +0100
committerAndreas Schwab <schwab@suse.de>2024-12-02 16:51:37 +0100
commitcec97549b781643f55bde34d025c3170309e3646 (patch)
treec313d33aed26548a14e4dcd9c88f4fe1cbd5b25b /gcc/fortran/trans-expr.cc
parenta3e5fbcd055596e1496854326ffd17572e3ae42d (diff)
downloadgcc-cec97549b781643f55bde34d025c3170309e3646.zip
gcc-cec97549b781643f55bde34d025c3170309e3646.tar.gz
gcc-cec97549b781643f55bde34d025c3170309e3646.tar.bz2
m68k: don't allow o/o in movdi, movdf, movxf
The movdi, movdf and movxf patterns allow both operands to be offsettable memory, but output_move_double cannot handle overlapping objects. This is visible in the failure of gcc.c-torture/execute/pr97073.c when compiled with LTO (where cprop optimizes out the AND operation; the failure also occurs without LTO when the AND is removed). Split the constraints so that the operands cannot both be "o" in the same insn. * config/m68k/m68k.md (movdi+1, movdf+1, movxf+2): Split constraints so that the operands cannot both be "o".
Diffstat (limited to 'gcc/fortran/trans-expr.cc')
0 files changed, 0 insertions, 0 deletions