patch-2.1.21 linux/include/asm-sparc/uaccess.h
Next file: linux/include/asm-sparc64/uaccess.h
Previous file: linux/include/asm-m68k/uaccess.h
Back to the patch index
Back to the overall index
- Lines: 83
- Date:
Fri Jan 3 18:48:37 1997
- Orig file:
v2.1.20/linux/include/asm-sparc/uaccess.h
- Orig date:
Wed Dec 18 15:59:02 1996
diff -u --recursive --new-file v2.1.20/linux/include/asm-sparc/uaccess.h linux/include/asm-sparc/uaccess.h
@@ -59,7 +59,7 @@
*
* There is a special way how to put a range of potentially faulting
* insns (like twenty ldd/std's with now intervening other instructions)
- * You specify address of first in insn and 0 in fixup and in the next
+ * You specify address of first in insn and 0 in fixup and in the next
* exception_table_entry you specify last potentially faulting insn + 1
* and in fixup the routine which should handle the fault.
* That fixup code will get
@@ -163,11 +163,12 @@
".align 4\n" \
"3:\n\t" \
"b 2b\n\t" \
- " mov %3, %0\n\n\t" \
+ " mov %3, %0\n\t" \
+ ".previous\n\n\t" \
".section __ex_table,#alloc\n\t" \
".align 4\n\t" \
".word 1b, 3b\n\t" \
- ".text\n\n\t" \
+ ".previous\n\n\t" \
: "=&r" (ret) : "r" (x), "r" (__m(addr)), \
"i" (-EFAULT))
@@ -179,7 +180,7 @@
".section __ex_table,#alloc\n\t" \
".align 4\n\t" \
".word 1b, __ret_efault\n\n\t" \
- ".text\n\n\t" \
+ ".previous\n\n\t" \
: "=r" (foo) : "r" (x), "r" (__m(addr))); \
else \
__asm__ __volatile( \
@@ -189,11 +190,12 @@
".align 4\n" \
"3:\n\t" \
"ret\n\t" \
- " restore %%g0, %3, %%o0\n\n\t" \
+ " restore %%g0, %3, %%o0\n\t" \
+ ".previous\n\n\t" \
".section __ex_table,#alloc\n\t" \
".align 4\n\t" \
".word 1b, 3b\n\n\t" \
- ".text\n\n\t" \
+ ".previous\n\n\t" \
: "=r" (foo) : "r" (x), "r" (__m(addr)), "i" (ret))
extern int __put_user_bad(void);
@@ -250,10 +252,11 @@
"clr %1\n\t" \
"b 2b\n\t" \
" mov %3, %0\n\n\t" \
+ ".previous\n\t" \
".section __ex_table,#alloc\n\t" \
".align 4\n\t" \
".word 1b, 3b\n\n\t" \
- ".text\n\t" \
+ ".previous\n\t" \
: "=&r" (ret), "=&r" (x) : "r" (__m(addr)), \
"i" (-EFAULT))
@@ -265,7 +268,7 @@
".section __ex_table,#alloc\n\t" \
".align 4\n\t" \
".word 1b,__ret_efault\n\n\t" \
- ".text\n\t" \
+ ".previous\n\t" \
: "=&r" (x) : "r" (__m(addr))); \
else \
__asm__ __volatile__( \
@@ -276,10 +279,11 @@
"3:\n\t" \
"ret\n\t" \
" restore %%g0, %2, %%o0\n\n\t" \
+ ".previous\n\t" \
".section __ex_table,#alloc\n\t" \
".align 4\n\t" \
".word 1b, 3b\n\n\t" \
- ".text\n\t" \
+ ".previous\n\t" \
: "=&r" (x) : "r" (__m(addr)), "i" (retval))
extern int __get_user_bad(void);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov