diff options
author | Jan-Simon Möller <dl9pf@gmx.de> | 2013-08-29 21:13:05 +0200 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-08-29 13:26:33 -0700 |
commit | bdfc017eead9bc17cd23317ff42eb7297cb9468a (patch) | |
tree | cc181a78a57c02741961db5a412eaa35002d2c91 /include/asm-generic/io.h | |
parent | 3e9b2327b59801e677a7581fe4d2541ca749dcab (diff) |
x86, asm: Fix a compilation issue with clang
Clang does not support the "shortcut" we're taking here for gcc (see below).
The patch uses the macro _ASM_DX to do the job.
From arch/x86/include/asm/uaccess.h:
/*
* Careful: we have to cast the result to the type of the pointer
* for sign reasons.
*
* The use of %edx as the register specifier is a bit of a
* simplification, as gcc only cares about it as the starting point
* and not size: for a 64-bit value it will use %ecx:%edx on 32 bits
* (%ecx being the next register in gcc's x86 register sequence), and
* %rdx on 64 bits.
*/
[ hpa: I consider this a compatibility bug in clang as this reflects a
bit of a misunderstanding about how register strings are used by
gcc, but the workaround is straightforward and there is no
particular reason to not do it. ]
Signed-off-by: Jan-Simon Möller <dl9pf@gmx.de>
Link: http://lkml.kernel.org/r/1377803585-5913-3-git-send-email-dl9pf@gmx.de
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'include/asm-generic/io.h')
0 files changed, 0 insertions, 0 deletions