https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98519
--- Comment #30 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Peter Bergner from comment #29) > (In reply to Segher Boessenkool from comment #28) > > All prefixed addresses, pcrel or R=0, are valid always. The original code > > is correct. > > Well they're only valid when compiling for power10, but we probably don't > generate pcrel addresses unless we're compiling for power10, so ok. Of course, generating prefixed instructions for a CPU that does not support that is not valid. The same is true for any optional instruction or addressing form. GCC does not generate those. > > But lxsd cannot use "m" as constraint anyway. It needs "wY", and that will > > work fine here? > > "wY" might be correct for lxsd, but I don't see how using "wY" instead of > "m" will stop us from generating a pcrel here, since mem_operand_ds_form() > doesn't disallow pcrel addresses. Ie, lxsd is a red herring to the actual > bug. "m" is not correct for "lxsd" (and even "Y" is only because we now require "Y<>" to allow update form insns). I mistakenly though that "wY" does not allow prefixed. But it does. We have to disallow all (*all*) operands that require prefixed insns, until we can handle those properly.