Hi! > + /* As ELFv2 ABI shows, the allowable bytes past the global entry > + point are 0, 4, 8, 16, 32 and 64. Considering there are two > + non-prefixed instructions for global entry (8 bytes), the count > + for patchable NOPs before local entry would be 2, 6 and 14. */
The other option is to allow other numbers of nops, but in that case not have a local entry point (so, always use the global entry point). I don't know if that is useful for any users of this support (if there even are such users :-P ) > + if (patch_area_entry > 0) > + { > + if (patch_area_entry != 2 > + && patch_area_entry != 6 > + && patch_area_entry != 14) > + error ("for %<-fpatchable-function-entry=%u,%u%>, patching " > + "%u NOP(s) before function entry is invalid, it can " > + "cause assembler error", I would not say "it can [etc.]" at all. Oh, and "NOP" (capitals) isn't a thing, it is not an acronym or such ;-) > +/* { dg-require-effective-target powerpc_elfv2 } */ > +/* Specify -mcpu=power9 to ensure global entry is needed. */ > +/* { dg-options "-mdejagnu-cpu=power9" } */ Why would it be needed for p9, and not older, or newer? Every function always has a GEP, so I'm not sure what you are trying to say here anyway :-) Rest looks good to me. Segher