Re: [PATCH] x86: add missed clobber for 32-bit memmove

From: Jeremy Fitzhardinge
Date: Fri Oct 17 2008 - 11:56:36 EST

Jike Song wrote:
memmove() is implemented by inline assembly. It calls std at first
and cld at last, but EFLAGS still should be clobbered.

I think x86 gcc assumes "cc" is always clobbered by asms. Otherwise there'll need to be a lot more "cc" clobbers than this...


Signed-off-by: Jike Song <albcamus@xxxxxxxxx>
arch/x86/lib/memcpy_32.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/lib/memcpy_32.c b/arch/x86/lib/memcpy_32.c
index 5415a9d..99a8240 100644
--- a/arch/x86/lib/memcpy_32.c
+++ b/arch/x86/lib/memcpy_32.c
@@ -36,7 +36,7 @@ void *memmove(void *dest, const void *src, size_t n)
:"0" (n),
"1" (n-1+src),
"2" (n-1+dest)
- :"memory");
+ :"cc", "memory");
return dest;

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at