mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
The inline assembly constraint for the "bytes" operand is "d" for all xor() inline assemblies. "d" means that any register from 0 to 15 can be used. If the compiler would use register 0 then the exrl instruction would not or the value of "bytes" into the executed instruction - resulting in an incorrect result. However all the xor() inline assemblies make hard-coded use of register 0, and it is correctly listed in the clobber list, so that this cannot happen. Given that this is quite subtle use the better "a" constraint, which excludes register 0 from register allocation in any case. Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Reviewed-by: Vasily Gorbik <gor@linux.ibm.com> Link: https://lore.kernel.org/r/20260302133500.1560531-3-hca@linux.ibm.com Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> |
||
|---|---|---|
| .. | ||
| csum-partial.c | ||
| delay.c | ||
| error-inject.c | ||
| expoline.S | ||
| find.c | ||
| Makefile | ||
| mem.S | ||
| probes.c | ||
| spinlock.c | ||
| string.c | ||
| test_kprobes.c | ||
| test_kprobes.h | ||
| test_kprobes_asm.S | ||
| test_modules.c | ||
| test_modules.h | ||
| test_modules_helpers.c | ||
| test_unwind.c | ||
| tishift.S | ||
| uaccess.c | ||
| xor.c | ||