https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92469
--- Comment #10 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- "jakub at gcc dot gnu.org" <gcc-bugzi...@gcc.gnu.org> writes: > --- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> --- > Seems neither accessible_reg_set nor operand_reg_set can exclude frame, > because > the latter results in general_operand predicate failing for it and the former > results into the latter not being enabled either. > So, if we wanted to reject this right away, we'd have to add another hard reg > set (e.g. containing gcc internal artifical regs that shouldn't appear in asm > register specification), or a target hook that would reject such registers > that > varasm.c would call. Agree a hard reg set would be good. We should be able to fill in the easy cases automatically, e.g. FRAME_POINTER_REGNUM when it's != HARD_FRAME_POINTER_REGNUM. But some cases would still need target help.