https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88178
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- void foo (void) { register int r19 asm ("19"); } ICEs with -g too. Similar effects with "16", "argp" or "frame". Guess it would be nice to reject these regs somewhere early, but there doesn't seem to be a target hook for that. There is accessible_reg_set which only mips uses, wonder if we could make them unaccessible and what effect that would have. I think it removes those registers from operand_reg_set and thus they wouldn't be general_operand though. With "19" this started with r264676, with "frame" the ICE started probably with r186837.