On 07.03.2024 21:54, Oleksii wrote:
> On Thu, 2024-03-07 at 21:49 +0100, Oleksii wrote:
>> On Thu, 2024-03-07 at 18:14 +0100, Jan Beulich wrote:
>>> For plain writes it should at least be "=Qo" then, yes.
>> Constraints Q is a machine specific constraint, and I am not sure
>> that
>> it makes sense to use "=o" only and probably it is a reason why it is
>> enough only "r". Does it make sense?
> Probably for RISC-V can be used:
> RISC-V—config/riscv/constraints.md
>    ...
>    A
>        An address that is held in a general-purpose register.
>    ...

Just from the description I would have said no, but looking at what "A"
actually expands to it is indeed RISC-V's counterpart of Arm's "Q". So
yes, this looks like what amo* want to use, and then as a real operand,
not just a fake one.

> AArch64 family—config/aarch64/constraints.md:
>    ...
>    Q
>        A memory address which uses a single base register with no
>    offset
>    ...
> Also 'no offset' explains why it was added 'o' constraint for Arm
> additionally.

I don't think it does.

Jan

Reply via email to