summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJason Wright <jason@cvs.openbsd.org>2003-07-09 15:52:54 +0000
committerJason Wright <jason@cvs.openbsd.org>2003-07-09 15:52:54 +0000
commit582472514b1acd6983fa35b7f13cf26ad81d67ec (patch)
treef0861cdbb69727a15d6c26f91a7da0a2d5c7e0ca /sys
parenta0ed26fc7099975da5fc02f4e88618c2ba901784 (diff)
add trap entries for LDQF/STQF alignment faults, but handle them as
SIGILL for now. Also split out T_INST_EXCEPT and T_TEXTFAULT from T_ILLINST pending handling of LDQF/STQF illegal instruction faults.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/sparc64/sparc64/locore.s6
-rw-r--r--sys/arch/sparc64/sparc64/trap.c14
2 files changed, 16 insertions, 4 deletions
diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s
index 5bad13ac7dc..cfcf6c483c9 100644
--- a/sys/arch/sparc64/sparc64/locore.s
+++ b/sys/arch/sparc64/sparc64/locore.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.s,v 1.40 2003/07/09 02:18:09 jason Exp $ */
+/* $OpenBSD: locore.s,v 1.41 2003/07/09 15:52:53 jason Exp $ */
/* $NetBSD: locore.s,v 1.137 2001/08/13 06:10:10 jdolecek Exp $ */
/*
@@ -712,7 +712,9 @@ _C_LABEL(trapbase):
TRAP T_LDDF_ALIGN ! 035 = LDDF address alignment error -- we could fix it inline...
TRAP T_STDF_ALIGN ! 036 = STDF address alignment error -- we could fix it inline...
TRAP T_PRIVACT ! 037 = privileged action
- UTRAP 0x038; UTRAP 0x039; UTRAP 0x03a; UTRAP 0x03b; UTRAP 0x03c;
+ TRAP T_LDQF_ALIGN ! 038 = LDDF address alignment error
+ TRAP T_STQF_ALIGN ! 039 = STQF address alignment error
+ UTRAP 0x03a; UTRAP 0x03b; UTRAP 0x03c;
UTRAP 0x03d; UTRAP 0x03e; UTRAP 0x03f;
VTRAP T_ASYNC_ERROR, winfault ! 040 = data fetch fault
SOFTINT4U 1, IE_L1 ! 041 = level 1 interrupt
diff --git a/sys/arch/sparc64/sparc64/trap.c b/sys/arch/sparc64/sparc64/trap.c
index 654c40133ff..519957c5d21 100644
--- a/sys/arch/sparc64/sparc64/trap.c
+++ b/sys/arch/sparc64/sparc64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.24 2003/02/17 01:29:20 henric Exp $ */
+/* $OpenBSD: trap.c,v 1.25 2003/07/09 15:52:53 jason Exp $ */
/* $NetBSD: trap.c,v 1.73 2001/08/09 01:03:01 eeh Exp $ */
/*
@@ -543,11 +543,14 @@ badtrap:
break; /* the work is all in userret() */
case T_ILLINST:
+ trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */
+ break;
case T_INST_EXCEPT:
+ trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */
+ break;
case T_TEXTFAULT:
trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */
break;
-
case T_PRIVINST:
trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */
break;
@@ -598,6 +601,13 @@ badtrap:
break;
}
+ case T_LDQF_ALIGN:
+ trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */
+ break;
+ case T_STQF_ALIGN:
+ trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv); /* XXX code?? */
+ break;
+
case T_ALIGN:
case T_LDDF_ALIGN:
case T_STDF_ALIGN: