When realigning the stack or needing a base pointer, the prologue code can use x19 and x9. For cxx_fast_tlscc we also defer saving registers to COPY instructions instead of the normal prologue save sequence, so these registers get clobbered before they're saved in the main body.
Easiest fix seems to be to remove these registers from the CSR list for this convention (there's already some there for both this reason and possible interprocedural uses).
clang-format: please reformat the code