|
@@ -30,14 +30,10 @@ do { \
|
|
|
\
|
|
|
__asm__ __volatile__( \
|
|
|
LOCK_PREFIX " decl (%%eax) \n" \
|
|
|
- " js 2f \n" \
|
|
|
+ " jns 1f \n" \
|
|
|
+ " call "#fail_fn" \n" \
|
|
|
"1: \n" \
|
|
|
\
|
|
|
- LOCK_SECTION_START("") \
|
|
|
- "2: call "#fail_fn" \n" \
|
|
|
- " jmp 1b \n" \
|
|
|
- LOCK_SECTION_END \
|
|
|
- \
|
|
|
:"=a" (dummy) \
|
|
|
: "a" (count) \
|
|
|
: "memory", "ecx", "edx"); \
|
|
@@ -86,14 +82,10 @@ do { \
|
|
|
\
|
|
|
__asm__ __volatile__( \
|
|
|
LOCK_PREFIX " incl (%%eax) \n" \
|
|
|
- " jle 2f \n" \
|
|
|
+ " jg 1f \n" \
|
|
|
+ " call "#fail_fn" \n" \
|
|
|
"1: \n" \
|
|
|
\
|
|
|
- LOCK_SECTION_START("") \
|
|
|
- "2: call "#fail_fn" \n" \
|
|
|
- " jmp 1b \n" \
|
|
|
- LOCK_SECTION_END \
|
|
|
- \
|
|
|
:"=a" (dummy) \
|
|
|
: "a" (count) \
|
|
|
: "memory", "ecx", "edx"); \
|