This changes the DAG to DAG to lower from UADDO/ADDCARRY. It involves some trickery to make sure we do not materialize the carry when it comes from ADDSC.
The spec doesn't mention if ADDWC clear with 20, however, code clearing it was removed as The carry now always comes from a ADDSC and previous version of the code did not seems to worry about bit 20 being set in that case, so my assumption is that this is the proper thing to do.
I realised that I got this wrong when I wrote it. This code should be using 0x1f to read the entire register.