This is the primary patch for cc0 removal on the H8 port.  It doesn't have any of the optimization work and many patterns are simply disabled at this time.  It's working well enough to not regress the testsuite. The H8 is similar to the m68k and other ports in that the vast majority of instructions clobber the condition codes, including most of the arithmetic insns that reload needs to use.  While there's a special adds/subs that does not modify the condition codes, they only accept constant addends of 1, 2 and 4.  With that in mind, this port does not expose cc0 until after reload.  So most patterns are defined using define_insn_and_split.  The splitter adds the appropriate clobbers.  A subsequent patch will add patterns that set the condition codes and returns the port to generating roughly equivalent code to before removing cc0 support. One might argue that this is an effective rewrite since nearly every pattern changes and as such I've been a bit more liberal than usual on the ChangeLog entry.  For the highly mechanical changes, I've just called out the change for the .md file as a whole rather than every pattern that got changed. This is a combination of my son's work as well as my own. I'll be pushing this to the trunk shortly.  Subsequent patches will be restoring code quality by using the compare-elim pass to eliminate unnecessary test/compare insns. Jeff