Use separate subsection rather than section for spinlocks assembly code.

This commit is contained in:
Jan Stoess 2011-11-23 11:27:20 +01:00
parent 550c2c1378
commit d0abf759b1
1 changed files with 4 additions and 4 deletions

View File

@ -1,6 +1,6 @@
/********************************************************************* /*********************************************************************
* *
* Copyright (C) 2002-2003, 2006-2009, Karlsruhe University * Copyright (C) 2002-2003, 2006-2009, 2011, Karlsruhe University
* *
* File path: arch/x86/sync.h * File path: arch/x86/sync.h
* Description: synchronization primitives for x86 * Description: synchronization primitives for x86
@ -72,7 +72,7 @@ INLINE void spinlock_t::lock()
"xchg %1, %2 \n\t" "xchg %1, %2 \n\t"
"test $0xff, %2 \n\t" "test $0xff, %2 \n\t"
"jnz 2f \n\t" "jnz 2f \n\t"
".section .spinlock \n\t" ".subsection 2 \n\t"
"2: \n\t" "2: \n\t"
"mov $"MKSTR(SYNC_THRESHOLD)", %2 \n\t" "mov $"MKSTR(SYNC_THRESHOLD)", %2 \n\t"
"3: \n\t" "3: \n\t"
@ -98,13 +98,13 @@ INLINE void spinlock_t::lock()
"xchg %1, %2 \n\t" "xchg %1, %2 \n\t"
"test $0xff, %2 \n\t" "test $0xff, %2 \n\t"
"jnz 2f \n\t" "jnz 2f \n\t"
".section .spinlock \n\t" ".subsection 2 \n\t"
"2: \n\t" "2: \n\t"
"rep; nop \n\t" "rep; nop \n\t"
"testb $1, %1 \n\t" "testb $1, %1 \n\t"
"jne 2b \n\t" "jne 2b \n\t"
"jmp 1b \n\t" "jmp 1b \n\t"
".previous \n\t" ".previous \n\t"
: "=D" (dummy) : "=D" (dummy)
: "m"(this->_lock), : "m"(this->_lock),
"0" ((word_t) 1) "0" ((word_t) 1)