patch-1.3.12 linux/arch/alpha/kernel/entry.S
Next file: linux/arch/alpha/kernel/osf_sys.c
Previous file: linux/Makefile
Back to the patch index
Back to the overall index
- Lines: 32
- Date:
Mon Jul 24 17:38:25 1995
- Orig file:
v1.3.11/linux/arch/alpha/kernel/entry.S
- Orig date:
Tue Jul 18 16:28:56 1995
diff -u --recursive --new-file v1.3.11/linux/arch/alpha/kernel/entry.S linux/arch/alpha/kernel/entry.S
@@ -300,10 +300,13 @@
entUna:
lda $30,-256($30)
stq $0,0($30)
+ ldq $0,256($30) /* get PS */
stq $1,8($30)
stq $2,16($30)
stq $3,24($30)
+ and $0,8,$0 /* user mode? */
stq $4,32($30)
+ bne $0,entUnaUser /* yup -> do user-level unaligned fault */
stq $5,40($30)
stq $6,48($30)
stq $7,56($30)
@@ -363,6 +366,17 @@
lda $30,256($30)
rti
.end entUna
+
+.align 3
+.ent entUnaUser
+entUnaUser:
+ ldq $0,0($30) /* restore original $0 */
+ lda $30,256($30) /* pop entUna's stack frame */
+ SAVE_ALL /* setup normal kernel stack */
+ lda $27,do_entUnaUser
+ lda $26,ret_from_sys_call
+ jsr $31,($27),do_entUnaUser
+.end entUnaUser
.align 3
.globl sys_fork
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this