[PATCH 2/4] riscv: uaccess: use input constraints for ptr of __put_user
Jisheng Zhang
jszhang at kernel.org
Wed Jun 26 06:54:07 PDT 2024
On Wed, Jun 26, 2024 at 03:35:54PM +0200, Andreas Schwab wrote:
> On Jun 26 2024, Jisheng Zhang wrote:
>
> > no output constraints either. It just uses "r" input constraints to tell
> > gcc to read the store address into one proper GP reg.
>
> Again, this is backwards. Being an input operand means the asm is using
> this operand as an input to the instructions. The compiler needs to
> arrange to put the value in the allocated operand location according to
> the constraint.
Hi Andreas,
Your information is clearly received. What confused me is:
why x86 and arm64 don't put the "addr" of __put_user into output
constraints? Especially the following comments, why this is "read"
from memory?
* Tell gcc we read from memory instead of writing: this is because
* we do not write to any memory gcc knows about, so there are no
* aliasing issues.
can you please kindly help me understand the tricky points here?
thanks
>
> --
> Andreas Schwab, SUSE Labs, schwab at suse.de
> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
> "And now for something completely different."
More information about the linux-riscv
mailing list