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.

Reply via email to