> > - unsigned int __max_iter = 1000000;
> > + unsigned int __max_iter = 65536U;
>
> Doesn't that need to be 65535U for your purpose?
Yup. The other three did.
> Should have the runtime license exception.
Added.
> This should not be needed; just using t-fdpbit should suffice for
> almost all targets.
Done.
> > \ No newline at end of file
>
> As already noted, avoid this.
Fixed.
> > +static int register_sizes[] =
>
> const?
Yup.
> There are a lot of functions and variables without comments explaining
> them and their parameters. (If a function just implements a standard
> hook, a comment identifying which hook suffices without needing to explain
> the parameters of that hook again.)
I went through and commented everything in rl78.c at least; I think
the .h and .md are fairly self-documenting. I put a big comment at
the start of the devirtualization functions giving an overview of the
real/virtual thing.
> > + if (letter == 'q' || letter == 'Q')
> > + error ("q/Q modifiers invalid for symbol referencs");
>
> "referencs" should be "reference" or "references" or similar. I think
> this should call output_operand_lossage not error, so that it becomes an
> error or an ICE as appropriate depending on whether the source of the
> error is the machine description or an asm.
Done.
> cross compiler configured with --enable-werror-always, on both 32-bit and
> 64-bit hosts if possible.
I always build on 64 bit :-)
> I think the target-independent changes outside the back end (the ones that
> are meant as separate bug fixes required by the port) should be posted in
> separate messages, each with its own rationale.
Will do.