From 8f0dda1601843d245b3d4b270ba44dfe89d0cd0e Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Sat, 11 May 2002 04:27:39 +0000 Subject: [PATCH] Temporarily disable Jeff's fix for atomic_cmpset_32() to zero-extend the value we load from memory. gcc3.1 passes in the u_int32_t old value to compare against as a _sign_-extended 64-bit value for some reason (bug?). This is a temporary workaround so kernels work again on alpha. --- sys/alpha/include/atomic.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/alpha/include/atomic.h b/sys/alpha/include/atomic.h index 93cdbf6b16a..f5dd718d866 100644 --- a/sys/alpha/include/atomic.h +++ b/sys/alpha/include/atomic.h @@ -356,7 +356,9 @@ atomic_cmpset_32(volatile u_int32_t* p, u_int32_t cmpval, u_int32_t newval) __asm __volatile ( "1:\tldl_l %0, %4\n\t" /* load old value */ +#ifdef notyet "zapnot %0,0xf,%0\n\t" /* Chop of signed bits */ +#endif "cmpeq %0, %2, %0\n\t" /* compare */ "beq %0, 2f\n\t" /* exit if not equal */ "mov %3, %0\n\t" /* value to store */