diff options
author | Andreas Schwab <schwab@suse.de> | 2024-11-21 15:35:01 +0100 |
---|---|---|
committer | Andreas Schwab <schwab@suse.de> | 2024-12-02 16:51:37 +0100 |
commit | cec97549b781643f55bde34d025c3170309e3646 (patch) | |
tree | c313d33aed26548a14e4dcd9c88f4fe1cbd5b25b /gcc/fortran/trans-expr.cc | |
parent | a3e5fbcd055596e1496854326ffd17572e3ae42d (diff) | |
download | gcc-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