Loading include/asm-x86_64/mutex.h +6 −14 Original line number Diff line number Diff line Loading @@ -25,13 +25,9 @@ do { \ \ __asm__ __volatile__( \ LOCK_PREFIX " decl (%%rdi) \n" \ " js 2f \n" \ "1: \n" \ \ LOCK_SECTION_START("") \ "2: call "#fail_fn" \n" \ " jmp 1b \n" \ LOCK_SECTION_END \ " jns 1f \n" \ " call "#fail_fn" \n" \ "1:" \ \ :"=D" (dummy) \ : "D" (v) \ Loading Loading @@ -75,13 +71,9 @@ do { \ \ __asm__ __volatile__( \ LOCK_PREFIX " incl (%%rdi) \n" \ " jle 2f \n" \ "1: \n" \ \ LOCK_SECTION_START("") \ "2: call "#fail_fn" \n" \ " jmp 1b \n" \ LOCK_SECTION_END \ " jg 1f \n" \ " call "#fail_fn" \n" \ "1: " \ \ :"=D" (dummy) \ : "D" (v) \ Loading include/asm-x86_64/semaphore.h +14 −26 Original line number Diff line number Diff line Loading @@ -107,12 +107,9 @@ static inline void down(struct semaphore * sem) __asm__ __volatile__( "# atomic down operation\n\t" LOCK_PREFIX "decl %0\n\t" /* --sem->count */ "js 2f\n" "1:\n" LOCK_SECTION_START("") "2:\tcall __down_failed\n\t" "jmp 1b\n" LOCK_SECTION_END "jns 1f\n\t" "call __down_failed\n" "1:" :"=m" (sem->count) :"D" (sem) :"memory"); Loading @@ -130,14 +127,11 @@ static inline int down_interruptible(struct semaphore * sem) __asm__ __volatile__( "# atomic interruptible down operation\n\t" "xorl %0,%0\n\t" LOCK_PREFIX "decl %1\n\t" /* --sem->count */ "js 2f\n\t" "xorl %0,%0\n" "1:\n" LOCK_SECTION_START("") "2:\tcall __down_failed_interruptible\n\t" "jmp 1b\n" LOCK_SECTION_END "jns 2f\n\t" "call __down_failed_interruptible\n" "2:\n" :"=a" (result), "=m" (sem->count) :"D" (sem) :"memory"); Loading @@ -154,14 +148,11 @@ static inline int down_trylock(struct semaphore * sem) __asm__ __volatile__( "# atomic interruptible down operation\n\t" "xorl %0,%0\n\t" LOCK_PREFIX "decl %1\n\t" /* --sem->count */ "js 2f\n\t" "xorl %0,%0\n" "1:\n" LOCK_SECTION_START("") "2:\tcall __down_failed_trylock\n\t" "jmp 1b\n" LOCK_SECTION_END "jns 2f\n\t" "call __down_failed_trylock\n\t" "2:\n" :"=a" (result), "=m" (sem->count) :"D" (sem) :"memory","cc"); Loading @@ -179,12 +170,9 @@ static inline void up(struct semaphore * sem) __asm__ __volatile__( "# atomic up operation\n\t" LOCK_PREFIX "incl %0\n\t" /* ++sem->count */ "jle 2f\n" "1:\n" LOCK_SECTION_START("") "2:\tcall __up_wakeup\n\t" "jmp 1b\n" LOCK_SECTION_END "jg 1f\n\t" "call __up_wakeup\n" "1:" :"=m" (sem->count) :"D" (sem) :"memory"); Loading include/asm-x86_64/spinlock.h +4 −5 Original line number Diff line number Diff line Loading @@ -22,14 +22,13 @@ #define __raw_spin_lock_string \ "\n1:\t" \ LOCK_PREFIX " ; decl %0\n\t" \ "js 2f\n" \ LOCK_SECTION_START("") \ "2:\t" \ "jns 2f\n" \ "3:\n" \ "rep;nop\n\t" \ "cmpl $0,%0\n\t" \ "jle 2b\n\t" \ "jle 3b\n\t" \ "jmp 1b\n" \ LOCK_SECTION_END "2:\t" \ #define __raw_spin_lock_string_up \ "\n\tdecl %0" Loading Loading
include/asm-x86_64/mutex.h +6 −14 Original line number Diff line number Diff line Loading @@ -25,13 +25,9 @@ do { \ \ __asm__ __volatile__( \ LOCK_PREFIX " decl (%%rdi) \n" \ " js 2f \n" \ "1: \n" \ \ LOCK_SECTION_START("") \ "2: call "#fail_fn" \n" \ " jmp 1b \n" \ LOCK_SECTION_END \ " jns 1f \n" \ " call "#fail_fn" \n" \ "1:" \ \ :"=D" (dummy) \ : "D" (v) \ Loading Loading @@ -75,13 +71,9 @@ do { \ \ __asm__ __volatile__( \ LOCK_PREFIX " incl (%%rdi) \n" \ " jle 2f \n" \ "1: \n" \ \ LOCK_SECTION_START("") \ "2: call "#fail_fn" \n" \ " jmp 1b \n" \ LOCK_SECTION_END \ " jg 1f \n" \ " call "#fail_fn" \n" \ "1: " \ \ :"=D" (dummy) \ : "D" (v) \ Loading
include/asm-x86_64/semaphore.h +14 −26 Original line number Diff line number Diff line Loading @@ -107,12 +107,9 @@ static inline void down(struct semaphore * sem) __asm__ __volatile__( "# atomic down operation\n\t" LOCK_PREFIX "decl %0\n\t" /* --sem->count */ "js 2f\n" "1:\n" LOCK_SECTION_START("") "2:\tcall __down_failed\n\t" "jmp 1b\n" LOCK_SECTION_END "jns 1f\n\t" "call __down_failed\n" "1:" :"=m" (sem->count) :"D" (sem) :"memory"); Loading @@ -130,14 +127,11 @@ static inline int down_interruptible(struct semaphore * sem) __asm__ __volatile__( "# atomic interruptible down operation\n\t" "xorl %0,%0\n\t" LOCK_PREFIX "decl %1\n\t" /* --sem->count */ "js 2f\n\t" "xorl %0,%0\n" "1:\n" LOCK_SECTION_START("") "2:\tcall __down_failed_interruptible\n\t" "jmp 1b\n" LOCK_SECTION_END "jns 2f\n\t" "call __down_failed_interruptible\n" "2:\n" :"=a" (result), "=m" (sem->count) :"D" (sem) :"memory"); Loading @@ -154,14 +148,11 @@ static inline int down_trylock(struct semaphore * sem) __asm__ __volatile__( "# atomic interruptible down operation\n\t" "xorl %0,%0\n\t" LOCK_PREFIX "decl %1\n\t" /* --sem->count */ "js 2f\n\t" "xorl %0,%0\n" "1:\n" LOCK_SECTION_START("") "2:\tcall __down_failed_trylock\n\t" "jmp 1b\n" LOCK_SECTION_END "jns 2f\n\t" "call __down_failed_trylock\n\t" "2:\n" :"=a" (result), "=m" (sem->count) :"D" (sem) :"memory","cc"); Loading @@ -179,12 +170,9 @@ static inline void up(struct semaphore * sem) __asm__ __volatile__( "# atomic up operation\n\t" LOCK_PREFIX "incl %0\n\t" /* ++sem->count */ "jle 2f\n" "1:\n" LOCK_SECTION_START("") "2:\tcall __up_wakeup\n\t" "jmp 1b\n" LOCK_SECTION_END "jg 1f\n\t" "call __up_wakeup\n" "1:" :"=m" (sem->count) :"D" (sem) :"memory"); Loading
include/asm-x86_64/spinlock.h +4 −5 Original line number Diff line number Diff line Loading @@ -22,14 +22,13 @@ #define __raw_spin_lock_string \ "\n1:\t" \ LOCK_PREFIX " ; decl %0\n\t" \ "js 2f\n" \ LOCK_SECTION_START("") \ "2:\t" \ "jns 2f\n" \ "3:\n" \ "rep;nop\n\t" \ "cmpl $0,%0\n\t" \ "jle 2b\n\t" \ "jle 3b\n\t" \ "jmp 1b\n" \ LOCK_SECTION_END "2:\t" \ #define __raw_spin_lock_string_up \ "\n\tdecl %0" Loading