aboutsummaryrefslogtreecommitdiff
path: root/include/linux/fpga/fpga-mgr.h
diff options
context:
space:
mode:
authorNick Desaulniers <[email protected]>2020-05-22 22:22:45 -0700
committerLinus Torvalds <[email protected]>2020-05-23 10:26:31 -0700
commitc071b0f11e7fb944525b12c80e728af69648d967 (patch)
treeadd23517de24537d3c81f75a37a2b49eec60a7f1 /include/linux/fpga/fpga-mgr.h
parent60858c00e5f018eda711a3aa84cf62214ef62d61 (diff)
x86: bitops: fix build regression
This is easily reproducible via CC=clang + CONFIG_STAGING=y + CONFIG_VT6656=m. It turns out that if your config tickles __builtin_constant_p via differences in choices to inline or not, these statements produce invalid assembly: $ cat foo.c long a(long b, long c) { asm("orb %1, %0" : "+q"(c): "r"(b)); return c; } $ gcc foo.c foo.c: Assembler messages: foo.c:2: Error: `%rax' not allowed with `orb' Use the `%b` "x86 Operand Modifier" to instead force register allocation to select a lower-8-bit GPR operand. The "q" constraint only has meaning on -m32 otherwise is treated as "r". Not all GPRs have low-8-bit aliases for -m32. Fixes: 1651e700664b4 ("x86: Fix bitops.h warning with a moved cast") Reported-by: kernelci.org bot <[email protected]> Suggested-by: Andy Shevchenko <[email protected]> Suggested-by: Brian Gerst <[email protected]> Suggested-by: H. Peter Anvin <[email protected]> Suggested-by: Ilie Halip <[email protected]> Signed-off-by: Nick Desaulniers <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Tested-by: Sedat Dilek <[email protected]> Tested-by: Nathan Chancellor <[email protected]> [build, clang-11] Reviewed-by: Nathan Chancellor <[email protected]> Reviewed-By: Brian Gerst <[email protected]> Reviewed-by: Jesse Brandeburg <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: Marco Elver <[email protected]> Cc: "Paul E. McKenney" <[email protected]> Cc: Andrey Ryabinin <[email protected]> Cc: Luc Van Oostenryck <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Daniel Axtens <[email protected]> Cc: "Peter Zijlstra (Intel)" <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Link: https://github.com/ClangBuiltLinux/linux/issues/961 Link: https://lore.kernel.org/lkml/[email protected]/ Link: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#x86Operandmodifiers Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux/fpga/fpga-mgr.h')
0 files changed, 0 insertions, 0 deletions