https://bugzilla.novell.com/show_bug.cgi?id=639756
https://bugzilla.novell.com/show_bug.cgi?id=639756#c2
--- Comment #2 from Richard Guenther 2010-09-16 11:44:21 UTC ---
Even though unrelated(?)
static inline u64 atomic64_read(atomic64_t *ptr)
{
u64 res;
asm volatile(
"mov %%ebx, %%eax\n\t"
"mov %%ecx, %%edx\n\t"
".section .smp_locks,\"a\"\n" " " ".balign 4" " " "\n" " " ".long" " "
"661f\n" ".previous\n" "661:\n\tlock; " "cmpxchg8b %1\n"
: "=&A" (res)
: "m" (*ptr)
);
return res;
}
looks completely bogus.
The relevant asm should be
static inline void __set_64bit(unsigned long long *ptr,
unsigned int low, unsigned int high)
{
asm volatile("\n1:\t"
"movl (%1), %%eax\n\t"
"movl 4(%1), %%edx\n\t"
".section .smp_locks,\"a\"\n" " " ".balign 4" " " "\n" " " ".long" " "
"661f\n" ".previous\n" "661:\n\tlock; " "cmpxchg8b (%1)\n\t"
"jnz 1b"
: "=m" (*ptr)
: "D" (ptr),
"b" (low),
"c" (high)
: "ax", "dx", "memory");
}
which at first look looks ok.
In the devel:gcc project there is an updated gcc45.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.