diff options
Diffstat (limited to 'arch/x86/lib/rwsem_64.S')
| -rw-r--r-- | arch/x86/lib/rwsem_64.S | 81 | 
1 files changed, 0 insertions, 81 deletions
diff --git a/arch/x86/lib/rwsem_64.S b/arch/x86/lib/rwsem_64.S deleted file mode 100644 index 41fcf00e49d..00000000000 --- a/arch/x86/lib/rwsem_64.S +++ /dev/null @@ -1,81 +0,0 @@ -/* - * x86-64 rwsem wrappers - * - * This interfaces the inline asm code to the slow-path - * C routines. We need to save the call-clobbered regs - * that the asm does not mark as clobbered, and move the - * argument from %rax to %rdi. - * - * NOTE! We don't need to save %rax, because the functions - * will always return the semaphore pointer in %rax (which - * is also the input argument to these helpers) - * - * The following can clobber %rdx because the asm clobbers it: - *   call_rwsem_down_write_failed - *   call_rwsem_wake - * but %rdi, %rsi, %rcx, %r8-r11 always need saving. - */ - -#include <linux/linkage.h> -#include <asm/rwlock.h> -#include <asm/alternative-asm.h> -#include <asm/frame.h> -#include <asm/dwarf2.h> - -#define save_common_regs \ -	pushq %rdi; \ -	pushq %rsi; \ -	pushq %rcx; \ -	pushq %r8; \ -	pushq %r9; \ -	pushq %r10; \ -	pushq %r11 - -#define restore_common_regs \ -	popq %r11; \ -	popq %r10; \ -	popq %r9; \ -	popq %r8; \ -	popq %rcx; \ -	popq %rsi; \ -	popq %rdi - -/* Fix up special calling conventions */ -ENTRY(call_rwsem_down_read_failed) -	save_common_regs -	pushq %rdx -	movq %rax,%rdi -	call rwsem_down_read_failed -	popq %rdx -	restore_common_regs -	ret -	ENDPROC(call_rwsem_down_read_failed) - -ENTRY(call_rwsem_down_write_failed) -	save_common_regs -	movq %rax,%rdi -	call rwsem_down_write_failed -	restore_common_regs -	ret -	ENDPROC(call_rwsem_down_write_failed) - -ENTRY(call_rwsem_wake) -	decl %edx	/* do nothing if still outstanding active readers */ -	jnz 1f -	save_common_regs -	movq %rax,%rdi -	call rwsem_wake -	restore_common_regs -1:	ret -	ENDPROC(call_rwsem_wake) - -/* Fix up special calling conventions */ -ENTRY(call_rwsem_downgrade_wake) -	save_common_regs -	pushq %rdx -	movq %rax,%rdi -	call rwsem_downgrade_wake -	popq %rdx -	restore_common_regs -	ret -	ENDPROC(call_rwsem_downgrade_wake)  | 
