On 10/30/23 09:27, Roger Sayle wrote:
WRT H8. Bug filed so we don't lose track of it. We don't have DImode
operations
defined on the H8. First step would be DImode loads/stores and basic
arithmetic.
The H8's machine description is impressively well organized.
Would it make sense to add a doubleword.md, or should DImode
support be added to each of the individual addsub.md, logical.md,
shiftrotate.md etc..?
No strong opinion :-) Back when I reorganized this stuff I was just
trying to get it more manageable than a single huge .md file --
especially when I knew the port was going to grow 2x larger with the cc0
conversion.
The fact that register-to-register moves clobber some of the flags bits
must also make reload's task very difficult (impossible?).
The clobbering of CC doesn't show up until after reload. At least
they're not supposed to show up until then! If they do, then it's a bug
and a correctness issue waiting to happen.
Given the lack of registers on the H8 we never felt that supporting
DImode in the target files was a good idea. Just supporting a 64bit
destructive add uses 5 of the 6 (or 7 if no frame pointer is needed)
available registers.
Jeff