summaryrefslogtreecommitdiff
path: root/sys/arch/sparc64
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/sparc64')
-rw-r--r--sys/arch/sparc64/sparc64/locore.s23
1 files changed, 22 insertions, 1 deletions
diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s
index be62b3af491..7252612fa5c 100644
--- a/sys/arch/sparc64/sparc64/locore.s
+++ b/sys/arch/sparc64/sparc64/locore.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.s,v 1.26 2003/01/09 22:27:10 miod Exp $ */
+/* $OpenBSD: locore.s,v 1.27 2003/01/11 07:07:49 jason Exp $ */
/* $NetBSD: locore.s,v 1.137 2001/08/13 06:10:10 jdolecek Exp $ */
/*
@@ -7749,6 +7749,27 @@ ENTRY(proc_trampoline)
ba,a,pt %icc, return_from_trap
nop
+Lfserr:
+ STPTR %g0, [%o2 + PCB_ONFAULT]! error in r/w, clear pcb_onfault
+ membar #StoreStore|#StoreLoad
+#ifndef _LP64
+ mov -1, %o1
+#endif
+ retl ! and return error indicator
+ mov -1, %o0
+
+ /*
+ * This is just like Lfserr, but it's a global label that allows
+ * mem_access_fault() to check to see that we don't want to try to
+ * page in the fault. It's used by fuswintr() etc.
+ */
+ .globl _C_LABEL(Lfsbail)
+_C_LABEL(Lfsbail):
+ STPTR %g0, [%o2 + PCB_ONFAULT]! error in r/w, clear pcb_onfault
+ membar #StoreStore|#StoreLoad
+ retl ! and return error indicator
+ mov -1, %o0
+
/* probeget and probeset are meant to be used during autoconfiguration */
/*
* The following probably need to be changed, but to what I don't know.