[ Top-post do please not. ] On Wed, Feb 26, 2020 at 04:11:06PM +0100, Henri Cloetens wrote: > - On the issue of the restore of R18 in mode DI, it seems from > analysing the log file that the compiler does not understand this > also affects R19. This looks a bug to me ??. Anyway, I have resolved > this, by adding a 'clobber' statement to R19 when R18 is written > in mode 'DI'. You haven't showed any evidence like this, so it's hard for use to help you with this at all. *Is* DImode a two register mode in your backend? > - The other issue, I have changed ((set) (pc) (return)) to (return), > but, as far as I understand the logfiles, and the documentation, > both forms are equivalent. Anyway, after fixing the first issue, I do > not see the second issue any more. The docs say Note that an insn pattern of @code{(return)} is logically equivalent to @code{(set (pc) (return))}, but the latter form is never used. If something is never used, then not everything might expect that form, that's all. Segher