2 * __put_user functions.
4 * (C) Copyright 1998 Linus Torvalds
6 * These functions have a non-standard call interface
7 * to make them more efficient.
13 * Inputs: %rax contains the address
14 * %rdx contains the value
16 * Outputs: %rax is error code (0 or -EFAULT)
17 * %rbx is corrupted (will contain "current_task").
19 * These functions should not modify any other registers,
20 * as they get called from within inline assembly.
23 /* FIXME: putuser.S should be really merged with getuser.S, and preprocessor should be used to keep code duplication lower */
25 #include <linux/linkage.h>
27 #include <asm/errno.h>
28 #include <asm/offset.h>
29 #include <asm/thread_info.h>
36 cmpq threadinfo_addr_limit(%rbx),%rax
48 cmpq threadinfo_addr_limit(%rbx),%rax
60 cmpq threadinfo_addr_limit(%rbx),%rax
72 cmpq threadinfo_addr_limit(%rbx),%rax
83 .section __ex_table,"a"