]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386: Fix register spill failure with concat RTX [PR111010]
authorUros Bizjak <ubizjak@gmail.com>
Wed, 23 Aug 2023 14:39:21 +0000 (16:39 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Wed, 23 Aug 2023 14:41:53 +0000 (16:41 +0200)
commit94a25d3dede035ce8318ae25388d658753c90a3b
treef58da26a710acb63a0f165429412382bc65a6b49
parent18befd6f050e70f11ecca1dd58624f0ee3c68cc7
i386: Fix register spill failure with concat RTX [PR111010]

Disable (=&r,m,m) alternative for 32-bit targets. The combination of two
memory operands (possibly with complex addressing mode), early clobbered
output, frame pointer and PIC registers uses too much registers on
a register constrained 32-bit target.

Also merge two similar patterns using DWIH mode iterator.

PR target/111010

gcc/ChangeLog:

* config/i386/i386.md (*concat<any_or_plus:mode><dwi>3_3):
Merge pattern from *concatditi3_3 and *concatsidi3_3 using
DWIH mode iterator.  Disable (=&r,m,m) alternative for
32-bit targets.
(*concat<any_or_plus:mode><dwi>3_3): Disable (=&r,m,m)
alternative for 32-bit targets.
gcc/config/i386/i386.md